function suggestEngine(node,domain,nodeid,url,id,menu,file)
{
  node.setAttribute('autocomplete','off');
  var e = (e)?e:((window.event)?window.event:null);
  var target = (e && e.srcElement)?e.srcElement:((e)?e.target:null);
  
  this.domain = domain;  
  this.ajax = null;
  this.node = node;
  this.node.owner = this;
    
  this.getTopPos = function(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
	  };
	  return returnValue;
	};
	this.getLeftPos = function(inputObj)
	{
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
	  };
	  return returnValue;
	};
	
  this.ajax = createAjaxObject();
  
  this.getResponse = function(owner,xmlResponse)
  {
    var xmlDoc = xmlResponse.documentElement;
    var result = xmlDoc.getElementsByTagName('item');
    var len = result.length;
    
    owner.popup.innerHTML = '';
    
    var list = document.createElement('div');
    list.className = 'suggest-list';
    
    for(var i=0;i<len;i++)
    {
      var a_name = result[i].childNodes[0].firstChild.data;
      var url_a_name = result[i].childNodes[2].firstChild.data;
      
      var div = document.createElement('div');
    
      div.innerHTML = '<a href="'+url_a_name+'" onclick="document.location=\''+url_a_name+'\'">'+a_name+'</a>';
      
      list.appendChild(div);
    };
    
    
    owner.popup.appendChild(list);
    
    var close = document.createElement('div');
        closebtn = document.createElement('span');
        closebtn.innerHTML = ' > Zamknij < ';
        close.className = 'suggest-close';
        close.appendChild(closebtn);
        owner.popup.appendChild(close);
    
  };
  this.dispose = function(e)
  {
    var e = (e)?e:((window.event)?window.event:null);
    var target = (e && e.srcElement)?e.srcElement:((e)?e.target:null);
     
    var owner = document.getElementById(nodeid+'-popup').owner;
    if (!owner) owner = this;
    
    if (target != owner.node)
    {
     owner.popup.style.display = 'none'; 
     document.onclick = owner.oldDocClk;
     if (document.onclick != undefined && document.onclick != owner.dispose) document.onclick(e);
    }
    
            
     
     if (e != null)
     {
      e.cancelBubble = true;
	    if (e.stopPropagation) e.stopPropagation();
     }
    
      
    return true;  
  };
  this.sendAjax = function(e)
  {
   
   var e = (e)?e:((window.event)?window.event:null);
   var target = (e && e.srcElement)?e.srcElement:((e)?e.target:null);
    
   var owner = this;
   if (this.owner) owner = this.owner;
   
   
   if (document.onclick && document.onclick != owner.dispose) document.onclick(e);
   
   owner.oldDocClk = document.onclick;
   
   document.onclick = owner.dispose;
   
   
   if (!document.getElementById(nodeid+'-popup'))
	 {
	  owner.top = owner.getTopPos(node);
	  owner.left = owner.getLeftPos(node);
	
	  owner.popup = document.createElement('div');
	  owner.popup.className = 'suggest-popup';
	  owner.popup.id = nodeid+'-popup';
	
	  owner.popup.style.position = 'absolute';
	  owner.popup.style.zIndex = 10000;
	  owner.popup.style.top = (owner.top + node.offsetHeight) + 'px';
	  owner.popup.style.left = owner.left + 'px';
	  owner.popup.owner = owner;
    document.body.appendChild(owner.popup);
   }; 
   
   owner.popup.style.display = 'block';
   
   if (owner.ajax)
   {
     var today = new Date();
     owner.getSuggest = function(xmlResponse){owner.getResponse(owner,xmlResponse)};
     
     if (owner.query == '') node.value = '';
     
     if(document.getElementById('slID')) var sl = document.getElementById('slID').value;//node.getAttribute('sl');
     
          
     var lastQuery = owner.query;
     var domain = document.domain;
     
                              
     owner.query = "http://"+domain+"/ajax/suggest.php?filtr="+node.value+"&sl="+sl+"&url="+url+"&id="+id+"&menu="+menu; 
     owner.query = "http://"+domain+"/ajax/suggest/"+file+".php?filtr="+node.value+"&sl="+sl+"&url="+url+"&id="+id+"&menu="+menu;      
     
     if (lastQuery != owner.query)
     {
       owner.popup.innerHTML = 'Wyszukiwanie...';
       sendQuery(owner.ajax,'GET',owner.query+"&t="+today.getTime(),owner.getSuggest);
     } 
      
   };
   
    
    if (e != null)
    {
      e.cancelBubble = true;
	    if (e.stopPropagation) e.stopPropagation();
    }
   
   
   return false;
  };
  
  this.query = '';
  this.node.onkeyup = this.sendAjax;
  this.node.onfocus = this.sendAjax;
}
