var div_search = document.getElementById('div_search');	
var isResultFound = false;
var oldValue = '';
var logDelay = 2;
var resultDelay = 1;
var logTimeOut=null;
var resultTimeOut=null;
//addEvent(window, "load", registerListeners);



function registerListeners(){
 //addEvent(window, "click", hideResult);
 addEvent(document.getElementById('q'), "keyup", setTyping);
 addEvent(document.getElementById('q'), "keypress", checkForSave);
 addEvent(document.getElementById('q'), "blur", setLogData);
	if(get_qs !=""){
		document.getElementById('q').value = get_qs;
		setTyping();
	}
}

function checkForSave(e){
 if (e.which == 13){
  setLogDataForce();
 }
}

function setTyping(){
/* window.clearTimeout(logTimeOut);
 logTimeOut = null;
 logTimeOut = window.setTimeout('setLogData()',logDelay*500);*/
 window.clearTimeout(resultTimeOut);
 resultTimeOut = null;
 resultTimeOut = window.setTimeout('getResult()',resultDelay*250);
}

function setLogData(){
 window.clearTimeout(logTimeOut);
 logTimeOut = null;
 var searchWhat = document.getElementById('q').value;
 var url = href + lang + '/quicksearch/saveQSLog/q.'+searchWhat + "/";
 var Request = new Ajax.Request ( 
         url, { method : 'get', asynchronous : true }
      );
}
function setLogDataForce(){
 window.clearTimeout(logTimeOut);
 logTimeOut = null;
 var searchWhat = document.getElementById('q').value;
 var url = href + lang + '/quicksearch/saveQSLog/q.'+searchWhat + "/";
 var Request = new Ajax.Request ( 
         url, { method : 'get', asynchronous : false }
      );
}
function addEvent(elm, evType, fn, useCapture){
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  }
}

function removeEvent(elm, evType, fn, useCapture){
  if (elm.removeEventListener){
    elm.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.detachEvent){
    var r = elm.detachEvent("on"+evType, fn);
    return r;
  }
}

function alertSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  this.wWidth = myWidth;
  this.wHeight = myHeight;

  return this;

}

var fadingDivSearch;

function showResult(){
fadingDivSearch = document.getElementById('fadingDivSearch');

var windowHeight = Math.max(document.documentElement.clientHeight, getDocHeight(document));
	fadingDivSearch.style.height = windowHeight + "px";


document.getElementById('div_search_body').style.left = parseInt(getAbsolutePosition(document.getElementById('body_inner')).x) + 'px';
document.getElementById('div_search_body').style.top = parseInt(getAbsolutePosition(document.getElementById('body_inner')).y) + 'px';
document.getElementById('div_search_body').style.visibility='visible';
fadingDivSearch.style.display = "block";
 

if(document.getElementsByTagName("object")!=null) {
  for(i=0; (flash = document.getElementsByTagName("object")[i]); i++) {
     flash.style.visibility = "hidden";
  }
}

}
function hideResult(){
 document.getElementById('div_search_body').style.visibility='hidden';
fadingDivSearch.style.display = "none";


if(document.getElementsByTagName("object")!=null) {
  for(i=0; (flash = document.getElementsByTagName("object")[i]); i++) {
     flash.style.visibility = "visible";
  }
}

}

function getResult(){
 window.clearTimeout(resultTimeOut);
 resultTimeOut = null;
 var searchWhat = document.getElementById('q').value;
 var url = href + lang + '/quicksearch/q.'+searchWhat + "/";
 if (!searchWhat || oldValue==searchWhat)
  return;
 oldValue=searchWhat;
 var Request = new Ajax.Updater (
         'div_search',
         url, { method : 'get', asynchronous : true }
      );
 showResult();
}

