var BoxSlider = new Class({
    initialize: function(image_content, left_link, right_link, quit, size, scroll_width){
        this.pos = 0; // total de pixels à décaller
        this.num = 0; // numero de l'image sur un total de this.size
        this.size = size; // nombre d'images
        this.left_link = left_link; // bouton déaller vers la gauche
        this.right_link = right_link; // bouton décaller vers la droite
        this.quit_button = quit; // quitter l'affichage de la gallerie : permet de conserver l'état des éléments
        this.image_content = image_content; // div de l'image Ã  dÃ©caller'
        this.scroll_width = scroll_width;
				this.timeout = null;
				this.sens = 1; // vers la droite pour defilement automatique
				
        this.initGallery();
    },

/* ajout des ecouteurs pour la gestion du dÃ©filement */
initGallery: function(){
 
    $(this.right_link).addEvent('click', function(evt){
        evt.stop();
				this.toRight();
    }.bindWithEvent(this));

    $(this.left_link).addEvent('click', function(evt){
        evt.stop();
				this.toLeft();
    }.bindWithEvent(this));


    // maintient de l'affichage des boutons de dÃ©filement
    $(this.left_link).addEvent('mouseover', function(evt){
        if(this.num > 0)
            $(this.left_link).fade('in');
    }.bindWithEvent(this));

    $(this.right_link).addEvent('mouseover', function(evt){
        if(this.num < this.size)
            $(this.right_link).fade('in');
    }.bindWithEvent(this));

},


/* affichage de la gallerie */
displayGallery : function (){
    $(this.quit_button).fade('show');

    // affichage du bouton de défilement sur survol de la zone
    $('next_area').addEvent('mouseover', function(evt){
        if(this.num < this.size){
            $(this.right_link).fade('in');
        }
    }.bindWithEvent(this));

    $('previous_area').addEvent('mouseover', function(evt){
        if(this.num > 0){
            $(this.left_link).fade('in');
        }
    }.bindWithEvent(this));

    // disparition du bouton de défilement lorsqu'on quite la zone'
    $('next_area').addEvent('mouseout', function(evt){
        $(this.right_link).fade('out');
    }.bindWithEvent(this));

    $('previous_area').addEvent('mouseout', function(evt){
        $(this.left_link).fade('out');
    }.bindWithEvent(this));
},


endDisplayGallery : function(){
    $(this.quit_button).fade('hide');
    $(this.right_link).fade('hide');
    $(this.left_link).fade('hide');

    $('next_area').removeEvents();
    $('previous_area').removeEvents();
},

setScrollWidth : function(width){
    this.scroll_width = parseInt(width, 10);
    this.pos = (this.pos >= 0)?parseInt(this.scroll_width * this.num, 10):parseInt(this.scroll_width * this.num, 10)*-1 ;
},

toLeft : function(){
if(this.num > 0){
            this.num--;
            this.pos += parseInt(this.scroll_width, 10);
            if(this.num == 0){
                $(this.left_link).fade('hide');
            }
            $(this.image_content).tween('margin-left', this.pos);
        }	
},

toRight : function (){
	if(this.num < this.size ){
			 this.num++;
			 this.pos -= parseInt(this.scroll_width, 10);

			 if(this.num == this.size){
					 $(this.right_link).fade('hide');
				}
				$(this.image_content).tween('margin-left', this.pos);
		}
},

addMove : function(){
	if(this.num == this.size ){
			this.sens = 0;
	}else if(this.num == 0){
			this.sens = 1;
	}
		
		if(this.sens == 1){
			this.toRight();
		}else{
				this.toLeft();
		}
},

startMove : function(){
	obj = this;
	this.is_moving = true;
	this.timeout = setInterval('obj.addMove()', 8000);
},

stopMove : function(){
	clearInterval(this.timeout);
	this.is_moving = false;
},

getScrollWidth : function(){
    return this.scroll_width;
},

getNum : function(){
    return this.num;
},

getSize : function(){
    return this.size;
},

setSize : function(size){
    this.size = parseInt(size, 10);
}

});