
var errorMessage;
var formName="";

//0 blank validation
//1 text validation
//2 number validation
//3 text and blank validation
//4 number and blank validation
//5 email validation
//6 email and blank validation
//7 misc validation
//8 Login Name validation
//9 password validation

function formValidation(srcForm){
	var i;
	errorFields=""; 
	msg=""; 
	var flg;
	flg=true
	for (i=0;i<srcForm.elements.length; i++ ){
	status=srcForm.elements[i].name
	//srcForm.elements[i].style.border='1px solid #00387f'
	//Blank Validation
		if(srcForm.elements[i].id=="0") {
//			alert()
			if(!blankVal(srcForm.elements[i].value)) {
				msg+="\n  - "+breakCase(srcForm.elements[i].name)+" cannot be left blank";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Text Validation
		if(srcForm.elements[i].id=="1") {
			if(!charVal(srcForm.elements[i].value)){
				msg+="\n  - "+srcForm.elements[i].name+" can have only text values";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//number Validation
		if(srcForm.elements[i].id=="2") {
			if(!numVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" can have only numeric values";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Blank and Text Validation
		if(srcForm.elements[i].id=="3") {
			if(!blankVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" cannot be left blank";
				errorFields+=i+", ";
				flg=false;
			}

			if(!charVal(srcForm.elements[i].value)){
				msg+="\n  - "+srcForm.elements[i].name+" can have only text values";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Blank and Number Validation
		if(srcForm.elements[i].id=="4") {
			if(!blankVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" can have only text values";
				errorFields+=i+", ";
				flg=false;
			}

			if(!numVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" can have only numeric values";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Email Validation
		if(srcForm.elements[i].id=="5") {
			if(!emailVal(srcForm.elements[i].value)){
				msg+="\n  - "+breakCase(srcForm.elements[i].name)+" is not Valid Email Address";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Blank and Email Validation
		if(srcForm.elements[i].id=="6") {
			if(!blankVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" can not be blank";
				errorFields+=i+", ";
				flg=false;
			}

			if(!emailVal(srcForm.elements[i].value)){
				msg+="\n  - "+srcForm.elements[i].name+" is not Valid Email Address";
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Misc Validation
		if(srcForm.elements[i].id=="7") {
			if(!eval(srcForm.elements[i].title)){
				errorFields+=i+", ";
				flg=false;
			}
		}

	//Login name Validation
		if(srcForm.elements[i].id=="8") {
			if(!blankVal(srcForm.elements[i].value)) {
				msg+="\n  - "+srcForm.elements[i].name+" can not be blank";
				errorFields+=i+", ";
				flg=false;
			}

			if(!loginVal(srcForm.elements[i].value)){
				msg+="\n  - "+srcForm.elements[i].name+" is not valid";
				errorFields+=i+", ";
				flg=false;
			}
		}


	}

	if(!flg){
		alert("Following error(s) have occured\n-----------------------------------------                           "+msg);
		sl1=(removeTail(errorFields)).split(", ");

		for(i=0;i<sl1.length;i++){
			srcForm.elements[sl1[i]].style.border='1px solid #ff0000';
		}

//		srcForm.elements[sl1[0]].focus();
	}
			
	return flg;

}


function emailVal(theVal){
	if(theVal.indexOf('@')>1 && theVal.indexOf('.')>1 && theVal.indexOf('.')<theVal.length-2 && theVal.indexOf('@.')<0) return true;
	else return false;
}


function trim(theValue){
	//alert(theValue.length)
	if(theValue!=""){
		if(theValue.indexOf(" ")==0){
			//recurse this function in case the first character of string is a space
			theValue=theValue.substr(1, theValue.length)
			trim(theValue)
		}
		
		if (theValue.lastIndexOf(" ")==(theValue.length-1)){
			//recurse this function in case the first character of string is a space
			theValue=theValue.substr(0,theValue.length-1);
			trim(theValue);
		}
	}	
	return theValue;
}



function breakCase(fieldName){
	var i;
	var processedFieldName=(fieldName.charAt(0)).toUpperCase();

	for(i=1;i<fieldName.length;i++){
		if(fieldName.charAt(i)==(fieldName.charAt(i)).toUpperCase()){
			processedFieldName=processedFieldName+" "+fieldName.charAt(i);
		}
		else{
			processedFieldName=processedFieldName+fieldName.charAt(i);
		}
	}

	return(processedFieldName);
}


function blankVal(theValue){

		if(theValue=="")
			return(false);
		else
			return(true);
}

function charVal(theVal){
	var i;
	theVal=theVal.toLowerCase()

	for(i=0;i<theVal.length;i++){
		if((theVal.charAt(i)<'a' || theVal.charAt(i)>'z' ) && (theVal.charAt(i)!=' ' && theVal.charAt(i)!='.') ){
			return false;
		}
	}
	return true;
}


function loginVal(theVal){
	var i;
	theVal=theVal.toLowerCase()

	for(i=0;i<theVal.length;i++){
		if((theVal.charAt(i)<'a' || theVal.charAt(i)>'z' ) && (theVal.charAt(i)!='_' && isNaN(theVal.charAt(i))==true) ){
			return false;
		}
	}
	return true;
}

function numVal(theVal){
	if(isNaN(theVal)) return false;
	return true
}


function removeTail(theValue){
	return(theValue.substring(0, theValue.length-2))	
}

function resetFormClasses(){
	for(i=0;i<fVal.length;i++){
		sl1=fVal[i].split(', ');
		document.defaultForm.elements[sl1[0]].className=''
	}
}

function fillForm2Debug(automateDebugValue){
	//Math.random() can be replaced with date hours and minute
	debugValue=parseInt(Math.random()*99);
	if(!automateDebugValue) debugValue=prompt("Enter Debug Value", parseInt(Math.random()*99));
	
	theArr01=document.body.getElementsByTagName("input");
	
	for(i=0;i<theArr01.length;i++){
		if(theArr01[i].type=='text'){
			theArr01[i].value=theArr01[i].name+debugValue;
		}
	}

	theArr01=document.body.getElementsByTagName("textarea");
	
	for(i=0;i<theArr01.length;i++){
			theArr01[i].value=theArr01[i].name+debugValue;
	}

}



