// przechowuje obiekt XMLHttpRequest

var xmlHttp = createXmlHttpRequestObject();

// przechowuje adres i parametry zdalnego serwera

var serverAddress = "/biurex/ajax.php?m=kalendarium&o=next";

// zmienne określające częstotliwość łączenia z serwerem

var updateInterval = 50; // ile sekund oczekiwać na pobranie nowej wiadomości

var errorRetryInterval = 30; // ile sekund czekać po wystąpieniu błędu serwera

// parametr true pozwala wyświetlić szczegóły błędu

var debugMode = true;



// tworzy obiekt XMLHttpRequest

function createXmlHttpRequestObject()

{

  // przechowa odwołanie do obiektu XMLHttpRequest

  var xmlHttp;

  // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych

  try

  {

    // próbuje stworzyć obiekt XMLHttpRequest

    xmlHttp = new XMLHttpRequest();

  }

  catch(e)

  {

    // zakładając, że IE6 lub starsza

    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",

      "MSXML2.XMLHTTP.5.0",

      "MSXML2.XMLHTTP.4.0",

      "MSXML2.XMLHTTP.3.0",

      "MSXML2.XMLHTTP",

      "Microsoft.XMLHTTP");

    // sprawdza każdy prog id aż któryś zadziała

    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)

    {

      try

      {

        // próbuje stworzyć obiekt XMLHttpRequest

        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);

      }

      catch (e) {}

    }

  }

  // zwraca stworzony obiekt albo wyświetla komunikat o błędzie

  if (!xmlHttp)

    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");

  else

    return xmlHttp;

}



// funkcja wyświetla nową wiadomość na stronie

function display($message)
{
	 // pobiera odwołanie do elementu <div> na stronie
  //myDiv = document.getElementById("myDivElement_tlo");
  //myDiv_image = document.getElementById("myDivElement_image");
  // wyświetla komunikat
 //  myDiv.style.zIndex=10000;
 // myDiv.style.height= window.screen.height;
 // myDiv.style.opacity=0.5;
 // myDiv.style.filter='alpha(opacity=50)';

  //myDiv_image.style.zIndex=1000000;
 // myDiv = document.getElementById("artykul_pudelko");
//myDiv.innerHTML  = $message + "<br/> ";
  //myDiv_image = document.getElementById("my_mini_kalk");



  // wyświetla komunikat



  //myDiv.style.opacity=0.5;

  //myDiv.style.zIndex=10000;





  //myDiv_image.innerHTML=$message;

}

function display_response($message)

{

	 // pobiera odwołanie do elementu <div> na stronie

 // myDiv = document.getElementById("myDivElement_tlo");

 // myDiv_load = document.getElementById("myDivElement_load");

  myDiv_image = document.getElementById("my_mini_kalk");



  // wyświetla komunikat



  //myDiv.style.opacity=0.5;

  //myDiv.style.zIndex=10000;





  myDiv_image.innerHTML=$message;

  //myDiv_load.style.opacity=0.0;

 // myDiv.style.backgroundImage='none';

  myDiv_image.style.zIndex=10000000;

    document.getElementById("my_mini_kalk").style.display='';
  document.getElementById("my_mini_kalk_lad").style.display='none';







}



// funkcja wyświetlająca komunikat o błędzie

function displayError($message)

{

  // wyświetla szczegóły techniczne błędu jeśli debugMode ma wartość true

  display("Błąd podczas otrzymywania wiadomości! Spróbuję za " + errorRetryInterval + " sekund." + (debugMode ? "<br/>" + $message : ""));

  // ponawia sekwencję

  setTimeout("show_day();", errorRetryInterval * 100000);

}



// asynchroniczne wywołanie serwera

function show_day(id_data)

{

  // kontynuuje, jeśli xmlHttp nie jest pusty

  document.getElementById("my_mini_kalk").style.display='none';
  document.getElementById("my_mini_kalk_lad").style.display='';

  if (xmlHttp)

  {

    // próbuje połączyć się z serwerem

    try

    {

      // usuń tę linię jeśli nie podoba Ci się komunikat 'Pobieranie...'

    //	myDiv_kal = document.getElementById("my_mini_kalk");

  	//  myDiv_kal.style.display='';

	//  myDiv_kal.style.zIndex=10000001;




      display("Pobieranie nowej wiadomości z serwera...")

      // asynchroniczne żądanie HTTP otrzymania nowej wiadomości

      xmlHttp.open("GET", serverAddress+'&id_data='+id_data, true);

      xmlHttp.onreadystatechange = handleGettingNews;

      xmlHttp.send(null);

	  display("Widomosc pobrana")

    }

    catch(e)

    {

      displayError(e.toString());

    }

  }

}



// funkcja wywoływana przy zmianie statusu żądania HTTP

function handleGettingNews()

{


  // kiedy readyState ma wartość 4, jesteśmy gotowi do odebrania odpowiedzi z Sewera

  if (xmlHttp.readyState == 4)

  {

    // kontynuuje tylko, gdy status HTTP ma wartość "OK"

    if (xmlHttp.status == 200)

    {

      try

      {

        // przetwarza wiadomość z serwera

        getShow();

      }

      catch(e)

      {

        // komunikat o błędzie

        displayError(e.toString());

      }

    }

    else

    {

      // komunikat o błędzie

      displayError(xmlHttp.statusText);

    }

  }

}

function getShow()

{

  // pobiera odpowiedĽ serwera

  var response = xmlHttp.responseText;

  // bł±d serwera?

  if (response.indexOf("ERRNO") >= 0 || response.indexOf("error") >= 0

    || response.length == 0)

    throw(response.length == 0 ? "Bł±d serwera." : response);

  // wy¶wietla wiadomo¶ć

  display_response(response);

  // ponawia sekwencję

  //setTimeout("process();", updateInterval * 1000);

}



// obsługuje odpowiedź otrzymaną z serwera
