   
function Init(strMonth, strDay, strYear, strEventTypeID) {
	ChangeEventType(strMonth, strDay, strYear, strEventTypeID)
}
   
function ChangeMonth(strMonth, strYear, strEventTypeID) {
	ChangeGrid(strMonth, 0, strYear, strEventTypeID);
	ChangeEventList(strMonth, 0, strYear, strEventTypeID);
	ChangeEventTypeList(strMonth, 0, strYear, strEventTypeID);
	ChangeBreadcrumb(strMonth, 0, strYear, strEventTypeID);
	ChangeHash(strMonth, 0, strYear, strEventTypeID);
}

function ChangeDay(strMonth, strDay, strYear, strEventTypeID) {
	ChangeGrid(strMonth, strDay, strYear, strEventTypeID);
	ChangeEventList(strMonth, strDay, strYear, strEventTypeID)
	ChangeEventTypeList(strMonth, strDay, strYear, strEventTypeID);
	ChangeBreadcrumb(strMonth, strDay, strYear, strEventTypeID);
	ChangeHash(strMonth, strDay, strYear, strEventTypeID);
}

function ChangeEventType(strMonth, strDay, strYear, strEventTypeID) {
	ChangeGrid(strMonth, strDay, strYear, strEventTypeID);
	ChangeEventList(strMonth, strDay, strYear, strEventTypeID);
	ChangeEventTypeList(strMonth, strDay, strYear, strEventTypeID);
	ChangeBreadcrumb(strMonth, strDay, strYear, strEventTypeID);
	ChangeHash(strMonth, strDay, strYear, strEventTypeID);
}

function ChangeHash(strMonth, strDay, strYear, strEventTypeID) {
	window.location.hash = "" + strYear + '/' + strMonth + '/' + strDay + '/' + strEventTypeID;
}

function ChangeGrid(strMonth, strDay, strYear, strEventTypeID) {
	var strURL = '/Controls/CalendarGenerators/GridGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strEventTypeID);
	$("#calendar").load(strURL + "?" + strParams);
}

function ChangeEventList(strMonth, strDay, strYear, strEventTypeID) {
	var strURL = '/Controls/CalendarGenerators/EventListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strEventTypeID);
	$("#calendarEventList").load(strURL + "?" + strParams);
}

function ChangeEventTypeList(strMonth, strDay, strYear, strEventTypeID) {
	var strURL = '/Controls/CalendarGenerators/EventTypeListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strEventTypeID);
	$("#calendarEventTypeList").load(strURL + "?" + strParams);
}

function ChangeBreadcrumb(strMonth, strDay, strYear, strEventTypeID) {
	var strURL = '/Controls/CalendarGenerators/BreadcrumbGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strEventTypeID);
	$("#calendarBreadcrumb").load(strURL + "?" + strParams);
}

function GetAjaxParams(strMonth, strDay, strYear, strEventTypeID) {
	var strParams = 'month=' + strMonth + '&day=' + strDay + '&year=' + strYear;
	if (strEventTypeID != '') strParams += '&type=' + strEventTypeID;
	
	return strParams;
}

function GetHashArgs() {

	var args = new Object();
	args['month'] = new Date().getMonth() + 1;
	args['day'] = 0;
	args['year'] = new Date().getFullYear();
	args['type'] = '';
	
	var hash = window.location.hash.replace('#', '');
	var params = hash.split("/");
	
	if (params[0]) args['year'] = unescape(params[0]);
	if (params[1]) args['month'] = unescape(params[1]);
	if (params[2]) args['day'] = unescape(params[2]);
	if (params[3]) args['type'] = unescape(params[3]);

	return args;
}

