
function validate(form, frmvalidate) {

resetElements(frmvalidate);

for(x=0;x<form.elements.length;x++) {
	for(y=0;y<frmvalidate.length;y++){
		if(form.elements[x].name == frmvalidate[y][1]) {

			switch(frmvalidate[y][3]) {
				
				case "text":
					if(form.elements[x].value.length < 0 || form.elements[x].value == "") {
						alert(frmvalidate[y][0] + " is required");		
						setFocus(form.elements[x]);
						return false;
					}
					break;
				case "email":
					if(!checkEmail(form.elements[x].value)) {
						alert("Valid " + frmvalidate[y][0] + " is required");
						setFocus(form.elements[x]);
						return false;
					}
					break;
				case "phone":
					if(!checkPhone(form.elements[x].value)) {
						alert("Valid " + frmvalidate[y][0] + " is required");
						setFocus(form.elements[x]);
						return false;
					}
					break;					
				case "state":
					if(!checkState(form.elements[x].value)) {
						alert("Valid " + frmvalidate[y][0] + " is required");
						setFocus(form.elements[x]);
						return false;
					}
					break;				
				case "zip":
					if(!checkZip(form.elements[x].value)) {
						alert("Valid " + frmvalidate[y][0] + " is required");
						setFocus(form.elements[x]);
						return false;
					}
					break;						
				default:
					if(form.elements[x].value.length < 0 || form.elements[x].value == "") {
						alert(frmvalidate[y][0] + " is required");		
						setFocus(form.elements[x]);
						return false;
					}
					break;			
			}				
			
		}			
	}
}

	setCVValidate(1);

	return true;

}

function resetElements(frmvalidate) {
		for(x=0;x<frmvalidate.length;x++){
			obj = getElement(frmvalidate[x][1]);
			obj.className = frmvalidate[x][2];
		}
}

function setFocus(formobj) {
	//add the red background to current style
	formobj.className = formobj.className + " txtOops";
	formobj.focus();
}

function setCVValidate(val) {
	obj = getElement('cv');
	obj.value = val;
}

function checkEmail(email) {
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(email);	
}

function checkPhone(phone) {
	var stripped = phone.replace(/[\(\)\.\-\ ]/g, '');
	//strip out acceptable non-numeric characters
	if (isNaN(parseInt(stripped))) {
	   return false;
	}
	
	if (stripped.length < 10) {
		return false;
	}
	
	return true;
	
}

function checkState(state) {
	 if (state == "") {
		return false;
	 }
	 
	 if(!state.length == 2) {
		return false; 
	 }
	 
	return true;
}

function checkZip(zip) {
	var zipCodePattern = /^\d{5}$|^\d{5}-\d{4}$/;
	var regex = new RegExp(zipCodePattern);
	return regex.test(zip);
}
