var MONTHS = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var PLANDATE = new Array("2/3/2009", "2/10/2009", "2/17/2009", "2/24/2009", "3/3/2009", "3/10/2009", "3/17/2009", "3/24/2009", "4/7/2009", "4/14/2009", "4/21/2009", "4/28/2009", "5/5/2009", "5/12/2009", "5/19/2009", "5/26/2009", "6/2/2009", "6/9/2009", "6/16/2009", "6/23/2009", "7/7/2009", "7/14/2009", "7/21/2009", "7/28/2009", "8/4/2009", "8/11/2009", "8/18/2009", "8/25/2009", "9/1/2009", "9/8/2009", "9/15/2009", "9/22/2009", "10/6/2009", "10/13/2009", "10/20/2009", "10/27/2009", "11/3/2009", "11/10/2009", "11/17/2009", "11/24/2009", "12/1/2009", "12/8/2009", "12/15/2009", "12/22/2009");
var PLANTYPE = new Array("S Single 229.00",
"S couple 349.00",
"S family 429.00",
"P single 329.00",
"P couple 499.00",
"P family 589.00",
"C Sinbgle 429.00",
"C couple 729.00",
"C family 929.00");
var PLANTYPEVALUES = new Array("199", "299", "369", "229", "329", "389", "269", "419", "499", "299", "489", "589");
var MSG_FIELD_MANDATORY = "should not be empty.";
var MSG_DATA_NOT_VALID = "should contain numeric data.";
var MSG_SELECT = "Please select"
var MSG_EMAIL_NOT_VALID = "Email Id is Not valid.";
function fillSelectBoxes() {

    var nCounter = 0;
	
		 
    //For Personal Info Section
    var objPiSelectMonth = document.getElementById("piSelectMonth");
    fillStringOption(objPiSelectMonth, "Month", MONTHS);
    var objPiSelectDay = document.getElementById("piSelectDay");
    fillOptions(objPiSelectDay, "Day", 1, 31);
    var objPiSelectYear = document.getElementById("piSelectYear");
    fillOptionsReverse(objPiSelectYear, "Year", 2009, 58);

    //for dependents section
    fillDependentsDateValues();

    // fillPlanRates();

    var objPrSelectDate = document.getElementById("prSelectDate");
    fillStringOption(objPrSelectDate, "Select Date", PLANDATE);

    var objPrSelectPlan = document.getElementById("prSelectPlan");
    fillStringOptionValues(objPrSelectPlan, "Select Plan", PLANTYPE, PLANTYPEVALUES);


    //For Banking Info section    
    var objBiSelectMonth = document.getElementById("biSelectMonth");
    fillOptions(objBiSelectMonth, "Month", 1, 12);
    var objBiSelectYear = document.getElementById("biSelectYear");
    fillOptions(objBiSelectYear, "Year", 2009, 60);

}

function fillOptions(objSelectBox, defaultValue, startValue, totalValues) {
    if (objSelectBox != null && typeof objSelectBox != "undefined") {
        objSelectBox.options[objSelectBox.options.length] = new Option(defaultValue, "");
        for (var i = 0; i < totalValues; i++) {
            objSelectBox.options[objSelectBox.options.length] = new Option(startValue, ++startValue);
        }

    }
}
function fillOptionsReverse(objSelectBox, defaultValue, startValue, totalValues) {
    if (objSelectBox != null && typeof objSelectBox != "undefined") {
        objSelectBox.options[objSelectBox.options.length] = new Option(defaultValue, "");
        for (var i = 0; i < totalValues; i++) {
            objSelectBox.options[objSelectBox.options.length] = new Option(startValue, --startValue);
        }

    }
}
function fillStringOption(objSelectBox, defaultValue, arrOptions) {

    if (objSelectBox != null && typeof objSelectBox != "undefined") {
        objSelectBox.options[objSelectBox.options.length] = new Option(defaultValue, "");
        for (var i = 0; i < arrOptions.length; i++) {
            objSelectBox.options[objSelectBox.options.length] = new Option(arrOptions[i], arrOptions[i]);
        }

    }

}
function fillStringOptionValues(objSelectBox, defaultValue, arrOptions, arrValues) {

    if (objSelectBox != null && typeof objSelectBox != "undefined") {
        objSelectBox.options[objSelectBox.options.length] = new Option(defaultValue, "");
        for (var i = 0; i < arrOptions.length; i++) {
            objSelectBox.options[objSelectBox.options.length] = new Option(arrOptions[i], arrValues[i]);
        }

    }

}

function fillDependentsDateValues() {
    var objMonth = null;
    var objDay = null;
    var objYear = null;
    var strMonth = "";
    var strday = "";
    var strYear = "";

    for (var i = 1; i <= 5; i++) {
        strMonth = "depSelectMonth" + i;
        objMonth = document.getElementById(strMonth);
        fillStringOption(objMonth, "Month", MONTHS);

        strday = "depSelectDay" + i;
        objDay = document.getElementById(strday);
        fillOptions(objDay, "Day", 1, 31);

        strYear = "depSelectYear" + i;
        objYear = document.getElementById(strYear);
        fillOptionsReverse(objYear, "Year", 2009, 58);

        if (objMonth != null)
            objMonth = null;
        if (objDay != null)
            objDay = null;
        if (objYear != null)
            objYear = null;
    }
}

function ValidateData()
{
    var objForm = document.forms["frmWebApp"];


    //validation for personal Information
    if (!validateFormData(document.getElementById("txtFirstName"), "First Name", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtLastName"), "Last Name", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtStreetAddress"), "Street Address", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtCity"), "City", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtState"), "State", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtZipCode"), "Zip Code", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtHomePhone1"), "Home Phone", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtHomePhone2"), "Home Phone", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtHomePhone3"), "Home Phone", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtSSNo1"), "Social Security Number", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtSSNo2"), "Social Security Number", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("txtSSNo3"), "Social Security Number", true, "", "", MSG_FIELD_MANDATORY))
        return false;
    if (!validateFormData(document.getElementById("piSelectMonth"), "", true, "", "", MSG_SELECT + " Month."))
        return false;
    if (!validateFormData(document.getElementById("piSelectDay"), "", true, "", "", MSG_SELECT + " Day."))
        return false;
    if (!validateFormData(document.getElementById("piSelectYear"), "", true, "", "", MSG_SELECT + " Year."))
        return false;
    if (!validateFormData(document.getElementById("txtEmail"), "Email Id", "", "", "", MSG_FIELD_MANDATORY))
        return false;


    //validation for Plan Rates
    if (!validateFormData(document.getElementById("prSelectDate"), "", true, "", "", MSG_SELECT + " Process Date."))
        return false;
    if (!validateFormData(document.getElementById("prSelectPlan"), "", true, "", "", MSG_SELECT + " Plan type."))
        return false;


    //validation for Banking Information
    if (document.getElementById("txtBankName") != null && typeof document.getElementById("txtBankName") != "undefined") {
        if (document.getElementById("txtBankName").value != "") {
            if (!validateFormData(document.getElementById("txtRoutingNumber"), "Routing Number", true, "", "", MSG_FIELD_MANDATORY))
                return false;
            if (!validateFormData(document.getElementById("txtAccountNumber"), "Account Number", true, "", "", MSG_FIELD_MANDATORY))
                return false;
            if (!validateFormData(document.getElementById("txtCheckNumber"), "Check Number","","", "", MSG_FIELD_MANDATORY))
                return false;

            if (document.getElementById("rdoCheckings").checked == false && document.getElementById("rdoSavings").checked == false) {
                alert("Please select Type of account");
                document.getElementById("rdoCheckings").focus();
                return false;
            }

        }

    }
   if (document.getElementById("txtCreditCard") != null && typeof document.getElementById("txtCreditCard") != "undefined") {
        if (document.getElementById("txtCreditCard").value != "") {

            if (!validateFormData(document.getElementById("biSelectMonth"), "", true, "", "", MSG_SELECT + " Month."))
                return false;
            if (!validateFormData(document.getElementById("biSelectYear"), "", true, "", "", MSG_SELECT + " Year."))
                return false;
            if (!validateFormData(document.getElementById("txtCVC"), "CVC", true, "", "", MSG_FIELD_MANDATORY))
                return false;
        }
    }
    if (document.getElementById("txtCreditCard").value == "" && document.getElementById("txtBankName").value == "") {
        alert("Please fill the Banking Information");
        document.getElementById("txtBankName").focus();
        return false;
    }   
    return true;    
}

function validateFormData(objElement, strDisplayName, bIsMandatory, bIsNumeric, bIsEmail,strErrorMsg)
{
    var bRetValue = false;

    if (objElement == null && typeof objElement == "undefined")
        return false;
    else {      
        if (bIsMandatory == true && objElement.value == "") {

            alert(strDisplayName + " " + strErrorMsg);
            objElement.focus();
            return false;
        }

        if (bIsNumeric == true) {
            if (!validateInt(objElement.value)) {

                alert(strDisplayName + " " + MSG_DATA_NOT_VALID);
                objElement.focus(); 
                return false;
            }
        }
        if (bIsEmail == true)
        {
            if (objElement.value.indexOf('@', 1) == -1 || objElement.value.indexOf('.', 2) == -1) {
            
				alert(  )
                alert(MSG_EMAIL_NOT_VALID);
                objElement.focus();
                return false;    
            
            }             
        }      
       
        return true;  
    
    }


}

function validateInt(str) {
    return /^[0-9]+(\.[0-9]+)?$/.test(str);
}

function onPlanTypeChange() {

    var objSlPlanType = document.getElementById("prSelectPlan");
    if (objSlPlanType != null) {
        if(objSlPlanType.value != "")
        {
            var nValue = parseInt(objSlPlanType.value, 10);
            document.getElementById("txtTotal").value = nValue + 125;
        }
    }
}

function onTermsClick() {
    var objTermsCheckBox = document.getElementById("chkTerms")   
    if (objTermsCheckBox.checked == true)
        document.getElementById("btnSubmit").disabled = false;
    else
        document.getElementById("btnSubmit").disabled = true;        
         
}