var currentRes=0;
var currentP=-1;
var cansub=false;
var inProcess=false;
var needNew=false;
var newText,newEvt;
var newsearch=false;
function mark_item(id){
 document.getElementById('it_'+currentP+'_'+currentRes).style.background='#FFFFFF';
 document.getElementById('it_'+currentP+'_'+currentRes).style.color='#000';
 document.getElementById('it_'+currentP+'_'+id).style.background='#8CCEFE';
 document.getElementById('it_'+currentP+'_'+id).style.color='#fff';
 currentRes=id;
 document.getElementById('comp_'+currentP).focus();
}

function find_product(text,evt){
 switch (evt) {
  case 37: //left arrow
  case 39: //right arrow
  case 33: //page up
  case 34: //page down
  case 36: //home
  case 35: //end
//  case 13: //enter
  case 9: //tab
  case 27: //esc
  case 16: //shift
  case 17: //ctrl
  case 18: //alt
  case 20: //caps lock
//  case 38: //up arrow
//  case 40: //down arrow
  return;
  break;
 }
 if (text==''||text.length<3){
  inProcess=false;
  needNew=false;
  newText='';
  newEvt=false;
  document.getElementById('sel_'+currentP).innerHTML='';
  document.getElementById('sel_'+currentP).style.visibility='hidden';
  return;
 }
 if (inProcess&&!newsearch){
  if (evt==38||evt==40||evt==13) return;
  needNew=true;
  newEvt=evt;
  newText=text;
  return;
 }
 else if (newsearch){
  needNew=false;
  newText='';
  newEvt=false;
 }

 var l=document.getElementById('sel_'+currentP).childNodes.length;
 if (evt==38){
  var currentResT=currentRes-1;
  if (currentResT>=0) mark_item(currentResT);
  if (currentRes<(l-3)&&currentRes>0) document.getElementById('sel_'+currentP).scrollTop=document.getElementById('it_'+currentP+'_'+currentRes).offsetTop-23;
  return;
 }
 if (evt==40){
  var currentResT=currentRes+1;
  if (currentResT<l) mark_item(currentResT);  
  if (currentRes<(l-1)&&currentRes>2) document.getElementById('sel_'+currentP).scrollTop=document.getElementById('it_'+currentP+'_'+currentRes).offsetTop-46;
  return;
 }
 if (evt==13){
  //sel_product(document.getElementById('it_'+currentP+'_'+currentRes));
  return;
 }
 inProcess=true;
 x_find_product(text,currentP,find_product_cb);
}


function find_product_cb(result){
 document.getElementById('sel_'+currentP).innerHTML=result;
 document.getElementById('sel_'+currentP).style.visibility=(result=='')?'hidden':'';
 currentRes=0;
 document.onclick=function (e) {
  var el=(typeof event!=='undefined')? event.srcElement : e.target;
  if (el.parentNode && el.parentNode.id!='sel_'+currentP && el.parentNode.localName!='FORM' && document.getElementById('sel_'+currentP)){
   document.getElementById('sel_'+currentP).innerHTML='';
   document.getElementById('sel_'+currentP).style.visibility='hidden';
  }
 };
// alert('a'+newText);
// alert('a'+newEvt);
 
 if (needNew){
  newsearch=true;
  find_product(newText,newEvt);
 }
 else{
  newsearch=false;
  inProcess=false;
//  alert('z');
 }
}


