
// phone validator to work with multiple fields
var phoneToClean = null;

function cleanPhone(_phoneToClean) {
    if ( !(typeof _phoneToClean==='undefined' )) {
        phoneToClean = _phoneToClean;
    }
    var obj = phoneToClean;
    if (obj) {
        var str = obj.value;
        var old = str;
        str = str.replace(/[^0-9]/g, '');
        str = str.substr(0,10);
        if (str.length >= 3) str = '(' + str.substring(0,3) + ') ' + str.substring(3);
        if (str.length >= 9) str = str.substring(0,9) + '-' + str.substring(9);
        if (old != str) {
            obj.value = str;
        }
        setTimeout("cleanPhone()",500);
    }
}

var ssnToClean = null;

function cleanSSN(_ssnToClean) {
    if ( !(typeof _ssnToClean==='undefined' )) {
        ssnToClean = _ssnToClean;
    }
    var obj = ssnToClean;
    if (obj) {
        var str = obj.value;
        var old = str;
        str = str.replace(/[^0-9]/g, '');
        str = str.substr(0,9);
        if (str.length >= 3) str = str.substring(0,3) + '-' + str.substring(3);
        if (str.length >= 5) str = str.substring(0,6) + '-' + str.substring(6);
        if (old != str) {
            obj.value = str;
        }
        setTimeout("cleanSSN()",500);
    }
}

var dateToClean = null;

function cleanDate(_dateToClean) {
    if ( !(typeof _dateToClean==='undefined' )) {
        dateToClean = _dateToClean;
    }
    var obj = dateToClean;
    if (obj) {
        var str = obj.value;
        var old = str;
        str = str.replace(/[^0-9]/g, '');
        str = str.substr(0,8);
        if (str.length >= 2) str = str.substring(0,2) + '/' + str.substring(2);
        if (str.length >= 5) str = str.substring(0,5) + '/' + str.substring(5);
        if (old != str) {
            obj.value = str;
        }
        setTimeout("cleanDate()",500);
    }
}

var ageToClean = null;

function cleanAge(_ageToClean) {
    if ( !(typeof _ageToClean==='undefined' )) {
        ageToClean = _ageToClean;
    }
    var obj = ageToClean;
    if (obj) {
        var str = obj.value;
        var old = str;
        str = str.replace(/[^0-9]/g, '');
        str = str.substr(0,2);
        if (old != str) {
            obj.value = str;
        }
        setTimeout("cleanAge()",500);
    }
}

var zipToClean = null;

function cleanZip(_zipToClean) {
    if ( !(typeof _zipToClean==='undefined' )) {
        zipToClean = _zipToClean;
    }
    var obj = zipToClean;
    if (obj) {
        var str = obj.value;
        var old = str;
        str = str.replace(/[^0-9]/g, '');
        str = str.substr(0,9);
        if (str.length > 5) str = str.substring(0,5) + '-' + str.substring(5);
        if (old != str) {
            obj.value = str;
        }
        setTimeout("cleanZip()",500);
    }
}

function elementChecks (fieldname, elem, required) {
    var elemErrors = false;
    if (fieldname.match(/Phone/) != null) {
        var pattern = /[(]\d\d\d[)]\s\d\d\d-\d\d\d\d/;
        if ($(elem).val().length < 14 || $(elem).val().match(pattern) == null) {
            if (required || ($(elem).val().length > 0)) {
                $(elem).css({'background-color':"#ffaaaa"});
                elemErrors = true;
            }
        }
    }
    if (fieldname.match(/Date/) != null) {
        var pattern = /\d\d[/]\d\d[/]\d\d\d\d/;
        if ($(elem).val().length < 10 || $(elem).val().match(/\d\d[/]\d\d[/]\d\d\d\d/) == null) {
            if (required || ($(elem).val().length > 0)) {
                $(elem).css({'background-color':"#ffaaaa"});
                elemErrors = true;
            }
        }
    }
    if (fieldname.match(/Zip/) != null) {
        var pattern = /\d\d\d\d\d(?:-\d{1,4})?/;
        if (($(elem).val().length < 5 || $(elem).val().length > 10) || $(elem).val().match(pattern) == null) {
            if (required || ($(elem).val().length > 0)) {
                $(elem).css({'background-color':"#ffaaaa"});
                elemErrors = true;
            }
        }
    }

    return elemErrors;
}

function verifyForm() {
    var errors = false;
    var errorMessage = "There were some problems with your form submission.  Please correct all items highlighted in red.";
    var focusElem = null;

    requiredFields = new Array('ProgramSelection','ProgramYear','GI_FirstName','GI_MiddleInitial','GI_LastName','GI_Address','GI_City','GI_State','GI_Zip','GI_HomePhone','GI_Email','GI_DOB','GI_AGE','GI_SSN','GI_Citizen','GI_FelonyConviction','EC_1_FirstName','EC_1_LastName','EC_1_Relationship','EC_1_HomePhone','EC_1_WorkPhone','EC_2_FirstName','EC_2_LastName','EC_2_Relationship','EC_2_HomePhone','EC_2_WorkPhone','ED_HS_NameAddress','ED_HS_FromDate','ED_HS_ToDate','PersonalStatement','EQ_Interest','EQ_LearningExperiences','EQ_Readiness','EQ_SelfCare','EQ_Meditation','EQ_Conflict','EQ_Tuition','RF_1_FirstName','RF_1_LastName','RF_1_Phone','RF_1_Address','RF_1_City','RF_1_State','RF_1_Zip','RF_2_FirstName','RF_2_LastName','RF_2_Phone','RF_2_Address','RF_2_City','RF_2_State','RF_2_Zip','RF_3_FirstName','RF_3_LastName','RF_3_Phone','RF_3_Address','RF_3_City','RF_3_State','RF_3_Zip','Signature','SignatureDate');

    otherFields = new Array('GI_WorkPhone','GI_FelonyConvictionNotes','GI_HowDidYouFindOut','GI_HowDidYouFindOutOther','ED_HS_GradDate','ED_HS_GED','ED_CVS_NameAddress','ED_CVS_FromDate','ED_CVS_ToDate','ED_CVS_GradDate','ED_CVS_DegreeEarned','ED_CVS_FinancialAid');

    $.each(requiredFields,function (index, fieldname) {
        var elem = eval('document.form1.' + fieldname);
        if ($(elem).val() == '') {
            $(elem).css({'background-color':"#ffaaaa"});
            errors = true;
        } else {
            $(elem).css({'background-color':"white"});
            if (elementChecks(fieldname,elem,true) === true) {
                if (fieldname.match(/Date/) != null) {
                    if (errorMessage.match(/mm[/]dd[/]yyyy/) == null) {
                        errorMessage = errorMessage + "\n\nDates must be in the format: mm/dd/yyyy";
                    }
                }
                errors = true;
            }
            if (fieldname == 'GI_SSN') {
                if ($(elem).val().length < 11 || $(elem).val().match(/\d\d\d-\d\d-\d\d\d\d/) == null) {
                    $(elem).css({'background-color':"#ffaaaa"});
                    errors = true;
                }
            }
            if (fieldname == 'GI_AGE') {
                if ($(elem).val().length != 2 || $(elem).val().match(/\d\d/) == null) {
                    $(elem).css({'background-color':"#ffaaaa"});
                    errors = true;
                }
            }
            if (fieldname == 'GI_DOB') {
                if ($(elem).val().length < 10 || $(elem).val().match(/\d\d[/]\d\d[/]\d\d\d\d/) == null) {
                    $(elem).css({'background-color':"#ffaaaa"});
                    if (errorMessage.match(/mm[/]dd[/]yyyy/) == null) {
                        errorMessage = errorMessage + "\n\n Dates must be in the format: mm/dd/yyyy";
                    }
                    errors = true;
                }
            }
            if (fieldname == 'ProgramYear') {
                if ($(elem).val().length != 4 || $(elem).val().match(/\d\d\d\d/) == null) {
                    $(elem).css({'background-color':"#ffaaaa"});
                    errors = true;
                }
            }
        }
    });

    $.each(otherFields, function (index, fieldname) {
        var elem = eval('document.form1.'+fieldname);
        if (elementChecks(fieldname,elem,false) === true) {
            if (fieldname.match(/Date/) != null) {
                if (errorMessage.match(/mm[/]dd[/]yyyy/) == null) {
                    errorMessage = errorMessage + "\n\nDates must be in the format: mm/dd/yyyy";
                }
            }
            errors = true;
        }
    });

    var elem = document.form1.ED_HS_GradDate;
    var elem2 = document.form1.ED_HS_GED;
    if ($(elem).val() == '' && $(elem2).fieldValue()[0] == 'No') {
        errorMessage = errorMessage + " \n\n You must either specify a graduation date from high school or indicate that you have received a GED.";
        if (focusElem == null) {
            focusElem = elem;
        }
        $(elem).css({'background-color':'#ffaaaa'});
        $(elem2).parent().css({'background-color':'#ffaaaa'});
        errors=true;
    } else {
        $(elem).css({'background-color':'white'});
        $(elem2).parent().css({'background-color':'white'});
    }

    var elem = document.form1.ProgramSelection;
    if (!($(elem).fieldValue()[0])) {
        errorMessage = errorMessage + "\n\n Please select a program to attend.";
        if (focusElem == null) {
            focusElem = elem;
        }
        errors=true;
    }

    var elem = document.form1.GI_FelonyConviction;
    var elem2 = document.form1.GI_FelonyConvictionNotes;
    if ($(elem).fieldValue()[0] == 'Yes' && $(elem2).fieldValue()[0]==' ') {
        errorMessage = errorMessage + "\n\n Please provide more information about your felony conviction.";
        errors = true;
        $(elem2).css({'background-color':'#ffaaaa'});
        if (focusElem == null) {
            focusElem = elem;
        }
    } else {
        $(elem2).css({'bacground-color':'white'});
    }

    var elem = document.form1.GI_HowDidYouFindOut;
    if ($(elem).fieldValue()[0] == '') {
        errors = true;
        $(elem).css({'background-color':'#ffaaaa'});
    } else {
        $(elem).css({'background-color':'white'});
    }

    var elem2 = document.form1.GI_HowDidYouFindOutOther;

    if ($(elem).fieldValue()[0]=='other' && $(elem2).fieldValue()[0].length <= 1) {
        errors = true;
        $(elem2).css({'background-color':'#ffaaaa'});
    } else {
        $(elem2).css({'bacground-color':'white'});
    }

    if (errors) {
        alert(errorMessage);
        //		window.scrollTo(0,0);
        return false;
    } else {
        return true;
    }
}

function checkHowAnswer(obj) {
    if ($(obj).fieldValue()[0] == 'other') {
        $("#OtherBlock").show();
    } else {
        $("#OtherBlock").hide();
    }
}

jQuery(function($) {
    if (document.form1) {
        document.form1.action = 'application.php';
    };
    var currentDate = new Date();
    var month = currentDate.getMonth()+1;
    var day = currentDate.getDate();
    var currentDateString = new String();

    if (month < 10) {
        currentDateString = currentDateString + "0";
    }
    currentDateString = currentDateString + month + "/";
    if (day < 10) {
        currentDateString = currentDateString + "0";
    }
    currentDateString = currentDateString + day + "/";
    currentDateString = currentDateString + currentDate.getFullYear();
    var dateObj = new Object();
    dateObj.value = currentDateString.toString();
    cleanDate(dateObj);
    $("input[@name=SignatureDate]").val(dateObj.value);

});
