// function for Enable or Disable the drop down is State is U.S.
function checkState()
{
    var country = document.getElementById('Country');
    var state = document.getElementById('State');
    if(country.value == "United States")
    {
        state.disabled = false;
    }
    else
    {
        state.disabled = true;
        state.value = "";
    }
}
// Validation for Sign Up Form.
function validationSignUp()
{
    if(validSignUp())
    {
        document.frmSignUp.submit();
    }
}
// Validation for contact us Form.
function validationContactUs()
{
    if(validContactUs())
    {
        document.frmcontactus.submit();
    }
}

// Validation for Newsletter subscription
function validationNewsletter()
{
    if(validNewsletter())
    {
        document.frmNewsletter.submit();
    }
}

// Validation For Demo Form
function validationDemo()
{
    if(validDemo())
    {
        document.frmDemo.submit();
    }
}


//Validation For Basic Infomation Form
function validationInfo()
{
    if(validInfo())
    {
        document.frmInfo.submit();
    }
}

// Validation For Chat Information
function validationChat()
{
    if(validChat())
    {
        document.frmChat.submit();
    }
}

// Validation For Sign Up Form.
function validSignUp()
{
    var subject =  document.frmSignUp.subject;
    var company =  document.frmSignUp.txtCompany;
    var website =  document.frmSignUp.txtWebsite;
    var viaPhone =  document.frmSignUp.chkPhone;
    var viaEmail =  document.frmSignUp.chkEmail;
    // var viaSpecification =  document.frmSignUp.txtContactVia;
    var phoneCountryCode =  document.frmSignUp.PhoneCountryCode;
    var phoneAreaCode =  document.frmSignUp.PhoneAreaCode;
    var phoneNo =  document.frmSignUp.PhoneNo;
    //var phoneExt =  document.frmSignUp.PhoneExt;
    var comments =  document.frmSignUp.Comments;


    if(!validateEmpty(subject,"Please select subject.\n"))
    {
        return false;
    }
    else if(!validateEmpty(company,"Please enter company name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(website,"Please enter website.\n"))
    {
        return false;
    }
    else if(phoneCountryCode.value =="" && phoneAreaCode.value =="" && phoneNo.value ==""  )
    {
        phoneCountryCode.style.background = 'Yellow';
        phoneAreaCode.style.background = 'Yellow';
        phoneNo.style.background = 'Yellow';
        phoneCountryCode.focus();
        error = "Please enter a phone number.\n";
        alert(error);
        return false;
    }
    else if(!validateEmpty(phoneCountryCode,"Please enter country code.\n"))
    {
        return false;
    }
    else if(!validateEmpty(phoneAreaCode,"Please enter area code.\n"))
    {
        return false;
    }
    else if(!validateEmpty(phoneNo,"Please enter number.\n"))
    {
        return false;
    }
    else if(viaPhone.checked==false && viaEmail.checked==false)
    {
        var error = "Please select contact me by.";
        alert(error);
        return false;
    }
    //    if(viaSpecification.value=="Please Specify")
    //    {
    //        viaSpecification.value="";
    //    }
    //   if(!validateEmpty(viaSpecification,"Please specify contact details.\n"))
    //    {
    //        return false;
    //    }
    var commentHas = comments.value
    if(!checkLength(comments,200,"You can enter maximum 200 characters.") && commentHas)
    {
        return false;
    }

    else
    {
        return true;
    }

}

// Validation for Contact Us Form
function validContactUs()
{
    var name = document.frmcontactus.txtName;
    var email =  document.frmcontactus.txtEmail;
    var phone = document.frmcontactus.txtPhone;
    var message =  document.frmcontactus.txtMessage;
    if(!validateEmpty(name,"Please enter name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateEmpty(phone,"Please enter phone number.\n"))
    {
        return false;
    }
    else if(!validateEmpty(message,"Please enter message.\n"))
    {
        return false;
    }
    else if(!checkLength(message,200,"You can enter maximum 200 characters."))
    {
        return false;
    }
    else
    {
        return true;
    }

}

// Validation For News Letter
function validNewsletter()
{
    var hotelName = document.frmNewsletter.txtHotel;
    var email =  document.frmNewsletter.txtEmail;

    if(hotelName.value=="Hotel Name")
    {
        hotelName.value="";
    }
    if(!validateEmpty(hotelName,"Please enter hotel name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else
    {
        return true;
    }
}


// Validation for Demo Form
function validDemo()
{
    var name = document.frmDemo.txtName;
    var email =  document.frmDemo.txtEmail;
    var hotelName = document.frmDemo.txtHotel;
    var city =  document.frmDemo.txtCity;
    var website = document.frmDemo.txtURL;
    var phone = document.frmDemo.txtPhone;
    var message = document.frmDemo.txtMessage;
    var noVal = "";
    if(!validateEmpty(name,"Please enter name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateEmpty(hotelName,"Please enter hotel name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(city,"Please enter city.\n"))
    {
        return false;
    }
    else if(!validateEmpty(website,"Please enter website(URL).\n"))
    {
        return false;
    }
    else if(!checkPhone (phone.value,noVal)&& phone.value)
    {
        phone.style.background = 'Yellow';
        phone.focus();
        error = "Please enter a valid telephone number.\n";
        alert(error);
        return false;
    }
    else if(!checkLength(message,200,"You can enter maximum 200 characters."))
    {
        return false;
    }
    else
    {
        return true;
    }

}

// Validation For Basic Information.
function validInfo()
{
    var firstName = document.frmInfo.txtFirstName;
    var lastName = document.frmInfo.txtLastName;
    var email =  document.frmInfo.txtEmail;

    if(!validateEmpty(firstName,"Please enter first name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(lastName,"Please enter last name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else
    {
        return true;
    }
}

//Validation For Chat Information
function validChat()
{
    var subject = document.frmChat.txtSubject;
    var email =  document.frmChat.txtEmail;
    var message = document.frmChat.txtMessage;

    if(!validateEmpty(subject,"Please enter name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateEmpty(message,"Please enter message.\n"))
    {
        return false;
    }
    else if(!checkLength(message,200,"You can enter maximum 200 characters."))
    {
        return false;
    }
    else
    {
        return true;
    }

}


// Different Functions for Form Validations.
function validateEmpty(name,error)
{
    if (name.value.length == 0) {
        name.style.background = 'Yellow';
        name.focus();
        alert(error);
        return false;
    } else {
        name.style.background = 'White';
        return true;
    }

}
function validateEmptyRadio(error)
{
    if ( ( document.frmStory.age[0].checked == false )
        && ( document.frmStory.age[1].checked == false ) )
        {
        alert (error);
        return false;
    }
    else
    {
        return true;
    }
}
function validateRadio(error)
{
    if ( ( document.frmSubscribe.region[0].checked == false )
        && ( document.frmSubscribe.region[1].checked == false ) )
        {
        alert (error);
        return false;
    }
    else
    {
        return true;
    }
}
function trim(space)
{
    return space.replace(/^\s+|\s+$/, '');
}

function validateEmail(email) {
    var error="";
    var tfld = trim(email.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (email.value == "") {
        email.style.background = 'Yellow';
        email.focus();
        error = "Please enter email address.\n";
        alert(error);
        return false;
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        email.style.background = 'Yellow';
        email.focus();
        error = "Please enter a valid email address.\n";
        alert(error);
        return false;
    } else if (email.value.match(illegalChars)) {
        email.style.background = 'Yellow';
        email.focus();
        error = "Please enter a valid email address.\n";
        alert(error);
        return false;
    } else {
        email.style.background = 'White';
        return true;
    }
}
var phoneNumberDelimiters = "()- .";
var defaultEmptyOK=false;
var digitsInPhoneNumber=10;
var iUSPhone = "Please enter a valid US mobile number.";
var pUSPhone = "Please enter a valid US mobile number.";
var pEntryPrompt = "Please enter a valid US mobile number";
var reInteger = /^\d+$/;

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 isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}

function promptEntry (s)
{
    window.status = pEntryPrompt + s
}

function warnInvalid (theField, s)
{
    theField.style.background = 'Yellow';
    alert(s)
    return false;
}
// Removes all characters which appear in string bag from string s.

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 isPhoneNumber (s)
{
    if (isEmpty(s))
        if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
        else return (isPhoneNumber.arguments[1] == true);
    return (isInteger(s) && s.length == digitsInPhoneNumber)
}
function checkPhone(phoneNum,val)
{
    if (isEmpty(phoneNum)) return false;
    else
    {
        var normalizedPhone = stripCharsInBag(phoneNum, phoneNumberDelimiters)
        //if(normalizedPhone.charAt(0)==1 || normalizedPhone.charAt(0)==0) return false;
        if (!isPhoneNumber(normalizedPhone, false))
            return false;

        else
        {  // if you don't want to reformat as (123) 456-789, comment next line out
            if(val.value == "")
            {
                return false;
            }
            return true;

        }
    }
}
//Function for to check the length of the entered value.
function checkLength(variable,size,error)
{
    if(variable.value.length > size)
    {
        variable.style.background = 'Yellow';
        variable.focus();
        alert(error);
        return false;
    }
    else
    {
        return true;
    }

}