function MediaPlayer(){}
MediaPlayer.prototype =
{
  setup : function()
  {  
    if (mediaPlayer.detectActiveXPlayerObject())
    {    
      mediaPlayer.player            = document.getElementById("videoplayer");
      mediaPlayer.titel             = document.getElementById("videoplayer-titel");
      mediaPlayer.counter           = document.getElementById("counter");
      mediaPlayer.dot               = document.getElementById("dot");
      mediaPlayer.tijdbalk          = document.getElementById("tijdbalk");
      mediaPlayer.percentage        = 0;
      mediaPlayer.duration;
      mediaPlayer.percentageStep;
      mediaPlayer.timer;
      
      mediaPlayer.createCustomToolbar();
    }
  },
  detectActiveXPlayerObject : function()
  {
    var playerObject;
    try
    {
      if (window.ActiveXObject)
        playerObject = new ActiveXObject("WMPlayer.OCX.7");
      else if (window.GeckoActiveXObject)
        playerObject = new GeckoActiveXObject("WMPlayer.OCX.7");
    }
    catch (oError) {}    
    return (playerObject ? true : false);
  },
  createCustomToolbar : function()
  {
		document.getElementById("custom-toolbar").style.display = "block";
		mediaPlayer.player.uiMode = "none";
		mediaPlayer.player.height = "240";		
    attachEventHandler(document.getElementById("play-button"),  "onclick", mediaPlayer.play);
    attachEventHandler(document.getElementById("pause-button"), "onclick", mediaPlayer.pause);
    attachEventHandler(document.getElementById("stop-button"),  "onclick", mediaPlayer.stop);
    attachEventHandler(mediaPlayer.tijdbalk,                    "onclick", mediaPlayer.goToPosition);
  },
  open : function(titel, url)
  {
    mediaPlayer.player.controls.stop();
    mediaPlayer.titel.innerHTML = titel;
    mediaPlayer.titel.style.display = "block";
    if (url.indexOf("http://") == -1) url = "/data/video" + url;
    mediaPlayer.player.URL = url;
    mediaPlayer.play();
  },
  play : function()
  {
    mediaPlayer.player.controls.play();
    return false;
  },
  pause : function()
  {
    mediaPlayer.player.controls.pause();    
    return false;
  },
  stop : function()
  {
    mediaPlayer.player.controls.stop();
    return false;
  },
  countdown : function()
  {
    if (mediaPlayer.player.playState == 3)
    {
      // Initialize countdown.
      if (mediaPlayer.counter.value == "")
      {
        mediaPlayer.duration = mediaPlayer.player.currentMedia.duration;
        mediaPlayer.counter.value = mediaPlayer.duration;
        mediaPlayer.percentageStep = 100 / mediaPlayer.duration;
        mediaPlayer.timer = window.setTimeout("mediaPlayer.countdown();", 1000);
      }
      // Countdown.
      else if (mediaPlayer.counter.value > 1)
      {
        mediaPlayer.counter.value = mediaPlayer.counter.value - 1;
        mediaPlayer.percentage += mediaPlayer.percentageStep;
        mediaPlayer.timer = window.setTimeout("mediaPlayer.countdown();", 1000);
      }
      // End countdown.
      else
      {
        mediaPlayer.counter.value = 0;
        mediaPlayer.dotLeft = 100;
      }
      mediaPlayer.dot.style.left = mediaPlayer.percentage + "%";
    }
  },
  goToPosition : function()
  {
    clearTimeout(mediaPlayer.timer);
  
    // Calculate new position in percentage.
    var offsetleft = 0;         
    var obj = mediaPlayer.tijdbalk;
    if (obj.offsetParent)
    {
      while (obj.offsetParent)
      {
        offsetleft += obj.offsetLeft;
        obj = obj.offsetParent;
      }
      offsetleft += obj.offsetLeft;
    }
    var divider = (mediaPlayer.tijdbalk.offsetWidth) / 100;
    mediaPlayer.percentage = (event.clientX - offsetleft) / divider;
    
    mediaPlayer.dot.style.left = mediaPlayer.percentage + "%";
    mediaPlayer.counter.value = mediaPlayer.duration - ((mediaPlayer.duration / 100) * mediaPlayer.percentage);
    mediaPlayer.player.controls.currentPosition = (mediaPlayer.duration / 100) * mediaPlayer.percentage;
    
    mediaPlayer.countdown();
  },
  handlePlayStateChange : function(newState)
  {
		if (mediaPlayer.detectActiveXPlayerObject())
		{
			clearTimeout(mediaPlayer.timer);
	  
			switch (newState)
			{
				case 1:
					mediaPlayer.counter.value = "";
					mediaPlayer.percentage = 0;
					mediaPlayer.dot.style.left = mediaPlayer.percentage + "%";
					break;
				case 3:
					mediaPlayer.countdown();
					break;
			}
    }
  }
};
var mediaPlayer = new MediaPlayer();