﻿$(document).ready(function () {
    setUpValidators();
    initControls();
});

function initControls() {
    $(".datepicker").datepicker(
        { dateFormat: 'dd/mm/yy', constrainInput: true, changeYear: true, changeMonth: true,
            onClose: function (dateText, inst) { $(this).trigger('keyup'); $(this).trigger('blur'); }
        });

        $(".clientvalidate").each(function () {
            $(this).validate({ onblur: true,
                errorPlacement: function (error, element) {
                    if (element.is(":radio"))
                        error.appendTo(element.parent().next().next());
                    else if (element.is(":checkbox"))
                        error.appendTo(element.parent());
                    else
                        error.appendTo(element.parent());
                },
                rules: {
                    ended: {
                        required: function (element) { if ($(element).attr('dependency')) { return $("#employment_status_between").is(":checked"); } },
                        date: true
                    },
                    started: {
                        required: function (element) { if ($(element).attr('dependency')) { return $("#employment_status_first").is(":unchecked"); } },
                        date: true
                    },
                    company: {
                        required: function (element) { if ($(element).attr('dependency')) { return $("#employment_status_first").is(":unchecked"); } }
                    },
                    position: {
                        required: function (element) { if ($(element).attr('dependency')) { return $("#employment_status_first").is(":unchecked"); } }
                    },
                    password: {
                        minlength: 6
                    },
                    password2: {
                        equalTo: "#password"
                    },
                    email2: {
                        equalTo: "#email"
                    },
                    till: {
                        required: "#currentemployment:unchecked",
                        date: true
                    }

                },
                submitHandler: function (form) { submitFormEvent(form); }
            });
        });
}

function checkEmploymentStatus(element) {
    var employmentStatusValue = $("input[@name='employment_status']:checked").val();
    return (employmentStatusValue == "between" || employmentStatusValue == "employed");
}

function setUpValidators() {
    jQuery.validator.addMethod(
        "date",
        function (value, element) {
            var check = false;
            var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
            if (re.test(value)) {
                var adata = value.split('/');
                var gg = parseInt(adata[0], 10);
                var mm = parseInt(adata[1], 10);
                var aaaa = parseInt(adata[2], 10);
                var xdata = new Date(aaaa, mm - 1, gg);
                if ((xdata.getFullYear() == aaaa) && (xdata.getMonth() == mm - 1) && (xdata.getDate() == gg))
                    check = true;
                else
                    check = false;
            } else
                check = false;
            return this.optional(element) || check;
        },
        "Please enter a correct date"
    );

    jQuery.validator.addMethod(
    "agecheck",
    function (value, element) {
        var check = true;

        var adata = value.split('/');
        if (adata.length == 3) {
            var gg = parseInt(adata[0], 10);
            var mm = parseInt(adata[1], 10);
            var aaaa = parseInt(adata[2], 10);
            var xdata = new Date(aaaa, mm - 1, gg);

            var currdate = new Date();
            currdate.setFullYear(currdate.getFullYear() - 16);

            if ((currdate - xdata) < 0) {
                check = false;
            }
        }

        return this.optional(element) || check;
    },
    "Candidates must be at least 16 years old"
    );

    jQuery.validator.addMethod(
        "contactnumber",
        function (value, element) {
            var re = /^[0-9 _]*[0-9][0-9 _]*$/
            return re.test(value);
        },
        "Please enter a correct contact number"
    );
}


function popupLink(link) {
    window.open($(link).attr('href'), "konnektPopup",
"status = 1, height = 600, width = 950, resizable = 1")
}

function submitFormEvent(form) {
    $('div.layout').showLoading(); 
    form.submit();
}