﻿    var selectedSuggestionIndex = -1;
    var suggestionCount = 0;
    var arrowPressed = false;  

    function FindSearchSuggestions(searchCriteria)
    {

      if (!arrowPressed)
      {
                   
      var url = document.getElementById('ctl00_ctlSearchPanel_hdnSearchSuggestionsPage').value + '?Keyword=' + searchCriteria;
      
      xmlhttp=null;

      if (window.XMLHttpRequest)
      {// code for all new browsers
      xmlhttp=new XMLHttpRequest();
      }
      else if (window.ActiveXObject)
      {// code for IE5 and IE6
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      if (xmlhttp!=null)
      {
  
      xmlhttp.onreadystatechange=stateChange_FindSearchSuggestions;
      xmlhttp.open("GET",url,true);
      xmlhttp.send(null);
     
      }
      else
      {
      alert("Your browser does not support XMLHTTP.");
      }  
      }
      else
      {
      arrowPressed = false;
      }
    }
    
function stateChange_FindSearchSuggestions()
{
 
  if (xmlhttp.readyState==4)
  {// 4 = "loaded"
    if (xmlhttp.status==200)
   
    {// 200 = OK
      // ...our code here...     
      var responseText = xmlhttp.responseText;  
      if (responseText != "" && responseText != "<Suggestions />")
      {
        xmlDoc=loadXMLString(responseText);
        if (xmlDoc)
        {
          var html = "";
          html += '<h3>' + document.getElementById('ctl00_ctlSearchPanel_hdnSuggestionTextHeading').value + '</h3>';       
          x=xmlDoc.documentElement.childNodes;
          selectedSuggestionIndex = -1;	
          suggestionCount = 0;  
          for (i=0;i<x.length;i++)
          { 
            if (x[i].nodeType==1)
            {//Process only element nodes (type 1)             
              displayValue = x[i].getAttribute("DisplayValue");            
              searchValue = x[i].getAttribute("SearchValue");  
              type = x[i].getAttribute("Type");            
              context = x[i].getAttribute("Context");  
              count = x[i].getAttribute("Count");
              var message = document.getElementById("ctl00_ctlSearchPanel_hdnSuggestionText_" + type).value; 
              message = message.replace("{0}", "<span class=\"autosuggest_displayvalue\">"+displayValue+"</span>");
              intCount = parseInt(count);
              if ((count > 1) || context == "TractorModelExactSearch")
                url = document.getElementById('ctl00_ctlSearchPanel_hdnSearchResultsPage').value + "?Keyword=" + searchValue + "&SearchContext=" + context;
              else
                url = document.getElementById('ctl00_ctlSearchPanel_hdnItemDetailsPage').value + "?ItemNumber=" + searchValue + "&SearchContext=" + context;            
              div = "<div class=\"unselected-item\" id=\"divSuggestion_" + i + "\" onmouseover=\"document.getElementById('ctl00_ctlSearchPanel_txtSearch').setAttribute('onblur', '');this.className='selected-item'\" onmouseout=\"this.className='unselected-item'\"><a onkeydown=\"checkArrows(this, event)\" id=\"aSuggestion_" + i + "\" href=\"" + url + "\">" + message + "</a></div>";
              html += div;
              suggestionCount ++;
            } 
          }
          s =  document.getElementById("divSearchSuggestions");
          s.innerHTML = html;
          s.style.display = "block";
        }       
      }
      else
      {        
        s =  document.getElementById("divSearchSuggestions");
        s.style.display = "none";
      }
    }
    else
    {
    //alert("Problem retrieving XML data");
    }
  }
}
function loadXMLString(txt) 
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(txt);
  return(xmlDoc); 
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(txt,"text/xml");
    return(xmlDoc);
    }
  catch(e) {}
  }
return(null);
}

function HideSuggestions()
{
  window.setTimeout("DoHide()", 300);
}

function DoHide()
{
  var s = document.getElementById("divSearchSuggestions");
  if (s) s.style.display = 'none';
}


function checkArrows (field, evt) {

if (document.getElementById("divSearchSuggestions").style.display == 'block')
{
  var keyCode = 
    document.layers ? evt.which :
    document.all ? event.keyCode :
    document.getElementById ? evt.keyCode : 0;
    
  var r = '';


  if (keyCode == 40)
  {
  //down arrow
    if (selectedSuggestionIndex != -1)
    {
      document.getElementById('divSuggestion_' + selectedSuggestionIndex).className = 'unselected-item';
      // document.getElementById('aSuggestion_' + selectedSuggestionIndex).style.color = '';
     
    }
    if (selectedSuggestionIndex == suggestionCount-1)
    {

      selectedSuggestionIndex = 0;
    }    
    else
    {
 
      selectedSuggestionIndex++;
    }
    document.getElementById('divSuggestion_' + selectedSuggestionIndex).className = 'selected-item';
    // document.getElementById('aSuggestion_' + selectedSuggestionIndex).style.color = '#FFF';
    document.getElementById('ctl00_ctlSearchPanel_hdnDestinationURL').value = document.getElementById('aSuggestion_' + selectedSuggestionIndex).getAttribute('href');
   
    arrowPressed = true;
  }
  if (keyCode == 38)
  {
  //up arrow
 
      if (selectedSuggestionIndex != -1)
    {
      document.getElementById('divSuggestion_' + selectedSuggestionIndex).className = 'unselected-item';
      // document.getElementById('aSuggestion_' + selectedSuggestionIndex).style.color = '';
      
    }
    else
    {
    selectedSuggestionIndex = suggestionCount;
    }    
    
 
     selectedSuggestionIndex--;
    
    if (selectedSuggestionIndex == -1) selectedSuggestionIndex = suggestionCount-1;
    
    document.getElementById('divSuggestion_' + selectedSuggestionIndex).className = 'selected-item';
    // document.getElementById('aSuggestion_' + selectedSuggestionIndex).style.color = '#FFF'; 
    document.getElementById('ctl00_ctlSearchPanel_hdnDestinationURL').value = document.getElementById('aSuggestion_' + selectedSuggestionIndex).getAttribute('href');  
    
  arrowPressed = true;
  }
  else if (keyCode == 27)
  {
    HideSuggestions();
    arrowPressed = true;
    }
    }
 
 
}


