var searchfield = document.getElementById("searchf");
var sugbox = document.getElementById("searchsuggestions");
var queries = new Array();
var suggestions = new Array();
var searchValue;
var hoveredSuggestion =- 1;
var cookieQueries = new Array();
var isKonqueror = (navigator.vendor == "KDE");
var isIE6 = ((window.ActiveXObject &&!window.XMLHttpRequest) ? true : false);
var adHiders = [false, false, false, false];
var _nameidx, _lastbold;
function realOffset(B, A) {
   var C = 0;
   while(B) {
      C += B[A];
      B = B.offsetParent}
   return C}
if(!Array.indexOf) {
   Array.prototype.indexOf = function(B) {
      for(var A = 0; A < this.length; A++) {
         if(this[A] === B) {
            return A}
         }
      return - 1}
   }

function buildSearch(E) {
   

   queries = cookieQueries.concat(E);
   searchfield.setAttribute("autocomplete", "off");
   searchfield.onkeydown = function(F) {
      try {
         searchKeyDown(event.keyCode)}
      catch(G) {
         searchKeyDown(F.keyCode)}
      };
   searchfield.onkeyup = function(F) {
      try {
         searchKeyUp(event.keyCode)}
      catch(G) {
         searchKeyUp(F.keyCode)}
      };
   searchfield.onblur = function() {
	   if(searchfield.value=='') {
			searchfield.value = 'Search';
	   }
      setTimeout(hideSugbox, 250)}
   }
function hoverSuggestion(A) {
   for(var B = 0; B < suggestions.length; B++) {
      sugbox.getElementsByTagName("a")[B].className = ""}
   if(A !=- 1) {
      sugbox.getElementsByTagName("a")[A].className = "hovered";
      hoveredSuggestion = A}
   }
function searchKeyDown(A) {

   if(sugbox.style.display == "block") {
      if(A != 38 && A != 40) {
         hoveredSuggestion =- 1}
      if(A == 38 && hoveredSuggestion !=- 1) {
         hoveredSuggestion--;
         hoverSuggestion(hoveredSuggestion);
         searchfield.value = stripHTML(suggestions[hoveredSuggestion])}
      if(A == 40 && hoveredSuggestion < suggestions.length - 1) {
         hoveredSuggestion++;
         hoverSuggestion(hoveredSuggestion);
         searchfield.value = stripHTML(suggestions[hoveredSuggestion])}
      if(A == 38 && hoveredSuggestion ==- 1) {
         searchfield.value = searchValue}
      }
   }
function searchKeyUp(A) {
   if(A != 38 && A != 40) {
      searchValue = searchfield.value}
   if(searchfield.value != "" && A != 13 && A != 27 && A != 38 && A != 40) {
      getSuggestions();}
   if((searchfield.value == "" || A == 27) && sugbox.style.display == "block") {
      hideSugbox()}
   }
buildSearch(Array());
function getSuggestions() {
	
    if(searchfield.value.length==2) {
		updateSearchSuggest();
	} else {
		giveSuggestions();
	}
	
}
function stripHTML(oldString) {
   oldString = '<a style="width:' + (searchfield.offsetWidth - 6) + 'px;" onmouseover="hoverSuggestion(' + 2 + ')"' + oldString;
   var newString = "";
   var inTag = false;
   for(var i = 0; i < oldString.length; i++) {
   
        if(oldString.charAt(i) == '<') inTag = true;
        if(oldString.charAt(i) == '>') {
              if(oldString.charAt(i+1)=="<")
              {
              		//dont do anything
	}
	else
	{
		inTag = false;
		i++;
	}
        }
   
        if(!inTag) newString += oldString.charAt(i);

   }

   return newString;
}
function giveSuggestions() {
   suggestions = new Array();
   for(var A = 0; A < queries.length && suggestions.length < 25; A++) {
      if(queries[A].indexOf(searchfield.value.toLowerCase()) == 0) {
         suggestions.push(queries[A])}
      }
   for(var A = 0; A < queries.length && suggestions.length < 25; A++) {
      if(queries[A].indexOf(searchfield.value.toLowerCase()) > 0) {
         suggestions.push(queries[A])}
      }
   if(suggestions.length == 0) {
      hideSugbox()}
   else {
      showSugbox()}
   sugbox.innerHTML = "";
   for(var A = 0; A < suggestions.length; A++) {
      sugbox.innerHTML += '<a style="width:' + (searchfield.offsetWidth - 6) + 'px;" onmouseover="hoverSuggestion(' + A + ')"' + suggestions[A]}
   }
function showSugbox() {
   sugbox.style.top = (realOffset(searchfield, "offsetTop") + searchfield.offsetHeight - 1) + "px";
   sugbox.style.left = realOffset(searchfield, "offsetLeft") + "px";
   sugbox.style.width = (searchfield.offsetWidth - 2) + "px";
   adHiders[0] = true;
   sugbox.style.display = "block"}
function hideSugbox() {
   sugbox.style.display = "none";
   adHiders[0] = false;
   };

function updateSearchSuggest(cnt) {
		with (new Ajax()) {
			url="http://next-episode.net/search-suggest/search-suggest.inc.php";
			params = "s="+searchfield.value;
			onSuccess=doUpdate;
			doRequest(); 
		}
	}
	function doUpdate (txt, xml) {
		buildSearch(txt.split(','));
	    giveSuggestions();
	}
