﻿    // varshowResults_AC
    var varshowResults_AC = true;
    var varselectedIndex_AC = -1;
    var varselectedPrevIndex_AC = -1;
    var varminimumlength_AC = 2;
    var varitemsArray_AC = new Array();
    var varsearchTB_AC = "ctl00_top1_txtSearch";
    var varsearchDIV_AC = "divSearchSuggest";
    var varsearchIMG_AC = "imgSearch";
    var SysKeys_AC = Sys.UI.Key;   //FROM AJAX UTILTY
    var varisContinuePressed_AC = false;
    var varobjTimer_AC=null;
    var varselectionSpeed_AC = 4000;
    
    function ReceiveServerData_AjaxSearch(rValue) 
    { 
        if (varsearchTB_AC.value.length>varminimumlength_AC)
            handleSearchSuggest(rValue); 
        else
            document.getElementById(varsearchDIV_AC).style.display='none';
        document.getElementById(varsearchIMG_AC).src="/images/autocomplete/search.gif";
    }
    
    //Called when the AJAX response is returned.
    function handleSearchSuggest(results) {
            if(varsearchDIV_AC==null)
                return;
                
		    var ss = document.getElementById(varsearchDIV_AC)
	        varitemsArray_AC = new Array();
		    var str = results.split("\r\n");
		    varselectedIndex_AC = -1;
		    if (str.length>1)
		    {
		        ss.innerHTML = '';
		        var itemNo = 0;		        
		        for(var i=0; i < str.length - 1; i++) {
		            varitemsArray_AC.push(str[i]);
                    // addElement() -- adds a element at the end of the Vector
			        //Build our element string.  This is cleaner using the DOM, but
			        //IE doesn't support dynamically added attributes.
			        var row = '<table id="item_AC' + itemNo + '" width="100%" border="0" cellspacing="0" cellpadding="0" onmouseover="javascript:selectByIndex(' + itemNo + ');" class="BgNormal CursorPointer" onclick=\'javascript:setSearchByIndex(\"' + itemNo + '\");\' >';
			        row += '<tr class="RowHeight">';
		        	row += "<td width='100%' class='FontStyle BlackText' >"; //onclick=\"javascript:setSearch('" + str[i] + "');\" 
		            row += str[i];
		            row += '</td>';
			        row += '</tr>';
			        row += '</table>';
			        i++;
			        itemNo++;
			        ss.innerHTML += row;
		        }

		        // CLOSE LINK
		        var row = '<table width="100%" border="0" cellspacing="0" cellpadding="0" class="BgClose">';
		        row += '<tr>';
		        row += '<td width="100%" height="25px" align="center" valign="middle" class="LinkStyle" >';
		        row += '<a href="javascript:void(0)" onclick="javascript:closeSearchResults(true);" class="FontStyle BlueText" style="font-weight:bold;">Lukk</a>';
		        row += '</td>';
		        row += '</tr>';
		        row += '</table>';
		        ss.innerHTML += row;
		        ss.innerHTML = '<div class="SimpleTextRow1 Pad10B"><div class="MainSilder">' + ss.innerHTML + '</div></div>';
		        ss.style.display = '';
		        selectByIndex(varselectedIndex_AC);
		    }
		    else
		        ss.style.display='none';
    }

    // Select by index change
    function deselectByIndex(index) {
        suggestOut(document.getElementById("item_AC" + index));
    }

    // Select by index change
    function selectByIndex(index) {
        if (varselectedPrevIndex_AC!=-1 && varselectedPrevIndex_AC!=index && varselectedPrevIndex_AC < (varitemsArray_AC.length))
            deselectByIndex(varselectedPrevIndex_AC);
        suggestOver(document.getElementById("item_AC" + index));
        varselectedPrevIndex_AC = index;
        varselectedIndex_AC = index;
    }
    
    //Mouse out function
    function suggestOut(div_value) {
        if(div_value!=null)
	        div_value.className = 'BgNormal';
    }    
    
    //Mouse over function
    function suggestOver(div_value) {
        if(div_value!=null)
	        div_value.className = 'BgSelected CursorPointer';
    }

    //Click on selected function
    function setSearchByIndex(index) {
	    varsearchTB_AC.value = varitemsArray_AC[index];
	    varsearchTB_AC.focus();
	    document.getElementById(varsearchDIV_AC).innerHTML = '';
	    document.getElementById(varsearchDIV_AC).style.display='none'
    }

    //Click on selected function
    function setSearch(value) {
	    varsearchTB_AC.value = value;
	    varsearchTB_AC.focus();
	    document.getElementById(varsearchDIV_AC).innerHTML = '';
	    document.getElementById(varsearchDIV_AC).style.display='none'
    }
    
    function setSelectedByEnter(e, obj, buttonid, divResultId, imgSearchId, isSetSelectedOnEnter)
    {
    //('onkeypress');
        varsearchIMG_AC = imgSearchId;
        varsearchDIV_AC = divResultId;
        varsearchTB_AC = obj;
        ClearElementSelection();
        var k;
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        
        if (k === SysKeys_AC.esc && document.getElementById(varsearchDIV_AC).style.display == '') {
           closeSearchResults(true);
           return false;
        }
        else if (k === SysKeys_AC.enter)
        {
            if (document.getElementById(varsearchDIV_AC).style.display == '' && varselectedIndex_AC>-1)
            {
                setSearchByIndex(varselectedIndex_AC);
                if(isSetSelectedOnEnter)
                {
                    if (varsearchTB_AC.id!='ctl00_top1_txtSearch')
                        ValidateMapRouteWithoutWarning();
                    else
                        clickButton(e, buttonid);
                }
            }
            else
            {
                clickButton(e, buttonid);
            }
            return false;
        }
    }
    
    function setAutoSearch(e, obj, buttonid, divResultId, imgSearchId) {
    //('onkeyup');
        varsearchIMG_AC = imgSearchId;
        varsearchDIV_AC = divResultId;
        varsearchTB_AC = obj;
        var k;
        ClearElementSelection();
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        if (k === SysKeys_AC.esc && document.getElementById(varsearchDIV_AC).style.display == '') {
           closeSearchResults(true);
           return false;
        }
        else if (k !== SysKeys_AC.esc && k !== SysKeys_AC.up && k !== SysKeys_AC.down && k!== SysKeys_AC.tab && k !== SysKeys_AC.enter && k !== SysKeys_AC.pageUp && k !== SysKeys_AC.pageDown && k !== SysKeys_AC.end && k !== SysKeys_AC.home && k !== SysKeys_AC.left && k !== SysKeys_AC.up && k !== SysKeys_AC.right && k !== SysKeys_AC.down && k != 112 && k != 113 && k != 114 && k != 115 && k != 116 && k != 117 && k != 118 && k != 119 && k != 120 && k != 121 && k != 122 && k != 123 && k != 93 && k != 16 && k != 17 && k != 18 && k != 19 && k != 20 && obj.value.length>parseInt(varminimumlength_AC)) {
//		    var ss = document.getElementById(varsearchDIV_AC);
//		    ss.innerHTML = '';
//		    ss.style.display = 'none';
//            CallServer_AC(obj.value, varsearchIMG_AC);
            if (document.getElementById(varsearchIMG_AC).style.display=='')
            {
                document.getElementById(varsearchIMG_AC).src="/images/autocomplete/searchwait.gif";
		        FinnFirma.Website.SearchAutoComplete.GetAutosuggest_Adresser(obj.value,ReceiveServerData_AjaxSearch);
		    }
		    else if (document.getElementById('imgBlank').style.display=='none')
		        document.getElementById('imgBlank').style.display='';
        }
        else if (document.getElementById(varsearchDIV_AC).style.display == '' && obj.value.length<=parseInt(varminimumlength_AC))
        {
            document.getElementById(varsearchDIV_AC).style.display = 'none';
        }
    }

    function selectSearchElement(e, obj, buttonid, divResultId, imgSearchId) {
    //('onkeydown');
        varsearchIMG_AC = imgSearchId;
        varsearchDIV_AC = divResultId;
        varsearchTB_AC = obj;
        var k;
        ClearElementSelection();
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        if (k === SysKeys_AC.esc && document.getElementById(varsearchDIV_AC).style.display == '') {
           closeSearchResults(true);
           //varsearchTB_AC.value = varsearchTB_AC.value;
           //return false;
        }
        else if (k === SysKeys_AC.up) {
            varisContinuePressed_AC=true;
            SelectPrevElement();
        }
        else if (k === SysKeys_AC.down) {
            varisContinuePressed_AC=true;
            SelectNextElement();
        }
    }
        
    function SelectPrevElement()
    {
        if (varselectedIndex_AC > 0) 
        {
            varselectedPrevIndex_AC = varselectedIndex_AC;
            varselectedIndex_AC--;
            selectByIndex(varselectedIndex_AC);
        }
        else if (varselectedIndex_AC == 0) {
            varselectedPrevIndex_AC = varselectedIndex_AC;
            varselectedIndex_AC = (varitemsArray_AC.length - 1);
            selectByIndex(varselectedIndex_AC);
        }
        else if (varselectedIndex_AC == -1 && varitemsArray_AC!=null && varitemsArray_AC.length > 0) {
            varselectedIndex_AC = 0;
            varselectedPrevIndex_AC = varselectedIndex_AC;
            varselectedIndex_AC = (varitemsArray_AC.length - 1);
            selectByIndex(varselectedIndex_AC);
        }
        else
            varisContinuePressed_AC = false;
        
        if(varisContinuePressed_AC)
        {
            varobjTimer_AC = setTimeout("SelectPrevElement()",varselectionSpeed_AC);
        }
    }
    
    function SelectNextElement()
    {
        if (varselectedIndex_AC < (varitemsArray_AC.length - 1)) 
        {
            varselectedPrevIndex_AC = varselectedIndex_AC;
            varselectedIndex_AC++;
            selectByIndex(varselectedIndex_AC);
        }
        else if (varselectedIndex_AC == (varitemsArray_AC.length - 1))
        {
            varselectedPrevIndex_AC = varselectedIndex_AC;
            varselectedIndex_AC = 0;
            selectByIndex(varselectedIndex_AC);
        }
        else
            varisContinuePressed_AC = false;
            
        if(varisContinuePressed_AC)
        {
            varobjTimer_AC = setTimeout("SelectNextElement()",varselectionSpeed_AC);
        }
    }
    
    function ClearElementSelection()
    {
        varisContinuePressed_AC=false;
        clearTimeout(varobjTimer_AC);
    }
    
    function closeSearchResults(_isShowNextTime)
    {
        HighlightAll(varsearchTB_AC);
        varshowResults_AC = _isShowNextTime
        //varsearchTB_AC.focus();
        document.getElementById(varsearchDIV_AC).innerHTML = '';
        document.getElementById(varsearchDIV_AC).style.display = 'none';
    }
    
    function HighlightAll(theField) 
    {
        var tempval= theField;
        tempval.focus();
        tempval.select();
//        if (document.all&&copytoclip==1&&tempval.createTextRange){
//        therange=tempval.createTextRange()
//        if(therange.execCommand)
//        therange.execCommand("Copy")
//        else
//        return;
//        window.status="Contents highlighted and copied to clipboard!"
//        setTimeout("window.status=''",1800)
    }
    
    function SetOnBlur(obj, divResultId, imgSearchId)
    {
        if(document.getElementById(varsearchDIV_AC).style.display!='')
            return;
            
        varsearchTB_AC = obj;
        varsearchDIV_AC = divResultId;
        try
        {
            if (varselectedIndex_AC!=-1)
                varsearchTB_AC.value = varitemsArray_AC[varselectedIndex_AC];
        }
        catch(e)
        {}
        document.getElementById(varsearchIMG_AC).src="/images/autocomplete/search.gif";
        document.getElementById(varsearchDIV_AC).innerHTML = '';
        document.getElementById(varsearchDIV_AC).style.display = 'none';
    }
