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

var disableSite = false;		// Set to true if site is not to be opened
var errors = "";

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

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


function nextTest(test, lbl) {	
	window.setTimeout(test,60);
}

function startTestingSpeed() {
		document.getElementById('check').style.display = "none";
		document.getElementById('spResultTxt3').innerHTML = "Een moment geduld aub... De test is nog niet afgelopen.";
		nextTest('testMediaplayer()','stWMP');
}

// 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) {
				nextTest('testPlay()','stTestPlay');
			} else {
				disableSite = true;
				document.getElementById('spResultTxt3').innerHTML = "Je hebt minimaal Windows Media Player 9 nodig om deze check uit te voeren.";
				document.getElementById('stTestPlay').style.display = "none";
			}
		}
		else{
			disableSite = true;
			document.getElementById('spResultTxt3').innerHTML = "Je hebt Windows Media Player nodig om deze check uit te voeren.";
			document.getElementById('stTestPlay').style.display = "none";
		}
	}else{
		var minVersion = "9,0,0,0";
		var WMPlayer = PluginDetect.isMinVersion('WindowsMediaPlayer', minVersion);
		 
		if (WMPlayer == 1){
			nextTest('testPlayOther()','stTestPlay');
		}else{
				disableSite = true;
				document.getElementById('spResultTxt3').innerHTML = "Deze test kan enkel met IE uitgevoerd worden.";
		}
		
	}
}

// Trap error generated when trying to read / write cookie
function testMediaplayer_err(msg, url, line) {
	disableSite = true;
	nextTest('testPlay()','stTestPlay');
}

var clientBW = 0;	

// 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;
}

// Called by timer to check wmp play bandwidth
function getBandwidth(status) {
	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();
		}
			if (status == 'stop'){
			}	
			else {
				//document.getElementById('stTestPlay').innerHTML  = WMP7.status;
			}
		tPlayback = setTimeout('getBandwidth(\'stop\')',250);
	}
}
	
		

function testPlayDone(waarde) {
	if(ie){
		// Turn mute off
		WMP7.settings.mute = false;
		WMP7.url = '';
	
		// Set client bandwidth to maximum bw (replaces old bw-test)
		clientBW = maxBW;
		bw = maxBW;
		}
	else{
		maxBW = 1024*waarde;
		bw = 1024*waarde;
		}


	 if (bw >= 460800 && bw < 716800){
	 aanbeveling  = '<img src="/images/450small.gif" align="left">De test is afgelopen. Gezien de resultaten van de test raden wij je aan programma\'s met een maximale kwaliteit van <span class="justorange"><b>450 Kbps</b></span> op te nemen.';
	 }
	 if (bw >= 716800 && bw < 1024000){
	 aanbeveling  = '<img src="/images/700small.gif" align="left">De test is afgelopen. Gezien de resultaten van de test raden wij je aan programma\'s met een maximale kwaliteit van <span class="justorange"><b>700 Kbps </b></span> op te nemen.';
	 }
	 if (bw >= 1024000 && bw < 1894400){
	 aanbeveling  = '<img src="/images/1000small.gif" align="left">De test is afgelopen. Gezien de resultaten van de test raden wij je aan programma\'s met een maximale kwaliteit van <span class="justorange"><b>1000 Kbps</b></span> op te nemen.';
	 }
	 if (bw >= 1894400){
	 aanbeveling  = '<img src="/images/1850small.gif" align="left">De test is afgelopen. Gezien de resultaten van de test raden wij je aan programma\'s met een maximale kwaliteit van <span class="justorange"><b>1850 Kbps</b></span> op te nemen.';
	 }
	 if (bw < 460800){
	 aanbeveling  = "De test is afgelopen. De snelheid van de verbinding is niet hoog genoeg.";
	 }

	if (maxBW > 460800 || (maxBW ==0 && receptionQuality == 100)) {
		document.getElementById('spResultTxt3').innerHTML = aanbeveling + '<BR><a href="javascript:startTestingSpeed()">Klik hier om nogmaals de check uit te voeren</a>';
		document.getElementById('stTestPlay').style.display = "none";
	} else {
		document.getElementById('spResultTxt3').innerHTML = "Helaas is jouw internetverbinding niet snel genoeg om gebruik te kunnen maken van deze dienst. <BR><a href=\"javascript:startTestingSpeed()\">Klik hier om nogmaals de check uit te voeren</a>";
		document.getElementById('stTestPlay').style.display = "none";
	}	
}

function testPlayOther() {
	var otherspeed      = "";
	otherspeed      = "";
	var rand_no = Math.random();
	rand_no = rand_no * 100;
	rand_no = Math.ceil(rand_no);
	document.getElementById('otherbrowserspeedtest').src  = "/pages/klantenservice/bwmeter.php?unique="+rand_no;
	subtestPlayOther();
	// timeout in case the test is not working
	setTimeout('if(otherspeed == ""){testPlayDone();}',15000);

}
function subtestPlayOther() {
	if(window.otherbrowserspeedtest.otherspeed){
		otherspeed = window.otherbrowserspeedtest.otherspeed;
		testPlayDone(otherspeed);
	}
	else{		
		setTimeout('subtestPlayOther()',1500);
	}
}
// Trap error while testplay
function testPlay_err(msg, url, line) {
	// Turn mute off
	WMP7.settings.mute = false;
	document.getElementById('spResultTxt3').innerHTML = "Er is een fout opgetreden, probeer het nog eens.";
	document.getElementById('stTestPlay').style.display = "none";
}
