var carousel = {
	elements : [],
	currentElement : null,
	previousElement : null,
	stopMorphing : false,
	
	interval: 6500,
	intervalInstance: null,
	
	
	init: function()
	{
		var elements = $$('#carousel_links a');
		carousel.elements = elements;
		
		carousel.currentElement = carousel.elements[0];
		carousel.currentElement.set('class', 'sel');
		
		for(var i = 0; i < carousel.elements.length; i++)
		{
			$(carousel.elements[i].id).addEvent('click', function(){
				carousel.morph(this);
			});		
		}
		
		//carousel.test();
		carousel.intervalInstance = setInterval('carousel.test()', carousel.interval);
		
	},
	
	test: function()
	{
		for (var i = 0; i < carousel.elements.length ; i++)
		{
			if(carousel.elements[i].id == carousel.currentElement.id)
			{
				if(i+1 == carousel.elements.length)
				{
					carousel.morph(carousel.elements[0]);
				}
				else
				{
					carousel.morph(carousel.elements[i+1]);
				}
			}
		};
	},
	
	morph: function(theElement)
	{
		if(!carousel.stopMorphing && (theElement.id != carousel.currentElement.id))
		{
			carousel.stopMorphing = true;
			
			carousel.previousElement = carousel.currentElement; 
			carousel.currentElement = theElement;
			
			carousel.previousElement.set('class', '');
			carousel.currentElement.set('class', 'sel');
			
			var previousDivId = carousel.previousElement.id.replace("carousel_link_", "top_box_");
			var currentDivId = carousel.currentElement.id.replace("carousel_link_", "top_box_");
			
			var previousDivElement = $(previousDivId).set('morph', {
				duration: 2500, 
				transition: 'expo:in',
				onComplete: function(){
					previousDivElement.setStyles({
						'display' : 'none'
					});
					currentDivElement.setStyles({
						'display' : 'block',
						'opacity' : 0
					});
					currentDivElement.morph({opacity: [0,1]});
				}
			});
			
			var currentDivElement = $(currentDivId).set('morph', {
				duration: 1800, 
				transition: 'expo:out',
				onComplete: function(){
				carousel.stopMorphing = false;
				}
			});
			
			previousDivElement.morph({opacity: [1,0]});
		}
	}	
}

window.addEvent("domready", function(){
	if(document.getElementById('carousel'))
	{
		carousel.init();
	}
});
