<!--
// Fullscreen or not?
var bFullscreen = '1' == '0' ? false : true ;

var silentMode = 0;		// = 1 if silentMode (Don't show details)
var detailMode = 0;		// Set to 1 when details is displayed

var pcInfo =		'Om films te kunnen bekijken is een PC met Windows nodig.';
var cookieInfo =	'Om gebruik te kunnen maken van de filmdienst, is het noodzakelijk dat de PC cookies in Internet Explorer accepteert. Deze functie staat standaard aan. Mocht deze niet meer aan staan, doe dan het volgende: Klik op Internet-opties in het menu Extra in Internet Explorer. Verander de schuifregelaar op het tabblad Privacy van hoog naar normaal.';
var NetInfo =		'Om films te kunnen bekijken is een breedband internet verbinding nodig van tenminste 450 Kbps. Mocht de test aangeven dat de verbinding niet snel genoeg is terwijl hij dat wel zou moeten zijn, test dan nog een keer. Het kan gebeuren dat de verbinding net even niet goed was of dat er een ander programma gebruik maakte van de verbinding.';
var WMPindInfo =	'Om films te kijken op deze website heb je een geindividualiseerde Media Player nodig. Deze beveiligingsupgrade van Microsoft vindt eenmalig automatisch plaats wanneer er een film is besteld en wordt gestart. Je hoeft hiervoor dus niets te doen. Wil je deze upgrade toch alvast doen, klik dan op de link onder deze test en klik op OK/Yes om de upgrade uit te voeren. Let op: Gebruikers van Windows XP Media Center raden wij aan deze upgrade wel eerst te doen';
var WMPindInfo2 =	'Individualiseer je Media Player: Klik <a href="http://www.maxx-xs.nl/elements/drm/drmmaxx/mplayerdrmindv.wmv">hier</a> om de upgrade uit te voeren. Klik OK/Yes in het window dat verschijnt. Zodra de upgrade is uitgevoerd kan de Media Player worden gesloten.<br><BR><img src="/images/speedtest/gfx_check_error2.gif">De huidige instellingen van de PC komen niet overeen met de aanbevolen configuratie.<BR><BR> Voer eventueel de toegelichte acties uit en doe de test opnieuw.';
var ResolutionInfo ='De resolutie van de monitor dient minimaal 1024 x 768 zijn om de website goed te kunnen gebruiken. Pas dit aan in het configuratiescherm -> beeldscherm -> instellingen';
var testPlayInfo =	'De internetverbinding is niet snel genoeg. Om films te kunnen bekijken is een breedband internetverbinding van tenminste 450 kbit/s nodig. Mocht de test aangeven dat de verbinding niet snel genoeg is terwijl hij dat wel zou moeten zijn, test dan nog een keer. Het kan gebeuren dat de verbinding net even niet goed was of dat er een ander programma gebruik maakte van de verbinding.';

var testPlayUrl =	'rtspt://62.204.69.107/Storage3/speedtest450kbps.wmv?WMCache=0';

var urlPC = '<a href="javascript:alert(pcInfo);" class="copywhitebold">Info</a>';
var urlIE = '<a href="http://www.microsoft.com/windows/ie/downloads/critical/ie6sp1/default.mspx" target="_blank" class="copywhitebold">Download »</a>';
var urlCookie = '<a href="javascript:alert(cookieInfo);" class="copywhitebold">Info »</a>';
var urlWMP9 = '<a href="http://www.microsoft.com/windows/windowsmedia/download/default.asp" target="_blank" class="copywhitebold">Download »</a>';
var urlWMPind = '<a href="javascript:showInfo(WMPindInfo2);alert(WMPindInfo);" class="copywhitebold">Info »</a>';
var urlReso = '<a href="javascript:alert(ResolutionInfo);" class="copywhitebold">Info »</a>';
var urlTestPlay = '<a href="javascript:alert(testPlayInfo);" class="copywhitebold">Info »</a>';

var errorCount = 0;
var disableSite = false;		// Set to true if site is not to be opened

var txtError =	'<img src="/images/speedtest/gfx_check_error2.gif" align="absmiddle">De huidige instellingen van de PC komen niet overeen met de aanbevolen configuratie.<BR><BR> Voer eventueel de toegelichte acties uit en doe de test opnieuw.';
var openAnyway = '';

var butError =	'<BR><BR><a href="javascript:window.location.reload();" class="copygreenbold">Test opnieuw</a><BR><BR>';

var txtOk =		'<img src="/images/speedtest/gfx_check_ok2.gif" align="absmiddle">De test is klaar. De PC voldoet aan alle voorwaarden om gebruik te kunnen maken van deze filmdienst.';

var butOk =		'<BR><BR>';

var byebyePage ="Controleer met deze check de aanbevolen PC-configuratie om gebruik te kunnen maken van onze filmdienst.";
var sThankYou = "Bedankt voor je bezoek";

//var haveProblems = 'Heb je problemen met het starten van Maxx-XS? Klik dan <a href="http://www.maxx-xs.nl/index.php?page=service">hier</a> om naar de veelgestelde vragen te gaan.'; 
var haveProblems = ''; 
var helpFileUrl = 'http://www.maxx-xs.nl/nl/klantenservice/faq/34/thuisbios.html';

// Globals. Browser detection
var opera = navigator.userAgent.indexOf('Opera')!=-1 ;
var ie = navigator.appName.indexOf('Microsoft')!=-1 && !opera;
var ns = navigator.appName.indexOf('Netscape')!=-1 && !ie && !opera;

if (!ie) silentMode = 0;

// Detect Windows XP Sp2
var xpsp2 = (window.navigator.userAgent.indexOf('SV1') != -1);

// Flag set to true when playing media. We get events from WMP7 before testing playing media
var testPlayActive = false;

function setStOK(st,lnk, lbl) {
	window.onerror = showError;
	var oLbl;
	var oSt = document.getElementById(st);
	var oLnk = document.getElementById(lnk);
	
	if (lbl!= '') oLbl = document.getElementById(lbl);

	oSt.innerHTML = '<img src="/images/speedtest/gfx_check_ok.gif">';
  	oLnk.innerHTML = '<span class="copygreenbold">OK!</span>';
  	document.getElementById('silentTestInfo').innerHTML = document.getElementById('silentTestInfo').innerHTML ;

	if (lbl != '') {
		if (oLbl != 'undefined') oLbl.className='copywhitebold';
	}
}

// Trap error generated when trying to read window properties
function showError(msg, url, line) {
	alert("Error " + msg + " at line " + line);
}
  	
function setStErr(st,lnk,url, lbl) {
	if (silentMode == 1 && detailMode == 0) {
		showDetails();
	} 

	var oSt = document.getElementById(st);
	var oLnk = document.getElementById(lnk);
	var oLbl = document.getElementById(lbl);
	
	oSt.innerHTML  = '<img border="0" src="/images/speedtest/gfx_check_error.gif" width="37" height="26">';
	if (url != ''){
  		oLnk.innerHTML = url;
  		}
  	errorCount++;
  	if (errorCount == 1) {
  			document.getElementById('spResultTxt2').innerHTML = txtError;
  	        document.getElementById('spResultButton').innerHTML = butError;
  		}
	
	if (lbl != '') {
		if (oLbl != 'undefined') oLbl.className='copywhitebold';
	}
}

function showInfo(strInfo) {
	// Tell WMP timer not to update infotext
	statusStop = true;
	
	// Are we currently playing?
	if(statusPlay || statusBuffering) {
		WMP7.controls.stop()
	}
	
	spResultTxt2.innerHTML = strInfo;
}


function nextTest(test, lbl) {	
	var oLbl = document.getElementById(lbl);

	if (lbl != '') {
		if (oLbl != 'undefined') oLbl.className='copygreenbold';
	}

	window.setTimeout(test,60);
}

// Changes display to show test details	
function showDetails() {
	document.getElementById('tblTestShort').style.display = 'none';
	document.getElementById('tblTestInfo').style.display = 'inline';
	detailMode = 1;
}

// Changes display to hide test details	
function hideDetails() {
	document.getElementById('tblTestShort').style.display = 'inline';
	document.getElementById('tblTestInfo').style.display = 'none';
	detailMode = 0;
}

function startTesting() {
	if (ie){
	document.getElementById('spResultTxt3').innerHTML = "<span class=copygreenbold>Een moment geduld aub. De test is nog niet afgelopen.</span>";
	showDetails();
	nextTest('testOS()', 'lblPC');
	}
	else {
	alert ("Helaas is deze test alleen uit te voeren op een PC met Microsoft Internet Explorer.");
	disableSite = true;
	}
}
	
function testOS() { //v1.0
  var hasWindows = navigator.platform.indexOf('Win')!=-1;

  if (hasWindows) {
	document.getElementById('spResultButton').innerHTML = "";
  	setStOK('stPC','lnkPC','lblPC');
	nextTest('testBrowser()', 'lblIE');
  }else{
	hideStartLayer();
	disableSite = true;
  	document.getElementById('stPC').background = 'images/ruta_nej.gif';
	document.getElementById('lnkPC').background= 'images/hamta.gif';
  	document.getElementById('spResultTxt2').innerHTML = PcInfo;
  	document.getElementById('spResultButton').innerHTML = "De test is afgelopen";
  }
}

// Kontroll av browser
function testBrowser() {
// testmeddelande.innerHTML = "Kontrollerar browser";
  if (ie) {
	nextTest('testBrowserversion()','lblIE');
  } 
else{
  	setStErr('stIE','lnkIE',urlIE,'lblIE');
	disableSite = true;
	nextTest('testCookie()','lblCookie');
	}
}

// Kontroll av browserversion
function testBrowserversion(){
	//testmeddelande.innerHTML = "Kontrollerar browserversion";
				
	var version = navigator.appVersion;
	var msPos = version.indexOf('MSIE ');
	var versNr = parseInt(version.substring(msPos+5));
	var hasIE6 = (versNr >= 6.0);

	// Och här hårdkodar jag in att hasIE5 = true.
	//hasIE5 = true;
	
  if (hasIE6) {
	// maybe opera...
	if(navigator.mimeTypes.length > 0){
		disableSite = true;
		setStErr('stIE','lnkIE',urlIE,'lblIE');
	} else {
		setStOK('stIE','lnkIE','lblIE');
	}
  } else {
	disableSite = true;
	setStErr('stIE','lnkIE',urlIE,'lblIE');
}

  	nextTest('testCookie()','lblCookie');
}


// kontroll av Cookie
function testCookie(){
	// Trap error generated when trying to read cookie
	window.onerror = testCookie_err;

	WriteCookie('test','test');
	if (ReadCookie('test') == null) {
		setStErr('stCookie','lnkCookie',urlCookie,'lblCookie');
		disableSite = true;
	} else {
		setStOK('stCookie','lnkCookie','lblCookie');
	}

	nextTest('checkResolution()','lblReso');
}

function ReadCookie(name) {
	var start = document.cookie.indexOf(name + "=");

	if(start == -1) return null;
	 
	start = document.cookie.indexOf("=",start) + 1;
	var end = document.cookie.indexOf(";",start);

	if( end == -1 )	end = document.cookie.length;
	 
	var value = unescape(document.cookie.substring(start,end));

	return value;
}

function WriteCookie(name, value) {
	document.cookie = name + "=" + value;
}

// Trap error generated when trying to read / write cookie
function testCookie_err(msg, url, line) {
	disableSite = true;
	setStErr('stCookie','lnkCookie',urlCookie,'lblCookie');
	nextTest('checkResolution()','lblClock');
}

function checkResolution(){
	if ((screen.width>=1024) && (screen.height>=720))
	{
	setStOK('stReso','lnkReso','lblReso');
	nextTest('testMediaplayer()','lblWMP');
	}
	else
	{
	disableSite = true;
  	setStErr('stReso','lnkReso',urlReso,'lblReso');
	nextTest('testMediaplayer()','lblWMP');
	}
	
}

// kontroll av mediaspelare
function testMediaplayer(){
if (ie){
	// Trap error generated when checking wmp
	window.onerror = testMediaplayer_err;

	var fHasWMP7  = (WMP7.URL = "x");
  	if (fHasWMP7) {

  		if (parseInt(WMP7.versionInfo) >= 9) {
  			setStOK('stWMP','lnkWMP', 'lblWMP');
  		} else {
			disableSite = true;
  			setStErr('stWMP','lnkWMP',urlWMP9,'lblWMP');
  		}
	}else{
		disableSite = true;
  		setStErr('stWMP','lnkWMP',urlWMP9,'lblWMP');
	 }
	 
		nextTest('checkWmpIndivid()','lblWMPind');
		
}

}

// Trap error generated when trying to read / write cookie
function testMediaplayer_err(msg, url, line) {
	disableSite = true;
  	setStErr('stWMP','lnkWMP',urlWMP9,'lblWMP');
	nextTest('checkWmpIndivid()','lblWMPind');
}

// kontroll av mediaspelare
function checkWmpIndivid(){
	// Trap errors if impossible to create netobj
	window.onerror = checkWmpIndivid_err;

	var drmVersion = '';
	//testmeddelande.innerHTML = 'Kollar DRM version.';
	
	var WMPindivid = false;

	if (netobj == 'undefined') {
// Force failure.
		drmVersion = '';
	} else {
		drmVersion = netobj.GetDRMSecurityVersion();
	}
	
	// alert('Drm ' + drmVersion);
		if (drmVersion != ''){
		var arDrmVersion1 = drmVersion.split('.', 2);
		var arDrmVersion2 = drmVersion.split('.', 4);
		
		var sDrmVersion =  arDrmVersion1.join('.');
		var drmMajorVersion = parseFloat(sDrmVersion);


		// Major version has to be greater than 2.2
		if (drmMajorVersion >= 2.2) {
			// Fourth version digit is set to 1 if individualized
			if (arDrmVersion2[3] == 1) WMPindivid = true;
		}
	} else {
		WMPindivid = false;
	}
	
  	if (WMPindivid) {
		setStOK('stWMPind','lnkWMPind','lblWMPind');
	} else {
		disableSite = true;
		setStErr('stWMPind','lnkWMPind',urlWMPind,'lblWMPind');
	}
	nextTest('testPlay()','lblTestPlay');
}


// Trap error checking mediaplayer
function checkWmpIndivid_err(msg, url, line) {
	//alert('Err: ' + msg);
	disableSite = true;
	setStErr('stWMPind','lnkWMPind',urlWMPind,'lblWMPind');
//	nextTest('111testFlashPlayer()','lblFlash');
	nextTest('testPlay()','lblTestPlay');
}

var clientBW = 0;	
function testDone(speed) {
	clientBW = speed;
	if (speed > 425) {
	    setStOK(stNet,lnkNet,lblNet);
		if (!disableSite) {
			nextTest('testPlay()','lblTestPlay');
	  	} else {
			nextTest('endTest()','spResultButton');
		}
  	} else {
		setStErr(stNet,lnkNet,'<span class="copyredbold">' + speed + ' k/s</span>',lblNet);
		nextTest('endTest()','spResultButton');
	}	
}

// Timer to catch non responsive wmp
var tPlayerTimeout = -1;

// Timer to get bandwidth during playback
var tPlayback = -1;

// Maximum bandwidth from playback testing
var maxBW = -1;

// Reception Quality (for advanced fast cache)
var receptionQuality = -1;

// Status flags
var statusBuffering = false;
var statusPlay = false;
var statusStop = false;

// Try playing a small film
function testPlay() {
	// Set flag so that we know that now is playback tested
	testPlayActive = true;

	// Trap error generated when trying to play media
	window.onerror = testPlay_err;

	// Turn mute on
	WMP7.settings.mute = true;
	
	// Trap nonresponsive players (15 secs)
	tPlayerTimeout = setTimeout('testPlayDone()',15000);
	
	WMP7.url = testPlayUrl;

	// setStOK(stTestPlay,lnkTestPlay);
}

// Called by timer to check wmp play bandwidth
function getBandwidth() {

	if (!statusStop) {
		bw = parseInt(WMP7.network.bandWidth);
		var br = WMP7.network.bitRate;
		var sp = WMP7.network.sourceProtocol;
		var rc = WMP7.network.receptionQuality;
		
		// Save highest bw
		if (bw > maxBW) maxBW = bw;
		
		// Check bw after 3 seconds of playing. If more than 700k, skip this test. BW OK.
		if (statusPlay && WMP7.playState == 3) {
			receptionQuality = WMP7.network.receptionQuality;
			if (WMP7.controls.currentPosition > 3.0 && maxBW > 700000) WMP7.controls.stop();
		}
	
		document.all['spResultTxt'].innerHTML = WMP7.status + '<br>Bandwidth: ' + bw + 
												' (max ' + maxBW + ')<br>BitRate: ' + br + 
												'<br>SourceProtocol: ' + sp +
												'<br>Reception Quality: ' + rc ;
				

		tPlayback = setTimeout('getBandwidth()',250);
	}
}
	
		

function testPlayDone() {

	// Turn mute off
	WMP7.settings.mute = false;
	WMP7.url = '';

	// Set client bandwidth to maximum bw (replaces old bw-test)
	clientBW = maxBW;
	if (maxBW > 1024) {
		document.getElementById('lblTestPlay').innerHTML = document.getElementById('lblTestPlay').innerHTML + ' (' + Math.floor(maxBW/1024) + ' kbit/s)';
	} else {
		document.getElementById('lblTestPlay').innerHTML = document.getElementById('lblTestPlay').innerHTML + ' (' + maxBW + ' bit/s)';
	}

      	 if (bw < 460800){
         aanbeveling  = "";
         }
      	 if (bw >= 460800 && bw < 716800){
         aanbeveling  = "Gezien de resultaten van de test raden wij je aan films met een snelheid van 450 Kbps te bekijken."      ;
         }
         if (bw >= 716800 && bw < 1024000){
         aanbeveling  = "Gezien de resultaten van de test raden wij je aan films met een snelheid van 700 Kbps te bekijken."      ;
         }
         if (bw >= 1024000 && bw < 1894400){
         aanbeveling  = "Gezien de resultaten van de test raden wij je aan films met een snelheid van 1000 Kbps te bekijken."      ;
         }
         if (bw >= 1894400){
         aanbeveling  = "Gezien de resultaten van de test raden wij je aan films met een snelheid van 1850 Kbps te bekijken."      ;
         }
 

	if (maxBW > 460800 || (maxBW ==0 && receptionQuality == 100)) {
	    setStOK('stTestPlay','lnkTestPlay','lblTestPlay');
		nextTest('endTest()','spResultButton');
  	} else {
  		// Select error msg depending on max bandwidth
		if (maxBW > 10000) {
			setStErr('stTestPlay','lnkTestPlay',urlTestPlay,'lblTestPlay');
			nextTest('endTest()','spResultButton');
		} else {
			setStErr('stTestPlay','lnkTestPlay',urlTestPlay,'lblTestPlay');
			nextTest('endTest()','spResultButton');
		}
	}	
}


// Trap error while testplay
function testPlay_err(msg, url, line) {
	// Turn mute off
	WMP7.settings.mute = false;
	//alert("test play err: " + msg + ", line " + line);
	
	setStErr('stTestPlay','lnkTestPlay',urlTestPlay,'lblTestPlay');
    nextTest('endTest()','spResultButton');
}

var openTimeout;

function endTest() {
       if (!aanbeveling){
       aanbeveling  = "";
       }
       document.getElementById('spResultTxt3').innerHTML = "<BR>"+aanbeveling+"";
//		document.getElementById('spResultTxt3').innerHTML = "<span class=copygreenbold>De test is klaar!</span>";
	if (errorCount == 0) {
		document.getElementById('spResultTxt2').innerHTML = txtOk;
  		document.getElementById('spResultButton').innerHTML = butOk;
  		openTimeout = window.setTimeout("openSite()");
	} else {
		//document.getElementById('divCustomerServiceInfo').style.display = 'inline';
		if (xpsp2 && ie ) {
			//document.getElementById('laySp2').style.display = 'none';
			//document.getElementById('laySp2').style.display = 'inline';
		} else {		
			// Show error msg in case it's hidden
			document.getElementById('spResultTxt2').innerHTML = txtError;
			document.getElementById('spResultButton').innerHTML = butError;

			// Error not serious? Can open site anyway
			if (!disableSite) document.getElementById('spResultTxt2').innerHTML = txtError + '<br>' + openAnyway;

			// Show link to manual
			if (haveProblems != '') {
				document.getElementById('spHelpButton').innerHTML = '<a href="' + helpFileUrl + '" target="_blank" class="copygreenbold">' + haveProblems + '</a>';
			}
		}
	}
}

function tryOpenSite() {
	if (confirm('Waarschuwing: De huidige instellingen van de PC komen niet overeen met de aanbevolen configuratie. Klik OK om door te gaan.')) {
		openSite();
	}
}

function openSite() {
	var sArg = '';
	var sOptions = 'fullscreen=1'

	// Not fullscreen? Set appropriate window attributes
	// if (bFullscreen)  {
	// 	var height = screen.availHeight;
	// 	var width = screen.availWidth;;
	// 	
	// 	if (height > 768) height = 768;
	// 	if (width > 1024) width = 1024;
	// 	
	// 	sOptions = 'fullscreen=0,status=0,location=0,menubar=0,resizable=1,scrollbars=1,width=' + width + ',height=' + height;
	// }

	if (clientBW > 0) {
		if (sArg == '') {
			if(bFullscreen) {
				sArg = '?bw=' + clientBW + '&fullscreen=1';
			} else {
				sArg = '?bw=' + clientBW + '&fullscreen=0';
			}
		} else {
			if(bFullscreen) {
				sArg += '&bw=' + clientBW + '&fullscreen=1';
			} else {
				sArg += '&bw=' + clientBW + '&fullscreen=0';
			}
		}
	}
	
	thankYou(byebyePage);

	/*var url = 'default22.aspx' + sArg;
	var sf;
	if (bFullscreen)  {
		// Show thankyou message
		thankYou(byebyePage);
		sf = window.open(url,'SFAnytimeWin','fullscreen=1'); 
		window.blur();
		sf.focus();
	} else {
		window.location.href = url;
	}*/
	
	//spPage.innerHTML = "";
	//spExitPage.innerHTML = byebyePage;
	//hideStartLayer();
}

function hideStartLayer() {
	this.layStart.style.visibility = 'hidden';
	this.layTest.style.visibility = 'visible';
}

// Say thank y	//hideDetails();
function thankYou(message) {
	// First hide details
	//hideDetails();

	// Then show thank you message
//  	document.all['silentTestInfo'].innerHTML = message;
	document.getElementById('silentTestInfo').innerHTML = message;
}

//-->

