﻿//Create new array of field to be validate errArrList = new Array("txtEmail", etc...)
var errArrList;
var errNameList;

//Valid password lenght
var validPwdLen;
validPwdLen = 4;

/******** Form raise error function *****/
function ClearIndicator(forminput) {
	if (forminput == null) return;
	forminput.style.background 	= '#FFFFFF';
	forminput.style.border 		= 'solid 1px #799dc1';
	//document.getElementById("errMsg").innerHTML = "";
}

function IndicateInput(forminput) {
	if (forminput == null) return;
	forminput.style.background 	= '#fcfbcf';
	forminput.style.border 		= 'solid 2px #FF0000';
	forminput.focus();
}

function RaiseError(message, forminput, siblinginput) {
	alert("Error whilst validating: " + message);
	IndicateInput(siblinginput);
	IndicateInput(forminput);	
	return false;
}


function RaiseNoAlertError(message, theErrName, forminput, siblinginput) {
	//document.getElementById("errMsg").innerHTML = "Error validating " + theErrName + "<br>" + message;
	IndicateInput(siblinginput);
	IndicateInput(forminput);	
	return false;
}

/******** Validate email function *****/
function checkUserEmail(){
	var theNewUserName = document.getElementById("email").value;

	if (theNewUserName != "") {
		if (!ValidateEmailAddress(theNewUserName))
			return RaiseNoAlertError("You must enter a valid email address", "Email address", document.getElementById("email"), null);
		else
			loadXMLRegisterChecker("/pages/Common/check_User.asp?ckField=email&ckVal=" + theNewUserName, "email address", "email");
	}
	else
		return RaiseNoAlertError("Email address cannot be empty, Please re-enter", "Email address", document.getElementById("email"), null);
}
	
function ValidateEmailAddress(theEmail) {
	if (!theEmail || theEmail == "") return false;
	
	var reg = new RegExp("^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$");
	return reg.test(theEmail);
}

/******** Form validation function *****/
function ValidateForm(){
	var theValForm = document.forms[0];
	var extCheck; 
	var validPwdCheckArr = new Array(); 
	var firstPwdPos = 0;
	
	if (theValForm && errArrList){
		if (errArrList.length > 0){
			for (var ii = 0; ii < errArrList.length; ii++){
				if ((errArrList[ii].toUpperCase().indexOf("EMAIL") > -1) && 
					((errArrList[ii].toUpperCase().lastIndexOf("EMAIL")+5) == errArrList[ii].length)){
					if (!ValidateEmailAddress(theValForm[errArrList[ii]].value))
						return RaiseError("You must enter a valid email address", theValForm[errArrList[ii]], null);
					ClearIndicator(theValForm[errArrList[ii]]);
				}
				else if (errArrList[ii].toLowerCase().indexOf("ddl") > -1){
					if (theValForm[errArrList[ii]].selectedIndex == 0)
						return RaiseError("You must select an option", theValForm[errArrList[ii]], null);
					ClearIndicator(theValForm[errArrList[ii]]);
				}
				else if (errArrList[ii].toLowerCase().indexOf("rdn") > -1){
					extCheck = false;
					if (theValForm[errArrList[ii]].length > 1){
						for (var jj = 0; jj < theValForm[errArrList[ii]].length; jj ++){
							if (theValForm[errArrList[ii]][jj].checked) {
								ClearIndicator(theValForm[errArrList[ii]][0]);
								extCheck = true;
								break;
							}
						}
						if (!extCheck)
							return RaiseError("You must select an option", theValForm[errArrList[ii]][0], null);
					}
					else{
						if (!(theValForm[errArrList[ii]].checked))
							return RaiseError("You must select an option", theValForm[errArrList[ii]], null);
						ClearIndicator(theValForm[errArrList[ii]]);
					}
				}
				else if (errArrList[ii].toLowerCase().indexOf("pwd") > -1){
					if (!(theValForm[errArrList[ii]].value) || theValForm[errArrList[ii]].value == "")
						return RaiseError("You must enter a password", theValForm[errArrList[ii]], null);
					else {
						if (theValForm[errArrList[ii]].value.length  >= validPwdLen) {
							validPwdCheckArr.push(theValForm[errArrList[ii]].value);
							if (firstPwdPos == 0)
								firstPwdPos = ii;
							ClearIndicator(theValForm[errArrList[ii]]); 
						}
						else 
							return RaiseError("You must enter a password longer than " + validPwdLen, theValForm[errArrList[ii]], null);
					}
					
				}
				else {

					if (!(theValForm[errArrList[ii]].value) || theValForm[errArrList[ii]].value == "") {
						if (errNameList && errNameList != "") {
							if (errNameList.length >= ii)
								return RaiseError("You must enter a value for " + errNameList[ii], theValForm[errArrList[ii]], null); 
							else
								return RaiseError("You must enter a value", theValForm[errArrList[ii]], null); 
						}
						else
							return RaiseError("You must enter a value", theValForm[errArrList[ii]], null); 
					}
					ClearIndicator(theValForm[errArrList[ii]]);
				}
			} 
			
			//If password exists, compare  the valid
			if(validPwdCheckArr){
				if (validPwdCheckArr.length == 2){
					if (validPwdCheckArr[0] != validPwdCheckArr[1])
						return RaiseError("The password does not match", theValForm[errArrList[firstPwdPos]], null);
				}
			}
		}
	}
	return true;
	
}

