﻿/* Job Description
---------------------*/

var __selectedJobId = null;
var __target = null;

function __JobDescription(id, page) {

    __selectedJobId = id;
    __target = page;

    var oID = { "id": id };
    var oIDJSON = JSON.stringify(oID);

    $.ajax({
        type: "POST",
        url: page + "GetJobDescription",
        contentType: "application/json; charset=utf-8",
        data: oIDJSON,
        cache: false,
        dataType: "json",
        success: function(response) {
            var jdo = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            $('#job_description_dialog').html(jdo.DescriptionHTML);
            $('#job_description_dialog').dialog('option', 'title', jdo.Title);
            $('#job_description_dialog').dialog('open');
        },
        failure: function(msg) {
        }
    });
}

function __ApplyForJob() {

    var nameEQ = ".ELANUSR=";
    var ca = document.cookie.split(';');
    var keys = null;

    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) keys = c.substring(nameEQ.length, c.length);
    }
    if (keys != null) {
        if (keys.indexOf('REG') == 0) {
            var a = keys.substring(4);
            if (a == 'Y') {
                $('#hd_selected_job_id').val(__selectedJobId);
                if ((location.href.indexOf('partner.aspx') > -1) || (location.href.indexOf('candidate.aspx') > -1)) {
                    $("input[id$='_UserName']").focus();
                } else if (location.href.indexOf('/candidates/default.aspx') > -1) {
                    $('#candidate_tabs').tabs('select', 0);
                } else if (location.href.indexOf('/partners/default.aspx') > -1) {
                    $('#partner_tabs').tabs('select', 1);
                }
            } else if (a == 'N') {
                var href = location.href.indexOf('partner.aspx') == -1 ? 'register.aspx?r=candidate' : 'register.aspx?r=partner';
                location.href = href + '&jid=' + __selectedJobId;
            }
        }
    }
}

function __SetFormMultipart(state) {
    if (state) {
        $('#main').attr({
            action: "upload.ashx",
            target: "hiddenframe",
            enctype: "multipart/form-data",
            encoding: "multipart/form-data",
            method: "post"
        });
    } else {
        $('#main').attr({
            action: "",
            target: "",
            enctype: "application/x-www-form-urlencoded",
            encoding: "application/x-www-form-urlencoded",
            method: "post"
        });
    }
}

/* Partner validation
---------------------*/

function __validatePartnerDetails() {
    // check required fields
    var partnerRequiredFields = ":input[id$='_required']";
    $("table[id$='partner_details_table']").find(partnerRequiredFields).each(function() {
        if ($(this).val().length == 0) {
            $(this).removeClass("textfield").addClass("required");
            $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__REQUIRED_FIELD_MSG').val() + "</strong>");
        }
        else { $(this).removeClass("required").addClass("textfield"); }
    });
    if ($("table[id$='partner_details_table']").find(partnerRequiredFields).hasClass("required")) {
        $('#partner_registration_tabs').tabs('select', 0);
        return false;
    }
    // email formats
    var partnerEmailFields = ":input[id*='email_address']";
    $("table[id$='partner_details_table']").find(partnerEmailFields).each(function() {
        if ($(this).val().length > 0) {
            if (!__validEmailAddress($(this).val())) {
                $(this).removeClass("textfield").addClass("required");
                $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__EMAIL_FORMAT_MSG').val() + "</strong>");
            }
            else {
                $(this).removeClass("required").addClass("textfield");
            }
        }
    });
    if ($("table[id$='partner_details_table']").find(partnerEmailFields).hasClass("required")) {
        $('#partner_registration_tabs').tabs('select', 0);
        return false;
    }
    return true;
}

function __validatePartnerContact() {
    var container;
    var totalContacts = $('#partner_contacts_tabs').tabs('length');
    // Required Fields
    var contactRequiredFields = ":input[id*='_required']";
    var validRequiredFields = true;
    $("div[id*='_partner_contacts_']").each(function() {
        container = $(this);
        container.find(contactRequiredFields).each(function() {
            if ($(this).val().length == 0) {
                $(this).removeClass("textfield").addClass("required");
                $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__REQUIRED_FIELD_MSG').val() + "</strong>");
            }
            else { $(this).removeClass("required").addClass("textfield"); }
        });
        if (container.find(contactRequiredFields).hasClass("required")) {
            $('#partner_contacts_tabs').tabs('select', '#' + container.attr('id'));
            validRequiredFields = false;
            return false;
        }
    });
    if (!validRequiredFields) { return false; }

    // Email Formats
    var validEmailFields = true;
    var contactEmailFields = ":input[id*='email_address']";
    $("div[id*='_partner_contacts_']").each(function() {
        container = $(this);
        container.find(contactEmailFields).each(function() {
            if ($(this).val().length > 0) {
                if (!__validEmailAddress($(this).val())) {
                    $(this).removeClass("textfield").addClass("required");
                    $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__EMAIL_FORMAT_MSG').val() + "</strong>");
                }
                else {
                    $(this).removeClass("required").addClass("textfield");
                }
            } else {
                $(this).removeClass("required").addClass("textfield");
            }
        });
        if (container.find(contactEmailFields).hasClass("required")) {
            $('#partner_contacts_tabs').tabs('select', '#' + container.attr('id'));
            validEmailFields = false;
            return false;
        }
    });
    if (!validEmailFields) { return false; }

    // Username uniqueness
    var validUniqueUsernames = true;
    var usernames = new Array(totalContacts);
    var uniqueUsernames = ":input[id*='contact_primary_email_address']";
    $("div[id*='_partner_contacts_']").each(function() {
        container = $(this);
        container.find(uniqueUsernames).each(function() {
            if (usernames.indexOf($(this).val()) == -1) {
                usernames.push($(this).val());
            }
            else {
                $(this).removeClass("textfield").addClass("required");
                $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__DUPLICATE_USERNAME_MSG').val() + "</strong>");
                $('#partner_contacts_tabs').tabs('select', '#' + container.attr('id'));
                validUniqueUsernames = false;
                return false;
            }
        });
    });
    if (!validUniqueUsernames) { return false; }

    // Passwords
    var validPasswords = true;
    var password; var confirmed;
    $("div[id*='_partner_contacts_']").each(function() {
        container = $(this);
        password = container.find(":input[id*='txt_contact_password_required_']");
        confirmed = container.find(":input[id*='txt_contact_confirm_password_required_']");
        if (password.val() != confirmed.val()) {
            $('#partner_contacts_tabs').tabs('select', '#' + container.attr('id'));
            $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__PASSWORDS_MUST_MATCH_MSG').val() + "</strong>");
            validPasswords = false;
            return false;
        }
    });
    if (!validPasswords) { return false; }
    
    return true;
}

function __AcceptTermsAndConditions(id) {

    var agree = new String($("input[id$='chk_agree_terms']").attr('checked'));
    if (agree == 'true') {
        $("table[id$='tbl_" + id + "_terms_and_conditions']").removeClass("required").addClass(id + "_terms_and_conditions");
        return true;
    }
    else {
        $("table[id$='tbl_" + id + "_terms_and_conditions']").removeClass(id+"_terms_and_conditions").addClass("required");
        $("div[id$='_" + id + "_message']").html("<strong class='required'>" + $('#__REQUIRED_FIELD_MSG').val() + "</strong>");
        return false;
    }
}

var usernamesAreUnique = false;
var oUsername;

function __UniqueUsername(id, page) {
    var o = $('#'+id);
    // Ensure unique username
    var oUN = { "username": o.val() }
    var oUNJSON = JSON.stringify(oUN);
    $.ajax({
        type: "POST",
        url: page + "CheckUsername",
        contentType: "application/json; charset=utf-8",
        data: oUNJSON,
        cache: false,
        dataType: "json",
        success: function(response) {
            var wso = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            if (!wso.success) {
                o.removeClass("textfield").addClass("required");
                $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__USERNAME_ALREADY_EXISTS_MSG').val() + "</strong>");
                oUsername = o;
                usernamesAreUnique = false;
            } else {
                o.removeClass("required").addClass("textfield");
                $("div[id$='_validation_message']").html("");
                usernamesAreUnique = true;
            }
        },
        failure: function(msg) {
        }
    });
    return false;
}

//var companyRegistrationNumberUnique = false;


//function __UniquePartnerRegistrationNumber(id) {
//    var o = $('#' + id);
//    // Ensure unique username
//    var oUN = { "registrationNumber": o.val() }
//    var oUNJSON = JSON.stringify(oUN);
//    $.ajax({
//        type: "POST",
//        url: "register.aspx/CheckPartnerRegistrationNumber",
//        contentType: "application/json; charset=utf-8",
//        data: oUNJSON,
//        cache: false,
//        dataType: "json",
//        success: function(response) {
//            var wso = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
//            if (!wso.success) {
//                o.removeClass("textfield").addClass("required");
//                $("div[id$='_validation_message']").html("<strong class='required'>" + $('#__PARTNER_REG_NUM_ALREADY_EXISTS_MSG').val() + "</strong>");
//                companyRegistrationNumberUnique = false;
//            } else {
//                o.removeClass("required").addClass("textfield");
//                $("div[id$='_validation_message']").html("");
//                companyRegistrationNumberUnique = true;
//            }
//        },
//        failure: function(msg) {
//        }
//    });
//    return false;
//}