﻿// PREDICTIVE SEARCH - BEGIN ***********************************************************************

var SearchPhraseSelectIndex = -1;
function SearchPhraseSelect(s){ getRef("SearchText").value = s; Header_SearchClick(); }
function HidePredictiveSearchDiv() { getRef("PredictiveSearchDiv").style.display = "none"; }

var KeyWords_LastSearchTime = null;

function KeyWords_GetSearchPhrases(e){
    var key;
	if (window.event) key = window.event.keyCode;
	else if (e) key = e.which;
	key = Number(key);
	//alert(key);
	if (key == 13){ // return
	    if (SearchPhraseSelectIndex == -1){
	        HidePredictiveSearchDiv();
	        Header_SearchClick();
	    }else{
	        if ((SearchPhraseSelectIndex < 0) || (SearchPhraseSelectIndex > (Number(getRef("PredictiveSearchInnerDiv").childNodes.length) - 1))){ 
                HidePredictiveSearchDiv(); Header_SearchClick();
            }else{
                try{ SearchPhraseSelect(getRef("SearchPhraseDiv" + String(SearchPhraseSelectIndex)).innerHTML); }
                catch (exc){ HidePredictiveSearchDiv(); Header_SearchClick(); } 
            }
	    }
	}else if (key == 38){ SearchPhrases_UpArrowKeyUp(); // up arrow
	}else if (key == 40){ SearchPhrases_DownArrowKeyUp(); // down arrow	    
	}else{
        if (getRef("SearchText").value.length > 1){ GetSearchPhrases(getRef("SearchText").value); }
        else{ getRef("PredictiveSearchInnerDiv").innerHTML = ""; HidePredictiveSearchDiv(); } 
    }
    
    if (KeyWords_LastSearchTime == null) { // alert("is Null");
        KeyWords_LastSearchTime = new Date();
    }else{
        var Now = new Date();
        // alert(Now.getSeconds() KeyWords_LastSearchTime.getSeconds() - );
        // setTimeout("HidePredictiveSearchDiv();", 6000);
        KeyWords_LastSearchTime = Now;
    }
    
    setTimeout("HidePredictiveSearchDiv();", 7000);

    // getRef("SearchText").focus();
}

function SearchPhrases_DownArrowKeyUp(){ // actually, incrementing the index on
    SearchPhrases_ClearHighLights();
    SearchPhraseSelectIndex += 1;    
    if ((SearchPhraseSelectIndex < 0) || (SearchPhraseSelectIndex > (Number(getRef("PredictiveSearchInnerDiv").childNodes.length) - 1))){ SearchPhraseSelectIndex = -1; return; }
    HighLight(getRef("SearchPhraseDiv" + String(SearchPhraseSelectIndex)), true);
}

function SearchPhrases_UpArrowKeyUp(){ // actually, incrementing the index on
    SearchPhrases_ClearHighLights();
    SearchPhraseSelectIndex -= 1;
    if ((SearchPhraseSelectIndex < 0) || (SearchPhraseSelectIndex > (Number(getRef("PredictiveSearchInnerDiv").childNodes.length) - 1))){ SearchPhraseSelectIndex = -1; return; }
    HighLight(getRef("SearchPhraseDiv" + String(SearchPhraseSelectIndex)), true);
}

function SearchPhrases_ClearHighLights(){
    //alert(getRef("PredictiveSearchInnerDiv").childNodes.length);
    var ChildNodesLength = Number(getRef("PredictiveSearchInnerDiv").childNodes.length);
    if (ChildNodesLength == 0) { HidePredictiveSearchDiv(); return; }
    for (var i = 0; i < ChildNodesLength; i++){ HighLight(getRef("SearchPhraseDiv" + String(i)), false); }
}

function GetSearchPhrases_SucceededCallback_Internal(SearchPhrases){
    SearchPhraseSelectIndex = -1; SearchPhrases_ClearHighLights();
    if (Number(SearchPhrases.length) == 0) {HidePredictiveSearchDiv();}
    var s = "";
    for (var i = 0; i < SearchPhrases.length; i++){
        s += "<div class=\"SearchPhrase\"><a id=\"SearchPhrase" + String(i) + "\" href=\"javascript:SearchPhraseSelect('" + SearchPhrases[i] + "');\" class=\"SearchPhrase\">" +
                "<div id=\"SearchPhraseDiv" + String(i) + "\" style=\"padding-left: 5px; \" onmouseover=\"SearchPhrases_ClearHighLights();HighLight(this, true);\" onmouseout=\"HighLight(this, false);\">" +
                    SearchPhrases[i] + "</div></a></div>";  // padding-top: 2px; padding-bottom: 2px;
    }    
    if (s == "") { HidePredictiveSearchDiv(); }
    else { getRef("PredictiveSearchInnerDiv").innerHTML = s; getRef("PredictiveSearchDiv").style.display = ""; }
}

function HighLight(sDiv, bHighLight){
    if (bHighLight){  try {  getRef(sDiv).className = "PredictiveSearch_Highlight"; }catch(exc){} }
    else{ try {  getRef(sDiv).className = "PredictiveSearch_Clear";  }catch(exc){} }
}

// PREDICTIVE SEARCH - END *****************************************************************************

