// Holt Infos über den Navigatorvar NS = (navigator.appName == "Netscape");mac = navigator.appVersion.indexOf("Mac");if (mac >= 0) mac = 1; else mac = 0;IE4 = (document.all) ? true : false; NS4 = (document.layers) ?  true : false;NS6a = document.getElementById;if(NS6a && NS) NS6 = true; else NS6 = false;if ((IE4) || (NS4) || (NS6)) dhtml=1;// Referenz holenfunction getElementRef(id){	if (NS6) var prefix = "document.getElementById('" + id + "')";	if (IE4) var prefix = "document.all." + id;	if (NS4) var prefix = "document." + id;	return eval(prefix);}function isSet(variable){	return ((typeof(variable) != 'undefined') && (variable != undefined));}function sprintf() {	if (!arguments || arguments.length < 1 ||!RegExp) { return; }	var result = arguments[0];	var regex = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;	var a = b = [], numSubstitutions = 0, numMatches = 0;	while (a = regex.exec(result)) {		var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];		var pPrecision = a[5], pType = a[6], rightPart = a[7]; numMatches++;		if (pType == '%') {			subst = '%';		} else {			numSubstitutions++;			if (numSubstitutions >= arguments.length) {				alert('Error! Not enough function arguments (' +					(arguments.length - 1) + ', excluding the string)\n' +					'for the number of substitution parameters in string (' +					numSubstitutions + ' so far).');			}			var param = arguments[numSubstitutions];			var pad = '';			if (pPad && pPad.substr(0,1) == "'") {				pad = leftpart.substr(1,1);			} else if (pPad) {				pad = pPad;			}			var justifyRight = true;			if (pJustify && pJustify === "-") justifyRight = false;			var minLength = -1;			if (pMinLength) minLength = parseInt(pMinLength);			var precision = -1;			if (pPrecision && pType == 'f') {				precision = parseInt(pPrecision.substring(1));			}			var subst = param;			switch (pType) {				case 'b': subst = parseInt(param).toString(2); break;				case 'c': subst = String.fromCharCode(parseInt(param)); break;				case 'd': subst = parseInt(param)? parseInt(param) : 0; break;				case 'u': subst = Math.abs(param); break;				case 'f': subst = (precision > -1)?					Math.round(parseFloat(param) * Math.pow(10, precision)) /					Math.pow(10, precision) : parseFloat(param); break;				case 'o': subst = parseInt(param).toString(8); break;				case 's': subst = param; break;				case 'x': subst = ('' + parseInt(param).toString(16)).toLowerCase(); break;				case 'X': subst = ('' + parseInt(param).toString(16)).toUpperCase(); break;			}			var padLeft = minLength - subst.toString().length;			if (padLeft > 0) {				var arrTmp = new Array(padLeft+1);				var padding = arrTmp.join(pad?pad:" ");			} else {				var padding = "";			}		}		result = leftpart + padding + subst + rightPart;	}	return result;}function print_r(value, deep) {	if(!deep) deep = 0;	var result = "";	var spaces = "";	for(i = 0; i < deep; i++) spaces += "\t";	if(value.constructor == Array) {		result += "Array(\n";		for(var key in value) {			result += spaces + "\t[" + key + "] => " + print_r(value[key], deep + 1);		}		result +=  spaces + ")\n";	} else if(value.constructor == Object) {		result += "Object(\n";		for(var key in value) {			result += spaces + "\t[" + key + "] => " + print_r(value[key], deep + 1);		}		result +=  spaces + ")\n";	} else {		result += value + "\n";	}	return result;}
// Init page update//var requestAddr = 'load.php?name=Broadcast&file=OnAir_GetData';var requestAddr = '/cms/modules/Broadcast/OnAir_GetData.php';var onAirData = null;var interval = 10;var counter = interval;var httpClient = null;var timer = window.setInterval("checkUpdate()", 1000);
if(window.XMLHttpRequest) {	httpClient = new XMLHttpRequest();} else if(window.ActiveXObject) {	httpClient = new ActiveXObject('Microsoft.XMLHTTP');}
function checkUpdate() {	if (counter < 0) {		sendRequest();		counter = interval;	}	getElementRef("song_playtime").innerHTML = (enableTimer ? "&nbsp;(Left&nbsp;" + getTimeString(playTime) + ")" : "");	if(enableTimer && (playTime > 0)) playTime--; else playTime = 0;	counter--;}
function sendRequest() {	try {		if(isSet(httpClient)) {			httpClient.open('GET', requestAddr, true);			httpClient.onreadystatechange = onStateChange;			httpClient.send(null);		}	}	catch(e) {	}}
function onStateChange() {	try {		if(isSet(httpClient)) {			if(httpClient.readyState == 4) {				text = httpClient.responseText;				if(isSet(text) && (text != '')) {					temp = eval("(" + text + ")");					//getElementRef("data").innerHTML = print_r(temp);					if(isSet(temp)) {						playTime = temp.song_playtime;						if(onAirData == null || temp.md5 != onAirData.md5) {							onAirData = temp;							updatePage();						}					}				}			}		}	}	catch(e) {	}}
function updatePage() {	enableTimer = (onAirData.song_length > 0);	getElementRef("song_image").src = imageDir + onAirData.song_image;	getElementRef("song_type").innerHTML = (!enableTimer ? "<img border=0 class=onair_img_live src=\"modules/Broadcast/images/blind.png\" hspace=2 />" : "");	getElementRef("song_artist").innerHTML = onAirData.song_artist;	getElementRef("song_title").innerHTML = onAirData.song_title;	getElementRef("song_playtime").innerHTML = (enableTimer ? "&nbsp;(Left&nbsp;" + getTimeString(playTime) + ")" : "");	getElementRef("song_length").innerHTML = (enableTimer ? getTimeString(onAirData.song_length) : "");	getElementRef("song_album").innerHTML = onAirData.song_album;	getElementRef("song_infos").href = onAirData.song_infos;	getElementRef("song_website").href = onAirData.song_website;	getElementRef("song_playstart").innerHTML = onAirData.song_playstart;	getElementRef("server_listeners").innerHTML = onAirData.server_listeners;	getElementRef("server_comingup").innerHTML = onAirData.server_comingup;	getElementRef("song_playcount").innerHTML = ((onAirData.song_playcount <= 1) ? "<img border=0 class=onair_img_new src=\"modules/Broadcast/images/blind.png\" hspace=2 />" : "");	//getElementRef("song_rating1").src = "modules/Broadcast/images/rating_" + ((onAirData.song_rating > 0) ? "yellow" : "gray") + ".png";	getElementRef("song_rating1").className = ((onAirData.song_rating > 0) ? "onair_img_rating_light" : "onair_img_rating_dark");	getElementRef("song_rating2").className = ((onAirData.song_rating > 1) ? "onair_img_rating_light" : "onair_img_rating_dark");	getElementRef("song_rating3").className = ((onAirData.song_rating > 2) ? "onair_img_rating_light" : "onair_img_rating_dark");	getElementRef("song_rating4").className = ((onAirData.song_rating > 3) ? "onair_img_rating_light" : "onair_img_rating_dark");	getElementRef("song_rating5").className = ((onAirData.song_rating > 4) ? "onair_img_rating_light" : "onair_img_rating_dark");	getElementRef("song_vote1").href = "javascript:vote(1, " + onAirData.song_id + ");";	getElementRef("song_vote2").href = "javascript:vote(2, " + onAirData.song_id + ");";	getElementRef("song_vote3").href = "javascript:vote(3, " + onAirData.song_id + ");";	getElementRef("song_vote4").href = "javascript:vote(4, " + onAirData.song_id + ");";	getElementRef("song_vote5").href = "javascript:vote(5, " + onAirData.song_id + ");";	//getElementRef("data").innerHTML = print_r(onAirData);}
function getTimeString(value) {	mm = Math.floor(value / 60);	ss = Math.abs(value % 60);	return sprintf("%02d&#39;%02d&#34;", mm, ss);}
