//<![CDATA[
    
	var currentPosition;
	var currentVolume;
	var currentItem;
   	
	function ntos(n){
        n=n.toString(16);
        if (n.length == 1) n="0"+n;
        n="%"+n;
        return unescape(n);
    }
    
    var END_OF_INPUT = -1;
    
    var keyStr = "ABCDEFGHIJKLMNOP" +
            "QRSTUVWXYZabcdef" +
            "ghijklmnopqrstuv" +
            "wxyz0123456789+/" +
            "=";

   function encode64(input) {
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      do {
         chr1 = input.charCodeAt(i++);
         chr2 = input.charCodeAt(i++);
         chr3 = input.charCodeAt(i++);

         enc1 = chr1 >> 2;
         enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
         enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
         enc4 = chr3 & 63;

         if (isNaN(chr2)) {
            enc3 = enc4 = 64;
         } else if (isNaN(chr3)) {
            enc4 = 64;
         }

         output = output + 
            keyStr.charAt(enc1) + 
            keyStr.charAt(enc2) + 
            keyStr.charAt(enc3) + 
            keyStr.charAt(enc4);
         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";
      } while (i < input.length);

      return output;
   }
   
    var base64Chars = new Array(
        'A','B','C','D','E','F','G','H',
        'I','J','K','L','M','N','O','P',
        'Q','R','S','T','U','V','W','X',
        'Y','Z','a','b','c','d','e','f',
        'g','h','i','j','k','l','m','n',
        'o','p','q','r','s','t','u','v',
        'w','x','y','z','0','1','2','3',
        '4','5','6','7','8','9','+','/'
    );
    
    var reverseBase64Chars = new Array();
    for (var i=0; i < base64Chars.length; i++){
        reverseBase64Chars[base64Chars[i]] = i;
    }
    
    var base64Str;
    var base64Count;
    function setBase64Str(str)
    {
        base64Str = str;
        base64Count = 0;
    }
    function readReverseBase64(){   
        if (!base64Str) return END_OF_INPUT;
        while (true){      
            if (base64Count >= base64Str.length) return END_OF_INPUT;
            var nextCharacter = base64Str.charAt(base64Count);
            base64Count++;
            if (reverseBase64Chars[nextCharacter]){
                return reverseBase64Chars[nextCharacter];
            }
            if (nextCharacter == 'A') return 0;
        }
        return END_OF_INPUT;
    }
    
    function decodeBase64(str){
        setBase64Str(str);
        var result = "";
        var inBuffer = new Array(4);
        var done = false;
        while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
            && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
            inBuffer[2] = readReverseBase64();
            inBuffer[3] = readReverseBase64();
            result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
            if (inBuffer[2] != END_OF_INPUT){
                result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
                if (inBuffer[3] != END_OF_INPUT){
                    result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
                } else {
                    done = true;
                }
            } else {
                done = true;
            }
        }
        return result;
    }
    
	// these functions are caught by the JavascriptView object of the player.
	function sendEvent(typ,prm)
	{ 
	    thisMovie("mpl").sendEvent(typ,prm); 
	};
	
	function getUpdate(typ,pr1,pr2,pid)
	{
		if(typ == "time")
		{
		    currentPosition = pr1;
		}
		else if(typ == "volume")
		{
		    currentVolume = pr1;
		}
		else if(typ == "item")
		{
		    currentItem = pr1; 
		    setTimeout("getItemData(currentItem)",100);
		}
		
		var id = document.getElementById(typ);
		
		id.innerHTML = typ+ ": "+Math.round(pr1);
		
		pr2 == undefined ? null: id.innerHTML += ", "+Math.round(pr2);
		
		if(pid != "null")
		{
			document.getElementById("pid").innerHTML = "(received from the player with id <i>"+pid+"</i>)";
		}
	};

	// These functions are caught by the feeder object of the player. 
	
	function loadweerFile(file)
	{
	    sendEvent('LOAD',decodeBase64(file));   
	    return true;
	}
	
	function loadFile(obj)
	{
	    thisMovie("mpl").loadFile(obj);
	};
	
	function addItem(obj,idx)
	{
	    thisMovie("mpl").addItem(obj,idx);
	}
	
	function removeItem(idx)
	{
	    thisMovie("mpl").removeItem(idx);
	}
	
	function getItemData(idx)
	{
		var obj = thisMovie("mpl").itemData(idx);
		
		
		if (obj['category'] != 'preroll' && obj['type']=='flv')
		{
            document.getElementById("perma").innerHTML = 'http://www.weeronline.tv/index.php?play='+encode64(obj['file']);
            document.getElementById("reactieregel").className = 'show';
		}
		else
		{
    	   document.getElementById("reactieregel").className = 'hide';
		}
	
		var nodes = "<ul>";
		
		for(var i in obj)
		{ 
			nodes += "<li>"+i+": "+obj[i]+"</li>"; 
		}
		
		nodes += "</ul>";
		//document.getElementById("show_data").innerHTML = nodes;
				
	};

	// This is a javascript handler for the player and is always needed.
	function thisMovie(movieName)
	{
	    if(navigator.appName.indexOf("Microsoft") != -1)
	    {
			return window[movieName];
		}
		else
		{
			return document[movieName];
		}
	}
    
    
	//]]>
