   
function Init(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	ChangeProgram(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeAudience(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
}
   
function ChangeMonth(strMonth, strYear, strProgramID, strAudienceID, strInitiativeID) {
    if (strMonth != "" && strYear != "") {
	    ChangeGrid(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeEventList(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeProgramList(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeAudienceList(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeYearList(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeBreadcrumb(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	    ChangeHash(strMonth, 0, strYear, strProgramID, strAudienceID, strInitiativeID);
	}
}

function ChangeDay(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	ChangeGrid(strMonth, strDay, strYear, strProgramID, strAudienceID,strInitiativeID);
	ChangeEventList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID)
	ChangeProgramList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeAudienceList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeYearList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeBreadcrumb(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeHash(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
}

function ChangeAudience(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	ChangeGrid(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeEventList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeAudienceList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeProgramList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeYearList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeBreadcrumb(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeHash(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
}

function ChangeProgram(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	ChangeGrid(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeEventList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeAudienceList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeProgramList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeYearList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeBreadcrumb(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	ChangeHash(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
}

function ChangeHash(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	window.location.hash = "" + strYear + '/' + strMonth + '/' + strDay + '/' + strProgramID + '/' + strAudienceID + '/' + strInitiativeID;
}

function ChangeGrid(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/GridGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendar").load(strURL + "?" + strParams + "&showprivate=false");
}

function ChangeEventList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/EventListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendarEventList").load(strURL + "?" + strParams);
}

function ChangeProgramList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/ProgramListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendarProgramList").load(strURL + "?" + strParams);
}

function ChangeAudienceList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/AudienceListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendarAudienceList").load(strURL + "?" + strParams);
}

function ChangeYearList(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/YearListGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendarYearSelect").load(strURL + "?" + strParams);
}

function ChangeBreadcrumb(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strURL = '/Controls/CalendarGenerators/BreadcrumbGenerator.aspx';
	var strParams = GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID);
	$("#calendarBreadcrumb").load(strURL + "?" + strParams);
}

function GetAjaxParams(strMonth, strDay, strYear, strProgramID, strAudienceID, strInitiativeID) {
	var strParams = 'month=' + strMonth + '&day=' + strDay + '&year=' + strYear;
	if (strProgramID != '') strParams += '&pgm=' + strProgramID;
	if (strAudienceID != '') strParams += '&aud=' + strAudienceID;
	if (strInitiativeID != '') strParams += '&ini=' + strInitiativeID;
	
	return strParams;
}

function GetHashArgs() {

	var args = new Object();
	args['month'] = new Date().getMonth() + 1;
	args['day'] = 0;
	args['year'] = new Date().getFullYear();
	args['pgm'] = '';
	args['aud'] = '';
	args['ini'] = '';
	
	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['pgm'] = unescape(params[3]);
	if (params[4]) args['aud'] = unescape(params[4]);
	if (params[5]) args['ini'] = unescape(params[5]);

	return args;
}


