﻿$(function () {
    $('form.validate').submit(function (ev) {
        var errs = 0;
        $('.required').each(function () {
            var id = $(this).attr('id');
            var $lbl = $('label[for=' + id + ']');
            if ($(this).val() == '') {
                var onBlankMsg = $(this).attr('data-onblank') || $lbl.text()
                $lbl.text(onBlankMsg).addClass('error');
                errs++;
            } else {
                $lbl.removeClass('error');
            }
        });

        $('.datetime').each(function () {
            var id = $(this).attr('id');
            var $lbl = $('label[for=' + id + ']');
            var val = $(this).val();
            if (!isDate(val)) {
                var onFailMsg = $(this).attr('data-onfail') || $lbl.text() + ' (check format)'
                $lbl.text(onFailMsg).addClass('error');
                errs++;
            } else {
                $lbl.removeClass('error');
            }
        });

        if (errs > 0)
            ev.preventDefault();
    });
});

function isDate(d) {
    return !isNaN(Date.parse(d));
}

function isEmail(email) {
    var re = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return re.test(email);
}
