var FadeSlideShow = Fx.Elements.extend({

	options: {
		wait: true,
		_current: 0
	},

	initialize: function(){
		var options, elements;
		$each(arguments, function(argument, i){
			switch($type(argument)){
				case 'object': options = argument; break;
				default:
					var temp = $$(argument);
					elements = temp;
			}
		});
		this.elements = elements || [];
		this.setOptions(options);
		this._timeoutInterval = false;
		this.effects = {};
		this.effects.opacity = 'fullOpacity';
				
		if(this.elements[0])
		{
			this.elements[0].parentNode.style.visibility = 'visible';
		}
		
		this.elements.each(function(el, i){
			this.elements[i].fullOpacity = 1;
			if(i != this.options._current)
			{
				for (var fx in this.effects) el.setStyle(fx, 0);
			}
			else
			{
				for (var fx in this.effects) el.setStyle(fx, el[this.effects[fx]]);				
			}
		}, this);
	},

	fadeIn: function(index){
		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
		var obj = {};
		obj[index] = {};
		for (var fx in this.effects) obj[index][fx] = this.elements[index][this.effects[fx]];
		return this.start(obj);
	},

	fadeOut: function(index){
		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
		var obj = {};
		obj[index] = {};
		for (var fx in this.effects) obj[index][fx] = 0;
		return this.start(obj);
	},

	slide: function(_next){
		if(!_next)
		{
			var _next = this.options._current + 1;
			if(_next >= this.elements.length)
			{
				_next = 0;
			}
		}
		else
		{
			_next -= 1;
		}
		if(_next == this.options._current) return;
		var obj = {};
		obj[_next] = {};
		for (var fx in this.effects) obj[_next][fx] = this.elements[_next][this.effects[fx]];
		obj[this.options._current] = {};
		for (var fx in this.effects) obj[this.options._current][fx] = 0;
		this.options._current = _next;
		return this.start(obj);
	}
	
});

var slideshows = ['div.cite-item','img.home-big'];
var startTimeout = [0,0,0];
var _fades = [];
var delay = 7000;

function initFadeSlideShow()
{
	for(var i=0; i < slideshows.length; i++)
	{
		if($$("" + slideshows[i]).length > 0)
		{
			_fades[i] = new FadeSlideShow("" + slideshows[i],{duration:1000});
			_fades[i]._timeout = setTimeout('_switch('+i+')',delay + startTimeout[i]);
		}
	}
	initHandlers();
}

function initHandlers()
{
	var _p = $('promo-nav');
	if(_p && _fades[1])
	{
		_p.innerHTML = '';
		for( var i = 0; i < _fades[1].elements.length; i++)
		{
			var _li = document.createElement('li');
			var _a = document.createElement('a');
			var __li = _p.appendChild(_li);
			var __a = __li.appendChild(_a);
			__a.innerHTML = (i+1);
			__a.href = "javascript:;";
			__a._index = i+1;
			__a.onclick = function(){
				if(_fades[1]._timeout) clearTimeout(_fades[1]._timeout);
				_fades[1].slide(this._index);
				_fades[1]._timeout = setTimeout('_switch(1)',delay);
			}
		}
	}
}

function _switch(_i)
{
	_fades[_i].slide();
	_fades[_i]._timeout = setTimeout('_switch('+ _i+')',delay);
}

if (window.addEventListener)
	window.addEventListener("load", initFadeSlideShow, false);
else if (window.attachEvent)
	window.attachEvent("onload", initFadeSlideShow);