var xmlHttpContent;
var imgLoader = new Image();
imgLoader.src = 'http://www.eurokatalog.pl/assets/images/icon/loader.gif';
var ajax = true;

if (!tabSuggest) {
  var tabSuggest = {};
}

tabSuggest.Key = {
  TAB:     9,
  RETURN: 13,
  ESC:    27,
  UP:     38,
  DOWN:   40,
  RIGHT:  39,
  LEFT:   37
};


var sugestJS = {
_bodyS : null,
_tekst : null,
_sc : null,
_IE : ((navigator.appName == 'Microsoft Internet Explorer')? 1 : 0),
_ieTop : null,
_ieLeft : null,
_posY : null,
_posX : null,
_parentId : null,
_tabAjaxPhp : new Object(),
_element : null,
_selectSC : 0,
_inputFocus : false,
_sendQuery : false,

init : function(){
sugestJS._sc = document.createElement('div');
sugestJS._sc.id = 'sc';
sugestJS._sc.className = 'suggest';
sugestJS._sc.style.display = "none";
sugestJS._bodyS = document.getElementsByTagName('BODY')[0];
sugestJS._bodyS.appendChild(sugestJS._sc);

sugestJS._tabAjaxPhp['coWf'] = 'getWf.php';
sugestJS._tabAjaxPhp['gdzieWf'] = 'getM.php';
sugestJS._tabAjaxPhp['coWp'] = 'getWp.php';
sugestJS._tabAjaxPhp['gdzieWp'] = 'getM.php';
sugestJS._tabAjaxPhp['coWz'] = 'getWz.php';
sugestJS._tabAjaxPhp['gdzieWz'] = 'getM.php';


var coInput = document.getElementById('co');
var gdzieInput = document.getElementById('gdzie');

coInput.onfocus = function(){sugestJS.ustawSuggest(this);};
gdzieInput.onfocus = function(){sugestJS.ustawSuggest(this);};

},
ustawSuggest : function(el){

var parentInputID = el.parentNode.parentNode.id;
if(parentInputID != sugestJS._parentId) {
	if(sugestJS._element != null)sugestJS.removeEvent(sugestJS._element, 'keyup', sugestJS.keyEvent);
	sugestJS._selectSC = 0;
	sugestJS._sc.innerHTML = '';
	sugestJS._inputFocus = false;
	sugestJS._sc.style.display = "none";
}

if(!sugestJS._inputFocus){
//if(sugestJS._IE) {
sugestJS._ieTop = 0;
sugestJS._ieLeft = 0;


sugestJS.getIETop(el);
sugestJS.getIELeft(el);
sugestJS._posY = sugestJS._ieTop+el.offsetHeight;
sugestJS._posX = sugestJS._ieLeft;
//}
//else{
//sugestJS._posY = el.offsetTop+el.offsetHeight;
//sugestJS._posX = el.offsetLeft;
//}

try{

sugestJS._sc.style.top = sugestJS._posY+'px';
sugestJS._sc.style.left =sugestJS. _posX+'px';
}
catch (e){

}

sugestJS._parentId = el.parentNode.parentNode.id;
sugestJS._element = el;

sugestJS.addEvent(el, 'keyup', sugestJS.keyEvent);
sugestJS._inputFocus = true;

sugestJS._tekst = el.value;

if(sugestJS._tekst.length>0) sugestJS.szukajSuggest();
}
return false;

},
szukajSuggest : function(){

sugestJS._tekst = sugestJS._element.value;

if(sugestJS._tekst.length > 0) sugestJS._sc.style.display = "block";
else sugestJS._sc.style.display = "none";

xmlHttpContent = createAjaxObject();
var today = new Date();

var plikPHP = 'http://www.eurokatalog.pl/ajax/'+sugestJS._tabAjaxPhp[sugestJS._parentId];

var paramsPost = "query="+sugestJS._tekst+"&co="+sugestJS._parentId+"&t="+today.getTime();

paramsPost = encodeURI(paramsPost);



if(ajax && sugestJS._tekst.length>0){
ajax = false;
sugestJS._sc.innerHTML = '';
sugestJS._sc.appendChild(imgLoader);
sugestJS.processContent(plikPHP,paramsPost);
}
},
getIETop : function(elem){
/*
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;
	};*/

var returnValue = elem.offsetTop;
	  while((elem = elem.offsetParent) != null){
	  	if(elem.tagName!='HTML')returnValue += elem.offsetTop;
	  };
	 sugestJS._ieTop = returnValue;
	 
/*
if(elem.nodeName == 'BODY') return false;
else{
sugestJS._ieTop += elem.offsetTop;
sugestJS.getIETop(elem.parentNode);
}
*/
},
getIELeft : function(elem){
/*
if(elem.nodeName == 'BODY') return false;
else{
sugestJS._ieLeft += elem.offsetLeft;
sugestJS.getIELeft(elem.parentNode);
}
*/
var returnValue = elem.offsetLeft;
	  while((elem = elem.offsetParent) != null){
	  	if(elem.tagName!='HTML')returnValue += elem.offsetLeft;
	  };
	  
sugestJS._ieLeft = returnValue;


},
addEvent : function(elem,eventS,funkcja){
if(window.addEventListener) elem.addEventListener(eventS,funkcja,false);
else elem.attachEvent('on'+eventS,funkcja,false);  
},
removeEvent : function(elem,eventS,funkcja){
if(window.removeEventListener) elem.removeEventListener(eventS,funkcja,false);
else elem.detachEvent('on'+eventS,funkcja); 
},
stopProp : function(evt){
if (!evt) var evt = window.event;
	evt.cancelBubble = true;
if (evt.stopPropagation) evt.stopPropagation();
return false;
},
keyEvent: function(event) {



	if(event.keyCode == tabSuggest.Key.TAB){
	
	}
    else if (event.keyCode == tabSuggest.Key.DOWN) {
      sugestJS.stopProp(event);
      sugestJS.keyEventDown();
    }
    else if (event.keyCode == tabSuggest.Key.UP) {
      sugestJS.stopProp(event);
      sugestJS.keyEventUp();
    } 
    else if(event.keyCode == tabSuggest.Key.RETURN){
      sugestJS.stopProp(event);
      sugestJS.keyEventReturn();
    }
    else if (event.keyCode == tabSuggest.Key.ESC) {
     	sugestJS.stopProp(event);
      	sugestJS.keyEventEsc();
    }
    else if(event.keyCode == tabSuggest.Key.RIGHT){
      sugestJS.stopProp(event);
      sugestJS.keyEventRight();
    }
    else if(event.keyCode == tabSuggest.Key.LEFT){
      sugestJS.stopProp(event);
      sugestJS.keyEventLeft();
    }
    else{
    	sugestJS.szukajSuggest();
    }
  },
 keyEventDown: function() {
 var childSC = sugestJS._sc.getElementsByTagName('a');
 
 if(sugestJS._selectSC == childSC.length) return false;
 
 var childSelectSC = sugestJS._sc.getElementsByTagName('a')[sugestJS._selectSC];
 
 for(var i=0;i<childSC.length;i++){
 	childSC[i].className = 'item';
 }
 
try{ 
	childSelectSC.className = 'selectItem';
}
catch(e){
	childSelectSC = sugestJS._sc.getElementsByTagName('a')[0];
	childSelectSC.className = 'selectItem';
}

if(sugestJS._parentId == 'coWz'){
sugestJS._element.value = childSelectSC.getElementsByTagName('span')[0].innerHTML;
}else{
sugestJS._element.value = childSelectSC.innerHTML;
}

if(sugestJS._selectSC < childSC.length-1)
sugestJS._selectSC++;


return false;
}, 
keyEventUp: function() {

 if(sugestJS._selectSC == 0) return false;

sugestJS._selectSC--;

 var childSelectSC = sugestJS._sc.getElementsByTagName('a')[sugestJS._selectSC];
 var childSC = sugestJS._sc.getElementsByTagName('a');
 
 for(var i=0;i<childSC.length;i++){
 	childSC[i].className = 'item';
 }
 
 try{ 
	childSelectSC.className = 'selectItem';
}
catch(e){
	childSelectSC = sugestJS._sc.getElementsByTagName('a')[0];
	childSelectSC.className = 'selectItem';
}
 


if(sugestJS._parentId == 'coWz'){
sugestJS._element.value = childSelectSC.getElementsByTagName('span')[0].innerHTML;
}else{
sugestJS._element.value = childSelectSC.innerHTML;
}

return false;
},  
keyEventReturn : function(){
/*
if(sugestJS._sc.style.display == 'block'){
sugestJS._sc.style.display = 'none';
sugestJS._selectSC = 0;
}else{
sugestJS.wyslijForm();
}
*/
sugestJS.wyslijForm();

},
keyEventLeft : function(){
if(sugestJS._sc.style.display == 'block')
sugestJS._sc.style.display = 'none';
sugestJS._selectSC = 0;

},
keyEventRight : function(){
if(sugestJS._sc.style.display == 'block')
sugestJS._sc.style.display = 'none';
sugestJS._selectSC = 0;
},
keyEventEsc : function(){
if(sugestJS._sc.style.display == 'block'){
sugestJS._sc.style.display = 'none';
}
},
przypiszAnchor : function(el){

if(sugestJS._parentId == 'coWz'){
sugestJS._element.value = el.getElementsByTagName('span')[0].innerHTML;
}else{
sugestJS._element.value = el.innerHTML;
}

sugestJS._sc.style.display = 'none';
},
wyslijForm : function(){
var form = sugestJS._element.parentNode.parentNode.parentNode;

var firma = form.co.value;
var miejsce = form.gdzie.value;


var link = '';




if(sugestJS._parentId == 'coWf' || sugestJS._parentId == 'gdzieWf'){
	  if(miejsce.length>0 || firma.length>0){	
		link += 'http://www.eurokatalog.pl/szukaj/firmy/';
		if(miejsce.length>0) link += 'miejsce/'+miejsce+'/';
		if(firma.length>0) link += 'firma/'+firma+'/';
		window.location = link;
	  }	
}

if(sugestJS._parentId == 'coWp' || sugestJS._parentId == 'gdzieWp'){
	  if(miejsce.length>0 || firma.length>0){	
		link += 'http://www.eurokatalog.pl/szukajP/produkty/';
		if(miejsce.length>0) link += 'miejsce/'+miejsce+'/';
		if(firma.length>0) link += 'firma/'+firma+'/';
		window.location = link;
	  }	
}

if(sugestJS._parentId == 'coWz' || sugestJS._parentId == 'gdzieWz'){
	  if(miejsce.length>0 || firma.length>0){	
		link += 'http://www.eurokatalog.pl/szukajZ/wz/';
		if(miejsce.length>0) link += 'miejsce/'+miejsce+'/';
		if(firma.length>0) link += 'firma/'+firma+'/';
		window.location = link;
	  }	
}

}, 
processContent: function(plik,paramsPost){

   if (xmlHttpContent.readyState==4||xmlHttpContent.readyState==0){
   		if(xmlHttpContent.overrideMimeType) xmlHttpContent.overrideMimeType('text/xml');
        xmlHttpContent.open("GET",plik+'?'+paramsPost,true);
        xmlHttpContent.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
        xmlHttpContent.setRequestHeader("Content-length", paramsPost.length);
        xmlHttpContent.setRequestHeader("Connection", "close");   
        xmlHttpContent.onreadystatechange = sugestJS.handleServerResponse;
        xmlHttpContent.send(null);
   }
},

handleServerResponse : function(){
//try{
	if (xmlHttpContent.readyState == 4){
		if (xmlHttpContent.status == 200 || xmlHttpContent.status == 304){
		
		
		
			var xmlResponse = xmlHttpContent.responseXML;
         	var xmlDoc = xmlResponse.documentElement;
         	
			var divSC = sugestJS._sc;
			var title = xmlDoc.getElementsByTagName('title');
			divSC.innerHTML = '';
			
			if(title.length==0){
			
			}
			else{
			
			
			
			
			if(sugestJS._parentId == 'coWz'){
				for(var i=0;i<title.length;i++){
					var titleDetail = title.item(i).childNodes[0].firstChild.data;
					var imgDetail = title.item(i).childNodes[1].firstChild.data;
					var order = title.item(i).childNodes[2].firstChild.data;
					var w = title.item(i).childNodes[3].firstChild.data;
					
					order = parseInt(order);
					
					var im = document.createElement('div');
					im.className = 'im obrazkiZnak';
					im.style.backgroundPosition = '0px -'+(order*30)+'px';
					im.style.width = w+'px';
					//im.src = 'http://zasoby.ekologia.pl/' + imgDetail;
					
					
					var sp = document.createElement('span');
					
					var a = document.createElement('a');
			    	a.href = '#empty-anchor';
			    	a.style.height = '36px';
			    	
			    	
			    	var t = document.createTextNode(titleDetail);
			    	sp.appendChild(t);
			    	
			    	a.appendChild(im);
			    	a.appendChild(sp);
					
					a.className = 'item';
					
					a.onclick = function(){sugestJS.przypiszAnchor(this)};
					divSC.appendChild(a);
					
					
				}
			}else{
			  for(var i=0;i<title.length;i++){
			    var titleDetail = title.item(i).firstChild.data;
			    var a = document.createElement('a');
			    a.href = '#empty-anchor';
			    var t = document.createTextNode(titleDetail);
			    a.appendChild(t);
			    
			    a.className = 'item';
			    
			    
			    a.onclick = function(){sugestJS.przypiszAnchor(this)};
			   
			    //divTitle.appendChild(a);
	            //divTitle.innerHTML = titleDetail;
	            divSC.appendChild(a);
			  }
			  }
			}
			
		    //alert(xmlResponse);
			
		
		}
        else{alert('blad');}
    }
//}
//catch (e){alert('blad1');}

ajax = true;

}

}
