var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;
	
function enableMail() {
	if (document.homefinder.mls_list.checked)
	 {
		document.homefinder.address.disabled=false;
		document.homefinder.city.disabled=false;
		document.homefinder.state.disabled=false;
		document.homefinder.zip.disabled=false;
	 }
	else {
		document.homefinder.address.disabled=true;
		document.homefinder.city.disabled=true;
		document.homefinder.state.disabled=true;
		document.homefinder.zip.disabled=true;
	 }
}

function TestFirstChar(b)	{
	var regEx1 = /[ ]/;		
	var first_char = "";

	first_char = b.substring(0,1);
	
	if (first_char.search(regEx1) == -1)	{
		return true;
	}
	else	{
		return false;
	}	
}

function TestValidChars(a)	{
	var regEx = /[^A-Za-z 0-9_-]/;
	var this_str = a;
	
	if (TestFirstChar(this_str))	{
	
		if (this_str.search(regEx) == -1)	{
			return true;
		}
		else	{
			return false;
		}
	}
	else	{
		return false;
	}
}
	
function isInteger(s) {   
	var i;
   	for (i = 0; i < s.length; i++)
   	{   
      	 // Check that current character is number.
      	 	var c = s.charAt(i);
       	if (((c < "0") || (c > "9"))) return false;
   	}
   	// All characters are numbers.
   	return true;
}

function stripCharsInBag(s, bag) {   
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone) {
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
	
function ValidatePhone(){
	var Phone=document.homefinder.phone;
	
	if ((Phone.value==null)||(Phone.value=="")){
		return false;
	}
	if (checkInternationalPhone(Phone.value)==false){
		return false;
	}
	else {
		return true;
	}
 }
 
/******************************************************/ 

function checkVal() {
	var process_action = 0;
	
	process_action += checkAllSelects();
	process_action += checkContactInfo();
	
	if (process_action == 0)
		return true;
	else
		return false;
}

function checkAllSelects() {
	var selectError = 0;
	
	var	listOfSelects = new Array();
	
	listOfSelects[0] = document.homefinder.price;
	listOfSelects[1] = document.homefinder.type;
	listOfSelects[2] = document.homefinder.size;
	listOfSelects[3] = document.homefinder.bedrooms;
	listOfSelects[4] = document.homefinder.bathrooms;
	listOfSelects[5] = document.homefinder.school;
	listOfSelects[6] = document.homefinder.age;
	listOfSelects[7] = document.homefinder.when;
	listOfSelects[8] = document.homefinder.needtosell;
	listOfSelects[9] = document.homefinder.prequalified;
	listOfSelects[10] = document.homefinder.financing;
	listOfSelects[11] = document.homefinder.contact_you;
	
	for (i = 0; i < listOfSelects.length; i++) {
		selectError += checkThisSelect(listOfSelects[i],i);
	}
	return selectError;
}

function checkThisSelect(x,y) {
	var listOfSpans = new Array();
	
	listOfSpans[0] = "option_1_error";
	listOfSpans[1] = "option_2_error";
	listOfSpans[2] = "option_3_error";
	listOfSpans[3] = "option_4_error";
	listOfSpans[4] = "option_5_error";
	listOfSpans[5] = "option_6_error";
	listOfSpans[6] = "option_7_error";
	listOfSpans[7] = "option_8_error";
	listOfSpans[8] = "option_9_error";
	listOfSpans[9] = "option_10_error";
	listOfSpans[10] = "option_11_error";
	listOfSpans[11] = "option_12_error";

	if (x.options[x.selectedIndex].value == "") {
		document.all[listOfSpans[y]].innerHTML="<br><font color='FF0000' size='1'><strong>Please select an option.</strong></font>";
		return 1;
	}
	else {
		document.all[listOfSpans[y]].innerHTML="";
		return 0;
	}
}
	 
function checkContactInfo() {
	var nameMsg = "";
	var emailMsg = "";
	var phoneMsg = "";
	var errorCount = 0;
	var goodEmail = document.homefinder.email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
	
	if (document.homefinder.name.value == "") {
		document.all['nameError'].innerHTML = "<br><font color='FF0000' size='1'><strong>Please enter your name.</strong></font>";
		errorCount += 1;
	}
	else
		document.all['nameError'].innerHTML = "";
	
	if (document.homefinder.email.value == "") {
		document.all['emailError'].innerHTML = "<br><font color='FF0000' size='1'><strong>Please enter your email address.</strong></font>";
		errorCount += 1;
	}
	else {
		if (document.homefinder.email.value != "") {
			if (!goodEmail) {
				document.all['emailError'].innerHTML = "<br><font color='FF0000' size='1'><strong>Please enter a valid email address.</strong></font>";
				errorCount += 1;
			}
			else
				document.all['emailError'].innerHTML = "";
		}
	}
	
	if (document.homefinder.phone.value == "") {
		document.all['phoneError'].innerHTML = "<br><font color='FF0000' size='1'><strong>Please enter your phone number.</strong></font>";
		errorCount += 1;
	}
	else {
		if (!ValidatePhone()) {	 
			document.all['phoneError'].innerHTML = "<br><font color='FF0000' size='1'><strong>Please enter a valid phone number.</strong></font>";
			errorCount += 1;
		}
		else
			document.all['phoneError'].innerHTML = "";
	}
	
	return errorCount;
}

function clearErrMsgs() {
	document.all['nameError'].innerHTML="";
	document.all['emailError'].innerHTML="";
	document.all['phoneError'].innerHTML="";
	document.all['option_1_error'].innerHTML="";
	document.all['option_2_error'].innerHTML="";
	document.all['option_3_error'].innerHTML="";
	document.all['option_4_error'].innerHTML="";
	document.all['option_5_error'].innerHTML="";
	document.all['option_6_error'].innerHTML="";
	document.all['option_7_error'].innerHTML="";
	document.all['option_8_error'].innerHTML="";
	document.all['option_9_error'].innerHTML="";
	document.all['option_10_error'].innerHTML="";
	document.all['option_11_error'].innerHTML="";
	document.all['option_12_error'].innerHTML="";
	
}