// JavaScript Document
//tablica
var koszykXmlHttpRequest = createXmlHttpRequestObject();
var PHPSESSID = '';

function do_koszyka(towar_id, numer){

    if( !document.forms['towary']['do_koszyka['+towar_id+']'] ){
        alert(langs['do_koszyka_ilosc_err']);
        return false;
    }

    var ilosc = parseFloat(document.forms['towary']['do_koszyka['+towar_id+']'].value.replace(',', '.') );

    if(isNaN(ilosc)){
        
        alert(langs['do_koszyka_ilosc_err']);
        return false;
    }

    if( ilosc <= 0 ){
        alert(langs['do_koszyka_ilosc_err']);
        return false;
    }

    //jesli AJAX działa no to bedzie dodawanie bez przeładowania
    if(koszykXmlHttpRequest){
        try
        {
          /* jeśli obiekt XMLHttpRequest nie jest zajęty obsługą poprzedniego żądnia... */
          if ( koszykXmlHttpRequest.readyState == 4 || koszykXmlHttpRequest.readyState == 0 ){
            koszykXmlHttpRequest.open("GET", MAIN_URL + '?action=koszyk&mode=dodaj&ajax=1&ID=' + towar_id + '&SZT=' + ilosc, true);
            koszykXmlHttpRequest.onreadystatechange = handleKoszykResponse;
            koszykXmlHttpRequest.send(null);
          }else{// jeśli jest zajęty...
            // ponawia próbę po 0.5 sekundy
            setTimeout( function(){
                do_koszyka(towar_id, numer);
                }, 500);
          }
        }catch(e){
          //alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
          window.location = MAIN_URL + '?action=koszyk&mode=dodaj&ID=' + towar_id + '&SZT=' + ilosc;
        }
    }else{
        //w przciwnym razie zmieniamy adres przegladarki
        window.location = MAIN_URL + '?action=koszyk&mode=dodaj&ID=' + towar_id + '&SZT=' + ilosc;
    }
}

function handleKoszykResponse(){
  //po ukończeniu procesu, decyduje co zrobić z otrzymanymi danymi
  if (koszykXmlHttpRequest.readyState == 4)
  {
    // tylko jeśli status żądania HTTP jest "OK"
    if ( koszykXmlHttpRequest.status == 200)
    {
      try{
        // przetwarza odpowiedź serwera
        // pobiera element dokumentu
        var xmlRoot = koszykXmlHttpRequest.responseXML.documentElement;
        var response = xmlRoot.getElementsByTagName('odpowiedz').item(0);
        
        var dodano = parseInt(response.getAttribute('dodano'));
        var towar_nazwa = response.getAttribute('nazwa');
        var brak_towaru = response.getAttribute('brak_towaru');
        
        if ( dodano > 0 ){
            var lp = parseInt(response.getAttribute('liczba_poz'));
            var wn = parseFloat(response.getAttribute('wartosc_netto'));
            var wb = parseFloat(response.getAttribute('wartosc_brutto'));
            //aktualizuje stan koszyka
            update_stan_koszyka(lp, wn, wb);

            alert(langs['koszyk_towar_add_ok'].replace('TOWAR_NAZWA', towar_nazwa ));

            if ( brak_towaru ) {
                window.location = MAIN_URL + '?action=koszyk' ;
            }
        }else{
            var blad = response.getAttribute('error');

            alert( langs['koszyk_towar_add_err'] + "\n" + blad);
        }
        
      }catch(e){
          // wyświetla komunikat o błędzie
          alert( e.toString() );
      }
    }else{
        alert( "Wystąpił problem podczas pobierania danych:\n" + koszykXmlHttpRequest.statusText);
    }
  }

}

function update_stan_koszyka(liczba_poz, wartosc_netto, wartosc_brutto){
    var lp_el = document.getElementById('koszyk_liczba_poz');
    if( !lp_el ){
      //alert('Nie znalazełem elementu koszyk_liczba_poz');
      return false;
    }
    //pozostałych elementów nie sprawdzam poniewaz jesli nie ma pierwszego to
    //koszyk_wartosc_netto i koszyk_wartosc_brutto nie wystapia, bo albo nie działa
    //metod dokumentu getElementById albo nie ma ich w dokumencie
    var wn_el = document.getElementById('koszyk_wartosc_netto');
    var wb_el = document.getElementById('koszyk_wartosc_brutto');

    liczba_poz = parseInt(liczba_poz);


    lp_el.innerHTML = '<b>' + liczba_poz + '</b>';
    wn_el.innerHTML = '<b>' + currency_format( wartosc_netto ) + '</b>';
    wb_el.innerHTML = '<b>' + currency_format( wartosc_brutto ) + '</b>';
}



var o_koszyk_load_div = null;
var o_koszyk_save_div = null;

function show_koszyk_save_form(){

    showTlo();

    if( !o_koszyk_save_div ) o_koszyk_save_div = document.getElementById('koszyk_save_div');

    center_both_obj(o_koszyk_save_div);

    var f = document.forms['koszyk_save_form'];
    
    //f.koszyk_nazwa.focus();

}


function anuluj_koszyk_save_form(){
    var f = document.forms['koszyk_save_form'];
    
    hide_obj(o_koszyk_save_div);

    hideTlo();
}

function koszyk_save_form_check(o_form){
    if( arguments.length == 0 ){
        o_form = document.forms['koszyk_save_form'];
    }
    
    if( !( parseInt(o_form.koszyk_id.value) > 0) && o_form.koszyk_nazwa.value == '' ){
        alert(langs['koszyk_nazwa_wpisz']);
        return false;
    }

    return true;
    
}



function show_koszyk_load_form(){

    showTlo();

    if( !o_koszyk_load_div ) o_koszyk_load_div = document.getElementById('koszyk_load_div');

    center_both_obj(o_koszyk_load_div);

    var f = document.forms['koszyk_load_form'];

}


function anuluj_koszyk_load_form(){

    var f = document.forms['koszyk_load_form'];

    hide_obj(o_koszyk_load_div);

    hideTlo();
}

function koszyk_load_form_check(o_form){
    if( arguments.length == 0 ){
        o_form = document.forms['koszyk_load_form'];
    }

    if( !(o_form.koszyk_id.value > 0)  ){
        alert(langs['koszyk_wybierz']);
        return false;
    }

    return true;
}

function koszyk_ondelete(){
    var o_form = document.forms['koszyk_load_form'];

    if( o_form.koszyk_id.value > 0 ){
        if(confirm('Potwierdź usuwanie koszyka'))
            window.location = MAIN_URL + '?action=koszyk&mode=delete&koszyk_id='+o_form.koszyk_id.value;
    }else{
        alert(langs['koszyk_wybierz']);
    }
    
}

