//Gets the browser specific XmlHttpRequest Object

var searchReq=getXmlHttpRequestObject();
var SearchIndex = 0;
var SearchCount = 0;
var results = '';
var load = true;
var first_search='';

function KeyCheck(e)
{
  var KeyID = (window.event) ? event.keyCode : e.keyCode;
  load = true;

  if (KeyID==8)
  {
    load=true;
    SearchIndex = 0;
  }

  if (SearchCount > 0)
  {

    if (KeyID==40)
    {
      load = false;
      SearchIndex ++;
      if (SearchIndex > SearchCount)
      {
        SearchIndex = 1;
      }

      if (results != '')
      {
        show_results(results, true);
      }
    }

    if (KeyID==38){
      load = false;
      SearchIndex --;
      if (SearchIndex < 0)
        SearchIndex = 0;

      if (SearchIndex==0){
        var search = document.getElementById('search');
        search.value=first_search;
      }
      if (results != '')
      {
        show_results(results, true);
      }
    }

  }

}

function getXmlHttpRequestObject()
{
  var xmlhttp=false;
  /*@cc_on @*/
  /*@if (@_jscript_version >= 5)
  // JScript gives us Conditional compilation, we can cope with old IE versions.
  // and security blocked creation of the objects.
   try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
     xmlhttp = false;
    }
   }
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  	try {
  		xmlhttp = new XMLHttpRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }
  if (!xmlhttp && window.createRequest) {
  	try {
  		xmlhttp = window.createRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }

  return xmlhttp;

}

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest()
{
  document.onkeyup=KeyCheck;
  //searchReq.onreadystatechange = handleSearchSuggest;


  if (load==true)
  {
    first_search = document.getElementById('search').value;
    var str = escape(document.getElementById('search').value);

    if (str=='')
    {
      var ss = document.getElementById('search_suggest');
      ss.innerHTML = '';
      ss.style.display = 'none';
      document.onkeyup=null;
      SearchIndex = 0;
    }

    searchReq.open('GET', '/searchsuggest.php?search=' + str, true);
    searchReq.onreadystatechange = handleSearchSuggest;

    searchReq.send(null);
  }

}



//Called when the AJAX response is returned.
function handleSearchSuggest()
{
  var str = '';
 	if (searchReq.readyState == 4 && searchReq.status == 200)
  {
    str = '';
    if (searchReq.responseText != '')
    {
      str = searchReq.responseText.split("\n");
    }

    results = str;
    //if (str != ''){
      show_results(results, false);
    //}

  }// else{
   // show_results(results, false);
  //}

}
function clearSearch()
{
  var ss = document.getElementById('search_suggest');
  ss.innerHTML = '';
  ss.style.display = 'none';
}

function show_results(str, arrow)
{
  var ss = document.getElementById('search_suggest');
  ss.innerHTML = '';
  ss.style.display = '';

  if (str=='')
  {
    ss.innerHTML = '';
    ss.style.display='none';
    SearchIndex=0;
  }

  SearchCount = 0;

  for(i=0; i < str.length - 1; i++)
  {
	//Build our element string.  This is cleaner using the DOM, but
	//IE doesn't support dynamically added attributes.
  if (SearchIndex == i + 1)
  {
  document.getElementById('search').value = str[i];
  var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
    suggest += 'onmouseout="javascript:suggestOut(this);" ';
    suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
    suggest += 'class="suggest_link_over">' + str[i] + '</div>';
    //if (arrow==true)

  }else{
    var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
	  suggest += 'onmouseout="javascript:suggestOut(this);" ';
	  suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
	  suggest += 'class="suggest_link">' + str[i] + '</div>';
  }

	ss.innerHTML += suggest;
  SearchCount ++;
  }
}

//Mouse over function
function suggestOver(div_value)
{
	div_value.className = 'suggest_link_over';
}

//Mouse out function
function suggestOut(div_value)
{
	div_value.className = 'suggest_link';
}


//Click function
function setSearch(v)
{
	document.getElementById('search').value = v;
	document.getElementById('search_suggest').innerHTML = '';
  document.getElementById('search_suggest').style.display='none';

  window.location = "http://www.rlights.com/s=" + v;

}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
