/*************************************************************
Copyright (c) 2001 onwards 
Mian-Guan Lim (mg@mirageglobe.com)
http://www.mirageglobe.com

Free to use for commercial or personal applications
if copyright message remains intact.

Tested with 
- IE6
- Netscape 6.1

Validator ver 1.12
*************************************************************/


//variables

var bgBad = "#ffffff";									// css background applied if error found
var bgGood = "#FFFFFF";									// css background applied if no error found
var msgShow = "Please complete the following fields:"; 	// message in pop up window
var foundError = false;									// boolean to determine if error is found


//main function

//********************************************************************
function Validate(checktype, obj, msg, obj2) {
	if(obj) setColor(obj, bgGood);
	switch (checktype){
	case "start" :	funcstart(obj);						break;
	case "end" : 	return funcend();					break;
	case "empty" :	return valempty(obj,msg); 			break;
	case "email" :	return valemail(obj,msg); 			break;
	case "comp" : 	return valcomp(obj,msg,obj2);		break;
	//case "select" : return notselected(obj,msg);		break;
	
	case "lessthan" : 	return lessthan(obj,msg,obj2);		break;
	case "greaterthan" : 	return greaterthan(obj,msg,obj2);		break;
	case "greaterthanval" : 	return greaterthanval(obj,msg,obj2);		break;
	case "testlength" : 	return testlength(obj,msg,obj2);		break;
	case "testlengthtext" : 	return testlengthtext(obj,msg,obj2);		break;
	case "confirmpassword" : return confirmpassword(obj,msg,obj2);		break;
	
	default :
		alert ("Invalid checks");
	}
}

//settings sub functions
//********************************************************************
function setColor(obj, bgcolour) {
	if (obj.style) obj.style.backgroundColor = bgcolour;
}

function funcstart(obj) {
	if (obj){
		bgBad = obj;
	};
	msgShow = "Please complete the following fields:";
	foundError = false;
}

function funcend() {
	if (foundError == true){
		alert (msgShow); 
		return false;
	}
	else {
	return true;
	}
}


//validation sub functions
//********************************************************************
function valempty(obj,msg){
	if (obj.value == "") {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return false;
	}
	else {
		return true;
	}
}

/*function notselected(obj,msg){
	
	var i = obj.selectedIndex;
	
	if (i == 0)
	  {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return false;
	}
	else {
		return true;
	}
}*/

function valcomp(obj,msg,obj2){
	if (obj2.value == obj.value) {
		return false;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return true;
	}
}
function lessthan(obj,msg,obj2){
	if (obj.value.length >= obj2) {
		return false;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return true;
	}
}

function greaterthan(obj,msg,obj2){

	if (obj2.value < obj.value) {
		return false;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return true;
	}
}
function greaterthanval(obj,msg,obj2){

	if (obj2 > obj) {

		return false;
	}
	else {

		setColor(obj, bgBad);
		
		msgShow = msgShow + msg;
		return true;
	}
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
			 
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function testlength(obj,msg,obj2){
	if (obj.value.length == obj2 && IsNumeric(obj.value)) {
		return true;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return false;
	}
}
function confirmpassword(obj,msg,obj2){
	var obj2 = obj2.value;
	if (obj.value == obj2) {
		return false;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return true;
	}
}



function testlengthtext(obj,msg,obj2){
	if (obj.value.length == obj2 ) {
		return false;
	}
	else {
		setColor(obj, bgBad);
		if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
		return true;
	}
}

function valemail(obj,msg){
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(obj.value)){
return true;
}else{
	if (foundError == false) obj.focus(); foundError=true;
		msgShow = msgShow + msg;
return false;
}
}
