﻿function eventraised(eventss, partNumber) {
    var selectedName = "";
    try {
        var dd = eventss;
        if (dd == 40) {
            countSearch == searchToolNumberOfElements - 1 ? countSearch = 0 : countSearch++;
            if (countSearch > 0)
                document.getElementById('SeachToolcomp' + (countSearch - 1)).style.backgroundColor = "white";
            document.getElementById('SeachToolcomp' + (searchToolNumberOfElements - 1)).style.backgroundColor = "white";
            downkey = true; upkey = false;
            var ee = document.getElementById('SeachToolcomp' + countSearch);
            ee.style.backgroundColor = "gray";

            if (Sys.Browser.agent != Sys.Browser.InternetExplorer)
                document.getElementById("SearchToolTextBox" + partNumber).value = ee.textContent;
             else
                document.getElementById("SearchToolTextBox" + partNumber).innerText = ee.innerText;
        }
        else if (dd == 38) {
            countSearch == 0 || countSearch == -1 ? countSearch = searchToolNumberOfElements - 1 : countSearch--;
            if (countSearch != -1 && countSearch != searchToolNumberOfElements - 1)
                document.getElementById('SeachToolcomp' + (countSearch + 1)).style.backgroundColor = "white";
            if (document.getElementById('SeachToolcomp' + (countSearch)) != null || document.getElementById('SeachToolcomp' + (countSearch)) != undefined)
                document.getElementById('SeachToolcomp' + (countSearch - countSearch)).style.backgroundColor = "white";
            upkey = true; downkey = false;
            var ee = document.getElementById('SeachToolcomp' + countSearch);
            ee.style.backgroundColor = "gray";
            document.getElementById("SearchToolTextBox" + partNumber).innerText = ee.innerText;
            if (Sys.Browser.agent != Sys.Browser.InternetExplorer)
                document.getElementById("SearchToolTextBox" + partNumber).value = ee.textContent;
        }
        else if (dd == 13) {
            var rr = document.getElementById("SearchToolAutoComplete" + partNumber).childNodes;
            if (rr != null) {
                for (var i = 0; i < rr.length; i++) {
                    if (rr[i].style.backgroundColor == "gray" || rr[i].style.backgroundColor.toLowerCase() == "gray") {
                        if (Sys.Browser.agent != Sys.Browser.InternetExplorer)
                            document.getElementById('SearchToolTextBox' + partNumber).value = rr[i].textContent;
                        else
                            document.getElementById('SearchToolTextBox' + partNumber).value = rr[i].innerText;
                        document.getElementById('SearchToolAutoComplete' + partNumber).style.display = "none";
                        SearchvalueSelected = true;
                        if (Sys.Browser.agent != Sys.Browser.InternetExplorer)
                            selectedName = rr[i].textContent;
                        else
                            selectedName = rr[i].innerText;
                    }
                }
            }
            countSearch = -1;
        }
        else if (dd == 8) {
            if (document.getElementById('SearchToolTextBox' + partNumber).value.length == 0) {
                countSearch = -1;
                document.getElementById('SearchToolAutoComplete' + partNumber).style.display = "none";
            }
            else {
                ShowNameListSearchTool('SearchToolTextBox' + partNumber, eventss);
                return true;
            }
        }
    }
    catch (e) {
        stop = true;
        if (upkey) {
            var ee = document.getElementById('SeachToolcomp' + (countSearch + 1));
            if (ee != null)
                ee.style.backgroundColor = "gray";
        }
        if (downkey) {
            var ee = document.getElementById('SeachToolcomp' + (countSearch - 1));
            if (ee != null)
                ee.style.backgroundColor = "gray";
        }
        if (downkey)
            countSearch = (countSearch - 1);
        if (upkey)
            countSearch = (countSearch + 1);
    }
}
function ShowNameListSearchTool(partid, Event) {
    try {
        if (Sys.Browser.agent == Sys.Browser.InternetExplorer)
            Event = Event.keyCode;
        else
            Event = (Event.which == 0 ? Event.keyCode : Event.which);
        var counter = 10;
        var partNumber = partid;
        partNumber = partNumber.replace(/SearchToolTextBox/g, "");
        partNumber = partNumber.replace(/ /g, "");
        SearchToolPartID = partNumber;
        var text = document.getElementById("SearchToolTextBox" + partNumber).value;
        if (Event == 13 || Event == 40 || Event == 38 || Event == 8) {
            eventraised(Event, partNumber);
            return true;
        }
        if (text.length == 0)
            countSearch = -1;
        if (text.length > 1) {
            var varData = { prefixText: text, count: counter, widgetId: partNumber, language: globalLanguage };
            callBackParamGetCompletionList= partid + "@" + Event;
            CallService("GET", "GetCompletionList", varData, ShowDropDownSearchTool, ShowDropDownSearchToolFail);
            //AjaxService.AjaxService.GetCompletionList(text, counter, partNumber,globalLanguage, ShowDropDownSearchTool, ShowDropDownSearchToolFail, partid + "@" + Event);
        }
        else {
            var auto = document.getElementById("SearchToolAutoComplete" + partNumber);
            auto.style.display = "none";
        }
    } catch (e) {
    }
}
var callBackParamGetCompletionList;
function ShowDropDownSearchToolFail(result) { }
function ShowDropDownSearchTool(result) {
    try {
        var id = callBackParamGetCompletionList;
        var events = id.split('@')[1];
        id = id.split('@')[0];
        var partNumber = id.replace(/SearchToolTextBox/g, "");
        partNumber = partNumber.replace(/ /g, "");
        var auto = document.getElementById("SearchToolAutoComplete" + partNumber);
        auto.innerHTML = "";
        var dd = document.getElementById(id);
        auto.style.display = "block";
        auto.style.width = dd.clientWidth + "px";
        if (result.length >= 5)
            auto.style.height = result.length * 20 + "px";
        else
            auto.style.height = result.length * 25 + "px";
        var comp = "";
        if (dd.value != "") {
            if (result.length == 0) {
                auto.style.display = "none";
            }
            searchToolNumberOfElements = result.length;
            for (var x = 0; x < result.length; x++) {
                result[x] = result[x].replace(/ /g, "--");
                var originalName = result[x].replace(/--/g, " ");
                comp = "SeachToolcomp" + x;
                var newelement = document.createElement('div');
                newelement.id = comp;
                newelement.innerHTML = "<a style='cursor:Pointer;font-family:Trebuchet MS;font-size:10px;font-weight:300;' onmouseover=highlight('" + auto.id + "',this.parentNode.id,'SearchTool') onmouseout=dehighlight('" + auto.id + "',this.parentNode.id) onclick=SearchToolselectitems('" + result[x] + "','" + partNumber + "')>" + originalName + "</a>";
                auto.appendChild(newelement);
            }
        }
        else {
            auto.style.display = "none";
        }
    } catch (e) {

    }
}
function SearchToolselectitems(selected, id) {
    selected = selected.replace(/--/g, " ");
    document.getElementById("SearchToolTextBox" + id).value = selected;
    var auto = document.getElementById("SearchToolAutoComplete" + id);
    auto.style.display = "none";
    document.getElementById("SearchToolTextBox" + id).innerText = selected;
}
function highlight(highlightItem, checkThis, typeofPart) {
    var obj = document.getElementById(highlightItem);
    if (obj != null) {
        for (var i = 0; i < obj.childNodes.length; i++) {
            var child = obj.childNodes[i];
            child.style.backgroundColor = "white";
            if (child.id == checkThis) {
                if (typeofPart == "SearchTool")
                    countSearch = i;
                else
                    count = i;
            }
        }
        if (document.getElementById(checkThis) != null)
            document.getElementById(checkThis).style.backgroundColor = "gray";
    }
}
function dehighlight(highlightItem, checkThis) {
    if (document.getElementById(checkThis) != null)
        document.getElementById(checkThis).style.backgroundColor = "white";
}
function ShowtheResult(SearchBoxID, language) {
    var obj = SearchBoxID.replace(/SearchToolTextBox/g, "");
    var item = document.getElementById("SearchToolAutoComplete" + obj);
    if (item != undefined || item != null) {
        item.style.display = "none";
    }
    var searchstring = document.getElementById(SearchBoxID).value;
    if (searchstring != "") {
        var varData = { searchText: searchstring, widgetId: obj,language:globalLanguage };
        CallService("GET", "Redirect", varData, RedirectPage, null);
        //AjaxService.AjaxService.Redirect(searchstring, obj, RedirectPage, null, language);
    }
}
function RedirectPage(result) {
    if (result!=null&&result != "") {
        CVPageClick(result, globalLanguage);
    }
}
function ImageClick(language) {
    ClickOnMenuNode('RECHERCHE', language);
}
function getOuterHTML(object) {
    var element;
    if (!object) return null;
    element = document.createElement("div");
    element.appendChild(object.cloneNode(true));
    return element.innerHTML;
}
function setOuterHTML(object, Replace, ReplaceBy) {
    var element;
    if (!object) return null;
    element = document.createElement("div");
    element.appendChild(object.cloneNode(true));
    element.innerHTML = element.innerHTML.replace(Replace, ReplaceBy);
}
Array.prototype.unique = function () {
    var r = new Array();
    o: for (var i = 0, n = this.length; i < n; i++) {
        for (var x = 0, y = r.length; x < y; x++) {
            if (r[x] == this[i]) {
                continue o;
            }
        }
        r[r.length] = this[i];
    }
    return r;
}
function KeyUp(obj, event, userid, pageid, partid, language) {
    var eventCode = event.keyCode == undefined ? event.which : event.keyCode;
    if (eventCode == 13) {
        eventraiser(eventCode, partid, userid, pageid, language);
    }
}
function SearchToolKeyUp(event, partid) {
    var eventCode = event.keyCode == undefined ? event.which : event.keyCode;
    if (eventCode == 13) {
        eventraised(eventCode, partid);
    }
}
function MenuSearchKeyUp(event) {
    var eventCode = event.keyCode == undefined ? event.which : event.keyCode;
    if (eventCode == 13) {
        MenuSearchClick();
    }
}
function MenuSearchClick() {
    $find("LoadingAniModal").show();
    var searchText = document.getElementById("MenuSearch").value;
    AjaxService.AjaxService.MenuSearch(searchText,globalUserName, MenuSearchSuccess, MenuSearchFail);
}
function MenuSearchSuccess(result) {
    if (result != "") {
        window.location.href = result;
    }
    else {
        $find("LoadingAniModal").hide();
        alert("No Results found");
    }
}

function CheckUncheckChild(chkObject, isLabelClick) {
    if (isLabelClick!=undefined&&isLabelClick==true) {
        chkObject.checked = !(chkObject.checked);
    }
    var chkId = chkObject.name.replace("Parent", "Child");
    var childChks = document.getElementsByName(chkId);
    for (var i = 0; i < childChks.length; i++) {
        childChks[i].checked = chkObject.checked;
    }
}

function UncheckCheckParent(chkObject, isLabelClick) {
    if (isLabelClick != undefined && isLabelClick == true) {
        chkObject.checked = !(chkObject.checked);
    }
    var chkId = chkObject.name;
    var childChks = document.getElementsByName(chkId);
    var parentChk=document.getElementsByName(chkId.replace("Child","Parent"));
    var allChildChecked = true;
    for (var i = 0; i < childChks.length; i++) {
        if (!childChks[i].checked)
            allChildChecked = false;
    }
    if (!allChildChecked) {
        parentChk[0].checked = false;
    }
    else {
        parentChk[0].checked = true;
    }
}

function MenuSearchFail() { }
function getValidatedSearchResults(baseURL, listURL, widgetId, language) {
    var chkElements = document.getElementsByTagName("input");
    var checkboxesElements = new Array();
    for (var i = 0; i < chkElements.length; i++) {
        if (chkElements[i].type == "checkbox" && chkElements[i].checked && chkElements[i].name!="location")
            checkboxesElements.push(chkElements[i]);
    }  
    var objRadio = document.getElementsByName("department");
    var objPoles = document.getElementsByName("poles");
    var objCheckBox = document.getElementsByName("location");
    var selectedDepartment = "";
    var selectedPole = "";
    for (var i = 0; i < checkboxesElements.length; i++) {
        if (checkboxesElements[i].checked&&checkboxesElements[i].name.indexOf("Parent")>-1)
            selectedDepartment += checkboxesElements[i].value +",";
    }
    for (var i = 0; i < checkboxesElements.length; i++) {
        if (checkboxesElements[i].checked && checkboxesElements[i].name.indexOf("Child") > -1) {
            selectedPole += checkboxesElements[i].value + ",";
            var selectedParent = document.getElementsByName(checkboxesElements[i].name.replace("Child", "Parent"))[0];
            if (selectedDepartment.indexOf(selectedParent.value)==-1)
                selectedDepartment += selectedParent.value + ",";
        }
    }
    var selectedLocations = "";
    for (var i = 0; i < objCheckBox.length; i++) {
        if (objCheckBox[i].checked) {
            selectedLocations += objCheckBox[i].value + ",";
        }
    }
    if (selectedDepartment == "" && selectedLocations == "" && selectedPole == "") {
        if (language == "French") {
            alert("S'il vous plaît choisir un emplacement ou d'un département or pole");
            return;
        }
        else {
            alert("Please select a location or a department or a pole");
            return;
        }
    }
    else {
//        if (selectedDepartment == "" && selectedPole == "") {
//            if (language == "French") {
//                alert("S'il vous plaît choisir un département or pole");
//                return;
//            }
//            else {
//                alert("Please select a department or pole");
//                return;
//            }
//        }
//        else {
//            if (selectedLocations == "") {
//                if (language == "French") {
//                    alert("Merci de sélectionner une agence");
//                    return;
//                }
//                else {
//                    alert("Please select one agency"); return;
//                }
//            }
//        }
    }
    var objTable = document.getElementById('SPR');
    objTable.innerHTML = "<br><br><br><br><div id=\"SPAnim\" align=\"center\" style=\"width:340px;height:100%;\"></div>";
    if (language == "English")
        createLoadingAnimation("Loading...", "SPAnim");
    else
        createLoadingAnimation("Chargement...", "SPAnim");
    var varData = { location: selectedLocations, pole: selectedPole, department: selectedDepartment, baseSiteURL: baseURL, strSHPTUrl: listURL, widgetId: widgetId, pageLanguage: language };
    CallService("GET", "GetSearchResults", varData, onGetResultsSucceeded, onGetResultsFailed);
   // AjaxService.AjaxService.GetSearchResults(selectedLocations, selectedPole, selectedDepartment, baseURL, listURL, widgetId, language, onGetResultsSucceeded, onGetResultsFailed);
}
function onGetResultsSucceeded(data, textStatus, jqXHR) {
     var objTable = document.getElementById('SPR');
     objTable.innerHTML = data;
 }
 function onGetResultsFailed(result) {
     alert("fail");
 }
 function createLoadingAnimation(strLoadingString, spnID) {
     var strLoadingText = "<font color='navy' size='2'>&nbsp;" + strLoadingString + "...&nbsp;&nbsp;";
     if (Sys.Browser.agent == Sys.Browser.InternetExplorer)
         strLoadingText += "<MARQUEE style='WIDTH: 20px; HEIGHT: 12px' scrollDelay=200 width=20 direction=down>&dagger;<br>&dagger;</MARQUEE>";
     else
         strLoadingText += "...";
     var objLoadSpan = document.createElement("div");
     objLoadSpan.innerHTML = strLoadingText;
     objLoadSpan.align = "center";
     objLoadSpan.style.marginBottom = "100px";
     var ospanID = document.getElementById(spnID);
     if (ospanID != null) {
         ospanID.innerHTML = "";
         ospanID.appendChild(objLoadSpan);
     }
 }
 function removeLoadingAnimation(spnID) {
     var ospanID = document.getElementById(spnID);
     if (ospanID != null)
         ospanID.innerHTML = "";
 }
 function CheckUncheckParent(clickedCheckbox) {
     var chkId = clickedCheckbox.name.replace("Parent", "");
     var chkElements = document.getElementsByName(chkId);
     for (var i = 0; i < chkElements.length; i++) {
         chkElements[i].checked = clickedCheckbox.checked;
     }
 }

 function stripVowelAccent(str) {
     var rExps = [/[\xC0-\xC2]/g, /[\xE0-\xE2]/g,
		/[\xC8-\xCA]/g, /[\xE8-\xEB]/g,
		/[\xCC-\xCE]/g, /[\xEC-\xEE]/g,
		/[\xD2-\xD4]/g, /[\xF2-\xF4]/g,
		/[\xD9-\xDB]/g, /[\xF9-\xFB]/g];
     var repChar = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u'];
     for (var i = 0; i < rExps.length; ++i)
         str = str.replace(rExps[i], repChar[i]);
     return str;
 }

 function highlightWord(node, word, doc) {
     doc = typeof (doc) != 'undefined' ? doc : document;
     // Iterate into this nodes childNodes
     if (node.hasChildNodes) {
         var hi_cn;
         for (hi_cn = 0; hi_cn < node.childNodes.length; hi_cn++) {
             highlightWord(node.childNodes[hi_cn], word, doc);
         }
     }

     // And do this node itself
     if (node.nodeType == 3) { // text node
         tempNodeVal = stripVowelAccent(node.nodeValue.toLowerCase());
         tempWordVal = stripVowelAccent(word.toLowerCase());
         if (tempNodeVal.indexOf(tempWordVal) != -1) {
             pn = node.parentNode;
             if (pn.className != "searchword") {
                 // word has not already been highlighted!
                 nv = node.nodeValue;
                 ni = tempNodeVal.indexOf(tempWordVal);
                 // Create a load of replacement nodes
                 before = doc.createTextNode(nv.substr(0, ni));
                 docWordVal = nv.substr(ni, word.length);
                 after = doc.createTextNode(nv.substr(ni + word.length));
                 hiwordtext = doc.createTextNode(docWordVal);
                 hiword = doc.createElement("span");
                 hiword.className = "searchword";
                 hiword.appendChild(hiwordtext);
                 pn.insertBefore(before, node);
                 pn.insertBefore(hiword, node);
                 pn.insertBefore(after, node);
                 pn.removeChild(node);
             }
         }
     }
 }

 function unhighlight(node) {
     // Iterate into this nodes childNodes
     if (node.hasChildNodes) {
         var hi_cn;
         for (hi_cn = 0; hi_cn < node.childNodes.length; hi_cn++) {
             unhighlight(node.childNodes[hi_cn]);
         }
     }

     // And do this node itself
     if (node.nodeType == 3) { // text node
         pn = node.parentNode;
         if (pn.className == "searchword") {
             prevSib = pn.previousSibling;
             nextSib = pn.nextSibling;
             nextSib.nodeValue = prevSib.nodeValue + node.nodeValue + nextSib.nodeValue;
             prevSib.nodeValue = '';
             node.nodeValue = '';
         }
     }
 }

 function localSearchHighlight(searchStr, doc) {
     doc = typeof (doc) != 'undefined' ? doc : document;
     if (!doc.createElement) return;
     if (searchStr == '') return;
     // Trim leading and trailing spaces after unescaping
     searchstr = unescape(searchStr).replace(/^\s+|\s+$/g, "");
     if (searchStr == '') return;
     phrases = searchStr.replace(/\+/g, ' ').split(/\"/);
     // Use this next line if you would like to force the script to always
     // search for phrases. See below as well!!!
     //phrases = new Array(); phrases[0] = ''; phrases[1] = searchStr.replace(/\+/g,' ');
     for (p = 0; p < phrases.length; p++) {
         phrases[p] = unescape(phrases[p]).replace(/^\s+|\s+$/g, "");
         if (phrases[p] == '') continue;
         if (p % 2 == 0) words = phrases[p].replace(/([+,()]|%(29|28)|\W+(AND|OR)\W+)/g, ' ').split(/\s+/);
         else { words = Array(1); words[0] = phrases[p]; }
         for (w = 0; w < words.length; w++) {
             if (words[w] == '') continue;
             highlightWord(doc.getElementsByTagName("body")[0], words[w], doc);
         }
     }
 }


       




