﻿
var xmlHttp = createXmlHttpRequestObject(); 
var ObjectName ;
var AjaxWithReturnValueToDiv=true ;	// ustawienie domyslne, chcemy żeby ajax nam coś zwrócił. Jeśli natomiast będziemy chcieli wykonać jakąś inną czynność to ustawiamy na false


function createXmlHttpRequestObject() 
{
	
  var xmlHttp;

  try
  {    
	xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
      "MSXML2.XMLHTTP.5.0",
      "MSXML2.XMLHTTP.4.0",
      "MSXML2.XMLHTTP.3.0",
      "MSXML2.XMLHTTP",
      "Microsoft.XMLHTTP");
   
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
       
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  
  if (!xmlHttp)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

function GetAjaxData(strona,obiekt,typ,add)
{	
	//if  (typ=="div" && obiekt!="kalend") document.getElementById(obiekt).innerHTML="<table style='height:500;width:100%;' cellspacing=0 cellpadding=0><tr><td class=wysrodkuj><img style='z-index:100px;' src='/Style/standard/obrazki/ajax-loader3.gif'></td></tr></table>"
	try { document.getElementById("ajaxwait").style.display="";	 } catch(e) {	} 
	try { parent.document.getElementById("ajaxwait").style.display="";	 } catch(e) {	} 
	ObjectName=obiekt;
    xmlHttp.open("GET", strona, true);  	
    xmlHttp.onreadystatechange =function() {handleServerResponse(typ,add); }; 
    xmlHttp.send(null);
}


function handleServerResponse(typ,add) 
{

  if (typ=="iframe") ooo= window(ObjectName);
  if (typ=="div")    ooo= document.getElementById(ObjectName);
  if (typ=="div2")    ooo= document.getElementById(ObjectName);
  if (typ=="option") ooo= document.getElementById(ObjectName);
  if (typ=="input") ooo= document.getElementById(ObjectName);

  if (xmlHttp.readyState == 4) 
  
  {	
  
    if (xmlHttp.status == 200) 
    {
     try
      {
		
		if (!AjaxWithReturnValueToDiv)	// to specjalny IF jeśli chcemy coś wywołać
		{
			AjaxWithReturnValueToDiv=true;
			return;
		}
		
		
		
        response = xmlHttp.responseText;	        
		s_start=response.indexOf("!###!");
		s_stop =response.indexOf("!@@@!");
		if ((s_start>-1) && (s_stop>-1))
		 {
			try
			{			
			 ajax_param=response.substring(s_start+5,s_stop).split(';');		
			 document.getElementById("ilewynikow_").innerHTML=ajax_param[0];
			 document.getElementById("ilestron_").innerHTML=ajax_param[1];
			} catch(e) { }
			
		}        
		
		if (typ=="iframe") ooo.document.body.innerHTML = response;
		if (typ=="div")    ooo.innerHTML = response;
		if (typ=="div2")    ooo.innerHTML = ooo.innerHTML+response;
		try { PoGetAjax(); } catch(e) { }   // wywołanie opcjonalnej funkcji po wykonaniu ajaxa
		
		try { document.getElementById("ajaxwait").style.display="none";	 } catch(e) {	} 
		try { parent.document.getElementById("ajaxwait").style.display="none";	 } catch(e) {	} 
		if (typ=="option") 
			{
				ListaWiersze=response.substring(s_start+5,s_stop-4).split('#$#$');
				ooo.options.length=0;
			if ((s_start>-1) && (s_stop>-1))
				{
					for(var wiersz in ListaWiersze)
					{
						Wartosc = ListaWiersze[wiersz].split('$$$')
						opt = document.createElement("option");
						opt.value = Wartosc[0];
						opt.text = Wartosc[1];
						ooo.options.add(opt);
					}
				}
			}
			if (typ=="input") 
			{
				s_start=x.responseText.indexOf("!###!");
				s_stop =x.responseText.indexOf("!@@@!");
				if ((s_start>-1) && (s_stop>-1))
				{
					try
					{			
						poletekstowe=document.getElementById(obiekt);
						ajax_param=x.responseText.substring(s_start+5,s_stop);		
						poletekstowe.value= ajax_param;
						if(poletekstowe.fireEvent) 
						{ // IE Way
							poletekstowe.fireEvent('onchange');
						} 
						else if(document.createEvent) 
						{ // Firefox Way
							var evt = document.createEvent('HTMLEvents');
							evt.initEvent('change', true, true);
							poletekstowe.dispatchEvent(evt);
						}   
					} catch(e) { } 				
				}
			}
			if (typ=="zmienna") 
			{
				s_start=x.responseText.indexOf("!###!");
				s_stop =x.responseText.indexOf("!@@@!");
				if ((s_start>-1) && (s_stop>-1))
				{
					try
					{			
						poletekstowe=document.getElementById(obiekt);
						ajax_param=x.responseText.substring(s_start+5,s_stop);		
						wartoscZwrotna=ajax_param;
						alert(wartoscZwrotna);
					} catch(e) { } 				
				}
			}			//	na koniec możliwe odpalenie dodatkowych skryptów na kliencie po odberaniu zawartości
		try { PoAjaxie(obiekt); } catch(e) { }
		
		}
      catch(e)
      {
      
        alert("Błąd podczas odczytu odpowiedzi: " + e.toString());
      }
    } 
    else
    {
       // alert("AJAX.JS - Pojawił się problem w uzyskaniu danych:\n" + xmlHttp.status+" "+ObjectName);
		try {DebugJS(response);} catch(e) { }		
    }
  }
}

function AjaxPLStr(polstr)
{
 
  polstr=polstr.replace(/ą/g,"%u0105");
  polstr=polstr.replace(/ć/g,"%u0107");
  polstr=polstr.replace(/ę/g,"%u0119");
  polstr=polstr.replace(/ł/g,"%u0142");
  polstr=polstr.replace(/ń/g,"%u0144");
  polstr=polstr.replace(/ó/g,"%u00f3");
  polstr=polstr.replace(/ś/g,"%u015b");
  polstr=polstr.replace(/ź/g,"%u017a");
  polstr=polstr.replace(/ż/g,"%u017c");
  polstr=polstr.replace(/Ą/g,"%u0104");
  polstr=polstr.replace(/Ć/g,"%u0106");
  polstr=polstr.replace(/Ę/g,"%u0118");
  polstr=polstr.replace(/Ł/g,"%u0141");
  polstr=polstr.replace(/Ń/g,"%u0143");
  polstr=polstr.replace(/Ó/g,"%u00d3");
  polstr=polstr.replace(/Ś/g,"%u015a");
  polstr=polstr.replace(/Ź/g,"%u0179");
  polstr=polstr.replace(/Ż/g,"%u017b");
  return polstr;

}
function AjaxPLStr2(polstr)
{
 
  polstr=polstr.replace(/ą/g,"%u0105");
  polstr=polstr.replace(/ć/g,"%u0107");
  polstr=polstr.replace(/ę/g,"%u0119");
  polstr=polstr.replace(/ł/g,"%u0142");
  polstr=polstr.replace(/ń/g,"%u0144");
  polstr=polstr.replace(/ó/g,"%u00f3");
  polstr=polstr.replace(/ś/g,"%u015b");
  polstr=polstr.replace(/ź/g,"%u017a");
  polstr=polstr.replace(/ż/g,"%u017c");
  polstr=polstr.replace(/Ą/g,"%u0104");
  polstr=polstr.replace(/Ć/g,"%u0106");
  polstr=polstr.replace(/Ę/g,"%u0118");
  polstr=polstr.replace(/Ł/g,"%u0141");
  polstr=polstr.replace(/Ń/g,"%u0143");
  polstr=polstr.replace(/Ó/g,"%u00d3");
  polstr=polstr.replace(/Ś/g,"%u015a");
  polstr=polstr.replace(/Ź/g,"%u0179");
  polstr=polstr.replace(/Ż/g,"%u017b");
  polstr=polstr.replace("&","%26");
  polstr=polstr.replace("=","%3D");
  polstr=polstr.replace("+","%3B");
  return polstr;

}


function changeContent(searchingpage,divek,add)
{	
	ObjectName=divek;	
    xmlHttp.open("GET", searchingpage, true);  
    xmlHttp.onreadystatechange =function() {handleServerResponse("div",add); };
    xmlHttp.send(null);	
}



 // możliwość równoległego wywoływania wielu zapytań ajaxowych
 function GetMultiAjaxData(strona,obiekt,typ,param,obiekt2)	
	{
	//alert(obiekt);
		if  (param!="bezNiczego") 
		{
		if  (obiekt=="iloscuzytkownikow" || param=="bezAjaxWait") 
		{
			document.getElementById(obiekt).innerHTML="<table style='width:100%;' cellspacing=0 cellpadding=0><tr><td class=wysrodkuj><img style='z-index:100px;height:10px;' src='/Style/standard/obrazki/ajax-loader3.gif'></td></tr></table>"
		}
		else
		{
			if (obiekt!="zapisDivNiewidoczny")
			{
				try { document.getElementById("ajaxwait").style.display="";	 } catch(e) {	} 	
				try { parent.document.getElementById("ajaxwait").style.display="";	 } catch(e) {	} 
			}
		}
		}
		if (document.getElementById) 
		{
		var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		}
		
		if (x)
		{
			x.onreadystatechange = function()
			{				
				if (x.readyState == 4 && x.status == 200)
				{	
					if (obiekt!="zapisDivNiewidoczny")
					{
						if (typ=="iframe") 
						{
						document.getElementById(obiekt).document.body.innerHTML = x.responseText;
						if (obiekt2 != null) document.getElementById(obiekt2).document.body.innerHTML = x.responseText;
						}
						if (typ=="div")    
						{  
							var resp=x.responseText;
						
							s_start=resp.indexOf("$!$!674$!$!");
							
							if (s_start>-1)
							{
							s_start=x.responseText.indexOf("!###!");
							s_stop =x.responseText.indexOf("!@@@!");
							var twrid;
							if ((s_start>-1) && (s_stop>-1)) twridskad=resp.substring(s_start+5,s_stop);		
								tablTemp=twridskad.split('!%%%!');
								resp=resp.substring(s_stop+5,resp.length);							
								try { pytajPomimo(tablTemp[0],resp,tablTemp[1]);	 } catch(e) {	} 
							}
							else
							{
							//alert(document.getElementById(obiekt).innerHTML );
								document.getElementById(obiekt).innerHTML = resp;
							}
							
						
						
						
						if (obiekt2 != null) document.getElementById(obiekt2).innerHTML = x.responseText;
						} 
						if (typ=="div2")   
						{  
						document.getElementById(obiekt).innerHTML = document.getElementById(obiekt).innerHTML + x.responseText;
						if (obiekt2 != null) document.getElementById(obiekt2).innerHTML = document.getElementById(obiekt2).innerHTML + x.responseText;
						} 
						if (typ=="input") 
						{
							s_start=x.responseText.indexOf("!###!");
							s_stop =x.responseText.indexOf("!@@@!");
							if ((s_start>-1) && (s_stop>-1))
							{
								try
								{			
								poletekstowe=document.getElementById(obiekt);
								ajax_param=x.responseText.substring(s_start+5,s_stop);		
								poletekstowe.value= ajax_param;
								if(poletekstowe.fireEvent) { // IE Way
									poletekstowe.fireEvent('onchange');
								} else if(document.createEvent) { // Firefox Way
									var evt = document.createEvent('HTMLEvents');
									evt.initEvent('change', true, true);
									poletekstowe.dispatchEvent(evt);
								}   
								
								} catch(e) { } 				
							}
						}
						if (typ=="option") 
						{
							s_start=x.responseText.indexOf("!###!");
							s_stop =x.responseText.indexOf("!@@@!");
							ListaWiersze=x.responseText.substring(s_start+5,s_stop-4).split('#$#$');
							ooo=poletekstowe=document.getElementById(obiekt);
							ooo.options.length=0;
						if ((s_start>-1) && (s_stop>-1))
							{
								for(var wiersz in ListaWiersze)
								{
									Wartosc = ListaWiersze[wiersz].split('$$$')
									opt = document.createElement("option");
									opt.value = Wartosc[0];
									opt.text = Wartosc[1];
									ooo.options.add(opt);
								}
							}
						}
						
						if (obiekt!="numerStrony1")
						{
							try { document.getElementById('ajaxwait').style.display='none'; } catch(e) { } 
							try { parent.document.getElementById("ajaxwait").style.display="none";	 } catch(e) {	} 
							try {  parent.resizeIframe(); } catch(e) { };
						}
						
						try { PoGetMultiAjax(obiekt); } catch(e) { }   // wywołanie opcjonalnej funkcji po wykonaniu ajaxa
						try { PoGetMultiAjaxKoszyk(obiekt); } catch(e) { }   // wywołanie opcjonalnej funkcji po wykonaniu ajaxa	
					}
					else
					{
						if (param != "B") 
						{
							try { parent.srodek.PoZapisieUstawien();	} catch (e) {}
						}
					}
				}
				if (x.readyState == 4 && x.status != 200)
				{									
					try { document.getElementById('ajaxwait').style.display='none'; } catch(e) { } 
					try { parent.document.getElementById("ajaxwait").style.display="none";	 } catch(e) {	} 
				//	alert ('Błąd ajax!' + x.responseText);	
					
				}
			}
			//try { document.getElementById('ajaxwait').style.display=''; } catch(e) { } 
			//try { parent.document.getElementById("ajaxwait").style.display="";	 } catch(e) {	} 
			try { PoAjaxie(obiekt);} catch(e) { }
			//obiekt.align=center;
			x.open("GET", strona, true);
			x.send(null);
		}
	}


