var activeObject = '';
var prevActiveObject = '';
var activeIndex = 0;
var fieldId = '';
var blocked = 1;
var is_ie="unk";
detectBrowser();

function pause(millis) {

  var date = new Date();
  var curDate = null;
  do { curDate = new Date(); } while(curDate-date < millis);

}

function detectBrowser(){
  if(navigator.appName == "Microsoft Internet Explorer")
    is_ie = "yes";
  else if (navigator.appVersion.indexOf('Chrome')>0)
    is_ie = "yes";
  else if (navigator.appVersion.indexOf('Safari')>0)
    is_ie = "yes";
  else if (navigator.appVersion.indexOf('Konqueror')>0)
    is_ie = "yes";
  else if (navigator.appVersion.indexOf('Firefox')>0)
    is_ie = "no";
  else
    is_ie = "no";

}

function GetXmlHttpObject() {

  var xmlHttp = null;
  try {
    xmlHttp = new XMLHttpRequest();
  }catch (e) {
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;

}

function stateChanged() {

    if (xmlHttp.readyState==4){
      document.getElementById(fieldId+"Tip").style.display = '';
      document.getElementById(fieldId+"Tip").innerHTML = xmlHttp.responseText;
      checkField();
    }

}

function displayTip(fieldName) {

  if ( blocked == 0 ) {
    fieldContent = document.getElementById(fieldName).value;
    fieldId = fieldName;
    xmlHttp = GetXmlHttpObject();
    if(xmlHttp == null) {
        alert ("AJAX is not supported in Your browser. Use one of: Opera, Firefox, Internet Explorer.");
        return;
    }
    var url = "/ajaxTip.php";
    var params =  "fieldName="+fieldId+"&fieldContent="+fieldContent+"&is_ie="+is_ie;
    xmlHttp.onreadystatechange = stateChanged;
    xmlHttp.open("GET", url+'?'+params, true);
    xmlHttp.send(null);
  }

}

function handleButtons(e) {

   var newActiveIndex = activeIndex + 1;

   if( e != undefined ) var keyPressed = e.keyCode ? e.keyCode : e.charCode;
   else var keyPressed = window.event.keyCode;

   if( keyPressed==38 ) {

     if( activeIndex > 1 ){
       activeIndex = activeIndex-1;
       activeObject = 'pos_'+fieldId+'_'+activeIndex;
       checkActive('key');
       blocked = 1;
       return false;
     } else {
       disableTip();
       return false;
     }

   } else if( keyPressed==40 ) {

     if( document.getElementById('pos_'+fieldId+'_'+newActiveIndex) != undefined ) activeIndex = activeIndex+1;
     else activeIndex = 1;
     activeObject = 'pos_'+fieldId+'_'+activeIndex;
     checkActive('key');
     blocked = 1;
     return false;

   } else if ( keyPressed==13 && blocked==1 ) {
      
      document.getElementById('search').submit();
      
   } else if ( keyPressed==13 ) {

     activeObject = 'pos_'+fieldId+'_1';
     checkActive('key');
     disableTip();
     return false;
     
   } else if ( keyPressed==27 ) {

	   disableTip();
	   return false;
	  
   } else {

     blocked = 0;
     resetList();

   }

}

function checkField(){
  if(document.getElementById(fieldId).value.length>=2 && xmlHttp.responseText.length<2){
    document.getElementById(fieldId).style.backgroundColor='#f00';      
  }else{
    document.getElementById(fieldId).style.backgroundColor='#fff';
  }
}

function checkActive(source){

  if( source=='mouse' ) document.getElementById(fieldId).focus();

  if( prevActiveObject != '' && document.getElementById(prevActiveObject) != undefined ) document.getElementById(prevActiveObject).style.background='#fff';
  if( activeObject != '' && document.getElementById(activeObject) != undefined ) {

    document.getElementById(activeObject).style.background='#bbdeff';
    if( source=='key' ) document.getElementById(fieldId).value = document.getElementById(activeObject).title;
    prevActiveObject = activeObject;

  }

}

function resetList() {

  activeIndex = 0;
  activeObject = '';
  checkActive();

}

function disableTip(source) {
  
  if( source=='mouse' ) document.getElementById(fieldId).value = document.getElementById(activeObject).title;
  resetList();
  if( document.getElementById("list_"+fieldId) != undefined ) document.getElementById("list_"+fieldId).style.display="none";
  document.getElementById(fieldId+"Tip").style.display = 'none';
  if( source=='mouse' ) document.getElementById(fieldId).focus();
  blocked = 1;
  return false;

}
