﻿var ddResults;
var tbSearch;


function getSearchResults(e, _tbSearch,_ddResults, url)
{
   var keynum;
    if (window.event) // IE
            keynum = e.keyCode;
    if (e.which) // Other browser
        keynum = e.which;
    
    if ((keynum != 38) && (keynum != 40)) {

        tbSearch = document.getElementById(_tbSearch);
        var keyword = tbSearch.value;
        ddResults = document.getElementById(_ddResults);
        ddResults.style.display = 'none';
       
        if(keyword != ''){
            ajax = new sack();
            ajax.requestFile = url;
            ajax.setVar('keyword',keyword);
            ajax.setVar('key',keynum);
            ajax.onCompletion = whenSearchCompleted;	
            ajax.runAJAX();
        }       
	 }   
}

function whenSearchCompleted(){
    if(!ajax.response){
        ddResults.length = 0;
        ddResults.size = 1;
        return;
    }
    
    var tiers = ajax.response.split(',');
    
    ddResults.length = tiers.length;
    var i;
    var divs = '';
    for (i=0;i<tiers.length;i++)
    {
            divs += '<a id="autoSuggestItem' + i.toString() + '" class="auto-suggest-item" href="javascript: populateSearchBox(\'' + tiers[i] + '\');" onClick="javascript: populateSearchBox(\'' + tiers[i] + '\');"  >' + tiers[i] + '</a>';
    }
    divs += '<a class="search-close" onClick="javascript: if (document.getElementById(\'' +  ddResults.id + '\')) { document.getElementById(\'' + ddResults.id + '\').style.display = \'none\' }">Close</a>'
    ddResults.innerHTML = divs;

    if (ddResults.innerHTML == '') {
        ddResults.style.display = 'none';
    }else {
        ddResults.style.display = '';
    }
    
}


function keyPress(el, e, dropDownId, keywordsTotal)
    {
        var keynum;
        var key;
        

        if (window.event) // IE
            keynum = e.keyCode;
        if (e.which) // Other browser
            keynum = e.which;

        switch (keynum)
        {
            case 38:
                // up
                key = 'up';
                break;
            case 37:
                // left
                break;
            case 40:
                // down
                key = 'down';
                break;
            case 39:
                // right
                break;
            default:
                // another key
                break; 
        }             
        
        if ((key == 'up') || (key == 'down')) {
            var dropDown = document.getElementById(dropDownId);
            if (dropDown) {
                if (dropDown.style.display != 'none') {
            
                var data;
                var item;
                var found = false;
                var itemNum;
                var searchValue = el.value;
                
                searchValue = searchValue.replace('&', '&amp;');  
                
                for (var i = 0;i <= keywordsTotal; i ++) {
                    item = document.getElementById('autoSuggestItem' + i.toString());  
                    if (item) {
                        item.className = 'auto-suggest-item';
                        
                        if (item.innerHTML == searchValue) {  
                            if (key == 'up') {
                                itemNum = i - 1;
                            } 
                            else if (key == 'down') {
                                itemNum = i + 1;
                            }
                        }
                    }
                }                  
                  

                // set active item
                item = document.getElementById('autoSuggestItem' + itemNum);   
                if (item) {
                    //console.log('item=' + item.id);
                    found = true;
                    item.className = 'auto-suggest-item-active';
                    data = item.innerHTML;
                }
                
                // default
                if (!found) {
                    item = document.getElementById('autoSuggestItem0'); 
                    if (item) {
                        item.className = 'auto-suggest-item-active';
                        data = item.innerHTML;
                    }
                }
                
                
                     
                // set searchbox value
                data = data.replace('&amp;', '&');
                el.value = data;
                
                    }
                }
            }     
    }


function lostFocus(ddResults){
    timer = setTimeout("ddResults.style.display = 'none'", 2000);  
}


function insertAtCursor(myField, myValue) {
		//IE support
		if (document.selection) {
			myField.focus();
			sel = document.selection.createRange();
			sel.text = myValue;
		}
		//MOZILLA/NETSCAPE support
		else if (myField.selectionStart || myField.selectionStart == '0') {
			var startPos = myField.selectionStart;
			var endPos = myField.selectionEnd;
			myField.value = myField.value.substring(0, startPos)
			+ myValue
			+ myField.value.substring(endPos, myField.value.length);
		} else {
			myField.value += myValue;
		}
	}

function populateSearchBox(search)
{
   if (tbSearch) {
        tbSearch.value = search;
   } 
   
  ddResults.style.display = 'none';
}

function focus(_ddResults) 
{
    var el = document.getElementById(_ddResults);
    if (el) {
    el.style.display = 'block';
        clearTimeout(timer);
    }    
}
