//copyright @grasbauer 
function getItems(comboInput)
  {
    var listbox    = $(comboInput).siblings('.searchlistbox').hide();
    if(comboInput.value.length > 0)
    {
      jQuery.ajax
      ({
        'url' :    'cmsajaxsearch',
        'data':    'query='+encodeURIComponent(comboInput.value)+'&matches=5',
        'success': function(msg) { displayList(msg, listbox); }  
      });
    };
  }

  function displayList(msg, listbox)
  {
    if(msg.length > 0)
    {
      var items = msg.split(',');
      var htm = '<ul class="query_ul">';
      for(var k in items)
        htm += '<li  onkeyup="checkkey(this)"  onclick="toinput(this,true)">'+items[k]+'<\/li>';
      htm += '<\/ul>';
      listbox.html(htm).show();
    }

  }
  var spos = 0;
  function keydwn(t)
  {childs = $(".query_ul>li").size() 
   if (spos >= childs ) {spos=0;   highlight(childs-1,0)}
   highlight(spos-1,0)
   toinput($(".query_ul>li:eq("+(spos)+")"),false)
   highlight(spos,1)
   spos++
  }

  function keyuup(t)
  {childs = $(".query_ul>li").size() 
   spos--
   if (spos == 0 ) {highlight(spos,0);   spos=childs; highlight(childs-1,1);return }
   highlight(spos-1,1)
   toinput($(".query_ul>li:eq("+(spos-1)+")"),false)
   highlight(spos,0)
  }
  
  function highlight(itemnumber,onoff)
  {
  off = "white"
  on = "lightgray"
  color = onoff?on:off
  $(".query_ul>li:eq("+(itemnumber)+")").css('background',color) 
  }

  function toinput(listItem,hide)
  {
    $(listItem).parents('.searchlistbox').siblings('.query').val($(listItem).text());
    if(hide) {$(listItem).parents('.searchlistbox').hide(); $(listItem).parents('form').submit() }
  }


$(document).ready(function() {
  $("#query_input").keyup(function(e){
    switch(e.keyCode)
	  {
	   case 38:keyuup(this);break;  //up
	   case 40:keydwn(this);break; //40 down
       default: getItems(this);
	  }
     });
});

