
// <!--  
//    -=pH2=-  June 21, 2004 ph2@ph2enterprises.com
// Client side validation 
// BEGIN

strMessage ='Please correct the following problems!\n\n';
iErrorCount =0;

// Support Functions

function stringFilter (input) {
s = input.value;
filteredValues = "-";     // Characters stripped out
var i;
var returnString = "";
for (i = 0; i < s.length; i++) {  // Search through string and append to unfiltered values to returnString.
var c = s.charAt(i);
if (filteredValues.indexOf(c) == -1) returnString += c;
}
input.value = returnString;
}

function strip(filter,str){
	var i,curChar;
	var retStr = '';
	var len = str.length;
	for(i=0; i<len; i++){
		curChar = str.charAt(i);
		if(filter.indexOf(curChar)<0) //not in filter, keep it
			retStr += curChar;
	}
	return retStr;
}
function reformat(str){
	var arg;
	var pos = 0;
	var retStr = '';
	var len = reformat.arguments.length;
	for(var i=1; i<len; i++){
		arg = reformat.arguments[i];
		if(i%2==1)
			retStr += arg;
		else{
			retStr += str.substring(pos, pos + arg);
			pos += arg;
		}
	}
	return retStr;
}
//End Support Functions

//Validation Rules
function notEmpty(str){
	if(strip(" \n\r\t",str).length ==0)
		return false;
	else
		return true;
}
function validateInteger(str){
	str = strip(' ',str);
	//remove leading zeros, if any
	while(str.length > 1 && str.substring(0,1) == '0'){
		str = str.substring(1,str.length);
	}
	var val = parseInt(str);
	if(isNaN(val))
		return false;
	else
		return true;
}
function validateFloat(str){
	str = strip(' ',str);
	//remove leading zeros, if any
	while(str.length > 1 && str.substring(0,1) == '0'){
		str = str.substring(1,str.length);
	}
	var val = parseFloat(str);
	if(isNaN(val))
		return false;
	else
		return true;
}
function validateUSPhone(str){
	str = strip("*() -./_\n\r\t\\",str);
	if(str.length == 10 || str.length == 7)
		return true;
	else
		return false;
}
function validateSSN(str){
	str = strip(" -.\n\r\t",str);
	if(validateInteger(str) && str.length == 9)
		return true;
	else
		return false;
}
function validateZip(str){
	str = strip("- \n\r\t",str);
	if(validateInteger(str)&&(str.length==9 || str.length==5))
		return true;
	else
		return false;
}
function validateCC(str,type){
	str = strip("-./_\n\r\t\\",str);
	if(type=="1")
		if(str.charAt(0)!="4")
			return false;
	if(type=="2")
		if(str.charAt(0)!="5")
			return false;
	if(type=="3")
		if(str.charAt(0)!="6")
			return false;
	if(type=="4")
		if(str.charAt(0)!="3")
			return false;
	if(validateInteger(str)&&((str.length==15&&type=="4") || str.length==16))
		return true;
	else
		return false;
}
function validateDate(str){
	var dateVar = new Date(str);
	if(isNaN(dateVar.valueOf()) || (dateVar.valueOf() ==0))
		return false;
	else
		return true;
}
function validateEMail(str){
	str = strip(" \n\r\t",str);
	if(str.indexOf("@")>-1 && str.indexOf(".")>-1)
		return true;
	else
		return false;
}
//End Validation Rules

//Formatting functions
function formatPhone(str){
	str = strip("*() -./_\n\r\t\\",str);
	if(str.length==10)
		return reformat(str,"(",3,") ",3,"-",4);
	if(str.length==7)
		return reformat(str,"",3,"-",4);
}
function formatSSN(str){
	str = strip(" -.\n\r\t",str);
	return reformat(str,"",3,"-",2,"-",4);
}
function formatZip(str){
	str = strip("- \n\r\t",str);
	if(str.length==5)
		return str;
	if(str.length==9)
		return reformat(str,"",5,"-",4);
}
function formatCC(str,type){
	str = strip("-./_\n\r\t\\",str);
	switch(type){
		case "1": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "2": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "3": 
			return reformat(str,"",4,"-",4,"-",4,"-",4);
			break;
		case "4":
			return reformat(str,"",4,"-",6,"-",5);
	}
}
function formatDate(str,style){
	var dateVar = new Date(str);
	var year = dateVar.getYear();
	if(year<10)
		year += 2000;
	if(year<100)
		year += 1900;
	switch(style){
		case "MM/DD/YY":
			return (dateVar.getMonth() + 1) + "/" + dateVar.getDate() + "/" + year;
			break;
		case "DD/MM/YY":
			return dateVar.getDate() + "/" + (dateVar.getMonth() + 1) + "/" + year;
			break;
		case "Month Day, Year":
			return getMonthName(dateVar) + " " + dateVar.getDate() + ", " + year;
			break;
		case "Day, Month Day, Year":
			return getDayName(dateVar) + ", " + getMonthName(dateVar) + " " + dateVar.getDate() + ", " + year;
			break;
		default:
			return (dateVar.getMonth() + 1) + "/" + dateVar.getDate() + "/" + year;
			break;
	}
}
//End Formatting Functions

//Form Validator
function validate(form){

		
	if(notEmpty(form.first_nm.value)==false){
			strMessage = strMessage +"Enter a first name.\n" ;
			if(iErrorCount ==0){
				form.first_nm.focus();
			}
			iErrorCount ++;
	}
	
	if(notEmpty(form.last_nm.value)==false){
			strMessage = strMessage +"Enter a last name.\n" ;
			if(iErrorCount ==0){
				form.last_nm.focus();
			}
			iErrorCount ++;
	}
	
	if(notEmpty(form.email.value)==false){
			strMessage = strMessage +"Enter an Email.\n" ;
			if(iErrorCount ==0){
				form.email.focus();
			}
			iErrorCount ++;
		
	}
	
	if(notEmpty(form.address.value)==false){
			strMessage = strMessage +"Enter an Address.\n" ;
			if(iErrorCount ==0){
				form.address.focus();
			}
			iErrorCount ++;
	}
				
		
	if(notEmpty(form.city.value)==false){
			strMessage = strMessage +"Enter a City.\n" ;
			if(iErrorCount ==0){
				form.city.focus();
			}
			iErrorCount ++;
	}

	if(notEmpty(form.state.value)==false){
				strMessage = strMessage +"Enter a State.\n" ;
				if(iErrorCount ==0){
					form.state.focus();
				}
				iErrorCount ++;
	}

	if(notEmpty(form.zip.value)==false){
				strMessage = strMessage +"Enter a Zip.\n" ;
				if(iErrorCount ==0){
					form.zip.focus();
				}
				iErrorCount ++;
	}

	if(notEmpty(form.phone.value)==false){
				strMessage = strMessage +"Enter a Phone Number.\n" ;
				if(iErrorCount ==0){
					form.phone.focus();
				}
				iErrorCount ++;
	}

	if (iErrorCount > 0){
		alert(strMessage);
		strMessage ='';
		iErrorCount = 0;
		return false;
			
	}
	
		
}

//END
// -->
