var ThumbnailsCarousel = {
	
	Response  : false,
	DescURL   : false,
	OnClick   : false,
	FirstItem : 0,
	ButtonLabel : 'View image',
	
	// Load Carousel
	Load : function(cId, cFunction) {
	    jQuery('#' + cId).jcarousel({ 
			scroll: 1,
			wrap: 'both',
			initCallback: function(instance) {
				jQuery('#buttonNext').click(function(){ instance.next(); });
				jQuery('#buttonPrev').click(function(){ instance.prev(); });
			},
			itemLoadCallback: function(a, b, c, d) { cFunction(a, b, c, d) }	
		});	
		
		jQuery("#CarouselImage").load(function() {
			jQuery("#CarouselImage").animate({ opacity : 1 }, 500);	
		});
	},
	
	// JSON Request
	JSON : function(url, Data, bFunction) {
		jQuery.post(url, Data, function(ResponseJSON) { 
			ThumbnailsCarousel.Response = ResponseJSON;
			bFunction(); 
		}, "json");
	},
	
	// Build
	Build : function(Instance) {
		
		Instance.size(parseInt(ThumbnailsCarousel.Response.total));
		
		if(ThumbnailsCarousel.Response.images.length < 1) { return; }
		if(Instance.has(Instance.first, Instance.last))   { return; }
		
		var html  = '<ul id="listThumbnails">';
		
		jQuery(ThumbnailsCarousel.Response.images).each(function(i, image) {
			
			ThumbnailsCarousel.FirstItem = ThumbnailsCarousel.FirstItem + i;
			
			var onclick = ThumbnailsCarousel.OnClick
					 .replace("{ID}", image.id)
					 .replace("{FILE}", image.o_uri) 
					 .replace("{FILE2}", image.o_uri_2) 
					 .replace("{WIDTH}", image.o_size_x)
					 .replace("{HEIGHT}", image.o_size_y);
			
			html += '<li class="itemImgBlock" id="itemImgBlock-' + image.id + '">';
			html += '<p class="itemImgCont' + (ThumbnailsCarousel.FirstItem==0 ? ' thumbnail_on' : '') + '">';
			html += '<a href="#mainContent" onclick="' + onclick + '"><img src="' + image.thumb_uri + '" alt="" /></a>';
			html += '</p>';
			html += '<div class="bottomTxt">';
			html += '<h4>' + image.title.toUpperCase() + '</h4>';
			html += '<p><a href="#mainContent" onclick="' + onclick + '">' + ThumbnailsCarousel.ButtonLabel + '</a></p>';
			html += '</div>';
			html += '</li>';
		
		});
		html     += '</ul>';
		
		Instance.add(Instance.first, html);
	},
	
	LoadDesc : function(id) {
		jQuery.post(ThumbnailsCarousel.DescURL, {Item : id}, function(ResponseJSON) { 
			jQuery("#CarouselDesc").find(">h2").html(ResponseJSON.title);
			jQuery("#CarouselDesc").find(">div").html(ResponseJSON.desc);
			jQuery("#CarouselDesc").animate({ opacity : 1 }, 300);
		}, "json");
	},
	
	LoadImage : function(width, height, file, id) {
		jQuery("#CarouselDesc").animate({ opacity : 0 }, 300);
		
		jQuery(".itemImgBlock > p").removeClass('thumbnail_on');
		jQuery("#itemImgBlock-" + id + " > p").addClass('thumbnail_on');
		
		jQuery("#CarouselImage").animate({
			opacity : 0
		}, 500, function(){
		
			jQuery("#CarouselImage").height(height);
			jQuery("#CarouselImage").width(width);
			
			jQuery(this.parentNode).animate({
				width   : width,
				height  : height
			}, 500, function(){				
				jQuery("#CarouselImage").attr('src', file);
				ThumbnailsCarousel.LoadDesc(id);
			});
		});
	},

	LoadMovie : function(thumb, file, id) {
		jQuery("#CarouselDesc").animate({ opacity : 0 }, 300);
		
		jQuery(".itemImgBlock > p").removeClass('thumbnail_on');
		jQuery("#itemImgBlock-" + id + " > p").addClass('thumbnail_on');

		ThumbnailsCarousel.LoadDesc(id);

		player.addParam("menu", "false");
		player.addParam("wmode", "opaque");
		player.addVariable("videoContentPath", file);
		player.addVariable("imageContentPath", thumb);
		player.write("moviePlayer");
		
	}	

}