//form field validator
function require(form){

var validationSet = {
		'c_first_name': {
		'regexp': /^\w{2,}\s*/,
		'error': 'Please enter your first name.'
		},
		'c_last_name': {
		'regexp': /^\w{2,}\s*/,
		'error': 'Please enter your last name.'
		},
		'c_email': {
		'regexp': /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
		'error': 'Please enter a valid email address.'
		},
		'c_address_first': {
		'regexp': /\w{1,}/,
		'error': 'Please enter your street address.'
		},
		'c_city': {
		'regexp': /\w{1,}/,
		'error': 'Please enter your city.'
		},
		'c_zip': {
		'regexp': /(^\d{5}$)|(^\d{5}-\d{4})$/,
		'error': 'Please enter your 5 digit (12345) or 9 digit (12345-6789) zip code.'
		},
		'c_phone': {
		'regexp': /^[2-9]\d{2}-\d{3}-\d{4}$/,
		'error': 'Please enter your 10 digit phone number including the area code.'
		},
		'p_name': {
		'regexp': /^\w{2,}\s*$/,
		'error': 'Please enter your pet\'s name.'
		},
		'p_weight': {
		'regexp': /^([1-9]{1}\d*|\d*\.\d+){1}$/,
		'error': 'Please enter your pet\'s weight in pounds. (One kilo is about 2 pounds.) Use only numbers and a decimal point if needed. e.g. 12 or 3.5 or .5'
		},
		'c_password':{
		'regexp': /^\w{4,}$/,
		'error': 'Please enter your password.'
		},
		'newpwd':{
		'regexp': /^\w{4,}$/,
		'error': 'Please retype your new password.'
		}
	};
	
var fm=form.elements;

	for(var i=0; i<fm.length; i++){
		var field=fm[i].name;
		if(field){
			var nn_field=field.replace(/\d/g,"");
			}
		if (validationSet[nn_field]){
			var re = validationSet[nn_field]['regexp'];
			if(!re.test(fm[i].value)){
				var error_target=field + "_error";
				var output_error=document.getElementById(error_target);
				output_error.innerHTML=validationSet[nn_field]['error'];
				output_error.style.display="block";
				fm[i].focus();
				return false;
				}
		}
	}
	
return true;
}

//textarea character counter
                                                
function textCounter(field,cntfield,maxlimit){ 
        if (field.value.length > maxlimit) { 
               field.value = field.value.substring(0, maxlimit); 
               }else{
               cntfield.value = maxlimit - field.value.length;
               }
}
         
//clear error

function clearError(field){
	var error_target=field.name + "_error";
	var output_error=document.getElementById(error_target);
	output_error.innerHTML="";
	output_error.style.display="none";
}

//check field match
function checkMatch(field1,field2){
	var error_target=field2.name + "_error";
	var output_error=document.getElementById(error_target);
	
	if(field1.value!=field2.value){
		output_error.innerHTML="Entries do not match.";
		output_error.style.display="block";
	}else{
		output_error.style.display="none";
	}
}

//check and formatting of phone numbers
function formatPN(field,eTarget){
	var phone=field.value;
	var output_error=document.getElementById(eTarget);
	phone=phone.replace(/\D/g,"");
	var pl=phone.length;
	if(pl!=10){
		output_error.innerHTML="Please enter your 10-digit phone number.";
		output_error.style.display="block";
		field.focus();
		return false;
		}
	phone=phone.substr(0,3) + "-" + phone.substr(3,3) + "-" + phone.substr(6,4);

	var re=/^[2-9]\d{2}-\d{3}-\d{4}$/;
	if(!re.test(phone)){
		output_error.innerHTML="Please check your phone number. Area codes do not begin with 0 or 1.";
		field.focus();
		return false;
		}

	field.value=phone;
	output_error.style.display="none";
	return true;
}