// przechowuje obiekt XMLHttpRequest

var xmlHttp = createXmlHttpRequestObject();

// przechowuje adres i parametry zdalnego serwera

var serverAddress1 = "/biurex/ajax.php?m=kalendarium&o=show_zdarzenie";

// 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");



	// wyświetla komunikat

	myDiv.style.zIndex = 10000;

	myDiv.style.height = window.screen.height;

	myDiv.style.opacity = 0.5;

	myDiv.style.filter = 'alpha(opacity=50)';



}

function display_responseKalendarium($message) {

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

	myDiv = document.getElementById("myDivElement_tlo");

	myDiv_image = document.getElementById("myDivElement_kom");

	myDiv_image.innerHTML = $message;

	myDiv.style.backgroundImage = 'none';

	myDiv_image.style.zIndex = 10000000;



}



// 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();", errorRetryInterval * 100000);

}



// asynchroniczne wywołanie serwera

function show(id_w) {

	// kontynuuje, jeśli xmlHttp nie jest pusty

	if (xmlHttp) {

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

		try {

			document.getElementById("myDivElement_tlo").className='hgf_activ';



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

			myDiv_kal = document.getElementById("myDivElement_kom");

			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", serverAddress1 + '&id=' + id_w, true);

			xmlHttp.onreadystatechange = handleGettingNews1;

			xmlHttp.send(null);

			display("Widomosc pobrana")

		} catch (e) {

			displayError(e.toString());

		}

	}

}



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

function handleGettingNews1() {

	// 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

				getShowKalendarium();

			} catch (e) {

				// komunikat o błędzie

				displayError(e.toString());

			}

		} else {

			// komunikat o błędzie

			displayError(xmlHttp.statusText);

		}

	}

}

function getShowKalendarium() {

	// 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_responseKalendarium(response);

	// ponawia sekwencję

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

}



// obsługuje odpowiedź otrzymaną z serwera

function schowaj_warstwe() {





	myDiv_kal = document.getElementById("myDivElement_kom");

	myDiv_kal.style.display = 'none';

	myDiv_kal.style.zIndex = 1;



	document.getElementById("myDivElement_tlo").className='hgf';



	// schowaj_wiesz();



}


