function suggestEngine(node,nodeid,name,type,secId,catId,link,menutype){

 node.setAttribute('autocomplete','off');
 
  this.node = node;
  this.node.owner = this;
  this.ajax = createAjaxObject();	
  
  this.getResponse = function(owner,xmlResponse){
    var xmlDoc = xmlResponse.documentElement;
    var result = xmlDoc.getElementsByTagName('item');
    var len = result.length;
  
  
    owner.content.innerHTML = '';
    
   for(var i=0;i<len;i++){
      var a_name = result[i].childNodes[0].firstChild.data;
      var url_a_name = result[i].childNodes[1].firstChild.data;
      
      var div = document.createElement('div');
    
      div.innerHTML = '<a href="'+url_a_name+'" onclick="document.location=\''+url_a_name+'\'">'+a_name+'</a>';
      
      owner.content.appendChild(div);
    };
    
    
  
  
  };
  
  
  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.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;
			  
			  owner.title = document.createElement('div');
			  owner.title.className = 'poupName';
			  owner.title.innerHTML = name;
			  
			  owner.content = document.createElement('div');
			  owner.content.className = 'poupContent';
			  owner.content.id = 'poupContent';
			  
			  
			  owner.popup.appendChild(owner.title);
			  owner.popup.appendChild(owner.content);
			  
		    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 = '';
     
       
     var lastQuery = owner.query;
     var domain = document.domain;
     
                              
     owner.query = "http://"+domain+"/ajax/getSuggest.php?type="+type+"&s="+secId+"&c="+catId+"&l="+link+"&m="+menutype+"&f="+node.value; 
     
    
          
     
     if (lastQuery != owner.query)
     {
       owner.content.innerHTML = 'Wyszukiwanie...';
       sendQuery(owner.ajax,'GET',owner.query+"&t="+today.getTime(),owner.getSuggest);
     } 
      
   };	
  		
  		
  		
  	if (e != null){
      e.cancelBubble = true;
	    if (e.stopPropagation) e.stopPropagation();
    }
   
  
  };


  this.query = '';
  this.node.onkeyup = this.sendAjax;
  this.node.onfocus = this.sendAjax;


}
