var xmlhttp;
var i = 0;

//*****************************************************************************************

function showHint(str, e) {
if (!e) {var e = window.event;}
if (e.keyCode) {iKeyCode = e.keyCode;}
else if (e.which){ iKeyCode = e.which;}
if (iKeyCode < 8 || (iKeyCode < 32 && iKeyCode >= 9) || (iKeyCode >= 33 && iKeyCode <= 46) || (iKeyCode >= 112 && iKeyCode <= 123))
{
  if (iKeyCode == 40)
    {
    downfunction();
    }
  else if (iKeyCode == 38)
    {
    upfunction();
    }
}
else
{
showHint1(str)
}
}

//*****************************************************************************************

function showHint1(str)
{
var div = document.getElementById("txtHint");
div.mouseIsntOver = true;
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  document.getElementById("txtHint").style.display="none";
  return;
  }
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support XMLHTTP!");
  return;
  }
var url="http://www.rockwaterair.co.uk/script/hint.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
i = "0";
}

//*******************************************************************************************

function stateChanged()
{
if (xmlhttp.readyState==4)
  {
  var respText = xmlhttp.responseText.split("~");
  document.getElementById("txtHint").innerHTML=respText[0];
  document.getElementById("numberofoptions").value=respText[1];
  if(respText[1] > 0)
    {
    document.getElementById("txtHint").style.display="block";
    }
  else
    {
    document.getElementById("txtHint").style.display="none";
    }
  }
}

//********************************************************************************************

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

//******************************hide the suggestions**********************************************

function hide() {
var div = document.getElementById("txtHint");
if (div.mouseIsntOver){
div.style.display="none";
}
}

//*******************************Highlight the option*********************************************

function highlight(str1) {
str1.className="highlighted";
var div = document.getElementById("txtHint");
div.mouseIsntOver = false;
}

//*******************************unhighlight the option********************************************

function unhighlight(str1) {
str1.className="unhighlighted";
var div = document.getElementById("txtHint");
div.mouseIsntOver = true;
}

//********************************select clicked option and submit the form************************

function selsub(str2) {
document.getElementById("search").value=str2.innerHTML;
document.searchform.submit();
}

//********************************select highlighted option***************************************

function select(str2) {
document.getElementById("search").value=str2.innerHTML;
}


//*******************************when down key is pressed scroll down******************************

function downfunction() {
var elementTxthint=document.getElementById("txtHint");
var elementSearch=document.getElementById("search");
var elementNumberofoptions=document.getElementById("numberofoptions");
var elementOriginalvalue=document.getElementById("originalvalue");
if(elementNumberofoptions.value > 0)
  {
  if(i == 0)
    {
    elementOriginalvalue.value=elementSearch.value;
    }
  if(elementTxthint.style.display="block")
    {
    if(i < elementNumberofoptions.value)
      {
      if(i > 0)
        {
        document.getElementById("option"+i).className="unhighlighted";
        }
      i++;
      document.getElementById("option"+i).className="highlighted";
      elementSearch.value=document.getElementById("option"+i).innerHTML;
      }
    else if(i == elementNumberofoptions.value)
      {
      document.getElementById("option"+i).className="unhighlighted";
      elementSearch.value=elementOriginalvalue.value;
      i = 0 ;
      }
    }
  else if(elementTxthint.style.display="none")
    {
    elementTxthint.style.display="block";
    }
  }
}

//*****************************when up key is pressed scroll up*************************************


function upfunction() {
var elementTxthint=document.getElementById("txtHint");
var elementSearch=document.getElementById("search");
var elementNumberofoptions=document.getElementById("numberofoptions");
var elementOriginalvalue=document.getElementById("originalvalue");
if(elementNumberofoptions.value > 0)
  {
  if(elementTxthint.style.display="block")
    {
    if(i > 1)
      {
      document.getElementById("option"+i).className="unhighlighted";
      i--;
      document.getElementById("option"+i).className="highlighted";
      elementSearch.value=document.getElementById("option"+i).innerHTML;
      }
    else if(i == 1)
      {
      document.getElementById("option"+i).className="unhighlighted";
      elementSearch.value=elementOriginalvalue.value;
      i = 0 ;
      }
    else if(i == 0)
      {
      i = elementNumberofoptions.value;
      document.getElementById("option"+i).className="highlighted";
      elementSearch.value=document.getElementById("option"+i).innerHTML;
      }
    }
  else
    {
    elementTxthint.style.display="block"
    }
  }
}




