//BOF ============================ Form Validation ============================================
var strBGColour = '#EEC4C4'
var strBorderColour = '#C73838'
var strOldBGColour = 'White'
var strOldBorderColour = '#3B5E8E'
var UsernameError = ''

// BOF Check Product Code
function validateUnique(fld){
var error = "";
ProductCodexmlHttp=GetXmlHttpObject();
if (ProductCodexmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var CheckCodeUrl="products_check_code.asp";
CheckCodeUrl=CheckCodeUrl+"?sid="+Math.random();
CheckCodeUrl=CheckCodeUrl+"&product_code="+fld.value;

//ProductCodexmlHttp.onreadystatechange=stateChangedCheckUser;
ProductCodexmlHttp.open("GET",CheckCodeUrl,false);
ProductCodexmlHttp.send(null);
if (ProductCodexmlHttp.readyState==4) {
document.getElementById("CheckProductCode").innerHTML=ProductCodexmlHttp.responseText;
//alert(UsernameError);
if (document.getElementById("CheckProductCode").innerHTML!='Product code is unique') {
	error="Product code is not unique";
	fld.style.backgroundColor = strBGColour;
	fld.style.borderColor = strBorderColour;
}
return error;
}
}

function validatePassword(pass,pass2) {
var error = "";

	if (pass.value.length<6) {
        pass.style.backgroundColor = strBGColour;
        pass2.style.backgroundColor = strBGColour;
        pass.style.borderColor = strBorderColour;
        pass2.style.borderColor = strBorderColour;
        error = "Password must be greater than 6 characters.\n"
	} else if (pass.value != pass2.value) {
        pass.style.backgroundColor = strBGColour;
        pass2.style.backgroundColor = strBGColour;
        pass.style.borderColor = strBorderColour;
        pass2.style.borderColor = strBorderColour;
        error = "Passwords do not match.\n"
    } else {
        pass.style.backgroundColor = strOldBGColour;
        pass2.style.backgroundColor = strOldBGColour;
        pass.style.borderColor = strOldBorderColour;
        pass2.style.borderColor = strOldBorderColour;
    }
return error;
}


function validateSecQuestion(pass,pass2) {
var error = "";

	if (pass.value.length<1) {
        pass.style.backgroundColor = strBGColour;
        pass2.style.backgroundColor = strBGColour;
        pass.style.borderColor = strBorderColour;
        pass2.style.borderColor = strBorderColour;
        error = "Please enter an answer to the secret question.\n"
	} else if (pass.value != pass2.value) {
        pass.style.backgroundColor = strBGColour;
        pass2.style.backgroundColor = strBGColour;
        pass.style.borderColor = strBorderColour;
        pass2.style.borderColor = strBorderColour;
        error = "Secret question answers do not match.\n"
    } else {
        pass.style.backgroundColor = strOldBGColour;
        pass2.style.backgroundColor = strOldBGColour;
        pass.style.borderColor = strOldBorderColour;
        pass2.style.borderColor = strOldBorderColour;
    }
return error;
}





var CheckUserxmlHttp

// BOF CheckUser Drop Down Box
function validateUniqueUsername(fld){
var error = "";
CheckUserxmlHttp=GetXmlHttpObject();
if (CheckUserxmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var CheckUserurl="includes/check_unique_username.asp";
CheckUserurl=CheckUserurl+"?sid="+Math.random();
CheckUserurl=CheckUserurl+"&varVCheck="+fld.value;

//CheckUserxmlHttp.onreadystatechange=stateChangedCheckUser;
CheckUserxmlHttp.open("GET",CheckUserurl,false);
CheckUserxmlHttp.send(null);
if (CheckUserxmlHttp.readyState==4) {
error = CheckUserxmlHttp.responseText;
//alert(UsernameError);
if (error != ""){
	fld.style.backgroundColor = strBGColour;
	fld.style.borderColor = strBorderColour;
	error += "\n";
}
return error;
}
}





function validateCheckValue(fld) {
var error = "";
	
    if (fld.value.toUpperCase() != 'YES') {
        fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
        error = "Please confirm by entering the required value.\n"
    } else {
        fld.style.backgroundColor = strOldBGColour;
        fld.style.borderColor = strOldBorderColour;
    }
	return error;
}

function validateEmpty(fld) {
var error = "";
	
    if (fld.value.length == 0) {
		fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
        fld.title = "0";
        error = fld.alt + " is a required field.\n"
    } else {
		if (fld.title != "0"){
			fld.style.backgroundColor = strOldBGColour;
        	fld.style.borderColor = strOldBorderColour;
		}
	    fld.title = "";
	}
	return error;
}

function validateCheckBox(fld) {
var error = "";
	
    if (fld.checked == false) {
        fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
        error = "Please confirm that you have read the Terms and Conditions.\n"
    } else {
        fld.style.backgroundColor = strOldBGColour;
        fld.style.borderColor = strOldBorderColour;
    }
	return error;
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
        error = "An email address contains illegal characters.\n";
    } else {
        fld.style.backgroundColor = strOldBGColour;
        fld.style.borderColor = strOldBorderColour;
    }
    return error;
}

function validateNumber(fld) {
   fldv = fld.value;
   var error="";
   var ValidChars = "-.0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < fldv.length && IsNumber == true; i++) { 
      Char = fldv.charAt(i);
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber=false;
			}
   }
if (IsNumber==false) {
    fld.style.backgroundColor = strBGColour;
    fld.style.borderColor = strBorderColour;
	fld.title = "0";
    error = fld.alt + " contains illegal characters.\n"
} else {
	if (fld.title != "0"){
		fld.style.backgroundColor = strOldBGColour;
	    fld.style.borderColor = strOldBorderColour;
	}
	fld.title = "";
}
return error;
}


function validateNumberDateMonth(fld,datetype) {
   fldv = fld.value;
   var error="";
   var ValidChars = "-.0123456789";
   var IsNumber=true;
   var intMonthPass=true;
   var Char;
 
   for (i = 0; i < fldv.length && IsNumber == true; i++) { 
      Char = fldv.charAt(i);
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber=false;
			}
   }

if (IsNumber==true) {
	if (datetype=='to') {
		if (parseInt(fldv)<parseInt(getMonth())) {
			intMonthPass=false;
		}
	} else {
		if (parseInt(fldv)>parseInt(getMonth())) {
			intMonthPass=false;
		}
	}
if (intMonthPass==false) {
    fld.style.backgroundColor = strBGColour;
    fld.style.borderColor = strBorderColour;
	fld.title = "0";
    error = fld.alt + " is invalid.\n"
} else {
	if (fld.title != "0"){
		fld.style.backgroundColor = strOldBGColour;
	    fld.style.borderColor = strOldBorderColour;
	}
	fld.title = "";
}
}


if (IsNumber==false) {
    fld.style.backgroundColor = strBGColour;
    fld.style.borderColor = strBorderColour;
	fld.title = "0";
    error = fld.alt + " contains illegal characters.\n"
} else {
	if (fld.title != "0"){
		fld.style.backgroundColor = strOldBGColour;
	    fld.style.borderColor = strOldBorderColour;
	}
	fld.title = "";
}
return error;
}


function validateNumberDateYear(fld,datetype) {
   fldv = fld.value;
   var error="";
   var ValidChars = "-.0123456789";
   var IsNumber=true;
   var intYearPass=true;
   var Char;
 
   for (i = 0; i < fldv.length && IsNumber == true; i++) { 
      Char = fldv.charAt(i);
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber=false;
			}
   }

if (IsNumber==true) {
	if (datetype=='to') {
		if (parseInt(fldv)<parseInt(getYear())) {
			intYearPass=false;
		}
	} else {
		if (parseInt(fldv)>parseInt(getYear())) {
			intYearPass=false;
		}
	}
if (intYearPass==false) {
    fld.style.backgroundColor = strBGColour;
    fld.style.borderColor = strBorderColour;
	fld.title = "0";
    error = fld.alt + " is invalid.\n"
} else {
	if (fld.title != "0"){
		fld.style.backgroundColor = strOldBGColour;
	    fld.style.borderColor = strOldBorderColour;
	}
	fld.title = "";
}
}


if (IsNumber==false) {
    fld.style.backgroundColor = strBGColour;
    fld.style.borderColor = strBorderColour;
	fld.title = "0";
    error = fld.alt + " contains illegal characters.\n"
} else {
	if (fld.title != "0"){
		fld.style.backgroundColor = strOldBGColour;
	    fld.style.borderColor = strOldBorderColour;
	}
	fld.title = "";
}
return error;
}


function validateNumberOld2(fld) {
    var error="";
    var illegalChars= /[^\.\d]/g ;
	
	if (fld.value.match(illegalChars)) {
        fld.style.backgroundColor = strBGColour;
        fld.style.borderColor = strBorderColour;
		fld.title = "0"
        error = "Field(s) contain illegal characters.\n";
    } else {
		if (fld.title != "0"){
			fld.style.backgroundColor = strOldBGColour;
		    fld.style.borderColor = strOldBorderColour;
		}
	    fld.title = "";
	}
    return error;
}


var xmlHttp

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
//EOF ============================ Form Validation ============================================