﻿    // showResults
    var showResults = true;
    var selectedIndex = -1;
    var selectedPrevIndex = -1;
    var minimumlength = 2;
    var itemsArray = new Array();
    var searchTB = "ctl00_top1_txtSearch";
    var searchDIV = "divSearchSuggest";
    var searchIMG = "imgSearch";
    var SysKeys = Sys.UI.Key;   //FROM AJAX UTILTY
    var isContinuePressed = false;
    var objTimer=null;
    var selectionSpeed = 500;
    function ReceiveServerData_AjaxSearch_Global(rValue) 
    { 
        if (document.getElementById(searchTB).value.length>minimumlength)
            handleSearchSuggest_Global(rValue); 
        else
            document.getElementById(searchDIV).style.display='none';
        document.getElementById(searchIMG).src="/images/autocomplete/search.gif";
    }
    
    //Called when the AJAX response is returned.
    function handleSearchSuggest_Global(results) {
		    var ss = document.getElementById(searchDIV);
		    itemsArray = new Array();
		    var str = results.split("\r\n");
		    selectedIndex = -1;
		    if (str.length>1)
		    {
		        ss.innerHTML = '';
		        var itemNo = 0;		        
		        var items = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
		        items += '<tr>';
		        items += '<td>';
			    items += '<ul>';
		        for(var i=0; i < str.length - 1; i++) {
		            itemsArray.push(str[i]);
			        items += '<li id="item' + itemNo + '" onmouseover="javascript:selectByIndex_Global(' + itemNo + ');" style="margin:0; padding:0; list-style:none;"><span class="FontStyle BlackText">' + str[i] + '</span></li>';
			        // onclick=\'javascript:setSearchByIndex_Global(\"' + itemNo + '\");\'
			        i++;
			        itemNo++;
		        }
                items += '</ul>';
		        items += '</td>';
		        items += '</tr>';
		        items += '<tr>';
		        items += '<td width="100%" height="25px" align="center" valign="middle" class="LinkStyle BgClose" >';
		        items += '<a href="javascript:void(0)" onclick="javascript:closeSearchResults_Global(true);" class="FontStyle BlueText" style="font-weight:bold;">Lukk</a>';
		        items += '</td>';
		        items += '</tr>';
		        items += '</table>';
		        ss.innerHTML = '<div class="SimpleTextRow1"><div class="MainSilder">' + items + '</div></div>';
		        ss.style.display = '';
		        selectByIndex_Global(selectedIndex);
		    }
		    else
		        ss.style.display = 'none';
    }

    // Select by index change
    function deselectByIndex_Global(index) {
        suggestOut_Global(document.getElementById("item" + index));
    }

    // Select by index change
    function selectByIndex_Global(index) {
        if (selectedPrevIndex!=-1 && selectedPrevIndex!=index && selectedPrevIndex < (itemsArray.length))
            deselectByIndex_Global(selectedPrevIndex);
        suggestOver_Global(document.getElementById("item" + index));
        selectedPrevIndex = index;
        selectedIndex = index;
    }
    
    //Mouse out function
    function suggestOut_Global(div_value) {
        if(div_value!=null)
	        div_value.className = 'BgNormal';
    }    
    
    //Mouse over function
    function suggestOver_Global(div_value) {
        if(div_value!=null)
	        div_value.className = 'BgSelected CursorPointer';
    }

    //Click on selected function
    function setSearchByIndex_Global(index) {
        document.getElementById(searchTB).value = itemsArray[index];
	    document.getElementById(searchTB).focus();
	    document.getElementById(searchDIV).innerHTML = '';
	    document.getElementById(searchDIV).style.display='none'
    }

    //Click on selected function
    function setSearchByIndex_Click() {
        try
        {
            if (selectedIndex!=-1)
                document.getElementById(searchTB).value = itemsArray[selectedIndex];

	        document.getElementById(searchTB).focus();
	        document.getElementById(searchDIV).innerHTML = '';
	        document.getElementById(searchDIV).style.display='none'
        }
        catch(e)
        {}
        
        return false;
    }

    //Click on selected function
    function setSearch_Global(value) {
	    document.getElementById(searchTB).value = value;
	    document.getElementById(searchTB).focus();
	    document.getElementById(searchDIV).innerHTML = '';
	    document.getElementById(searchDIV).style.display='none'
    }
    
    function closeSearchResults_Global(_isShowNextTime)
    {
        HighlightAll_Global(document.getElementById(searchTB));
        //alert('gge');
        showResults = _isShowNextTime;
        //document.getElementById(searchTB).focus();
        document.getElementById(searchDIV).innerHTML = '';
        selectedIndex = -1;
        document.getElementById(searchDIV).style.display = 'none';
    }
    
    function setSelectedByEnter_Global(e, obj, buttonid)
    {
    //('onkeypress');
        ClearElementSelection_Global();
        var k;
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        
        if (k === SysKeys.esc && document.getElementById(searchDIV).style.display == '') {
           closeSearchResults_Global(true);
           return false;
        }
        else if (k === SysKeys.enter)
        {
            if (document.getElementById(searchDIV).style.display == '' && selectedIndex>-1)
            {
                setSearchByIndex_Global(selectedIndex);
                clickButton(e, buttonid);
            }
            else
            {
                clickButton(e, buttonid);
            }
            return false;
        }
    }
    
    // ajaxtype = F for company search, P for person search
    function setAutoSearch_Global(e, obj, ajaxtype) {
    //('onkeyup');
        var k;
        ClearElementSelection_Global();
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        if (k === SysKeys.esc && document.getElementById(searchDIV).style.display == '') {
           closeSearchResults_Global(true);
        }
//        else if (k === SysKeys.up) {
//            isContinuePressed=true;
//            SelectPrevElement_Global();
//        }
//        else if (k === SysKeys.down) {
//            isContinuePressed=true;
//            SelectNextElement_Global();
//        }
        else if (k !== SysKeys.esc && k !== SysKeys.up && k !== SysKeys.down && k!== SysKeys.tab && k !== SysKeys.enter && k !== SysKeys.pageUp && k !== SysKeys.pageDown && k !== SysKeys.end && k !== SysKeys.home && k !== SysKeys.left && k !== SysKeys.up && k !== SysKeys.right && k !== SysKeys.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(minimumlength)) {
//		    var ss = document.getElementById(searchDIV)
//		    ss.innerHTML = '';
//		    ss.style.display = 'none';
            //CallServer_AjaxSearch(obj.value, '');
		    if (document.getElementById('imgSearch').style.display=='')
		    {
		        document.getElementById('imgBlank').style.display='none';
		        document.getElementById('imgSearch').src="/images/autocomplete/searchwait.gif";
		        if (ajaxtype=="F")
		            FinnFirma.Website.SearchAutoComplete.GetAutosuggest_Firma(obj.value,ReceiveServerData_AjaxSearch_Global);
		        else if(ajaxtype=="P")
		            FinnFirma.Website.SearchAutoComplete.GetAutosuggest_Personer(obj.value,ReceiveServerData_AjaxSearch_Global);
		    }
		    else if (document.getElementById('imgBlank').style.display=='none')
		        document.getElementById('imgBlank').style.display='';
        }
        else if (document.getElementById(searchDIV).style.display == '' && obj.value.length<=parseInt(minimumlength))
        {
            selectedIndex = -1;
            document.getElementById(searchDIV).style.display = 'none';
        }
    }

    function selectSearchElement_Global(e, obj) {
    //('onkeydown');
        var k;
        ClearElementSelection_Global();
        if(window.event) // IE
        {
          k = event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
          k = e.which;
        }
        if (k === SysKeys.esc && document.getElementById(searchDIV).style.display == '') {
           closeSearchResults_Global(true);
        }
        else if (k === SysKeys.up) {
            isContinuePressed=true;
            SelectPrevElement_Global();
        }
        else if (k === SysKeys.down) {
            isContinuePressed=true;
            SelectNextElement_Global();
        }
//        else if (k !== SysKeys.up && k === SysKeys.up && k!== SysKeys.tab && k !== SysKeys.enter && k !== SysKeys.pageUp && k !== SysKeys.pageDown && k !== SysKeys.end && k !== SysKeys.home && k !== SysKeys.left && k !== SysKeys.up && k !== SysKeys.right && k !== SysKeys.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(minimumlength)) {
//		    var ss = document.getElementById(searchDIV)
//		    ss.innerHTML = '';
//		    ss.style.display = 'none';
//            CallServer(obj.value, '');
//        }
//        else if (document.getElementById(searchDIV).style.display == '' && obj.value.length<=parseInt(minimumlength))
//        {
//            document.getElementById(searchDIV).style.display = 'none';
//        }
    }
        
    function SelectPrevElement_Global()
    {
        if (selectedIndex > 0) 
        {
            selectedPrevIndex = selectedIndex;
            selectedIndex--;
            selectByIndex_Global(selectedIndex);
        }
        else if (selectedIndex == 0) {
            selectedPrevIndex = selectedIndex;
            selectedIndex = (itemsArray.length - 1);
            selectByIndex_Global(selectedIndex);
        }
        else if (selectedIndex == -1 && itemsArray!=null && itemsArray.length > 0) {
            selectedIndex = 0;
            selectedPrevIndex = selectedIndex;
            selectedIndex = (itemsArray.length - 1);
            selectByIndex_Global(selectedIndex);
        }
        else
            isContinuePressed = false;
        
        if(isContinuePressed)
        {
            objTimer = setTimeout("SelectPrevElement_Global()",selectionSpeed);
        }
    }
    
    function SelectNextElement_Global()
    {
        if (selectedIndex < (itemsArray.length - 1)) 
        {
            selectedPrevIndex = selectedIndex;
            selectedIndex++;
            selectByIndex_Global(selectedIndex);
        }
        else if (selectedIndex == (itemsArray.length - 1))
        {
            selectedPrevIndex = selectedIndex;
            selectedIndex = 0;
            selectByIndex_Global(selectedIndex);
        }
        else
            isContinuePressed = false;
            
        if(isContinuePressed)
        {
            objTimer = setTimeout("SelectNextElement_Global()",selectionSpeed);
        }
    }
    
    function ClearElementSelection_Global()
    {
        isContinuePressed=false;
        clearTimeout(objTimer);
    }
    
    function HighlightAll_Global(theField) 
    {
        var tempval= theField;
        tempval.focus();
        tempval.select();
    }    
    
    function SetOnBlur_Global(obj)
    {
        if(document.getElementById(searchDIV).style.display!='')
            return;
        //searchTB = obj;
        try
        {
            if (selectedIndex!=-1)
                document.getElementById(searchTB).value = itemsArray[selectedIndex];
        }
        catch(e)
        {}
        document.getElementById(searchDIV).innerHTML = '';
        document.getElementById(searchDIV).style.display = 'none';
        selectedIndex = -1;
    }    