﻿
var intCurrentUserID;

    function js_Show(intUniID){
        ret = ws_JobSearch.ReturnSearchDetail(intUniID, js_OnCompleteShow, js_OnErrorGeneric, js_OnTimeoutGeneric);
    }
    function js_OnCompleteShow(result){
        //breakup the result string and populate the search controls
        var varArray = result.split("||");
        var strVal;
        var strIDHolder;

        /*
        strOutput = .ID & "||"  0
        strOutput += .Name & "||"  1
        strOutput += .UserID & "||"  2
        strOutput += .Keyword & "||"  3
        strOutput += .Locations & "||"  4
        strOutput += .Sectors & "||"  5
        strOutput += .ContractTypes & "||"  6
        strOutput += .Salary & "||"  7
        strOutput += .Companies & "||"  8
        */
        document.getElementById("SaveSearchCommand").innerHTML = '<a onclick="js_Save(' + varArray[0] + ', ' + varArray[2] + ')"><img src="images/buttons/btn-save.jpg" alt="save" border="0" /></a>'
        document.getElementById("txtSearchName").value = varArray[1];
        document.getElementById("txtKeyword").value = varArray[3];

        len = document.getElementById("lstLocations").length
        i = 0
        strIDHolder = varArray[4]
        for (i = 0; i < len; i++) {
            strVal = "~" + document.getElementById("lstLocations")[i].value + "~";
            if (strVal != "~~"){
                if (strIDHolder.indexOf(strVal)>-1) {
                    document.getElementById("lstLocations")[i].selected = true;
                }else{
                    document.getElementById("lstLocations")[i].selected = false;
                }
            }else{
                document.getElementById("lstLocations")[i].selected = false;
            }
        }


        len = document.getElementById("lstCategories").length
        i = 0
        strIDHolder = varArray[5]
        for (i = 0; i < len; i++) {
            strVal = "~" + document.getElementById("lstCategories")[i].value + "~";
            if (strVal != "~~"){
                if (strIDHolder.indexOf(strVal)>-1) {
                    document.getElementById("lstCategories")[i].selected = true;
                }else{
                    document.getElementById("lstCategories")[i].selected = false;
                }
            }else{
                document.getElementById("lstCategories")[i].selected = false;
            }
        }

        len = document.getElementById("lstContractTypes").length
        i = 0
        strIDHolder = varArray[6]
        for (i = 0; i < len; i++) {
            strVal = "~" + document.getElementById("lstContractTypes")[i].value + "~";
            if (strVal != "~~"){
                if (strIDHolder.indexOf(strVal)>-1) {
                    document.getElementById("lstContractTypes")[i].selected = true;
                }else{
                    document.getElementById("lstContractTypes")[i].selected = false;
                }
            }else{
                document.getElementById("lstContractTypes")[i].selected = false;
            }
        }

        document.getElementById("txtSalary").value = varArray[7];        

        len = document.getElementById("lstCompanies").length
        i = 0
        strIDHolder = varArray[8]
        for (i = 0; i < len; i++) {
            strVal = "~" + document.getElementById("lstCompanies")[i].value + "~";
            if (strVal != "~~"){
                if (strIDHolder.indexOf(strVal)>-1) {
                    document.getElementById("lstCompanies")[i].selected = true;
                }else{
                    document.getElementById("lstCompanies")[i].selected = false;
                }
            }else{
                document.getElementById("lstUniversities")[i].selected = false;
            }
        }

    }
   

    function js_ShowSavedSearches(intUserID){
        intCurrentUserID = intUserID;
        ret = ws_JobSearch.ReturnSavedSearches(intUserID, js_OnCompleteShowSavedSearches, js_OnErrorGeneric, js_OnTimeoutGeneric);
    }
    function js_OnCompleteShowSavedSearches(result){
        document.getElementById("SavedSearches").innerHTML = result;
    }

    function js_ClearSearch(){
        //clear all of the job search controls
        var len;
        var i;  
              
        document.getElementById("txtSearchName").value = '';
        document.getElementById("txtKeyword").value = '';

        len = document.getElementById("lstLocations").length;
        if (len>0){
            for (i = 0; i < len; i++) {
                document.getElementById("lstLocations")[i].selected = false;
            }
        }

        len = document.getElementById("lstCategories").length;
        if (len>0){
            for (i = 0; i < len; i++) {
                document.getElementById("lstCategories")[i].selected = false;
            }
        }

        len = document.getElementById("lstContractTypes").length;
        if (len>0){
            for (i = 0; i < len; i++) {
                document.getElementById("lstContractTypes")[i].selected = false;
            }
        }
        document.getElementById("txtSalary").value = '';
                
        len = document.getElementById("lstCompanies").length;
        if (len>0){
            for (i = 0; i < len; i++) {
                document.getElementById("lstCompanies")[i].selected = false;
            }
        }
    }

    function js_Save(intID, intUserID){
        var strName;
        var strKeyword = '';
        var strLocations = '';
        var strSectors = '';
        var strContractTypes = '';
        var strSalary= '';
        var strCompanies = '';
        
        intCurrentUserID = intUserID;

        strName = document.getElementById("txtSearchName").value;
        strKeyword = document.getElementById("txtKeyword").value;
        len = document.getElementById("lstLocations").length
        i = 0
        strLocations = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstLocations")[i].selected) {
                strLocations = strLocations + "~" + document.getElementById("lstLocations")[i].value + "~"
            } 
        }
        len = document.getElementById("lstCategories").length
        i = 0
        strSectors = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstCategories")[i].selected) {
                strSectors = strSectors + "~" + document.getElementById("lstCategories")[i].value + "~"
            } 
        }
        len = document.getElementById("lstContractTypes").length
        i = 0
        strContractTypes = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstContractTypes")[i].selected) {
                strContractTypes = strContractTypes + "~" + document.getElementById("lstContractTypes")[i].value + "~"
            } 
        }

        strSalary = document.getElementById("txtSalary").value;
                
        len = document.getElementById("lstCompanies").length
        i = 0
        strCompanies = '';
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstCompanies")[i].selected) {
                strCompanies = strCompanies + "~" + document.getElementById("lstCompanies")[i].value + "~"
            } 
        }

        if (strName.length<1){
            window.alert("Please enter a name for this search");
        }else{
            //intID strName intCompanyID intUserID strKeyword strLocations strSecctors strAvailability strStatus strJobTitlesSought strContractTypes strUniversities strGrades 
            if (strLocations.length<1){
                strLocations = '';
            }
            if (strSectors.length<1){
                strSectors = '';
            }
            if (strContractTypes.length<1){
                strContractTypes = '';
            }
            if (strSalary.length<1){
                strSalary = '';
            }
            if (strCompanies.length<1){
                strCompanies = '';
            }
            ret = ws_JobSearch.Save(intID, strName, intUserID, strKeyword, strLocations, strSectors, strContractTypes, strSalary, strCompanies, js_OnCompleteSave, js_OnErrorGeneric, js_OnTimeoutGeneric);        
        }
    }
    function js_Delete(intID){
        var resp= confirm("Do you really want to delete this search?");
        if (resp==true){
            ret = ws_JobSearch.Delete(intID, js_OnCompleteSave, js_OnErrorGeneric, js_OnTimeoutGeneric);
        }
    }
    function js_OnCompleteSave(result){
        //refresh the list of saved searches
        js_ShowSavedSearches(intCurrentUserID)
    }
    


    function js_OnErrorGeneric(error){
        var stackTrace = error.gejs_stackTrace();
        var message = error.gejs_message();
        var statusCode = error.gejs_statusCode();
        var exceptionType = error.gejs_exceptionType();
        var timedout = error.gejs_timedOut();
        var strMessage;
       
        // Display the error.    
        //strMessage = "Stack Trace: " +  stackTrace + "    ||    Service Error: " + message + "    ||    Status Code: " + statusCode + "    ||    Exception Type: " + exceptionType + "    ||    Timedout: " + timedout;
        strMessage = "Message: " +  message;
        window.alert("Error:" + strMessage);
    }
    
    function js_OnTimeoutGeneric(result){
        window.alert("There was a time-out in the Job Search web service");
    }    

