﻿function validateContactForm()
{
    var Passed = true;
    var IsValid = true;
    
    // first name    
    IsValid = validateTextField('tbFirstName', 'firstNameErr');
        
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after first name = ' + Passed);    
    
    // last name
    IsValid = validateTextField('tbLastName', 'lastNameErr');
        
    if(!IsValid)
        Passed = false;
        
    //alert('Passed after last name = ' + Passed);    
        
    // organization
    IsValid = validateTextField('tbOrganization', 'organizationErr');
    
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after organization = ' + Passed);        
    
    // address 1
    IsValid = validateTextField('tbAddress1', 'address1Err');
        
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after address 1 = ' + Passed);    
    
    // city 
    IsValid = validateTextField('tbCity', 'cityErr');
    
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after city = ' + Passed);    
    
    // state
    IsValid = validateDropDownListField('ddlState', 'stateErr');
    
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after state = ' + Passed);    
        
    // zip code
    IsValid = validateZipCodeTextField('tbZipCode', 'zipCodeErr');
       
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after zip code = ' + Passed);    
        
    // email
    IsValid = validateEmailTextField('tbEmail', 'emailErr');

    if(!IsValid)
        Passed = false;
        
    //alert('Passed after email = ' + Passed);    
    
    // phone
    IsValid = validatePhoneNumberTextField('tbPhone', 'phoneErr');
        
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after phone = ' + Passed);    
    
    // organization
    IsValid = validateDropDownListField('ddlOrganizationSize', 'orgSizeErr');

    if(!IsValid)
        Passed = false;
        
    //alert('Passed after org size = ' + Passed);    
        
    // modules selected
    IsValid = validateSelectedModules();
       
    if(!IsValid)
        Passed = false;
        
    //alert('Passed after modules = ' + Passed);    
    
    // urgency
    IsValid = validateDropDownListField('ddlUrgency', 'urgencyErr');
    
    if(!IsValid)
        Passed = false;
    
    //alert('Passed after urgency = ' + Passed);    
    
    return Passed;        
}

// validate text field
function validateTextField(strTextBoxID, strErrorImageID)
{
    var IsValid = false;
    
    if (document.getElementById(strTextBoxID).value == '')
    {
        IsValid = false;
        document.getElementById(strTextBoxID).className = "inputErr";
        document.getElementById(strErrorImageID).className = "on";
    }
    else
    {
        IsValid = true;
        document.getElementById(strTextBoxID).className = "";
        document.getElementById(strErrorImageID).className = "";
    }
    
    return IsValid;
}

// validate drop down field
function validateDropDownListField(strDropDownListID, strErrorImageID)
{
    var IsValid = false;

    if (document.getElementById(strDropDownListID).value == '-1')
    {
        IsValid = false;
        document.getElementById(strDropDownListID).className = "inputErr"
        document.getElementById(strErrorImageID).className = "on";
    }
    else
    {
        IsValid = true;
        document.getElementById(strDropDownListID).className = "";
        document.getElementById(strErrorImageID).className = "";
    }       
    
    return IsValid;
}

// custom validation of zip code text field
function validateZipCodeTextField(strZipCodeTextFieldID, strErrorImageID)
{
    var IsValid = false;
    var zipCode = document.getElementById(strZipCodeTextFieldID).value
    
    if (zipCode != '')
    {
        if (!IsZipCode(zipCode))
        {
            IsValid = false;
            document.getElementById(strZipCodeTextFieldID).className = "inputErr";
            document.getElementById(strErrorImageID).className = "on";
        }
        else
        {
            IsValid = true;
            document.getElementById(strZipCodeTextFieldID).className = ""
            document.getElementById(strErrorImageID).className = "";
        }
    }
    else
    {
        IsValid = false;
        document.getElementById(strZipCodeTextFieldID).className = "inputErr";
        document.getElementById(strErrorImageID).className = "on";
    }
    
    return IsValid;
}
function IsZipCode(strString)
{
    //  check for valid numeric strings	
    var strValidChars = "0123456789";
    var strChar;
    var blnResult = true;

    if (strString.length == 0) return false;
    
    if (strString.length > 5 || strString.length < 5) return false;

    //  test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++)
    {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1)
        {
            blnResult = false;
        }
    }
    
    return blnResult;
}

// custom validation function for phone numbers
function validatePhoneNumberTextField(strPhoneTextFieldID, strErrorImageID)
{
    var IsValid = false;
    var phone = document.getElementById(strPhoneTextFieldID).value
    
    if (phone != '')
    {
        if (!IsValidPhoneNumber(phone))
        {
            IsValid = false;
            document.getElementById(strPhoneTextFieldID).className = "inputErr";
            document.getElementById(strErrorImageID).className = "on";
        }
        else
        {
            IsValid = true;
            document.getElementById(strPhoneTextFieldID).className = ""
            document.getElementById(strErrorImageID).className = "";
        }
    }
    else
    {
        IsValid = true;
        document.getElementById(strPhoneTextFieldID).className = ""
        document.getElementById(strErrorImageID).className = "";
    }
    
    return IsValid;
}
function IsValidPhoneNumber(strString)
{
    var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;

    //check for valid us phone with or without space between
    //area code
    return objRegExp.test(strString);
}

// custom validation for text field
function validateEmailTextField(strEmailTextFieldID, strErrorImageID)
{
    var IsValid = false; 
    var email = document.getElementById(strEmailTextFieldID).value
    
    if (email != '')
    {
        if(!IsValidEmail(email))
        {
            IsValid = false;
            document.getElementById(strEmailTextFieldID).className = "inputErr";
            document.getElementById(strErrorImageID).className = "on";
        }
        else
        {
            IsValid = true;
            document.getElementById(strEmailTextFieldID).className = ""
            document.getElementById(strErrorImageID).className = "";
        }
    }
    else
    {
        IsValid = false;
        document.getElementById(strEmailTextFieldID).className = "inputErr"
        document.getElementById(strErrorImageID).className = "on";
    }        
    
    return IsValid;
}
function IsValidEmail(strString)
{
    var objRegExp  = /(^[a-z]([a-z0-9_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;

    return objRegExp.test(strString);
}

function validateSelectedModules()
{
    var IsValid = false;

    if (!IsModuleSelected())
    {
        IsValid = false;
        document.getElementById('chkModules_0').className = "inputErr";
        document.getElementById('chkModules_1').className = "inputErr";
        document.getElementById('chkModules_2').className = "inputErr";
        document.getElementById('chkModules_3').className = "inputErr";
        document.getElementById('chkModules_4').className = "inputErr";
        document.getElementById('modulesErr').className = "on";
    }
    else
    {
        IsValid = true;
        document.getElementById('chkModules_0').className = "";
        document.getElementById('chkModules_1').className = "";
        document.getElementById('chkModules_2').className = "";
        document.getElementById('chkModules_3').className = "";
        document.getElementById('chkModules_4').className = "";
        document.getElementById('modulesErr').className = "";
    }
    
    return IsValid;
}

function IsModuleSelected()
{
    var Checked = false;
    
    if (document.getElementById('chkModules_0').checked) Checked = true;
    if (document.getElementById('chkModules_1').checked) Checked = true;
    if (document.getElementById('chkModules_2').checked) Checked = true;
    if (document.getElementById('chkModules_3').checked) Checked = true;
    if (document.getElementById('chkModules_4').checked) Checked = true;

    return Checked;        
}

function ToggleSelectedModules()
{
    if (document.getElementById('chkModules_0').checked)
    {
        document.getElementById('chkModules_1').checked = false;
        document.getElementById('chkModules_1').disabled = true;
        
        document.getElementById('chkModules_2').checked = false;
        document.getElementById('chkModules_2').disabled = true;
        
        document.getElementById('chkModules_3').checked = false;
        document.getElementById('chkModules_3').disabled = true;
        
        document.getElementById('chkModules_4').checked = false;
        document.getElementById('chkModules_4').disabled = true;
    }
    else if(document.getElementById('chkModules_1').checked && document.getElementById('chkModules_2').checked && document.getElementById('chkModules_3').checked && document.getElementById('chkModules_4').checked)
    {
        document.getElementById('chkModules_0').checked = true;
            
        document.getElementById('chkModules_1').checked = false;
        document.getElementById('chkModules_1').disabled = true;
        
        document.getElementById('chkModules_2').checked = false;
        document.getElementById('chkModules_2').disabled = true;
        
        document.getElementById('chkModules_3').checked = false;
        document.getElementById('chkModules_3').disabled = true;
        
        document.getElementById('chkModules_4').checked = false;
        document.getElementById('chkModules_4').disabled = true;
    }
    else
    {
        document.getElementById('chkModules_1').disabled = false;
        document.getElementById('chkModules_2').disabled = false;
        document.getElementById('chkModules_3').disabled = false;
        document.getElementById('chkModules_4').disabled = false;
    }
}
