// przechowuje obiekt txtHttpRequest

var txtHttp = createtxtHttpRequestObject();

// tworzy obiekt txtHttpRequest
function createtxtHttpRequestObject()
{
	 // przechowa odwołanie do obiektu txtHttpRequest
	 var txtHttp;
	 // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
	 try
	 {
		 // próbuje stworzyć obiekt txtHttpRequest
		 txtHttp = new XMLHttpRequest();
	 }
	 catch(e)
	 {
	 	//alert('aaaaaa');
		 // 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 && !txtHttp; i++)
		 {
			 try
			 {
				 // próbuje stworzyć obiekt XmlHttpVersions
				 txtHttp = new ActiveXObject(XmlHttpVersions[i]);
			 }
			 catch (e) {
				//alert(e.toString());
			 }
		 }
	 }
	 // zwraca stworzony obiekt albo wyświetla komunikat o błędzie
	 if (!txtHttp)
		 helpBoxOpen('Uwaga!', "Błąd podczas tworzenia obiektu txtHttpRequest.");
	 else
	 return txtHttp;
}

// czyta plik z serwera
function szukaj_osoby()
{
	 // kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){

			var s_nick		= document.getElementById('nick').value;
			var s_miasto	= document.getElementById('miasto').value;
			var s_plec_f	= document.getElementById('kobieta').checked;
			var s_plec_m	= document.getElementById('mezczyzna').checked;
			var user_id	= document.getElementById('user_id').value;

			var str = "act=search&nick="+s_nick+"&miasto="+s_miasto+"&plec_m="+s_plec_m+"&plec_f="+s_plec_f+"&user_id="+user_id;

			 // początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);
		 }else{
		 helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			 helpBoxOpen('Uwaga!', e.toString())
			 helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{
	 	helpBoxOpen('Uwaga!', "Brak połączenia");
	 }
}

// funkcja wywoływana przy zmianie statusu żądania HTTP
function handleRequestStateChange()
{
	 // kiedy readyState ma wartość 4, jesteśmy gotowi do odebrania odpowiedzi z serwera
	 if (txtHttp.readyState == 4)
	 {
		 // kontynuuje tylko, gdy status HTTP ma wartość "OK"
		 if (txtHttp.status == 200)
		 {
			 try
			 {
				 // przetwarza wiadomość z serwera
				 handleServerResponse();
			 }
			 catch(e)
			 {
				 // komunikat o błędzie
				 //alert("Error reading the response: " + e.toString());
			 }
		 }
		 else
		 {
			 // wyświetla wiadomość o statusie
			 helpBoxOpen('Uwaga!', "Problem przy pobieraniu danych:\n" + txtHttp.statusText);
		 }
	 }
}




// obsługuje odpowiedz otrzymaną z serwera
function handleServerResponse()
{
try{
	var txtResponse = txtHttp.responseText;

	var arr_split = txtResponse.split("marker");

	if (arr_split.length>1){
		var lista =  arr_split[1];
	//	load_my_kontakty(lista);

		var div_nav = document.getElementById('ww_scroll');
			div_nav.innerHTML = lista;
	}

	var arr_split2 = txtResponse.split("message");
	if (arr_split2.length>1){
		var msg =  arr_split2[1];
		if (msg=="ok"){
			var div_wiadomosc_box =  document.getElementById('wiadomosc_box');
			div_wiadomosc_box.style.display="block";
			var span_user_name_msg = document.getElementById('user_name_msg');
			span_user_name_msg.innerHTML=arr_split2[2];

			var span_user_name_msg = document.getElementById('user_name_msg');
			span_user_name_msg.innerHTML=arr_split2[2];

			var inp_id_send = document.getElementById('id_sender');
			inp_id_send.value=arr_split2[3];

		}else if(msg=="no") {
			helpBoxOpen('Uwaga!', "Zostało wysłane zaproszenie");
		}else  if(msg=="done") {
			helpBoxOpen('Uwaga!', "Można wysłać tylko jedno zaproszenie do danego użytkownika.");
		}

		//alert(msg);
	}

	var arr_split2 = txtResponse.split("send_msg");
	if (arr_split2.length>1){
		var msg =  arr_split2[1];
		if (msg=="ok"){
			helpBoxOpen('Uwaga!', "Wiadomosc wysłano pomyślnie.");
		}else if(msg=="no") {
			helpBoxOpen('Uwaga!', "Błąd podczas wysyłania wiadomości.");
		}

		//alert(msg);
	}

	var arr_split3 = txtResponse.split("delete_msg");
	if (arr_split3.length>1){
		if (arr_split3[1]=="ok"){
			//alert('tr_'+ arr_split3[1]);
			var div_delete_msg = document.getElementById('tr_'+ arr_split3[2]);
			div_delete_msg.style.display="none";
		}
	}

	var arr_split4 = txtResponse.split("insert_contakt");
	if (arr_split4.length>1){
		if (arr_split4[1]=="ok"){
			helpBoxOpen('Uwaga!', 'Pomyslnie dodano!');

		}
	}
	var arr_split5 = txtResponse.split("ban");
	if (arr_split5.length>1){
		if (arr_split5[1]=="ok"){
			helpBoxOpen('Uwaga!', 'Usunięto kontakt, zmiany będą widoczne po przeładowaniu strony!');

		}
	}

}catch(e){
	helpBoxOpen('Alert!', e.toString());
}
/*
marker64|plec|2#64|position|(51.45, -0.32807)#64|Ulica|asda #64|Miasto|london#64|nick|al#64|birthdate
|1977-01-01#77|plec|2#77|position|(51.506666, -0.108857)#77|Ulica|stamford st#77|Miasto|london#77|nick
|alegorn#77|birthdate|1977-01-01#marker
*/

}

function msg(id_u,id){
	if (id == "nobody") {
		helpBoxOpen('Uwaga!', "Aby wysyłać wiadomości musisz się zalogowac!");
	}
	else {
		// kontynuuje, jeśli obiekt txtHttp nie jest pusty
		if (txtHttp) {
			// próbuje połączyć się z serwerem
			try {
				if (txtHttp.readyState == 4 || txtHttp.readyState == 0) {

					var str = "act=message&id_u=" + id_u + "&id=" + id;

					// początkuje odczyt pliku z serwera
					txtHttp.open("GET", "extensions/ajax.php?" + str, true);
					txtHttp.onreadystatechange = handleRequestStateChange;
					txtHttp.send(null);
				}
				else {
					helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
				//setTimeout("process("+point+")",1000);
				}
			}
			// w razie niepowodzenia wyświetla komunikat o błędzie
			catch (e) {
				helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
			}
		}
		else {
			helpBoxOpen('Uwaga!', "Brak połączenia");
		}
	}
}

function zaproszenie(id_u,id){
	if (id == "nobody") {
		helpBoxOpen('Uwaga!', "Aby wysyłać zaproszenie musisz się zalogowac!");
	}
	else {
		// kontynuuje, jeśli obiekt txtHttp nie jest pusty
		if (txtHttp) {
			// próbuje połączyć się z serwerem
			try {
				if (txtHttp.readyState == 4 || txtHttp.readyState == 0) {

					var str = "act=invitation&id_u=" + id_u + "&id=" + id;

					// początkuje odczyt pliku z serwera
					txtHttp.open("GET", "extensions/ajax.php?" + str, true);
					txtHttp.onreadystatechange = handleRequestStateChange;
					txtHttp.send(null);
				}
				else {
					helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
				}
			}
			// w razie niepowodzenia wyświetla komunikat o błędzie
			catch (e) {
				helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
			}
		}
		else {
			helpBoxOpen('Uwaga!', "Brak połączenia");
		}
	}
}

function send_msg(id_u){

		 // kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){
		 	// zamykam okienko
			close_div()
			var inp_temat = document.getElementById('inp_temat');
			var id_sender = document.getElementById('id_sender');
			var txt_msg = document.getElementById('txt_msg');

			var str = "act=send_message&id_u=" + id_sender.value + "&id="+id_u+"&temat="+encodeURI(inp_temat.value)+"&msg="+encodeURI(txt_msg.value);


			// początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);
		 }else{
		 helpBoxOpen('Alert!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			 helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{
	 	helpBoxOpen('Uwaga!', "Brak połączenia");
	 }

}

function read_msg(id_m){
	 // kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){
			var str = "act=read_msg&id_m=" + id_m;
			// początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);
		 }else{
		 helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			 helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{
	 	alert("brak połączenia");
	 }
}

function remove_msg(id_m,id_u){
	 // kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){
			var str = "act=remove_msg&id_m=" + id_m +"&id_u="+id_u;
			// początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);
		 }else{
		 helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			 helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{
	 	helpBoxOpen('Uwaga!', "Brak połączenia");
	 }
}
function akcept(id_to_accept,my_id){
	// kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){
			var str = "act=accept&id_u=" + my_id +"&id_acpt="+id_to_accept;
			// początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);
		 }else{
		 helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{
	 	helpBoxOpen('Uwaga!', "Brak połączenia");
	 }

}

function banuj(kogo,my_id){
		// kontynuuje, jeśli obiekt txtHttp nie jest pusty
	 if (txtHttp)
	 {
		 // próbuje połączyć się z serwerem
		 try
		 {
		 if (txtHttp.readyState==4||txtHttp.readyState==0){
			var str = "act=banuj&id_u=" + my_id +"&kogo="+kogo;
			// początkuje odczyt pliku z serwera
			txtHttp.open("GET", "extensions/ajax.php?"+str, true);
			txtHttp.onreadystatechange = handleRequestStateChange;
			txtHttp.send(null);

		 }else{
		 	helpBoxOpen('Uwaga!', "Proszę o ponowne przesłanie żądania");
		 //setTimeout("process("+point+")",1000);
		 }
		 }
		 // w razie niepowodzenia wyświetla komunikat o błędzie
		 catch (e)
		 {
			helpBoxOpen('Uwaga!', "Nie mogę połączyć się z serwerem:\n" + e.toString());
		 }
	 }
	 else{	helpBoxOpen('Uwaga!', "Brak połączenia"); }

}
