    /*
     * PAGE ONE FORM VALIDATION
     * COPYRIGHT 2006 LowerMyBills.com
     * 
     */
    function ValidatePage1Form( form ) {
        var propertyStateCodeObject = form.propertyStateCode;
        var typeOfLoanObject        = form.typeOfLoan;

        var isValidForm             = true;
        var isValidStateCode        = validateSelectbox( propertyStateCodeObject );
        var isValidTypeOfLoan       = validateSelectbox( typeOfLoanObject );

        // Validate form field
        // If field is not valid display alert, set focus and reinit flag
        if ( !isValidStateCode ) {
            alert( "Please select your Property State." );
            propertyStateCodeObject.focus();
            isValidForm = false;
        }
        else if ( !isValidTypeOfLoan ) {
            alert( "Please select your Type of Loan." );
            typeOfLoanObject.focus();
            isValidForm = false;
        }

        // If the form fields are valid then set form submit field
        if ( isValidForm ) {
            doSubmit(form);
        }

        return isValidForm;
    }

    /*
     * Validate the dropdown box being passed in
     * If the dropdown box is not selected display alert with message
     */
    function validateSelectbox( selectObject ) {
        var isValidEntry = true;

        if ( selectObject.value.length == 0 ) {
            isValidEntry = false;
        }

        return isValidEntry;
    }


function doSubmit(form) {

    var submitUrl = form.action;
    var queryStr = getFormValueQueryString(form);

    if(submitUrl.indexOf('?') == -1) {
        form.action = submitUrl + "?" + queryStr;
    }
    else {
        form.action = submitUrl + "&" + queryStr;
    }

    form.submit();

}

function getFormValueQueryString(form) {
    var i, j, val, name, arrParams = new Array();

    for (i = 0; i < form.elements.length; i++) {
        try {
            if (((form.elements[i].type == "checkbox") || (form.elements[i].type == "radio"))
                    && (form.elements[i].checked == false)) {
                continue;
            }
        } catch(ex) {}

        name = form.elements[i].name;
        val = getFormFieldValue(form.elements[i]);

        if (typeof(val) == "object") {
            for (j = 0; j < val.length; j++) {
                val[j] = name + "=" + escape(val[j]);
            }
            arrParams[i] = val.join("&");
        }
        else {
            arrParams[i] = name + "=" + escape(val);
        }
    }

    return arrParams.join("&");
}

function getFormFieldValue(hField) {
    if (!hField) {
        return undefined;
    }
    try {
        if (hField.type) {
            if (hField.type == "radio") {
                return getRadioValue(hField.form.elements[hField.name]);
            } else if (hField.type == "select-multiple") {
                return getMultipleSelectBoxValues(hField);
            } else {
                return hField.value;
            }
        }
    } catch (ex) {}

    try {
        if (hField.length && hField[0] && (hField[0].type == "radio")) {
            return getRadioValue(hField[0].form.elements[hField[0].name]);
        }
    } catch(ex) {}

    return undefined;
}

function getRadioValue(hRadioGroup) {
    // Gets the selected value of a radio button group. If no radio button is selected, returns an empty string.
    for (var i = 0; i < hRadioGroup.length; i++) {
        if (hRadioGroup[i].checked) {
            return hRadioGroup[i].value;
        }
    }
    return "";
}


function getMultipleSelectBoxValues(hSelect) {
    var i, option, arrSelected = new Array();
    while (hSelect.selectedIndex >= 0) {
        arrSelected[arrSelected.length] = hSelect.selectedIndex;
        hSelect.options[hSelect.selectedIndex].selected = false;
    }
    for (i = 0; i < arrSelected.length; i++) {
        option = hSelect.options[arrSelected[i]];
        option.selected = true;
        arrSelected[i] = option.value;
    }
    return arrSelected;
}
