/* ajax search */
var url;
var tm;
var http;

function searchSuggestSearch(input,url,roxenChars) {
  if (input.length > 2) {
	document.getElementById('search-frame').innerHTML = '<div style="text-align:center;line-height:80px;"><img src="/img/loading.gif" width="16" height="16" alt=""/></div>';
	document.getElementById('search-frame').style.visibility='visible';
    http = getHTTPObject();
    http.open("GET", url + escape(input)+'&'+roxenChars, true); 
    http.onreadystatechange = searchSuggestHandleSearch; 
    http.send(null);
  } else {
    clearSearchDiv();
  }
}

function searchSuggestTimedSearch(e,input,url,roxenChars) {
  var keycode;
  if (window.event) keycode = window.event.keyCode;
  else if (e) keycode = e.which;
  if(keycode == 13){
    clearSearchTimeout();
  } else {
    searchSuggestClearSearchTimeout();
    if (input.length > 2) {
	  tm = setTimeout(function() { searchSuggestSearch(input,url,roxenChars) }, 400);
    } else {
      searchSuggestClearSearchDiv();
    } 
  }
}

function searchSuggestHandleSearch() {
  if (http.readyState == 4) {
    /*alert(http.responseText);*/
    /*alert(http.responseText.length);*/
    document.getElementById('search-frame').innerHTML = http.responseText;
    document.getElementById('search-frame').style.visibility='visible';
  }
}
function searchSuggestClearSearch() {
  tm = setTimeout('searchSuggestClearSearchDiv()', 500);
}
function searchSuggestClearSearchTimeout() {
  window.clearTimeout(tm);
}
function searchSuggestClearSearchDiv(input) {
  document.getElementById('search-frame').innerHTML = '';
  document.getElementById('search-frame').style.visibility='hidden';
}

function getHTTPObject() { 
  var xmlhttp; 
  /*@cc_on 
  @if (@_jscript_version >= 5) 
    try { 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
      try { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (E) { 
        xmlhttp = false; 
      } 
    } 
  @else 
  xmlhttp = false; 
  @end @*/  
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
    try { 
      xmlhttp = new XMLHttpRequest(); 
    } catch (e) { 
      xmlhttp = false; 
    } 
  } 
  return xmlhttp; 
} 




