// przechowuje obiekt XMLHttpRequest
var xmlHttpColorscale = createXmlHttpRequestObject();
var xmlHttpUserfiltr = createXmlHttpRequestObject();
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 odczytaniButtona pliku z serwera
function zmienBrightnessButton()
{
  // pobiera nazwę użytkownika i kolor ze strony
  var eemail = document.getElementById("email").value;
  // kontynuuje jeśli xmlHttpGetMessages nie jest pusty
  if(xmlHttp)
  {
    try
    {
      // nie zaczyna nowej operacji na serwerze, jeśli jakaś jest wykonywana
      if (xmlHttp.readyState == 4 || 
          xmlHttp.readyState == 0) 
      {
        // przechowa parametry potrzebne do wykonania żądania na serwerze
        var params = "";

    params =  "zespol=25" +
              "&glosuj=głosuj" +  
              "&email=" + encodeURIComponent(eemail);
        // wywołuje działania po stronie serwera
        xmlHttp.open("POST", "http://www.o-tv.pl/index.php/44/1/1/25/", true);
        xmlHttp.setRequestHeader("Content-Type", 
                                   "application/x-www-form-urlencoded");
        xmlHttp.onreadystatechange = handleRequestBrightness;
 
        xmlHttp.send(params);
      }
      
    }
    catch(e)
    {
        alert("Błąd: " + e.toString());
    }
  }
}

//

function getElementsByClassName(cn){
  var arr = new Array(); 
  var els = document.getElementsByTagName("*");
  var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");
  for (var i = 0; i < els.length; i++ ){
    if (exp.test(els[i].className)){
      arr.push(els[i]);
    }
  }
  return arr;
}

// funkcja obsługująca odpowiedź http
function handleRequestBrightness() 
{
  // pobranie odwołania do elementu <div> na stronie
  // wyświetla status żądania
  if (xmlHttp.readyState == 1)
  {

  }
  else if (xmlHttp.readyState == 2)
  {

  }
  else if (xmlHttp.readyState == 3)
  {

  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttp.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        // czyta wiadomość wysłaną z serwera
        response = xmlHttp.responseText;
        tresc = response.getElementByClassName("blad");
        // wyświetla wiadomość
       myDiv = document.getElementById("status");
        myDiv.innerHTML = tresc;
      }
      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);
    }
  }
}



// wywołana do odczytania pliku z serwera
function zmienColorscale(wartoscc)
{
  var wartosc=wartoscc;
  var oCurrentMessage = document.getElementById("input_photo").value;
  var wartosc2 = document.getElementById("wartosc2").value;
  var wartosc3 = document.getElementById("wartosc3").value;
  var wartosc4 = document.getElementById("wartosc4").value;
  var akcja = document.getElementById("wartosc").value;
  // kontynuuje tylko jeśli obiekt xmlHttpColorscale istnieje
  if (xmlHttpColorscale)
  {
    // próbuje połączyć się z serwerem
    try
    {
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttpColorscale.open("GET", "colorscale_engine.php?wartosc="+ akcja +"&wartosc2="+ wartosc2 +"&wartosc3="+ wartosc3 +"&wartosc4="+ wartosc4 +"&photo="+ oCurrentMessage, true);
      xmlHttpColorscale.onreadystatechange = handleRequestColorscale;
      xmlHttpColorscale.send(null);
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
    }
  }
}

// funkcja obsługująca odpowiedź http
function handleRequestColorscale() 
{
  // pobranie odwołania do elementu <div> na stronie
  // wyświetla status żądania
  if (xmlHttpColorscale.readyState == 1)
  {

  }
  else if (xmlHttpColorscale.readyState == 2)
  {

  }
  else if (xmlHttpColorscale.readyState == 3)
  {

  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttpColorscale.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttpColorscale.status == 200) 
    {
      try
      {
        // czyta wiadomość wysłaną z serwera
        response = xmlHttpColorscale.responseText;
        // wyświetla wiadomość
       myDiv = document.getElementById("colorscale");
        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" +
        xmlHttpColorscale.statusText);
    }
  }
}

function zmienUserfiltr(wartoscc)
{
  var wartosc=wartoscc;
  var oCurrentMessage = document.getElementById("input_photo").value;
  var a1 = document.getElementById("a1").value;
  var a2 = document.getElementById("a2").value;
  var a3 = document.getElementById("a3").value;

  var b1 = document.getElementById("b1").value;
  var b2 = document.getElementById("b2").value;
  var b3 = document.getElementById("b3").value;

  var c1 = document.getElementById("c1").value;
  var c2 = document.getElementById("c2").value;
  var c3 = document.getElementById("c3").value;

  // kontynuuje tylko jeśli obiekt xmlHttpUserfiltr istnieje
  if (xmlHttpUserfiltr)
  {
    // próbuje połączyć się z serwerem
    try
    {
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttpUserfiltr.open("GET", "userfiltr_engine.php?a1="+ a1 +"&a2="+ a2 +"&a3="+ a3 +"&b1="+ b1 +"&b2="+ b2 +"&b3="+ b3 +"&c1="+ c1 +"&c2="+ c2 +"&c3="+ c3 +"&photo="+ oCurrentMessage, true);
      xmlHttpUserfiltr.onreadystatechange = handleRequestUserfiltr;
      xmlHttpUserfiltr.send(null);
    }
    // w przypadku niepowodzenia wyświetla komunikat o błędzie
    catch (e)
 
    {
      alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
    }
  }
}

// funkcja obsługująca odpowiedź http
function handleRequestUserfiltr() 
{
  // pobranie odwołania do elementu <div> na stronie
  // wyświetla status żądania
  if (xmlHttpUserfiltr.readyState == 1)
  {

  }
  else if (xmlHttpUserfiltr.readyState == 2)
  {

  }
  else if (xmlHttpUserfiltr.readyState == 3)
  {

  }
  // kiedy status readyState wynosi 4, odczytujemy odpowiedź serwera
  else if (xmlHttpUserfiltr.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttpUserfiltr.status == 200) 
    {
      try
      {
        // czyta wiadomość wysłaną z serwera
        response = xmlHttpUserfiltr.responseText;
        // wyświetla wiadomość
       myDiv = document.getElementById("colorscale");
        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" +
        xmlHttpUserfiltr.statusText);
    }
  }
}





var obszar = document.getElementById("crop");
var inputgoradol = document.getElementById("input_wartosc2");
var inputlewoprawo = document.getElementById("input_wartosc3");


function getinput() 
{
    oCurrentMessage = document.getElementById("input_wartosc2").value;
    oCurrentMessage = parseInt(oCurrentMessage); 
}

function getinputLP() 
{
    oCurrentMessage = document.getElementById("input_wartosc3").value;
    oCurrentMessage = parseInt(oCurrentMessage); 
}

function obnizCrop()
{

   getinput();

        var przesunieciedol = oCurrentMessage;
        
        //obszar.innerHTML = 'Pozycja od g??ry: ' + przesuniecie + ' pikseli';
        przesunieciedol += 10;
        inputgoradol.value = przesunieciedol;
        obszar.style.top = przesunieciedol + 'px';


}

function goraCrop()
{
   getinput();

  var przesunieciegora = oCurrentMessage;
        
        
        //obszar.innerHTML = 'Pozycja od g??ry: ' + przesuniecie + ' pikseli';
        przesunieciegora -= 10;
     inputgoradol.value = przesunieciegora;
     obszar.style.top = przesunieciegora + 'px';

}

function lewoCrop()
{
   getinputLP();

  var przesuniecielewo = oCurrentMessage;
        
        
        //obszar.innerHTML = 'Pozycja od g??ry: ' + przesuniecie + ' pikseli';
        przesuniecielewo -= 10;
     inputlewoprawo.value = przesuniecielewo;
     obszar.style.left = przesuniecielewo + 'px';

}

function prawoCrop()
{
   getinputLP();

  var przesuniecieprawo = oCurrentMessage;
        
        
        //obszar.innerHTML = 'Pozycja od g??ry: ' + przesuniecie + ' pikseli';
        przesuniecieprawo += 10;
     inputlewoprawo.value = przesuniecieprawo;
     obszar.style.left = przesuniecieprawo + 'px';

}

function zmienCrop()
{
    topy = document.getElementById("input_wartosc2").value;
    leftx = document.getElementById("input_wartosc3").value;
         
     obszar.style.top = topy + 'px';
     obszar.style.left = leftx + 'px';

  var oCurrentMessage = document.getElementById("input_photo").value;
  // 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", "crop_engine.php?crop_left="+ leftx +"&crop_top="+ topy +"&photo="+ oCurrentMessage, true);
      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());
    }
  }

}
