
var defaultEmptyOK = false;
var phoneNumberDelimiters = "()- ";
var digitsInUSPhoneNumber = 10;
var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now. Leave Blank if email is only contact preference.";
var iEmail = "This field must be a valid email address (like foo@bar.com). If you do not have email please call 877-619-0710. WE DO NOT USE IT FOR ANY OTHER PURPOSE."
var reEmail = /^.+\@.+\..+$/
var reInteger = /^\d+$/

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isInteger (s)
{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}

function isUSPhoneNumber (s)
{   if (isEmpty(s)) 
       if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isUSPhoneNumber.arguments[1] == true);
    return (isInteger(s) && s.length == digitsInUSPhoneNumber)
}

function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    else {
       return reEmail.test(s)
    }
}

function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    return false
}

function reformat (s)

{   var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

function reformatUSPhone (USPhone)
{
   return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}

function checkUSPhone (theField, emptyOK)
{   if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else
    {  var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
       if (!isUSPhoneNumber(normalizedPhone, false)) 
          return warnInvalid (theField, iUSPhone);
       else 
       {  // if you don't want to reformat as (123) 456-789, comment next line out
          theField.value = reformatUSPhone(normalizedPhone)
          return true;
       }
    }
}

function checkEmail (theField, emptyOK)
{   if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, iEmail);
    else return true;
}

function SubmitForm()
{
	document.getElementById("form1").submit();
	document.form1.Submit.disabled=true;
}

function ValidateForm(submitbtn)
{
	var phoneField = document.getElementById("PHONE");
	var emailField = document.getElementById("EMAIL");
	var nameField = document.getElementById("NAME");
	if (isEmpty(nameField.value)){
		
		alert("Please Enter Name, First Name is Fine");
		
	}else{
		if (isEmpty(emailField.value))
		{
			 if (isEmpty(phoneField.value))
			 {
				alert("Please enter a valid phone number. If you still do not wish to enter phone leave blank or call 877-619-0710 for quote help. Info is used for the sole purpose of your auto transport quote only. ");
				
			}
			 else
			 {
				var validPhone = checkUSPhone(document.getElementById("PHONE"),false);
				
				if (validPhone)
				{
					SubmitForm();
				} 
			 }
		}
		else
		{	
			var validEmail = checkEmail(document.getElementById("EMAIL"),false);
			
			if (validEmail)
			{
				var validPhone = checkUSPhone(document.getElementById("PHONE"),true);
				
				if (validPhone)
				{
					SubmitForm();
				} 
			}
		}
	}
	
}