/**
 * Javascript-File für den Abruf von PX24-SOAP-Sendern.
 * 
 * @author		Stefan Jacomeit <stefan@lamp-systems.net>
 * @version		1.0
 * @copyright	2010 LAMP systems Ltd. <stefan@lamp-systems.net>
 */
HTTP_GET_VARS=new Array();
strGET=document.location.search.substr(1,document.location.search.length);
if(strGET!='') {
	gArr=strGET.split('&');
	for(i=0;i<gArr.length;++i) {
	    v='';vArr=gArr[i].split('=');
	    if(vArr.length>1){v=vArr[1];}
	    HTTP_GET_VARS[unescape(vArr[0])]=unescape(v);
    }
}
/**
 * Wandelt die GET-Parameter fuer eine Abfrage um.
 * 
 * @param v
 * @return string
 */
function GET(v)
{
	if(!HTTP_GET_VARS[v]){return 'undefined';}
	return HTTP_GET_VARS[v];
}
/**
 * Seiten-Initialisierung
 * Diese Funktion erzeugt via Ajax eine Cache-Version einer Senderliste,
 * die als PHP-Array-Datei im Cache-Ordner liegt. 
 * 
 * @return void
 */
function getSender()
{
	var mAjax		= new Ajax();
	mAjax.url		= '/Ls/Script.php';
	mAjax.params	= 'getSender=1&wmid='+encodeURIComponent(px24WmId)+'&pp='+encodeURIComponent(px24PpId)+'&lang='+encodeURIComponent(px24Lang)+'&backlinktype='+encodeURIComponent(px24BacklinkType)+'&backlink='+encodeURIComponent(px24Backlink);
	mAjax.onSuccess = function( txt, xml ) {
		if ( errorHandler( txt ) ) return;
		if ( txt.indexOf('OK')==0) {
			showSender();
		}
	}
	mAjax.onError	= function( msg ) {
		errorHandler(msg);
	}
	mAjax.doRequest();
}
/**
 * Ermittelt den angehängten Parameter ?sender=xx aus der URL und 
 * zeigt die Senderdetail-URL von PX24 des jeweiligen Senders in das src 
 * Attribut des iframes mit der ID id="showDetail" an.
 * 
 * @return void
 */
function getDetail()
{
	/* var sender = GET('sender');*/
	var str=(location.href);
	var sender = str.substring(str.lastIndexOf('/') + 1, str.lastIndexOf('.'));
	if (sender != "undefined") {
		document.getElementById('showDetail').src = px24URL+'?pp='+px24PpId+'&wmid='+px24WmId+'&lang='+px24Lang+'&sender='+sender;
	}
	return;
}
/**
 * Diese Funktion holt per AJAX vom Script Px24SoapClass.php die aktuelle 
 * Senderliste von PX24 per SOAP und die Sender aus der temporaeren Datei
 * cache/temp.php.
 * 
 * @param divId
 * @param anzahl
 */
function showSender()
{
	var mAjax 		= new Ajax();
	mAjax.url 		= "/Ls/cache/tmp.xml";
	mAjax.onSuccess = function( txt, xml ) {
		var content = new String();
		var entry 	= new Array();
		for(i=0;i<xml.getElementsByTagName('entry').length;i++) {
			entryNode 		= xml.getElementsByTagName('entry')[i];
			nickNode 		= entryNode.getElementsByTagName('name')[0];
			picNode 		= entryNode.getElementsByTagName('pic')[0];
			entry['nick'] 	= nickNode.firstChild.nodeValue;
			entry['pic'] 	= picNode.firstChild.nodeValue;
			if (document.getElementById('cb'+i))
				document.getElementById('cb'+i).innerHTML = '<a href="/sender/'+entry['nick']+'.html"><img src="'+entry['pic']+'" alt="" width="130" height="100" /></a>';
			if (document.getElementById('rb'+i))
				document.getElementById('rb'+i).innerHTML = '<a href="/sender/'+entry['nick']+'.html"><img src="'+entry['pic']+'" alt="" width="197" height="134" /></a>';
		}
	}
	mAjax.onError	= function( msg ) {
		errorHandler(msg);
	}
	mAjax.doRequest();
}
/**
 * Handler fuer AJAX - Fehlermeldungen
 * Prüft, ob Fehler vorhanden sind und falls ja, wird dieser im 
 * errorContainer angezeigt und true zurückgegeben, andernfalls 
 * wird false zurückgegeben.
 * 
 * @return boolean
 */
function errorHandler(msg)
{
	if (!msg) return false;
	if (lsIsError(msg)) {
		document.getElementById(errorContainer).innerHTML = lsGetError(msg);
		document.getElementById(errorContainer).style.display = 'block';
		return true;
	}
	return false;
}
/**
 * Prüft auf Fehler
 * @param string msg
 * @return boolean
 */
function lsIsError(msg)
{
	if (msg.indexOf('LSERROR:')==0) return true;
	else return false;
}
/**
 * Fehlernachricht rausschneiden
 * @param string msg
 * @return string
 */
function lsGetError(msg)
{
	return msg.replace(/LSERROR:/, '');
}
