// JavaScript Document

window.addEvent('domready',
	function()
	{
		MaycoRotatorModuleFactory.init();
		
	});

var MaycoRotatorModuleFactory = {
	modules: {},
	init: function()
	{
		var mods = $$('.mrotator');
		
		for (var i=0; i<mods.length; i++)
		{
			new MaycoRotatorModule( i, mods[i] );
		}
	}

};


var MaycoRotatorModule = new Class({
	rawModule: null,
	images: [],
	links: [],
	imageHolders: [],
	linkHolders: [],
	imagesWrapper: null,
	fx: null,
	key: null,
	lastIndex: 0,
	firstIndex: 0,
	initialize: function( k, el )
	{
		this.rawModule = el;
		
		this.getImages();
		
		this.key =  k;
	},
	next: function( self )
	{
		var f = this.firstIndex + 3;
		var m = f + 1;
		var l = m + 1;
		
		
		if (f >= self.images.length)
		{
			$(self.imageHolders[0]).setProperty('src', self.images[0]);
			$(self.linkHolders[0]).setProperty('href', self.links[0]);
			
			$(self.imageHolders[1]).setProperty('src', self.images[1]);
			$(self.linkHolders[1]).setProperty('href', self.links[1]);
			
			$(self.imageHolders[2]).setProperty('src', self.images[2]);
			$(self.linkHolders[2]).setProperty('href', self.links[2]);		
			
			self.firstIndex = 0;

			return;
		}
		else
		{
			$(self.imageHolders[0]).setProperty('src', self.images[f]);
			$(self.linkHolders[0]).setProperty('href', self.links[f]);
			self.firstIndex = f;
		}
		
		if (m >= self.images.length)
		{
			$(self.imageHolders[1]).setProperty('src', self.images[0]);
			$(self.linkHolders[1]).setProperty('href', self.links[0]);
			$(self.imageHolders[2]).setProperty('src', self.images[1]);
			$(self.linkHolders[2]).setProperty('href', self.links[1]);		
			self.firstIndex = f;
			return;
		}
		else
		{
			$(self.imageHolders[1]).setProperty('src', self.images[m]);
			$(self.linkHolders[1]).setProperty('href', self.links[m]);
		}
		
		if (l >= self.images.length)
		{
			$(self.imageHolders[2]).setProperty('src', self.images[0]);
			$(self.linkHolders[2]).setProperty('href', self.links[0]);
		}
		else
		{
			$(self.imageHolders[2]).setProperty('src', self.images[l]);
			$(self.linkHolders[2]).setProperty('href', self.links[l]);
		}		
		
	},
	prev: function( self )
	{
		var f = this.firstIndex -3;
		var m = f - 1;
		var l = m - 1;
		
		var last = self.images.length - 1;
	
		if (f < 0 )
		{
			$(self.imageHolders[0]).setProperty('src', self.images[last - 2]);
			$(self.linkHolders[0]).setProperty('href', self.links[last - 2]);
			
			$(self.imageHolders[1]).setProperty('src', self.images[last - 1]);
			$(self.linkHolders[1]).setProperty('href', self.links[last -1]);
			
			$(self.imageHolders[2]).setProperty('src', self.images[last]);
			$(self.linkHolders[2]).setProperty('href', self.links[last]);		
			
			self.firstIndex = last - 2;
			self.lastIndex = last;
			return;
		}
		else
		{
			$(self.imageHolders[0]).setProperty('src', self.images[f]);
			$(self.linkHolders[0]).setProperty('href', self.links[f]);
		}
		
		if (m < 0)
		{
			$(self.imageHolders[1]).setProperty('src', self.images[last]);
			$(self.linkHolders[1]).setProperty('href', self.links[last]);
			$(self.imageHolders[2]).setProperty('src', self.images[last-1]);
			$(self.linkHolders[2]).setProperty('href', self.links[last-1]);		
						self.firstIndex = last - 2;
			self.lastIndex = last;
			return;
		}
		else
		{
			$(self.imageHolders[1]).setProperty('src', self.images[m]);
			$(self.linkHolders[1]).setProperty('href', self.links[m]);
		}
		
		if (l < 0)
		{
			$(self.imageHolders[2]).setProperty('src', self.images[last]);
			$(self.linkHolders[2]).setProperty('href', self.links[last]);
		}
		else
		{
			$(self.imageHolders[2]).setProperty('src', self.images[l]);
			$(self.linkHolders[2]).setProperty('href', self.links[l]);
		}			
					self.firstIndex = last - 2;
			self.lastIndex = last;
	},
	getImages: function()
	{
		var anchors = this.rawModule.getElements('a');
		var imgs	= this.rawModule.getElements('img');
		var img1 = imgs[0];
		
		var wrapperObject = [];
		
		for (var i=0; i<anchors.length; i++)
		{
			wrapperObject.push( { "anch": anchors[i], "img": imgs[i] });
		}
		
		var parContainer = anchors[0].getParent();
		
		parContainer.empty();
		
		var wrapper = new Element('div');
		
		$(wrapper).setStyle("width","635px");
		
		
		var prev = new Element('a').setProperty('id', 'prev' );
		prev.setStyle('cursor','pointer');
		prev.injectInside(wrapper);
				var next = new Element('a').setProperty('id', 'next' );
		
		next.setStyle('cursor', 'pointer' );
		
		
		next.injectInside(wrapper);
		
		for ( var i=1; i<4; i++ )
		{
			var a = new Element('a');
			
			var img = new Element('img');
				img.setStyle('margin-right','5px');
				
				
			this.linkHolders.push(a);
			this.imageHolders.push(img);
			
			a.adopt(img);
			a.injectInside( wrapper );
		}
		
		parContainer.adopt(wrapper);
		

		var hold = wrapperObject.sort(function() {return 0.5 - Math.random()});
		
		for (var i=0; i<hold.length; i++)
		{
			
			var anch = hold[i].anch;
			var img = hold[i].img;
			
				this.images.push(img.src);
				this.links.push(anch.href);
	
		}
		
		$(this.imageHolders[0]).setProperty('src', this.images[0]);
		$(this.linkHolders[0]).setProperty('href', this.links[0]);
		
		$(this.imageHolders[1]).setProperty('src', this.images[1]);
		$(this.linkHolders[1]).setProperty('href', this.links[1]);
		
		$(this.imageHolders[2]).setProperty('src', this.images[2]);
		$(this.linkHolders[2]).setProperty('href', this.links[2]);		
		
		this.firstIndex = 0;
		this.lastIndex = 3;
		
		var self = this;
		
		$('next').addEvent('click', 
			function()
			{
				self.next( self );
			}
		);
		
		$('next').setStyles(
			{
				"background": "url(/templates/rt_reaction_j15/js/img/next.jpg) no-repeat center center",
				"height": "27px",
				"width":"17px",
				"display": "block",
				"float": "right",
				"margin-top": "10px",
				"margin-left": "3px"
			}
		);
		$('prev').addEvent('click', 
			function()
			{
				self.prev(self);
			}
		);
		$('prev').setStyles(
			{
				"background": "url(/templates/rt_reaction_j15/js/img/back.jpg) no-repeat center center",
				"height": "27px",
				"width":"17px",
				"display": "block",
				"float":"left",
				"margin-top": "10px",
				"margin-right": "5px"
			}
		);		
	},
	draw: function()
	{
		

	}
});
