// JavaScript Document
//tablica
var koszykXmlHttpRequest = createXmlHttpRequestObject();
var PHPSESSID = '';

function do_koszyka(towar_id, numer, ilosc ){


    if( arguments.length == 2 ){
        if( !document.forms['towary']['do_koszyka['+towar_id+']'] ){
            alert('Ilość dodawanego towaru musi byc liczbą.');
            return false;
        }
        
        ilosc = parseFloat(document.forms['towary']['do_koszyka['+towar_id+']'].value.replace(',', '.') );

        if( isNaN(ilosc) ){
            alert('Ilość dodawanego towaru musi byc liczbą.');
            return false;
        }

        if( ilosc <= 0 ){
            alert('Ilość dodawanego towaru musi być większa od zera.');
            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 do_koszyka1(towar_id, ilosc ){

    if(arguments.length == 1 ) ilosc = 1;
    
    do_koszyka(towar_id, null, 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');
        
        if(dodano > 0){
            var lp = parseInt(response.getAttribute('liczba_poz'));
            var wn = parseFloat(response.getAttribute('wartosc_netto'));
            var wb = parseFloat(response.getAttribute('wartosc_brutto'));
            var wn_po_rabacie = parseFloat(response.getAttribute('wartosc_netto_po_rabacie'));
            var wb_po_rabacie = parseFloat(response.getAttribute('wartosc_brutto_po_rabacie'));

            //aktualizuje stan koszyka
            update_stan_koszyka(lp, wn, wb, wn_po_rabacie, wb_po_rabacie);

            alert('Towar: ' + towar_nazwa + ' został pomyślnie dodany do koszyka!');
        }else{
            var blad = response.getAttribute('error');
            alert('Nie dodano towaru do koszyka! \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, wartosc_netto_po_rabacie, wartosc_brutto_po_rabacie){
  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');
  var wn_el_po_rabacie = document.getElementById('koszyk_wartosc_netto_po_rabacie');
  var wb_el_po_rabacie = document.getElementById('koszyk_wartosc_brutto_po_rabacie');

  liczba_poz = parseInt(liczba_poz);

  lp_el.innerHTML = '<b>' + liczba_poz + '</b>';
  if( wn_el ) wn_el.innerHTML = '<b>' + currency_format( wartosc_netto ) + '</b>';
  if( wb_el ) wb_el.innerHTML = '<b>' + currency_format( wartosc_brutto ) + '</b>';
  
  if( wn_el_po_rabacie) wn_el_po_rabacie.innerHTML = '<b>' + currency_format( wartosc_netto_po_rabacie ) + '</b>';
  if( wb_el_po_rabacie) wb_el_po_rabacie.innerHTML = '<b>' + currency_format( wartosc_brutto_po_rabacie ) + '</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('Wpisz nazwę pod którą ma zostać zapisana zawrtość koszyka lub wybierz już istniejący koszyk!');
        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('Wybierz koszyk którego zawartość chcesz wczytać!');
        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('Wybierz koszyk który chcesz usunąć!');
    }
}



function do_koszyka_onkeydown( event ){
    event = (!event) ? window.event : event;
    
    var code = (event.charCode) ? event.charCode :((event.keyCode) ? event.keyCode :((event.which) ? event.which : 0));

    var towar_id = 0;
    
    
    if( code == 13 ){
        if( typeof(DO_KOSZYKA_MULTI) != 'undefined' && DO_KOSZYKA_MULTI == 1){
            //jeszcze robie sprawdzenie
            var o_input = null;
            var o_form = this.form;
            var ile = 0;
            for( var i = 0; i < o_form.elements.length; i++  ){
                o_input = o_form.elements[i];
                
                if( typeof(o_input) == 'object' && o_input.name.match(/^do_koszyka\[([0-9]+)\]$/) ){
                    if( o_input.value > 0 ){
                        ile++;
                    }
                }
            }

            if( ile > 1 ){
                o_form.submit();
                return true;
            }
        }
        
        var a_found = null;
        
        a_found = this.name.match(/^do_koszyka\[([0-9]+)\]$/);
        
        towar_id = parseInt(a_found[1]);
        
        do_koszyka(towar_id, 0);
    }
}

function register_do_koszyka_onkeydown(){
    var o_form = document.forms['towary'];
    
    if( o_form ){
        var o_input = null;
        var ile = 0;
        for( var i = 0; i < o_form.elements.length; i++  ){
            o_input = o_form.elements[i];

            if( typeof(o_input) == 'object' && o_input.name.match(/^do_koszyka\[([0-9]+)\]$/) ){
                o_input.onkeydown = do_koszyka_onkeydown;
            }
        }
    }
}



add_event( 'load', window , register_do_koszyka_onkeydown);

