/*
-------------------	CALENDAR      -------------------
*/
function changeDay(date, increment){
	var jsDate = new Date(date);
	jsDate.setDate(jsDate.getDate()+(increment));
	var newMonth = jsDate.getMonth() + 1;
	var newDate = jsDate.getDate() + "/" + newMonth + "/" + jsDate.getFullYear();;
	changeDate(newDate);
}

function changeMonth(date, increment){
	var jsDate = new Date(date);
	if(increment < 0){
		jsDate.setDate(jsDate.getDate()+(increment));
		jsDate.setDate(1);
	}else{
		jsDate.setDate(jsDate.getDate()+(increment));
	}
	
	var newMonth = jsDate.getMonth() + 1;
	var newDate = jsDate.getDate() + "/" + newMonth + "/" + jsDate.getFullYear();;
	changeDate(newDate);
}	

function changeDate(date){
	//alert("in changeDate!");
	var changeDateForm = document.changeDateForm;
	var selectionType = changeDateForm.selectionType.value;
	var jsDate = new Date(date);
	//alert(jsDate);
	//alert(selectionType);
	
	if(selectionType == "0" || selectionType == ""){
		changeDateForm.selectedDate.value = date;
	}else if(selectionType == "1"){
		var dayOfTheWeek = jsDate.getDay();
		//var firstDayOfTheWeek = new Date(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate()-dayOfTheWeek);
		//var lastDayOfTheWeek = new Date(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate()+(6 - dayOfTheWeek));
		var nextWeek = new Date(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate()+7);


		changeDateForm.selectedDate.value = date;
		//changeDateForm.selectedDateStart.value = firstDayOfTheWeek.getMonth()+1 + "/" + firstDayOfTheWeek.getDate()  + "/" + firstDayOfTheWeek.getFullYear();
		//changeDateForm.selectedDateEnd.value = lastDayOfTheWeek.getMonth()+1 + "/" + lastDayOfTheWeek.getDate()  + "/" + lastDayOfTheWeek.getFullYear();;
		changeDateForm.selectedDateStart.value = date;
		var newMonth = nextWeek.getMonth() + 1;
		changeDateForm.selectedDateEnd.value = nextWeek.getDate() + "/" + newMonth + "/" + nextWeek.getFullYear();;

	}else if(selectionType == "2"){
		changeDateForm.selectedDate.value = date;	
		//changeDateForm.selectedDateStart.value = jsDate.getMonth()+1 + "/1/" + jsDate.getFullYear();
		changeDateForm.selectedDateStart.value = date;
		
		//var lastDayOfMonth = new Date(jsDate.getFullYear(), jsDate.getMonth()+1, 0);
		var nextMonth = new Date(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate()+31);
		
		//changeDateForm.selectedDateEnd.value = jsDate.getMonth()+1 + "/" + lastDayOfMonth.getDate() +  "/" + jsDate.getFullYear();
		var newMonth = nextMonth.getMonth() + 1;
		changeDateForm.selectedDateEnd.value = nextMonth.getDate() + "/" + newMonth +  "/" + nextMonth.getFullYear();;
		
	}else if(selectionType == "3"){
		changeDateForm.selectedDate.value = date;
		//changeDateForm.selectedDateStart.value = "1/1/" + jsDate.getFullYear();
		//changeDateForm.selectedDateEnd.value = "12/31/" + jsDate.getFullYear();
		changeDateForm.selectedDateStart.value = date;
		var nextYear = new Date(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate()+365);
		var newMonth = nextYear.getMonth() + 1;
		changeDateForm.selectedDateEnd.value = nextYear.getDate() + "/" + newMonth +  "/" + nextYear.getFullYear();

	}
	
	changeDateForm.submit();
}

function refreshPage(year, month){
	//alert("refreshPage:" + loading);
	if (!loading) {
		var changeDateForm = document.changeDateForm;
		
		var myDate = $("#datepicker").datepicker("getDate");
		var currentMonth = myDate.getMonth()+1;
	
		if(currentMonth != month){
			changeDateForm.selectionType.value = "2";
		}else{
			changeDateForm.selectionType.value = "3";//this used to be 3 - but we dont have year tab any more
		}
		
		var date = new Date(year, month-1, 1);
		var newMonth = date.getMonth() + 1;
		var stringDate = date.getDate() + "/" + newMonth + "/" + date.getFullYear();
		changeDate(stringDate);
		//inst.defaultDate = date;
	}
}




/*
-------------------	FILTER BY FRAGMENT     -------------------
*/
function filterBySponsor(sponsor){
	//alert(sponsor);
	var changeDateForm = document.changeDateForm;
	changeDateForm.filterBySponsor.value = sponsor;
	changeDateForm.submit();
}

function filterByLocation(location){
	//alert(sponsor);
	var changeDateForm = document.changeDateForm;
	changeDateForm.filterByLocation.value = location;
	changeDateForm.submit();
}

function filterByAudience(audience){
	//alert(sponsor);
	var changeDateForm = document.changeDateForm;
	changeDateForm.filterByAudience.value = audience;
	changeDateForm.submit();
}


/*
-------------------	JQUERY TABS      -------------------
*/
function changeTab(index, date){
	var changeDateForm = document.changeDateForm;

	//alert("selected!" + index);	
	if(index == 0){
		changeDateForm.selectionType.value = "0";
	}else if(index == 1){
		changeDateForm.selectionType.value = "1";
	}else if(index == 2){
		changeDateForm.selectionType.value = "2";
	}else if(index == 3){
		changeDateForm.selectionType.value = "3";
	}
	
	changeDate(date);
}




/*
-------------------	EVENT FORM      -------------------
*/

//event form submission input validation
function submitEvent(){
	var today = new Date();
	var startDate = new Date();
	var endDate = new Date();
	var startDateDay;
	var startDateMonth;
	var startDateYear;
	var endDateDay;
	var endDateMonth;
	var endDateYear;

	if(document.Checkin.xStartDate.value != ""){
		//the following assumes dd/MM/yyyy format
		startDateDay = document.Checkin.xStartDate.value.substring(0,2);
		startDateMonth = document.Checkin.xStartDate.value.substring(3,5);
		startDateYear = document.Checkin.xStartDate.value.substring(6);
		startDate.setFullYear(startDateYear, startDateMonth -1, startDateDay);
	}
	
	if(document.Checkin.xEndDate.value != ""){
		//the following assumes dd/MM/yyyy format
		endDateDay = document.Checkin.xEndDate.value.substring(0,2);
		endDateMonth = document.Checkin.xEndDate.value.substring(3,5);
		endDateYear = document.Checkin.xEndDate.value.substring(6);
		endDate.setFullYear(endDateYear, endDateMonth -1, endDateDay);
	}

	if(document.Checkin.dDocTitle.value == ""){ alert("Please provide the Event Title");}
	else if(document.Checkin.xEventCategory.value == ""){ alert("Please provide the Event Category");}
	else if(document.Checkin.xEventType.value == ""){ alert("Please provide the Event Type");}
	else if(document.Checkin.xAudience.value == ""){ alert("Please provide the Audience");}
	else if(document.Checkin.xStartDate.value == ""){ alert("Please provide the Start Date");}
	else if(document.Checkin.xStartDate.value != "" && today>startDate){ alert("Start Date cannot be prior to today");}
	else if(document.Checkin.xEndDate.value != "" && startDate>endDate){ alert("End Date cannot be prior to Start Date");}
	else{
		//this is important so we can conduct a proper search
		if(document.Checkin.xEndDate.value==""){
			document.Checkin.xEndDate.value = document.Checkin.xStartDate.value;
		}

		return true;
	}
	return false;
}

//event form check box dynamic functionality
function checkBox(){
	//alert('isCheckBox: ' + document.Checkin.allDayEvent.value);
	if (document.Checkin.allDayEvent.value=="false"){
		document.Checkin.xStartHour.value=0;
		document.Checkin.xEndHour.value=23;
		document.Checkin.xStartMinute.value=1;
		document.Checkin.xEndMinute.value=59;
		document.Checkin.xStartHour.disabled=true;
		document.Checkin.xEndHour.disabled=true;
		document.Checkin.xStartMinute.disabled=true;
		document.Checkin.xEndMinute.disabled=true;
		document.Checkin.xAllDayEvent.value=1;
		document.Checkin.allDayEvent.value="true";
	}
	else{
		document.Checkin.xStartHour.value=0;
		document.Checkin.xEndHour.value=0;
		document.Checkin.xStartMinute.value=0;
		document.Checkin.xEndMinute.value=0;
		document.Checkin.xStartHour.disabled=false;
		document.Checkin.xEndHour.disabled=false;
		document.Checkin.xStartMinute.disabled=false;
		document.Checkin.xEndMinute.disabled=false;
		document.Checkin.xAllDayEvent.value=0;
		document.Checkin.allDayEvent.value="false";
	}
}






/*
-------------------	RANDOM      -------------------
*/

/* removing the css file included by the std_html_head_declarations - legacy
<!-- overode the std_js_bootstrap_vars in the uofmcustom component*/
function removejscssfile(filename, filetype){
	var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none"; //determine element type to create nodelist from
	var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none"; //determine corresponding attribute to test for
	var allsuspects=document.getElementsByTagName(targetelement);
	for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
		if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){
			allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild();
		}
	}
}
//removejscssfile("skin.css", "css") //remove all occurences of "somestyle.css" on page

