//JavaScript Document
//tablica
var towarPreviewXmlHttpRequest = createXmlHttpRequestObject();
var towarPreviewTimeoutId = -1;
//object do elemntu div w którym ma byc wyswietlona odpowiedz z serwera
var towarPreviewDiv = null;
//jest to id towaru dla ktorego zazadano podgladu
var towarPreviewLastId = -1;
//jest to id towaru dla ktorego zazadano podgladu
var towarPreviewSendId = -1;
//jest to id towaru dla ktorego zazadano podgladu
var towarPreviewDispId = -1;

function towar_preview( towar_id ){
    //jesli id towaru jest rowne temu na które wlasnie oczekujemy to nic nie rob
    if ( towarPreviewSendId == towar_id ) return;

    towarPreviewLastId = towar_id;
    
    
    //jesli AJAX działa no to bedzie dodawanie bez przeładowania
    if(towarPreviewXmlHttpRequest){
        try
        {
          /* jeśli obiekt XMLHttpRequest nie jest zajęty obsługą poprzedniego żądnia... */
          if ( towarPreviewXmlHttpRequest.readyState == 4 || towarPreviewXmlHttpRequest.readyState == 0 ){
            //zapamietuje dla jagiego id zostało wysłane zadanie
            showTlo();
            showLoading();

            towarPreviewSendId = towar_id;
            
            if (towarPreviewDispId == towar_id){
                showTowarPreview();
            }else{
                towarPreviewXmlHttpRequest.open("GET", MAIN_URL + '/action_towar/mode_show/ajax_1/ID_' + towar_id, true);
                towarPreviewXmlHttpRequest.onreadystatechange = handleTowarPreviewResponse;
                towarPreviewXmlHttpRequest.send(null);
            }
          }
          // jeśli jest zajęty...
          else
          {
            // ponawia próbę po 0.5 sekundy
            if(towarPreviewTimeoutId != -1)
              clearTimeout(towarPreviewTimeoutId);
              //do something
              
            towarPreviewTimeoutId = setTimeout( function(){
                towar_preview(towar_id);
                }, 500);
          }
        }
        catch(e)
        {
          //alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
          window.location = MAIN_URL + '?action=towar&mode=show&ID=' + towar_id;
        }
    }else{
        //w przciwnym razie zmieniamy adres przegladarki
        window.location = MAIN_URL + '?action=towar&mode=show&ID=' + towar_id ;
    }
}

function handleTowarPreviewResponse(){
  //po ukończeniu procesu, decyduje co zrobić z otrzymanymi danymi
  if (towarPreviewXmlHttpRequest.readyState == 4)
  {
    // tylko jeśli status żądania HTTP jest "OK"
    if ( towarPreviewXmlHttpRequest.status == 200)
    {
      try{
        // przetwarza odpowiedź serwera
        // pobiera element dokumentu
        if ( !towarPreviewDiv )
          towarPreviewDiv = document.getElementById('towar_preview_div');

        towarPreviewDiv.innerHTML = towarPreviewXmlHttpRequest.responseText;

        //jesli nie wystapilo klikniecie w miedzy czasie na inny towar aby zobaczyc podglad
        //to nie wyswietlaj otrzymanej odpowiedzi z serwera tylko poczekaj na nastepne zadanie
        if( towarPreviewSendId == towarPreviewLastId )
          showTowarPreview();
        
      }
      catch(e)
      {
        // wyświetla komunikat o błędzie
        alert(e.toString());
      }
    }else{
        alert("Wystąpił problem podczas pobierania danych:\n" + towarPreviewXmlHttpRequest.statusText);
    }
  }

}


function showTowarPreview(){
    towarPreviewDispId = towarPreviewSendId;

    towarPreviewSendId = -1;
    
    hideLoading();

    tloRegFunction( 'onclick', hideTowarPreview );
    
    if( !towarPreviewDiv) towarPreviewDiv = document.getElementById('towar_preview_div');


    center_both_obj(towarPreviewDiv);

}


function hideTowarPreview(){
    hideTlo();
    
    if( !towarPreviewDiv) towarPreviewDiv = document.getElementById('towar_preview_div');

    towarPreviewDiv.style.visibility = 'hidden';
    towarPreviewDiv.style.display = 'none';
    towarPreviewDiv.style.top = 0;
    towarPreviewDiv.style.left = 0;
}
