// Video Viewer

//config vars

//script vars
var vidButtons = new Array();
var videoDiv;
var videoElement;
var videoDivTween;
var liElementFlashVid;
var liElementCloseVid;

//set 'window.onload' event handlers
if(window.attachEvent){
		//IE
		window.attachEvent('onload', initVidButtons);
	}
else if(window.addEventListener){
	//DOM Level 2 browsers
	window.addEventListener('load', initVidButtons, false);
}

function initVidButtons(){
	var aElements = document.getElementsByTagName('a');
	
	for(var i=0; i<aElements.length; i++){
		if(aElements[i].getAttribute('title') == 'bekijk video'){
			vidButtons.push(aElements[i]);
			alert('bekijk video element gevonden');
		}
	}
	
	for(var i=0; i<vidButtons.length; i++){
		vidButtons[i].onmouseup = viewVideo;
	}
}

function viewVideo(videoSrc){
	//alert(videoSrc);
	//alert(this.nodeName);
	
	videoDiv = document.createElement('div');
	videoDiv.id = 'video_viewer';
	videoDiv.onmouseup = closeVideo;
	
	videoDivTween = new Tween(videoDiv, 'opacity', 80, false, 'easOut');
	
	videoElement = document.createElement('video');
	videoElement.onmouseover = function(){
		this.over = true;
	}
	videoElement.onmouseout = function(){
		this.over = false;
	}
	videoElement.id = 'video_element';
	videoElement.setAttribute('controls', 'controls');
	var sourceElement = document.createElement('source');
	sourceElement.setAttribute('type', 'video/ogg; codecs="theora, vorbis"');
	sourceElement.setAttribute('src', 'video/' + videoSrc + '.ogv');
	videoElement.appendChild(sourceElement);
	
	opacValue(videoDiv,'set', 0);
	
	videoDivTween.tweenNow(0, 1, 'appendVideo("' + videoSrc + '")');
	
	document.getElementsByTagName('body')[0].insertBefore(videoDiv, document.getElementsByTagName('body')[0].firstChild);
	//alert('einde viewVideo(): tweening = ' + videoDivTween.isTweening);
}

function closeVideo(force){
	//alert(videoElement.over + ' - ' + liElementFlashVid.over + ' - ' + liElementCloseVid.over);
	if(videoElement.over == false && liElementFlashVid.over == false && liElementCloseVid.over == false){
		//alert('muis is buiten het video element');
		videoDivTween.tweenNow('current', 0, 'deleteElements()');
	}
	else if(force == true){
		videoDivTween.tweenNow('current', 0, 'deleteElements()');
	}
}

function appendVideo(videoSrc){
	//alert('appendVideo(), videoDiv opacity = ' + opacValue(videoDiv, 'get'));
	videoDiv.appendChild(videoElement);
	videoElement.appendChild(returnFlashElement(videoSrc));
	videoDiv.appendChild(returnButtonElements());
}

function deleteElements(){
	document.getElementsByTagName('body')[0].removeChild(videoDiv);
}

function returnFlashElement(videoSrc){
	//alert('returnFlashElement()');
	var objectElement = document.createElement('object');
	var paramElement = document.createElement('param');
	paramElement.setAttribute('name', 'movie');
	paramElement.setAttribute('value', 'video/' + videoSrc + '.swf');
	var embedElement = document.createElement('embed');
	embedElement.setAttribute('src', 'video/' + videoSrc + '.swf');
	embedElement.setAttribute('width', '800px');
	embedElement.setAttribute('height', '450px');
	
	objectElement.appendChild(paramElement);
	//alert(objectElement.appendChild(embedElement));
	if(objectElement.style.filter == undefined){
		//alert('Firefox');
		objectElement.appendChild(embedElement);
		return objectElement;
	}
	else {
		//alert('IE');
		//alert(videoElement.innerHTML);
		//videoElement.innerHTML = '<p>werkt niet in IE </p>';
		videoElement.innerHTML = videoElement.innerHTML + '<object><param name="movie" value="video/' + videoSrc + '.swf"/><embed src="video/' + videoSrc + '.swf"></embed></object>';
		return document.createTextNode('');
	}
}

function returnButtonElements(){
	var ulElement = document.createElement('ul');
	
	liElementFlashVid = document.createElement('li');
	liElementFlashVid.appendChild(document.createTextNode('Flash video'));
	liElementCloseVid = document.createElement('li');
	liElementCloseVid.appendChild(document.createTextNode('Sluit video'));
	
	liElementFlashVid.onmouseup = forceFlash;
	liElementCloseVid.onmouseup = function(){
		closeVideo(true);
	}
	liElementFlashVid.onmouseover = function(){
		this.over = true;	
	}
	liElementFlashVid.onmouseout = function(){
		this.over = false;	
	}
	liElementCloseVid.onmouseover = function(){
		this.over = true;	
	}
	liElementCloseVid.onmouseout = function(){
		this.over = false;	
	}
	
	if(videoElement.play){
		//alert(videoElement.play);
		ulElement.appendChild(liElementFlashVid);
	}
	ulElement.appendChild(liElementCloseVid);
	
	return ulElement;
}

function forceFlash(){
	var objectElementFF = document.getElementById('video_viewer').getElementsByTagName('object')[0];
	videoDiv.appendChild(objectElementFF);
	videoDiv.removeChild(videoElement);
	var parentNode = this.parentNode;
	parentNode.removeChild(this);
}