var Carousel = {
	scroller: null,
	page: 1,
	page_width: 500,
	items_per_page: 5,
	total_items: 0,
	total_pages: 1,
	current_item: null,
	
	init: function(scroller, page_width, items_per_page) {
	
		this.scroller = scroller;
		this.page_width = page_width;
		this.items_per_page = items_per_page;
		this.load();
		
	},
	load: function(type_restriction) {
		if (type_restriction == undefined) {
			type_restriction = 'none';
		}
		this.gotoFirstPage();
		
		var play_icon = '<div class="play"></div>';
		
		var items = carousel_data.items;
		this.total_items = items.length;
		this.total_pages = Math.ceil(this.total_items / this.items_per_page);
		this.current_item = null;
		
		var s_pages = '';
		var num_pages = Math.ceil(this.total_items / this.items_per_page);
		for (var i=1; i<=num_pages; i++) {
			s_pages += '<div id="cs-page-'+i+'" class="cs-page"></div>';
		}
		$('c-scroller').innerHTML = s_pages;
		
		for (var p=1; p<=this.total_pages; p++) {
			$('cs-page-'+p).innerHTML = '';
		}
		for (var i=0, item_i=1, p=1; i<this.total_items; i++) {
			if (type_restriction == "none" || items[i].type == type_restriction) {
				var img = '<img src="'+items[i].thumbnail+'" class="c-thumb" />';
				var imgt = (items[i].type == 'video') ? play_icon + img : img;
				var onclick = "Carousel.loadItem('cs-item-"+item_i+"', "+i+");";
				$('cs-page-'+p).innerHTML += '<a id="cs-item-'+item_i+'" href="#" onclick="return '+onclick+'" type="'+items[i].type+'"><div class="cs-item">'+imgt+'<p>'+items[i].title_short+'</p></div></a>';
				if (item_i == 1) var first_slide = onclick;
				if (item_i % 5 == 0) p++;
				item_i++;
			}
		}
		this.total_pages = Math.ceil((item_i-1) / this.items_per_page);

		eval(first_slide);
		
	},
	loadItem: function(el, item_i) {
		var is_first = false;
		if (this.current_item != $(el)) {
			if (this.current_item != null) {
				this.current_item.className = '';
				//var current_image = this.current_item.firstChild.firstChild;
				var current_image = this.current_item.down(1);
				if (this.current_item.type == 'video') {					
					var children = current_image.siblings();
					current_image = children[0]; //current_image.next('img');
				}
				var img_src = current_image.style.backgroundImage.substring(4, current_image.style.backgroundImage.length-1);
				current_image.src = img_src;
			}
			else {
				is_first = true;
			}
			this.current_item = $(el);
			this.current_item.className = 'on';
			var current_image = this.current_item.down(1);
			
			if (this.current_item.type == 'video') {
				var children = current_image.siblings();
				current_image = children[0]; //current_image.next('img');
			}
			current_image.style.backgroundImage = 'url('+ current_image.src +')';
			current_image.src = "/carousel/images/shade.png";
		
			if (carousel_data.items[item_i].type == 'video') {
				
				this.loadVideo(item_i, is_first);
			}
			else {
				this.loadArticle(item_i);
			}
		}
		return false;
	},
	loadArticle: function(item_i) {
		
		var item = carousel_data.items[item_i];
		var article = '<a href="' + item.url + '"><img src="' + item.image + '" class="c-current" /></a>';
		article += '<a href="' + item.url + '"><h3 class="c-current">' + item.title + '</h3></a>';
		article += '<p>' + item.description + ' <a href="' + item.url + '">' + item.url_title + ' &raquo;</a></p>';
		
		if (item.related.length > 0) {
			article += '<span>Related: ';
			for (var i=0; i<item.related.length; i++) {
				if (i) article += ' | ';
				article += item.related[i];
			}
			article += '</span>';
		}
		
		$('c-stage').innerHTML = article;
	},
	loadVideo: function(item_i, is_first) {	
		var item = carousel_data.items[item_i];
		
		if (item.url.slice(-3) == 'flv'){			
			if (is_first) {
				$('c-stage').innerHTML = '<a href="#" onclick="Carousel.loadVideo('+item_i+', false);"><img src="' + item.image + '" class="c-current" /></a>';
				$('c-stage').innerHTML += '<a href="#" onclick="Carousel.loadVideo('+item_i+', false);"><h3 class="c-current">' + item.title + '</h3></a>';
				$('c-stage').innerHTML += '<p>' + item.description + ' <a href="#" onclick="Carousel.loadVideo('+item_i+', false);"> Watch Now &raquo;</a></p>';
			}
			else {		
				var abs_url = "/p.swf?video_file=" + encodeURI(item.url);
				$('c-stage').innerHTML = '<div id="c-player"></div>';
				var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
				var preroll_url = 'http://ad.doubleclick.net/pfadx/mlg.mlgpro/video' + (item.category != '' ? '/'+item.category : '') +
					';s1=video;s2=' + item.category + ';s3=;kw=;pid=' + item.node + ';pos=flv;mlg=ad;tile=1;sz=320x240;ord='+ timestamp;
				//$('c-player').innerHTML = '<embed height="366" width="600" flashvars="vid_id='+encodeURI(item.url)+'" allowscriptaccess="always" allowfullscreen="true" scale="noscale" wmode="transparent" quality="high" bgcolor="#fff" name="uvPlayer" id="uvPlayer" style="" src="/p.swf?video_file=http://media.mlgpro.com/content/2009/topten/tt019-august.flv&amp;video_dur=&amp;splash_img=/files/images/topten_new_thumb_0.jpg" type="application/x-shockwave-flash"/>'
				//swfobject.embedSWF(abs_url, "c-player", "600", "368", "9.0.0", "expressInstall.swf", {pre_role:""}, {wmode:"transparent",scale:"noscale",menu:"false"}, {});
				swfobject.embedSWF(abs_url, "c-player", "600", "368", "9.0.0", "expressInstall.swf", {wmode:"transparent",scale:"noscale",menu:"false",allowscriptaccess:"always"}, {allowscriptaccess:"always",allowfullscreen:"true"});

			}
		}
		else{
			//if (is_first) {
				$('c-stage').innerHTML = '<a href="' + encodeURI(item.url) + '"><img src="' + item.image + '" class="c-current" /></a>';
				$('c-stage').innerHTML += '<a href="' + encodeURI(item.url) + '"><h3 class="c-current">' + item.title + '</h3></a>';
				$('c-stage').innerHTML += '<p>' + item.description + ' <a href="' + encodeURI(item.url) + '"> Watch Now &raquo;</a></p>';
			/*}
			else {		
				var abs_url = "/p.swf?video_file=" + encodeURI(item.url);
				$('c-stage').innerHTML = '<div id="c-player"></div>';
				var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
				var preroll_url = 'http://ad.doubleclick.net/pfadx/mlg.mlgpro/video' + (item.category != '' ? '/'+item.category : '') +';s1=video;s2=' + item.category + ';s3=;kw=;pid=' + item.node + ';pos=flv;mlg=ad;tile=1;sz=320x240;ord='+ timestamp;
			
				swfobject.embedSWF(abs_url, "c-player", "600", "368", "9.0.0", "expressInstall.swf", {pre_role:preroll_url,allowscriptaccess:"always"}, {allowscriptaccess:"always",wmode:"transparent",scale:"noscale",menu:"false"}, {});
			} */
		}
	},
	scrollLeft: function() {
		if (this.page > 1) {
			new Effect.MoveBy(this.scroller, 0, this.page_width, {duration: 0.5, transition: Effect.Transitions.sinoidal, queue: 'end'});
			this.page--;
		}
	},
	scrollRight: function() {
		if (this.page < this.total_pages) {
			new Effect.MoveBy(this.scroller, 0, -1*this.page_width, {duration: 0.5, transition: Effect.Transitions.sinoidal, queue: 'end'});
			this.page++;
		}
	},
	gotoFirstPage: function() {
		if (this.page > 1) {
			new Effect.MoveBy(this.scroller, 0, this.page_width * (this.page - 1), {duration: 0, transition: Effect.Transitions.sinoidal, queue: 'end'});
			this.page = 1;
		}
	},
	gotoLastPage: function() {
		if (this.page < this.total_pages) {
			new Effect.MoveBy(this.scroller, 0, -1*this.page_width * (this.total_pages - this.page), {duration: 0, transition: Effect.Transitions.sinoidal, queue: 'end'});
			this.page = this.total_pages;
		}
	},
	toggle: function(idx, type_restriction) {
		var i = 1;
		var tabs = $('c-tabs');
		tab = tabs.firstChild;
		while (tab != null) {
			if (tab.nodeName == 'LI') {
				tab.firstChild.className = (idx == i) ? "on" : "";
				Carousel.load(type_restriction);
				i++;
			}
			tab = tab.nextSibling;
		}
	}
};
