var currentCarrouselItem = 1;
var totalCarrouselItems;
var timerId;
var myFlow;
var carrouselBgJSON;
var portletContainer;
var volume = 0; //todo: set 100 bij live
var params = { allowScriptAccess: "always", wmode: "transparent"};
var youtubePlaying = false;


function showCarrouselItem(slidenr) {
	
	currentCarrouselItem = slidenr;
	portletContainer.hide();
	portletContainer.filter(slidenr).show();
	
	//portlet zelf
	var title = $("#slide_"+currentCarrouselItem).find("h3").html();
	var body = $("#slide_"+currentCarrouselItem).find(".item_body").html();
	var hide = (title=="" && body=="") ? true : false;
	
	$('#portletCarouselWrapper > div')
	.hide()
	.filter(function() { 
		return ( this.id.match('slide_' + currentCarrouselItem) && !hide); 
	})
	.fadeIn("fast");
		
	//slide link
	$(".slideLinks a").removeClass("active");
	$('.slideLinks > a')
	.filter(function() { 
		return this.href.match('slide_' + currentCarrouselItem); 
	})
	.addClass("active");
	
	myFlow.play(currentCarrouselItem-1); // activate flowplayer background
}

function carrouselTick() {
	
	var slidenr = (currentCarrouselItem < totalCarrouselItems)  ? parseInt(currentCarrouselItem)+1 : 1;
	showCarrouselItem(slidenr);
}

function removePlayAgain() {
	$f().getPlugin("play").hide();
}


function onYouTubePlayerReady(playerId) {
	var accessElement = $("#youtube" + playerId);
	$(accessElement).get(0).addEventListener("onStateChange", "onytplayerStateChange");
}

function onytplayerStateChange(newState) {
	if(newState==1) { //playing
		clearInterval(timerId);
		youtubePlaying = true;
	}
	
	if(newState==2 || newState==0) { //stopped or paused
		youtubePlaying = false;
	}
}


//onload
$(function() {
	
		//Youtube koppeling - swfobject methode
		$("#portletCarouselWrapper embed").each(function(i) {
			
			var src = $(this).attr("src");
			if(src.match(/youtube/)) {
				var container = $(this).after("<div id='youtube_container_"+parseInt(i+1)+"'>Hello</div>");				
				
				var w = $(this).attr("width");
				var h = $(this).attr("height");
				var src = $(this).attr("src");

				$(container).after('<script type="text/javascript">swfobject.embedSWF("'+src+'&playerapiid='+parseInt(i+1)+'&enablejsapi=1", "youtube_container_'+parseInt(i+1)+'", "'+w+'", "' +h+'", "8", null, null, params, {id:"youtube'+parseInt(i+1)+'"});</script>');
				var atts = { id: "myytplayer" };
				$(this).remove();
			}
		});
		
		$('.portletCarousel').each(function(i){
			//genereren links carrousel
			$('.slideLinks').append('<a href="#slide_'+ parseInt(i+1) +'"><span>'+ parseInt(i+1) +'</span></a>');
			$('.slideLinks a:first').addClass("active");
			$('.slideLinks a').click(function(){
				return false;
			});
		});
	
		
		$(".slideLinks").hide();
		
		$('#portletCarouselWrapper').show();
	
		portletContainer = $('#portletCarouselWrapper > div');
		portletContainer.hide();
		
		/* Flowplayer init */
		//get playlist items for flowplayer
		$.getJSON("/ajax/carrousel/getCarrouselItems.php", null, function(json){
			
			carrouselBgJSON = json;
			
			//init Flowplayer
			myFlow = flowplayer("flowplayer",
					{
						src: "/swf/flowplayer-3.2.4.swf",
						wmode: "transparent"
					},
					{
						onLoad: function() {
							
							this.setVolume(volume);

							//initialize carrousel
							totalCarrouselItems = $('#portletCarouselWrapper > div').length;
							
							$('.slideLinks a').hover(
									
								function() {
									
									if (this.className.indexOf('active') == -1){
										var nrArr = $(this).attr("href").match(/#slide_(\d)/);
										var nr = nrArr[1];
										
										clearInterval(timerId);
										showCarrouselItem(nr);
									}
									
									return false;
								},
								function() {
									if(totalCarrouselItems>1 && youtubePlaying==false) {
										clearInterval(timerId);
										timerId = setInterval(carrouselTick, 5000);
									}
								}
							);
							
							$('div.headerVisual').hover(
								function() {
									clearInterval(timerId);
								},
								function() {

									if(totalCarrouselItems>1 && youtubePlaying==false) {
										clearInterval(timerId);
										timerId = setInterval(carrouselTick, 5000);
									}
								}
							);
							
							if(totalCarrouselItems > 1) {
								clearInterval(timerId);
								timerId = setInterval(carrouselTick, 5000);
							}
						
							showCarrouselItem(currentCarrouselItem);
							
							//show buttons
							$(".slideLinks").show();
							
						},
						
						onBeforePause: function() {
							return false;
						},
					
						buffering: false,
						clip: {
							autoPlay:false,
							onFinish:removePlayAgain,
							fadeInSpeed: 1000,
							fadeOutSpeed: 1000
						},
						playlist: carrouselBgJSON,
						plugins:  {
							controls: null
						},
						play: {
							opacity: 0
						}
					}
				);
		});
	});

