function Validate(objForm) {

	var arrValidated=new Array();

	for (var i=0; i<objForm.elements.length; i++) {

		var element=objForm.elements[i];

		var elName=element.name;

		if ((!elName)||(elName.length == 0)||(arrValidated[elName]))

			continue;

		arrValidated[elName] = true;

		var validationType = element.getAttribute("validate");

		if ((!validationType)||(validationType.length == 0))

			continue;

		var strMessages=element.getAttribute("msg");

		if (!strMessages)

			strMessages = "";

		var arrMessages = strMessages.split("|");

		var arrValidationTypes = validationType.split("|");			

		for (var j=0; j<arrValidationTypes.length; j++) {

			var curValidationType = arrValidationTypes[j];

			var blnValid=true;

			switch (curValidationType) {

				case "match":

					blnValid = ValidateMatch(objForm.password,objForm.confirmpassword);

					break;

				case "not_empty":

					blnValid = ValidateNotEmpty(element);

					break;

				case "integer":

					blnValid = ValidateInteger(element);

					break;

				case "number":

					blnValid = ValidateNumber(element);

					break;

				case "email":

					blnValid = ValidateEmail(element);

					break;

				default:

					try {

						blnValid = eval(curValidationType+"(element)");

					}

					catch (ex) {

						blnValid = true;

					}

			}

			if (blnValid == false) {

				var message="Invalid Value Entered in '"+element.name + "'";

				if ((j < arrMessages.length)&&(arrMessages[j].length> 0))

					message = arrMessages[j];

				InsertError(element, message);

				if ((typeof element.focus == "function")||(element.focus) && element.type != "textarea") {

					element.focus();

				}

				return false;

			}

			else

				ClearError(element);

		}

		}

	return true;

}



function ValidateNotEmpty(objElement) {

	var strValue = GetElementValue(objElement);

	return (strValue.length> 0);

}



function ValidateMatch(objElement,objElement2) {

	var strValue = GetElementValue(objElement);

	var strValue2 = GetElementValue(objElement2);

	return (strValue == strValue2);

}



function ValidateInteger(objElement) {

	var strValue = GetElementValue(objElement);

	return (!isNaN(parseInt(strValue)));

}



function ValidateNumber(objElement) {

	var strValue = GetElementValue(objElement);

	return (!isNaN(parseFloat(strValue)));

}



function ValidateEmail(objElement) {

	var strValue = GetElementValue(objElement);

	if (strValue.length < 5)

		return false;

	var arrTemp=strValue.split("@");

	if (arrTemp.length != 2)

		return false;

	var strLeftPart = arrTemp[0];

	var strRightPart = arrTemp[1];

	if ((strLeftPart.length == 0)||(strRightPart.length == 0))

		return false;

	arrTemp = strRightPart.split(".");

	if (arrTemp.length < 2)

		return false;

	for (var i=0; i<arrTemp.length; i++) {

		if (arrTemp[i].length == 0)

			return false;

	}

	return true;

}



function GetElementValue(objElement) {

	var result="";

	switch (objElement.type) {

		case "text":

		case "hidden":

		case "textarea":

		case "password":

			result = objElement.value;

			break;

		case "select-one":

		case "select":

			if (objElement.selectedIndex>= 0)

				result = objElement.options[objElement.selectedIndex].value;

			break;

		case "radio":

		case "checkbox":

			for (var i=0; i<objElement.form.elements.length; i++) {

				if (objElement.form.elements[i].name == objElement.name) {

					if (objElement.form.elements[i].checked)

						result += objElement.form.elements[i].value+",";

				}

			}

			break;

	}

	return result;

}



function InsertError(element, strMessage) {

	if ((element.form.getAttribute("show_alert")) && (element.form.getAttribute("show_alert") != "0")) {

		alert(strMessage);

		return;

	}

	var strSpanID = element.name+"_val_error";

	var objSpan = document.getElementById(strSpanID);

	if (!objSpan) {

		if ((element.type == "radio")||(element.type == "checkbox")) {

			for (var i=0; i<element.form.elements.length; i++) {

				if (element.form.elements[i].name == element.name) {

					element = element.form.elements[i];

				}

			}

		}

		objSpan = document.createElement("span");

		objSpan.id = strSpanID;

		objSpan.className = "validation_error";

		var nodeAfter=0;

		var nodeParent = element.parentNode;

		for (var i=0; i<nodeParent.childNodes.length; i++) {

			if (nodeParent.childNodes[i] == element) {

				if (i < (nodeParent.childNodes.length-1))

					nodeAfter = nodeParent.childNodes[i+1];

				break;

			}

		}

		if ((!nodeAfter)&&(nodeParent.parentNode)) {

			nodeParent = nodeParent.parentNode;

			for (var i=0; i<nodeParent.childNodes.length; i++) {

				if (nodeParent.childNodes[i] == element.parentNode) {

					if (i < (nodeParent.childNodes.length-1))

						nodeAfter = nodeParent.childNodes[i+1];

					break;

				}

			}

		}

		if (nodeAfter)

			nodeParent.insertBefore(objSpan, nodeAfter);

		else

			document.body.appendChild(objSpan);

	}

	objSpan.innerHTML = strMessage;

}



function ClearError(element) {

	var strSpanID = element.name+"_val_error";

	var objSpan = document.getElementById(strSpanID);

	if (objSpan) {

		objSpan.innerHTML = "";

	}

}



function redraw() {

img = document.getElementById('imgCaptcha'); 

img.src = 'http://www.whspa.nsw.edu.au/Administration/captcha.php?' + Math.random();

}

        

function validate(theform) {

var url = 'http://www.whspa.nsw.edu.au/Administration/check-captcha.php?code=';

var captchaOK;

if(Validate(theform) == false) {

return false;

} else {

var XMLHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");

XMLHttp.open("GET", url + escape(theform.txtCaptcha.value) + "&username=" + escape(theform.user.value) + "&password=" + escape(theform.pass.value), true);

XMLHttp.onreadystatechange = function() {

if(XMLHttp.readyState == 4) {

if(XMLHttp.status == 200) {

captchaOK = XMLHttp.responseText;

if(captchaOK == 01 || captchaOK == 00) {

alert('The entered code was not correct. Please try again');

theform.txtCaptcha.value='';

} else if(captchaOK == 10) {

alert('The entered username or password was incorrect.');

theform.user.value='';

theform.pass.value='';

theform.user.focus();

} else {

theform.submit();

}					

} else {

}

}

};

XMLHttp.send(null);

}

return false;

}



function makevisible(cur,which){

strength=(which==0)? 1 : 0.4



if (cur.style.MozOpacity)

cur.style.MozOpacity=strength

else if (cur.filters)

cur.filters.alpha.opacity=strength*100

}



function selectAll(){

	var multi=document.getElementById('multi1');

		for(i=0;i<multi.options.length;i++)

		multi.options[i].selected=true;

}