function connect()
{
	if (window.XMLHttpRequest) 
	{ 
      http_request = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) 
	{ 
     try 
	 {
       http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } 
	 catch (error) 
	 {
       http_request = new ActiveXObject("Microsoft.XMLHTTP");
     }
    }
 return http_request;
}


function query2php(kam,div,status,funkce,dotaz)
{	
	var http_request = false;
    var string = '';
    var request = dotaz;
    if (document.getElementById(status))
		{	
		     var statusbar = document.getElementById(status);
    		statusbar.innerHTML=main_stav_2+" ... ";
    	}
	http_request=connect();
	ask(http_request,kam,request);
	http_request.onreadystatechange = function() {returnValidate(http_request,div,status,funkce);}
}

function query2phpF(kam,fce,status,funkce,dotaz)
{	
	var http_request = false;
    var string = '';
    var request = dotaz;
    if (document.getElementById(status))
		{	
		     var statusbar = document.getElementById(status);
    		statusbar.innerHTML=main_stav_2+" ... ";
    	}
	http_request=connect();
	ask(http_request,kam,request);
	http_request.onreadystatechange = function() {returnValidateF(http_request,fce,status,funkce);}
}

function query2php_append(kam,div,status,funkce,dotaz)
{	
	var http_request = false;
    var string = '';
    var request = dotaz;
    if (document.getElementById(status))
		{	
		     var statusbar = document.getElementById(status);
    		statusbar.innerHTML=main_stav_2+" ... ";
    	}
	http_request=connect();
	ask(http_request,kam,request);
	http_request.onreadystatechange = function() {returnValidate_append(http_request,div,status,funkce);}
}

function returnValidate_append(http_request,cil,status,funkce) 
{		
        if (http_request.readyState == 4) 
		{
            if (http_request.status == 200) 
			{			  
			  if (document.getElementById(cil))
			  {
                var mistoZobrazeni = document.getElementById(cil);
                mistoZobrazeni.innerHTML = http_request.responseText+mistoZobrazeni.innerHTML;				
				if (funkce!='') {setTimeout(funkce,0);}
			  }
			  if (document.getElementById(status))
			  {		
			  	var statusbar = document.getElementById(status);		
                statusbar.innerHTML = '<span class="ajax_hotovo">'+main_stav_3+'</span>';
			  }
            } 
			else 
			{
               if (http_request.status==404)
			   {
			    alert(main_other_0);
			    if (document.getElementById(status))
			    {	
			     var statusbar = document.getElementById(status);
			     statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_0+'</span>';
			    }
			   }
			   else
			   {
			   		if (document.getElementById(status))
			    	{	
			     		var statusbar = document.getElementById(status);
			   	   		statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_1+' '+http_request.status+'</span>';
			   	   	}
				   	alert(main_other_1+' '+http_request.status);
			   }
            }
        }
		else
		{
		 if (document.getElementById(status))
		 {
		  if (http_request.readyState == 1 || http_request.readyState == 2) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_nacitam">'+main_stav_0+' ...</span>';
		  }
		  if (http_request.readyState == 3) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_zpracovavam">'+main_stav_1+' ...</span>';
		  }
		 }
		}		
}

function ask(http_request,adresa,request)
{	
    http_request.open('POST', adresa, true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');							
    if (request!="")
	{		 
      http_request.send(request.replace(/&amp;/g,"&"));
	}
}



function returnValidate(http_request,cil,status,funkce) 
{		
		var chyba=false;
        if (http_request.readyState == 4) 
		{
			try
			{
			//if(document.getElementById('nepripojeno').style.display=='block')
			//{
			//	document.getElementById('nepripojeno').style.display='none';
			//}	
				
            if (http_request.status == 200 && chyba==false) 
			{			  
			  if (document.getElementById(cil))
			  {
                var mistoZobrazeni = document.getElementById(cil);
                var vysledek = http_request.responseText;
                if (vysledek!='')
                {                 
                 mistoZobrazeni.innerHTML = http_request.responseText;
                 if (funkce!='') {setTimeout(funkce,0);}
				}										
			  }			  
			  if (document.getElementById(status))
			  {		
			  	var statusbar = document.getElementById(status);		
                statusbar.innerHTML = '<span class="ajax_hotovo">'+main_stav_3+'</span>';
			  }
            } 
			else 
			{
               if (http_request.status==404)
			   {
			    alert(main_other_0);
			    if (document.getElementById(status))
			    {	
			     var statusbar = document.getElementById(status);
			     statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_0+'</span>';
			    }
			   }
			   else
			   {
			   		var chyba=true;
			   		if (document.getElementById(status))
			    	{	
			     		var statusbar = document.getElementById(status);
			   	   		statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_1+' '+http_request.status+'</span>';
			   	   	}
				   	alert(main_other_1+' '+http_request.status);
			   }
            }
            }
            catch(err)
            {
            	//alert(err);
            	//document.getElementById('nepripojeno').style.display='block';
            }
        }
		else
		{
		 if (document.getElementById(status))
		 {
		  if (http_request.readyState == 1 || http_request.readyState == 2) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_nacitam">'+main_stav_0+' ...</span>';
		  }
		  if (http_request.readyState == 3) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_zpracovavam">'+main_stav_1+' ...</span>';
		  }
		 }
		}		
}

function returnValidateF(http_request,cil,status,funkce) 
{		
		var chyba=false;
        if (http_request.readyState == 4) 
		{
			try
			{
			//if(document.getElementById('nepripojeno').style.display=='block')
			//{
			//	document.getElementById('nepripojeno').style.display='none';
			//}	
				
            if (http_request.status == 200 && chyba==false) 
			{			  
			  if (typeof window[cil] != 'undefined')
			  {                
                var vysledek = http_request.responseText;
                if (vysledek!='')
                {                 
                 window[cil](vysledek);
                 if (funkce!='') {setTimeout(funkce,0);}
				}										
			  }			  
			  if (document.getElementById(status))
			  {		
			  	var statusbar = document.getElementById(status);		
                statusbar.innerHTML = '<span class="ajax_hotovo">'+main_stav_3+'</span>';
			  }
            } 
			else 
			{
               if (http_request.status==404)
			   {
			    alert(main_other_0);
			    if (document.getElementById(status))
			    {	
			     var statusbar = document.getElementById(status);
			     statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_0+'</span>';
			    }
			   }
			   else
			   {
			   		var chyba=true;
			   		if (document.getElementById(status))
			    	{	
			     		var statusbar = document.getElementById(status);
			   	   		statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_1+' '+http_request.status+'</span>';
			   	   	}
				   	alert(main_other_1+' '+http_request.status);
			   }
            }
            }
            catch(err)
            {
            	//alert(err);
            	//document.getElementById('nepripojeno').style.display='block';
            }
        }
		else
		{
		 if (document.getElementById(status))
		 {
		  if (http_request.readyState == 1 || http_request.readyState == 2) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_nacitam">'+main_stav_0+' ...</span>';
		  }
		  if (http_request.readyState == 3) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_zpracovavam">'+main_stav_1+' ...</span>';
		  }
		 }
		}		
}

// XML ajaxove funkce, ktere vyuzivaji funkce xml
function XMLquery2php(kam,zpracuj,status,dotaz,data)
{		
	http_request = false;
    if (document.getElementById(status))
		{	
		     var statusbar = document.getElementById(status);
    		statusbar.innerHTML=main_stav_2+" ... ";
    	}    
	http_request=connect();	
	ask(http_request,kam,dotaz);
	
	http_request.onreadystatechange = function() {returnValidateXML(http_request,zpracuj,status,data);}	
}

function returnValidateXML(http_request,cil,status,data) 
{		
		this.chyba=false;
        if (http_request.readyState == 4) 
		{
			try
			{	
				//document.getElementById('nepripojeno').style.display='none';
				//document.getElementById('nenalezena').style.display='none';
				//document.getElementById('chyba').style.display='none';	
            	if (http_request.status == 200 && chyba==false) 
				{						
			  		if (typeof window[cil] != 'undefined')
			  		{				  			
						this.vysledek = http_request.responseXML;												
						if (this.vysledek!=null)
						{									
							if (this.vysledek.childNodes[0])
							{
								nd=this.vysledek.childNodes[0];
								x=xml2array(nd.childNodes,true);
								window[cil](x,data);
							}
						}
			  		}
			  		if (document.getElementById(status))
			  		{		
			  			this.statusbar = document.getElementById(status);		
                		this.statusbar.innerHTML = '<span class="ajax_hotovo">'+main_stav_3+'</span>';
			  		}
            	} 
				else 
				{
               		if (http_request.status==404)
			   		{
			    		//alert('Stránka nebyla nalezena');
			    		//document.getElementById('nenalezena').style.display='block';
			    		if (document.getElementById(status))
			    		{	
			     			var statusbar = document.getElementById(status);
			     			statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_0+'</span>';
			    		}
			   		}
			   		else
			   		{
			   			this.chyba=true;
			   			if (document.getElementById(status))
			    		{	
			     			var statusbar = document.getElementById(status);
			   	   			statusbar.innerHTML = '<span class="ajax_nacitam">'+main_other_1+' '+http_request.status+'</span>';
			   	   		}
				   		//alert('Chyba '+http_request.status);
				   		//document.getElementById('chyba').style.display='block';
			   		}
            	}
            }
            catch(err)
            {            	
            	//document.getElementById('nepripojeno').style.display='block';	            	
            	//alert("Vyskytla se chyba : "+err);            	
            }
        }        
		else
		{
		 if (document.getElementById(status))
		 {
		  if (http_request.readyState == 1 || http_request.readyState == 2) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_nacitam">'+main_stav_0+' ...</span>';
		  }
		  if (http_request.readyState == 3) 
		  {
		   var statusbar = document.getElementById(status);
           statusbar.innerHTML = '<span class="ajax_zpracovavam">'+main_stav_1+' ...</span>';
		  }
		 }
		}				
}
// /XML ajaxove funkce
