<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function worksheetSubmit(){
	var form = window.document.worksheet;
	var i=0;
	var j=0;
	var k=0;
	var temp;
	var groupName
	var questionAnswered;
	var elementPos=0;
	var parts=0
	var found = 0

// 	alert("Total Questions " + form.totalquestions.value);
  	
	worksheetid =  form.elements["worksheet"].value
	if(form.elements["spreadsheet-" +worksheetid]){
		//for(z=0; z <form.length; z++){
		//	if(form.elements[z].value == "spreadsheet-"+worksheetid){
		//		found += 1;
		//	}
		//}
		if ( form.elements["spreadsheet-" +worksheetid].value == ""){
			form.elements['errorMsg'].value	= "You must attach your spreadsheet before submitting this exercise";			  		
			form.elements['errorMsg'].focus();
	  		return false;
		}
	}


  	for(i=1; i<=form.totalquestions.value; i++){
//	  	alert("Question " +i);
//		alert(form.length);
		var position = "q" +i+ "-parts";
//		alert(position);
//		alert(form.elements[position].value);
		
		for(pos=0; pos<form.length; pos++){
			if( form.elements[pos].name == position ){
				elementPos = pos+1;
//				alert(form.elements[pos].value);
				parts = eval(form.elements[pos].value);
			}
		}
		
//		alert("Position " +elementPos);
		//alert("Parts " +parts);
		var lastElement = elementPos + parts;
		
		// for each sub-part of the main questions - i.e. a, b, c ...
		j=elementPos;

//  		questionAnswered=false;

		if ((parts == 0) && (form.elements[j].type == 'text') && form.elements[j].name != "errorMsg" && form.elements[j].name != "errorMsg2" && form.elements[j].name.indexOf("-parts") == -1) {
			if (form.elements[j].value.indexOf('spreadsheet') == -1) {
				if( isNaN(form.elements[j].value) ){
					form.elements['errorMsg'].value	= "A number is expected for Question " +i+ ".  Do not use commas";
					form.elements['errorMsg2'].value	= "A number is expected for Question " +i+ ".  Do not use commas";
				  	form.elements[j].focus();
				  	return false;
				 }
			}
		}

		for(counter=0; counter <= parts; counter++){
//		alert("Counter " +counter+ " Parts " +parts);
//	  	for(j=elementPos; j < lastElement+elementPos; ){
//	  		alert(j+ " " +form.elements[j].name);
			/*alert("Type " +form.elements[j].type+ " Name " +form.elements[j].name);
			alert(form.elements[j].innerHTML);*/
			if( form.elements[j].type && form.elements[j].name != "errorMsg2" && form.elements[j].name != "errorMsg" && form.elements[j].type != "button" && form.elements[j].name.indexOf("-parts") == -1){
	  			if( form.elements[j].type == 'radio' ){
					groupName = eval("document.worksheet." +form.elements[j].name);
					//alert(form.elements[j].name);
					lastElement = groupName.length * parts;
//					alert("Group Size " +groupName.length+ " Parts " +parts);
					// for each answer option
					var answerstatus = new Array();
				  	for (loop=0; loop < groupName.length; loop++){
				  		if( groupName[loop].checked ){
				  			questionAnswered=true;
							answerstatus[loop] = true;
//				  			alert(groupName[loop].checked+ " " +groupName[loop].value);
				  		}
				  	}
					//alert(answerstatus.length + " length");
				  	//if( !(questionAnswered) ){
				  	if ( answerstatus.length <= 0 ){
						form.elements['errorMsg'].value	= "Please answer all parts of Question " +i;			  		
						if (form.elements['errorMsg2'] != null) {
							form.elements['errorMsg2'].value	= "Please answer all parts of Question " +i;
						}
						//alert("Please answer all parts of Question " +i);
				  		return false;
				  	}
	  			} else if( form.elements[j].type == 'checkbox' ){
					groupName = eval("document.worksheet." +form.elements[j].name);
					lastElement = groupName.length * parts;
					if(groupName.length){
//						alert("Group Size " +groupName.length+ " Parts " +parts);
						// for each answer option
					  	for (loop=0; loop < groupName.length; loop++){
					  		if( groupName[loop].checked ){
					  			questionAnswered=true;
//					  			alert(groupName[loop].checked+ " " +groupName[loop].value);
					  		}
					  	}
					} else {
			  			if( form.elements[j].checked ){
			  				questionAnswered=true;
//			  				alert(form.elements[j].checked+ " - " +form.elements[j].value);
			  			} 
					}
	  			} else if( form.elements[j].type == 'text' ){
					groupName = eval("document.worksheet." +form.elements[j].name);
					lastElement = groupName.length * parts;
					if(groupName.length){
//						alert("Group Size " +groupName.length+ " Parts " +parts);
						// for each answer option
					  	for (loop=0; loop < groupName.length; loop++){
					  		if( trim(groupName[loop].value) != ''){
				  				if( isNaN(form.elements[j].value) ){
									form.elements['errorMsg'].value	= "A number is expected for Question " +i+ ".  Do not use commas";
								  	form.elements['errorMsg2'].value	= "A number is expected for Question " +i+ ".  Do not use commas";
				  					//alert("A number is expected for the highlighted question");
				  					form.elements[j].focus();
				  					return false;
				  				}
					  			questionAnswered=true;
//					  			alert(groupName[loop].value);
					  		}
					  	}
					} else {
			  			if( trim(form.elements[j].value) != ''){
			  				if( isNaN(form.elements[j].value) ){
								form.elements['errorMsg'].value	= "A number is expected for Question " +i+ ".  Do not use commas";
								form.elements['errorMsg2'].value	= "A number is expected for Question " +i+ ".  Do not use commas";								
			  					//alert("A number is expected for the highlighted question");
			  					form.elements[j].focus();
			  					return false;
			  				}
			  				questionAnswered=true;
//			  				alert(form.elements[j].value);
			  			}  			
			  		}
	  			} else if( form.elements[j].type == 'textarea' ){
					groupName = eval("document.worksheet." +form.elements[j].name);
					lastElement = groupName.length * parts;
					if(groupName.length){
//						alert("Group Size " +groupName.length+ " Parts " +parts);
						// for each answer option
					  	for (loop=0; loop < groupName.length; loop++){
					  		if( groupName[loop].value != '' ){
					  			questionAnswered=true;
//					  			alert(groupName[loop].value);
					  		}
					  	}
					} else {
						var freeFormString = new String()
						freeFormString = form.elements[j].value
			  			if( freeFormString.length > 3000){
							form.elements['errorMsg'].value	= "You have exceeded the max character limit of 3000 on Question " +i;	
							form.elements['errorMsg'].focus();
							return false;
						}
			  			if( form.elements[j].value != ''){
			  				questionAnswered=true;
//			  				alert(form.elements[j].value);
			  			} 
			  		}
	  			} else if( form.elements[j].type == 'hidden'){
					groupName = eval("document.worksheet." +form.elements[j].name);
					lastElement = groupName.length * parts;
//					if(groupName.length){
//						alert("Group Size " +groupName.length+ " Parts " +parts);
//						//for each answer option
//					  	for (loop=0; loop < groupName.length; loop++){
//					  		if( groupName[loop].value != '' ){
//					  			questionAnswered=true;
//					  			alert(groupName[loop].value);
//					  		}
//					  	}
//					} else {
			  			if( form.elements[form.elements[j].value].value == ''){
							form.elements['errorMsg'].value	= "Please include your spreadsheet in this worksheet submission";			  		
			  				//alert("Please include your spreadsheet in this worksheet submission");
			  				return false;
			  			} else {
				  			questionAnswered=true;
//			  				alert(form.elements[form.elements[j].value].value);
			  			}
//			  		}
	  			}
	  			
	  		if( !(questionAnswered) ){
				form.elements['errorMsg'].value	= "Please fully answer Question " +i;			  		
				form.elements['errorMsg'].focus();
				//alert("Please fully answer Question " +i);
				return false;
			} else {
		  		questionAnswered=false;
			}
			
	  		}

			if( form.elements[j].type ){
				groupName = eval("document.worksheet." +form.elements[j].name);
			  	if( groupName.length > 1 ){
			  		j = j + groupName.length;
			  	} else {
			  		j++;
			  	}
			}
			
//	  		alert("j = " +j+ " lastElement = " +lastElement+ " + ElementPos " +elementPos );
	  	} //end for-each sub-part of question loop
  	} //end for-each question loop 	
	
	form.elements['exportLevel'].value = "";
	form.elements['exportUnit'].value = "";
	form.elements['exportWorksheet'].value = "";
  	
  	form.submit();
}


function worksheetEditSubmit(){
	var form = window.document.worksheetupdate;

	var i=0;
	var j=0;
	var k=0;
	var temp;
	var groupName
	var questionAnswered;

  	for(i=1; i<=form.totalquestions.value; i++){
//	  	alert("Question " +i);
//		alert(form.length);
		var position = "q" +i+ "-parts";
//		alert(position);
//		alert(form.elements[position].value);

		// GET POSITION OF QUESTION i ON THE FORM
		for(pos=0; pos < form.length; pos++){
			if( form.elements[pos].name == position ){
				elementPos = pos;
				if(form.elements[pos-2].value == ""){
					form.elements['errorMsg'].value	= "You must provide text for Question " +i;			  		
					form.elements['errorMsg'].focus();
					return false;
				}
//				else if(form.elements[pos-1].value == ""){
//					form.elements['errorMsg'].value	= "You must provide a hint for Question " +i;			  		
//					form.elements['errorMsg'].focus();
//					return false;
//				}
				parts = eval(form.elements[pos].value);
			}
		}
		
		index = 1;
		for( counter = 1; counter <= parts; counter++){
		options = 0;
			if( form.elements[elementPos+index].value == "" ){
				form.elements['errorMsg'].value	= "You must provide text for Part " +counter+ " of Question " +i;			  		
				form.elements['errorMsg'].focus();
				return false;
			}
			// MULTIPLE CHOICE QUESTION
			if( form.elements[elementPos+index].type == 'radio' ){
				groupPos = index;
				for( loop=1; loop <= 6; loop++ ){
					index++;
					if( form.elements[elementPos+index].value != "" ){
						options++;
						lastOptionPos = loop;
					}
					index++;
				}
				if( options <= 1 ){
					form.elements['errorMsg'].value	= "Question "+i+ " Part " +counter+ " must have more than option to select from";					
					form.elements['errorMsg'].focus();
					return false;
				} else if (lastOptionPos > options){
					form.elements['errorMsg'].value	= "An empty box has been identified between answer options on Question " +i+ " - ensure answer options are provided from left to right";					
					form.elements['errorMsg'].focus();
					return false;					
				}

				questionAnswered = false;
				groupName = eval("document.worksheetupdate." +form.elements[elementPos+groupPos].name);
			  	for (loop=0; loop < groupName.length; loop++){
			  		if( groupName[loop].checked ){
			  			questionAnswered=true;
			  		} 
			  	}
			  	if( !(questionAnswered) ){
					form.elements['errorMsg'].value	= "Please indicate which is the correct answer on Question " +i+ " Part " +counter;					
					form.elements['errorMsg'].focus();
			  		return false;
			  	}
			}
			// COMPLEX MULTIPLE CHOICE QUESTION
			else if( form.elements[elementPos+index].type == 'checkbox' ){
				groupPos = index;
				for( loop=1; loop <= 6; loop++ ){
					index++;
					if( form.elements[elementPos+index].value != "" || form.elements[elementPos+index-1].checked ){
						options++;
						lastOptionPos = loop;
					}
					index++;
				}
				if( options <= 1 ){
					form.elements['errorMsg'].value	= "Question "+i+ " Part " +counter+ " must have more than option to select from";					
					form.elements['errorMsg'].focus();
					return false;
				} else if (lastOptionPos > options){
					form.elements['errorMsg'].value	= "An empty box has been identified between answer options on Question " +i+ " - ensure answer options are provided from left to right";					
					form.elements['errorMsg'].focus();
					return false;					
				}
				
				questionAnswered = false;
				groupName = eval("document.worksheetupdate." +form.elements[elementPos+groupPos].name);
			  	for (loop=0; loop < groupName.length; loop++){
			  		if( groupName[loop].checked ){
			  			questionAnswered=true;
			  		} 
			  	}
			  	if( !(questionAnswered) ){
					form.elements['errorMsg'].value	= "Please indicate which is the correct answer on Question " +i+ " Part " +counter;					
					form.elements['errorMsg'].focus();
			  		return false;
			  	}
				
			}
			// MATH QUESTION
			else if( form.elements[elementPos+index].type == 'text' ){
				if(form.elements[elementPos+index].value == ""){
					form.elements['errorMsg'].value	= "You have not provided the correct answer for Question " +i;					
					form.elements['errorMsg'].focus();
					return false;					
				}
//				index++;
				if( form.elements[elementPos+index].value == "" || form.elements[elementPos+index+1].value == "" ){
					form.elements['errorMsg'].value	= "You must provide both the upper and lower range limits of the allowable mathematical answer on Question " +i;					
					form.elements['errorMsg'].focus();
					return false;					
				}
			}
		}
  	} //end for-each question loop 	

	form.submit();

}




function login(){

	var form = window.document.loginForm;
	
	form.submit();

}

function doSearch(){

	var form = window.document.searchForm;
	
	form.submit();

}


function redirect(link){

	window.location = link;

}


function validateMessage(){

	var form = window.document.message;
	
	if( form.elements['parentid'].value=="" || form.elements['parentid'].value==0 ){
		redirect('messages.asp');
	}
	if( form.elements['to_userid'].value=="" && form.elements['from_userid'].value==1 ){
		form.elements['errorMsg'].value = "Please select who this message is for";
		form.elements['to_userid'].focus();
		return false;
	}
	if( form.elements['to_userid'].value=="" || form.elements['to_userid'].value==0 ){
		redirect('messages.asp');
	}
	if( form.elements['from_userid'].value=="" || form.elements['from_userid'].value==0 ){
		redirect('messages.asp');
	}
	
	if( form.elements['title'].value=="" ){
		form.elements['errorMsg'].value = "Please provide a title in your reply";
		form.elements['title'].focus();
		return false;
	}
	
	if( form.elements['message'].value=="" ){
		form.elements['errorMsg'].value = "Please provide a message in your reply";
		form.elements['message'].focus();
		return false;
	} else {
		if (form.elements['worksheet'] == true) {
			form.elements['message'].value = "Worksheet: " +form.elements['worksheet'].value + "\n\n" +form.elements['message'].value
		}
	}

	form.submit();
}


function updateDeadlineDate(){
	var error=0;
	if(window.document.newDelegateForm){
		var form = window.document.newDelegateForm;
	}
	else if (window.document.updateDelegateForm) {
		var form = window.document.updateDelegateForm;
	}
	
	dateString = form.elements["nextAttendance"].value.split("/");
	isNaN(dateString[0]) ? error=1 : dateString[0] = eval(dateString[0]);
	isNaN(dateString[1]) ? error=1 : dateString[1] = eval(dateString[1]);
	isNaN(dateString[2]) ? error=1 : dateString[2] = eval("20" + dateString[2]);
	
	var nextAttendance = new Date(dateString[2],dateString[1]-1,dateString[0]);
//	alert(nextAttendance)
	
	nextAttendance.getDate(nextAttendance.setDate(nextAttendance.getDate()-10));
	if( nextAttendance.getDate() < 10 ){
		newString = "0" +nextAttendance.getDate()+ "/";
	} else{
		newString = nextAttendance.getDate()+ "/";
	}
	if( nextAttendance.getMonth() < 10 ){
		newString += "0" +(nextAttendance.getMonth()+1) + "/";	
	} else {
		newString += (nextAttendance.getMonth()+1) + "/";	
	}
	year = nextAttendance.getFullYear().toString();
	newString += year.charAt(2)+ year.charAt(3);

//	alert(nextAttendance)
	if(!error){
		form.deadlineDate.value = newString;
		form.deadlineDate2.value = newString;
	}
	
}


function addDelegate(){
	var form = window.document.newDelegateForm;
	var courseSize;
	var dateString;
	var error=0;
	var d=new Date() 
	var year;
	

	if( form.elements["firstName"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates first name";
		form.elements['firstName'].focus();
		return false;
	}
	if( form.elements["lastName"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates last name";
		form.elements['lastName'].focus();
		return false;
	}
	if( form.elements["email"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates email address";
		form.elements['email'].focus();
		return false;
	}
	if( !(checkMail(form.elements['email'].value)) ){
		form.elements['errorMsg'].value = "The entered email address is invalid - please re-type the email address";
		form.elements['email'].focus();
		return false
	}
	if( !(form.elements["course1"].checked) ){
		form.elements["course1"].value='0';
	}
	if( !(form.elements["course2"].checked) ){
		form.elements["course2"].value='0';
	}
	if( !(form.elements["course3"].checked) ){
		form.elements["course3"].value='0';
	}
	
	var course_adminUser_exists = (form.elements["course_adminUser"]!=null)
	var course_adminUser = (course_adminUser_exists?form.elements["course_adminUser"].checked:false)
	if(course_adminUser){
		if( !course_adminUser && !(form.elements["course1"].checked) && !(form.elements["course2"].checked) && !(form.elements["course3"].checked) ){
			form.elements['errorMsg'].value = "New Delegates must be given access to at least one course";
			return false;
		}
	} else {
		if( !(form.elements["course1"].checked) && !(form.elements["course2"].checked) && !(form.elements["course3"].checked) ){
			form.elements['errorMsg'].value = "New Delegates must be given access to at least one course";
			return false;
		}
	}
	
	if(!course_adminUser){
		if( form.elements["nextAttendance"].value == "" ){
			form.elements['errorMsg'].value = "Please provide the Next Attendance date";
			form.elements['nextAttendance'].focus();
			return false;
		}
	
		dateString = form.elements["nextAttendance"].value.split("/");
		isNaN(dateString[0]) ? error=1 : dateString[0] = eval(dateString[0]);
		isNaN(dateString[1]) ? error=1 : dateString[1] = eval(dateString[1]);
		isNaN(dateString[2]) ? error=1 : dateString[2] = eval("20" + dateString[2]);
		
		var nextAttendance = new Date(dateString[2],dateString[1]-1,dateString[0]);
		
		nextAttendance.getDate(nextAttendance.setDate(nextAttendance.getDate()-10));
		if( nextAttendance.getDate() < 10 ){
			newString = "0" +nextAttendance.getDate()+ "/";
		} else{
			newString = nextAttendance.getDate()+ "/";
		}
		if( nextAttendance.getMonth() < 10 ){
			newString += "0" +(nextAttendance.getMonth()+1) + "/";	
		} else {
			newString += (nextAttendance.getMonth()+1) + "/";	
		}
		year = nextAttendance.getFullYear().toString();
		newString += year.charAt(2)+ year.charAt(3);
	
		form.deadlineDate.value = newString;
		form.deadlineDate2.value = newString;
	
		if( error ){
			form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
			form.deadlineDate.value = "";
			return false;		
		} else {
			// CHECK MONTH ENTERED IS BETWEEN 1 AND 12
			if( dateString[1] < 1 || dateString[1] > 12 ){
				form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
				form.deadlineDate.value = "";
				return false;		
			} else if(dateString[1] == 2){
				if(dateString[2] % 4 == 0){
					if( dateString[0] > 29 ){
						form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
						form.deadlineDate.value = "";
						return false;		
					}
				} else {
					if( dateString[0] > 28 ){
						form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
						form.deadlineDate.value = "";
						return false;		
					}
				}
			} else if(dateString[1] == 4 || dateString[1] == 6 || dateString[1] == 9 || dateString[1] == 11){
				if( dateString[0] > 30 ){
					form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
					form.deadlineDate.value = "";
					return false;		
				}
			} else if(dateString[1] == 1 || dateString[1] == 3 || dateString[1] == 5 || dateString[1] == 7 || dateString[1] == 8 || dateString[1] == 10 || dateString[1] == 12){
				if( dateString[0] > 31 ){
					form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
					form.deadlineDate.value = "";
					return false;		
				}
			}
			// CHECK DAY IS BETWEEN 1 AND 31
			if( dateString[0] < 1 || dateString[0] > 31){
				form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
				form.deadlineDate.value = "";
				return false;		
			}		
			// CHECK YEAR ENTERED IS IN THE FUTURE
			if( d.getFullYear() > dateString[2] ){
				form.elements['errorMsg'].value = "The Next Attendance date you have entered has already passed.  Please enter a future date";
				form.deadlineDate.value = "";
				return false;		
			}
		}
	}
	
	form.submit();

}


function updateDelegate(){
	var form = window.document.updateDelegateForm;
	var courseSize;
	var dateString;
	var error=0;
	var d=new Date() 
	var year;
	

	if( form.elements["firstName"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates first name";
		form.elements['firstName'].focus();
		return false;
	}
	if( form.elements["lastName"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates last name";
		form.elements['lastName'].focus();
		return false;
	}
	if( form.elements["email"].value == "" ){
		form.elements['errorMsg'].value = "Please provide the Delegates email address";
		form.elements['email'].focus();
		return false;
	}
	if( !(checkMail(form.elements['email'].value)) ){
		form.elements['errorMsg'].value = "The entered email address is invalid - please re-type the email address";
		form.elements['email'].focus();
		return false
	}
	if( !(form.elements["course1"].checked) ){
		form.elements["course1"].value='0';
	}
	if( !(form.elements["course2"].checked) ){
		form.elements["course2"].value='0';
	}
	if( !(form.elements["course3"].checked) ){
		form.elements["course3"].value='0';
	}
	
	var course_adminUser_exists = (form.elements["course_adminUser"]!=null)
	var course_adminUser = (course_adminUser_exists?form.elements["course_adminUser"].checked:false)
	if(course_adminUser){
		if( !course_adminUser && !(form.elements["course1"].checked) && !(form.elements["course2"].checked) && !(form.elements["course3"].checked) ){
			form.elements['errorMsg'].value = "New Delegates must be given access to at least one course";
			return false;
		}
	} else {
		if( !(form.elements["course1"].checked) && !(form.elements["course2"].checked) && !(form.elements["course3"].checked) ){
			form.elements['errorMsg'].value = "New Delegates must be given access to at least one course";
			return false;
		}
	}
	
	if (!course_adminUser){
		if( form.elements["nextAttendance"].value == "" ){
			form.elements['errorMsg'].value = "Please provide the Next Attendance date";
			form.elements['nextAttendance'].focus();
			return false;
		}
	
		dateString = form.elements["nextAttendance"].value.split("/");
		isNaN(dateString[0]) ? error=1 : dateString[0] = eval(dateString[0]);
		isNaN(dateString[1]) ? error=1 : dateString[1] = eval(dateString[1]);
		isNaN(dateString[2]) ? error=1 : dateString[2] = eval("20" + dateString[2]);
		
		var nextAttendance = new Date(dateString[2],dateString[1]-1,dateString[0]);
		
		nextAttendance.getDate(nextAttendance.setDate(nextAttendance.getDate()-10));
		if( nextAttendance.getDate() < 10 ){
			newString = "0" +nextAttendance.getDate()+ "/";
		} else{
			newString = nextAttendance.getDate()+ "/";
		}
		if( nextAttendance.getMonth() < 10 ){
			newString += "0" +(nextAttendance.getMonth()+1) + "/";	
		} else {
			newString += (nextAttendance.getMonth()+1) + "/";	
		}
		year = nextAttendance.getFullYear().toString();
		newString += year.charAt(2)+ year.charAt(3);
	
		form.deadlineDate.value = newString;
		form.deadlineDate2.value = newString;
	
		if( error ){
			form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
			form.deadlineDate.value = "";
			return false;		
		} else {
			// CHECK MONTH ENTERED IS BETWEEN 1 AND 12
			if( dateString[1] < 1 || dateString[1] > 12 ){
				form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
				form.deadlineDate.value = "";
				return false;		
			} else if(dateString[1] == 2){
				if(dateString[2] % 4 == 0){
					if( dateString[0] > 29 ){
						form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
						form.deadlineDate.value = "";
						return false;		
					}
				} else {
					if( dateString[0] > 28 ){
						form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
						form.deadlineDate.value = "";
						return false;		
					}
				}
			} else if(dateString[1] == 4 || dateString[1] == 6 || dateString[1] == 9 || dateString[1] == 11){
				if( dateString[0] > 30 ){
					form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
					form.deadlineDate.value = "";
					return false;		
				}
			} else if(dateString[1] == 1 || dateString[1] == 3 || dateString[1] == 5 || dateString[1] == 7 || dateString[1] == 8 || dateString[1] == 10 || dateString[1] == 12){
				if( dateString[0] > 31 ){
					form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
					form.deadlineDate.value = "";
					return false;		
				}
			}
			// CHECK DAY IS BETWEEN 1 AND 31
			if( dateString[0] < 1 || dateString[0] > 31){
				form.elements['errorMsg'].value = "Please enter a valid Next Attendance date, in the format dd/mm/yy";
				form.deadlineDate.value = "";
				return false;		
			}		
			// CHECK YEAR ENTERED IS IN THE FUTURE
			if( d.getFullYear() > dateString[2] ){
				form.elements['errorMsg'].value = "The Next Attendance date you have entered has already passed.  Please enter a future date";
				form.deadlineDate.value = "";
				return false;		
			}
		}
	}
	
	form.submit();

}





function deleteDelegates(){
	var form = window.document.delegateList;
	var i=1;
	var name="";
	var selected=0;
	var deleteString="";
	
	if(!(form.elements["totalDelegates"])){
		alert("There are no Delegates to delete");
		return false;
	} else{
		var members = form.elements["totalDelegates"].value;
	}

	while(i <= members){
		name = "delegate" + i;
		if(form.elements[name]){
			if(form.elements[name].checked == true){
				selected++;
			}
		}
		i++;
	}
	if( !(selected) ){
		form.elements['errorMsg'].value = "You must select at least one Delegate to delete";
		return false;
	}

	i=1;
	while (i <= members){
		name = "delegate" + i;
		if(form.elements[name].checked == true){
			deleteString = deleteString + form.elements[name].value + "/";
		}
		i++;
	}
	form.elements['updateString'].value = deleteString;
	form.elements['updateType'].value = "delete";

	if( !(confirm('Are you sure you want to delete these Delegates - it will also delete all their stored worksheets')) ){
		return false;
	}
	
	form.submit();
	
}

function deactivateDelegates(){
	var form = window.document.delegateList;
	var i=1;
	var name="";
	var selected=0;
	var deactivateString="";

	if(!(form.elements["totalDelegates"])){
		alert("There are no Delegates to deactivate");
		return false;
	} else{
		var members = form.elements["totalDelegates"].value;
	}

	while(i <= members){
		name = "delegate" + i;
		if(form.elements[name]){
			if(form.elements[name].checked == true){
				selected++;
			}
		}
		i++;
	}
	if( !(selected) ){
		form.elements['errorMsg'].value = "You must select at least one Delegate to change to a deactive status";
		return false;
	}

	i=1;
	while (i <= members){
		name = "delegate" + i;
		if(form.elements[name].checked == true){
			deactivateString = deactivateString + form.elements[name].value + "/";
		}
		i++;
	}
	form.elements['updateString'].value = deactivateString;
	form.elements['updateType'].value = "deactivate";

	if( !(confirm('Are you sure you want to change the status of these Delegates')) ){
		return false;
	}

	form.submit();

}


function activateDelegates(){
	var form = window.document.delegateList;
	var i=1;
	var name="";
	var selected=0;
	var activateString="";

	if(!(form.elements["totalDelegates"])){
		alert("There are no Delegates to activate");
		return false;
	} else{
		var members = form.elements["totalDelegates"].value;
	}

	while(i <= members){
		name = "delegate" + i;
		if(form.elements[name]){
			if(form.elements[name].checked == true){
				selected++;
			}
		}
		i++;
	}
	if( !(selected) ){
		form.elements['errorMsg'].value = "You must select at least one Delegate to change to active status";
		return false;
	}

	i=1;
	while (i <= members){
		name = "delegate" + i;
		if(form.elements[name].checked == true){
			activateString = activateString + form.elements[name].value + "/";
		}
		i++;
	}
	form.elements['updateString'].value = activateString;
	form.elements['updateType'].value = "activate";

	if( !(confirm('Are you sure you want to change the status of these Delegates')) ){
		return false;
	}

	form.submit();

}


function updateDetails(){

	var form = window.document.userDetailsUpdate;
	
	if (form.elements['email'].value == "" ){
		form.elements['errorMsg'].value = "Please provide your email address";
		form.elements['email'].focus();
		return false;
	}
	if( !(checkMail(form.elements['email'].value)) ){
		form.elements['errorMsg'].value = "The entered email address is invalid - please re-type your email address";
		form.elements['email'].focus();
		return false
	}

	if (form.elements['firstName'].value == "" ){
		form.elements['errorMsg'].value = "Please provide your first name";
		form.elements['firstName'].focus();
		return false;
	}
	if (form.elements['lastName'].value == "" ){
		form.elements['errorMsg'].value = "Please provide your last name";
		form.elements['lastName'].focus();
		return false;
	}


	if (form.elements['newPassword1'].value != "" ){
		if( form.elements['newPassword1'].value.length < 6 ){
			form.elements['errorMsg'].value = "Your new Password must be at least 6 characters";
			return false;
		}
		if (form.elements['newPassword2'].value == "" ){
			form.elements['errorMsg'].value = "Please re-type your new Password";
			form.elements['newPassword2'].focus();
			return false;
		}
		if (form.elements['newPassword1'].value != form.elements['newPassword2'].value){
			form.elements['errorMsg'].value = "Your re-typed password does not match your new Password - please re-type it again";
			form.elements['newPassword2'].value = "";
			form.elements['newPassword2'].focus();
			return false;
		}
	}
	
	form.submit();
}


/*function checkMail(emailAddress)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (filter.test(emailAddress)) {
		return true;
	} else {
		return false;
	}
	
}*/

function checkMail(str) {
	var emailFilter=/^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(str))) { return false; }
	
	var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	if (str.match(illegalChars)) { return false; }

	return true;
}

function forgottenPassword(){
	var form = window.document.forgotPassword;

	if( form.elements['username'].value == "" ){
		form.elements['errorMsg'].value = "Please enter your username";
		form.elements['username'].focus();
		return false
	}
	
	form.submit();

}


function validateWorksheetMarking(){
	var form = window.document.worksheetMark;

//		form.elements['errorMsg'].value = form.elements['totalQuestions'].value;
		
		for(i=1; i<=form.elements['totalQuestions'].value; i++){
		
//			alert(form.length);
			var position = "question" +i;
//			var position = "q" +i+ "-parts";
//			alert(position);
//			alert(form.elements[position].value);

			// GET POSITION OF QUESTION i ON THE FORM
			for(pos=0; pos < form.length; pos++){
//				alert(form.elements[pos].name)
				if( form.elements[pos].name == position ){
//					alert("MATCH, Position " +pos);
					elementPos = pos+2;
					if ( form.elements[pos+3].type == 'radio' ){
						if( !(form.elements[pos+3].checked) && !(form.elements[pos+4].checked) ){
							form.elements['errorMsg'].value = "Please indicate whether Question " +i+ " is Correct or Incorrect";
							form.elements[pos+3].focus;
							return false;
						}
						if( form.elements[pos+3].checked ){
							status = form.elements[pos+3].value;
						} else if( form.elements[pos+4].checked ){
							status = form.elements[pos+4].value;
						}
						parts = eval(form.elements[elementPos].value);
//						alert(parts)
						if ( status == "Incorrect" && form.elements[pos+5].value == "" ){
							form.elements['errorMsg'].value = "As you have indicated Question " +i+ " is incorrect, you must provide feedback to the delegate";
							form.elements[pos+5].focus;
							return false;
						}
					}
				}
			}
		}
		
		form.submit();


}


function removeCommas(stringVal){
	stringVal = stringVal.replace(',',' ');
	return stringVal;
}


function validateEvaluationForm(){
	var form = window.document.evaluationForm;
	var totalQuestions = form.elements['totalQuestions'].value;
	var output = "";
	var questionAnswered = false;
	
	// GET POSITION OF QUESTION i ON THE FORM
	for(pos=0; pos < form.length; pos++){
		if( form.elements[pos].name == "totalQuestions" ){
			elementPos = pos+2;
		}
	}
	
	//elementPos=0
	for(i=1; i<= totalQuestions; ){
		questionAnswered = false;
	    answer = "q" +i+ "answer";
	    if(form.elements[elementPos].type == 'radio'){
	        groupName = eval("document.evaluationForm." +answer);
	  	for (loop=0; loop < groupName.length; loop++){
			if( groupName[loop].checked ){
	  			questionAnswered=true;
	  		}
	  	}
		if( !questionAnswered ){
			form.elements['errorMsg'].value = "Please answer Question " + i;
			form.elements['errorMsg'].focus();
			return false;
		}
		elementPos += groupName.length-1;
	    } else if (form.elements[elementPos].type == 'checkbox'){
	    	if (form.elements[answer].checked) {
	    		form.elements[answer].value = "yes"
	    	} else {
	    		form.elements[answer].value = "no"
	    	}
	    } else if (form.elements[elementPos].value == ""){
		form.elements['errorMsg'].value = "Please answer Question " + i;
		form.elements['errorMsg'].focus();
		return false;
	    }
	    
	    if (form.elements[elementPos].type != 'hidden'){
	    	i++
	    }	    
	    elementPos++;
	}
	
	form.submit();
}


function logout(){
	
	if( confirm("Are you sure you wish to log out?") ){
		//window.location="/includes/session_cleanup.asp"
		window.close()
	}
}


function exportWorksheets(type, courseid, subid, formName){
	
	if (type == 'level') {
		var form = window.document.forms[formName];
		form.elements['exportLevel'].value = courseid;
		form.elements['exportUnit'].value = "";
	} else if (type == 'unit') {
		var form = window.document.forms[formName];
		form.elements['exportLevel'].value = courseid;
		form.elements['exportUnit'].value = subid;
		form.elements['exportWorksheet'].value = "";
	} else if (type == 'worksheet') {
		var form = window.document.forms[formName];
		form.elements['exportLevel'].value = courseid;
		form.elements['exportWorksheet'].value = subid;
	}

	form.submit();
}


function worksheetStatusUpdate(worksheetid, userid){
	
	var form = window.document.delegateWorksheets;
	form.elements['updateWorksheetID'].value = worksheetid;
	form.elements['updateWorksheetUser'].value = userid;
	form.elements['exportLevel'].value = "";
	form.elements['exportUnit'].value = "";
	form.elements['exportWorksheet'].value = "";

	form.submit();
}


function changeImage(questionid){

	window.open("change-image.asp?qid="+questionid,"change_image","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=400, height=350")

}


function refreshImage(questionid,type){

	imagepath = "/images/worksheets/q" +questionid+ "image.gif";
	imagename = "image" +questionid;
	
	if (navigator.appName != 'Microsoft Internet Explorer'){
		window.opener.location.reload();
	} else {
		if(type == 1){
			window.opener.document.images[imagename].src = "";
			window.opener.document.images[imagename].src = imagepath;
			window.opener.document.images[imagename].height = 100;
			window.opener.document.images[imagename].width = 100;		
		} else if(type == 0) {
			window.opener.document.images[imagename].src = "";
			window.opener.document.images[imagename].height = 0;
			window.opener.document.images[imagename].width = 0;		
		} 
	}
	
	
	window.close();

}


function removeImage(){
	var form = window.document.imageUpload;

	form.elements['remove'].value = 1;
	form.submit();

}

function worksheetNext(url) {
	window.opener.location = url;
	window.close();
	window.opener.focus();
}

function worksheetUnblock(worksheetid,userid) {
	window.location = "worksheet-unblock.asp?worksheetid=" + worksheetid + "&userid=" + userid;
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
//-->

