
function Movie() {
	
	var _self = this;
	var file = null;
	var container = null;
	var closeButton = null;
	var bodyContainer = null;
	var flashContainer = null;
	var playerSize = null;
	var bgImage = null;
	var active;
	
	//------------------------------------------------------------------
	
	this.__construct = function(a_file) {
		file = a_file;
		active = false;
		bgImage = imageBg.getImage();
		
		// filename_size_800x600.flv
		var width = 600;
		var height = 440;
		var needle = '_size_';
		var filename = file[0];
		if( filename.indexOf(needle) > -1 ) {
			var start = filename.indexOf('_size_') + needle.length;
			var end = filename.lastIndexOf('.') - start;
			var sizes = filename.substr(start, end );
			sizes = sizes.split('x');
			if( sizes.length == 2 && !isNaN(sizes[0]) && !isNaN(sizes[1]) ) {
				width = sizes[0];
				height = sizes[1];
			}
		}
		playerSize = {
			w: parseInt(width),
			h: parseInt(height)
		}
	}
	
	//------------------------------------------------------------------
	
	function setFlashplayer() {
		setContainer();
		setFlashContainer();
		hideBgImage( true );
		setFlashObject();
	}
	
	//------------------------------------------------------------------
	
	function setContainer() {
		if (container === null) {
			if (bodyContainer === null) {
				bodyContainer = document.getElementsByTagName("body");
				bodyContainer = bodyContainer[0];
			}
			container = document.createElement('div');
			container.id = 'movie_container';
			bodyContainer.appendChild(container);
			
			closeButton = document.createElement('div');
			closeButton.id = 'movie_closeButton'
			closeButton.style.left = playerSize.w + 14 + 'px';
			closeButton.alt = (LANG == 'de') ? 'x Video schliessen' : 'x Close video';
			closeButton.title = closeButton.alt;
			closeButton.onclick = function() {_self.stop();}
			container.appendChild(closeButton);
		}
		container.style.display = 'block';
		setContainerPosition();
	}
	
	//------------------------------------------------------------------
	
	function resetPlayer() {
		container.style.display = 'none';
		if( container.childNodes.length <= 1 ) return;
		
		for (i = 0; container.childNodes.length; i++) {
			if ( container.childNodes[i].id == 'movie_flashObject' )  {
				container.removeChild(container.childNodes[i]);
				break;
			}
		}
		flashContainer = null;
		hideBgImage( false );
	}
	
	//------------------------------------------------------------------
	
	function setFlashContainer() {
		flashContainer = document.createElement('div');
		flashContainer.id = 'movie_flashContainer';
		container.appendChild(flashContainer);
	}
	
	//------------------------------------------------------------------
	
	function setFlashObject() {
		var flashvars = {
			file:'../' + file[0],
			w:playerSize.w,
			h:playerSize.h
		};
		var params = {
			quality:"high",
			width:playerSize.w,
			height:playerSize.h
		};
		var attributes = {
			id: "movie_flashObject",
			name: "movie_flashObject",
			width:playerSize.w,
			height:playerSize.h
			
		};
		swfobject.embedSWF('/flash/player.swf', flashContainer.id, playerSize.w, playerSize.h, "9.0.0","/flash/expressInstall.swf", flashvars, params, attributes);
	}
	
	//------------------------------------------------------------------
	
	function hideBgImage( hide ){
		if( hide === true ) {
			bgImage.style.display = 'none';
		} else {
			bgImage.style.display = 'block';
			imageBg.adapt();
		}
	}
	
	//------------------------------------------------------------------
	
	function setContainerPosition() {
		if (container === null) {return;}
		container.style.top = (window.getSize().y / 2) - (playerSize.h / 2) + 'px';
		container.style.left = (window.getSize().x / 2) - (playerSize.w / 2) + 'px';
	}
	
	//------------------------------------------------------------------
	
	this.play = function() {
		if (active === true) {
			return;
		}
		active = true;
		imageBg.freezeAnimation(true);
		page.hide();
		setTimeout(function(){setFlashplayer();},1000);
	}
	
	//------------------------------------------------------------------
	
	this.stop = function() {
		resetPlayer();
		setTimeout(function(){
			page.show();
			imageBg.freezeAnimation(false);
			imageBg.startAnimation(true);
			active = false;
		},100);
	}
	
	//------------------------------------------------------------------
	
	this.isActive = function() {
		return active;
	}
	
	//------------------------------------------------------------------
	
	this.setPosition = function() {
		setContainerPosition();
	}
}
