var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

function StripLeadBlanks(x) {
	if (x.value == " ")	{
		x.value = "";
		return;
	}
	else	
	{	
		var new_text = "";
		var char_num = 0;
		var found_first = false;
		var char_pos = 0;
		
		for (char_num = 0;char_num < x.length;char_num++)	
		{
			if (!found_first)	
			{
				if (x.charAt(char_num) != " ")	
				{
					found_first = true;
					char_pos = char_num;
				}			
			}
		}	
	
		if (char_pos != 0)	
		{
			x.value = x.substring(char_pos);
		}
	}
}

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 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 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.contactFred.phone;
	
	if ((Phone.value==null)||(Phone.value=="")){
		return false;
	}
	if (checkInternationalPhone(Phone.value)==false){
		return false;
	}
	else {
		return true;
	}
 }
 
 function removeCommas( strValue ) {
/************************************************
DESCRIPTION: Removes commas from source string.

PARAMETERS:
  strValue - Source string from which commas will
    be removed;

RETURNS: Source string with commas removed.
*************************************************/
  var objRegExp = /,/g; //search for commas globally

  //replace all matches with empty strings
  document.contactFred.txtSF.value = strValue.replace(objRegExp,'');
}
	
function validateFormFields() {
	var errFlag = "";
	
	if (document.contactFred.txtName.value == "") {
		document.all['span1'].innerHTML = "Name Required";
		document.all['span1'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		document.all['span1'].style.visibility='hidden';
	}
		
	if (document.contactFred.txtEmail.value == "") {
		document.all['span2'].innerHTML = "Email Required";
		document.all['span2'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		var goodEmail = document.contactFred.txtEmail.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
		if (!goodEmail) {
			document.all['span2'].innerHTML = "Valid Email Required";
			document.all['span2'].style.visibility='visible';
			errFlag = "y";
		}
		else {
			document.all['span2'].style.visibility='hidden';
		}
	}
	
	if (document.contactFred.phone.value !== "") {
		if (!ValidatePhone()) {	 
			document.all['span3'].innerHTML = "Valid Phone Required";
			document.all['span3'].style.visibility='visible';
			errFlag = "y";
		}
		else
			document.all['span3'].innerHTML = "";
	}
	
	if (document.contactFred.txtAddress.value == "") {
		document.all['span4'].innerHTML = "Address Required";
		document.all['span4'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		document.all['span4'].style.visibility='hidden';
	}
	
	if (document.contactFred.txtCity.value == "") {
		document.all['span5'].innerHTML = "City Required";
		document.all['span5'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		document.all['span5'].style.visibility='hidden';
	}
	
	if (document.contactFred.txtZip.value == "") {
		document.all['span6'].innerHTML = "Zip Code Required";
		document.all['span6'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		if(!IsInteger(document.contactFred.txtZip.value)) {
			document.all['span6'].innerHTML = "Enter a number";
			document.all['span6'].style.visibility='visible';
			errFlag = "y";
		}
		else {
			var i = document.contactFred.txtZip.value;
			if(i.length < 5) {
				document.all['span6'].innerHTML = "Enter a 5-digit number";
				document.all['span6'].style.visibility='visible';
				errFlag = "y";
			}
			else
				document.all['span6'].style.visibility='hidden';
		}
	}
	
	if (document.contactFred.txtBeds.value == "") {
		document.all['span7'].innerHTML = "Beds Required";
		document.all['span7'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		if(!IsInteger(document.contactFred.txtBeds.value)) {
			document.all['span7'].innerHTML = "Enter a number (no decimals)";
			document.all['span7'].style.visibility='visible';
			errFlag = "y";
		}
		else
			document.all['span7'].style.visibility='hidden';
	}
	
	if (document.contactFred.txtBaths.value == "") {
		document.all['span8'].innerHTML = "Baths Required";
		document.all['span8'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		if(!IsNumeric(document.contactFred.txtBaths.value)) {
			document.all['span8'].innerHTML = "Enter a number";
			document.all['span8'].style.visibility='visible';
			errFlag = "y";
		}
		else
			document.all['span8'].style.visibility='hidden';
	}
	
	if (document.contactFred.txtSF.value == "") {
		document.all['span9'].innerHTML = "Square Footage Required";
		document.all['span9'].style.visibility='visible';
		errFlag = "y";
	}
	else {
		if(!IsInteger(document.contactFred.txtSF.value)) {
			document.all['span9'].innerHTML = "Square Footage must be a number";
			document.all['span9'].style.visibility='visible';
			errFlag = "y";
		}
		else
			document.all['span9'].style.visibility='hidden';
	}
	
	
	if (errFlag !== "") {
		return false;
	}
	else {
		document.contactFred.action="send_email.cfm";
		document.contactFred.method="post";
		document.contactFred.submit();
	}
}	

function resetTheForm() {
	document.contactFred.reset();
	document.all['span1'].innerHTML='';
	document.all['span2'].innerHTML='';
	document.all['span3'].innerHTML='';
	document.all['span4'].innerHTML='';
	document.all['span5'].innerHTML='';
	document.all['span6'].innerHTML='';
	document.all['span7'].innerHTML='';
	document.all['span8'].innerHTML='';
	document.all['span9'].innerHTML='';
}
