var Rotator = Class.create({
	currentIndex: 0,
	timerId: null,
	listElements: null,
	listElementLis: null,
	currentElement: null,
	currentTab: null,
	mouseHovers: false,

	initialize: function(list_element) {
		this.listElement = $(list_element);
		this.listElements = $$('ul#' + list_element + ' li a');
		this.listElementLis = $$('ul#' + list_element + ' li');
		
		this.listElements.each(function(element) {
			Event.observe(element, 'mouseover', this.selectTabWithMouse.bindAsEventListener(this, element.up('li'), element.up('li').getAttribute('rel') ));
			Event.observe(element, 'mouseout', this.unselectTabWithMouse.bindAsEventListener(this));

			element.onclick = function() {
				if (this.getAttribute('href') == "#") {return false}
			};
		}.bind(this));
		
		this.selectTabWithTimer();
	},

	selectTabWithMouse: function(e, element, tab) {
		window.clearTimeout(this.timerId);
		this.mouseHovers = true;
		this.currentIndex = this.listElementLis.collect(function(o) {return o.getAttribute('rel')}).indexOf(tab);
		this.selectTab(element);
	},

	unselectTabWithMouse: function() {
		this.mouseHovers = false;
		this.selectTabWithTimer();
	},

	selectTabWithTimer: function() {
		if (this.mouseHovers == false) {
			element = this.listElementLis[this.currentIndex];

			this.selectTab(element);
			window.clearTimeout(this.timerId);
			this.timerId = window.setTimeout(function() {
				this.selectTabWithTimer();
			}.bind(this), 6000);
			this.currentIndex = this.listElements.length > this.currentIndex + 1 ? this.currentIndex + 1 : 0;
		}
	},

	selectTab: function(element) {
		this.currentElement = element;
		this.listElementLis.each(function(element) {
			$(element.getAttribute('rel')).hide();
			element.removeClassName('selected');
		});

		this.currentTab = $(this.currentElement.getAttribute('rel'));
		this.currentTab.show();
		this.currentElement.addClassName('selected');

		if (this.currentElement.className.match("cokeAdElement")) {
			this.currentElement.up('div').addClassName('cokeAd');
		} else {
			this.currentElement.up('div').removeClassName('cokeAd');
		}
	}
});