function validateContactForm() {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.ContactForm;
	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (f.iType.value=='N' || f.iType.value=='') {eMsg=eMsg+'- contact type not selected\n'; error=true;}
	if (f.iFirst.value.length == 0) {eMsg=eMsg+'- first name field left blank\n'; error=true;}
	else if (f.iFirst.value.length < 2) {eMsg=eMsg+'- first name entry too short\n'; error=true;}
	if (f.iLast.value.length == 0) {eMsg=eMsg+'- last name field left blank\n'; error=true;}
	else if (f.iLast.value.length < 2) {eMsg=eMsg+'- last name entry too short\n'; error=true;}
	if (f.iPos.value.length == 0) {eMsg=eMsg+'- position field left blank\n'; error=true;}
	else if (f.iPos.value.length < 2) {eMsg=eMsg+'- position entry too short\n'; error=true;}
	if (error) alert(eMsg);
	return !error;
}

function validateParticipantForm() {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.ParticipantForm;
	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (f.iType.value=='N' || f.iType.value=='') {eMsg=eMsg+'- participant type not selected\n'; error=true;}
	if (f.iFirst.value.length == 0) {eMsg=eMsg+'- first name field left blank\n'; error=true;}
	else if (f.iFirst.value.length < 2) {eMsg=eMsg+'- first name entry too short\n'; error=true;}
	if (f.iLast.value.length == 0) {eMsg=eMsg+'- last name field left blank\n'; error=true;}
	else if (f.iLast.value.length < 2) {eMsg=eMsg+'- last name entry too short\n'; error=true;}
	if (f.iSchool.value.length == 0) {eMsg=eMsg+'- school field left blank\n'; error=true;}
	else if (f.iSchool.value.length < 2) {eMsg=eMsg+'- school entry too short\n'; error=true;}
	if (f.iCity.value.length == 0) {eMsg=eMsg+'- city field left blank\n'; error=true;}
	else if (f.iCity.value.length < 2) {eMsg=eMsg+'- city entry too short\n'; error=true;}
	if (error) alert(eMsg);
	return !error;
}

function validateCategoryForm() {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.CategoryForm;
	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (f.iCat.value.length == 0) {eMsg=eMsg+'- category field left blank\n'; error=true;}
	else if (f.iCat.value.length < 2) {eMsg=eMsg+'- category entry too short\n'; error=true;}
	if (error) alert(eMsg);
	return !error;
}

function validateEquipmentForm(Mode) {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.EquipmentForm;
	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (Mode == 'N') {
		if (f.iCat.value=='N' || f.iCat.value=='') {eMsg=eMsg+'- category not selected\n'; error=true;}
	}
	if (f.iEquip.value.length == 0) {eMsg=eMsg+'- equipment field left blank\n'; error=true;}
	else if (f.iEquip.value.length < 2) {eMsg=eMsg+'- equipment entry too short\n'; error=true;}
	if (error) alert(eMsg);
	return !error;
}

function validateEquipReqForm(ulY,ulM,ulD) {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.getElementById('EqReqForm');
//	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (f.iSchool.value.length == 0) {eMsg=eMsg+'- school field left blank\n'; error=true;}
	else if (f.iSchool.value.length < 2) {eMsg=eMsg+'- school entry too short\n'; error=true;}
	if (f.iTeacher.value.length == 0) {eMsg=eMsg+'- teacher field left blank\n'; error=true;}
	else if (f.iTeacher.value.length < 2) {eMsg=eMsg+'- teacher entry too short\n'; error=true;}
	if (f.iEmail.value.length == 0) {eMsg=eMsg+'- e-mail field left blank\n'; error=true;}
	else if (f.iEmail.value.length < 2) {eMsg=eMsg+'- e-mail entry too short\n'; error=true;}
	if (f.iReq1.value=='N' || f.iReq1.value=='') {eMsg=eMsg+'- first request type not selected\n'; error=true;}
	if (f.iReq1.value=='I') {
		if (f.iEquip1.value=='N' || f.iEquip1.value=='') {eMsg=eMsg+'- first request equipment not selected\n'; error=true;}
	}
	if (f.iEquip1.value == 'I') {eMsg=eMsg+'- invalid option selected in first request equipment field\n'; error=true;}
	if (!f.iDate1.value.match(/^[0-3][0-9].0|1[0-9].19|20[0-9]{2}/)) {eMsg=eMsg+'- first request date incorrectly formatted\n'; error=true;}
	else {
		var aDate = f.iDate1.value.split('.');
		var month = aDate[0]-1;
		var day = aDate[1];
		var year = aDate[2];
		chkDate = new Date(year,month,day);
		if (year!=chkDate.getFullYear() || month!=chkDate.getMonth() || day!=chkDate.getDate()) {eMsg=eMsg+'- first request date incorrectly formatted\n'; error=true;}
		else {
			todayDate = new Date();
			futureLimit = new Date(ulY,ulM,ulD);
			if (chkDate<todayDate || chkDate>futureLimit){eMsg=eMsg+'- first request date outside of permitted range\n'; error=true;}
		}
	}
	if (f.iReq2.value!='N' || f.iEquip2.value!='N' || f.iDate2.value!='') {
		if (f.iReq2.value=='N' || f.iReq2.value=='') {eMsg=eMsg+'- second request type not selected\n'; error=true;}
		if (f.iReq2.value=='I') {
			if (f.iEquip2.value=='N' || f.iEquip2.value=='') {eMsg=eMsg+'- second request equipment not selected\n'; error=true;}
		}
		if (f.iEquip2.value == 'I') {eMsg=eMsg+'- invalid option selected in second request equipment field\n'; error=true;}
		if (!f.iDate2.value.match(/^[0-3][0-9].0|1[0-9].19|20[0-9]{2}/)) {eMsg=eMsg+'- second request date incorrectly formatted\n'; error=true;}
		else {
			var aDate = f.iDate2.value.split('.');
			var month = aDate[0]-1;
			var day = aDate[1];
			var year = aDate[2];
			chkDate = new Date(year,month,day);
			if (year!=chkDate.getFullYear() || month!=chkDate.getMonth() || day!=chkDate.getDate()) {eMsg=eMsg+'- second request date incorrectly formatted\n'; error=true;}
			else {
				todayDate = new Date();
				futureLimit = new Date(ulY,ulM,ulD);
				if (chkDate<todayDate || chkDate>futureLimit){eMsg=eMsg+'- second request date outside of permitted range\n'; error=true;}
			}
		}
	}
	if (f.iReq3.value!='N' || f.iEquip3.value!='N' || f.iDate3.value!='') {
		if (f.iReq3.value=='N' || f.iReq3.value=='') {eMsg=eMsg+'- third request type not selected\n'; error=true;}
		if (f.iReq3.value=='I') {
			if (f.iEquip3.value=='N' || f.iEquip3.value=='') {eMsg=eMsg+'- third request equipment not selected\n'; error=true;}
		}
		if (f.iEquip3.value == 'I') {eMsg=eMsg+'- invalid option selected in third request equipment field\n'; error=true;}
		if (!f.iDate3.value.match(/^[0-3][0-9].0|1[0-9].19|20[0-9]{2}/)) {eMsg=eMsg+'- third request date incorrectly formatted\n'; error=true;}
		else {
			var aDate = f.iDate3.value.split('.');
			var month = aDate[0]-1;
			var day = aDate[1];
			var year = aDate[2];
			chkDate = new Date(year,month,day);
			if (year!=chkDate.getFullYear() || month!=chkDate.getMonth() || day!=chkDate.getDate()) {eMsg=eMsg+'- third request date incorrectly formatted\n'; error=true;}
			else {
				todayDate = new Date();
				futureLimit = new Date(ulY,ulM,ulD);
				if (chkDate<todayDate || chkDate>futureLimit){eMsg=eMsg+'- third request date outside of permitted range\n'; error=true;}
			}
		}
	}
	if (error) alert(eMsg);
	return !error;
}

function validateAvailabilityForm() {
	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	f = document.getElementById('availabilityForm');
	if (f.iEq1.value=='N' && f.iEq2.value=='N' && f.iEq3.value=='N') {eMsg=eMsg+'- At least one equipment must be selected\n'; error=true;}
	if (f.iEq1.value == 'I') {eMsg=eMsg+'- invalid option selected in equipment 1 field\n'; error=true;}
	if (f.iEq2.value == 'I') {eMsg=eMsg+'- invalid option selected in equipment 2 field\n'; error=true;}
	if (f.iEq3.value == 'I') {eMsg=eMsg+'- invalid option selected in equipment 3 field\n'; error=true;}
	if (error) alert(eMsg);
	return !error;
}

function allTrim (str) {
	while (str.substring(0,1)==' ') {str=str.substring(1,str.length)}
	while (str.substring(str.length-1,str.length)==' ') {str=str.substr(0,str.length-1)}
	return str;
}

function deleteGalleryImg(ImageName) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer    
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX! \nPlease update your browser and visit our website again.");
				return false;
			}
		}
	}
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var ret = xmlHttp.responseText
			if (xmlHttp.responseText.substr(0,7)=='Success') {
				document.getElementById("ID_"+ImageName).innerHTML="";
			}
			alert(ret);
		}
	}
	
	scriptCall="v2/includes/__cmsgalleryimgdel.php?imgName="+ImageName;
	xmlHttp.open("GET",scriptCall,true);
	xmlHttp.send(null);
	
}

function rotateGalleryImg(ImageName,dir) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer    
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX! \nPlease update your browser and visit our website again.");
				return false;
			}
		}
	}
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var ret = xmlHttp.responseText;
				element = document.getElementById('ID_'+ImageName);
				unique = new Date().getTime();
				document.getElementById('ID_'+ImageName).innerHTML = ''+
					'<div class="CMSgalleryitem">'+
					'<img src="v2/img/photogallery/'+ret+'?'+unique+'" class="CMSgalleryImg" id="'+ret+'" />'+
					'<p class="space6">'+ret+'</p>'+
					'<p class="space12">'+
					'<a href="JavaScript:rotateGalleryImg(\''+ret+'\',\'R\');" >turn 90&deg; right</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
					'<a href="JavaScript:rotateGalleryImg(\''+ret+'\',\'L\');" >turn 90&deg; left</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
					'<a href="JavaScript:deleteGalleryImg(\''+ret+'\');" onclick="return window.confirm(\'OK to delete image '+ret+'. ?\\n\\nThis operation cannot be undone.\')">delete</a>'+
					'</p>'+
					'<form onsubmit="return imageTitle(this, \''+ret+'\')">'+
					'<p class="space0">new title: <input name="iTitle" type="text" maxlength="60" class="w300" /> &nbsp; <input type="submit" value="Go" class="Btn" /></p>'+
					'</form>'+
					'<div class="stopFloat"></div>'+
					'</div>';
					element.id = 'ID_'+ret;
		}
	}
	unique = new Date().getTime();
	scriptCall="v2/includes/__cmsgalleryimgrot.php?imgName="+ImageName+"&dir="+dir+'&t='+unique;
	xmlHttp.open("GET",scriptCall,true);
	xmlHttp.send(null);
	
}

function charCountDown(inputField,outputTextSpanId,maxlen){
	if (document.all) outputText = document.all.item(outputTextSpanId);
	if (document.getElementById) outputText = document.getElementById(outputTextSpanId);
	outputText.innerHTML = maxlen - inputField.value.length;
	if (inputField.value.length>maxlen) {
		inputField.value=inputField.value.substring(0,maxlen);
		outputText.innerHTML = 0;
	}
	
}

function manageRequest(ID) {
	window.open('isisreqmgt.php?ID='+ID,'','toolbar=0,menubar=0,resizable=1,dependent=0,status=0,scrollbars=1,width=780,height=580,left=10,top=10')
}

function calendarPage(SunTs) {
	window.open('isiscalpage.php?SunTs='+SunTs,'','toolbar=0,menubar=0,resizable=1,dependent=0,status=0,scrollbars=1,width=600,height=500,left=30,top=20')
}

function imageTitle(f,ImageName) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer    
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX! \nPlease update your browser and visit our website again.");
				return false;
			}
		}
	}
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var ret = xmlHttp.responseText;
			if (ret=='Success.') {
				element = document.getElementById('ID_'+ImageName);
				unique = new Date().getTime();
				document.getElementById('ID_'+ImageName).innerHTML = ''+
					'<div class="CMSgalleryitem">'+
					'<img src="v2/img/photogallery/'+ImageName+'?'+unique+'" class="CMSgalleryImg" id="'+ImageName+'" />'+
					'<p class="space6">'+ImageName+'</p>'+
					'<p class="space12">'+
					'<a href="JavaScript:rotateGalleryImg(\''+ImageName+'\',\'R\');" >turn 90&deg; right</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
					'<a href="JavaScript:rotateGalleryImg(\''+ImageName+'\',\'L\');" >turn 90&deg; left</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
					'<a href="JavaScript:deleteGalleryImg(\''+ImageName+'\');" onclick="return window.confirm(\'OK to delete image '+ImageName+'. ?\\n\\nThis operation cannot be undone.\')">delete</a>'+
					'</p>'+
					'<form onsubmit="return imageTitle(this, \''+ImageName+'\')">'+
					'<p class="space0">new title: <input name="iTitle" type="text" maxlength="60" class="w300" /> &nbsp; <input type="submit" value="Go" class="Btn" /></p>'+
					'</form>'+
					'<div class="stopFloat"></div>'+
					'</div>';
			} else {
				alert(ret);
			}
			return false;
		}
	}
	unique = new Date().getTime();
	scriptCall="./v2/includes/__cmsgalleryimgtit.php?imgName="+ImageName+'&title='+f.iTitle.value;
	xmlHttp.open("GET",scriptCall,true);
	xmlHttp.send(null);
	return false;
}







function validateEquipReqForm2(ulY,ulM,ulD) {

	var error = false;
	var eMsg = 'Warning,\n\nplease correct the following error(s):\n\n';
	var f = document.forms[0];
	var i, input, lastreq;
	
	for (i=0; i<f.elements.length; i++) if (f.elements[i].name.substr(0,1)=='i') f.elements[i].value = allTrim(f.elements[i].value);
	if (f.iSchool.value.length == 0) {eMsg=eMsg+'- school field left blank\n'; error=true;}
	else if (f.iSchool.value.length < 2) {eMsg=eMsg+'- school entry too short\n'; error=true;}
	if (f.iTeacher.value.length == 0) {eMsg=eMsg+'- teacher field left blank\n'; error=true;}
	else if (f.iTeacher.value.length < 2) {eMsg=eMsg+'- teacher entry too short\n'; error=true;}
	if (f.iEmail.value.length == 0) {eMsg=eMsg+'- e-mail field left blank\n'; error=true;}
	else if (f.iEmail.value.length < 2) {eMsg=eMsg+'- e-mail entry too short\n'; error=true;}
	
	for (i=3; i<f.elements.length; i++) {
		input = f.elements[i];
		if (input.name.substr(0,4)=='iReq') {
			if (input.value=='N' || input.value=='') {eMsg=eMsg+'- request #'+input.name.substr(4)+': type not selected\n'; error=true;}
			lastreq = input.value;
		}
		if (input.name.substr(0,6)=='iEquip'){
			if (lastreq=='Equipment request') {
				if (input.value=='N' || input.value=='') {eMsg=eMsg+'- request #'+input.name.substr(6)+': equipment not selected\n'; error=true;}
			}
			if (input.value == 'I') {eMsg=eMsg+'- request #'+input.name.substr(6)+': invalid option selected in equipment field\n'; error=true;}
		}
		if (input.name.substr(0,5)=='iDate'){
				if (input.value=='') {eMsg=eMsg+'- request #'+input.name.substr(5)+': date not entered\n'; error=true;}
				else if (!input.value.match(/^[0-3][0-9].0|1[0-9].19|20[0-9]{2}/)) {eMsg=eMsg+'- request #'+input.name.substr(5)+': date incorrectly formatted\n'; error=true;}
				else {
					var aDate = input.value.split('.');
					var month = aDate[0]-1;
					var day = aDate[1];
					var year = aDate[2];
					chkDate = new Date(year,month,day);
					if (year!=chkDate.getFullYear() || month!=chkDate.getMonth() || day!=chkDate.getDate()) {eMsg=eMsg+'- request #'+input.name.substr(5)+': date incorrectly formatted\n'; error=true;}
					else {
						todayDate = new Date();
						futureLimit = new Date(ulY,ulM,ulD);
						if (chkDate<todayDate || chkDate>futureLimit){eMsg=eMsg+'- request #'+input.name.substr(5)+': date outside of permitted range\n'; error=true;}
					}
				}
		}
	}

	if (error) alert(eMsg);
	return !error;
}