var slidingNews = Class.create({
  initialize: function(maskID, divsClass, itemsClass, movBtnClass ) {
	try{
		this.startPoint = Position.cumulativeOffset($(maskID))[0];	
		this.bAutoSlide = false;
		this.movBtnClass= '.'+movBtnClass;
		this.itemsClass = itemsClass;
		this.divsClass  = divsClass;
		this.container	= $(divsClass);
		this.slides		= $$('.'+this.divsClass+' < div[class~='+this.itemsClass+']');
		this.timeout	= {};
		this.moveTo(0);
		this.observeBtn();
		//this.startAutoSlide();
	}
	catch(e){console.log("slidingNews started with error: "+e);	}
	},
	
	fx: function (o,iX)
	{
	   new Effect.Move(o, { 
			x: iX, 
			y: 0,
			duration:0.95,
			transition: Effect.Transitions.easeInBack
		});
	},

	moveTo: function(objNo)
	{
		diff_x =  this.startPoint - (Position.cumulativeOffset( this.slides[objNo] )[0]) ;
		this.fx(this.container, diff_x );
		this.fxBtn(objNo);
	},

	fxBtn: function (objNo)
	{
		el = $$(this.movBtnClass)[objNo];
		if(el.hasClassName('sl_slideBtn_selected') )return false;
		try{$$('.sl_slideBtn_selected')[0].removeClassName('sl_slideBtn_selected')}catch(e){}
		el.addClassName('sl_slideBtn_selected');	
	},
	
	autoSlide: function(startID)
	{
		var o = this;
		if(! this.bAutoSlide ) return;
	
		if (isNaN(startID) ) startID = 0;
		nextID = (startID+1) % this.slides.length;		
		
		this.moveTo(startID);
		clearTimeout(o.timeout);
		o.timeout	=	setTimeout( "o.autoSlide("+nextID	+")", 3500);
	},
	
	startAutoSlide: function ()
	{
		this.bAutoSlide = (this.bAutoSlide) ? false: true;
		this.autoSlide();
	},

	observeBtn : function ()
	{
		var o = this;
		$$(this.movBtnClass).each( function(el){
			Event.observe(el, 'click', function(){
				clearTimeout(o.timeout);
				//o.fxBtn(el.id);
				o.moveTo(el.id);		
				nextID= el.id+1;
				//o.timeout	=	setTimeout( "o.autoSlide("+nextID	+")", 7000);
			})
		});
	}
});	
Effect.Transitions.easeInBack = function(pos)
{
	var s = 1.70158;	
	return (pos)*pos*((s+1)*pos - s);
}


Event.observe(window, 'load', function(){
	var mySlidingNews =new slidingNews('slidingNewsMask', 'sl_allNews','sl_item', 'slMovBtn');
	}
);

