/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
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){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidateForm(Phone){
  if ((Phone.value==null)||(Phone.value=="")){
    alert("Please Enter your Phone Number")
    Phone.focus()
    return false
  }
  if (checkInternationalPhone(Phone.value)==false){
    alert("Please Enter a Valid Phone Number")
    Phone.focus()
    return false
  }
  return true
 }

function RequiredField(f,keyCol,alerting)
    {
    colKeys=String(document.getElementById(keyCol).value).split(',');
    /*bDisabled=false;
    obj.disable=bDisabled;*/
    for(i=0;i<colKeys.length;i++)
        {
        var s=colKeys[i];
        /*var objE = document.getElementById(s);*/
        /*alert(s);*/
        var objE = f[s];
        /*alert(objE);*/
        if (!objE) continue;

        if(objE.value.length==0){bDisabled = true; setErrorStyle(objE)}else{remErrorStyle(objE)}
        if(objE.name.toLowerCase().indexOf('email') >-1 )
            {
            if(objE.value=="EMAIL" )
                {
                bDisabled = true;
                setErrorStyle(objE)
                if (alerting) {alert('Please Enter Valid Email');objE.value='';objE.focus();return false}
                }
            if(objE.value.indexOf('@') > -1 & objE.value.indexOf('@') > 0 & objE.value.lastIndexOf('.') - objE.value.indexOf('@') > 1 & objE.value.lastIndexOf('.') > -1 & objE.value.lastIndexOf('.')+1 < objE.value.length)
                remErrorStyle(objE)
            else
                {
                bDisabled = true;
                setErrorStyle(objE)
                if (alerting) {alert('Please Enter Valid Email');objE.focus();return false}
                }
            }

        if(objE.name.toLowerCase().indexOf('phone')>-1||objE.name.toLowerCase().indexOf('fax')>-1)
            {
            if (objE.value=="PHONE")
                {
                bDisabled = true;
                setErrorStyle(objE)
                if (alerting) {ValidateForm(objE);objE.focus();return false}
                }
            else
                {
                if (checkInternationalPhone(objE.value)==false)
                    {
                    bDisabled = true;
                    setErrorStyle(objE)
                    if (alerting) {ValidateForm(objE);objE.focus();return false}
                    }
                else remErrorStyle(objE);
                }
            }

        if(objE.name.toLowerCase().indexOf('name')>-1 )
            {
            if(objE.value=="NAME" )
                {
                bDisabled = true;
                setErrorStyle(objE)
                if (alerting) {alert('Please Enter Your Name');objE.value='';objE.focus();return false}
                }
            else
                {
                var re1=/^[A-zA-Z' ]+$/
                /*var re1=/[^a-zA-Z]/g*/
                if (!re1.test(objE.value))
                    {
                    bDisabled = true;
                    setErrorStyle(objE)
                    if (alerting) {alert('Please Enter Your Name');objE.focus();return false}
                    }
                else remErrorStyle(objE);
                }
            }
        if(objE.name.toLowerCase().indexOf('address1') >-1 | objE.name.toLowerCase().indexOf('address2') >-1 )
            {
            var re1=/./
            /*var re3=/[^a-zA-Z0-9]/g*/
            if (!re1.test(objE.value)) {bDisabled = true; setErrorStyle(objE)} else remErrorStyle(objE);
            }
        if(objE.name.toLowerCase().indexOf('city')>-1)
            {
            var re2=/./
            if (!re2.test(objE.value)) {bDisabled = true; setErrorStyle(objE)} else remErrorStyle(objE);
            }

        if(objE.name.toLowerCase().indexOf('rooms')>-1)
            {
            var re2=/^[\d]+$/
            if (!re2.test(objE.value)) {bDisabled = true; setErrorStyle(objE)} else remErrorStyle(objE);
            }

        if(objE.name.toLowerCase().indexOf('state')>-1)
            {
            var re2=/^[A-Za-z]{2}$/
            if (!re2.test(objE.value)) {bDisabled = true; setErrorStyle(objE)} else remErrorStyle(objE);
            }

        if(objE.name.toLowerCase().indexOf('zip')>-1)
            {
            var re2=/^\d{5}(-\d{4})?$/
            if (!re2.test(objE.value)) {bDisabled = true; setErrorStyle(objE)} else remErrorStyle(objE);
            }
        }
//  if(bDisabled==false){obj.disabled=false;}else{obj.disabled=true;}
    }

function CheckField(f,keyCol){RequiredField(f,keyCol,false)}
function setErrorStyle(obj){obj.style.backgroundColor='#999999';}
function remErrorStyle(obj){obj.style.backgroundColor='';}

