Function.prototype.bind = function(obj)
 {
	var __method = this;
	return function(e) {
		return __method.call(obj, e || window.event);
	}
};


var scrollable = function(elementId) 
{
	
/*
 * 	Variables de classe
 */	
	
	this.element = $('#'+elementId);
	
	if (this.element.attr('id') == elementId) // Empeche le script de gestion du scroll de continuer (et d'échouer) si aucune zone de scroll n'est définie dans la page
	{
		this.left = $('.flecheGauche', this.element);
		this.right = $('.flecheDroite', this.element);
		
		this.posDepartOne = 0;
		nbvignette = $('.scrollIn .item', this.element).length;
		
		zoneVignette = $('.scrollIn .item', this.element).get(0);
		this.largeurVignette = zoneVignette.offsetWidth;
		this.largeurGhostBloc = nbvignette * this.largeurVignette;
		this.zoneDefilOne = $('.scrollIn', this.element).get(0);
		largeurOne = this.zoneDefilOne.offsetWidth;
		
		this.differencelargeurOne = -this.largeurGhostBloc + largeurOne;
		
		
		this.handleManageLeftArrowMouseClick = this.manageLeftArrowMouseClick.bind(this);
		this.handleManageRightArrowMouseClick = this.manageRightArrowMouseClick.bind(this);
		
		this.effaceStyle();
		this.manageBlocSize();
		
		this.defilOne();
		
	}
	
	

};

scrollable.prototype = {
	
	manageBlocSize: function() 
	{
		$('.scroll', this.element).css({overflow:'hidden'});
		$('.scrollIn', this.element).css({width:this.largeurGhostBloc+"px"});
	},	
	effaceStyle: function() 
	{
	$('.scroll', this.element).removeAttr("style");
	},	
	
	manageLeftArrowMouseClick: function() 
	{		
		$('.scroll', this.element).scrollLeft($('.scroll', this.element).scrollLeft()-this.largeurVignette);		
	},
	manageRightArrowMouseClick: function() 
	{		
		$('.scroll', this.element).scrollLeft($('.scroll', this.element).scrollLeft()+this.largeurVignette);		
	},
	
	defilOne: function()
	{
		$('.flecheGauche', this.element).click(this.handleManageLeftArrowMouseClick);
		$('.flecheDroite', this.element).click(this.handleManageRightArrowMouseClick);
		
	}
	
};


