  var response = '';
  var update = '';
  var ro = '';
  var currValue = '';
  var currId = null;
  var currSize = 0;
  var currMoved = false;
  
function str_replace(search, replace, subject) {
	return subject.split(search).join(replace);
}  
  
  function moveCursor (e) {
  	var key = (!e || !e.which) ? event.keyCode : e.which;
  	
  	//Вниз
  	if (key == 40) {
  		currMoved = true;
  		if (currId != currSize) {  
  			if (currId == null) currId = -1;
  			check(currId + 1);
  			document.getElementById('gname').value = document.getElementById('sel' + currId).innerHTML;  			
  		} else {
  			check(0);  			
  			document.getElementById('gname').value = document.getElementById('sel' + currId).innerHTML;  			
  		}
  	}
  	
  	//Вверх
  	if (key == 38) {
  		currMoved = true;
  		if (currId > 0) {
  			check(currId - 1);
  			document.getElementById('gname').value = document.getElementById('sel' + currId).innerHTML;  			
  		} else {  			
  			check(currSize);
  			document.getElementById('gname').value = document.getElementById('sel' + currId).innerHTML;  			  			
  		}			  		
  	}
  	
  }

  function send(value)  {
  	 if (currValue == value || currMoved) {
  	 	currMoved = false; 
  	 	return;
  	 }
     sndReq(value);
     currValue = value;
     currId = null;
     currMoved = false;
  }

     function createRequestObject()
     {
       var ro;

       if (window.XMLHttpRequest) {  ro = new XMLHttpRequest(); }
       else {
         ro = new ActiveXObject('Msxml2.XMLHTTP');
         if(!ro) { ro = new ActiveXObject('Microsoft.XMLHTTP'); }
       }

       return ro;
     }

     var http = createRequestObject();

     function sndReq(value) {
         http.open('get', '/quick_search.php?search='+encodeURIComponent(value));
         http.onreadystatechange = handleResponse;
         http.send(null);
     }

     function check(id)
     {
     	if (currId != id && currId != null && document.getElementById('sel' + currId) != null) 
     		document.getElementById('sel' + currId).style.background='none';
        document.getElementById('sel' + id).style.background='#e4e4e4';
        currId = id;
     }


     function input(id)
     {
         document.getElementById('gname').value=id;
        document.getElementById('cont').style.visibility = 'hidden';
     }

     function handleResponse() {
         if(http.readyState == 4){
             var response = http.responseText;
             var update = new Array();
             if(response.indexOf('#' != -1)) {
                 update = response.split('#');
                 //document.getElementById(update[0]).innerHTML = ' '+update[1];
                 size = update.length - 1;
               document.getElementById('cont').clear = '';

               text = "<table width='100%'>";
               for(i = 0; i <= size; i++)
               {
                    text += "<tr><td style='cursor: default;' onClick=\"input('"+str_replace("\"", "\\'\\'", str_replace("'", "\\'", update[i]))+"')\" onMouseover='check(" + i + ")' id='sel"+i+"'>"+update[i]+"</td></tr>";
               }
               text += "</table>";
               
               currSize = size;

               if (size != 0) {
                  document.getElementById('cont').innerHTML = text;
                  document.getElementById('cont').style.visibility = 'visible';
               }
             }
         }
     }

     function get_obj(name)     {
        for(i = 0; i <= document.forms.length - 1; i++){
         for (j = 0; j <= document.forms[i].elements.length -1; j++){
            if (name == document.forms[i].elements[j].name) return document.forms[i].elements[j];
         }
        }
      return false;
     }

     function get_obj_from_name(name) {
      for(i = 0; i <= document.all.length - 1; i++){
         if (name == document.all[i].name) return document.all[i];
      }
      return false;
     }


<!-- This document saved from http://gamestar.ru/search.js -->
