function sliderProdukty(opcje){

    this.idElementu             =      opcje.idElementu.evalJSON();      // tablica produktow
    this.aktualnaStrona         =      1;
    this.klasaElementu          =      (opcje.klasaElementu)?opcje.klasaElementu:'elementSlider';
   // this.funkcjaPobieraniaDanych =      opcje.funkcjaPobieraniaDanych; // 1- nie pobiera danych, potrzebne do opcji gdzie wszystkie boksy są juz wgrane na samym starcie
    this.idDivaZContentem       =      opcje.idDivaContent;              // div w ktorym beda produkty
    this.iloscNaStronie         =      (opcje.iloscNaStronie)?parseInt(opcje.iloscNaStronie):4;
    //this.przeskakujStronami   =      (opcje.przeskakujStronami)?opcje.przeskakujStronami:true;
    this.przesunOTylePikseli    =      (opcje.szerokoscDivaZElementem)?opcje.szerokoscDivaZElementem*this.iloscNaStronie:zaokraglijWGore(parseInt(this.idDivaZContentem)/this.iloscNaStronie)*this.iloscNaStronie;
    //this.przesunOTylePikseli  =      opcje.szerokoscDivaZElementem;
    this.produktyWgrane         =      new Array();                      // tablica produktow ktorych dane zostaly wgrane
    this.blokada                =   false;
    this.wgrywaneProdukty       =   '';
    this.iloscStrona            =   Math.ceil(this.idElementu.size()/this.iloscNaStronie);
    
    //this.iloscStrona          =   this.idElementu.length;
    this.szerokoscElementow =   this.idElementu.length*this.przesunOTylePikseli

    if(!this.idElementu || !this.funkcjaPobieraniaDanych || !this.idDivaZContentem){
        if(!this.idElementu ){
            alert('Brakuje elementów');
        //}else if(!this.funkcjaPobieraniaDanych){
        //    alert('Brakuje funkcji pobierania danych');
        //}else if(!this.idDivaZContentem){
        //    alert('Brakuje kontenera gdzie mam wrzucać dane');
        }
    }else{
      //  for(var i=0; i<=(this.iloscNaStronie*2); i++){
       //     this.sprawdzCzyProduktJestWgrany(this.idElementu[i])
       // }
       // this.pobierzProdukty();
       // if(this.iloscNaStronie>1){
            $(this.idDivaZContentem).style.width=this.szerokoscElementow+'px'
       // }
    }
}

function zaokraglijWGore(liczba){
    return (Math.ceil(liczba*100))/100;
}

sliderProdukty.prototype.stworzDiva =   function(idElementu){
    $(this.idDivaZContentem).innerHTML += "<div class='"+this.klasaElementu+"' id='"+this.idDivaZContentem+"_"+idElementu+"'><img src='/q_img/working.gif' /></div>"
}

sliderProdukty.prototype.dograjElementy = function(){
    indeksOd    =   (this.aktualnaStrona*this.iloscNaStronie)-this.iloscNaStronie
    indeksDo    =   indeksOd+(this.iloscNaStronie*2)
    this.wgrywaneProdukty = '';
    for(var x=indeksOd; x<=indeksDo; x++){
        this.sprawdzCzyProduktJestWgrany(this.idElementu[x])
    }
    this.pobierzProdukty()
}

sliderProdukty.prototype.sprawdzCzyProduktJestWgrany = function(idElementu){
    //Sprawdzam czy produkt zostal juz wgrany
    if(this.produktyWgrane.indexOf(idElementu)== -1 && idElementu>0){
        this.produktyWgrane.push(idElementu)
        //sprawdzam czy wszystkie dane nie zostały wgrane przy starcie
        if(this.funkcjaPobieraniaDanych!=1){
            this.wgrywaneProdukty+=","+idElementu
        }
    }
}

sliderProdukty.prototype.pobierzProdukty = function(idElementu){
        //if(!$(this.idDivaZContentem+"_"+idElementu)){
           // this.stworzDiva(idElementu)
        //}
        var _this   =   this;
        if(this.wgrywaneProdukty!=''){
            new Ajax.Request(this.funkcjaPobieraniaDanych,{
                'parameters':{
                    'idElementu':_this.wgrywaneProdukty,
                    'div':_this.idDivaZContentem
                },
                'onSuccess':function(odp){
                    $(_this.idDivaZContentem).innerHTML += odp.responseText.strip()
                    $(_this.idDivaZContentem).style.width = (parseInt($(_this.idDivaZContentem).style.width)+_this.przesunOTylePikseli)+'px'

                }
            })
        }
}

sliderProdukty.prototype.przesunWLewo = function(){
    
    //sprawdzam czy jest mozliwosc przesuniecia
    //if(this.aktualnaStrona>1 && !this.blokada){
    if(!this.blokada){
        this.przesunSlider(this.przesunOTylePikseli)
        this.sprawdzPozycje(1);
        this.aktualnaStrona = (this.aktualnaStrona==1)?4:this.aktualnaStrona-1;
        this.blokada=true
    }

}

sliderProdukty.prototype.przesunWPrawo = function(){
    //sprawdzam czy jest mozliwosc przesuniecia
    //if((this.aktualnaStrona+1)<=this.iloscStrona){
        //sprawdzam czy trzeba wgrac produkt, nastepny
    if(!this.blokada){
        this.aktualnaStrona = (this.aktualnaStrona==4)?1:this.aktualnaStrona+1;
        //this.dograjElementy();
        this.przesunSlider(-this.przesunOTylePikseli);
        this.sprawdzPozycje(2);
        this.blokada=true
    }
    //}else{
    //     this.aktualnaStrona++;
   // }
}
sliderProdukty.prototype.przesunWPrawoInfo = function(){
    if((this.aktualnaStrona+1)<=this.iloscStrona && !this.blokada){
        this.aktualnaStrona++;
        this.przesunSlider(-this.przesunOTylePikseli);
        this.blokada=true
    }
}
sliderProdukty.prototype.przesunWLewoInfo = function(){
    if(this.aktualnaStrona>1 && !this.blokada){
        this.aktualnaStrona--;
        this.przesunSlider(this.przesunOTylePikseli);
        this.blokada=true
    }
}
sliderProdukty.prototype.sprawdzPozycje = function(kier){
    if(kier==2){
        if($(this.idDivaZContentem+'_'+this.aktualnaStrona).next()==null){
            var elementPierwszy=$(this.idDivaZContentem).children[0].innerHTML
            var idPierwsz   =   $(this.idDivaZContentem).children[0].id
            $(this.idDivaZContentem).children[0].remove();
            var divN        =   new Element('div',{'class':'elementSliderProduktStrona','id':idPierwsz}).insert(elementPierwszy)
            $(this.idDivaZContentem).appendChild(divN)
            var lewa    =   parseInt($(this.idDivaZContentem).style.left);
            $(this.idDivaZContentem).style.left=this.przesunOTylePikseli+lewa+'px'
        }
    }else{
        //debugger
        if($(this.idDivaZContentem+'_'+this.aktualnaStrona).previous()==null){
            var elementOstat=$(this.idDivaZContentem).children[3].innerHTML
            var idOstat     =   $(this.idDivaZContentem).children[3].id
            $(this.idDivaZContentem).children[3].remove();
            var divN        =   new Element('div',{'class':'elementSliderProduktStrona','id':idOstat}).insert(elementOstat)
            $(this.idDivaZContentem).insertBefore(divN,$(this.idDivaZContentem).children[0])
            var lewa    =   parseInt($(this.idDivaZContentem).style.left);
            lewa=(lewa)?lewa:0;
            $(this.idDivaZContentem).style.position='absolute';
            $(this.idDivaZContentem).style.left=lewa- this.przesunOTylePikseli+'px'
        }
    }
}
sliderProdukty.prototype.przesunSlider = function(x){
    var _this= this
    new Effect.Move($(this.idDivaZContentem), { 'x': x, 'y': 0, mode: 'relative', duration:0.4,afterFinish: function (){_this.blokada=false} });
    //new Effect.Move($(this.idDivaZContentem), { 'x': x, 'y': 0, mode: 'relative', duration:0 });
}
/*
sliderProdukty.prototype.wgrajWszystkieProdukty = function(){
    var _this = this
    this.idElementu.each(function(id){
       // _this.sprawdzCzyProduktJestWgrany(id)
    })
}
*/
