﻿$(document).ready(function() {
    (function($) {
        $.extend({
            candidateInitializeLogin: function(email, password, emailVal1, emailVal2, passwordVal1, validationSummary, dologin, multiaccountWrapper) {
                var _email = $(email);
                var _password = $(password);
                var _validationSummary = $(validationSummary);

                _email.blur(function() {
                    _validationSummary.show();

                    var v1 = $(emailVal1);
                    var v2 = $(emailVal2);

                    if (_email.val().length < 5) {
                        v1.show(); return;
                    } else { v1.hide(); }

                    if (_email.val().indexOf("@") == -1 || _email.val().indexOf(".") == -1) {
                        v2.show(); return;
                    } else { v2.hide(); }
                });

                _password.blur(function() {
                    _validationSummary.show();

                    var v1 = $(passwordVal1);
                    if (_password.val().length < 1) {
                        v1.show(); return;
                    } else { v1.hide(); }
                });

                $(dologin).click(function() {
                    _validationSummary.hide();
                    $.mpAjax(null, "DoCandidateLogin", ["emailAddress", _email.val(), "password", _password.val()],
            function(result) {
                if (result.d == "success") { window.location.href = "/candidate/jobs/default.aspx"; }
                else { $(multiaccountWrapper).html(result.d); }
            },
            function(result) { alert(result.statusText); });

                    return false;
                });
            }, // candidateInitializeLogin

            candidateRenderJob: function(jobId, loading, renderTo) {
                $.mpAjax(null, "Candidate_Job_Information", ["jobId", jobId],
                    function(result) { $(renderTo).html(result.d); $(renderTo).slideDown(1000); $(loading).hide(); },
                    function(result) { alert(result.statusText); $(loading).hide(); });
            }, // candidateRenderJob

            candidateRenderCv: function(loading, renderTo) {
                var _loading = $(loading);
                var _renderTo = $(renderTo);

                _loading.show();
                _renderTo.hide();

                $.mpAjax(null, "Candidate_CV", [],
                    function(result) {
                        _renderTo.html(result.d);
                        _renderTo.slideDown(1000);
                        _loading.hide();

                        $("#cv_additem").hide();
                        $(".cvitem-add").click(function() {
                            $("#cv_additem").slideDown(1000);
                            $("#cv_additem_companyname").focus();
                        });

                        $(".cvitem-delete").click(function() {
                            if (confirm('Are you sure you want to delete this c.v. item?')) {
                                var id = $(this).attr("cvid");

                                _loading.show();
                                _renderTo.hide();

                                $.mpAjax(null, "Candidate_CV_Item_Delete", ["itemId", id],
                                    function(result) { if (result.d == "success") { $.candidateRenderCv(loading, renderTo); } },
                                    function(result) { alert(result.statusText); });
                            }
                        });

                        $(".cvitem-edit").click(function() {
                            alert($(".cvitem-edit").attr("cvid"));
                        });

                        $("#cv_additem_submit").click(function() {
                            if ($.mpValidate($("#cv_additem_form").find("input.required"))) {
                                var id = $("#cv_additem_submit").attr("cvid");

                                _loading.show();
                                _renderTo.hide();

                                $.mpAjax(null, "Candidate_CV_Item_Add",
                                    ["cvId", id, "companyName", $("#cv_additem_companyname").val(), "position", $("#cv_additem_position").val(), "from", $("#cv_additem_from").val(), "to", $("#cv_additem_to").val(), "description", $("#cv_additem_description").val()],
                                    function(result) { if (result.d == "success") { $.candidateRenderCv(loading, renderTo); } },
                                    function(result) { alert(result.statusText); });
                            }
                        });
                    },
                    function(result) { alert(result.statusText); _loading.hide(); });
            }, // candidateRenderCv

            candidateRegister: function(loading, statusbar, toHide, firstName, lastName, emailAddress, password) {
                var _loading = $(loading);

                $.mpAjax(null, "Candidate_Register", ["firstName", firstName, "lastName", lastName, "emailAddress", emailAddress, "password", password],
                    function(result) { $(toHide).hide(); _loading.hide(); $(statusbar).html(result.d); },
                    function(result) { alert(result.statusText); _loading.hide(); });
            }, // candidateRegister

            candidateUpdatePreferences: function(loading, statusbar, toHide, firstName, lastName, emailAddress, password, mobile, homePhone) {
                var _loading = $(loading);
                var _toHide = $(toHide);

                _loading.show();
                _toHide.hide();

                $.mpAjax(null, "Candidate_UpdatePreferences", ["firstName", firstName, "lastName", lastName, "emailAddress", emailAddress, "password", password, "mobile", mobile, "homePhone", homePhone],
                    function(result) { _loading.hide(); _toHide.show(); $(statusbar).html(result.d); },
                    function(result) { alert(result.statusText); _loading.hide(); });
            }, // candidateUpdatePreferences

            candidateContactUs: function(loading, statusbar, toHide, firstName, lastName, emailAddress, phone, comments) {
                var _loading = $(loading);
                var _toHide = $(toHide);

                _loading.show();
                _toHide.hide();

                $.mpAjax(null, "Candidate_ContactUs", ["firstName", firstName, "lastName", lastName, "emailAddress", emailAddress, "phone", phone, "comments", comments],
                    function(result) { _loading.hide(); $(statusbar).html(result.d); },
                    function(result) { alert(result.statusText); _loading.hide(); });
            }
        });
    })(jQuery)
});