/**
 * Module: CA01
 * Controller
 */
(function() {
	if ("jQuery" in window && 'C4News' in window) { 

		C4News.carousel = function(){
			// Defaults
			var style = "large";
			var bannerId = "carousel";
			
			var panelExpandedWidth, panelWidth;
			
			var init = function(style) {
				style = (arguments.length > 0)?arguments[0]:style;
				panelExpandedWidth = $('#' + bannerId + ' ul li.panel1').width();
				panelWidth = $('#' + bannerId + ' ul li.panel3').position().left - panelExpandedWidth;
				
				$('#' + bannerId + ' ul').delegate('a', 'click focus', function() {
					var panel = $(this).parent();
					var container = panel.parent();
					if(container.hasClass('busy')) {
						return false;
					}
					if(!panel.hasClass('selected')) {
						container.addClass('busy');
						$('#' + bannerId + ' ul li').removeClass('selected');
						panel.removeClass('left').removeClass('right');
						var panelId = Number(panel.attr('className').replace(/[\s]*selected[\s]*/,'').replace(/panel/,''));
						panel.addClass('selected');
						for(var i=1; i<=6; i++) {
							if(i <= panelId) {
								$('#' + bannerId + ' ul li.panel' + i).removeClass('left').removeClass('right').addClass('right').animate({
									left: ((i-1)*panelWidth)
								}, function(){
									//$(this).removeClass('left').removeClass('right').addClass('right');
									//panel.addClass('selected');
									container.removeClass('busy');
								});
							} else {
								$('#' + bannerId + ' ul li.panel' + i).removeClass('left').removeClass('right').addClass('left').animate({
									left: ((i-1)*panelWidth) + panelExpandedWidth - panelWidth
								}, function(){
									//$(this).removeClass('left').removeClass('right').addClass('left');
									//panel.addClass('selected');
									container.removeClass('busy');
								});
							}
						}
						return false;
					}
				});
			}
			
			return {
				init: init
			}
		}();

		$(document).ready(function(){
			C4News.carousel.init();
		});

	}
})();
