$(function () {
    $('.error').hide();
    $('input').css({ backgroundColor: "transparent" });



    // $('input').blur(function(){
    //    $(this).css({backgroundPosition:"0 -87px"});
    //  });

    $('textarea').focus(function () {
        $(this).css({ backgroundPosition: "0 -148px" });
    });

    $('textarea').blur(function () {
        $(this).css({ backgroundPosition: "0 0" });
    });

    $("#Submit").click(function (e) {
        // validate and process form
        // first hide any error messages
        $('.error').hide();

        var name = $("input[name*='Name']").val();
        if (name == "" || name == undefined) {
            $("#invalidName").removeClass("validationHidden").addClass("validationShow");
            $("input#Name").focus();
            var email = $("input[name*='Email']").val();
            var dob = $("input[name*='DOB']").val();
            if (email == "" || email == undefined) {
                $("#invalidEmail").removeClass("validationHidden").addClass("validationShow");
                if (dob == "undefined" || dob == "") {
                    $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
                    return false;
                } else if (!isDate(dob)) {
                    $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
                    return false;
                } else {
                    $("#invalidDOB").removeClass("validationShow").addClass("validationHidden");
                }
                return false;
            } else {
                $("#invalidEmail").removeClass("validationShow").addClass("validationHidden");
            }
            return false;
        } else {
            $("#invalidName").removeClass("validationShow").addClass("validationHidden");
        }
        var email = $("input[name*='Email']").val();
        if (email == "" || email == undefined) {
            $("#invalidEmail").removeClass("validationHidden").addClass("validationShow");
            $("input#Email").focus();
            if (dob == "undefined" || dob == "") {
                $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
                return false;
            } else if (!isDate(dob)) {
                $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
                return false;
            } else {
                $("#invalidDOB").removeClass("validationShow").addClass("validationHidden");
                return false;
            }
        } else {
            $("#invalidEmail").removeClass("validationShow").addClass("validationHidden");
        }

        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        if (reg.test(email) == false) {
            $('#invalidEmail').html(" - Invalid Email Address");
            $("#invalidEmail").removeClass("validationHidden").addClass("validationShow");
            return false;
        }

        var dob = $("input[name*='DOB']").val();
        if (dob == "undefined" || dob == "") {
            $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
            return false;
        } else if (!isDate(dob)) {
            $("#invalidDOB").removeClass("validationHidden").addClass("validationShow");
            return false;
        } else {
            $("#invalidDOB").removeClass("validationShow").addClass("validationHidden");
        }

        $('.button').removeAttr('href');
        $.ajax({
            type: "POST",
            url: "/Home/Submit",
            data: {
                Name: $("input[name*='Name']").val(),
                Email: $("input[name*='Email']").val(),
                Address: $("input[name*='Address']").val(),
                City: $("input[name*='City']").val(),
                State: $("input[name*='State']").val(),
                Zip: $("input[name*='Zip']").val(),
                DOB: $("input[name*='DOB']").val()
            },
            success: function (data) {
                $('.bodyText').hide();
                $('.inputStyle').hide();
                $('.inputStyleState').hide();
                $('.inputStyleZip').hide();
                $('.button').hide();
                $('.remove').hide();
                $('.bodyReplace').html('<br /><br /><br /><p class="newReplace">Thank you for your joining Cooter!<br /><br />Dept. of Vital Records -  Cooter County<br /><br />Click <a class="replaceLink" href="http://www.cootercounty.com">HERE</a> to make another submission.</p>');
                $('.formLabels').hide();
            }
        });

        function isDate(txtDate) {
            var objDate,  // date object initialized from the txtDate string
        mSeconds, // txtDate in milliseconds
        day,      // day
        month,    // month
        year;     // year
            // date length should be 10 characters (no more no less)
            if (txtDate.length !== 10) {
                return false;
            }
            // third and sixth character should be '/'
            if (txtDate.substring(2, 3) !== '/' || txtDate.substring(5, 6) !== '/') {
                return false;
            }
            // extract month, day and year from the txtDate (expected format is mm/dd/yyyy)
            // subtraction will cast variables to integer implicitly (needed
            // for !== comparing)
            month = txtDate.substring(0, 2) - 1; // because months in JS start from 0
            day = txtDate.substring(3, 5) - 0;
            year = txtDate.substring(6, 10) - 0;
            // test year range
            if (year < 1000 || year > 3000) {
                return false;
            }
            // convert txtDate to milliseconds
            mSeconds = (new Date(year, month, day)).getTime();
            // initialize Date() object from calculated milliseconds
            objDate = new Date();
            objDate.setTime(mSeconds);
            // compare input date and parts from Date() object
            // if difference exists then date isn't valid
            if (objDate.getFullYear() !== year ||
        objDate.getMonth() !== month ||
        objDate.getDate() !== day) {
                return false;
            }
            // otherwise return true
            return true;
        }

    });
});
runOnLoad(function () {
    $("input#name").select().focus();
});

