function validate_form(thisform)
{
	with (thisform){
		
		if (validate_required(FirstName,"lblFirstName","You must provide a First Name.")==false){
			FirstName.focus();
			return false;
		}else if (validate_required(LastName,"lblLastName","You must provide a Last Name.")==false){
			LastName.focus();
			return false;
		}else if (validate_required(Address,"lblAddress","You must provide a Address.")==false){
			Address.focus();
			return false;
		}else if (validate_required(City,"lblCity","You must provide a City.")==false){
			City.focus();
			return false;
		}else if(validate_required(State,"lblState","You must select a State.")==false){
			State.focus;
			return false;
			
		}else if (validate_number(Phone1,"lblPhone","You must provide a valid Phone Number.",3)==false){
			Phone1.focus();
			return false;	
		}else if (validate_number(Phone2,"lblPhone","You must provide a valid Phone Number.",3)==false){
			Phone2.focus();
			return false;	
		}else if (validate_number(Phone3,"lblPhone","You must provide a valid Phone Number.",4)==false){
			Phone3.focus();
			return false;	
			
		if(AltPhone1.value != ""){
			
			if (validate_number(AltPhone1,"lblAltPhone","You must provide a valid Alternate Phone Number.",3)==false){
				AltPhone1.focus();
				return false;	
			}else if (validate_number(AltPhone2,"lblAltPhone","You must provide a valid Alternate Phone Number.",3)==false){
				AltPhone2.focus();
				return false;	
			}else if (validate_number(AltPhone3,"lblAltPhone","You must provide a valid Alternate Phone Number.",4)==false){
				AltPhone3.focus();
				return false;
			}
		}
		
		}else if (validate_email(Email,"lblEmail","You must provide a valid email address.")==false){
			Email.focus();
			return false;
		}else if (validate_zipcode(ZipCode,"lblZipCode","You must provide a valid zipcode.")==false){
			ZipCode.focus();
			return false;
		}else{
			return true;	
		}
	}				  
}

function validate_number(field,label,alerttxt,numLen){
	
	var stripped = field.value.replace(/[\(\)\.\-\ ]/g, '');
	
	if(isNaN(parseInt(field.value))){
		alert(alerttxt);
		document.getElementById(label).style.color = '#990000';
		return false;
	} else if (!(stripped.length == numLen  && numLen > 0)) {		
		alert(alerttxt);
		document.getElementById(label).style.color = '#990000';
		return false;		
	}else{
		return true;
	}
}

function validate_zipcode(field,label,alerttxt){
	with(field){
		if(isNaN(parseInt(field.value))){
			alert(alerttxt);
			document.getElementById(label).style.color = '#990000';
			return false;
		}else if(!field.value.length == 5){
			alert(alerttxt);
			document.getElementById(label).style.color = '#990000';
			return false;		
		}else{
			return true;	
		}
	}
}

function validate_email(field,label,alerttxt){
	with (field){
		
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		
		if (apos<1||dotpos-apos<2){
			alert(alerttxt);
			document.getElementById(label).style.color = '#990000';
			return false;
		}else{
			return true;
		}
	}
}

function validate_required(field,label,alerttxt){
	with (field){
		if (value==null||value==""){
			alert(alerttxt);
			document.getElementById(label).style.color = '#990000';
			return false;
		}else{
			return true;
		}
	}
}

function validate_phone(field) {
	var errorMsg = "";
	var stripped = field.value.replace(/[\(\)\.\-\ ]/g, '');    
	with (field){
		if (field.value == "") {
			errorMsg = "You didn't enter a phone number.\n";
			alert(errorMsg);
			document.getElementById(label).style.color = '#990000';
			return false;
		} else if (isNaN(parseInt(stripped))) {
			errorMsg = "The phone number contains illegal characters.\n";
			alert(errorMsg);
			document.getElementById(label).style.color = '#990000';
			return false;
		} else if (!(stripped.length == 10)) {
			errorMsg = "The phone number is the wrong length. Make sure you included an area code.\n";
			alert(errorMsg);
			document.getElementById(label).style.color = '#990000';
			return false;
		}else{
			return true;	
		}
	}
}