<!--  



   // initializing XHR instance
 function Xhr(url, config){
	
   // method getElement returns appropriet HTML element by tag ID
   this.getElement = function(id)
   {
    	if (document.getElementById)
	        var returnVar = document.getElementById(id);
	    else if (document.all)
	        var returnVar = document.all[id];
	    else if (document.layers)
	        var returnVar = document.layers[id];
	    return returnVar;
   }
   // end of method getElement
   
   //method createXhr create an xmlHttpReques according to browser version
   this.create = function() 
   {
      try{
        var request = new XMLHttpRequest();
      }catch(e) {//pro případ starší verze prohlížeče
        var MSXmlVerze = new Array('MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp.2.0','Microsoft.XMLHttp');
        for(var i = 0; i <= MSXmlVerze.length; i ++){
          try{
            request = new ActiveXObject(MSXmlVerze[i]);
            break;
          }catch(e){
            //vzniklou chybu ignoruji a pokračuji nastavením další verze
          }
        }
      }
      if(!request)
        alert("Došlo k chybě při vytváření objektu XMLHttpRequest!");
      else
        return request;	
   }
   
   // properties
   var xhr = this.create();
   var element = this.getElement(config["element"]);
   var loader = (config["loader"]) ? this.getElement(config["loader"]) : 0;
   var method = (config["method"]) ? config["method"] : "GET";
   var parameters = (config["parameters"]) ? config["parameters"] : 0;

   
   // method processUrl processes an call xmlHttpRequest and set response 
   this.processUrl = function() {
	   if(xhr){
		  try{
			if (loader) loader.style.display = "";
		    xhr.open(method, url, true);
		    xhr.onreadystatechange = this.renderAnswer;
		    if (parameters) {
			    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			    xhr.setRequestHeader("Content-length", parameters.length);
			    xhr.setRequestHeader("Connection", "close");
			    xhr.send(parameters);
		    } else 
		    	xhr.send(null);
		  }catch(e){
		    alert("Nelze se připojit k serveru:\n" + e.toString());
		  }
	  } else{
		  alert("Chybí objekt XMLHttpRequest");
	  }
   }
    
   // method renderAnswer renders a feedback from server script to appropriate HTML element
   this.renderAnswer = function() {
	   //alert(var_dump(this.xhr.responseText));
	   if(xhr.readyState == 4){
	    if(xhr.status == 200){
	      try{
			var response = xhr.responseText;
			//zachycení chyb IE a Opery
			if(!response){  
				throw("Chybná struktura odpovědi:\n" + xhr.responseText);  
			}  
			if (loader) loader.style.display = "none";
			element.style.display = "";
	        element.innerHTML = response;
	      }catch(e){
	        alert("Chyba při čtení odpovědi:\n" + e.toString());
	      } 
	    }else{ 
	      //alert("Prosím počkejte na vyřízení předchozího požadavku.")
	    }
	  }
   }
   
   
   // end of object Xhr
}

//-->
