var AWCNYScienceCalendar = jQuery.extend({},{
	
	fixCalendar: function() {

		AWCNYScienceCalendar.removeYears(2003, 2010);
		AWCNYScienceCalendar.disableActiveMonth();
		AWCNYScienceCalendar.addSearchResultsHeader();
	},

	// Remove years form startYear, to endYear, not including endYear
	removeYears: function(startYear, endYear) {
		for(var i = startYear; i < endYear; i++) {
			jQuery("select[name='search_query__date_range[year-from]'] option[value='" + i + "']").remove();
			jQuery("select[name='search_query__date_range[year-to]'] option[value='" + i + "']").remove();
		}
	},
	
	// Disable the active month, according to the timestamp in the url
	disableActiveMonth: function() {
		var timestamp = AWCNYScienceCalendar.getURLParameter("timestamp");
		if(timestamp) {
			var text = jQuery("a[data-ts='" + timestamp + "']").html();
		    jQuery("a[data-ts='" + timestamp + "']").parent().html(text).addClass("curMonth");
		}
	},
	
	// Add Search Results Header
	addSearchResultsHeader: function() {
		var text = "";
		
		// Check if month is set
		var month = AWCNYScienceCalendar.getURLParameter("timestamp");
		if(month) {
			text += AWCNYScienceCalendar.getMonthAndYear(month);
		}
		
		var fromYear = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)year-from(\\]|%5D)");
		
		if(fromYear) {
			var fromMonth = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)month-from(\\]|%5D)");
			if(fromMonth) {
				text += AWCNYScienceCalendar.convertToMonth(fromMonth-1) + " ";
			}
			var fromDay = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)day-from(\\]|%5D)");
			if(fromDay) {
				text += fromDay + ", ";
			}
			text += fromYear + " ";
						
		}
		
		var toYear = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)year-to(\\]|%5D)");
		if(toYear) {
			
			text += "to ";
			
			var toMonth = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)month-to(\\]|%5D)");
			if(toMonth) {
				text += AWCNYScienceCalendar.convertToMonth(toMonth-1) + " ";
			}
			var toDay = AWCNYScienceCalendar.getURLParameter("search_query__date_range(\\[|%5B)day-to(\\]|%5D)");
			if(toDay) {
				text += toDay + ", ";
			}
			text += toYear + " ";
						
		}
		
		var day = AWCNYScienceCalendar.getURLParameter("tsbeg");
		if(day) {
			
			text += AWCNYScienceCalendar.convertToMonth(parseInt(day.substr(5, 2), 10)-1) + " " + parseInt(day.substr(8, 2), 10) + ", " + day.substr(0, 4);
						
		}
		
		var query = AWCNYScienceCalendar.getURLParameter("search_query__search_text");
		if(query) {
			text += "keyword: " + query;
		}

		if(text != "") {	
			
			jQuery("#search_results_header").html("Results for " + text);
		}
	},
	
	// Get a url parameter by name
	getURLParameter: function(name) {
		var searchString= "[\\?&]" + name + "=([^&#]*)";
		var regex = new RegExp(searchString);
		var results = regex.exec(window.location.href);
		if(results == null) {
			return false;
		} else {
			return results[0].substr(results[0].lastIndexOf('=')+1);
		}
	},
	
	getMonthAndYear: function(timestamp) {
		var date = new Date(timestamp*1000);
		return AWCNYScienceCalendar.convertToMonth(date.getMonth()) + " " + date.getFullYear();
	},
	
	getDateString: function(year, month, day) {
		return AWCNYScienceCalendar.convertToMonth(month-1) + " " + day + ", " + year;
	},
	
	// Convert digit to month title (0 => January)
	convertToMonth: function(monthNumber) {
		switch(monthNumber) {
			case 0: return "January"; break;
			case 1: return "February"; break;
			case 2: return "March"; break;
			case 3: return "April"; break;
			case 4: return "May"; break;
			case 5: return "June"; break;
			case 6: return "July"; break;
			case 7: return "August"; break;
			case 8: return "September"; break;
			case 9: return "October"; break;
			case 10: return "November"; break;
			case 11: return "December"; break;
			default: return "";
		}
	},
	
	__end:null
});

