//*******************************************
//*******************************************
//
//
//© 2004 - Great Dane Communication/Rasmus Tønnesen ®
//
//Great Dane Communication
//Nørrebrogade 52C, 1 sal
//DK-2200 Copenhagen N.
//Denmark 
//+45 33439500
//
//http://www.greatdane.dk
//
//*******************************************
//**********



	function start(){

		playerObject = document.getElementById('player1');



		if (version == 7) {
			bindNavigation();
			
			if (isSeminar) {
				runPresentation(0,4);
				highlightIndex();
			}	

			playerObject.style.width = 0;
			playerObject.style.height = 0;
			document.getElementById("linkrow").style.display = "none";

			running();
		}
		else {
			if (isSeminar) {
				runPresentation(0,0);
				document.getElementById("picture").src = onlyWindowsPicture.src;
			}
		
			document.getElementById("statusRow").style.display = "none";
			document.getElementById("buttonRow").style.display = "none";

		
		}
	
		down = false;


	}


	function bindNavigation(){
		addOnEvent (document.getElementById("play"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("pause"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("stop"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("fforward"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("rewind"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("playerKnob"), "mouseover", mouseOverButton);
		addOnEvent (document.getElementById("volumeKnob"), "mouseover", mouseOverButton);


		
		addOnEvent (document.getElementById("play"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("pause"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("stop"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("fforward"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("rewind"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("playerKnob"), "mouseout", mouseOutButton);
		addOnEvent (document.getElementById("volumeKnob"), "mouseout", mouseOutButton);
		

		addOnEvent (document.getElementById("play"), "click", mouseClickButton);
		addOnEvent (document.getElementById("pause"), "click", mouseClickButton);
		addOnEvent (document.getElementById("stop"), "click", mouseClickButton);
		addOnEvent (document.getElementById("fforward"), "click", mouseClickButton);
		addOnEvent (document.getElementById("rewind"), "click", mouseClickButton);
		addOnEvent (document.getElementById("playerKnob"), "click", mouseClickButton);
		addOnEvent (document.getElementById("volumeKnob"), "click", mouseClickButton);

		addOnEvent (document.getElementById("playerKnob"), "mousedown", mouseDown);
		addOnEvent (document.getElementById("volumeKnob"), "mousedown", mouseDown);

	}




	function mouseOverButton(e){
		if (this.id == "play") this.src = playPictureHover.src;
		if (this.id == "pause") this.src = pausePictureHover.src;
		if (this.id == "stop") this.src = stopPictureHover.src;
		if (this.id == "fforward") this.src = fforwardPictureHover.src;
		if (this.id == "rewind") this.src = rewindPictureHover.src;
		if (this.id == "playerKnob") this.src = playerKnobPictureHover.src;
		if (this.id == "volumeKnob") this.src = volumeKnobPictureHover.src;
	}

	function mouseOutButton(e){
		if (this.id == "play") this.src = playPicture.src;
		if (this.id == "pause") this.src = pausePicture.src;
		if (this.id == "stop") this.src = stopPicture.src;
		if (this.id == "fforward") this.src = fforwardPicture.src;
		if (this.id == "rewind") this.src = rewindPicture.src;
		if (this.id == "playerKnob") this.src = playerKnobPicture.src;
		if (this.id == "volumeKnob") this.src = volumeKnobPicture.src;
	}

	function mouseClickButton(e){
		if (this.id == "play") play();
		if (this.id == "pause") pause();
		if (this.id == "stop") stop();
		if (this.id == "fforward") fforward();
		if (this.id == "rewind") rewind();
	}


	var timeLeft = 999;
	function running() {
		updatePB();
		updatePlayer();

		if (isSeminar) updateSlide();


		try {
			if (getClipDuration() != 0 && getClipPosition() != 0)
				timeLeft = getClipDuration() - getClipPosition();
		}
		catch(e){
		true;
		};
		setTimeout("running()", 500);
	}


	function isWMP7(){
		var ret=false;


			try{
				WMP7 = new ActiveXObject('WMPlayer.OCX');
				if (WMP7) {
					//WMP7 = nothing;
					ret = true;
				}
				else
				{
					ret = false;
				}
			}
			catch(e){
				ret = false;
			}
		return ret;
	}


	


	var version;
	if (isWMP7()) version = 7;
	else version = 6.4;
	//alert (version);

/*

	function writePlayer(url, width, height){


		<!-- Check Media Player Version -->

		// Windows Media Player 7 Code
		if ( version == 7 )
		{
			 document.write ('<OBJECT ID=player1 ');
			 document.write (' CLASSID=CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6');
			 document.write (' standby="Loading Microsoft Windows Media Player components..."');
			 document.write (' TYPE="application/x-oleobject" width="' + width + '" height="' + height + '">');
			 document.write ('<PARAM NAME="url" VALUE="' + url + '">');
			 document.write ('<PARAM NAME="AutoStart" VALUE="true">');
			 document.write ('<PARAM NAME="ShowControls" VALUE="false">');
			 document.write ('<PARAM NAME="uiMode" VALUE="none">');
			 document.write ('<PARAM NAME="stretchToFit" VALUE="true">');
			 document.write ('</OBJECT>');


		}

		// Windows Media Player 6.4 Code
		else
		{
			 //IE Code
			 document.write ('<OBJECT ID=player1 ');
			 document.write ('CLASSID=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 ');
			 document.write ('CODEBASE=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715 ');
			 document.write ('standby="Loading Microsoft Windows Media Player components..." ');
			 document.write ('TYPE="application/x-oleobject" width="' + width + '" height="' + height + '">');
			 document.write ('<PARAM NAME="FileName" VALUE="' + url + '">');
			 document.write ('<PARAM NAME="AutoStart" VALUE="true">');
			 document.write ('<PARAM NAME="ShowControls" VALUE="false">');



			 //Netscape code
			 document.write ('    <Embed type="application/x-mplayer2"');
			 document.write ('        pluginspage="http://www.microsoft.com/windows/windowsmedia/"');
			 document.write ('        filename="' + url + '"');
			 document.write ('        src="' + url + '"');
			 document.write ('        Name=player1');
			 document.write ('        AutoStart=1');
			 document.write ('        ShowControls=0');
			 document.write ('        ShowDisplay=1');
			 document.write ('        ShowStatusBar=0');
			 document.write ('        width=' + width + '');
			 document.write ('        height=' + height + '>');
			 document.write ('    </embed>');
			 document.write ('</OBJECT>');
		}
	}
*/


	function writePlayer(url, width, height){


		<!-- Check Media Player Version -->

		// Windows Media Player 7 Code
		if ( version == 7 )
		{
			 document.write ('<OBJECT ID=player1 ');
			 document.write (' CLASSID=CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6');
			 document.write (' standby="Loading Microsoft Windows Media Player components..."');
			 document.write (' TYPE="application/x-oleobject" width="' + width + '" height="' + height + '">');
			 document.write ('<PARAM NAME="url" VALUE="' + url + '">');
			 document.write ('<PARAM NAME="AutoStart" VALUE="true">');
			 document.write ('<PARAM NAME="ShowControls" VALUE="false">');
			 document.write ('<PARAM NAME="uiMode" VALUE="none">');
			 document.write ('<PARAM NAME="stretchToFit" VALUE="true">');
			 document.write ('</OBJECT>');


		}

		// use plugin
		else
		{
     		document.write ('<object id ="player1" data="'+ url +'" type="video/x-ms-wmv" ');
       		document.write ('width="' + width + '" height="' + (height+24) + '">');
       		document.write ('<param name="ShowStatusBar" value="0">');
       		document.write ('<param name="ShowTracker" value="0">');
       		document.write ('<param name="autostart" value="1">');
       		document.write ('<param name="volume" value="100">');
       		document.write ('<param name="uimode" value="none">');
       		document.write ('<param name="file" value="' + url + '">');
      		document.write ('</object>');
		}
	}





	function setClipPosition(pos){
		if (version == 6.4) playerObject.CurrentPosition = pos;
		if (version == 7) playerObject.Controls.CurrentPosition = pos;
		play();
	}


	function getClipPosition(){
		try{
			if (version == 6.4) return playerObject.CurrentPosition;
			if (version == 7) return playerObject.Controls.CurrentPosition;
	
		}
		catch(e){
		return 0;
		}
	
	}


	function getClipPositionString(){
		if (version == 6.4) return playerObject.CurrentPosition;
		if (version == 7) return playerObject.Controls.currentPositionString;
	}


	function getClipDuration(){
		if (version == 6.4) return playerObject.duration;
		if (version == 7) return playerObject.currentMedia.duration;
	}
	

	function getClipDurationString(){
		if (version == 6.4) return playerObject.Duration;
		if (version == 7) return playerObject.currentMedia.durationString;
	}


	function isRunning(){
		if (version == 6.4) return (	playerObject.playState == 1
					     || playerObject.playState == 2	
					     || playerObject.playState == 4	
					     || playerObject.playState == 5);
					     
		if (version == 7) return (	playerObject.playState == 2
					     || playerObject.playState == 3	
					     || playerObject.playState == 4	
					     || playerObject.playState == 5);
	}


	function isConnecting(){
		if (version == 6.4) return (	playerObject.openState == 1
					     || playerObject.openState == 2			
					     || playerObject.openState == 3			
					     || playerObject.openState == 4			
					     || playerObject.openState == 5			

					     || playerObject.playState == 6	
					     || playerObject.playState == 3);
					     
		if (version == 7) return (	playerObject.playState == 6
					     || playerObject.playState == 7	
					     || playerObject.playState == 9	
					     || playerObject.playState == 11);
	}



	function isPlaying(){
		if (version == 6.4) return (playerObject.playState == 2);
		if (version == 7)   return (playerObject.playState == 3);
	}

	function isFinished(){
		if (timeLeft < 0.5) return true;
		if (version == 6.4) return (playerObject.playState == 8);
		if (version == 7)   return (playerObject.playState == 8);
	}



	function isMedia(){
		if (version == 6.4) return (playerObject.openState != 0);
		if (version == 7) return (playerObject.playstate != 0);
	}


	function isMediaReady(){
		if (version == 6.4) return (playerObject.openState == 6);
		if (version == 7)  return  (	playerObject.playState != 0 &&
						playerObject.playState != 7 &&
						playerObject.playState != 9 &&
						playerObject.playState != 11);
	}
	
	function getFramerate(){
		if (version == 6.4) return 1;	
		if (version == 7)   return playerObject.network.frameRate;
	}
	
	
	
	function formatTime(seconds) {
		var minutes = Math.floor(seconds/60);
		var seconds = Math.round(seconds-minutes*60);
		if (minutes < 10) minutes = "0" + minutes;
		if (seconds < 10) seconds = "0" + seconds;
		return minutes + ":" + seconds;
	}
	

	function play(){
		if (version == 6.4) playerObject.Controls.Play();
		if (version == 7) playerObject.Controls.Play();
	}

	function pause(){
		if (version == 6.4) playerObject.Pause();
		if (version == 7) playerObject.Controls.Pause();
	}

	function stop(){
		if (version == 6.4) playerObject.Stop();
		if (version == 7) playerObject.Controls.Stop();
	}

	function rewind(){
		if (version == 6.4) alert("Spolefunktionen er ikke understøttet i mediaplayer 6.4");
		if (version == 7) playerObject.Controls.fastReverse();
	}

	function fforward(){
		if (version == 6.4) alert("Spolefunktionen er ikke understøttet i mediaplayer 6.4");
		if (version == 7) playerObject.Controls.fastForward();;
	}



			
	function updatePlayer() {
		//insert bufferpicture
		if (isConnecting()){
			if (document.getElementById('playerPicture').style.display != "inline")
				document.getElementById('playerPicture').style.display = "inline";
			if (document.getElementById('playerPicture').src != bufferPicture.src)
				document.getElementById('playerPicture').src = bufferPicture.src;
			if (playerObject.style.width != 0)
				playerObject.style.width = 0;
			if (playerObject.style.height != 0)
				playerObject.style.height = 0;
			
		}
		else if (isRunning() && getFramerate() == 0){
			//document.getElementById("menu").innerHTML = playerObject.playState;
			if (document.getElementById('playerPicture').style.display != "inline")
				document.getElementById('playerPicture').style.display = "inline";
			if (document.getElementById('playerPicture').src != lowfpsPicture.src)
				document.getElementById('playerPicture').src = lowfpsPicture.src;
			if (playerObject.style.width != 0)
				playerObject.style.width = 0;	
			if (playerObject.style.height != 0)
				playerObject.style.height = 0;
		}
		else if (isFinished()){
			//document.getElementById("menu").innerHTML = playerObject.playState;
			if (document.getElementById('playerPicture').style.display != "inline")
				document.getElementById('playerPicture').style.display = "inline";
			if (document.getElementById('playerPicture').src != finishedPicture.src)
				document.getElementById('playerPicture').src = finishedPicture.src;
			if (playerObject.style.width != 0)
				playerObject.style.width = 0;
			if (playerObject.style.height != 0)
				playerObject.style.height = 0;
			
		}
		else if (isRunning()){
			//document.getElementById("menu").innerHTML = playerObject.playState;
			if (document.getElementById('playerPicture').style.display != "none")
				document.getElementById('playerPicture').style.display = "none";
			if (playerObject.style.width != videoWidth) 
				playerObject.style.width = videoWidth;
			if (playerObject.style.height != videoHeight) 
				playerObject.style.height = videoHeight;

		}
	}




	function translatePlayerText(text){
		for (i = 0; i < translationTable.length; i++) {
			if (translationTable[i][0] == language && 
			    translationTable[i][1] == text)
			    	return translationTable[i][2];
		}
		
		return "??" + text;
	}



	function playerText() {
		if (version==6.4){
			switch (playerObject.openState) {
				case 0:	{ return translatePlayerText("CLOSED"); break; }
				case 1:	{ return translatePlayerText("BUFFERING") ; 	break; }
				case 2:	{ return translatePlayerText("BUFFERING") ; break; }
				case 3:	{ return translatePlayerText("CONNECTING"); break;}
				case 4:	{ return translatePlayerText("CONNECTING"); break;}
				case 5:	{ return translatePlayerText("CONNECTING"); break;}
				case 6:	{

					switch (playerObject.playState) {
						case 0:	{ return translatePlayerText("STOPPED"); break; }
						case 1:	{ return translatePlayerText("PAUSED");  break; }
						case 2:	{ return translatePlayerText("PLAYING"); break;	}
						case 4:	{ return translatePlayerText("FFORWARD"); break;}
						case 5:	{ return translatePlayerText("REWIND");	break;}
						case 6:	{
							return translatePlayerText("BUFFERING")+ " " + playerObject.BufferingProgress + "%";
							break;
								}
						case 3:	{ return translatePlayerText("CONNECTING");	break; }
						case 8:	{ return translatePlayerText("FINISHED"); break; }
					}
				}
			}
		}

	
		if (version==7){
			switch (playerObject.playState) {
				case 0: { return translatePlayerText("ERROR"); break;}
				case 1:	{ return translatePlayerText("STOPPED"); break; }
				case 2:	{ return translatePlayerText("PAUSED");  break; }
				case 3:	{ return translatePlayerText("PLAYING"); break;	}
				case 4:	{ return translatePlayerText("FFORWARD"); break;}
				case 5:	{ return translatePlayerText("REWIND");	break;}
				case 6:	{
					return translatePlayerText("BUFFERING") + " " + playerObject.Network.BufferingProgress + "%";
					break;
						}
				case 7:	{ return translatePlayerText("CONNECTING"); break; }
				case 8:	{ return translatePlayerText("FINISHED"); break; }
				case 9:	{ return translatePlayerText("CONNECTING"); break; }
				case 10:{ return translatePlayerText("READY"); break; }
				case 11:{ return translatePlayerText("CONNECTING"); break; }
			}
		}
		return translatePlayerText("ERROR");
	}


	function playStateChanged(e){
	
	/*
	
		if (e == 8) setTimeout("startNextPresentation()", 500);
	
	*/
		/*if (e == 10) {
			alert (playerObject.openState + " " + playerObject.url);
			
			try {	
				Play(); 
			}
			catch (p) {
				return "";
			}
		}*/
	}





	function playerTime() {

		if (version==6.4){
			switch (playerObject.openState) {
				case 6:	{
					switch (playerObject.playState) {
						case 1:	{ 
							return formatTime(getClipPositionString())+" - "+ formatTime(getClipDurationString());
							break; 
							}
						case 2:	{
							return formatTime(getClipPositionString())+" - "+ formatTime(getClipDurationString());
							break;
							}
						case 4:	{ 
							return formatTime(getClipPositionString())+" - "+ formatTime(getClipDurationString());
							break;
							}
						case 5:	{
							return formatTime(getClipPositionString())+" - "+ formatTime(getClipDurationString());
							break;
							}
					}
				}
			}
		}	

	
		if (version==7){
			switch (playerObject.playState) {
				case 2:	{ 
					return playerObject.Controls.currentPositionString +" - "+ playerObject.currentMedia.durationString;
					break;
					}
				case 3:	{
					return playerObject.Controls.currentPositionString +" - "+ playerObject.currentMedia.durationString;
					break;
					}
				case 4:	{
					return playerObject.Controls.currentPositionString +" - "+ playerObject.currentMedia.durationString;
					break;
					}
				case 5:	{
					return playerObject.Controls.currentPositionString +" - "+ playerObject.currentMedia.durationString;
					break;
					}
			}
		}
		return "00:00 / 00:00";
	}



/*
	Updates the progress meters / status boxes
*/

	function updatePB(){
	
		if (!down){
		
			if (document.getElementById('textbar').innerHTML != playerText()) {
				document.getElementById('textbar').innerHTML = playerText()
			}

			if (document.getElementById('timebar').innerHTML != playerTime()) {
				document.getElementById('timebar').innerHTML = playerTime()
			}		
		

			try{
				if ( isMedia()  && isMediaReady() && getClipPosition() != null && getClipDuration() != 0) {

					newWidth = Math.round(getClipPosition() / getClipDuration() * barLength);
					document.getElementById('playerKnob').style.left = newWidth;
				}
			}
			catch(e){
				alert("here " + newWidth + "  " + getClipPosition() + " " + getClipDuration()  );			
			}


		}

	}









	
var x;
var y;
var x2;
var y2;
var obj;
var down    = false;


document.onmouseup	= mouseUp;
document.onmousemove	= mouseMove;



function mouseMove(){
	if(down){

		if (obj.id == "playerKnob") {
			var newPos = x + event.clientX - x2;
			if (newPos < 0) newPos = 0;
			if (newPos > barLength-1) newPos = barLength-1;
			
			obj.style.pixelLeft = newPos;
			
			document.getElementById("timeBar").innerHTML = 
				formatTime((obj.style.pixelLeft / barLength) * getClipDuration() )+" - "+ formatTime(getClipDuration());  
			
		}

		if (obj.id == "volumeKnob") {
			var newPos = x + event.clientX - x2;
			if (newPos < 0) newPos = 0;
			if (newPos > volLength) newPos = volLength;
			
			obj.style.pixelLeft = newPos;
			
			var newVolume = Math.round(newPos * (100/volLength));
			playerObject.settings.volume = newVolume;
			
			document.getElementById("timeBar").innerHTML = 
				"Volume: " + newVolume + "%";
		}




	}
	return false;
}


function mouseDown(e){
	//alert (this.id);
	down             = true;
	obj              = this;
	x                = this.style.pixelLeft;
	y                = this.style.pixelTop;
	x2               = event.clientX
	y2               = event.clientY

}


function mouseUp(){
	try{
		if (obj.id != null){
			if (obj.id == "playerKnob") {
				setClipPosition((obj.style.pixelLeft / barLength) * getClipDuration() );
				obj.src="graphics/knob3.gif";
			}
		}


		obj.src="graphics/knob3.gif";

	}
	catch(e){
		
	}
	down = false;
}














function queryString(key)
{
	var keys = new Array();
	var values = new Array();

	var value = null;

	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	
	for (var i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			keys[keys.length] = argname;
			values[values.length] = value;		
		}
	}

	for (var i=0;i<keys.length;i++)
	{
		if (keys[i]==key)
		{
			value = values[i];
			break;
		}
	}
	return value;
}



function delay(Amount)
{
d = new Date() //today's date
while (1)
{
mill=new Date() // Date Now
diff = mill-d //difference in milliseconds
if( diff > Amount ) {break;}
}
}




/*****
Following functions are nicked from John Resig
http://ejohn.org/projects/flexible-javascript-events/

*****/
function addOnEvent( obj, type, fn ) { 
  if ( obj.attachEvent ) { 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent('on' + type, obj[type+fn] ); 
  } else 
    obj.addEventListener( type, fn, false ); 
} 
function removeOnEvent( obj, type, fn ) { 
  if ( obj.detachEvent ) { 
    obj.detachEvent('on' + type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else 
    obj.removeEventListener( type, fn, false ); 
} 


function addEvent( obj, type, fn ) { 
  if ( obj.attachEvent ) { 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent(type, obj[type+fn] ); 
  } else 
    obj.addEventListener( type, fn, false ); 
} 
function removeEvent( obj, type, fn ) { 
  if ( obj.detachEvent ) { 
    obj.detachEvent(type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else 
    obj.removeEventListener( type, fn, false ); 
} 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
