/**
 * @author ccortes
 */

var rotatingHero = {
	idContainer: "#rotatingHero",
	items: null,
	itemShown: null,
	nCurrentItem: 1,
	controls: 'full',
	loop: 7,
	timer: null,
	init: function(){
		_self = this;
		_self.items = $(_self.idContainer + ' .canvasArea').children("div.item");
		_self.buildControls();
		_self.buildEvents();
		_self.showFirst();
		_self.timer = setInterval( _self.setLoop, (_self.loop * 1000));
	},
	showItem: function(nItem){
		var _itemToShow = $(_self.items[nItem - 1]);
		if(!_itemToShow.is(':visible')){
			itemToShow = _itemToShow;
			_self.itemShown.fadeOut('slow', function(){
				itemToShow.fadeIn('slow')
			});
			_self.itemShown = $(itemToShow);
			_self.nCurrentItem = nItem;
			_self.setActiveLink(nItem);
			
		}
	},
	showFirst: function(){
		_self.itemShown = $(_self.items[0]);
		_self.itemShown.fadeIn('slow');
	},
	buildEvents: function(){
		$(_self.idContainer).delegate('.controls ul li a', 'click', function(){
			
			var lnkClass = $(this).attr('class');
			var nItem = 0;
			
			clearInterval(_self.timer);
			
			if(lnkClass.indexOf('lnkBack') > -1){
				nItem = ((_self.nCurrentItem > 1) ? _self.nCurrentItem - 1 : _self.items.length);
			} else if (lnkClass.indexOf('lnkNext') > -1){
				nItem = ((_self.nCurrentItem < _self.items.length) ? _self.nCurrentItem + 1 : 1);
			} else {
				nItem = parseInt($(this).html());
			}
			
			if(nItem > 0){
				_self.showItem(nItem);
			}

			return false;
		});
	},
	buildControls: function(){
		
		var output = '';
		var optSep = '';
		var classActive = 'active';
		var nTotalItems = _self.items.length;
		
		if (nTotalItems > 1) {
			output += '<div class="controls"><ul class="clearfix">';
			
			if(_self.controls == 'full'){
				output += '<li class="first"><a class="noShow lnkBack" href="javascript:void(0);">&lt;</a></li>';
			}
			
			for (i = 1; i <= nTotalItems; i++) {
				output += '<li class="museo700 size12">'+ optSep +'<a class="museo700 size12 ' + classActive + '" href="javascript:void(0);">' + i + '</a></li>';
				classActive = '';
				optSep = '/';
			}
			
			if (_self.controls == 'full') {
				output += '<li class="last"><a class="noShow lnkNext" href="javascript:void(0);">&gt;</a></li>';
			}
			output += '</ul></div>';
		}
		
		$(_self.idContainer).append(output);
	
	},
	setActiveLink: function(nItem){
		if(_self.controls != 'full'){
			nItem--;
		}
		var oLink = $(_self.idContainer + ' .controls ul li a').get(nItem);
		$('.controls ul li a.active').removeClass('active');
		$(oLink).addClass('active');
	},
	setLoop: function(){
		//Double time for first slider
		if(_self.nCurrentItem == 1)
		{
			_self.nCurrentItem += 0.5;
			return;
		}
		if(_self.nCurrentItem < _self.items.length) {
			nItem = parseInt(_self.nCurrentItem + 1);
		} else {
			nItem = 1;
		}
		_self.showItem(nItem);
	}
}

$(document).ready(function(){
	var _self = null;
	rotatingHero.idContainer = '.rotatingPromo';
	rotatingHero.controls = '';
	rotatingHero.init();
});

