/*NAV-Funktionen*/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function loeschen(url, id) {
	abfrage = confirm('Sind Sie sich sicher?');
	if (abfrage) {
		window.location.href = url+id;
	}
}

/* Tooltip */
var tooltip = null;

function showtt(id) {
	tooltip = getElement(id);
	tooltip.style.display = "block";
	tooltip.style.left = MouseX+10 + "px";
	tooltip.style.top = MouseY+10 + "px";
}
function showkk(id) {
	tooltip = getElement(id);
	tooltip.style.display = "block";
}
function hidett() {
	tooltip.style.display = "none"; 
}

//<![CDATA[

/* S E T T I N G S */

// IE Ident
var IE = (document.all) ? true : false;


/* I N I T */
var xHttp = false;
var xHttpObj = false;
var MouseX = false;
var MouseY = false;

// Status-Leiste
window.defaultStatus = '';


/* H A N D L E R */

// onMouseMove -> saveMousePos
if(!IE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = saveMousePos;


/* F U N C T I O N S */

// getElement( id ) --> obj
function getElement(id) {
	if (IE) return document.all[id];
	else return document.getElementById(id);
}

// getFormPostValues( id )
function getFormPostValues(id) {
	if (id) {
		var str = "";
		var trenner = "";
		var frm = getElement(id);
		// input
		for (i = 0; i < frm.getElementsByTagName("input").length; i++) {
			str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
			trenner = "&";
			//alert("Input "+i+": "+frm.getElementsByTagName("input")[i].value);
		}
		// select
		for (i = 0; i < frm.getElementsByTagName("select").length; i++) {
			str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
			trenner = "&";
			//alert("Select "+i+": "+frm.getElementsByTagName("input")[i].value);
		}
		// textarea
		for (i = 0; i < frm.getElementsByTagName("textarea").length; i++) {
			str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
			trenner = "&";
			//alert("Textarea "+i+": "+frm.getElementsByTagName("input")[i].value);
		}
		//alert(str);
		return str;
	} else return false;
}

// getFormGetValues( id )
function getFormGetValues(id) {
	var str = "";
	var trenner = "&";
	frm = getElement(id);
	// input
	for (i = 0; i < frm.getElementsByTagName("input").length; i++) {
		str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
		//alert("Input "+i+": "+frm.getElementsByTagName("input")[i].value);
	}
	// select
	for (i = 0; i < frm.getElementsByTagName("select").length; i++) {
		str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
		//alert("Select "+i+": "+frm.getElementsByTagName("input")[i].value);
	}
	// textarea
	for (i = 0; i < frm.getElementsByTagName("textarea").length; i++) {
		str += trenner+frm.getElementsByTagName("input")[i].id+"="+frm.getElementsByTagName("input")[i].value;
		//alert("Textarea "+i+": "+frm.getElementsByTagName("input")[i].value);
	}
	//alert(str);
	return str;
}

// saveMousePos( e )
function saveMousePos(e) {
	if (IE) {
		if (document.documentElement) {	
			MouseX = window.event.x + document.documentElement.scrollLeft;
			MouseY = window.event.y + document.documentElement.scrollTop;
		} else {
			MouseX = window.event.x + document.body.scrollLeft;
			MouseY = window.event.y + document.body.scrollTop;
		}
	} else {
		MouseX = e.pageX;
		MouseY = e.pageY;
	}
	//window.status = "x: "+MouseX+" y: "+MouseY;
}

// xHttpInit()
function xHttpInit() {
	// xHttp initialisieren
	if (!xHttp) {
		try {
			// IE 6.x
			xHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				// IE 5.x
				xHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xHttp = false;
			}
		}	
		// Mozilla, Opera, Safari
		if (!xHttp && typeof XMLHttpRequest != "undefined") {
			xHttp = new XMLHttpRequest();
		}
	}
}

// xHttpFormSend ( script, frmId )
function xHttpFormSend(script, frmId) {
	if (!xHttp) {
		// xHttpInit
		xHttpInit();
	}
	
	if (xHttp) {
		// id
		xHttpObj = getElement("rest");
		
		// send
		send = getFormPostValues(frmId);

		// onLoad Handler
		if (!IE) {
			xHttp.onload=xHttpCallback;
		} else {
			xHttp.onreadystatechange=xHttpCallback;
		}
		
		// Asynchronen Request vorbereiten
		xHttp.open("POST", script, false);

		// Send
		xHttp.send(send);
		
		// Return
		return true;		
	}
	getElement('msg').innerHTML = "Es konnte keine Verbindung zum Aktions-Skript aufgebaut werden.<br>\nSollten Sie den Microsoft Internet Explorer benutzen, vergewissern Sie sich, das Active-X aktiviert ist.<br>\n";
	return false;
}

// xHttpSend ( script, [id = false] , [method = "GET"] , [send = ""])
function xHttpSend(script) {
	if (!xHttp) {
		// xHttpInit
		xHttpInit();
	}
	//alert(script);
	// xHttp Verarbeitung
	if (xHttp) {
		// id
		if (xHttpSend.arguments[1]) xHttpObj = getElement(xHttpSend.arguments[1]);
		else xHttpObj = getElement("rest");
		
		// Method
		method = "GET";
		if (xHttpSend.arguments[2] == "POST") method = "POST";
				
		// send
		send = "";
		if (xHttpSend.arguments[3]) send = xHttpSend.arguments[3];

		// onLoad Handler
		if (!IE) {
			xHttp.onload=xHttpCallback;
		} else {
			xHttp.onreadystatechange=xHttpCallback;
		}
		
		// Asynchronen Request vorbereiten
		xHttp.open(method, script, false);

		// Send
		xHttp.send(send);
		
		// Return
		return true;	
	}
	getElement('msg').innerHTML = "Es konnte keine Verbindung zum Aktions-Skript aufgebaut werden.<br>\nSollten Sie den Microsoft Internet Explorer benutzen, vergewissern Sie sich, das Active-X aktiviert ist.<br>\n";
	return false;
}


// xHttpCallback
function xHttpCallback() {	
	// Werden Reguläre Expressions unterstützt.
	if(window.RegExp == null) {
		getElement('msg').innerHTML = "Ihr Browser ist leider für diese Technologie veraltet.<br>\n";
		return false;
	} else {
		if (xHttp && xHttp.readyState == 4) {
			// Status überprüfen
			if (xHttp.status != 200) {
				// Fehlermeldung
				getElement('msg').innerHTML = "Die Aktion konnte nicht ausgeführt werden. Status: "+xHttp.status+"<br>\n";
			} else {
				//alert(xHttp.responseText);
				var text = xHttp.responseText.replace(/\n/gi, "");
				// Ausgabe bearbeiten --> Div bezogene Ausgabe
				var txt;
				for (k = 0; k < 3; k++) {
					switch(k) {
						case 1: {
							txt = "\\-";
							break;
						}
						case 2: {
							txt = "\\+";
							break;
						}
						default: {
							txt = "";
							break;
						}
					}
					
					for (i = 0; i < document.getElementsByTagName("div").length; i++) {
						// Pattern erstellen
						pattern = new RegExp('\\['+txt+document.getElementsByTagName("div")[i].id+'\\](.*?)\\[/'+document.getElementsByTagName("div")[i].id+'\\]', 'gi');
						pattern2 = new RegExp('\\['+txt+document.getElementsByTagName("div")[i].id+'\\](.*?)\\[/'+document.getElementsByTagName("div")[i].id+'\\]', 'i');
						// Nach SDCodes suchen
						var message = text.match(pattern);
						// Wenn gefunden
						if (message) {
							// Message in Div schreiben
							obj = getElement(document.getElementsByTagName("div")[i].id);
							for (j = 0; j < message.length; ++j) {
								// Nach Inhalt suchen
								var msg = message[j].match(pattern2);
								// Inhalt in DIV setzen
								switch(k) {
									case 1: {
										obj.innerHTML = msg[1]+"<br>\n"+obj.innerHTML;
										break;
									}
									
									case 2: {
										obj.innerHTML = msg[1]+"<br>\n";
										break;
									}
									
									default: {
										obj.innerHTML = obj.innerHTML+msg[1]+"<br><br>\n";
										break;
									}
								}
								// Inhalt aus ResponseText löschen
								text = text.replace(message[j], "");
							}
						}
					}
				}
				// Default Ausgabe --> Objekt Bezogen
				if (text.length) xHttpObj.innerHTML = xHttpObj.innerHTML+text;
			}
		}
	}
}

//]]>
