/*	keep for code coloring
<script>
functions allowing to add items to inbox
*/

/* saves selected jobs using ajax */
function saveSelectedJobsAjax() {

    var classNameSaved = "save"
    var textSaved = "Saved"
    var classNameWait = "loading";
    var textWait = "Saving";
    var classNameError = "save";
    var textError = "Failed";

    var strURL = "/JobSeeker/AddJobToInbox.asp?j=1&";
    var strJobIDs = getSelectedJobIDs();

    if (strJobIDs == "")
        return;

    changeSelectedJobLabels(classNameWait, textWait);

    strURL += strJobIDs;
    var settings = null;
    try {
        settings = {
            type: 'get',
            url: strURL,
            success: function(data, textStatus, xhr) {
                var response = new String(xhr.responseText);

                if (response.toUpperCase() == "OK")
                    changeSelectedJobLabels(classNameSaved, textSaved);
            },
            error: function(xhr, textStatus, errorThrown) {
                //error message
                changeSelectedJobLabels(classNameError, textError);
            }
        }
        
        jQuery.ajax(settings); 
    }
    catch (ex) {
        settings = { 
            method: 'get',
            onSuccess: function(transport) {
                var response = new String(transport.responseText);

                if (response.toUpperCase() == "OK")
                    changeSelectedJobLabels(classNameSaved, textSaved);

            },
            onFailure: function() {
                //Error message
                changeSelectedJobLabels(classNameError, textError);
            }
        };
        new Ajax.Request(strURL, settings);
    }
    finally {
        settings = null;
    }
}

/* returns a url delim list of selected job ids */
function getSelectedJobIDs() {

    var strResult = "";
    var j = 0
    var objCheckBoxArray = document.getElementsByTagName('input');

    for (var i = 0; i < objCheckBoxArray.length; i++) {
        if (objCheckBoxArray[i].type == "checkbox" && objCheckBoxArray[i].name.substr(0, 3) == "job") {
            if (objCheckBoxArray[i].checked) {
                j++
                strResult += (j == 1 ? "jobid=" : "&jobid=") + objCheckBoxArray[i].value;
            }
        }
    }
    return strResult;
}

/* changes labels of all selected jobs to the specified class and text */
function changeSelectedJobLabels(className, text) {
    var objCheckBoxArray = document.getElementsByTagName('input');

    for (var i = 0; i < objCheckBoxArray.length; i++) {
        if (objCheckBoxArray[i].type == "checkbox" && objCheckBoxArray[i].name.substr(0, 3) == "job") {
            if (objCheckBoxArray[i].checked) {
                changeSavedLabel(objCheckBoxArray[i].value, className, text);
            }
        }
    }
}

/* saves individual job using ajax */
function saveJobAjax(strJobID) {
    var classNameSaved = "save";
    var textSaved = "saved";
    var classNameWait = "loading";
    var textWait = "Saving";
    var classNameError = "save";
    var textError = "failed";

    var strURL = "/JobSeeker/AddJobToInbox.asp?jobid=" + strJobID + "&j=1";

    //Show image while waiting
    changeSavedLabel(strJobID, classNameWait, textWait);

    var settings = null;
    settings = {
        type: 'get',
        url: strURL,
        success: function(data, textStatus, xhr) {
            var response = new String(xhr.responseText);

            if (response.toUpperCase() == "OK") {
                changeSavedLabel(strJobID, classNameSaved, textSaved);
            }
        },
        error: function(xhr, textStatus, errorThrown) {
            //error message
            changeSavedLabel(strJobID, classNameError, textError);
        }
    };
    jQuery.ajax(settings);
}


/* saves job with support of redir flow if user is not logged in */
function saveJobRedirect(ID, Login) {
    if (Login) {
        saveJobAjax(ID);
    }
    else {
        saveJob(ID);
    }
}

function saveViewJobAjax(strJobID) {

    var classNameSaved = "saved";
    var textSaved = " (saved)";
    var classNameWait = "wait";
    var textWait = ":::::::::";
    var classNameError = "failed";
    var textError = "failed";
    
    var strURL = "/JobSeeker/AddJobToInbox.asp?jobid=" + strJobID + "&j=1";

    //Show text while waiting
    var objItem = document.getElementById("btn" + strJobID);
    if (objItem != null)
        objItem.value = textWait;

    var settings = null;
    try {
        settings = {
            type: 'get',
            url: strURL,
            success: function(data, textStatus, xhr) {
                var response = new String(xhr.responseText);
                if (response.toUpperCase() != "OK")
                    return;

                if (objItem == null)
                    return;

                objItem.disabled = true;
                objItem.value = "Saved";
                objItem.title = "Saved in your inbox";
            },
            error: function(xhr, textStatus, errorThrown) {
                //error message
                if (objItem == null)
                    return;
                objItem.value = textError;
            }
        }
        jQuery.ajax(settings);
    }
    catch (ex) {
        settings = {
            method: 'get',
            onSuccess: function(transport) {
                var response = new String(transport.responseText);
                if (response.toUpperCase() != "OK")
                    return;

                if (objItem == null)
                    return;
                objItem.disabled = true;
                objItem.value = "Saved";
                objItem.title = "Saved in your inbox";
            },
            onFailure: function() {
                //Error message
                if (objItem == null)
                    return;
                objItem.value = textError;
            }
        };
        new Ajax.Request(strURL, settings);
    }
    finally {
        settings = null;
    }    
}

function saveViewJobRedirect(ID, Login) {
    if (Login) {
        saveViewJobAjax(ID);
    }
    else {
        saveJob(ID);
    }
}
// shows job description in bubble
function showMore(e, jobID) {
    showBubbleAjax(e, "/Components/ViewjobDescription.asp?cjid=" + jobID, "right");
}

function AjaxGetJobSearch(url, resultId, waitID, errorMessage, onSuccessFunc) {
    if (errorMessage == null)
        errorMessage = "error";

    if (waitID == null)
        waitID = resultId;

    jQuery("#" + waitID).addClass("wait");
    
    var settings = {
        type: 'get',
        url: url,
        success: function(data, textStatus, xhr) {
            var e = document.getElementById(resultId);
            if (e == null)
                return;
            e.innerHTML = xhr.responseText;

            //need to call function here as well to populate stamp
            showText(false);

            jQuery("#" + waitID).removeClass("wait");

            if (typeof (onSuccessFunc) == "function")
                onSuccessFunc();
        },
        error: function(xhr, textStatus, errorThrown) {
            var e = document.getElementById(resultId);
            if (e == null)
                return;
            e.innerHTML = errorMessage;
        }
    };
    jQuery.ajax(settings);
}

function GetOrderName(index) {
    var strResult = "";

    switch (index) {
        case 0:
            strResult = "Posted date";
            break;
        case 1:
            strResult = "Posted date desc";
            break;
        case 2:
            strResult = "Location";
            break;
        case 3:
            strResult = "Location desc";
            break;
        case 4:
            strResult = "Company";
            break;
        case 5:
            strResult = "Company desc";
            break;
    }

    return strResult;
}


function manageSearchJobsResultPage(strQS, dhtmlHistory, objData) {

    var strUrl = "/JobseekerX/SearchJobsV2.asp";

    if (objData == null)
        objData = "";

    //save url into windows history object
    dhtmlHistory.add(escape(strQS), objData);

    //save qs into hidden var and rss link to match current filter
    setQS(strQS);

    var strLocation = strUrl + strQS;

    //call page and refresh refine text with showText()
    AjaxGetJobSearch(strLocation, 'JobSearchResultContent', null, null, onRefine);

    //refresh featured jobs
    //setTimeout("AjaxGet('/components/RollFeaturedJobs.asp', 'FeaturedJobsCont')", 3);
}


function clearFilter() {
    //clear all checkboxes
    clearAllCheckboxes();
    //clear all text fields
    jQuery("#jobSearchFormRefine input:text").val("");
    //clear other fields
    setElementValue("rdus", "");
    setElementValue("kwdt", "1");
    setElementValue('slr1', '0');
    setElementValue('slr2', '0');
    setElementValue('trvl', '0');
}


function clearCheckboxes() {
    setCheckboxes("#jobSearchFormRefine input:checkbox", false);
}

function unCheckAllBoxes(name) {
    setCheckboxes('#jobSearchFormRefine input[name="' + name + '"]', false);
    setCheckboxes('#jobSearchFormRefine input[name="' + name + '_all"]', true);
}

// sets url for rss button
function setRssUrl(qs) {
    var RssLink = document.getElementById("rss");
    if (RssLink != null)
        RssLink.href = "/JobseekerX/SearchJobsRSS.asp?" + qs;
}






