
var mp3Url = false;
var playerLoaded = false;
var language = 'de';

var loadJS = function (src) {
	var scriptNode = document.createElement('script');
	scriptNode.type = 'text/javascript';
	scriptNode.src = src;
	document.getElementsByTagName('head')[0].appendChild(scriptNode);
}

var loadPlayer = function () {
	// alert("loadPlayer");
	var isIE = (navigator.appName.toLowerCase().indexOf('internet explorer')+1);
	if (isIE && detectWindowsMedia()) {
		loadJS('/dtag/cms/contentblob/dt/de/51744/blobCode/readspeaker-wmp-js.js');
	}
	else
	if (detectQuickTime()) {
		loadJS('/dtag/cms/contentblob/dt/de/51742/blobCode/readspeaker-qtobject-js.js');
	}
	/* TODO: 
	else
	if (detectFlash()) {
		txtNode.innerHTML += 'flash<br>\n';
		loadJS('./script/...');
	}*/
	else {
		return false;
	}
}

function loadXMLDoc(url) {
	// alert("loadXMLDoc");
	req = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	}
	// branch for IE/Windows ActiveX version
	else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
			req = false;
			}
		}
	}
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	} else {
		return false;
	}
}

function processReqChange() {
	// only if req shows "loaded"
	if (req.readyState == 4) {
		// only if "OK"
		if (req.status == 200) {
			//TODO: Id des elements setzen, welches die mp3url enthaelt
			var url = null;
//			var divNodes = req.responseXML.getElementsByTagName('div');
//				for (var i = 0; i < divNodes.length; i++ ) {
//				alert(divNodes[i].getAttribute('class'));
//				if (divNodes[i].getAttribute('class')=='m11') { url = divNodes[i].firstChild.nodeValue; break; }
//			}
      			url = req.responseText;
      			url = url.substring(url.indexOf('http'), url.indexOf('mp3')+3);
      			//alert("url: "+url);
     			 if (url==null || url=='') {
				//TODO: fehlerbehandlung
				return;
			}
			//set url
			mp3Url = url;
			//play
			loadAndPlay();	
		} else {
			//TODO: fehlerbehandlung
		}
	}
}

var wmpPostInitHook = function() {
	playerLoaded=true;
	loadAndPlay();
}
var qtPostInitHook = function() {
	playerLoaded=true;
	loadAndPlay();
}

var startRead=null;
var stopRead = function() {
	var node = document.getElementById('aRead');
	var rText = language=='de' ? 'Text vorlesen':'Read out the text';
	node.innerHTML = '<img src="/dtag/cms/contentblob/dt/de/51758/blobBinary/readspeaker-icon.gif" alt="'+ rText + '" class="wh11x11" />'+rText;
	node.onclick = startRead;
	soundManager.stop();
}

var startRead = function() {
	var node = document.getElementById('aRead');
	var sText = language=='de' ? 'Vorlesen stoppen':'Stop reading';
	node.innerHTML = '<img src="/dtag/cms/contentblob/dt/de/51758/blobBinary/readspeaker-icon.gif" alt="'+sText+'" class="wh11x11" />'+sText;
	node.onclick = stopRead;
	soundManager.play();
}

var loadAndPlay = function() {
	if (!(mp3Url&&playerLoaded)) return; //mp3 not loaded yet
	soundManager.load(mp3Url);
	window.setTimeout('soundManager.play()', 200);
	
	//show stop link
	var node = document.getElementById('aRead');
	var iText = language=='de' ? 'Vorlesen stoppen':'Stop reading';
	node.innerHTML = '<img src="/dtag/cms/contentblob/dt/de/51758/blobBinary/readspeaker-icon.gif" alt="'+iText+'" class="wh11x11" />'+iText;
	node.onclick = stopRead;
	node.href='#';
}

var initReader = function(rsurl) {
	// alert("initReader");
	//get mp3 url via xhr
	var xhrUrl = rsurl;
	rsurl = rsurl.indexOf('&null')==-1 ? rsurl : rsurl.substring(0,rsurl.indexOf('&null'));
	rsurl = rsurl.indexOf('archivArticleID') ==-1 ? rsurl : rsurl.substring(0,rsurl.lastIndexOf('/')+1)+rsurl.substring(rsurl.lastIndexOf('=')+1);
	language = rsurl.indexOf('/de/')==-1 ? 'en' : 'de';
	if (loadXMLDoc(rsurl) == false) return true; //if xhr fails follow links href
	
	//load player
	if (loadPlayer() == false) return true; //if loading player fails follow links href
	return false;
}
