﻿function getControlRoot() {
    return jQuery("table.jobsearch");
}

function initQuickmodeControls() {
    jQuery(".multiselect").dropdownchecklist({ width: 140, maxDropHeight: 200 });


    // Init job title selector according to value selected in Profession list.
    var id = GetComboboxSelectedIndex(getControlRoot().find("select.profession")[0]);
    initJobTitleSelector(id);
}

function initAdvmodeControls() {
    getControlRoot().find(".multiselect_adv").dropdownchecklist({ width: 140, maxDropHeight: 200 });
    getControlRoot().find(".ms_salary_ann,.ms_salary_day").dropdownchecklist({ width: 60, maxDropHeight: 200 });
        
    
    setupSalaryControls();
}

function cleanupDropdowns() {

    if (document.JobSearchControlInited) {
        getControlRoot().find(".multiselect_adv,.ms_salary_ann, .ms_salary_day, .singleselect").dropdownchecklist("destroy");
    }

    initQuickmodeControls();
    if ('true' == getCurrentSearchMode()) initAdvmodeControls();
}

function clearForm() {

    var currentMode = getCurrentSearchMode();
    getControlRoot().find("input[type!=radio],select").val("");
    cleanupDropdowns();
    setCurrentSearchMode(currentMode);
}

function initJobTitleSelector(id) {
    var jobTitleJq = getJobTitle();
    var jobTitle = jobTitleJq[0];

    var selectedOptions = jobTitleJq.find("option[selected]");
    var selected = new Array();
    selectedOptions.each(function() {
        selected[this.value] = this.value;
    }
        );

    if (id != -1) {
        jobTitle.options.length = 0;
        var ob = text[id];

        addOptionToCombobox("", "ALL", jobTitle);
        for (var key in ob) {
            var new_option = document.createElement("option");
            new_option.value = key;
            if (selected[key]) {
                new_option.selected = true;
            }
            new_option.appendChild(document.createTextNode(ob[key]));
            jobTitle.appendChild(new_option);
        }
    }
    else {
        //AddEmptyValue(jobTitle);
    }

    jobTitleJq.dropdownchecklist("destroy");
    jobTitleJq.dropdownchecklist({ width: 140, maxDropHeight: 200 });
}

function getCurrentEmploymentMode() {
    var rbPerm = jQuery(rbPermId);
    if (rbPerm.attr("checked")) return "perm";

    var rbContract = jQuery(rbContractId);
    if (rbContract.attr("checked")) return "contract";

    var rbAny = jQuery(rbAnyId);
    if (rbAny.attr("checked")) return "any";
}

function setSalaryChecklistStatus(checklist, command) {
    if ("disable" == command) {
        checklist.dropdownchecklist("destroy");
        checklist.val("");
        checklist.dropdownchecklist({ width: 60, maxDropHeight: 200 });
    }

    checklist.dropdownchecklist(command);
}

function setupSalaryControls() {
    var mode = getCurrentEmploymentMode();

    var allModes = (mode == "any");
    var perAnnSalary = (mode == "perm" || allModes);
    var perDaySalary = (mode == "contract" || allModes);

    //   var salaryDayChecklist = jQuery('#<%=salary_day.ClientID%>').dropdownchecklist();
    var salaryAnnStatus = (perAnnSalary) ? "enable" : "disable";
    setSalaryChecklistStatus(jQuery(".ms_salary_ann"), salaryAnnStatus);

    var salaryDayStatus = (perDaySalary) ? "enable" : "disable";
    setSalaryChecklistStatus(jQuery(".ms_salary_day"), salaryDayStatus);
}

function initEvents() {
    getControlRoot().find("select.profession").change(
            function(e) {
                var id = GetComboboxSelectedIndex(this);
                initJobTitleSelector(id);
            });

    var btnSubmit = jQuery('.btn-search');
    if (btnSubmit.length == 1) {
        btnSubmit.click(function() {
            jQuery('.real-location').val(jQuery('#tbLocation').mcDropdown().getValue());
        });
    }

    getControlRoot().find("div.check-job-type").find("input").click(function(e) {
        if ('true' == getCurrentSearchMode()) setupSalaryControls();
    }
        );
}

function switchSearchModes(isAdvanced) {
    getControlRoot().find(".options").toggle(isAdvanced == 'true');

    var caption;
    var href;

    if (isAdvanced == 'true') {
        caption = 'Quick Search';
        href = "javascript:switchSearchModes('false');";
        document.getElementById("jsLocationDescription").style.display = "";

        if (!document.JobSearchControlInited) {
            document.JobSearchControlInited = true;
            initAdvmodeControls();
        }
        else {
            setupSalaryControls();
        }
    }
    else {
        caption = 'Advanced Search';
        href = "javascript:switchSearchModes('true');";
        document.getElementById("jsLocationDescription").style.display = "none";
    }

    var modeLink = getControlRoot().find(".link-mode");
    modeLink.attr("href", href).text(caption);
    modeLink.closest("div").attr("class", (isAdvanced == 'true') ? 'link-qsearch' : 'link-advance-search');
    setCurrentSearchMode(isAdvanced);

}

function getCurrentSearchMode() {
    var modeControl = jQuery(currentModeId)[0];

    return modeControl.value;
}

function setCurrentSearchMode(isAdvanced) {
    var modeControl = jQuery(currentModeId)[0];
    modeControl.value = isAdvanced;
}