var CarouselView = function(){
	var items = [];
	var currentIndex = 0;
	
	var duration_FadeIn = 300;
	var duration_FadeOut = 300;
	
	var addItem = function(item){
		if(!item.jquery){
			item = $(item);
		}
		
		if(!items.length){
			item.fadeIn(0);
		}
		
		items.push(item);
	};
	
	var addItems = function(itemArr){
		if(!itemArr.jquery){
			itemArr = $(itemArr);
		}
		
		itemArr.each(function(i){
			addItem(itemArr[i]);
		});
	}
	
	var select = function(index){
		if(index != currentIndex && items[index]){
			select_Fade(index);
			currentIndex = index;
		}
	}
	
	var select_Fade = function(index){
		
		//alert(items[index].find("video").length);
		
		items[index].fadeIn(duration_FadeIn);
		items[currentIndex].fadeOut(duration_FadeOut);
		
		var videoNew = items[index].find("video");
		if(videoNew.length){
			videoNew.get(0).play();
		}
		
		var videoCurrent = items[currentIndex].find("video");
		if(videoCurrent.length){
			videoCurrent.get(0).pause();
		}
		
		var flashCurrent = items[currentIndex].find('object');
		if(flashCurrent && flashCurrent.attr("classid")){
			flashCurrent.get(0).stopVideo();
			//alert("flash > " + flashCurrent.attr("type"));
		}
		
		//items[currentIndex].children("video").pause();
	}
	
	return {
		addItem: addItem,
		addItems: addItems,
		select: select
	};
}





var CarouselMenu = function(){
	var items = [];
	var currentIndex = 0;
	
	var duration_FadeIn = 300;
	var duration_FadeOut = 300;
	
	var addItem = function(item){
		if(!item.jquery){
			item = $(item);
		}
		
		if(items.length){
			item.children("div.bg-tab-over").animate({opacity: 0}, {duration: 0, queue: false});
			item.children("div.bg-tab-hover").animate({opacity: 0}, {duration: 0, queue: false});
		}
		
		item.click(function(){
			select($(this).data("index"));
		});
		
		item.hover(
			function(){
				$(this).children("div.bg-tab-hover").animate({opacity: 1}, {duration: duration_FadeIn, queue: false});
			},
			function(){
				if($(this).data("index") != items[currentIndex].data("index")){
					$(this).children("div.bg-tab-hover").animate({opacity: 0}, {duration: duration_FadeOut, queue: false});
				}
			}
		);
		
		items.push(item);
	};
	
	var addItems = function(itemArr){
		if(!itemArr.jquery){
			itemArr = $(itemArr);
		}
		
		itemArr.each(function(i){
			addItem(itemArr[i]);
		});
	}
	
	var select = function(index){
		if(index != currentIndex && items[index]){
			select_Fade(index);
			
			currentIndex = index;
		}
	}
	
	var select_Fade = function(index){
		items[index].children("div.bg-tab-over").animate({opacity: 1}, {duration: duration_FadeIn, queue: false});
		items[currentIndex].children("div.bg-tab-over").animate({opacity: 0}, {duration: duration_FadeOut, queue: false});
		items[currentIndex].children("div.bg-tab-hover").animate({opacity: 0}, {duration: duration_FadeOut, queue: false});
	}
	
	return {
		addItem: addItem,
		addItems: addItems,
		select: select
	};
	
}
