var MAG = Object.extend({}, MAG || {});
var flag;

MAG.Promotions = {
	Init : function(options) {
			this.options = {};
		Object.extend(this.options, options || {});
		
	    this.setupPromos();
	    this.getPromotions(0);
	    
	    $('slid_right').observe('click',function()
		{  
			flag = 1;
			MAG.Promotions.promosObserve();
			
			
		  });
		  
		$('slid_left').observe('click',function()
		{ 
			flag = 2;
			MAG.Promotions.promosObserve();
			
		 });	
		 
	   this.total = 0; 
	},

	setupPromos : function ()
	{
		$$('#prommos li a').each(function(elem,i){		
			elem.observe('click', function(){		
				MAG.Promotions.removeClass(i);
				elem.up().addClassName('active');
				MAG.Promotions.getPromotions(i);

			});
		});
	},

	removeClass : function(i)
	{
		$$('#prommos li').each(function(e, index){
			if(index != i) {
				e.removeClassName('active');
			}
	 	});
	},

	getPromotions: function(idx)
	{
		new Ajax.Updater('slider', this.options.url, {
			onCreate : this.startLoading.bind(this),
			method: 'get',
			onSuccess: this.total=0,
			onComplete : this.promosObserve.bind(this),
			parameters: {method: 'get_promotions', index: idx}
		});
	},

	startLoading: function() {
		$('slider').innerHTML = '<div class="loader"><img src='+this.options.img+'></div>';
	},

	countPromotions: function()
	{
		var total = 0;
		$$('ul#slide_promotions li').each(function(e){
			total ++;
		});
		
		return total;
	},
	
	promosObserve: function()
	{ 
		param = this.countPromotions(); 
		
		this.total = (this.total == 0) ? param :this.total;
		
		if(flag == 1)
		{	
			if(this.total > 3 && param > 3) 
			{ 
				var pos = -1;
			
				new Effect.Move($('slide_promotions'), {
					x: pos * 894
				})
				
				this.total = this.total - 3;
			}				
		}
		
		if(flag == 2)
		{ 
			if(param > 3 && (this.total <= param - 3 )) 
			{ 
				pos = 1;
			
				new Effect.Move($('slide_promotions'), {
					x: pos * 894
				});
				
				this.total += 3;
			}
		}
		
		flag = false;
		
	}
	
}


