function trim(str){
        return str.replace(/^\s*|\s*$/g,"");
}

function validZipcode(value){
 	reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
 	if (!reZip.test(value)) {
		return false;
	}
	return true;
}

function validPhone(value){
 	rePhone = new RegExp(/\d{3}\-\d{3}\-\d{4}/);
 	if (!rePhone.test(value)) {
	 	rePhone = new RegExp(/\d{3} \d{3} \d{4}/);
	 	if (!rePhone.test(value)) {
		 	rePhone = new RegExp(/\d{10}/);
		 	if (!rePhone.test(value)) {
				return false;
			}
		}
	}
	return true;
}

function validEmail(email) {
        var str = email;
        if (window.RegExp) {
                var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
                var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
                var reg1 = new RegExp(reg1str);
                var reg2 = new RegExp(reg2str);
                if (!reg1.test(str) && reg2.test(str)) return true;
                return false;
        } else {
                if(str.indexOf("@") >= 0) return true;
                return false;
        }
}

function isNumeric(sText){
	var ValidChars	= "0123456789.";
	var IsNumber	= true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}

function validateDOB(month,day,year,age){

        var dayobj = new Date(year, month-1, day);
        if ((dayobj.getMonth()+1!=month)||(dayobj.getDate()!=day)||(dayobj.getFullYear()!=year)){
                alert("The date entered as your 'Birth Date' is not valid.");
                return false;
        }


        var D, B, J, OB;

        with (D = new Date()) setHours(0,0,0,0) // today
                B       = dayobj;
                J = -1;
        do { OB = B.valueOf() ; B.setFullYear(B.getFullYear()+1) ; J++; }
        while (B<D) ;

        var DIFF        = (J + (D-OB)/(B-OB));
        if(DIFF<18){
                alert("You must be 18 years of age or older to apply.");
                return false;
        }

        return true;
}

function validateApplyForm(form){
	if(trim(form["f_first_name"].value)==""){
		alert("You must supply your first name.");
		form["f_first_name"].select();
		form["f_first_name"].focus();
		return false;
	}
	if(trim(form["f_last_name"].value)==""){
		alert("You must supply your last name.");
		form["f_last_name"].select();
		form["f_last_name"].focus();
		return false;
	}
	if(!validEmail(trim(form["f_email_address"].value))){
		alert("You must supply a valid e-mail address.");
		form["f_email_address"].select();
		form["f_email_address"].focus();
		return false;
	}

	if(trim(form["f_address"].value)==""){
		alert("You must supply your address.");
		form["f_address"].select();
		form["f_address"].focus();
		return false;
	}

	if(trim(form["f_city"].value)==""){
		alert("You must supply your city.");
		form["f_city"].select();
		form["f_city"].focus();
		return false;
	}
	if(trim(form["f_state"].value)==""){
		alert("You must supply your state.");
		form["f_state"].focus();
		return false;
	}

	if(!validZipcode(trim(form["f_zipcode"].value))){
		alert("You must supply a valid zipcode.");
		form["f_zipcode"].select();
		form["f_zipcode"].focus();
		return false;
	}

	if(!validateDOB(form["s_dob_month"].value,form["s_dob_day"].value,form["s_dob_year"].value,18)){
		form["s_dob_month"].focus();
		return false;
    }

	if(trim(form["f_phone_daytime"].value)=="" && trim(form["f_phone_home"].value)=="" && trim(form["f_phone_cell"].value)==""){
		alert("You must supply at least one phone number so that we may contact you.");
		form["f_phone_daytime"].select();
		form["f_phone_daytime"].focus();
		return false;
	}

	if(trim(form["f_phone_daytime"].value)!="" && !validPhone(trim(form["f_phone_daytime"].value))){
		alert("You must supply a valid daytime phone number.");
		form["f_phone_daytime"].select();
		form["f_phone_daytime"].focus();
		return false;
	}
	if(trim(form["f_phone_home"].value)!="" && !validPhone(trim(form["f_phone_home"].value))){
		alert("You must supply a valid home phone number.");
		form["f_phone_home"].select();
		form["f_phone_home"].focus();
		return false;
	}
	if(trim(form["f_phone_cell"].value)!="" && !validPhone(trim(form["f_phone_cell"].value))){
		alert("You must supply a valid cell phone number.");
		form["f_phone_cell"].select();
		form["f_phone_cell"].focus();
		return false;
	}
	
	return true;
}

function validateSearchForm(form){
	if(form["f_income_goal"].value==""){
		alert("Please select a 'Yearly Income Goal'.");
		form["f_income_goal"].focus();
		return false;
	}
	if(form["f_workload_preference"].value==""){
		alert("Please select a 'Workload Preference'.");
		form["f_workload_preference"].focus();
		return false;
	}
	if(trim(form["s_zipcode"].value)==""){
		alert("Please enter a 'Zipcode'.");
		form["s_zipcode"].select();
		form["s_zipcode"].focus();
		return false;
	}
	if(!validZipcode(trim(form["s_zipcode"].value))){
		alert("The 'Zipcode' entered does not look correct. Please enter a vlid zipcode.");
		form["s_zipcode"].select();
		form["s_zipcode"].focus();
		return false;
	}
	if(!isNumeric(trim(form["s_distance"].value))){
		alert("The 'Distance you are willing to travel' entered must be a number is miles. Please enter a valid distance.");
		form["s_distance"].select();
		form["s_distance"].focus();
		return false;
	}
	return true;
}

function getSelectedRadio(btn) {
	var cnt = -1;
	for (var i=btn.length-1; i > -1; i--) {
		if (btn[i].checked) {cnt = i; i = -1;}
	}
	if (cnt > -1) return btn[cnt].value;
	else return null;
}