﻿function JobSearchBox_FillSalaryOptions(selectMinSalary, selectMaxSalary, selectSalaryType) {
    var salaryStep = 10000;
    var stepCount = 10;
    var startSalary = 0;
    switch (selectSalaryType.selectedValues()[0]) {
        case '0': salaryStep = 10000; break;  //annum
        case '1': salaryStep = 1000; break; //month (12)
        case '2': salaryStep = 200; break; //week (52)
        case '3': salaryStep = 50; break; //day (250)
        case '4': salaryStep = 5; break; //hour (2000)
        default: salaryStep = 10000; break; //annum
    }

    for (k = selectMinSalary[0].options.length - 1; k > 0; k--)
        selectMinSalary.removeOption(k);
    for (k = selectMaxSalary[0].options.length - 1; k > 0; k--)
        selectMaxSalary.removeOption(k);

    for (k = 1; k <= stepCount; k++) {
        var stepValue = startSalary + (k * salaryStep);
        var txt;
        if (stepValue >= 1000)
            txt = stepValue / 1000 + ' K';
        else
            txt = stepValue + ' £';
        selectMinSalary.addOption(stepValue, txt);
        selectMaxSalary.addOption(stepValue, txt);
    }

    selectMinSalary.selectOptions('0');
    selectMaxSalary.selectOptions('0');
}

function onChangeSalaryType() {
    JobSearchBox_FillSalaryOptions($("select#selectMinSalary"),
                    $("select#selectMaxSalary"), $("select#selectSalaryType"));
}

function SetCurrentSearchBoxParameters(catIndex, pdaValue, distanceValue, minSalary, maxSalary, salaryType, jobType) {
    var searchBox = $('form[@name=serch_form]');
    var categories = $('[@name=cat]', searchBox);
    if (categories != null) {
        categories[0].selectedIndex = 0;
        for (k = 0; k < categories[0].length; k++) {
            if (categories[0].options[k].value == catIndex) {
                categories[0].selectedIndex = k;
                break;
            }
        }
    }

    var publishedDaysAgo = $('[@name=pda]', searchBox);
    if (publishedDaysAgo != null) {
        for (k = 0; k < publishedDaysAgo[0].length; k++) {
            if (publishedDaysAgo[0].options[k].value == pdaValue) {
                publishedDaysAgo[0].selectedIndex = k;
                break;
            }
        }
    }

    var keywords = $('[@name=q]', searchBox);
    if (keywords != null && keywords[0].value == "") {
        keywords[0].value = "keywords";
        keywords[0].style.color = "Gray";
    }

    var distance = $('[@name=dst]', searchBox);
    if (distance != null) {
        for (k = 0; k < distance[0].length; k++) {
            if (distance[0].options[k].value == distanceValue) {
                distance[0].selectedIndex = k;
                break;
            }
        }
    }

    var location = $('[@name=l]', searchBox);
    if (location != null && location[0].value == "") {
        location[0].value = "location";
        location[0].style.color = "Gray";
        if (distance != null) {
            distance[0].selectedIndex = 0;
            distance[0].disabled = true;
        }
    }

    var selectMinSalary = $('[@name=mins]', searchBox);
    var selectMaxSalary = $('[@name=maxs]', searchBox);
    var selectSalaryType = $('[@name=st]', searchBox);
    var selectJobType = $('[@name=jt]', searchBox);
    selectSalaryType.selectOptions(salaryType);
    onChangeSalaryType();
    selectMinSalary.selectOptions(minSalary);
    selectMaxSalary.selectOptions(maxSalary);
    selectJobType.selectOptions(jobType);
}

function field_onclick(obj, defvalue) {
    if (obj.value == defvalue) {
        obj.value = "";
        obj.style.color = "";
    }
}
//***************    
function FieldOnBlur(obj, defvalue, distanceField) {
    if (obj.value == "") {
        obj.value = defvalue;
        obj.style.color = "Gray";
    }

    if (distanceField != null) {
        if (obj.value == defvalue) {
            distanceField.selectedIndex = 0;
            distanceField.disabled = true;
        }
        else {
            distanceField.disabled = false;
        }
    }
}
//**************
function DoSearch() {
    var searchCriteriaExists = false;
    var searchBox = $('form[@name=serch_form]');
    var keywords = $('[@name=q]', searchBox);
    var distance = $('[@name=dst]', searchBox);
    var location = $('[@name=l]', searchBox);
    var categories = $('[@name=cat]', searchBox);
    var publishedDateAgo = $('[@name=pda]', searchBox);
    var jmp = $('[@name=jmp]', searchBox)[0];
    var minSalary = $('[@name=mins]', searchBox);
    var maxSalary = $('[@name=maxs]', searchBox);
    var salaryType = $('[@name=st]', searchBox);
    var jobType = $('[@name=jt]', searchBox);

    jmp.disabled = true;

    if (keywords[0] != null) {
        if (!keywords[0].value || keywords[0].value == "keywords" || keywords[0].value == "") {
            keywords[0].disabled = true;
        }
        else
            searchCriteriaExists = true;

    }

    if (distance != null) {
        if (distance[0].selectedIndex <= 0)
        { distance[0].disabled = true; }
        else
            searchCriteriaExists = true;
    }

    if (location != null) {
        if (location[0].value == "location" || location[0].value == "") {
            location[0].disabled = true;
            if (distance != null) {
                distance[0].disabled = true;
            }
        }
        else
            searchCriteriaExists = true;
    }

    if (categories != null) {
        if (categories[0].selectedIndex <= 0)
        { categories[0].disabled = true; }
        else
            searchCriteriaExists = true;
    }

    if (publishedDateAgo != null) {
        if (publishedDateAgo[0].selectedIndex <= 0)
        { publishedDateAgo[0].disabled = true; }
        else
            searchCriteriaExists = true;
    }

    if (minSalary != null) {
        if (minSalary[0].selectedIndex <= 0)
        { minSalary[0].disabled = true; }
        else
            searchCriteriaExists = true;
    }

    if (maxSalary != null) {
        if (maxSalary[0].selectedIndex <= 0)
        { maxSalary[0].disabled = true; }
        else
            searchCriteriaExists = true;
    }

    if (salaryType != null) {
        if (salaryType[0].selectedIndex <= 0 || (minSalary[0].disabled && maxSalary[0].disabled))
            salaryType[0].disabled = true;
        else
            searchCriteriaExists = true;
    }

    if (jobType != null) {
        if (jobType[0].selectedIndex <= 0)
            jobType[0].disabled = true;
        else
            searchCriteriaExists = true;
    }

    if (searchCriteriaExists == false) {
        keywords[0].disabled = false;
        location[0].disabled = false;
        if (location[0].value != "location")
            location[0].disabled = false;
        categories[0].disabled = false;
        publishedDateAgo[0].disabled = false;
        minSalary[0].disabled = false;
        maxSalary[0].disabled = false;
        salaryType[0].disabled = false;
        jobType[0].disabled = false;

        jmp.disabled = false;
        alert('You should define one or more criteria to perform a search!');
        return false;
    }
    else {
        return true;
    }
}

function SerchBoxKeyPress(event) {
    //event.preventDefault();
    var evt;
    if (window.event)
    { evt = window.event; }
    else
    { evt = event; }
    var key = (evt ? evt.keyCode : -1);
    if (key == 13)
        if (DoSearch()) {
        var searchBox = $('form[@name=serch_form]');
        if (searchBox) {
            searchBox[0].submit();
        }
    }
}

$().ready(function() {
    if ($.browser.msie) {
        var inputKeywords = $('form[@name=serch_form] #keywords')[0];
        var inputLocation = $('form[@name=serch_form] #loc')[0];
        $(inputKeywords).keypress(SerchBoxKeyPress);
        $(inputLocation).keypress(SerchBoxKeyPress);
    }
});
