var VideoPlayer = Class.create();
VideoPlayer.prototype = {
	id:				null,
	fullScreen:		false,
	playTime:		0,
	playPosition:	0,
	data:			'',
	playState:		0,
	ad_event_init:	0,
	ad_event_play:	0,
	ad_event_5s:	0,
	ad_event_10s:	0,
	ad_event_15s:	0,
	ad_event_20s:	0,
	ad_event_done:	0,
	ad_event_click:	0,
	
	initialize: function(id)
	{
		this.id = id;	
	},
	
	onPlayStateChange: function()
	{
	
	},
	
	play: function(speed)
	{
		if (speed > 0)
		{
			video.sendEvent("PLAY","true");
		}
		else
		{
			video.sendEvent("PLAY","false");		
		}
	},
	
	stop: function()
	{
		video.sendEvent("STOP","true");
	},
	
	setFullScreen : function(fullScreen)
	{
		this.fullScreen = fullScreen;
		video.sendEvent("FULLSCREEN","true");
	},
	
	seek: function(seconds)
	{
		video.sendEvent("SEEK",seconds/1000);
	},
	
	setUrl: function(url)
	{
		this.data = url;
		video.sendEvent("LOAD",url);
	},
	
	loadAndPlay: function(url)
	{
		if (video)
		{
			this.setUrl(url);
			this.play(1);
		}
		else
		{
			//Video-Objekt noch nicht intialisiert - 500 ms warten
			window.setTimeout("videoplayer.loadAndPlay('" + url + "')",1000);
		}
	},
	
	stateListener: function(obj)
	{
		adOverlay = document.getElementById('AdOverlay');
		switch (obj.newstate)
		{
			case "IDLE":
				this.playState = 0;
				this.onPlayStateChange();
				break;
			case "BUFFERING":
				this.playState = 4;
				this.onPlayStateChange();
				break;
			case "PLAYING":
				this.playState = 1;
				this.onPlayStateChange();

				break;
			case "PAUSED":
				this.playState = 2;
				this.onPlayStateChange();
				adOverlay.style.display = "none";
				break;
			case "COMPLETED":
				this.playState = 5;
				this.onPlayStateChange();
				break;																				
			default:
				this.playState = 0;
				this.onPlayStateChange();
				break;
		}
	},
	
	timeListener: function(obj)
	{
		//In Milisekunden umrechnen
		this.playPosition = obj.position * 1000;
		this.playTime = obj.duration * 1000;
	},
	
	timeListener_ad: function(obj)
	{
		//löst nach 5/10/15/20 Sekunden (laufzeitabhängig) Ergebniszählungen auf dem adserver aus
		this.playPosition = obj.position * 1000;
		this.playTime = obj.duration * 1000;
		
		if(this.playTime>=2000 && this.playPosition>=5000 && this.ad_event_5s==0) {
			this.ad_event_5s = Cls + "istr05s" + Clr + ClGif;
			this.ad_event_5s = eventLoad(this.ad_event_5s);
		}
		if(this.playTime>=10000 && this.playPosition>=10000 && this.ad_event_10s==0) {
			this.ad_event_10s = Cls + "istr10s" + Clr + ClGif;
			this.ad_event_10s = eventLoad(this.ad_event_10s);
		}
		if(this.playTime>=15000 && this.playPosition>=15000 && this.ad_event_15s==0) {
			this.ad_event_15s = Cls + "istr15s" + Clr + ClGif;
			this.ad_event_15s = eventLoad(this.ad_event_15s);
		}
		if(this.playTime>=20000 && this.playPosition>=20000 && this.ad_event_20s==0) {
			this.ad_event_20s = Cls + "istr20s" + Clr + ClGif;
			this.ad_event_20s = eventLoad(this.ad_event_20s);
		}
	},
	
	updateState: function()
	{
		//This is done by the listeners
	}
	
}	
var videoplayer = new VideoPlayer('video');
var video = null; 
var playlist_ = null; 

function playlistHandler(player) {
	if(player.playlist.length>1) {
		playlist_ = player.playlist;
	}
}

function switchItem(item) {

	if(typeof(playlist_)!="undefined") {
		adOverlay = document.getElementById('AdOverlay');
		if(playlist_.length>1) {
			if(item.index==0) {
					this.ad_event_init = Cls + "play" + Clr + ClGif;
					this.ad_event_init = eventLoad(ad_event_init);
					this.ad_event_play = Cls + "istr00s" + Clr + ClGif;
					this.ad_event_play = eventLoad(ad_event_play);
					adOverlay.style.display = "block";
				video.addModelListener("TIME", 			"videoplayer.timeListener_ad");
			}
			else {
				this.ad_event_done = Cls + "istrend" + Clr + ClGif;
				this.ad_event_done = eventLoad(ad_event_done);
				adOverlay.style.display = "none";
				video.removeModelListener("TIME", 		"videoplayer.timeListener_ad");
				video.addModelListener("TIME", 			"videoplayer.timeListener");
			}
		}
		else {
			adOverlay.style.display = "none";
			video.removeModelListener("TIME", 		"videoplayer.timeListener_ad");
			video.addModelListener("TIME", 			"videoplayer.timeListener");
		}
	}
	else {
		video.removeModelListener("TIME", 		"videoplayer.timeListener_ad");
		video.addModelListener("TIME", 			"videoplayer.timeListener");
	}
}

function playerReady(obj) 
{ 
	video = document.getElementById('video');
	video.addModelListener("STATE", 		"videoplayer.stateListener");
	video.addModelListener("TIME", 			"videoplayer.timeListener");
	video.addModelListener("PLAYLIST", 		"videoplayer.playlistHandler");
	video.addControllerListener("PLAYLIST", "playlistHandler");
	video.addControllerListener("ITEM", 	"switchItem");
}

function eventLoad( url ) { 
	var adAjax = new Ajax.Request(
		url,
		{ method: 'post' }
	);
	return 1; 
}
