


largestImageSize = 64295;

dslBandwidthMin = 220;


thresholdTime = Math.round((8*largestImageSize)/dslBandwidthMin);


function highlightModem() {
	changeVideoRate('modem');
	indicateRecommended('label_bandbreite_modem');
}
function highlightDsl() {
	changeVideoRate('dsl');
	indicateRecommended('label_bandbreite_dsl');
}
function highlight1500() {
	if (enabled_1500) {
		changeVideoRate('1500');
		indicateRecommended('label_bandbreite_1500');
	} else {
		changeVideoRate('dsl');
		indicateRecommended('label_bandbreite_dsl');
	}
}



function imageLoaded(accurateImageSize, nextImageId) {
	var finished = (new Date).getTime();
	var durationTime = (finished - started);

	if (durationTime > thresholdTime) {
		
		setCookie("downloadBandwidth", "modem", 10, "/ZDFmediathek/inhalt");
		highlightModem();
	} else if (nextImageId == -1) {
		
		// 1000 bit/s = 1kbit/s
		actBandwidth = Math.round((8*accurateImageSize)/durationTime);
		if (dslBandwidthMin < actBandwidth) {
			setCookie("downloadBandwidth", "dsl", 10, "/ZDFmediathek/inhalt");
			highlightDsl();
		} else {
			setCookie("downloadBandwidth", "modem", 10, "/ZDFmediathek/inhalt");
			highlightModem();
		}
	} else {
		testImageDisplay(nextImageId);
	}
}

function testImageDisplay(imageId) {
	// accurateImageSize is in bytes
	switch(imageId)
		{
		case 3:			var accurateImageSize = 3169;	var nextImageId = 10; break;
		case 10:		var accurateImageSize = 10479;	var nextImageId = 30; break;
		case 30:		var accurateImageSize = 32632;	var nextImageId = 60; break;
		case 60:		var accurateImageSize = largestImageSize; var nextImageId = -1; break;
		default:    return;
		}

	started = (new Date).getTime();
	var jout = ''
		+ '<div style="display: none;">'
		+ '<img id=imageDomId src="/ZDFmediathek/img/bandbreite/' + imageId + 'k.jpg?n='+started+'" '
		+ 'width=1 height=1 onLoad="imageLoaded(' + accurateImageSize + ', ' + nextImageId + ');" '
		+ 'onAbort="highlightModem();" '
		+ 'onError="highlightModem();" />'
		+ '</div>'
	var imageHiddenPlace = document.getElementById('hidden_place');
	imageHiddenPlace.innerHTML = jout;
}

function iterateSpeedTest() {
	var downloadBandwidth = getCookie("downloadBandwidth");
	if (downloadBandwidth == null) downloadBandwidth = "";
	
	if (downloadBandwidth == "") {
		testImageDisplay(3);
	} else {
		if (downloadBandwidth == "modem") {
			highlightModem();
		} else {
			highlightDsl();
		}
	}
}



