﻿
var OBJSlide = Class.create()
OBJSlide.prototype = {
    initialize: function(JSONParams, startUp) {
        //radiobutton filter
        /*   this.filterRadio=JSONParams.filterRadio ? JSONParams.filterRadio : null;
        this.filterRadioText=JSONParams.filterRadioText ? JSONParams.filterRadioText : null;
        this.LastRadioFilterSelected=null
        */
        this.itemContainer = $(JSONParams.itemContainer)
        this.className = JSONParams.className;
        this.bindAtStartup = JSONParams.bindAtStartup;
        this.dataField = JSONParams.dataField;
        this.orderBy = JSONParams.orderBy ? $(JSONParams.orderBy) : null;
        /*    this.filter=(JSONParams.filter) ? JSONParams.filter : null*/
        this.titre = JSONParams.titre ? $(JSONParams.titre) : '';
        this.permanentTag = JSONParams.permanentTag ? JSONParams.permanentTag : '';
        this.items = new OBJSlideItems(JSONParams.items, this)
        this.tags = '';

        //compteurRequeteAjax permet d'attribuer un no aux requetes ajax afin de savoir si d'autre requete sont en cours
        this.compteurRequeteAjax = 0
        this.prixMin = null;
        this.prixMax = null;

        this.slidePage = (JSONParams.slidePage) ? JSONParams.slidePage : null
        this.selectedPage = 1
        this.rank = (JSONParams.rank) ? JSONParams.rank : 0

        this.slideShow = (JSONParams.slideShow) ? new OBJSlideShow(JSONParams.slideShow, this) : null

        if (startUp) {
            this.lastrequete = startUp
            // var d = //.evalJSON()
            this.render()
        } else {
            if (this.titre) { this.titre.hide(); }
            /*      if(this.filterRadio){ $('filterRadio').hide(); }*/
            if (this.orderBy) { this.orderBy.up().hide(); }
        } /*
        
        
        if(this.bindAtStartup){
            var df=$(this.dataField).getValue();
            if(df!=''){
                var d=$(this.dataField).getValue().evalJSON()
                this.render(d)
            }
        }else{
            if(this.titre){ this.titre.hide(); }
            if(this.filterRadio){ $('filterRadio').hide(); }
        }*/
        /*    if(this.filterRadio){
        var s='<span class="fleft padL15">'+this.filterRadioText+'</span><input type="radio" name="filter" id="radioFilter0" checked value="0"/><label>All</label>'
        for(var cmpt=0;cmpt<this.filterRadio.length;cmpt++){
        s=s+'<input type="radio" name="filter" datakey="'+this.filterRadio[cmpt].id+'" id="radioFilter'+this.filterRadio[cmpt].id+'" value="'+this.filterRadio[cmpt].id+'"/><label>'+this.filterRadio[cmpt].name+'</label>'
        }
        $('filterRadio').insert(s);
        $('radioFilter0').observe('click',function(e){
        if(this.LastRadioFilterSelected){
        var reg=new RegExp("[_]+", "g");
        var tab=this.tags.split(reg)
        var newTags='';
        for(var ta=0;ta<tab.length;ta++){
        if(tab[ta]!=this.LastRadioFilterSelected){ if(ta!=0){ newTags=newTags+'_'+tab[ta];}else{newTags=tab[ta]; } }
        }
        this.tags=newTags
        }
        this.LastRadioFilterSelected=null
        if(this.tags){
        this.dataBind(this.tags,this.prixMin,this.prixMax,0)
        }else{
        //speshoesheo
        // initializeSearch()
                   
        }
        }.bindAsEventListener(this));
        for(var cmpt=0;cmpt<this.filterRadio.length;cmpt++){
        $('radioFilter'+this.filterRadio[cmpt].id).observe('click',function(e){
        if(this.LastRadioFilterSelected){
        var reg=new RegExp("[_]+", "g");
        var tab=this.tags.split(reg)
        var newTags='';
        for(var ta=0;ta<tab.length;ta++){
        if(tab[ta]!=this.LastRadioFilterSelected){
        if(ta!=0){ newTags=newTags+'_'+tab[ta];}else{newTags=tab[ta]; }
        }
        }
        this.tags=newTags
        }
        var dtk=e.target.getAttribute('datakey')
        if(this.tags){
        this.dataBind(this.tags+'_'+dtk,this.prixMin,this.prixMax,0)
        }else{
        this.dataBind(dtk,this.prixMin,this.prixMax,0)
        }
        this.LastRadioFilterSelected=dtk
        }.bindAsEventListener(this));
        }
        }*/
        if (this.orderBy) {
            this.orderBy.selectedIndex = 0
            this.orderBy.observe('change', function(e) {
                this.dataBind(this.tags, this.prixMin, this.prixMax, 0)
            } .bind(this));
        }
        this.lastTag = null;
       // this.lastrequete = null;
    },

    dataBind: function(tag, prixMin, prixMax, rank) {
        if (rank == 0) {
            this.selectedPage = 1
        }

        /*  if(this.LastRadioFilterSelected){
        var reg=new RegExp("[_]+", "g");
        var tab=tag.split(reg)
        var isRadioTag=false;
        for(var ta=0;ta<tab.length;ta++){
        if(tab[ta]==this.LastRadioFilterSelected){
        isRadioTag=true
        }
        }
        if(isRadioTag==false){
        tag=tag+'_'+this.LastRadioFilterSelected
        }
            
        }*/

        this.tags = tag
        this.items.removeAll()
        this.showElement()

        if (!$("loadingImg")) {
            var tcpn=$(this.itemContainer.parentNode)
            tcpn.insert('<u id="loadigu"></u>')
            var di = new Element('DIV')
            di.setStyle('margin:20px 0px;text-align:center;')
            di.id = 'loadingImg'
            
            var im = new Element('IMG')
            im.src = 'http://' + window.location.host + '/images/loading.gif'
            di.insert(im)
            di.insert('<br/> chargement en cours')
            tcpn.insert(di)
        }
        if ($(this.itemContainer.id + 'button')) {
            $(this.itemContainer.id + 'button').remove();
            $(this.itemContainer.id + 'uButton').remove();
        }
        if ($(this.itemContainer.id + 'buttonBas')) {
            $(this.itemContainer.id + 'buttonBas').remove();
            $(this.itemContainer.id + 'uButtonBas').remove();
            this.titreBas.remove()
            $(this.itemContainer.id + 'uTitre').remove()
        }
        this.prixMin = prixMin != 'undefined' ? prixMin : '-1';
        this.prixMax = prixMax != 'undefined' ? prixMax : '-1';

        if (this.titre) {
            this.titre.show()
        }
        var p = this.items.itemParam
        var pa = '';
        for (var i = 0; i < p.labels.length; i++) {
            pa = pa + p.labels[i].nom + '_'
        }
        pa = pa.substring(0, pa.length - 1)

        /*var per='';
        if(this.permanentTag!=null){
        if(tag!='') per='_'
        per=per+this.permanentTag
        }
        */
        var params = 'tag=' + tag/*+per*/ + '&label=' + pa//+'&ffield='+this.filter.field+'&fope='
        /*      if(this.filter.ope=='='){
        params=params+'1'
        }else{
        params=params+'0'
        }
        */
        //  params=params+'&fvalue='+this.filter.value
        this.rank = rank
        if (this.slidePage) { params = params + '&nb=' + this.slidePage + '&rank=' + this.rank }
        params = params + '&prixMin=' + this.prixMin
        params = params + '&prixMax=' + this.prixMax
        if (this.orderBy) { params = params + '&orderBy=' + this.orderBy.value; }
        this.compteurRequeteAjax = this.compteurRequeteAjax + 1
        var idRequete = this.compteurRequeteAjax

        var a = new Ajax.Request('OBJSlideDataByTag.ajax', {
            method: 'POST',
            postBody: params,
            onComplete: function(transport) {
                var r = transport.responseJSON
                if (idRequete == this.compteurRequeteAjax) {
                    this.lastrequete = r
                    this.render();
                    //this.selectedPage=rank/this.slidePage
                } else {


                }
            } .bind(this)
        })
    },

    render: function() {
        //  alert('rebnder')
        var r = this.lastrequete
        if ($("loadingImg")) $("loadingImg").remove();
        if ($("loadigu")) $("loadigu").remove();

        if (this.slidePage) {
            var y = 0;
            var cpt = 1;
            var n = this.slidePage;
            if ($(this.itemContainer.id + 'button')) $(this.itemContainer.id + 'button').remove()
            if ($(this.itemContainer.id + 'buttonBas')) $(this.itemContainer.id + 'buttonBas').remove()
            if ($(this.itemContainer.id + 'uButton')) $(this.itemContainer.id + 'uButton').remove()
            if ($(this.itemContainer.id + 'uButtonBas')) $(this.itemContainer.id + 'uButtonBas').remove()
            if (this.titreBas) this.titreBas.update()

            if ($(this.itemContainer.id + '_cell')) { $(this.itemContainer.id + '_cell').remove() }
            
            //create navigation button 
            var button = new Element('div')
            var buttonBas = new Element('div')
            button.id = this.itemContainer.id + 'button'
            buttonBas.id = this.itemContainer.id + 'buttonBas'
            button.className = 'navpages'
            buttonBas.className = 'navpages'

            if (!this.titreBas) this.titreBas = new Element('H1')
            this.titreBas.className = 'bar'

            this.titreBas.insert('<span class="fleft"> </span>')
            this.titreBas.insert(buttonBas)
            this.titreBas.insert('<u id="' + this.itemContainer.id + 'uButtonBas">&nbsp;</u>')

            this.itemContainer.insert({ 'after': this.titreBas })
            this.itemContainer.insert({ 'after': '<u id="' + this.itemContainer.id + 'uTitre"></u>' })
            this.titre.insert(button)
            this.titre.insert('<u id="' + this.itemContainer.id + 'uButton">&nbsp;</u>')
                
            var di = new Element('div')
            di.id = this.itemContainer.id + '_cell'
            di.setStyle('float:left;');
            di.setOpacity(0)
            this.itemContainer.insert(di)

            n = parseInt(n)
            for (var i = 0; i < n; i++) {
                var idPr = parseInt(this.rank) + i;
                if (idPr < r.data.length) {
                    var e = this.items.addItem(this.items.itemParam)
                    e.databind(r.data[idPr])
                    di.insert(e.getElement())
                }
            }

            this.itemContainer.setStyle('left:0px;');
            
            var tt;
            if (r.data.length != n) {
                if (Math.floor(r.data.length / n) != r.data.length / n) {
                    tt = Math.floor(r.data.length / n) + 1
                } else {
                    tt = Math.floor(r.data.length / n)
                }
            } else {
                tt = 1
            }
            if (!this.tags) { this.tags = this.permanentTag }

            if (tt > 1) {
                var tag = this.tags
                var lastInsert = true
                var divv = new Element('div')
                
                var pt = new Element('span')
                var ptb = new Element('span')
                pt.insert('pages trouvées &gt;&gt;&gt; ')
                ptb.insert('pages trouvées &gt;&gt;&gt; ')
                pt.className = "pag"
                ptb.className = "pag"
                button.insert(pt)
                buttonBas.insert(ptb)
                for (var ii = 1; ii <= tt; ii++) {
                    if ((ii < 2 || ii > (tt - 1)) || (ii < (parseInt(this.selectedPage) + 3) && ii > (parseInt(this.selectedPage) - 3))) {
                        lastInsert = true
                        var sp = new Element('span')
                        var spb = new Element('span')

                        // sp.href=""
                        sp.id = this.itemContainer.id + '_onglet_' + ii
                        spb.id = this.itemContainer.id + '_ongletb_' + ii
                        sp.insert(ii)
                        spb.insert(ii)
                        sp.className = "page"
                        spb.className = "page"
                        sp.observe('click', function(e) {
                            if (this.selectedPage) {
                                $(this.itemContainer.id + '_onglet_' + this.selectedPage).className = ''
                                this.selectedPage = parseInt(e.target.innerHTML)
                            }

                            $(this.itemContainer.id + '_onglet_' + e.target.innerHTML).className = 'page current'
                            // this.selectedPage = e.target.innerHTML
                            if (!this.prixMin) { this.prixMin = '-1'; }
                            if (!this.prixMax) { this.prixMax = '-1'; }
                            this.rank = ((this.selectedPage - 1) * this.slidePage)
                            //     if (this.rank != 0) this.rank = this.rank - 1
                            this.render();
                            //  this.dataBind(tag, this.prixMin, this.prixMax, this.rank)

                        } .bindAsEventListener(this));

                        spb.observe('click', function(e) {
                            if (this.selectedPage) {
                                $(this.itemContainer.id + '_ongletb_' + this.selectedPage).className = ''
                                this.selectedPage = parseInt(e.target.innerHTML)
                            }

                            $(this.itemContainer.id + '_ongletb_' + e.target.innerHTML).className = 'page current'
                            //    this.selectedPage = e.target.innerHTML
                            if (!this.prixMin) { this.prixMin = '-1'; }
                            if (!this.prixMax) { this.prixMax = '-1'; }
                            this.rank = ((this.selectedPage - 1) * this.slidePage)
                       //     if (this.rank != 0) this.rank = this.rank - 1
                            this.render();

                        } .bindAsEventListener(this));
                        button.insert(sp)
                        buttonBas.insert(spb)
                    } else {
                        if (lastInsert == true) {
                            lastInsert = false
                            button.insert('<span style="float:left;border:0px;">...</span>')
                            buttonBas.insert('<span style="float:left;border:0px;">...</span>')
                        }

                    }
                }
                $(this.itemContainer.id + '_onglet_' + this.selectedPage).className = 'page current'
                $(this.itemContainer.id + '_ongletb_' + this.selectedPage).className = 'page current'
            }
            new Effect.Opacity($(this.itemContainer.id + '_cell'), { from: 0.0, to: 1.0, duration: 1.0,fps :100 })
            
        } else {

            for (var i = 0; i < r.data.length; i++) {
                var e = this.items.addItem(this.items.itemParam)
                e.databind(r.data[i])
                this.itemContainer.setStyle('left:0px;');
                this.itemContainer.insert(e.getElement())
            }
        }
        if (this.slideShow) { this.slideShow.reload() };
    },

    getElement: function() {
        //todo
    },
    hideElement: function() {
        this.itemContainer.up().hide()
    },
    showElement: function() {
        this.itemContainer.up().show()
        if (this.orderBy) { this.orderBy.up().show(); }
        //        if(this.filterRadio){ $('filterRadio').show(); }
        //        if(this.titre){
        //                this.titre.show();
        //        }
    }
}


var OBJSlideItems = Class.create()
OBJSlideItems.prototype = {
    initialize: function(JSONParams, parent) {
        var a = new Array()
        Object.extend(this, $A(a))
        this['push'] = a['push']
        this['length'] = a['length']
        this['indexOf'] = a['indexOf']
        this['splice'] = a['splice']
        if (parent) this.parent = parent
        this.itemParam = JSONParams
    },

    addItem: function(JSONitem) {
        var r = new OBJSlideItem(JSONitem, this);
        this.push(r);
        return r;
    },

    removeItem: function(it) {
        var i = this.getIndex(it);
        this.splice(i, 1);
        it.remove();
    },

    removeAll: function() {
        this.splice(0, this.length);
        if (!$(this.parent.itemContainer.id + '_cell')) {
            this.parent.itemContainer.update('');
        } else {
            $(this.parent.itemContainer.id + '_cell').remove()
        }
    },

    getIndex: function(it) {
        for (var i = 0; i < this.length; i++) {
            if (this[i] == it) { return i; }
        }
        return
    },

    getItemByDatakey: function(l) {
        for (var i = 0; i < this.length; i++) {
            if (this[i].datakey == l) { return this[i]; }
        }
        return
    }

}

var OBJSlideItem = Class.create()
OBJSlideItem.prototype = {
    initialize: function(JSONParams, parent) {
        this.element
        this.url = (JSONParams.url) ? JSONParams.url : null;
        this.className = (JSONParams.className) ? JSONParams.className : null;
        this.tagName = (JSONParams.tagName) ? JSONParams.tagName : null;
        this.style = (JSONParams.style) ? JSONParams.style : null;
        this.id = (JSONParams.id) ? JSONParams.id : null;
        this.datakey = (JSONParams.datakey) ? JSONParams.datakey : null;
        this.labels = new OBJSlideLabels(JSONParams.labels, this);
        this.urlElement = (JSONParams.urlElement) ? JSONParams.urlElement : null;

        if (parent) this.parent = parent
        //if(JSONParams){for (var property in JSONParams) this[property]=JSONParams[property];}
    },

    getElement: function() {
        if (!this.element) this.render();
        return this.element
    },

    databind: function(data) {
        this.datakey = data.id
        this.id = 'prod' + data.nb;
        for (var y = 0; y < data.label.length; y++) {
            if (this.labels.getLabelByName(data.label[y].name)) this.labels.getLabelByName(data.label[y].name).databind(data.label[y].value);
        }
    },

    render: function() {
        var it = new Element(this.tagName);
        if (this.className) it.className = this.className;
        if (this.style) it.setStyle(this.style);
        it.id = this.id;
        it.setAttribute('datakey', this.datakey);

        if (this.url) {
            var a = new Element('A');
            var reg = new RegExp("[{}]+", "g");
            var s = this.url.split(reg)
            var url = ''
            for (var i = 0; i < s.length; i++) {
                if (i % 2 == 0) {
                    url = url + s[i]
                } else {

                    switch (s[i]) {
                        case 'id': url = url + this.datakey; break;
                        case 'nom': url = url + this.labels.getLabelByName('nom'); break;
                        default: url = url + this.labels.getLabelByName(s[i]); break;
                    }
                }
            }
            a.href = url;
            a.setStyle('float:left;')
            //this.element=a;
        }

        for (var i = 0; i < this.labels.length; i++) {
            if (this.urlElement != this.labels[i].nom) {
                it.insert(this.labels[i].getElement());
            } else {
                if (this.url) {
                    var a = this.createLinkElement();
                    var ge = this.labels[i].getElement()
                    if (ge.firstChild) {
                        var im = ge.firstChild

                        a.appendChild(im)
                    }
                    ge.appendChild(a)
                    it.insert(ge);
                }
            }
        }

        if (this.url && !this.urlElement) {
            var a = this.createLinkElement();
            a.appendChild(it);
            a.setStyle('float:left;')
            this.element = a;
        } else {
            this.element = it;
        }
    },

    createLinkElement: function() {
        var a = new Element('A');
        var reg = new RegExp("[{}]+", "g");
        var s = this.url.split(reg)
        var url = ''
        for (var i = 0; i < s.length; i++) {
            if (i % 2 == 0) {
                url = url + s[i]
            } else {
                switch (s[i]) {
                    case 'id': url = url + this.datakey; break;
                    case 'nom': url = url + this.labels.getLabelByName('nom'); break;
                    default: url = url + this.labels.getLabelByName(s[i]); break;
                }
            }
        }
        //
        /*specific shoeshoe*/
        if (this.parent.parent.tags) {
            url = url + '&tag=' + this.parent.parent.tags
        }
        if (this.parent.parent.prixMin) {
            url = url + '&pmin=' + this.parent.parent.prixMin
        }
        if (this.parent.parent.prixMax) {
            url = url + '&pmax=' + this.parent.parent.prixMax
        }
        /*     /////////   */
        a.href = url;
        return a;
    },

    setClassName: function(className) {
        if (!className) return
        this.element.className = className;
        this.className = className
    },

    setStyle: function(JSONStyle) {
        if (!JSONStyle) return
        this.style = JSONStyle;
        this.element.setStyle(this.style)
    }

}


var OBJSlideLabels = Class.create()
OBJSlideLabels.prototype = {
    initialize: function(JSONParams, parent) {
        var a = new Array()
        Object.extend(this, $A(a))
        this['push'] = a['push']
        this['length'] = a['length']
        this['indexOf'] = a['indexOf']
        this['splice'] = a['splice']
        if (parent) this.parent = parent
        this.labelParams = JSONParams
        if (JSONParams) {
            for (var i = 0; i < JSONParams.length; i++) {
                this.addLabel(JSONParams[i]);
            }
        }
    },

    addLabel: function(JSONitem) {
        var r = new OBJSlideLabel(JSONitem, this);
        this.push(r);
        return r;
    },

    removeLabel: function(la) {
        var i = this.getIndex(la);
        this.splice(i, 1);
    },

    getLabelByName: function(l) {
        for (var i = 0; i < this.length; i++) {
            if (this[i].nom == l) { return this[i]; }
        }
        return
    },

    getIndex: function(la) {
        for (var i = 0; i < this.length; i++) {
            if (this[i] == la) { return i; }
        }
        return
    }

}

var minuteur = 0
var OBJSlideLabel = Class.create()
OBJSlideLabel.prototype = {
    initialize: function(JSONParams, parent) {
        this.nom = null;
        this.className = null;
        this.tagName = null;
        this.style = null;
        this.value = '';
        this.before = null;
        this.after = null;
        this.element
        minuteur = 0
        if (parent) this.parent = parent
        if (JSONParams) { for (var property in JSONParams) this[property] = JSONParams[property]; }
        this.render();
    },

    render: function() {
        var e = new Element(this.tagName);
        if (this.className) e.className = this.className;
        if (this.style) e.setStyle(this.style);
        //e.update(this.value);
        this.element = e;
    },

    databind: function(data) {
        if (data) {
            var d = data.replace('_', '\'');
            this.value = d;
            if (this.nom != 'photo') {
                if (this.nom == 'prixComment') {
                    if (d.indexOf(':', 0) > 0) {
                        //alert('yes')
                        if (d.indexOf('<b>', 0) > 0) {
                            var d1 = d.substring(0, (d.indexOf('<b>', 0)))
                            var d2 = d.substring((d.indexOf('<b>', 0)), (d.indexOf('</b>', 0) + 4))

                            d1 = d1.substring((d1.indexOf(':', 0) + 2), (d1.indexOf('€', 0) + 1))
                            d2 = d2.substring((d2.indexOf(':', 0) + 2), (d2.indexOf('€', 0) + 1))
                            d = d1 + ' <b>' + d2 + '</b>'
                        } else {
                            d = d.substring((d.indexOf(':', 0) + 2), (d.indexOf('€', 0) + 1))
                        }
                    }
                }
                var t = ''
                if (this.before) t = t + this.before;
                t = t + d;
                if (this.after) t = t + this.after;
                this.element.update(t);
            } else {
                var i = new Element('img');
                this.element.insert(i);
                setTimeout(function() { i.src = 'photo.file?t=pr&width=' + this.width + '&height=' + this.height + '&id=' + this.value; minuteur = minuteur + 150; } .bind(this, i), minuteur + 150)
            }
        }
    },

    getElement: function() {
        if (!this.element) this.render();
        return this.element
    },

    setClassName: function(className) {
        if (!className) return
        this.element.className = className;
        this.className = className
    },

    setStyle: function(JSONStyle) {
        if (!JSONStyle) return
        this.style = JSONStyle;
        this.element.setStyle(this.style)
    },

    remove: function() {
        this.element.remove()
        this.parent.removeLabel(this)
    }
}


var OBJSlideShow = Class.create()
OBJSlideShow.prototype = {
    initialize: function(JSONParams, parent) {
        if (parent) this.parent = parent

        this.nbItemPerSlide = JSONParams.nbItem
        this.onglet = 1;
        this.actu_is_moving = false;

        this.btnR = $(JSONParams.btnR)
        this.btnL = $(JSONParams.btnL)
        this.container = $(JSONParams.slideContainer)
        this.onRightButtonClick = (JSONParams.onRightButtonClick) ? JSONParams.onRightButtonClick : null
        this.onLeftButtonClick = (JSONParams.onLeftButtonClick) ? JSONParams.onLeftButtonClick : null
        this.itemWidth = (JSONParams.itemWidth) ? JSONParams.itemWidth : null
        if (this.parent.items.length > 0) {
            if (!this.itemWidth) {
                this.itemWidth = this.parent.items[0].getElement().getWidth();
            }
            this.parent.itemContainer.setStyle('width:' + (this.parent.items.length * this.itemWidth) + 'px;')
            this.container.setStyle('width:' + (this.itemWidth * this.nbItemPerSlide) + 'px;');
        }

        this.btnR.observe('click', function(e) {
            if (typeof this.onRightButtonClick == 'function') {
                this.onRightButtonClick(this.btnR)
            }
            else {
                this.btnRClick();
            }
        } .bindAsEventListener(this));
        this.btnL.observe('click', function(e) {
            if (typeof this.onLeftButtonClick == 'function') {
                this.onLeftButtonClick(this.btnR)
            }
            else {
                this.btnLClick();
            }
        } .bindAsEventListener(this));
    },

    reload: function() {
        this.onglet = 1;
        this.actu_is_moving = false;
        if (this.parent.items.length <= this.nbItemPerSlide) {
            this.btnR.setStyle('visibility:hidden;');
            this.btnL.setStyle('visibility:hidden;');
        } else {
            this.btnR.setStyle('visibility:visible;');
            this.btnL.setStyle('visibility:visible;');

        }
        if (this.parent.items.length > 0) {
            if (!this.itemWidth) {
                this.itemWidth = this.parent.items[0].getElement().getWidth();
            }
            this.parent.itemContainer.setStyle('width:' + (this.parent.items.length * this.itemWidth) + 'px;')
            this.container.setStyle('width:' + (this.itemWidth * this.nbItemPerSlide) + 'px;');
        }
    },

    btnRClick: function() {
        if (this.onglet <= (this.parent.items.length - this.nbItemPerSlide)) {
            if ((this.parent.items.length - this.onglet - this.nbItemPerSlide + 1) >= this.nbItemPerSlide) {
        this.onglet = this.onglet + this.nbItemPerSlide;
    }else{
    this.onglet = this.onglet + (this.parent.items.length - this.onglet - this.nbItemPerSlide + 1);
    }
            this.showOnglet(this.onglet, this.parent.items.length, 'prod')
        }
    },

    btnLClick: function() {
    if (this.onglet > 1) {
        if ((this.onglet - this.nbItemPerSlide) > 0) {
        this.onglet = this.onglet - this.nbItemPerSlide;
    }else{
    this.onglet = 1
    }
            
            
            this.showOnglet(this.onglet, this.parent.items.length, 'prod')
        }
    },

    showOnglet: function(i, nb, id) {
        // i : numéro de l'onglet à afficher
        // nb : nb total de div
        // id : id des div correspondant aux onglets sans le N° (ex de div : divPr1, divPr2...)
        if (!this.actu_is_moving) {
            //      for (y = 1; y <= nb; y++) {
            //        if (i == y) {
           
            this.actu_is_moving = true;
            var position_actuelle = parseInt(this.parent.itemContainer.style.left);
            var position_voulue = -((i - 1) * this.itemWidth);
            
            var deplacement
            if ((this.parent.items.length - this.onglet + 1) >= this.nbItemPerSlide) {
                deplacement = (position_voulue - position_actuelle)// * this.nbItemPerSlide
            } else {
                deplacement = (position_voulue - position_actuelle)// * (this.parent.items.length - this.onglet + 1)
            }
           // alert(deplacement)
            new Effect.Move(this.parent.itemContainer, { x: deplacement, y: 0, mode: 'relative' });
            this.actu_is_moving = false;
            //        }
            //      }
        }
    }

}

