document.onclick=mouse_position;

var dynDiv=new Array();
var interval=new Array();

// Basis für dynamische Div Erzeugung
// Vor-Reservierung von dynDiv Feldern

// showInfo
dynDiv[0]=0;

// Header Panel Menü
dynDiv[1]=0;
dynDiv[2]=0;

// Mausposition
var xpos=0;
var ypos=0;

function removeDiv(divNumber)
{
	document.body.removeChild(dynDiv[divNumber]);
}

// Maus Position finden
function mouse_position(e) 
{
	if(!e) e=window.event;
	xpos=e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
	ypos=e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
}

// Ein HTML Objekt anzeigen, oder verstecken
function showHide(elementName, showIt)
{
	if((document.getElementById(elementName).style.display=='none' || showIt) && showIt!=false) document.getElementById(elementName).style.display = 'block';
	else document.getElementById(elementName).style.display = 'none';
}

// Aufruf nach Reload
function reloadPage(dataObject)
{
	document.getElementById('pageContent').innerHTML = dataObject['content'].value;
	
	if(this.mainPageReload != null) mainPageReload();
}

function refreshMainPage()
{
	query(this.documentName, 'contentOnly=1&' + this.getPageParameters(), reloadPage);
}

// zu sichernde Parameter/Variablen abrufen
function getPageParameters()
{
	var pageParameterArray=new Array();
	
	for(var f in this.pageParameters)
	{
		pageParameterArray.push(f+"="+this.pageParameters[f]);
	}
	
	return pageParameterArray.join('&');
}

// Position eines Elementes finden
function getElementPosition(elementId)
{
	var element=document.getElementById(elementId);
	
	var elem=element;
	var tagname="";
	var x=0;
	var y=0;

	while((typeof(elem)=="object") && (typeof(elem.tagName)!="undefined"))
	{
		y+=elem.offsetTop;
		x+=elem.offsetLeft;
		tagname=elem.tagName.toUpperCase();
		
		if (tagname=="BODY") elem=0;
		
		if (typeof(elem)=="object")
		if (typeof(elem.offsetParent)=="object")
		elem=elem.offsetParent;
	}

	position=new Object();
	position.x=x;
	position.y=y;
	return position;
}

// eine Nachricht, die an einem Element haftet
showStaticInfoSetBack=new Array();
function showStaticInfo(elementId, content)
{
	if(bodyIsLoaded)
	{
		var text=content;
		
		// Position des Elementes ermitteln
		elementPos=getElementPosition(elementId);
		
		// Werte
		var top=elementPos.y+document.getElementById(elementId).offsetHeight+1;
		
		// Nachricht um 10% der Breite nach rechts verschieben
		var left=elementPos.x + document.getElementById(elementId).offsetWidth * 0.1;
		var width=400;
		
		// wenn dynDiv[0] noch nicht generiert wurde, dann tu das jetzt
		if(dynDiv[0]==null || dynDiv[0]==0)
		{
			
			var divName='dynDivShowInfo';
			dynDiv[0]=document.createElement(divName);
			document.getElementById('body').appendChild(dynDiv[0]);
			
			dynDiv[0].style.position='absolute';
			dynDiv[0].style.width=width+'px';
			dynDiv[0].style.backgroundColor='transparent';
			
			dynDiv[0].innerHTML='<img src="../pageLayout/images/showInfo/showInfoTop.png"><div class="showinfobody"><div id="showinforesult">'+text+'</div></div><img src="../pageLayout/images/showInfo/showInfoBottom.png">';
		}
		
		if(dynDiv[0].style.display=='none') dynDiv[0].style.display='block';
		
		// lade den Text nur, wenn er nicht der Gleiche von letzten Aufruf ist
		if(text.toLowerCase().substr(0, 10)!=document.getElementById('showinforesult').innerHTML.toLowerCase().substr(0, 10))
		{
			//alert(document.getElementById('showinforesult').innerHTML+" !ungleich! "+text);
			document.getElementById('showinforesult').innerHTML=text;
		}
		
		// Element markieren
		showStaticInfoSetBack[elementId]=new Array();
		showStaticInfoSetBack['elementId']=elementId;
		showStaticInfoSetBack[elementId]['borderWidth']=document.getElementById(elementId).style.borderWidth;
		showStaticInfoSetBack[elementId]['borderColor']=document.getElementById(elementId).style.borderColor;
		showStaticInfoSetBack[elementId]['borderStyle']=document.getElementById(elementId).style.borderStyle;
		
		if(document.getElementById(elementId).style.borderWidth.length==0)
		{
			document.getElementById(elementId).style.borderWidth='2px';
			document.getElementById(elementId).style.borderStyle='solid';
		}
		
		document.getElementById(elementId).style.borderColor='#FFD800';
		
		//document.getElementById(elementId).style.borderColor='#fff';
		//document.getElementById(elementId).style.backgroundColor='#000';
		//document.getElementById(elementId).style.color='#fff';
		//document.getElementById(elementId).style.padding='2px';
		
		// Höhe
		var height=dynDiv[0].offsetHeight;
		
		// Positionen korrigieren wenn Fenster außerhalb von Sichtbereich liegt
		// Breitenposition
		//alert("("+left+"+"+width+")>("+document.body.clientWidth+"+"+document.body.scrollLeft+")");
		if((left+width)>(document.body.clientWidth+document.body.scrollLeft)) left=((document.body.clientWidth+document.body.scrollLeft)-width);
		// Höhenposition
		if((top+height)>(document.body.clientHeight+document.body.scrollTop)) top=(elementPos.y-height-1);
		
		dynDiv[0].style.left=left+'px';
		dynDiv[0].style.top=top+'px';
	}
}

function hideStaticInfo()
{
	if(dynDiv[0]!=0)
	{
		document.getElementById(showStaticInfoSetBack['elementId']).style.borderWidth=showStaticInfoSetBack[showStaticInfoSetBack['elementId']]['borderWidth'];
		document.getElementById(showStaticInfoSetBack['elementId']).style.borderColor=showStaticInfoSetBack[showStaticInfoSetBack['elementId']]['borderColor'];
		document.getElementById(showStaticInfoSetBack['elementId']).style.borderStyle=showStaticInfoSetBack[showStaticInfoSetBack['elementId']]['borderStyle'];
		dynDiv[0].style.display='none';
	}
}

// wird bei headerPanel.php und bei tool-invarechner.php verwendet
function str_replace(searchString, changeString, mainString)
{
	// Fehlerprüfung
	if((mainString==null) || (searchString == null)) return null;
	if((mainString.length==0) || (searchString.length==0)) return mainString;
	
	// Kein changeString übergeben?
	if ((changeString==null) || (changeString.length==0)) changeString = "";
	
	var lengthSearchString=searchString.length;
	var lengthChangeString=changeString.length;
	var pos=mainString.indexOf(searchString, 0);
	
	while (pos >= 0)
	{
		mainString = mainString.substring(0, pos) + changeString + mainString.substring(pos + lengthSearchString);
		pos = mainString.indexOf(searchString, pos + lengthChangeString);
	}
	
	return mainString;
}

function urlencode(string)
{
	str = str_replace('+', '%2B', escape(string));
	
	return str;
}

// Eine Vorrichtung für das Senden von Einträgen(Kommentare, etc.)
/* Hinweis
Gästebucheinträge und Kommentare werden im Gruppensystem
abgespeichert, d.h. beide übergeben als Parameter 'act' den
Wert 'group_topic_entry_post'
*/
function submit_form(act, data, formId, refreshFunction)
{
	var submit_button;
	
	if(formId != null) submit_button = formId + 'SubmitButton';
	else
	{
		// Standardbezeichnungen
		submit_button = 'submit_button';
		formId = 'submit_form';
	}
	
	var block_error = 'errors';
	var block_content = '';
	var file;
	
	switch(act)
	{
		case 'bugReport':
			file = '../groups/js_forumEntry_post.php';
			
			if(document.forms[formId].elements['nick'].value != "") data += '&nick='+urlencode(document.forms[formId].elements['nick'].value);
			else data += '&nick=Anonymus';
			
			data += '&text='+urlencode(document.forms[formId].elements['bugDesc'].value);
			
			block_content = 'none';
		break;
		case 'forumEntry_post':
			file='../groups/js_forumEntry_post.php';
			var threadId=urlencode(document.forms[formId].elements['threadId'].value);
			
			data='threadId='+threadId;
			data+='&nick='+urlencode(document.forms[formId].elements['nick'].value);
			data+='&text='+urlencode(document.forms[formId].elements['text'].value);
			//alert(data);
			block_content=refreshFunction;
		break;
		/*
		case 'group_topic_entry_post':
			file='../groups/js_post_group_entry.php';
			data+='&nick='+urlencode(document.forms[formId].elements['nick'].value);
			data+='&text='+urlencode(document.forms[formId].elements['text'].value);
		break;
		case 'group_topic_post':
			file='../forum/js_post_group_topic.php';
			data+='&titel='+urlencode(document.forms['group_topic_form'].elements['titel'].value);
			data+='&text='+urlencode(document.forms['group_topic_form'].elements['text'].value);
		break;
		case 'shoutbox_entry_post':
			file='../forum/js_post_group_entry.php';
			data+='&nick='+urlencode(document.forms['submit_form'].elements['nick'].value);
			data+='&text='+urlencode(document.forms['submit_form'].elements['text'].value);
		break;
		*/
		case 'login':
			file='../headerPanelUserBoard.php';
			data+='&nick='+urlencode(document.forms[formId].elements['nick'].value);
			data+='&password='+urlencode(document.forms[formId].elements['password'].value);
			if(document.forms[formId].autoLogin[1].checked) data+='&autoLogin=1';
			
			block_content = function(data) { loginSuccess(data); };
			submit_button="headerPanelUserBoardSubmitButton";
		break;
	}
	
	document.getElementById(submit_button).disabled=true;
	query_submit(file, data, block_content, block_error, submit_button);
}

function query_submit(file, data, block_content, block_error, submit_button)
{
	var error=null;
	var width=200;
	var height=45;
	var left=xpos+8;
	var top=ypos+2;
	
	var nr=dynDiv.length;
	
	var timeActual=new Date();
	var divName='dynDivQuery'+nr;
	dynDiv[nr]=document.createElement(divName);
	document.getElementById('body').appendChild(dynDiv[nr]);
	
	dynDiv[nr].style.position='absolute';
	dynDiv[nr].style.padding='5px';
	dynDiv[nr].style.backgroundColor='#FFD800';
	dynDiv[nr].style.color='black';
	dynDiv[nr].style.width=width+'px';
	dynDiv[nr].style.height=height+'px';
	dynDiv[nr].style.border='1px solid #888';
	dynDiv[nr].style.backgroundImage='url(../img/query_pop/menu_trans.png)';
	
	// Breitenposition korrigieren, wenn Fenster außerhalb von Sichtbereich liegt
	if((left+width)>(document.body.clientWidth+document.body.scrollLeft)) dynDiv[nr].style.left=((document.body.clientWidth+document.body.scrollLeft)-width)+'px';
	else dynDiv[nr].style.left=left+'px';
	
	// Höhenposition korrigieren, wenn Fenster außerhalb von Sichtbereich liegt
	if((top+height)>(document.body.clientHeight+document.body.scrollTop)) dynDiv[nr].style.top=((document.body.clientHeight+document.body.scrollTop)-height)+'px';
	else dynDiv[nr].style.top=top+'px';
	
	//alert((document.body.clientHeight+document.body.scrollTop));
	dynDiv[nr].innerHTML='<div id="'+divName+'Text"></div><img src="../img/query_pop/throbber.gif">';
	
	var strURL=file;
	var xmlHttpReq=null;
	
	// XMLHttpRequest als Javascript Objekt
	if(window.XMLHttpRequest) 
	{
		xmlHttpReq=new XMLHttpRequest();
	}
	// XMLHttpRequest als ActiveX Objekt (IE5 bis 6)
	else if(window.ActiveXObject) 
	{
		xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlHttpReq.open('POST', strURL, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Pragma", "no-cache");
	xmlHttpReq.setRequestHeader("Cache-Control", "must-revalidate");
	xmlHttpReq.setRequestHeader("If-Modified-Since", document.lastModified);
	xmlHttpReq.onreadystatechange = function() 
	{
		switch(xmlHttpReq.readyState)
		{
			case 1:
				document.getElementById(divName+'Text').innerHTML='Verbindung wird hergestellt!';
			break;
			case 2:
				document.getElementById(divName+'Text').innerHTML='Verbindung hergestellt!';
			break;
			case 3:
				document.getElementById(divName+'Text').innerHTML='Daten werden verarbeitet!';
			break;
			case 4:
				if(xmlHttpReq.status==404) error='401 Page not found!';
				else if(xmlHttpReq.status==500) error='500 Interner Serverfehler!';
				
				if(error==null)
				{
					query_result=xmlHttpReq.responseText;
					//alert(query_result);
					// Daten parsen
					var data=ddpParseText(query_result);
					
					// Fehler abfangen
					if(data['error']!=null)
					{
						document.getElementById(submit_button).disabled=false;
						
						errorText='<b>Es sind Fehler aufgetreten!</b><br />';
						errorText+=data['error'].value;
						
						action_pop('message', errorText);
					}
					
					if(query_result=='Daten entfernt!')
					{
						alert("'Daten entfernt!' ist veraltet!");
						page_refresh();
					}
					else if(data['refresh']!=null) page_refresh();
					else if(data['refreshMainPage']!=null) refreshMainPage();
					else if(typeof block_content=='function') block_content(data);
					else if(data['content']!=null)
					{
						document.getElementById(block_content).innerHTML=data['content'].value;
					}
					
					document.getElementById(divName+'Text').innerHTML='Daten wurden geladen!';
					
					/*
					if(query_result=='Daten entfernt!') page_refresh();
					else if(typeof block_content=='function') block_content(data);
					else if(data['content']!=null)
					{
						document.getElementById(block_content).innerHTML=data['content'].value;
					}
					
					document.getElementById(divName+'Text').innerHTML='Daten wurden verarbeitet!';
					*/
				}
				else
				{
					errorText='<b>Fehler!</b><br />';
					errorText+='Aktion Aufruf von \''+file+'\' mit Parameter/n \''+data+'\' ist fehlgeschlagen!<br />';
					errorText+='Fehlermeldung: \''+error+'\'';
					
					action_pop('message', errorText);
				}
				
				interval[nr]=window.setInterval('clearInterval(interval['+nr+']); removeDiv('+nr+');', 800);
			break;
		}
	}
	xmlHttpReq.send(data);
}

// Vorrichtung für das Anfordern von Daten, welches entweder hinterfragt wird, oder dessen angefordete Daten in einem dynDiv angezeigt werden sollen
function action_pop(act, data, refreshFunction)
{
	var nr=dynDiv.length;
	var timeActual=new Date();
	var width=400;
	var left=xpos-8;
	var top=ypos;
	
	var divName='dynDiv'+nr;
	dynDiv[nr]=document.createElement(divName);
	document.getElementById('body').appendChild(dynDiv[nr]);
	
	dynDiv[nr].style.position='absolute';
	dynDiv[nr].style.display='block';
	dynDiv[nr].style.width=width+'px';
	dynDiv[nr].style.backgroundColor='transparent';
	
	// Höhenposition
	dynDiv[nr].style.top=ypos+'px';
	
	// Breitenposition korrigieren, wenn Fenster außerhalb von Sichtbereich liegt
	if((left+width)>(document.body.clientWidth+document.body.scrollLeft)) dynDiv[nr].style.left=((document.body.clientWidth+document.body.scrollLeft)-width)+'px';
	else dynDiv[nr].style.left=left+'px';
	
	var subject='Aktion ausführen';
	var text='Aktion ausführen?';
	var text_confirm='ja';
	var file, post;
	
	var action='\''+divName+'\'';
	
	switch(act)
	{
		// Forum
		case 'forumEntry_delete':
			file='../groups/js_forumEntry_delete.php';
			post=data;
			action=refreshFunction;
			
			text='Eintrag l&ouml;schen?';
		break;
		
		// Gruppen
		case 'group_entries_delete':
			file='../groups/js_group_entries.php';
			post='action=group_entries_delete&'+data;
			text='Eintrag l&ouml;schen?';
		break;
		case 'group_topic_delete':
			file='../groups/js_group_topic.php';
			post='action=group_topic_delete&'+data;
			text='Thema l&ouml;schen?';
		break;
		case 'guestbook_entries_delete':
			file='../user/js_profile_guestbook.php';
			post='action=profile_guestbook_entries_delete&'+data;
			text='Eintrag l&ouml;schen?';
		break;
		
		// Abonnements
		case 'forumThreadNotification_delete':
			file='../groups/js_forumThread_notification.php';
			post='action=delete&'+data;
			text='Abonnnement wirklich l&ouml;schen?';
		break;
		
		// Gruppe Mitgliedschaft
		case 'groupMembershipRequest':
			file='../groups/js_groupMemberSendMembershipRequest.php';
			post=data;
			text='Willst du der Gruppe beitreten?';
			
			query(file, post, action);
			return;
		break;
		case 'groupMembershipExit':
			file='../groups/js_groupMemberExitMembership.php';
			post=data;
			text='Willst du die Gruppe verlassen?';
		break;
		
		// Benutzer
		case 'user_delete':
			file='../yazone/js_user.php';
			post='action=user_delete&userId='+data;
			text='User l&ouml;schen?';
		break;
		case 'user_freeze':
			file='../yazone/js_user.php';
			post='action=user_freeze&userId='+data;
			text='User einfrieren?';
		break;
		
		case 'entry_delete':
			file='../entertainmentBlog/js_entertainmentBlogEntries.php';
			post='action=entry_delete&entryId='+data;
			text='Eintrag entfernen?';
		break;
		
		case 'history_info':
			file='';
			post='';
			text_confirm='';
			text='Es wird in der Datenbank gesucht...';
			query('../yazone/js_get_history_info.php', 'pageviewId='+data, divName);
		break;
		case 'elDeleteBlogEntry':
			file='../earthlost/js_news_delete.php';
			post='news_id='+data;
			text='News l&ouml;schen?';
		break;
		
		// Freundschaft
		case 'userFriendshipRequest':
			file='../user/js_userRelationSendFriendshipRequest.php';
			post=data;
			text='Willst du eine Freundschaftsanfrage losschicken?';
		break;
		case 'userFriendshipConfirm':
			file='../user/js_userRelationHandleFriendshipRequest.php';
			post=data;
			text='Willst du den Freundschaftsantrag annehmen?';
		break;
		case 'userFriendshipRefuse':
			file='../user/js_userRelationHandleFriendshipRequest.php';
			post=data;
			text='Willst du den Freundschaftsantrag ablehnen?';
		break;
		
		case 'message':
			file='';
			post='';
			subject='Achtung';
			text_confirm='';
			text=data;
		break;
	}
	
	//dynDiv[nr].innerHTML+='<div class="action_body_outer"></div><img src="../img/showinfoBottom.png">';
	dynDiv[nr].innerHTML='<img src="../pageLayout/images/actionPop/actionPopTop.png"><div class="showinfobody"><div class="action_body_inner"><a href="javascript:removeDiv(\''+nr+'\');"><img style="float:right;" src="../img/close.gif"></a>'+subject+'</div><div class="showInfoContent" id="'+divName+'">'+text+'<br /><a href="javascript:query(\''+file+'\', \''+post+'\', '+action+');">'+text_confirm+'</a></div></div><img src="../pageLayout/images/showInfo/showInfoBottom.png">';
}

// Funktion zum Anfordern von Daten, die Daten werden in einem Div abgelegt, wenn der Parameter 'block' übergeben wird
function query(file, parameter, block)
{
	var error=null;
	var errorText=null;
	var width=200;
	var height=45;
	var left=xpos+8;
	var top=ypos+2;
	
	// Ajax Parameter hinzufügen
	if(parameter!="") parameter+="&";
	parameter+="ajax=1";
	
	var nr=dynDiv.length;
	
	var timeActual=new Date();
	var divName='dynDivQuery'+nr;
	dynDiv[nr]=document.createElement(divName);
	document.getElementById('body').appendChild(dynDiv[nr]);
	
	dynDiv[nr].style.position='absolute';
	dynDiv[nr].style.padding='5px';
	dynDiv[nr].style.width=width+'px';
	dynDiv[nr].style.height=height+'px';
	dynDiv[nr].style.backgroundColor='#FF9D5B';
	dynDiv[nr].style.color='black';
	dynDiv[nr].style.border='1px solid #888';
	dynDiv[nr].style.backgroundImage='url(../img/query_pop/menu_trans.png)';
	
	// Breitenposition korrigieren, wenn Fenster außerhalb von Sichtbereich liegt
	if((left+width)>(document.body.clientWidth+document.body.scrollLeft)) dynDiv[nr].style.left=((document.body.clientWidth+document.body.scrollLeft)-width)+'px';
	else dynDiv[nr].style.left=left+'px';
	
	// Höhenposition korrigieren, wenn Fenster außerhalb von Sichtbereich liegt
	if((top+height)>(document.body.clientHeight+document.body.scrollTop)) dynDiv[nr].style.top=((document.body.clientHeight+document.body.scrollTop)-height)+'px';
	else dynDiv[nr].style.top=top+'px';
	
	dynDiv[nr].innerHTML='<div id="'+divName+'Text"></div><img src="../img/query_pop/throbber.gif">';
	
	//<a href="javascript:removeDiv('+nr+');">X</a>
	
	var strURL=file;
	var xmlHttpReq=null;
	
	// XMLHttpRequest als Javascript Objekt
	if(window.XMLHttpRequest) 
	{
		xmlHttpReq=new XMLHttpRequest();
	}
	// XMLHttpRequest als ActiveX Objekt (IE5 bis 6)
	else if(window.ActiveXObject) 
	{
		xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlHttpReq.open('POST', strURL, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Pragma", "no-cache");
	xmlHttpReq.setRequestHeader("Cache-Control", "must-revalidate");
	xmlHttpReq.setRequestHeader("If-Modified-Since", document.lastModified);
	
	xmlHttpReq.onreadystatechange=function() 
	{
		switch(xmlHttpReq.readyState)
		{
			case 1:
				document.getElementById(divName+'Text').innerHTML='Verbindung wird hergestellt!';
			break;
			case 2:
				document.getElementById(divName+'Text').innerHTML='Verbindung hergestellt!';
			break;
			case 3:
				document.getElementById(divName+'Text').innerHTML='Daten werden geladen!';
			break;
			case 4:
				if(xmlHttpReq.status==404) error='401 Page not found!';
				else if(xmlHttpReq.status==500) error='500 Interner Serverfehler!';
				
				if(error==null)
				{
					query_result=xmlHttpReq.responseText;
					//alert(query_result);
					// Daten parsen
					var data=ddpParseText(query_result);
					
					// Fehler abfangen
					if(data['error']!=null)
					{
						errorText='<b>Es sind Fehler aufgetreten!</b><br />';
						errorText+=data['error'].value;
						
						action_pop('message', errorText);
					}
					
					if(query_result=='Daten entfernt!')
					{
						alert("'Daten entfernt!' ist veraltet!");
						page_refresh();
					}
					else if(data['refresh']!=null) page_refresh();
					else if(data['refreshMainPage']!=null) refreshMainPage();
					else if(typeof block=='function') block(data);
					else if(data['content']!=null)
					{
						document.getElementById(block).innerHTML=data['content'].value;
					}
					
					document.getElementById(divName+'Text').innerHTML='Daten wurden geladen!';
				}
				else
				{
					errorText='<b>Fehler!</b><br />';
					errorText+='Aktion Aufruf von \''+file+'\' mit Parameter/n \''+parameter+'\' ist fehlgeschlagen!<br />';
					errorText+='Fehlermeldung: \''+error+'\'';
					
					action_pop('message', errorText);
				}
				
				interval[nr]=window.setInterval('clearInterval(interval['+nr+']); removeDiv('+nr+');', 800);
			break;
		}
	}
	
	xmlHttpReq.send(parameter);
	//return(xmlHttpReq.responseText);
}

/* Data Differentiation Protocol (ddp)
Beispiel
----
<data id="Attribut Name" value="Atrribut Inhalt">
	Atrribut Inhalt
</data>
----

var beispielText='<data id="test" value="12321"></data>';
var data=ddpParseText(beispielText);

alert(data['test'].value); // Ausgabe: 12321
*/
function ddpParseText(text, containerTag)
{
	if(containerTag==null) containerTag='data';
	
	var split=text.split("<"+containerTag+" ");
	var part1, part2, part3;
	var content, attributes;
	var dataArray=new Array();
	var tempArray=new Array();
	
	for(var f in split)
	{
		f=split[f];
		
		tempArray=new Array();
		
		if(f.split("</"+containerTag+">").length>1)
		{
			part1=f.split(">");
			attributes=part1[0].split(" ");
			
			for(var c in attributes)
			{
				c=attributes[c];
				
				part2=c.split("=\"");
				
				if(part2.length>0)
				{
					part3=part2[1].split("\"");
					
					tempArray[part2[0]]=part3[0];
				}
			}
			
			if(tempArray['value']==null || tempArray['value']=="")
			{
				tempArray['value']=f.substring(f.indexOf('>')+1, f.lastIndexOf('</'+containerTag+'>'));
			}
			
			dataArray[tempArray['id']]=tempArray;
		}
	}
	
	return dataArray;
}

function pushingExchange(element, newContent, amountOfPixelsToMove)
{
	amountOfPixelsToMove*=-1;
	
	if(dynDiv[element+'New']!=null) var oldContent=dynDiv[element+'New'].innerHTML;
	
	// Content Container
	dynDiv[element+'Container']=document.createElement("dynDivPageContainer");
	dynDiv[element+'Old']=document.createElement("dynDivPageLeft");
	dynDiv[element+'New']=document.createElement("dynDivPageRight");
	
	var container=dynDiv[element+'Container'];
	var oldDiv=dynDiv[element+'Old'];
	var newDiv=dynDiv[element+'New'];
	
	
	container.style.display="block";
	
	if(amountOfPixelsToMove>0)
	{
		container.style.marginLeft=0;
		container.style.pushMarginLeft=0;
		targetX=-800;
		
		oldDiv.style.styleFloat='left';
		oldDiv.style.cssFloat='left';
		newDiv.style.styleFloat='right';
		newDiv.style.cssFloat='right';
	}
	else
	{
		container.style.marginLeft=-800;
		container.style.pushMarginLeft=-800;
		targetX=0;
		
		oldDiv.style.styleFloat='right';
		oldDiv.style.cssFloat='right';
		newDiv.style.styleFloat='left';
		newDiv.style.cssFloat='left';
	}
	
	if(oldContent==null) oldDiv.innerHTML=document.getElementById(element).innerHTML;
	else oldDiv.innerHTML=oldContent;
	
	newDiv.innerHTML=newContent;
	
	container.style.vAlign="top";
	container.style.width='1600px';
	
	oldDiv.style.width='800px';
	oldDiv.style.display='block';
	
	newDiv.style.width='800px';
	
	// Anzeigen
	container.innerHTML="";
	container.appendChild(oldDiv);
	container.appendChild(newDiv);
	
	document.getElementById(element).innerHTML="";
	document.getElementById(element).appendChild(container);
	
	container.style.pushIntervalObject=window.setInterval('pushDynDiv(\''+element+'\', '+amountOfPixelsToMove+', '+targetX+');', 10);
}

function pushDynDiv(elementId, px, posX)
{
	var el=dynDiv[elementId+'Container'];
	
	if(px>0 && (el.style.pushMarginLeft-px)<posX)
	{
		clearInterval(el.style.pushIntervalObject);
		px=(el.style.pushMarginLeft-posX);
		
		dynDiv[elementId+'Old'].style.display='none';
	}
	else if(px<0 && (el.style.pushMarginLeft-px)>posX)
	{
		clearInterval(el.style.pushIntervalObject);
		px=(el.style.pushMarginLeft-posX);
		
		dynDiv[elementId+'Old'].style.display='none';
	}
	
	el.style.pushMarginLeft-=px;
	el.style.marginLeft=el.style.pushMarginLeft;
}
