(function($) {

	Namespace('MFMedia.TimelinedCategory', {
		'init': function(container)
		{
			var resizeKey = arguments[1] || 'default';
			
			var ratio, scrollContainerWidth, scrollContentWidth, minLeft;
			var t = container.find('.timeline');
			var tcw = container.find('.timelined-category-wrapper');
			var tc = container.find('.timelined-category');
			var scrollbar = $('.timeline-scrollbar');
			var scrollHandle = $('.timeline-scrollbar-handle');
			
			var checkLoadMore = function() {
				if (parseInt(tc.css('left')) < minLeft + 300) {
					var more = container.find('#timelined-post-more:not(.loading)'); //.addClass('loading');
					if (more.length > 0) {
						$.get(more.find('a').attr('href'), {'mfajax': 'true', 'lang': MFMediaSettings.lang}, function(data) {
							try {
							more.replaceWith($(data));
							more = null;
							} catch (e) {}

							MFMedia.ResizeManager.resize();
							scrollTo(0, false);
							MFMedia.TimelinedCategory.initContent(tc);
						}, 'html');
					}
				}
			};
			
			MFMedia.ResizeManager.addHandler(function() {
				
				scrollContentWidth = 20;
				/*tc.find('li').each(function() {
					scrollContentWidth += $(this).css('width')+30;
				})*/
				//scrollContentWidth += tc.find('.objectcase').length * 445;
				var maxTabLength = 0;
				var tabcases = tc.find('.tabcase');
				for (i=0;i<tabcases.length;i++) {
					var l = tabcases.eq(i).find('.infotabcase').length;
					if (maxTabLength < l) {
						maxTabLength = l;
					}
				}
				
				scrollContentWidth = (maxTabLength+tc.find('.timelined-post').length+tc.find('.normalcase').length+tc.find('.postpiccase').length) * 340 + tc.find('.objectcase').length * 445+tc.find('.videocase').width();
								
				if (tc.find('#trailercase'))
					scrollContentWidth += tc.find('#trailercase').width();
				scrollContainerWidth = t.width() - 60;
				ratio = (scrollContentWidth - scrollContainerWidth) / (scrollbar.width() - 30);
				minLeft = - (scrollContentWidth - scrollContainerWidth);
				if (minLeft > 0) minLeft = 0;
				tcw.css('width', scrollContainerWidth);
				tc.css('width', scrollContentWidth);
				
				if (scrollContentWidth <= scrollContainerWidth) {
					container.find('.timeline-scrollbar').css('display', 'none');
					container.find('.timeline-arrow').css('visibility', 'hidden');
					tc.css('left', 0);
				} else {
					container.find('.timeline-scrollbar').css('display', 'block');
					container.find('.timeline-arrow').css('visibility', 'visible');
				}
				/*
				var splash = tc.find('.splash');
				if (t.height() < 350) {
					splash.css('height', tc.height() - 100);
					splash.find('img').css('top', (splash.height() - 200) / 2);
				} else {
					splash.css('height', 200);
					splash.find('img').css('top', 0);
				}
				*/
			}, resizeKey);
			
			scrollHandle.draggable('destroy');
			scrollHandle.draggable({
				axis: 'x',
				containment: 'parent',
				drag: function(event, ui) {
					var tcsize = tc.css('width').replace('px', '');
					
					if(tcsize >= MFMedia.getWindowWidth()) {
						var x = parseInt(scrollHandle.css('left'));
						tc.css('left', - x * ratio);
					}
				},
				stop: checkLoadMore
			});
			
			var scrollTo = function(diff, check) {
				var l = parseInt(tc.css('left')) + diff;
				l = l > 0 ? 0 : l;
				l = l < minLeft ? minLeft : l;
				try {
					// to prevent an eratic IE error
					tc.stop().animate({ 'left': l }, 500);
					scrollHandle.stop().animate({ 'left': Math.abs(l) / ratio }, 500);
				} catch(e) {}
				
				check && checkLoadMore();
			};
			
			t.mousewheel(function(event, delta) {
				if (delta > 0) {
					scrollTo(300, true);
				} else if (delta < 0) {
					scrollTo(-300, true);
				}
			});
			
			container.find('.timeline-arrow-left').click(function() {
				scrollTo(300, true);
				return false;
			});
			
			container.find('.timeline-arrow-right').click(function() {
				scrollTo(-300, true);
				return false;
			});
			
			/*container.find('.toto').click(function() {
				scrollTo(-800, true);
				return false;
			});
			*/
			scrollHandle.css('left', '0px');
			MFMedia.ResizeManager.resize();
			MFMedia.TimelinedCategory.initContent(tc);
		},
		'initContent': function(container)
		{
			MFMedia.TimelinedCategory.loadThumbs(container);
			MFMedia.TimelinedCategory.shortenTitles(container);
		},
		
		'loadThumbs': function(container) 
		{
			var urlBase = MFMediaSettings.templateUrl + '/partials/thumbs/splash.php?playlistId=';
			container.find('li.timelined-post .video:not(.loaded)').each(function() {
				 var playlistId = parseInt(this.rel);
				 var self = $(this);
				 self.load(urlBase + playlistId, {}, function() {
					 self.find('img').css('top', (self.height() - 200) / 2);
				 });
				 self.addClass('loaded');
			});
		},
		
		'shortenTitles': function(container)
		{
			container.find('li.timelined-post h3 a:not(.shortened)').each(function() {
				MFMedia.shortenTitles($(this), 20);
			});
		}
	});
	
})(jQuery);


function setPage(page)
{
	jQuery(".tabcase").css("display","none");
	jQuery(".normalcase").css("display","none");
	document.getElementById(page).style.display = "block";
}

function setHomePage()
{
	jQuery(".tabcase").css("display","none");
	jQuery(".normalcase").css("display","block");
}

