var CosMooShift = new Class({
	Implements: [Events, Options],
	
	options:
	{
		container:'',
		content: '',
		frecciaSx: '',
		frecciaDx: '',
		classFreccia:'freccia',
		scroll: 50
	},

	initialize: function(options)
	{
		this.setOptions(options);
		this.container = $(this.options.container);
		this.content = $(this.options.content);
		this.frecciaSx = $(this.options.frecciaSx);
		this.frecciaDx = $(this.options.frecciaDx);
		this.init();
	},
	
	init: function()
	{
		var obj = this;
		var frecciaSx = this.frecciaSx.getFirst("."+this.options.classFreccia);
		var frecciaDx = this.frecciaDx.getFirst("."+this.options.classFreccia);
		frecciaSx.addEvent("click", function(){
			obj.shift("left");
		});
		frecciaDx.addEvent("click", function(){
			obj.shift("right");
		});
		this.viewFrecce();
	},
	
	viewFrecce: function()
	{
		var frecciaSx = this.frecciaSx.getFirst("."+this.options.classFreccia);
		var frecciaDx = this.frecciaDx.getFirst("."+this.options.classFreccia);
				
		if(this.content.getSize().x <= this.container.getSize().x)
		{
			frecciaSx.addClass("hidden");
			frecciaDx.addClass("hidden");
			return;
		}
				
		if(parseInt(this.content.getStyle("left"))<0)
			frecciaSx.removeClass("hidden");
		else
			frecciaSx.addClass("hidden");
				
		if((this.content.getSize().x+parseInt(this.content.getStyle("left"))) > this.container.getSize().x)
			frecciaDx.removeClass("hidden");
		else
			frecciaDx.addClass("hidden");
	},
	
	shift: function(dir)
	{
		var obj = this;
		var tween = new Fx.Tween(this.content);
		
		if(dir=="left")
		{
			var leftNew = parseInt(parseInt(this.content.getStyle("left"))) + this.options.scroll;
			if(leftNew>0)	leftNew=0;
			tween.start("left", leftNew).chain(function(){obj.viewFrecce();});
			
		}
		else if(dir=="right")
		{
			var leftNew = parseInt(this.content.getStyle("left")) - this.options.scroll;
			if(this.content.getSize().x+leftNew < this.container.getSize().x)	leftNew=this.container.getSize().x-this.content.getSize().x;
			tween.start("left", leftNew).chain(function(){obj.viewFrecce();});
		}
	}
});
