var MMSlider = Class.create();

var nextPic;

var lastTimeout;

var container;

MMSlider.prototype = {
	currentPic: 1,
	initialize: function (container1) {
		if($(container1)) {
			container = $(container1);
			this.setHandlers(container);
			lastTimeout = setTimeout("MMSlider.prototype.nextItem()", 8000);
		}
	},
	setHandlers: function (container) {
		var navLinks = container.getElementsBySelector('a[href="#"]');
		$$('a[name="nav_link"]').each(function (item) {
			item.observe('click', function(event) {
				event.stop();
				MMSlider.prototype.changeItem(this);
			});
		});
	},
	nextItem: function (linkElement) {
		var currentElement = this.getCurrentElement();

		if(currentElement)
		{
			var nextElement = currentElement.next('div');
			if(nextElement)
			{
				new Effect.Morph(currentElement, {
					style: 'left:-960px',
					duration: 1
				});
				
				new Effect.Morph(nextElement, {
					style: 'left:16px',
					duration: 1
				});	
				nextElement.setStyle({
					left: "960px"
				});
			}
			else
			{
				var parent  		= currentElement.getOffsetParent();
				var previousElement = parent.getElementsBySelector('div[title="image_holder"]')[0];				
				previousElement.setStyle({
					left:  "-960px"
				});
	
				new Effect.Morph(currentElement, {
					style: 'left:960px',
					duration: 1
				});
				
				new Effect.Morph(previousElement, {
					style: 'left:16px',
					duration: 1				
				})				
			}
			this.setCurrentLink();
		}
		clearTimeout(lastTimeout);
		lastTimeout = setTimeout("MMSlider.prototype.nextItem()", 8000);
	},
	changeItem: function (linkElement) {
		var currentElement = this.getCurrentElement();
		if(currentElement)
		{

			linkElementExplode  = linkElement.title.split(" ");
			var parent  		= currentElement.getOffsetParent();
			var element 		= parent.getElementsBySelector('div[title="image_holder"]')[linkElementExplode[2] - 1];
			if(element != currentElement)
			{
				if(element.positionedOffset()[0] > currentElement.positionedOffset()[0])
				{
					if(element)
					{
						new Effect.Morph(currentElement, {
							style: 'left:-960px',
							duration: 1
						});
						
						new Effect.Morph(element, {
							style: 'left:16px',
							duration: 1						
						});	
						element.setStyle({
							left: "960px"
						});
					}				
				}
				else
				{
					if(element)
					{
						element.setStyle({
							left:  "-960px"
						});
			
						new Effect.Morph(currentElement, {
							style: 'left:960px',
							duration: 1
						});
						
						new Effect.Morph(element, {
							style: 'left:16px',
							duration: 1				
						})
					}
				}
				this.setCurrentLink(linkElement);
				clearTimeout(lastTimeout);
				lastTimeout = setTimeout("MMSlider.prototype.nextItem()", 8000);	
			}
		}
	},
	getCurrentElement: function() {
		var currentElement = null;
		var found = false;
		container.getElementsBySelector('div[title="image_holder"]').each(function (divElement) {
			if((divElement.getStyle("left") == "16px") && (!found))
			{
				currentElement = divElement;
				found = true;
			}
		});
		return currentElement;
	},
	setCurrentLink: function(linkElement) {
		if(typeof linkElement == "undefined")
		{
				var navLinks = container.getElementsBySelector('a[href="#"]');
			var count = 0;
			var elementOffset = 0;
			var found = false;
			container.getElementsBySelector('div[title="image_holder"]').each(function (divElement) {
				if((divElement.getStyle("left") == "16px") && (!found))
				{
					elementOffset = count;
					found = true;				
				}
				count++;
			});
			var count = 0;
			var found = false;
			$$('a[name="nav_link"]').each(function (item) {
				if(count == (elementOffset + 1))
				{
					item.className = 'stage-selected';
					var urlSpan 		  = item.next();
					var titleSpan 		  = urlSpan.next();
					var targetSpan		  = titleSpan.next();	
					$$('.stage-home-link')[0].title = titleSpan.innerHTML;
					$$('.stage-home-link')[0].href  = urlSpan.innerHTML;
					$$('.stage-home-link')[0].target = targetSpan.innerHTML;						
					found = true;
				}
				else
				{
					item.className = '';
				}
				count++;
			});
			if(!found)
			{
				$$('a[name="nav_link"]')[0].className = 'stage-selected';
				var urlSpan 		  = $$('a[name="nav_link"]')[0].next();
				var titleSpan 		  = urlSpan.next();
				var targetSpan		  = titleSpan.next();	
				$$('.stage-home-link')[0].title = titleSpan.innerHTML;
				$$('.stage-home-link')[0].href  = urlSpan.innerHTML;	
				$$('.stage-home-link')[0].target = targetSpan.innerHTML;	
			}
		}
		else
		{
			$$('a[name="nav_link"]').each(function (item) {
				item.className = '';
			});	
			linkElement.className = 'stage-selected';
			var urlSpan 		  = linkElement.next();
			var titleSpan 		  = urlSpan.next();
			var targetSpan		  = titleSpan.next();	
			$$('.stage-home-link')[0].title = titleSpan.innerHTML;
			$$('.stage-home-link')[0].href  = urlSpan.innerHTML;			
			$$('.stage-home-link')[0].target = targetSpan.innerHTML;	
		}
	}
}
document.observe('dom:loaded', function () { 
	new MMSlider(document.getElementById('stage-home')); 
});

