// przechowuje odwołanie do obiektu XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject(); 

// zwraca obiekt XMLHttpRequest
function createXmlHttpRequestObject() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp;
  // jeśli uruchomiony jest Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // jeśli uruchomiona jest Mozilla lub inne przeglądarki
  else
  {
    try 
    {
      xmlHttp = new XMLHttpRequest();
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp)
    alert("Bł±d podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

// wysyła asynchroniczne żądanie protokołem HTTP korzystając z obiektu XMLHttpRequest
function processSnajper()
{
  // kontynuuje jedynie jeśli obiekt xmlHttp nie jest zajęty
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
   
	wig20= encodeURIComponent(document.forms.snajper.wig20.value);
	eur_pl=encodeURIComponent(document.forms.snajper.eur_pl.value);
	eur_usd=encodeURIComponent(document.forms.snajper.eur_usd.value);
	ropa=encodeURIComponent(document.forms.snajper.ropa.value);
	if(document.forms.snajper.wspolczynnik) wspolczynnik=encodeURIComponent(document.forms.snajper.wspolczynnik.value);

	document.forms.snajper.wig20.value=parseInt(wig20);
	document.forms.snajper.eur_pl.value=parseFloat(eur_pl);
	document.forms.snajper.eur_usd.value=parseFloat(eur_usd);
	document.forms.snajper.ropa.value=parseInt(ropa);
	if(document.forms.snajper.wspolczynnik) document.forms.snajper.wspolczynnik.value=parseInt(wspolczynnik);
	else wspolczynnik=0;

	// wykonuje stronę quickstart.php na serwerze
    xmlHttp.open("POST", "ajax_snajper_save.php", true);  
	xmlHttp.setRequestHeader('Content-Type',  'application/x-www-form-urlencoded');
    
    // definiuje metodę obsługi odpowiedzi serwera
    xmlHttp.onreadystatechange = handleServerResponse;
    // wysyła żądanie do serwera
    xmlHttp.send("wig20="+wig20+"&eur_pl="+eur_pl+"&eur_usd="+eur_usd+"&ropa="+ropa+"&wspolczynnik="+wspolczynnik);

  }
  else
    // jeśli połączenie jest zajęte, ponawia próbę po 1 sekundzie
    setTimeout('processSnajper()', 1000);
}

//#####################################################################
//#####################################################################
//#####################################################################
// odpowiedzi z serwera
function handleServerResponse() 
{
  // kontynuuje jedynie jeśli transakcja została zakończona
  if (xmlHttp.readyState == 4) 
  {
    // status 200 oznacza pomyślne ukończenie transakcji
    if (xmlHttp.status == 200) 
    {
      // wyodrębnia wiadomość z serwera
      tresc = xmlHttp.responseText;
     // aktualizuje dane wyświetlane klientowi informacjami otrzymanymi z serwera
      document.getElementById("divSnajper").innerHTML = tresc ;
      // ponawia sekwencję
//      setTimeout('process()', 1000);
    } 
    // dla statusu protokołu HTTP innego niż 200 zgłasza błąd
    else 
    {
      //alert("Wyst±pił bł±d podczas uzyskiwania dostępu do serwera: " + xmlHttp.statusText);
    }
  }
}

