// przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// 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 utworzyć obiekt XMLHttpRequest
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // w przypadku, gdy przeglądarką jest IE6 lub starsz
    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 identyfikator programu, aż jeden zadziała
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}


// wywołana do odczytania pliku z serwera
function process(adres)
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  {
    // próbuje połączyć się z serwerem
    try
    {
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttp.open("GET", adres, true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
    }
  }
}

function loguj()
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  {
    // próbuje połączyć się z serwerem
    try
    {
			bError = false;
			var email = document.getElementById("email").value;
			if (!sprawdz(email))
			{
				alert("Podaj prawidłowy adres e-mail");
				bError = true;
			}

		if (!bError) {
	      // inicjalizacja odczytu pliku z serwera
	      var params = "email=" + email;
	      xmlHttp.open("GET", "newsletter.php?" + params, true);
	      xmlHttp.onreadystatechange = handleRequestStateChange;
	      xmlHttp.send(null);
	    }
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie moge polaczyc sie z serwerem:\n" + e.toString());
    }
  }
}

function polec()
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  {
    // próbuje połączyć się z serwerem
    try
    {
			bError = false;
			var email = document.getElementById("polec_email").value;
			if (!sprawdz(email))
			{
				alert("Podaj prawidłowy adres e-mail znajomego");
				bError = true;
			}
			var you = document.getElementById("polec_you").value;
			if (!sprawdz(you))
			{
				alert("Podaj swój prawidłowy adres e-mail");
				bError = true;
			}

		if (!bError) {
	      // inicjalizacja odczytu pliku z serwera
	      var params = "email=" + email + "&you=" + you;
	      xmlHttp.open("GET", "_polec.php?" + params, true);
	      xmlHttp.onreadystatechange = handleRequestStateChangeTwo;
	      xmlHttp.send(null);
	    }
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie moge polaczyc sie z serwerem:\n" + e.toString());
    }
  }
}

// funkcja obsługująca odpowiedź http
function handleRequestStateChange() 
{
  // pobranie odwołania do elementu <div> na stronie
  myDiv = document.getElementById("message");
  loading = document.getElementById("loading");
  // wyświetla status żądania
  if (xmlHttp.readyState == 1)
  {
    myDiv.style.display='none';
    myDiv.innerHTML;
		//myDiv.innerHTML='';
    loading.style.display='block';
    loading.innerHTML;
    //myDiv.innerHTML='<p style="margin:20px 0 0 10px">Wysyłam. Proszę czekać.</p>';
    
  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttp.readyState == 4) 
  {
    loading.style.display='none';
    loading.innerHTML;
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        myDiv.style.display='block';
				myDiv.innerHTML;
				// czyta wiadomość wysłaną z serwera
        response = xmlHttp.responseText;
        // wyświetla wiadomość
        myDiv.innerHTML = response;
      }
      catch(e)
      {
        // wyświetla komunikat o błędzie
        alert("Błąd podczas odczytu odpowiedzi: " + e.toString());
      }
    } 
    else
    {
      // wyświetla status wiadomości
      alert("Pojawił się problem w uzyskaniu danych:\n" +
        xmlHttp.statusText);
    }
  }
}

function handleRequestStateChangeTwo() 
{
  // pobranie odwołania do elementu <div> na stronie
  myDiv = document.getElementById("messageN");
  loading = document.getElementById("loadingN");
  // wyświetla status żądania
  if (xmlHttp.readyState == 1)
  {
    myDiv.style.display='none';
    myDiv.innerHTML;
		//myDiv.innerHTML='';
    loading.style.display='block';
    loading.innerHTML;
    //myDiv.innerHTML='<p style="margin:20px 0 0 10px">Wysyłam. Proszę czekać.</p>';
    
  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttp.readyState == 4) 
  {
    loading.style.display='none';
    loading.innerHTML;
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        myDiv.style.display='block';
				myDiv.innerHTML;
				// czyta wiadomość wysłaną z serwera
        response = xmlHttp.responseText;
        // wyświetla wiadomość
        myDiv.innerHTML = response;
      }
      catch(e)
      {
        // wyświetla komunikat o błędzie
        alert("Błąd podczas odczytu odpowiedzi: " + e.toString());
      }
    } 
    else
    {
      // wyświetla status wiadomości
      alert("Pojawił się problem w uzyskaniu danych:\n" +
        xmlHttp.statusText);
    }
  }
}

function sprawdz(adres) {
	if (adres != "") {
		var re = new RegExp("[^@]{1,}[@]{1}[^@.]{1,}[.]{1}[^@]{1,}","gi");
		var wynik = re.test(adres);
		if (wynik == true) {
			return true;
		}
		if (wynik == false) {
			return false;
		}
	}
}

function woj(id)
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  {
    // próbuje połączyć się z serwerem
    try
    {
			bError = false;

		if (!bError) {
	      // inicjalizacja odczytu pliku z serwera
	      //var params = "email=" + email;
	      xmlHttp.open("GET", "_woj.php?id=" + id, true);
	      xmlHttp.onreadystatechange = handleRequestStateChangeWoj;
	      xmlHttp.send(null);
	    }
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie moge polaczyc sie z serwerem:\n" + e.toString());
    }
  }
}

function handleRequestStateChangeWoj() 
{
  // pobranie odwołania do elementu <div> na stronie
  myDiv = document.getElementById("woj_list");
  loadDiv = document.getElementById("woj_loading");
  // wyświetla status żądania
  if (xmlHttp.readyState == 1)
  {
    myDiv.style.display='none';
    myDiv.innerHTML;
		//myDiv.innerHTML='';
    loadDiv.style.display='block';
    loadDiv.innerHTML;
    //myDiv.innerHTML='<p style="margin:20px 0 0 10px">Wysyłam. Proszę czekać.</p>';
    
  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttp.readyState == 4) 
  {
    loadDiv.style.display='none';
    loadDiv.innerHTML;
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        myDiv.style.display='block';
				myDiv.innerHTML;
				// czyta wiadomość wysłaną z serwera
        response = xmlHttp.responseText;
        // wyświetla wiadomość
        myDiv.innerHTML = response;
      }
      catch(e)
      {
        // wyświetla komunikat o błędzie
        alert("Błąd podczas odczytu odpowiedzi: " + e.toString());
      }
    } 
    else
    {
      // wyświetla status wiadomości
      alert("Pojawił się problem w uzyskaniu danych:\n" +
        xmlHttp.statusText);
    }
  }
}

function mapa ()
{
	document.getElementById('map').style.display="block";
}
