﻿function jqueryAlphaNumericValidation() {
    $('.form-control').alphanumeric({ ichars: '#*<>$+=[]~{}'});
}

function jqueryPreventDoubleSubmit(form) {
    jQuery.fn.preventDoubleSubmission = function () {
        form.on('submit', function (e) {
            $(this).find('#MainContent_ButtonSubmit').attr('disabled', 'disabled');
            var formSubmitted = form;
            
            setTimeout(function () {
                //in case of the error after submitting 
                $(formSubmitted).find('#MainContent_ButtonSubmit').removeAttr('disabled');
            }, 10000);
        });
        return form;
    };
}
function jqueryFormValidation(form)
{
    //adding this extra method to fix email pattern validation (valid emails are like 'x@x.xx')
    jQuery.validator.addMethod("email", function (value, element) {
        return this.optional(element) || /^[\w-\.]+@([\w-]+\.)+[\w-]{2,20}$/.test(value);
    });
    
    var validator = form.validate(
    {
        onsubmit: false,
        errorPlacement: function (error, element)
        {
            error.appendTo(element.prev());
            //if (error.html())
            //{
            //    $("label[for='" + element.attr('id') + "']").after(error);
            //}
        },
        success: function (label, element)
        {
            label.remove();
        },
        highlight: function (element, errorClass, validClass)
        {
            $(element).addClass(errorClass).removeClass(validClass);
        },
        unhighlight: function (element, errorClass, validClass)
        {
            $(element).removeClass(errorClass).addClass(validClass);
        }
    });

    $("input[type='submit']:not(.cancel)").click(function (ev)
    {
        form.validate().settings.ignore = ":hidden, :disabled";
        if (!form.valid())
        {
            validator.focusInvalid();
            return false;
        }

        return true;
    });

    return validator;
}