

function doAnimateCarousel(obj, delta){
	window.clearTimeout(obj.timeout);
	var carousel_selector = "#" + obj.id;
	
	var index = obj.index;
	
	var next_index = index + delta;
	
	if (index < 0) index = 0;
	if (next_index < 0) next_index = obj.num_images - 1;
	if (next_index >= obj.num_images) next_index = 0;
	
	var toHide = $(carousel_selector + " .image").eq(index);
	var toShow = $(carousel_selector + " .image").eq(next_index);
	
	
	$(carousel_selector + " .image:eq(" + index + ") .carousel-info").slideUp("fast", function(){
		$(carousel_selector + " .image:eq(" + next_index + ") .carousel-info").hide();
		$(carousel_selector + " .image").eq(index).fadeOut("slow");
		$(carousel_selector + " .image").eq(next_index).fadeIn("slow", function (){
			$(carousel_selector + " .image:eq(" + next_index + ") .carousel-info").slideDown("fast", function (){
				obj.index = next_index;
				obj.timeout = window.setTimeout(function(){
						doAnimateCarousel(obj, 1);
					}, obj.timing);
			});
		});
	});
	
	
	
	
	
	
}
function carousel(obj){
	$(document).ready(function(){
		var carousel_selector = "#" + obj.id;
		obj.width = (obj.width) ? obj.width : 600;
		obj.height = (obj.height) ? obj.height : 400;
		obj.timing = (obj.timing) ? obj.timing : 5000;
		
		
		
		obj.index = 0;
		obj.timeout = 0;
		obj.num_images = $(carousel_selector + " .image").length;
		$(carousel_selector).css({
			"position": "relative", 
			"overflow" : "hidden",
			"width" : obj.width,
			"height" : obj.height
		});
		$(carousel_selector + " .image").each(function(j){
				
				$(this).css({"width": obj.width,
									"height": obj.height,
									"overflow" : "hidden", 
									"position": "absolute",
									"left": "0px",
									"top": "0px",
									"z-index" : j});
				$("img", this).css({
									"position": "absolute",
									"left": "0px",
									"top": "0px",
									"z-index" : "1"});
				$(this).append("<div class=\"carousel-info\"></div>");
				$(".carousel-info", this).append($("<div class=\"carousel-info-bg\"></div>", this));
				$(".carousel-info", this).append($("<div class=\"carousel-info-fg\"></div>", this));
				$(".carousel-info .carousel-info-fg", this).append($("h3", this));
				$(".carousel-info .carousel-info-fg", this).append($("p", this));
				$(".carousel-info", this).css({
									"position": "absolute",
									"z-index" : "3"});
				
				$(".carousel-info .carousel-info-bg", this).css({"width": "100%", "height": "100%", 
									"position": "absolute",
									"left": "0px",
									"top": "0px"});
				$(".carousel-info .carousel-info-fg", this).css({
									"position": "absolute",
									"left": "0px",
									"top": "0px"});
				$(this).attr("title", $("h3",this).text());
				$(this).click(function(){
					window.location = $("a", this).attr("href");
				});
				
				
		});
		$(carousel_selector).append("<div class=\"carousel-nav\"></div>");
		$(carousel_selector + " .carousel-nav").css(
									{"position": "absolute",
									"z-index" : "999999"}
		
		);
		$(carousel_selector + " .carousel-nav" ).append("<div class=\"carousel-prev-button\"></div>");
		$(carousel_selector + " .carousel-nav" ).append("<div class=\"carousel-next-button\"></div>");
		$(carousel_selector + " .carousel-next-button").click( function(){
			doAnimateCarousel(obj, 1);
		});
		$(carousel_selector + " .carousel-prev-button").click( function(){
			doAnimateCarousel(obj, -1);
		});
		doAnimateCarousel(obj, 0);
	});
}