/**
 * voorstellingen 
 * jQuery 1.2.3
 * @author: arjen
 * 
 */ 
 
$(function(){
	//titel en artiest ophalen voor gebruik bij video player
	var title = $('#voorstellingKopAfbeeldingContainer .title').text();
	var artist = $('#voorstellingKopAfbeeldingContainer .artist').text(); 
	 
	// voorstelling container clickable
	$('#content .voorstellingList li').click(function(){
		sHref = $(this).find('h3 a').attr('href');
		document.location.href = sHref;
	});
	$('#content .voorstellingList li input').click(function(e){
		e.stopPropagation();
	});
	
	// hover state
	$('#content .voorstellingList li').hover(
		function(){
			$(this).addClass('over');
			//var sHref = $(this).find('h3 a').attr('href');
			//window.status = sHref;
		},
		function(){
			$(this).removeClass('over');
			//window.status = '';
		}	
	);
	
	// calender submit
	$('#formCalendar select').change(function() {
		$('#formCalendar').submit();
	});
	
	// set corner of mmedia menu
	setMultimediaMenuActive();
	
	
	// MediaPlayer
	
	if (typeof swfobject != 'undefined') {
		var playerVersion = swfobject.getFlashPlayerVersion();
		if (playerVersion.major > 6 || (playerVersion.major == 6 && playerVersion.minor == 0 && playerVersion.release > 64)) {
			MediaPlayer.debug = false;
			
			MediaPlayer.voorstellingContentContainer = $('#media-infoContainer');
			MediaPlayer.voorstellingActieContainer = $('#multimedia');
			
			$('#audioFragmenten a').click(function(){
				MediaPlayer.clip = $(this);
				$('body').removeClass('AVPlayerActive-' + MediaPlayer.playerType);
				MediaPlayer.playerType = 'audio';
				if (MediaPlayer.playClip()) 
					return false;
				return true;
			});
			$('#videoFragmenten a').click(function(){
				MediaPlayer.clip = $(this);
				$('body').removeClass('AVPlayerActive-' + MediaPlayer.playerType);
				MediaPlayer.playerType = 'video';
				if (MediaPlayer.playClip()) 
					return false;
				return true;
			});
			
			var buttonscreated = false;
			
			if ($('#audioFragmenten').length) {
				MediaPlayer.createButton($('#audioFragmenten'), 'audio', 'Audio');
				buttonscreated = true;
			}
			if ($('#videoFragmenten').length) {
				MediaPlayer.createButton($('#videoFragmenten'), 'video', 'Video');
				buttonscreated = true;
			}
			
			if (buttonscreated) {
				// remove last bar
				//$('#multimedia .button-streep:last').remove();
				
				// instant start when A/V button clicked from other page
				if (window.location && window.location.hash) {
					if (window.location.hash == '#audioFragmenten') {
						$('#btn-audio a').click();
						window.location = '#media-infoContainer';
					}
					else 
						if (window.location.hash == '#videoFragmenten') {
							$('#btn-video a').click();
							window.location = '#media-infoContainer';
						}
				}
			}
			
		}
	}

	// Multimedia menu last item hover
	setMultimediaMenuHover();
	
});


/**
 * MediaPlayer object
 */
var MediaPlayer = {
	debug: false,
	clip: [],
	clipContainer: [],
	playerActive: false,
	playerType: '',
	flashConfig_video: { flashver: '8.0.0', width: 400, height: 345, swf: 'videoplayer.swf', bgcolor: '#ffffff'},
	flashConfig_audio: { flashver: '7.0.0', width: 400,	height: 45, swf: 'audioplayer.swf', bgcolor: '#f2f2f2' },
	
	playClip: function(){
		file = this.clip.attr('href');
		title = this.clip.text();
		
		$('#flashMediaPlayer').remove();
		
		var flashConfig;
		
		if (this.playerType == 'audio')
			flashConfig = this.flashConfig_audio;
		else if (this.playerType == 'video')
			flashConfig = this.flashConfig_video;
		
		if (this.spawnPlayer(flashConfig, file, title)) {
			this.playerActive = true;
			$('body').addClass('AVPlayerActive-' + this.playerType);
			this.clip.addClass('playing');
			//MediaPlayer.playerType = 'audio';
			if (this.debug)
				console.log('spwaned' + this.playerType);
			return true;
		}
		return false;
	},
	
	spawnPlayer: function(config, file, title) {
		$('#mediaPlayerWrap').prepend('<div id="flashMediaPlayer"><p><a href="http://www.adobe.com/go/getflash/" rel="external">Adobe Flash Player versie 8 of hoger is benodigd</a></p></div>');
		
		// swfobject
		var flashvars = {playMe: true, myFile: file, title: title.toUpperCase(), closeFunction: "MediaPlayer.closeMediaPlayer"};
		var params = {wmode: "opaque", bgcolor: config.bgcolor};
		var attributes = {};
	
		swfobject.embedSWF("/flash/"+config.swf, "flashMediaPlayer", config.width, config.height, config.flashver, "/flash/expressInstall.swf", flashvars, params, attributes);
		
		if (this.playerType == 'audio')
			this.voorstellingContentContainer.find('.progImage').show();
		
		if ($('#flashMediaPlayer').length)
			return true;

		return false;
	},
	
	closeMediaPlayer: function(){
		this.clipContainer[this.playerType] = $(this.clipContainer[this.playerType]).clone(true);
		$('#flashMediaPlayer, #mediaPlayerWrap').remove();
		this.playerActive = false;
		
		$('body').removeClass('AVPlayerActive-' + this.playerType);
		$('#multimedia .btn').removeClass('btn-active');
		$('#multimedia .btn-media-hoekje').removeClass('btn-media-hoekje-active');
		
		this.playerType = null;
		
		if (this.debug)
			console.log(this.voorstellingContentContainer);
		this.voorstellingContentContainer.find('.progImage').show();
	},
	
	createButton: function(objClipContainer, strType, strLabel){

		// remove list & create button
		this.clipContainer[strType] = objClipContainer.clone(true); // need to clone always before removal
		objClipContainer.remove();
		
		$('#btn-'+strType+' a').data('type',strType).click(function(){
			if (MediaPlayer.playerActive && MediaPlayer.playerType == strType) {
				MediaPlayer.closeMediaPlayer();
				MediaPlayer.playerActive = false;
				$(this).parent().removeClass('btn-active');
				$('#multimedia .btn-media-hoekje').removeClass('btn-media-hoekje-active');
			}
			else {
				if (MediaPlayer.debug) console.log('create new player');				

				//$(this).parent().siblings().removeClass('active').end().addClass('active');		
								
				strType = $(this).data('type');
				
				// hide image (video)
				if (strType == 'video')
					MediaPlayer.voorstellingContentContainer.find('.progImage').hide();
				
				if (MediaPlayer.playerActive) {
					MediaPlayer.clipContainer[MediaPlayer.playerType] = $(MediaPlayer.clipContainer[MediaPlayer.playerType]).clone(true);
					$('#mediaPlayerWrap').remove();
				}
				
				MediaPlayer.voorstellingContentContainer.prepend('<div id="mediaPlayerWrap"></div>');
				$('#mediaPlayerWrap').prepend(MediaPlayer.clipContainer[strType]);
				
				$('#multimedia .btn').removeClass('btn-active');
				$(this).parent().addClass('btn-active');
				setMultimediaMenuActive();
				
				// play first from list
				$('#mediaPlayerWrap li a:first').click();
			}
			
			return false;
		});
	}
}

function setMultimediaMenuHover() {
	$('#multimedia span.btn a').unbind('hover');
	
	$('#multimedia span.btn:last a').hover(function(){
		$('#multimedia .btn-media-hoekje').addClass('btn-media-hoekje-hover');
	}, function () {
		$('#multimedia .btn-media-hoekje').removeClass('btn-media-hoekje-hover');
	});
}

function setMultimediaMenuActive() {
	// set corner of mmedia menu
	if ($('#multimedia .btn-active').next().is('.btn-media-hoekje')) {
		$('#multimedia .btn-media-hoekje').addClass('btn-media-hoekje-active');
	}
	else {
		$('#multimedia .btn-media-hoekje').removeClass('btn-media-hoekje-active');
	}
}
