//PlayerControl
// (C) 1998-2006 nc3 GmbH Leipzig
// all rights reserved


var videoType = 'wmt';
var wmVolumeStep = 250;
var wmVolumeMin = -2500;
var wmVolumeMax = 0;
var rvVolumeStep = 10;
var rvVolumeMin = 0;
var rvVolumeMax = 100;

var scrollStart = 1;
var scrollMax = 170;
var actScrollPos = 1;
var volumePos = 0;
var mausX = 0;
var Level;
var a,b=0;

var dragElement;
var elX;
var mouseDownX;
var isset_scroll=false;
var isset_jump=false;




//INIT+++++++++++++++++++++++++++++++++++++++++INIT++++++++++++++++++++++++++++++++++++++INIT+++++++++++++++++++++++INIT
//INIT+++++++++++++++++++++++++++++++++++++++++INIT++++++++++++++++++++++++++++++++++++++INIT+++++++++++++++++++++++INIT


function init() {


	detectBrowser();
	
	if (window.ActiveXObject) {						//IE greift auf Object-Tag zu. Funktioniert immer
		initTheme();
		initPlayer();
		document.getElementById("playerControlPanel").style.display = "block";	//JS-Panel einblenden
		document.getElementById("vid_top").src=backgroundthemename+"video600_top.gif";	//Video-Schatten  einblenden
		document.getElementById("vid_left").src=backgroundthemename+"video600_left.gif";
		document.getElementById("vid_right").src=backgroundthemename+"video600_right.gif";
		
		
		
	} else {						//Andere Browser auf EMBED-Tag
		if (videoType=='rm') {				//Real manchamal über JS-Panel, manchmal ohne. Windows Media immer ohne JS-Panel
			try { 					//checken, ob JS-Steuerung möglich ist	
				playerObject = getRealPlayer();
				test = playerObject.GetVolume();
			} catch (E) {
				//nüscht
			}
			if (typeof(test) == 'number') {
				playerObject = getRealPlayer();
				playerObject.SetControls("Imagewindow");	
				if (themesize==240){
					document.rm.height="180";
				} else {
					playerObject.height="240";
				}
				initTheme();
				initPlayer();
				document.getElementById("playerControlPanel").style.display = "block";	
				document.getElementById("vid_top").src=backgroundthemename+"video600_top.gif";	//Video-Schatten  einblenden
				document.getElementById("vid_left").src=backgroundthemename+"video600_left.gif";
				document.getElementById("vid_right").src=backgroundthemename+"video600_right.gif";
				
			} else { 
				
	    		
			}
	    } 
	}
		
}


function initPlayer() {

  detectVolume();
  document.onmouseup = stopDrag;
  document.ondragstart=new Function ("return false");document.onselectstart=new Function ("return false") ;//sonst macht IE faxen.....
  // Scroll-Button wird bei IE über ein img im div-Bereich, und beim NS über ein style:backgroundImage dargestellt,
  // da Browser mit der jeweils anderen Einstellung rumhacken
  if (ie) {
  	document.getElementById("img_scroll").src=themename+"ctrlSlider.gif";
	
  } else {
  	document.getElementById("div_scroll").style.backgroundImage='url("' + themename + 'ctrlSlider.gif")';;
  }
  videoControlLoop();	
}


function detectBrowser() {

	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);
	ie   = ((agt.indexOf("msie") != -1) && (agt.indexOf('opera')==-1));
}


function detectVolume() {

	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		actVolume = playerObject.Volume;
		Level=parseInt((actVolume+2500)/312);
	}
	if (videoType == 'rm') {
		playerObject = getRealPlayer();
		actVolume = playerObject.GetVolume();	
		Level=parseInt(actVolume/12.5);
	}
	document.getElementById("div_volume").style.backgroundImage='url("' + themename + "volume" + Level + '.gif")';
	
}


function getRealPlayer() {
	//returns a reference to the real player object
	if (window.ActiveXObject) {
	    return document.rm;
	} else {
	    return document.embeds[0];
	}
	

}


function getMediaPlayer() {
	//returns a reference to the media player object
	if (typeof(document.embeds["wmp"]) == 'object') {
		return document.embeds["wmp"];
	} else {
		return document.getElementById("wmp");
	}
}







//THE LOOP++++++++++++++++++++++++++++++++++++++++++++++THE LOOP+++++++++++++++++++++++++++++++++++++++++++++THE LOOP+++++++++++++
//THE LOOP++++++++++++++++++++++++++++++++++++++++++++++THE LOOP+++++++++++++++++++++++++++++++++++++++++++++THE LOOP+++++++++++++


function videoControlLoop() {

	if(!isset_scroll)	{
		
		//getting times and buffer
		if (videoType == 'wmt') {
			
			playerObject = getMediaPlayer();
			var currentSec = playerObject.CurrentPosition;
			var maxSec = playerObject.Duration;
		        var iBuffer = playerObject.BufferingProgress;
			
			
			if ((iBuffer<90) && ((playerObject.PlayState==2) || (playerObject.PlayState==3))) {
				document.getElementById("Videofenster").style.display = "none";	
				document.getElementById("Loadingfenster").style.display = "inline";
			} else {
				document.getElementById("Loadingfenster").style.display = "none";
				document.getElementById("Videofenster").style.display = "inline";	
			}
			
		} else { //realplaye
			
			playerObject = getRealPlayer();
			var currentSec = playerObject.GetPosition()/1000;
			var maxSec = playerObject.GetLength()/1000;
			if (ie) { //wenn bei Netscape das Video während Ladezeit ausgeblendete wird, bricht der Ladevorgang ab
			var state=parseInt(playerObject.GetPlayState());
				if (state==0 | state==3 | state==4 ) {
					document.getElementById("Loadingfenster").style.display = "none";
					document.getElementById("Videofenster").style.display = "inline";
				} else {
					document.getElementById("Videofenster").style.display = "none";	
					document.getElementById("Loadingfenster").style.display = "inline";
					
				}
			}
			
		}	
		
		
				
		//showing elapsed and absolute time				
		document.getElementById('timeMessage1').innerHTML =	playerText1;
		document.getElementById('timeMessage2').innerHTML =	timeChange(currentSec)+'   ';
		document.getElementById('timeMessage3').innerHTML =	' '+playerText2+' '+ timeChange(maxSec);
		
		
		//calculating the scroll position
		actScrollPos = parseInt((currentSec/maxSec * scrollMax), 10);
		if (actScrollPos > scrollMax) {
			actScrollPos = scrollMax;
		}
		if (actScrollPos < scrollStart) {
			actScrollPos = scrollStart;
		}
		
		if (isNaN(actScrollPos)) {
			actScrollPos = 1
			
		}
		
		//setting the scroll-images, but not when dragged
		if (!isset_scroll) {	
			if (ie) {
				document.getElementById("div_scroll").style.pixelLeft= actScrollPos;
			} else {
				document.getElementById("div_scroll").style.left = actScrollPos;
				
			}
		}
	}
	
	// restart	each second
	dTimer = setTimeout('videoControlLoop()',1000);
}


function timeChange(tmp) {// converts time values into a readable timestring
	var mins = parseInt(tmp/60,10);
	var secs = parseInt(tmp%60,10);
	var hours = parseInt(mins/60,10)
	mins=mins-(60*hours);
	if (isNaN(mins)) mins=0;
	if (isNaN(secs) || secs < 0) secs=0;
	if (mins < 10) mins = '0' + mins;
	if (secs < 10) secs = '0' + secs;
	tmp = hours+":"+mins+":"+secs;
	return tmp;
}








//CHANGE POSITION+++++++++++++++++++++++++++++++++++++++++++CHANGE POSITON+++++++++++++++++++++++++++++++++CHANGE POSITION+++++++++
//CHANGE POSITION+++++++++++++++++++++++++++++++++++++++++++CHANGE POSITON+++++++++++++++++++++++++++++++++CHANGE POSITION+++++++++

//Fader------------------------------------------------------------------
function startDrag (evt) {
	dragElement = document.getElementById("div_scroll");
	isset_scroll=true;
	elX=dragElement.offsetLeft;
	mouseDownX = evt.clientX;
	document.onmousemove = scroll_pos;
}


function scroll_pos (evt) {
  if (document.all){
  	 dragElement.style.pixelLeft = elX + event.clientX - mouseDownX;
	 if (dragElement.style.pixelLeft<document.all.div_empty.style.pixelLeft+1){
		dragElement.style.pixelLeft=document.all.div_empty.style.pixelLeft+1;
	 }
	 if (dragElement.style.pixelLeft>document.all.div_empty.style.pixelLeft+scrollMax-1){
		dragElement.style.pixelLeft=document.all.div_empty.style.pixelLeft+scrollMax-1;
	 }
  } else {
  	 dragElement.style.left = elX + evt.clientX - mouseDownX;
	 if (parseInt(dragElement.style.left)<parseInt(document.getElementById("div_empty").style.left-1)){
	 	dragElement.style.left=document.getElementById("div_empty").style.left+1;
	 }
	 if (parseInt(dragElement.style.left)>parseInt(document.getElementById("div_empty").style.left+scrollMax-1)){
	 	 dragElement.style.left=document.getElementById("div_empty").style.left+scrollMax-1;
	 }
  }
}


//Direct Cliok--------------------------------------------------------------
function jump(evt) {
	if (!isset_scroll) {
	isset_jump=true;	
	changePosition(evt);
	} 
}


//Jump to Position-------------------------------------------------------------
function changePosition(evt) {

	
	if (isset_scroll) {
		if (ie) {
			newPos=parseInt(document.getElementById("div_scroll").style.pixelLeft);	//geht auch mit left?
		} else if (document.getElementById) {
			newPos=parseInt(document.getElementById("div_scroll").style.left);
		}
	} else if (isset_jump){
		if (ie){
		  	 newPos=event.x;
		} else {
			 if (evt.eventPhase<3) newPos=evt.layerX; //nicht, wenn event hochbubblet, da dies von div_emptykommt
		}	
	}
	
	isset_scroll=false;
	isset_jump=false;
	
   if (newPos < scrollStart || newPos >= scrollMax)
		return;
	
	factor = newPos / scrollMax;
	
			
	//getting the max time value
	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		if (ie) {
			var maxSec = playerObject.Duration;//alert(maxSec *factor);
			playerObject.CurrentPosition = maxSec * factor;
			return;
		} else {
			var maxSec = playerObject.GetDuration();
			playerObject.SetCurrentPosition(maxSec*factor);
		}
	} 

	if (videoType == 'rm') {
		playerObject = getRealPlayer();
		var maxSec = playerObject.GetLength();
		playerObject.SetPosition(maxSec*factor);
		
	}
	return false;
}








//CHANGE VOLUME++++++++++++++++++++++++++++++++++++++++++++++++++++CHANGE VOLUME++++++++++++++++++++++++++++++++++++++++++++++++++
//CHANGE VOLUME++++++++++++++++++++++++++++++++++++++++++++++++++++CHANGE VOLUME++++++++++++++++++++++++++++++++++++++++++++++++++


function change_volume(evt) {

	if (document.all) {
		volumePos=evt.clientX-evt.x;
	} else {
		volumePos=evt.clientX-parseInt(evt.layerX);
	}
	scroll_volume(evt); 
	document.onmousemove=scroll_volume;
	
}


function scroll_volume(evt) {
	
	if (ie) {
		Level=parseInt((event.clientX-volumePos)/3)-1; 
	} else {
		Level=parseInt((evt.clientX-volumePos)/3)-1; 
	}
	
	if (Level<0) Level=0;if (Level>8) Level=8;
	document.getElementById("div_volume").style.backgroundImage ='url("' + themename + "volume" + Level + '.gif")';
		
	
	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		playerObject.Volume=((Level)*312-2500);
	} else {
		playerObject = getRealPlayer();
		playerObject.SetVolume(parseInt((Level*1.25)*10));
	}	
	
}

function mouseover_volume(){

	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		actVolume = playerObject.Volume;
		Level=parseInt((actVolume+2500)/312);
	}
	if (videoType == 'rm') {
		playerObject = getRealPlayer();
		actVolume = playerObject.GetVolume();	
		Level=parseInt(actVolume/12.5);
	}
	document.getElementById("div_volume").style.backgroundImage='url("' + themename + "volume" + Level + '_ov.gif")';
	
}

function mouseout_volume() {
	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		actVolume = playerObject.Volume;
		Level=parseInt((actVolume+2500)/312);
	}
	if (videoType == 'rm') {
		playerObject = getRealPlayer();
		actVolume = playerObject.GetVolume();	
		Level=parseInt(actVolume/12.5);
	}
	document.getElementById("div_volume").style.backgroundImage='url("' + themename + "volume" + Level + '.gif")';
}







//STOP DRAGGING++++++++++++++++++++++++++++++++++++++++++STOP DRAGGING+++++++++++++++++++++++++++++++++++++++++++++STOP DRAGGING
//STOP DRAGGING++++++++++++++++++++++++++++++++++++++++++STOP DRAGGING+++++++++++++++++++++++++++++++++++++++++++++STOP DRAGGING


function stopDrag() {
  document.onmousemove = null;
  dragElement = null;
  if (isset_scroll) {
  	changePosition();	
  }
  
}




//SIMPLE BUTTONS++++++++++++++++++++++++++++++++++++SIMPLE BUTTONS+++++++++++++++++++++++++++++++++++++SIMPLE BUTTONS+++++++++++++++++
//SIMPLE BUTTONS++++++++++++++++++++++++++++++++++++SIMPLE BUTTONS+++++++++++++++++++++++++++++++++++++SIMPLE BUTTONS+++++++++++++++++


function doFullscreen() {
	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		if (ie) {
			playerObject.DisplaySize = 3;
		} else {
			playerObject.SetDisplaySize(3);
		}
	} else {
		if (ie){
			document.all.rm.SetFullScreen();
		} else {
      		document.getElementById(rm).SetFullScreen();
		}
	}
}


function doPlay() {
	//starts the player
	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		playerObject.Play();
	}
	if (videoType == 'rm') {
		//get the reference to the real object
		playerObject = getRealPlayer();
		playerObject.DoPlay();
	}
	return true;
}


function doPause() {

	if (videoType == 'wmt') {
		playerObject = getMediaPlayer();
		playerObject.Pause();
		
	}
	if (videoType == 'rm') {
		playerObject = getRealPlayer();
		playerObject.DoPause();
	}
	return true;
}


function doStop() {
	//stops the player and returns to the beginning of the video

	if (videoType == 'wmt') {
		document.getElementById("Loadingfenster").style.display = "none";
		document.getElementById("Videofenster").style.display = "inline";
		playerObject = getMediaPlayer();
		playerObject.Stop();
		
	}
	if (videoType == 'rm') {
		//get the reference to the real object
		document.getElementById("Loadingfenster").style.display = "none";
		document.getElementById("Videofenster").style.display = "inline";
		playerObject = getRealPlayer();
		playerObject.DoStop();
	}
	
}


//Analyserfunktionen
function DoDaten(PictureHost) {
	hide_reiter(PictureHost);	
	document.getElementById('Daten').style.display="inline"; 
	document.getElementById('DatenImg').src=PictureHost+"/images/icons/Reiter1_on.gif";

}	

function DoSetup(PictureHost) {
	hide_reiter(PictureHost);
	document.getElementById('Setup').style.display="inline";
	document.getElementById('SetupImg').src=PictureHost+"/images/icons/Reiter2_on.gif";

		
	
}	

function DoSprachen(PictureHost) {
	hide_reiter(PictureHost);
	document.getElementById('Sprachen').style.display="inline"; 
	document.getElementById('SprachImg').src=PictureHost+"/images/icons/Reiter3_on.gif";
	
	
}

function hide_reiter(PictureHost) {
	document.getElementById('Setup').style.display="none"; 
	document.getElementById('Daten').style.display="none";
	document.getElementById('Sprachen').style.display="none"; 
	
	document.getElementById('DatenImg').src=PictureHost+"/images/icons/Reiter1_off.gif";
	document.getElementById('SetupImg').src=PictureHost+"/images/icons/Reiter2_off.gif";
	document.getElementById('SprachImg').src=PictureHost+"/images/icons/Reiter3_off.gif";
}
