﻿var date_parser = {
    months: ["January","February","March","April","May","June","July","August","September","October","November","December"],
    get_date_range: function(start_date, end_date) {
        var start_date_parse_results = date_parser.parse_date(start_date);
        var end_date_parse_results = date_parser.parse_date(end_date);
        
        var ret_val = date_parser.get_label(start_date_parse_results);
        
        if(start_date_parse_results.success && end_date_parse_results.success 
            && !(start_date_parse_results.date.getFullYear() === end_date_parse_results.date.getFullYear() 
            && start_date_parse_results.date.getMonth() === end_date_parse_results.date.getMonth() && start_date_parse_results.date.getDay() === end_date_parse_results.date.getDay())) {
            ret_val += " &ndash; " + date_parser.get_label(end_date_parse_results);
        }
        
        return ret_val;
    },
    parse_date: function(date_string) {
        var date_arr;
        var newDate;
        var is_successful = false;
        
        if(typeof date_string != 'undefined') {
            date_arr = date_string.split("-");
            if(date_arr.length === 3) {
                newDate = new Date(date_arr[0],date_arr[1]-1,date_arr[2]);
                is_successful = true;
            }
        }
        return {date: newDate, original_string: date_string, success: is_successful}
    },
    get_label: function(parse_results) {
        if(parse_results.success) {
            return date_parser.months[parse_results.date.getMonth()] + " " + parse_results.date.getDate();
        } else {
            return parse_results.original_string;
        }
    },
    is_event_relevant: function(start_date, end_date) {
        var current_date = new Date();
        var start_date_parse_results = date_parser.parse_date(start_date);
        var end_date_parse_results = date_parser.parse_date(end_date);
        if(!start_date_parse_results.success 
            || (start_date_parse_results.success && start_date_parse_results.date > current_date) 
            || (end_date_parse_results.success && end_date_parse_results.date > current_date)) {
            
            return true;
        }
        return false;
    },
    is_event_upcoming: function(start_date) {
        var parse_results = date_parser.parse_date(start_date);
        var compare_to_date = new Date();
        compare_to_date.setDate(compare_to_date.getDate() - 1);
        return (parse_results.success && parse_results.date > compare_to_date);
    }
};
function getQueryStringParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = "[\\?&]" + name + "=([^&#]*)";
    regex = new RegExp(regex);
    var results = regex.exec(window.location.href);
    if (results === null) {
        return "";
    }
    else {
        return results[1];
    }
}