/**************************************************************************
 *
 * Dateiname:   efis.js
 *
 *Version	 Datum:      Autor:
 *17.00						Striezel
 **************************************************************************
 *
 * Beschreibung:  Verschiedene allg. Fkts. die haeufiger benoetigt werden,
 *						wie z.B. Hinweis und Meldungsfenster
 *
 **************************************************************************
 *
 * Bereitgestellte Funktionen:  
 *
 **************************************************************************
 *
 *	Aenderungsjournal:
 *Version	Datum		Wer 
 *18.00	07.05.08	Wusel		Meldungstexte in bezlib_de ausgelagert
 *18.01	13.05.08 Wusel		msg0004 -> allg_0004
 *18.02	19.05.08 DDietz	trim(s) --> abgefangen, dass es zu Fehlern
 *									fuehrt, wenn der Funktion NULL uebergeben wird.
 *18.03	20.06.08	DDietz	Wochentage in getWeekDay() werden nun aus der
 *									bezlib geholt.
 *18.04	30.06.08	DDietz	machDunkel() -> halbtransparenter Hintergrund
 *									--> kann man mit removeCustomAlert wieder
 *										 entfernen
 *18.05	30.07.08 Wusel		Die Fkt. getElementsBNEx(field) neu
 *									Fuer unsere lieben IEs ;o)
 *									Bei getElementsByName geben diese nicht nur
 *									Elemente mit dem gesuchten Namen zurueck, sondern
 *									auch Elemente deren ID dem gesuchten Namen 
 *									entspricht. -> Die Fkt. gibt das Element mit
 *									dem gesuchten Namen zurueck.
 *18.06	25.08.08 Wusel		montag gegen allg_0120 ausgetauscht.
 *									dienstag gegen allg_0121 ausgetauscht.
 *									mittwoch gegen allg_0122 ausgetauscht.
 *									donnerstag gegen allg_0123 ausgetauscht.
 *									freitag gegen allg_0124 ausgetauscht.
 *									samsatg gegen allg_0125 ausgetauscht.
 *									sonntag gegen allg_0126 ausgetauscht.
 *			01.09.08 DDietz	Funktion basename () eingebaut
 *			02.09.08 DDietz	* try-catch-Behandlung in aufraeumen () eingebaut
 *									* aufraeumen ausser kraft gesetzt, da derzeit
 *									  nicht verwendet.
 *18.07	15.12.08	Wusel		Funktion createTTInfo() neu. Pausenbelustigung
 *									per ToolTip. Nach und nach sollen alle darauf
 *									umgestellt werden.
 *			16.12.08 DDietz	disable_select() eingebaut.
 *18.08	26.01.09	DDietz	Der trim() umfasst jetzt auch die Eliminierung
 *									von Zeilenumbruechen.
 *			29.01.09 Wusel		reqShowContent(): Uebergabeparameter angepasst,
 *									so dass diese Funktion die Details fuer alle
 *									Listenservices bereitstellen koennen sollte.
 *			02.02.09 Wusel		In reqShowContent() wird nun in der Laufnummer
 *									nach einem "+" gesucht und dieses durch "%2B"
 *									ersetzt, damit am anderen Ende der Ajax-Anfrage
 *									das "+" erhalten bleibt.
 **************************************************************************/

/* <globale Variablen> */
try {
	if (releasenotes) {
		var framewatch = false;
		var rightlock  = false;
	}
	else {
		var framewatch = true;
		var rightlock  = false;
	}
}
catch (ex) {
	var framewatch = true;
	var rightlock  = false;
}

var noerrors = false;

var formfield;
var firstelem;
var summe;
var b_sum;
var m_sum;
/* </globale Variablen> */

/*
 * Sperre, falls versucht wird,
 * das Portal in ein fremdes Frameset einzubinden.
 */
if(!top.titel && framewatch)
	top.location.href = './index.php';

if (noerrors)
	document.onerror = function (e) { return false; }

function inArray (needle, haystack)
{
	for (i=0; i<haystack.length; i++)
	{
		if (needle == haystack[i])
		{
			return true;
		}
	}
	return false;
}

function aufraeumen ()
{
	return;
	var elemtags = new Array ("a", "iframe", "input", "div", "span", "p", "form", "tr", "td", "table");
	//var elemtags = new Array ("div", "a");

	for (var x=0; x < elemtags.length; x++)
	{
		try {
//			elems = document.getElementsByTagName(elemtags[x]);
		} catch (ex) { }
		for (var y=0; y < elems.length; y++)
		{
			try {
				//$(elems[y].getAttribute('id')).expandoProperty = null;
			} catch (ex) { }
		}
	}
}

function setFrameWatch (parameter)
{
	this.framewatch = parameter;
}

function setRightLock (parameter)
{
	this.rightlock = parameter;
}

/* <Ermittelt den Basename einer Datei> */
function basename (pfad)
{
	var base = pfad.match(/[\/|\\]([^\\\/]+)$/);
	return base[1];
}

function getX (obj, relative) {
	var x=0;
	if (typeof (obj) == "object" && document.getElementById) {
		x = obj.offsetLeft;
		if (obj.offsetParent && !relative) {
			x += getX (obj.offsetParent);
		}
		return x;
	} else {
		return false;
	}
}

function getY (obj, relative) {
	var y = 0;
	if (typeof (obj) == "object" && document.getElementById) {
		y = obj.offsetTop;
		if (obj.offsetParent && !relative) {
			y+=getY (obj.offsetParent);
		}
		return y;
	} else {
		return false;
	}
}

/*
 * Abschalten der Moeglichkeit Texte zu markieren - Anfang
 */
function disable_select ()
{
	//if IE4+
	document.onselectstart = new Function ("return false");

	//if NS6
	if (window.sidebar) {
  		document.onmousedown = disableselect;
  		document.onclick     = reEnable;
	}
}

function disableselect (e)
{
	return false;
}

function reEnable ()
{
	return true;
}
/*
 * Abschalten der Moeglichkeit Texte zu markieren - Ende
 */

function machDunkel ()
{
	if(document.getElementById("modalContainer")) return;
	
	var objectArray = new Array();
	
	objectArray["iframeObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
	objectArray["iframeObj"].id = "iframe1";
	objectArray["iframeObj"].name = "iframe1";
	objectArray["iframeObj"].src = "";
	objectArray["iframeObj"].style.top = "0";
	objectArray["iframeObj"].style.left = "0";
	objectArray["iframeObj"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["iframeObj"].style.width = document.documentElement.scrollWidth + "px";
	objectArray["iframeObj"].style.zIndex = "5";
	objectArray["iframeObj"].style.position = "absolute";
	objectArray["iframeObj"].style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";

	objectArray["backgrnd"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["backgrnd"].id = "greyDiv";
	objectArray["backgrnd"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["backgrnd"].style.width = document.documentElement.scrollWidth + "px";
	
	objectArray = null;
}

Function.prototype.closure = function() {
    if(!window.__funcs) window.__funcs = [];
 window.__funcs.push(this);
    return function () {
 return window.__funcs[window.__funcs.length - 1].apply(null, arguments);
    };
};

function createCustomAlert(titel, txt, p)
{
	var ALERT_TITLE = titel;
	var ALERT_BUTTON_TEXT = "Ok";
	if(document.getElementById("modalContainer")) return;
	
	var objectArray = new Array();
	
	objectArray["iframeObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
	objectArray["iframeObj"].id = "iframe1";
	objectArray["iframeObj"].name = "iframe1";
	objectArray["iframeObj"].src = "";
	objectArray["iframeObj"].style.top = "0";
	objectArray["iframeObj"].style.left = "0";
	objectArray["iframeObj"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["iframeObj"].style.width = document.documentElement.scrollWidth + "px";
	objectArray["iframeObj"].style.zIndex = "5";
	objectArray["iframeObj"].style.position = "absolute";
	objectArray["iframeObj"].style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
	

	objectArray["backgrnd"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["backgrnd"].id = "greyDiv";
	objectArray["backgrnd"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["backgrnd"].style.width = document.documentElement.scrollWidth + "px";

	objectArray["mObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["mObj"].id = "modalContainer";
	objectArray["mObj"].style.height = document.documentElement.scrollHeight + "px";

	objectArray["alertObj"] = objectArray["mObj"].appendChild(document.createElement("div"));
	objectArray["alertObj"].id = "alertBox";
	//alert('documentElement.scrollTop Hoehe '+document.documentElement.scrollTop);
	if(document.all && !window.opera) objectArray["alertObj"].style.top = document.documentElement.scrollTop + "px";
	objectArray["alertObj"].style.left = (document.documentElement.scrollWidth - objectArray["alertObj"].offsetWidth)/2 + "px";

	objectArray["h1"] = objectArray["alertObj"].appendChild(document.createElement("h1"));
	objectArray["h1"].id = "hEins";
	objectArray["h1"].appendChild(document.createTextNode(ALERT_TITLE));

	objectArray["msg"] = objectArray["alertObj"].appendChild(document.createElement("p"));
	objectArray["msg"].id = "pElement";
	objectArray["msg"].appendChild(document.createTextNode(txt));
	if(document.all && !window.opera && p)
	{
		objectArray["msg"] = objectArray["alertObj"].appendChild(document.createElement("p"));
		objectArray["msg"].appendChild(document.createElement("br"));
	}

	objectArray["alertObj"].style.display      = "block";
	objectArray["alertObj"].style.visiblity="visible";
	
	objectArray = null;
	ALERT_TITLE = null;
	ALERT_BUTTON_TEXT = null;
}

function addEvent (obj, type, fn)
{
	if (obj.addEventListener)
		obj.addEventListener (type, fn, false);
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj.attachEvent ("on"+type, obj["e"+type+fn]);
	}
}

function removeEvent (obj, type, fn)
{
	if (obj.detachEvent) {
		obj.detachEvent ("on"+type, obj["e"+type+fn]);
		obj["e"+type+fn] = null;
	}
	else if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
}

function createCustomConfirm (titel, txt, button1, button2, func)
{
	if (isEmpty (func))
		func = false;
		
	/*
	 * Confirm-Dialog, der die Antwort in die Funktion confirmAnsw() uebergibt
	 */
	var expression         = /(\w*)=(.*)/;
	var ALERT_TITLE        = titel;

	if(document.getElementById("modalContainer")) return;
	
	var objectArray = new Array();
	
	objectArray["iframeObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
	objectArray["iframeObj"].id = "iframe1";
	objectArray["iframeObj"].name = "iframe1";
	objectArray["iframeObj"].src = "";
	objectArray["iframeObj"].style.top = "0";
	objectArray["iframeObj"].style.left = "0";
	objectArray["iframeObj"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["iframeObj"].style.width = document.documentElement.scrollWidth + "px";
	objectArray["iframeObj"].style.zIndex = "5";
	objectArray["iframeObj"].style.position = "absolute";
	objectArray["iframeObj"].style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
	
	objectArray["background"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["background"].id = "greyDiv";
	objectArray["background"].style.height = document.documentElement.scrollHeight + "px";

	objectArray["mObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["mObj"].id = "modalContainer";
	objectArray["mObj"].style.height = document.documentElement.scrollHeight + "px";
	
	objectArray["alertObj"] = objectArray["mObj"].appendChild(document.createElement("div"));
	objectArray["alertObj"].id = "alertBox";
	if(document.all && !window.opera) objectArray["alertObj"].style.top = document.documentElement.scrollTop + "px";
	objectArray["alertObj"].style.left = (document.documentElement.scrollWidth - objectArray["alertObj"].offsetWidth)/2 + "px";
	objectArray["alertObj"].style.visiblity="visible";
  
	objectArray["h1"] = objectArray["alertObj"].appendChild(document.createElement("h1"));
	objectArray["h1"].appendChild(document.createTextNode(ALERT_TITLE));

	objectArray["msg"] = objectArray["alertObj"].appendChild(document.createElement("p"));
	objectArray["msg"].appendChild(document.createTextNode(txt));

	objectArray["tableObj"] = objectArray["alertObj"].appendChild(document.createElement("table"));
	objectArray["tableObj"].align = 'center';
	objectArray["tbodyObj"] = objectArray["tableObj"].appendChild(document.createElement("tbody"));
	objectArray["trObj"] = objectArray["tbodyObj"].appendChild(document.createElement("tr"));

	var result             = expression.exec(button1);

	var ALERT_BUTTON_TEXT1 = (isEmpty(result[1]))?"OK":result[1];
	var ALERT_BUTTON_FKT1  = (isEmpty(result[2]))?"NULL":result[2];
	objectArray["td1"]     = objectArray["trObj"].appendChild(document.createElement("td"));
	objectArray["btn1"]    = objectArray["td1"].appendChild(document.createElement("a"));
	objectArray["btn1"].id                = "closeBtn";
	objectArray["btn1"].name              = "closeBtn";
	objectArray["btn1"].appendChild (document.createTextNode(ALERT_BUTTON_TEXT1));
	objectArray["btn1"].href              = "#";
	if (!func) {
		objectArray["btn1"].onclick        = function()
		{
			removeCustomAlert ();
			confirmAnsw (ALERT_BUTTON_FKT1);
			return false;
		};
	}
	else {
		objectArray["btn1"].onclick        = function () { removeCustomAlert();return false; }.closure();
	}

	if (!isEmpty (button2)) {
		var result             = expression.exec(button2);
		var ALERT_BUTTON_TEXT2 = (isEmpty(result[1]))?"Abbruch":result[1];
		var ALERT_BUTTON_FKT2  = (isEmpty(result[2]))?"NULL":result[2];
		objectArray["td2"] = objectArray["trObj"].appendChild(document.createElement("td"));
		objectArray["btn2"] = objectArray["td2"].appendChild(document.createElement("a"));
		objectArray["btn2"].id = "closeBtn";
		objectArray["btn2"].name = "closeBtn";
		objectArray["btn2"].appendChild(document.createTextNode(ALERT_BUTTON_TEXT2));
		objectArray["btn2"].href = "#";
		objectArray["btn2"].onclick = function() { removeCustomAlert();confirmAnsw(ALERT_BUTTON_FKT2);return false; }.closure();
	}
	objectArray["alertObj"].style.display      = "block";
	
  objectArray = null;
}

function createCustomAlertHinweis(titel, txt, button, warnung)
{
	var ALERT_TITLE = titel;
	var button = button.split("=");
	var ALERT_BUTTON_TEXT = button[0];
	var buttonAction = button[1];
	if(document.getElementById("modalContainer")) return;
	
	var objectArray = new Array();
	
	objectArray["iframeObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
	objectArray["iframeObj"].id = "iframe1";
	objectArray["iframeObj"].name = "iframe1";
	objectArray["iframeObj"].src = "";
	objectArray["iframeObj"].style.top = "0";
	objectArray["iframeObj"].style.left = "0";
	objectArray["iframeObj"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["iframeObj"].style.width = document.documentElement.scrollWidth + "px";
	objectArray["iframeObj"].style.zIndex = "5";
	objectArray["iframeObj"].style.position = "absolute";
	objectArray["iframeObj"].style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
	
	objectArray["backgrnd"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["backgrnd"].id = "greyDiv";
	objectArray["backgrnd"].style.height = document.documentElement.scrollHeight + "px";

	objectArray["mObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["mObj"].id = "modalContainer";
	objectArray["mObj"].style.height = document.documentElement.scrollHeight + "px";
	
	objectArray["alertObj"] = objectArray["mObj"].appendChild(document.createElement("div"));
	if (!warnung)
	{
	objectArray["alertObj"].id = "alertBox";
	}else
	{
	objectArray["alertObj"].id = "alertBoxW";
	}
	if(document.all && !window.opera) objectArray["alertObj"].style.top = document.documentElement.scrollTop + "px";
	objectArray["alertObj"].style.left = (document.documentElement.scrollWidth - objectArray["alertObj"].offsetWidth)/2 + "px";
	objectArray["alertObj"].style.visiblity="visible";
  
	objectArray["h1"] = objectArray["alertObj"].appendChild(document.createElement("h1"));
	objectArray["h1"].appendChild(document.createTextNode(ALERT_TITLE));

	objectArray["msg"] = objectArray["alertObj"].appendChild(document.createElement("p"));
	objectArray["msg"].appendChild(document.createTextNode(txt));

	objectArray["tableObj"] = objectArray["alertObj"].appendChild(document.createElement("table"));
  objectArray["tableObj"].align = 'center';
  objectArray["tbodyObj"] = objectArray["tableObj"].appendChild(document.createElement("tbody"));
  objectArray["trObj"] = objectArray["tbodyObj"].appendChild(document.createElement("tr"));

	objectArray["td1"] = objectArray["trObj"].appendChild(document.createElement("td"));
	objectArray["btn"] = objectArray["td1"].appendChild(document.createElement("a"));
	objectArray["btn"].id = "closeBtn";
	objectArray["btn"].name = "closeBtn";
	objectArray["btn"].appendChild(document.createTextNode(ALERT_BUTTON_TEXT));
	objectArray["btn"].href = "#";
	//objectArray["btn"].focus();
	if (isEmpty (buttonAction))
		objectArray["btn"].onclick = function () { removeCustomAlert();return false; };
	else
		objectArray["btn"].onclick = function () { eval(buttonAction);return false; };

	objectArray["alertObj"].style.display      = "block";
	
	objectArray = null;
}


/***************************************************************
* Ersetzt die CustomAlerts die bisher verwndet werden, da hier
* das DOM-Modell nicht mehr benoetigt wird, sondern der Inhalt
* in HTML geschrieben werden kann. Da gerade der IE das 
* Modell nicht vollstendig umsetzen kann. (-> setAttribute()) 
*
*  @param      String   title  	Inhalt der Ueberschriftszeile 
*											des ToolTips. 
*  @param      String   content  Inhalt des ToolTips in HTML.
*											Kann enthalteni was man so in
*											einer Meldung fuer den Anwender
*											benoetigt. 
*  @return     ---
****************************************************************/
function createTTInfo(title, content){
	var tipCont = "<p>"+content+"</p>";
	Tip (tipCont, TITLE, title,
		TEXTALIGN, 'center', TITLEALIGN, 'center', STICKY, true,
		CENTERWINDOW, true, CENTERALWAYS, true, FONTSIZE, '30pt',
		FADEIN, 200, FADEOUT, 200, TITLEFONTCOLOR, '#ffffe2',
		TITLEBGCOLOR, '#78919B', TITLEFONTSIZE, '11pt', BGCOLOR, '#ffffe2',
		CLICKCLOSE, false, BORDERCOLOR, '#404040', FONTCOLOR, '#000000',
		FOLLOWMOUSE, false);

}

/***************************************************************
*	Initiiert die Ajax-Anfrage fuer die Anzeige der Details des
*	ausgewaehlten Satzes.
*  WICHTIG!!!: Im jeweilligen Service muss es eine Funktion
*					geben, die reqShowCont() heisst und die
*					Laufendenummer eines Satzes erwartet.
*					Diese Funktion ruft mit den unten aufgefuehrten
*					Parametern direkt diese Funktion hier auf.
*					-> reqShowCont() wird direkt ueber den Button
*					aufgerufen und dieser wird in der pmore1.php
*					zusammengebaut (allgemeingueltig).
*
*	@param		String	showzeile	enthaelt die Laufnummer des
*												Satzes mit dem Format
*	@param		String	adr			Beinhaltet die Adresse fuer
*												das Skript welches die 
*												Ajax-Anfrage beantworten 
*												soll.
*	@param		int		mwidth		Hoehe des Main-Frames
*	@param		int		mheight		Breite des Main-Frames
*	@param		boolean	iphone		iphone oder nicht, dass ist
*												hier die Frage!
*	@return		---
****************************************************************/
function reqShowContent(showzeile, adr, mwidth, mheight, iphone){

	document.body.style.cursor='wait';

	/*Fuer alles was kein iPhone ist den grauen Hintergrund einblenden.
	*/
	if(!iphone){
		machDunkel();
	}

	/* Nun die passende Hoehe und Breite fuer den ToolTip berechnen 
		und diesen dann anzeigen.
	*/
	var iheight = mheight - 50;
	var iwidth = mwidth - 50;

	createTTInfo(allg_0032,allg_0033);
//alert("showzeile: " + showzeile);
	var params  = "showzeile=" + showzeile.replace( /\+/g, "%2B" );
//alert("adr: " + adr);
	var hreq = getAjaxObject (adr, params);
	var details = "";
	hreq.onreadystatechange = function ()
	{
		if ((hreq.readyState == 4) && (hreq.status == 200)){
			document.body.style.cursor = "default";
			tt_HideInit();
			details = hreq.responseText;
			var uffz = " \
				<table cellpadding='5' cellspacing='5' border='0' align='center' \
						summary='' width='100%' height='100%' class='bodymenutable' id='fileshow'> \
					<tr height='90%'> \
						<td style='background-color:#ffffff;border-width:3px;border-style:inset;border-color:#ffffff;'> \
							<iframe name='contFrame' src='"+details+"' frameborder='0' scrolling='off'\
								marginheight='0' marginwidth='0' height='"+iheight+"px' width='"+iwidth+"px'> \
							</iframe> \
						</td> \
					</tr> \
					<tr> \
						<td> \
							<input type='button' name='zurueck' value='"+But_back+"' onfocus='this.blur()' \
								align='center' class='menubutton_neutral' onclick='tt_HideInit();removeCustomAlert()'> \
						</td> \
					</tr> \
				</table>";

			Tip (uffz, TITLE, 'Details',
				 TEXTALIGN, 'center', TITLEALIGN, 'center',STICKY, true,
			 	CENTERWINDOW, true, CENTERALWAYS, false, CLOSEBTN, true,
			 	FADEIN, 200, FADEOUT, 200, TITLEFONTCOLOR, '#ffffe2',
			 	TITLEBGCOLOR, '#78919B', TITLEFONTSIZE, '11pt', BGCOLOR, '#ffffe2',
			 	CLICKCLOSE, false, BORDERCOLOR, '#404040', FONTCOLOR, '#000000',
			 	FOLLOWMOUSE, false, FOLLOWSCROLL, false);
		}
		else if (hreq.status != 200){
			details = "Fehler!";
		}
		else{
//			details = "aktualisiere...";
		}
	};
}
				
function getWeekDay(dd,mm,yyyy)
{
	var month = "312831303130313130313031";
	var days = (yyyy-1)*365 + (dd-1);
	for(var i=0;i<mm-1;i++) days += month.substr(i*2,2)*1;
	if(yyyy>1582 || yyyy==1582 && (mm>10 || mm==10 && dd >4)) days -= 10;
	var leapyears = Math.floor(yyyy / 4);
	if(yyyy%4==0 && mm<3) leapyears--;
	if(yyyy>=1600) {
		leapyears -= Math.floor((yyyy-1600) / 100);
		leapyears += Math.floor((yyyy-1600) / 400);
		if(yyyy%100==0 && mm<3) {
			leapyears++; 
			if(yyyy%400==0) leapyears--;
		}
	}
	days += leapyears;

//	var week = "SaSoMoDiMiDoFr";
	var week = new Array (allg_0125, allg_0126, allg_0120, allg_0121,
								 allg_0122, allg_0123, allg_0124);
	return week[days%7];
}

function createCustomAlertVar(titel, elem, button, posturl, styleElem)
{
	var ALERT_TITLE = titel;
//	var ALERT_BUTTON_TEXT = button;
	if(document.getElementById("modalContainer")) return;
		
  var objectArray = new Array();
	
	objectArray["iframeObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
	objectArray["iframeObj"].id = "iframe1";
	objectArray["iframeObj"].name = "iframe1";
	objectArray["iframeObj"].src = "";
	objectArray["iframeObj"].style.top = "0";
	objectArray["iframeObj"].style.left = "0";
	objectArray["iframeObj"].style.height = document.documentElement.scrollHeight + "px";
	objectArray["iframeObj"].style.width = document.documentElement.scrollWidth + "px";
	objectArray["iframeObj"].style.zIndex = "5";
	objectArray["iframeObj"].style.position = "absolute";
	objectArray["iframeObj"].style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
	
	objectArray["backgrnd"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["backgrnd"].id = "greyDiv";
	objectArray["backgrnd"].style.height = document.documentElement.scrollHeight + "px";

	objectArray["mObj"] = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	objectArray["mObj"].id = "modalContainer";
	objectArray["mObj"].style.height = document.documentElement.scrollHeight + "px";
  
	objectArray["formObj"] = objectArray["mObj"].appendChild(document.createElement("form"));
	objectArray["formObj"].name = "alertForm";
	objectArray["formObj"].id = "alertForm";
	objectArray["formObj"].method="POST";
	objectArray["formObj"].enctype="multipart/form-data";
	objectArray["formObj"].encoding="multipart/form-data";
	//formObj.onsubmit="return checkAjaxForm()";
	objectArray["formObj"].target="hiddeniframe";
	
  if (posturl == "undefined")
	{
    objectArray["formObj"].action = "";
  }
  else
  {
    objectArray["formObj"].action = posturl;
  }

	objectArray["alertObj"]    = objectArray["formObj"].appendChild(document.createElement("div"));
	objectArray["alertObj"].id = (isEmpty (styleElem))?"alertBox":styleElem;

	if(document.all && !window.opera) objectArray["alertObj"].style.top = document.documentElement.scrollTop + "px";
	objectArray["alertObj"].style.left = (document.documentElement.scrollWidth - objectArray["alertObj"].offsetWidth)/2 + "px";
	//alertObj.style.visiblity="visible";
  
	objectArray["h1"] = objectArray["alertObj"].appendChild(document.createElement("h1"));
	objectArray["h1"].appendChild(document.createTextNode(ALERT_TITLE));

	objectArray["msg"] = objectArray["alertObj"].appendChild(document.createElement("p"));
	objectArray["msg"].id= "text";

	for(var i=0; i < elem.length; i++){
		objectArray["msg"].appendChild(elem[i]);
	}

	objectArray["br1"] = objectArray["alertObj"].appendChild(document.createElement("br"));
	objectArray["br2"] = objectArray["alertObj"].appendChild(document.createElement("br"));
  
  objectArray["tableObj"] = objectArray["alertObj"].appendChild(document.createElement("table"));
  objectArray["tableObj"].align = 'center';
  objectArray["tbodyObj"] = objectArray["tableObj"].appendChild(document.createElement("tbody"));
  objectArray["trObj"] = objectArray["tbodyObj"].appendChild(document.createElement("tr"));
  
  	for(var i=0; i < button.length; i++){
  	 objectArray["td"] = objectArray["trObj"].appendChild(document.createElement("td"));
	   objectArray["td"].appendChild(button[i]);
   	}

	objectArray["alertObj"].style.display = "block";
	objectArray["alertObj"].style.visiblity="visible";
	
  objectArray = null;
  ALERT_TITLE = null;
}

function removeChildNodes(children)
{
try{
  for(node in children)
  {
    var myNode = children[node];
    if ( myNode.hasChildNodes )
    {
        removeChildNodes(myNode.childNodes);
        while ( myNode.childNodes.length >= 1 )
        { 
        if (myNode.firstChild.onclick)
        {
          myNode.firstChild.onclick = null;
        }
        if (myNode.firstChild.action)
        {
          myNode.firstChild.action = null;
        }
          myNode.removeChild( myNode.firstChild );       
        } 
    }
  }
  children = null;
  }catch(ex){
  alert("An exception occurred in removeChildNodes. Error name: " + ex.name
+ ". Error message: " + ex.message);
  }
}

/***************************************************************
*  Laesst den grauen Hintergrund wieder verschwinden.
*
*  @param      ---
*  @return     ---
****************************************************************/
function machHell() {
//alert("machHell");
	try{
		children = document.getElementById("greyDiv").childNodes;
		removeChildNodes(children);
		document.getElementsByTagName("body")[0].removeChild(document.getElementById("greyDiv"));
	}
	catch(ex){
		alert("An exception occurred in the script. Error name: " + ex.name
		+ ". Error message: " + ex.message);
	}

	try{
		children = document.getElementById("iframe1").childNodes;
		removeChildNodes(children);
		document.getElementsByTagName("body")[0].removeChild(document.getElementById("iframe1"));
	}
	catch(ex){
		alert("An exception occurred in the script. Error name: " + ex.name
		+ ". Error message: " + ex.message);
	}

	children = null;
}


/***************************************************************
*  Laesst die verschiedenen Varianten der Alerts wieder 
*	verschwinden und blendet den dunklen Hintergrund wieder aus.
*
*  @param      ---
*  @return     ---
****************************************************************/
function removeCustomAlert() {
try{
var children = document.getElementById("modalContainer").childNodes;
removeChildNodes(children);
document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
}
catch(ex){
//alert("An exception occurred in the script. Error name: " + ex.name
//+ ". Error message: " + ex.message);
}

try{
children = document.getElementById("greyDiv").childNodes;
removeChildNodes(children);
document.getElementsByTagName("body")[0].removeChild(document.getElementById("greyDiv"));
}
catch(ex){
}

try{
children = document.getElementById("iframe1").childNodes;
removeChildNodes(children);
document.getElementsByTagName("body")[0].removeChild(document.getElementById("iframe1"));
}
catch(ex){
}

children = null;

}

/* <Email-Adresse pruefen> */
function isDigit (ch)
{
	if ((ch >= '0') && (ch <= '9'))
		return true;
	else
		return false;
}

function isAlpha(ch)
{
	if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')))
		return true;
	else
		return false;
}


function isAlnum (ch)
{
	if (isAlpha (ch) || isDigit (ch))
		return true;
	else
		return false;
}

function isNull (inpstring)
{
	return (inpstring == null);
}

function isEmpty (inpstring)
{
	if (isArray (inpstring))
	{
		var resultat = (inpstring.length == 0)?(true): (false);
		return resultat;
	}
	else
		return ((inpstring == "") || (isNull (inpstring)));
}

function isHidden (obj)
{
	returne (!isVisible(obj));
}

function isVisible (obj)
{
	try {
		return (obj.style.visibility == "visible");
	}
	catch (ex) {
		return;
	}
}

function isArray (obj)
{
	try {
		if (obj.constructor.toString().indexOf("Array") == -1)
			return false;
		else
			return true;
	}
	catch (ex) {
		return false;
	}
}

function sleep (ms)
{
	var zeit = (new Date ()).getTime ();
	var stoppZeit=zeit+ms;
	while ((new Date ()).getTime ()<stoppZeit){};
}

function notIn (str1, str2)
{
	var i = 0;
	var j = str2.length;
	for (; i<j; i++)
	{
		var str3 = str2.charAt (i);
		if (str1.indexOf (str3) != -1)
			return false;
	}
	return true;
}

function checkUsername (username, mustBeQuoted)
{
	var i = 0;
	var j = username.length;
	if (username.charAt (0) != '"')
	{
		if ((username.charAt (0) < ' ') ||
		    (username.charAt (0) > '~') ||
		    !notIn (mustBeQuoted, username.charAt (0)))
			return false;
		for (i=1; i<j; i++)
		{
			if (((username.charAt (i) < ' ') ||
			     (username.charAt (i) > '~') ||
			     !notIn (mustBeQuoted, username.charAt (i))) &&
			     (username.charAt (i-1) != '\\'))
				return false;
		}
	}
	else
	{
		if (username.charAt (j-1) != '"')
			return false;
		for( i=1; i<j-1; i++ )
		{
			if (((username.charAt (i) == '\n')  ||
			     (username.charAt (i) == '\r')  ||
			     (username.charAt (i) == '\"')) &&
			     (username.charAt (i-1) != '\\'))
				return false;
		}
	}
	return true;
}


function checkNr (nr)
{
	var i=0;
	var j=nr.length;

	if (j < 1)
		return false;

	for (; i<j; i++)
		if (( nr.charAt (i) < '0') || (nr.charAt (i) > '9'))
			return false;

	return true;
}


function checkIpnr (ipnr)
{
	var iL=0;
	var iC=0;
	var i=0;
	var sNr = "";

	for (; i< ipnr.length; i++)
	{
		if (ipnr.charAt (i) == '.')
		{
			if (!iL || (iL> 3) || parseInt (sNr,10) > 255)
				return false;
			iC++;
			iL = 0;
			sNr = "";
			continue;
		}
		if (isDigit (ipnr.charAt (i)))
		{
			iL++;
			sNr = sNr + ipnr.charAt (i);
			continue;
		}
		return false;
	}

	if (parseInt (sNr,10) > 255)
		return false;
	if (((iC==3) && (iL>=1) && (iL<=3) ) || ( (iC==4) && (!iL)))
		return true;
	else
		return false;
}


function checkFqdn (fqdn)
{
	var iL=0;
	var iC=0;
	var i=fqdn.length-1;

	if ((fqdn.charAt (0) == '.') || (fqdn.charAt (0) == '-'))
		return false;
	if (fqdn.charAt (i) == '.')
		i=i-1;

	for (; i>=0; i--)
	{
		if (fqdn.charAt (i) == '.')
		{
			if (iL < 2 && iC < 2)
				return false;
			if (fqdn.charAt (i-1) == '-')
				return false;
			iC++;
			iL = 0;
			continue;
		}
		if (isAlnum (fqdn.charAt (i)))
		{
			iL++;
			continue;
		}
		if (fqdn.charAt (i) == '-')
		{
			if (!iL)
				return false;
			iL++;
			continue;
		}
		return false;
	}

	if (!iC || (iL == 1 && iC < 2) || (!iL && iC==1))
		return false;

	return true;

}


function checkHostname (hostname)
{
	if (hostname.charAt (0) == '[')
	{
		if (hostname.charAt (hostname.length-1) != ']')
			return false;
		var ipnr = hostname.substring (1, hostname.length -1);
		return checkIpnr (ipnr);
	}

	if (hostname.charAt (0) == '#')
	{
		var nr = hostname.substring (1, hostname.length);
		return checkNr (nr);
	}

	return checkFqdn (hostname);
}


function checkEmailAdr (address)
{
	var status = true;
	var username = "";
	var hostname = "";

	if (address.length < 8)
		return false;

	var seperate = address.lastIndexOf ("@");
	if (seperate == -1)
		return false;

	username = address.substring (0, seperate);
	if (!checkUsername (username, "<>()[],;:@\" "))
		return false;

	hostname = address.substring (seperate+1, address.length);
	if (!checkHostname (hostname))
		return false;

	return true;
}


function checkEmail (email, allowFullname)
{
	var existFullname = false;
	var status = true;
	var fullname = "";
	var adress = "";
	if (email.length < 8)
		return false;
	var emailBegin = email.indexOf ("<");
	var emailEnd = email.lastIndexOf (">");

	if ((emailBegin == -1) && (emailEnd == -1))
		return checkEmailAdr ( email );

	if (((emailBegin == -1) && (emailEnd != -1)) || ((emailBegin != -1) && (emailEnd == -1)))
		return false;

	adress = email.substring (emailBegin+1, emailEnd);

	if (!checkEmailAdr (adress))
		return false;

	if (email.length == adress.length + 2)
		return true;
	else
		if (!allowFullname)
			return false;

	if (emailEnd == email.length - 1)
	{
		if (emailBegin == 0)
			return true;
		if (email.charAt (emailBegin -1 ) != ' ')
			return false;
		fullname = email.substring (0, emailBegin-1);
		return checkUsername (fullname, "<>()[],;:@\"");
	}

	return false ;

}
/* </Email-Adresse prfen> */

/* <ToolTip> */
wmtt = null;

document.onmousemove = updateWMTT;

function updateWMTT (e) {
	try {
		x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
		y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
		if (wmtt != null) {
			wmtt.style.left = (x + 20) + "px";
			wmtt.style.top 	= (y + 20) + "px";
		}
	} catch (ex) { }
}

function showWMTT(id) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function hideWMTT() {
	wmtt.style.display = "none";
}
/* </ToolTip> */

if (rightlock) {
	/* <Rechtsklick unterbinden> */
	var isNS4   = 0;
	var isNS6   = 0;
	var isIE4   = 0;
	var isOpe   = 0;
	var isNew   = 0;
	var company = navigator.appName;
	var version = parseInt(navigator.appVersion);
	var brow    = company + version;
	var vBDet   = false;
	
	if(brow == "Netscape4")
	{
		isNS4 = 1;
		vBDet = true;
	}
	else if(brow == "Microsoft Internet Explorer4")
	{
		isIE4 = 1;
		if(navigator.appVersion.indexOf("MSIE 4") == -1)
			vBDet = true;
	}
	else if(brow == "Netscape5")
	{
		isNS6 = 1;
		vBDet = true;
	}
	else if((brow == "Opera5") || (brow == "Opera6"))
	{
		isOpe = 1;
		vBDet = true;
	}
	else
	{
		isNew = 1;
		vBDet = false;
	}
	
	document.oncontextmenu = function(){return false}.closure();
	
	if(isNS4)
		window.captureEvents(Event.MOUSEDOWN);
	
	window.onmousedown = rechtsklick;
	window.onmouseup   = rechtsklick;
	
	/* </Rechtsklick unterbinden> */
}

function rechtsklick(e) {
	if (e.which == 3)
		return false;
	else
		return true;
}

/* <Pausenbelustigung ein- und ausblenden> */
function lsetup_handler(e)
{
	lsetup(this);
	return true;
}

function lsetup(target)
{
	try {
		if (!target)
			target = this;

		var o_set = target.document.getElementById('loaderContainerWH');
		var o_getH = target.document.getElementsByTagName('BODY')[0];

		o_set.style.height = o_getH.scrollHeight;
	}
	catch (e) {
	}
}

function lon(target)
{
	try {
		if (!target)
			target = this;

		lsetup(target);

		if (!target._lon_disabled_arr)
			target._lon_disabled_arr = new Array();
		else if (target._lon_disabled_arr.length > 0)
			return true;

		target.document.getElementById("loaderContainer").style.display = "";
		var select_arr = target.document.getElementsByTagName("select");

		for (var i = 0; i < select_arr.length; i++) {
			if (select_arr[i].disabled)
				continue;

			select_arr[i].disabled = true;
			_lon_disabled_arr.pop(select_arr[i]);
			var clone = target.document.createElement("input");
			clone.type = "hidden";
			clone.name = select_arr[i].name;
			var values = new Array();
			for (var n = 0; n < select_arr[i].length; n++) {
				if (select_arr[i][n].selected) {
					values[values.length] = select_arr[i][n].value;
				}
			}
			clone.value = values.join(",");
			select_arr[i].parentNode.insertBefore(clone, select_arr[i]);
		}
	} catch (e) { return false; }
	return true;
}

function loff(target)
{
	try {
		if (parent.visibilityToolbar) {
			parent.visibilityToolbar.set_display(visibilityCount
												 ? "standbyDisplay"
												 : "standbyDisplayNoControls");
		}
	} catch (e) {}

	try {
		if (!target)
			target = this;

		target.document.getElementById("loaderContainer").style.display = "none";

		if (target._lon_disabled_arr) {
			while(_lon_disabled_arr.legth > 0) {
				var select = _lon_disabled_arr.push();
				select.disabled = false;

				var clones_arr = target.document.getElementsByName(select.name);
				for (var n = 0; n < clones_arr.length; n++) {
					if ("hidden" == clones_arr[n].type)
						clones_arr[n].parent.removeChild(clones_arr[n]);
				}
			}
		}
	} catch (e) {
		return false;
	}
	return true;
}
/* <Pausenbelustigung ein- und ausblenden> */

function trim (s) {
	s = s.replace (/\n/, "");

	if (isNull (s))
		return false;
	if (s.length > 0)
	{
		while (s.substring(0,1) == ' ') {
			s = s.substring(1,s.length);
		}
		while (s.substring(s.length-1,s.length) == ' ') {
			s = s.substring(0,s.length-1);
		}
		return s;
	}
	else
		return "";
}

function demo (bereich)
{
	parent.main.location.href="../bodyd/body_demo.php";
	parent.titel.location.href="../header/header.php";
}

function setStatus(info)
{
	status = info;
	setTimeout("window.status=status",0);
	return true;
}

function loader (adr)
{
	parent.main.location.href = adr;
}

function machLesbar (summe)
{
	var temp;
	var temp1;
	var temp2;
	var summe;
	var string;
	var nachkomma;
	var vorkomma;


	/* <auf zwei nachkommastellen runden> */
	temp1  = summe * 100;
	temp2  = Math.round (temp1);
	summe  = temp2 / 100;
	/* </auf zwei nachkommastellen runden> */
	
	/* <tausender-stellen und normales komma einfgen> */
	string = ""+summe;
	temp   = string.split (".");
	if (!temp[1])
		nachkomma = ",00";
	else if (temp[1].length == 1)
		nachkomma = "," + temp[1] + "0";
	else
		nachkomma = "," + temp[1];
	vorkomma = 0;
	alt      = temp[0].length;
	i        = alt;
	while (i > 0)
	{
		i        = alt - 3;
		tmp      = temp[0].substring (i, alt);
		vorkomma = tmp + "." + vorkomma;
		alt       = i;
	}
	vorkomma = vorkomma.substring (0, vorkomma.length-2);
	summe    = vorkomma + nachkomma;
	/* </tausender-stellen und normales komma einfgen> */

	return summe;
}

function str_replace (search, replace, subject)
{
	var result = "";
	var  oldi = 0;
	for (i = subject.indexOf (search); i > -1; i = subject.indexOf (search, i))
	{
		result += subject.substring (oldi, i);
		result += replace;
		i += search.length;
		oldi = i;
	}
	result += subject.substring (oldi, subject.length);
	return result;
}

function machFloat (wert)
{
	var wert = "" + wert;
	try {
		if ((wert.indexOf ("\.") != -1) && (wert.indexOf (",") != -1))
		{
			wert = wert.replace (/(\.)/gi, "");
			wert = wert.replace (/(\,)/gi, ".");
		}
		else if ((wert.indexOf ("\.") == -1) && (wert.indexOf (",") != -1))
			wert = wert.replace (/(\,)/gi, ".");
		else if ((wert.indexOf ("\.") != -1) && (wert.indexOf (",") == -1))
			wert = wert;
		else
			wert = wert + ".00";
	} catch (ex) { }
	tmp  = wert.split (".");
	return wert;
}

function info_invisible ()
{
	if(isNS4)
	{
		document.danke.visibility = "hidden";
	}
	else
	{
		if(isIE4 || isNew)
		{
			document.all.danke.style.visibility = "hidden";
		}
		else
		{
			if(isNS6 || isOpe)
			{
				var dankElement = document.getElementById("danke");
				dankElement.style.visibility = "hidden";
			}
		}
	}
}

function invisible ()
{
	if(isNS4)
	{
		document.sfkt.visibility = "hidden";
	}
	else
	{
		if(isIE4 || isNew)
		{
			document.all.sfkt.style.visibility = "hidden";
		}
		else
		{
			if(isNS6 || isOpe)
			{
				var sfktElement = document.getElementById("sfkt");
				sfktElement.style.visibility = "hidden";
			}
		}
	}
}

function info ()
{
	if(isNS4)
	{
		if (document.danke.visibility != "visible")
			document.danke.visibility = "visible";
		else
			document.danke.visibility = "hidden";
	}
	else
	{
		if(isIE4 || isNew)
		{
			if (document.all.danke.style.visibility != "visible")
				document.all.danke.style.visibility = "visible";
			else
				document.all.danke.style.visibility = "hidden";
		}
		else
		{
			if(isNS6 || isOpe)
			{
				var dankElement = document.getElementById("danke");
				if (dankElement.visibility != "visible")
					dankElement.style.visibility = "visible";
				else
					dankElement.style.visibility = "hidden";
			}
		}
	}
}

function sonder ()
{
        if(isNS4)
        {
                if (document.sfkt.visibility != "visible")
                {
                        document.sfkt.visibility = "visible";
                        document.form.msg.value = document.form.nachr.value;
                        document.form.msg.focus ();
                }
                else
                        document.sfkt.visibility = "hidden";
        }
        else
        {
                if(isIE4 || isNew)
                {
                        if (document.all.sfkt.style.visibility != "visible")
                        {
                                document.all.sfkt.style.visibility = "visible";
                                document.form.msg.value = document.form.nachr.value;
                                document.form.msg.focus ();
                        }
                        else
                                document.all.sfkt.style.visibility = "hidden";
                }
                else
                {
                        if(isNS6 || isOpe)
                        {
                                var sfktElement = document.getElementById("sfkt");
                                if (sfktElement.visibility != "visible")
                                {
                                        sfktElement.style.visibility = "visible";
                                        document.form.msg.value = document.form.nachr.value;
                                        document.form.msg.focus ();
                                }
                                else
                                        sfktElement.style.visibility = "hidden";
                        }
                }
        }
        geheHoch ();
} 

function geheHoch ()
{
	var y=0;
	if (window.pageYOffset)
		var huhu = null;
	else if (document.body && document.body.scrollTop) y=document.body.scrollTop;
	{
		while(y > 0)
		{
			setTimeout("window.scrollBy(0,-10)",10);
			y = y - 10;
		}
	}
}


/*************************************************************** 
*	Stellt eine einfache Datumspruefung zur Verfuegung.
*	Es wird zunaechst geprueft, ob das Datum nur aus Zahlen 
*	besteht. Wenn ja wird geprueft ob es sich um ein echtes 
*	Datum handelt.
*	
*	@param		String	date	Zu ueberpruefendes Datum
*	@return		boolean	true, wenn es sich um ein Datum handelt
*								false, wenn nicht
****************************************************************/
function checkDate(date){
  var dat = date.split(".");
  for(var i=0; i < dat.length; i++){
	  if( isNaN(dat[i]) ){
		  return false;
	  }
  }

  if(date[0].charAt[0] == '0'){
  		var day = dat[0].replace(/0/, "");
  }	

  if(date[1].charAt[0] == '0'){
  		var month = dat[1].replace(/0/, "");
  }	
  
  var kontrolldatum=new Date(dat[2],month,day);
	  if (kontrolldatum.getDate()==day && 
	  		kontrolldatum.getMonth()==month
			  && kontrolldatum.getFullYear()==dat[2])
	  return true;
	  else
		  return false;
  
}


function checkZahl (wert)
{
	var chkZ = 1;
	for(i=0; i<wert.length; ++i)
	{
		if ((wert.charAt(i) < "0") || (wert.charAt(i) > "9"))
			chkZ = -1;
	}
	if (chkZ == -1)
		return false;
	else
		return true;
}

function ch_mitau (wert)
{
	/* <tausender- und millionen-abkrzungen umwandeln> */
	wert = wert.toLowerCase ();
	if ((wert.indexOf ("t") != wert.lastIndexOf ("t")) ||
	    (wert.indexOf ("m") != wert.lastIndexOf ("m")) ||
		((wert.indexOf ("t") <  wert.indexOf     ("m")) && (wert.indexOf ("t") != -1)))
	{
//		nice_alert ("Diese Eingabe ergibt keinen Sinn!", "form");
		nice_alert (allg_0004, "form");
		val = "NaN";
	}
	else if ((wert.match (/m/gi)) && (wert.match (/t/gi)))
	{
		if ((wert.indexOf ("m") == 0) &&
			 (wert.indexOf ("t") == 1))
			val = 1001000;
		else if (wert.indexOf ("m") == 0)
		{
			val1 = 1000000;
			wert = wert.replace (/m/gi, "");
			val2 = parseFloat ((wert.replace (/(\,)/gi, ".")).replace (/t/gi, "")) * 1000;
			val  = val1 + val2;
		}
		else if (wert.indexOf ("t") == wert.length-1)
		{
			temp = wert.split ("m");
			val1 = parseFloat (temp[0].replace (/(\,)/gi, ".")) * 1000000;
			val2 = parseFloat ((temp[1].replace (/(\,)/gi, ".")).replace (/t/gi, "")) * 1000;
			if (isNaN (val2))
				val2 = 1000;
			val  = val1 + val2;
		}
		else
		{
			temp1 = wert.split ("m");
			temp2 = temp1[1].split ("t");
			val1  = parseFloat (temp1[0].replace (/(\,)/gi, ".")) * 1000000;
			val2  = parseFloat ((temp2[0].replace (/(\,)/gi, ".")).replace (/t/gi, "")) * 1000;
			if (isNaN (val2))
				val2 = 1000;
			val3  = parseFloat (temp2[1].replace (/(\,)/gi, "."));
			val   = val1 + val2+val3;
		}
	}
	else if (wert.match (/m/gi))                                 /* Millionen */
	{
		if ((wert.indexOf ("m") == wert.length-1) || (wert.indexOf ("M") == wert.length-1))
		{
			if (wert.length == 1)
				val = 1000000;
			else
				val = parseFloat ((wert.replace (/(\,)/gi, ".")).replace (/m/gi, "")) * 1000000;
		}
		else
		{
			tmp  = wert.split ("m");
			if (tmp.length == 1)
				tmp = wert.split ("M");
			val1 = parseFloat (tmp[0].replace (/(\,)/gi, ".")) * 1000000;
			if (tmp[1].match (/t/gi))
			{
				val2 = parseFloat ((tmp[1].replace (/(\,)/gi, ".")).replace (/t/gi, "")) * 1000;
			}
			else
				val2 = parseFloat (tmp[1].replace (/(\,)/gi, "."));
			val  = val1 + val2;
		}
	}
	else if (wert.match (/t/gi))                            /* Tausender */
	{
		if ((wert.indexOf ("t") == wert.length-1) || (wert.indexOf ("T") == wert.length-1))
		{
			if (wert.length == 1)
				val = 1000;
			else
				val = parseFloat ((wert.replace (/(\,)/gi, ".")).replace (/t/gi, "")) * 1000;
		}
		else
		{
			tmp  = wert.split ("t");
			if (tmp.length == 1)
				tmp  = wert.split ("T");
			val1 = parseFloat (tmp[0].replace (/(\,)/gi, ".")) * 1000;
			val2 = parseFloat (tmp[1].replace (/(\,)/gi, "."));
			val  = val1 + val2;
		}
	}
	else
		val = parseFloat (machFloat (wert));
	/* </tausender- und millionen-abkrzungen umwandeln> */

	return val;
}

function summiere (wert, v_wert, w_wert, typ)
{
	val = ch_mitau (wert);

	if (parseFloat (machFloat (wert)) < 0)
	{
//		nice_alert ("Die Eingabe von negativen Werten ist nicht mï¿½lich!", "form", true);
		nice_alert (msg0005, "form", true);
		return machLesbar (0);
	}
	/* <Plausi-Test> */
	else if ((!isNaN (val)) && (val != "") && (val != null))
	{
		if (document.form.best.value == "ent")
		{
			temp = Math.round (val * 100) / Math.round (w_wert * 100);
			if ((parseInt (temp)) != (parseFloat (temp)))
			{
//				nice_alert ("Plausibilitï¿½sfehler!\nBitte beachten Sie, dass der kleinste Teiler der"+
//					" Wert der Mnze bzw. Banknote ist!", "form", "true");
				nice_alert (msg0006, "form", "true");
				return false;
			}
			else
			{
				if (typ == "b")
					b_sum   += val;
				else
					m_sum   += val;
				this.summe += val;
				return machLesbar (val);
			}
		}
		else
		{
			temp = (val * 10) / parseInt (v_wert * 10);
			if ((parseInt (temp)) != (parseFloat (temp)))
			{
//				nice_alert ("Plausibilitï¿½sfehler!\nBitte beachten Sie, dass die Lieferung nur in"+
//					" BBK-Gebinden m\u00f6glich ist!", "form", "true");
				nice_alert (msg0007, "form", "true");
				return false;
			}
			else
			{
				if (typ == "b")
					b_sum   += val;
				else
					m_sum   += val;
				this.summe += val;
				return machLesbar (val);
			}
		}
	}
	else if (isNaN (val))
		return "NaN";
	else
		return machLesbar (0);
	/* </Plausi-Test> */
}

function machNull (was)
{
	var temp   = this.formfield.substring (0, this.formfield.length - 1);
	var felder = temp.split (";");
	with (document.form)
	{
		for (element in felder)
		{
			if (was == "b")
			{
				if (felder[element] == "fuenfhdrt")
					fuenfhdrt.value = machLesbar (0);
				else if (felder[element] == "zweihdrt")
					zweihdrt.value  = machLesbar (0);
				else if (felder[element] == "hundert")
					hundert.value = machLesbar (0);
				else if (felder[element] == "fuenfzig")
					fuenfzig.value = machLesbar (0);
				else if (felder[element] == "zwanzig")
					zwanzig.value = machLesbar (0);
				else if (felder[element] == "zehn")
					zehn.value = machLesbar (0);
				else if (felder[element] == "fuenf")
					fuenf.value = machLesbar (0);
			}
			else if (was == "m")
			{
				if (felder[element] == "szehn")
					szehn.value = machLesbar (0);
				else if (felder[element] == "zweie")
					zweie.value = machLesbar (0);
				else if (felder[element] == "eine")
					eine.value = machLesbar (0);
				else if (felder[element] == "fuenfzgct")
					fuenfzgct.value = machLesbar (0);
				else if (felder[element] == "zwanzgct")
					zwanzgct.value = machLesbar (0);
				else if (felder[element] == "zehnct")
					zehnct.value = machLesbar (0);
				else if (felder[element] == "fuenfct")
					fuenfct.value = machLesbar (0);
				else if (felder[element] == "zweict")
					zweict.value = machLesbar (0);
				else if (felder[element] == "einct")
					einct.value = machLesbar (0);
			}
		}
	}
}

function update (extra)				/* hier nur fuer Demo */
{
	t_b_sum    = this.b_sum;
	t_m_sum    = this.m_sum;
	try {
		t_summe    = document.form.summe.value;
	} catch (ex) {
		t_summe    = "";
	}
	this.summe = 0;
	this.b_sum = 0;
	this.m_sum = 0;
	var temp;
	var temp   = this.formfield.substring (0, this.formfield.length - 1);
	var felder = temp.split (";");
	with (document.form)
	{
		for (element in felder)
		{
			if (felder[element] == "fuenfhdrt")
			{
				temp = summiere (fuenfhdrt.value, v_fuenfhdrt.value, w_fuenfhdrt.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "fuenfhdrt_plausi";
					fuenfhdrt.value = machLesbar (0);
					fuenfhdrt.focus ();
				}
				else
					fuenfhdrt.value = temp;
			}
			else if (felder[element] == "zweihdrt")
			{
				temp = summiere (zweihdrt.value, v_zweihdrt.value, w_zweihdrt.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zweihdrt_plausi";
					zweihdrt.value  = machLesbar (0);
					zweihdrt.focus ();
				}
				else
					zweihdrt.value = temp;
			}
			else if (felder[element] == "hundert")
			{
				temp = summiere (hundert.value, v_hundert.value, w_hundert.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "hundert_plausi";
					hundert.value   = machLesbar (0);
					hundert.focus ();
				}
				else
					hundert.value = temp;
			}
			else if (felder[element] == "fuenfzig")
			{
				temp = summiere (fuenfzig.value, v_fuenfzig.value, w_fuenfzig.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "fuenfzig_plausi";
					fuenfzig.value  = machLesbar (0);
					fuenfzig.focus ();
				}
				else
					fuenfzig.value = temp;
			}
			else if (felder[element] == "zwanzig")
			{
				temp = summiere (zwanzig.value, v_zwanzig.value, w_zwanzig.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zwanzig_plausi";
					zwanzig.value   = machLesbar (0);
					zwanzig.focus ();
				}
				else
					zwanzig.value = temp;
			}
			else if (felder[element] == "zehn")
			{
				temp = summiere (zehn.value, v_zehn.value, w_zehn.value, "b");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zehn_plausi";
					zehn.value      = machLesbar (0);
					zehn.focus ();
				}
				else
					zehn.value = temp;
			}
			else if (felder[element] == "fuenf")
			{
				temp = summiere (fuenf.value, v_fuenf.value, w_fuenf.value, "b");
				if (((temp == false) || (temp == "NaN")) && temp != 0)
				{
					lastfield.value = "fuenf_plausi";
					fuenf.value     = machLesbar (0);
					fuenf.focus ();
				}
				else
					fuenf.value = temp;
			}
			else if (felder[element] == "szehn")
			{
				temp = summiere (szehn.value, v_szehn.value, w_szehn.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "szehn_plausi";
					szehn.value     = machLesbar (0);
					szehn.focus ()
				}
				else
					szehn.value = temp;
			}
			else if (felder[element] == "zweie")
			{
				temp = summiere (zweie.value, v_zweie.value, w_zweie.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zweie_plausi";
					zweie.value     = machLesbar (0);
					zweie.focus ();
				}
				else
					zweie.value = temp;
			}
			else if (felder[element] == "eine")
			{
				temp = summiere (eine.value, v_eine.value, w_eine.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "eine_plausi";
					eine.value      = machLesbar (0);
					eine.focus ();
				}
				else
					eine.value = temp;
			}
			else if (felder[element] == "fuenfzgct")
			{
				temp = summiere (fuenfzgct.value, v_fuenfzgct.value, w_fuenfzgct.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "fuenfzgct_plausi";
					fuenfzgct.value = machLesbar (0);
					fuenfzgct.focus ()
				}
				else
					fuenfzgct.value = temp;
			}
			else if (felder[element] == "zwanzgct")
			{
				temp = summiere (zwanzgct.value, v_zwanzgct.value, w_zwanzgct.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zwanzgct_plausi";
					zwanzgct.value  = machLesbar (0);
					zwanzgct.focus ();
				}
				else
					zwanzgct.value = temp;
			}
			else if (felder[element] == "zehnct")
			{
				temp = summiere (zehnct.value, v_zehnct.value, w_zehnct.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zehnct_plausi";
					zehnct.value    = machLesbar (0);
					zehnct.focus ();
				}
				else
					zehnct.value = temp;
			}
			else if (felder[element] == "fuenfct")
			{
				temp = summiere (fuenfct.value, v_fuenfct.value, w_fuenfct.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "fuenfct_plausi";
					fuenfct.value = machLesbar (0);
					fuenfct.focus ();
				}
				else
					fuenfct.value = temp;
			}
			else if (felder[element] == "zweict")
			{
				temp = summiere (zweict.value, v_zweict.value, w_zweict.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "zweict_plausi";
					zweict.value    = machLesbar (0);
					zweict.focus ();
				}
				else
					zweict.value = temp;
			}
			else if (felder[element] == "einct")
			{
				temp = summiere (einct.value, v_einct.value, w_einct.value, "m");
				if ((temp == false) || (temp == "NaN"))
				{
					lastfield.value = "einct_plausi";
					einct.value     = machLesbar (0);
					einct.focus ();
				}
				else
					einct.value = temp;
			}
		}
	}

	if (extra != "aktual")
	{
		if (extra == "b")
		{
			val = ch_mitau (document.form.summe_b.value);
			if ((!isNaN (val)) && (val != "") && (val != null))
			{
				/* <Plausi-Test> */
				temp = val / 5;
				if ((parseInt (temp)) != (parseFloat (temp)))
				{
//					nice_alert ("Plausibilit\u00e4tsfehler!\nBitte beachten Sie, dass die\n"+
//							 "kleinstm\u00f6gliche St\u00fcckelung 5 Euro ist!", "form");
					nice_alert (msg0008, "form");
					document.form.lastfield.value = "summeb_plausi";
					document.form.summe_b.value   = machLesbar (this.b_sum);
					sum                           = parseFloat (this.b_sum) +
								        parseFloat (ch_mitau (document.form.summe_m.value));
					document.form.summe.value     = machLesbar (sum);
					document.form.summe_b.focus ();
				}
				/* </Plausi-Test> */
				else
				{
					if (this.b_sum != 0) // Banknoten alle 0?
					{
//						if (confirm ("Achtung!\n\nSie haben bereits Banknoten ausgew\u00e4hlt.\n"+
//							"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
						if (confirm (msg0009))
						{
							machNull ("b");
							sum                         = parseFloat (ch_mitau (document.form.summe_b.value)) +
										      parseFloat (ch_mitau (document.form.summe_m.value));
							document.form.summe_b.value = machLesbar (ch_mitau (document.form.summe_b.value));
							document.form.summe.value   = machLesbar (sum);
						}
						else
						{
							sum                         = parseFloat (b_sum) +
										      parseFloat (ch_mitau (document.form.summe_m.value));
							document.form.summe_b.value = machLesbar (b_sum);
							document.form.summe.value   = machLesbar (sum);
						}
					}
					else if ((parseFloat (machFloat (t_summe)) != 0) && (b_sum == 0) &&
						(m_sum == 0) && (parseFloat (machFloat (document.form.summe_m.value)) == 0))
					{
//						if (confirm ("Achtung!\n\nSie haben bereits eine Gesamtsumme ausgew\u00e4hlt.\n"+
//							"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
						if (confirm (msg0010))
						{
							machNull ("b");
							machNull ("m");
							sum                         = parseFloat (ch_mitau (document.form.summe_b.value));
							document.form.summe_m.value = machLesbar (0);
							document.form.summe_b.value = machLesbar (sum);
							document.form.summe.value   = machLesbar (sum);
						}
						else
						{
							machNull ("b");
							machNull ("m");
							document.form.summe_b.value = machLesbar (0);
							document.form.summe_m.value = machLesbar (0);
							document.form.summe.value   = machLesbar (parseFloat (machFloat (t_summe)));
						}
					}
					else
					{
						sum                         = parseFloat (ch_mitau (document.form.summe_b.value)) +
									      parseFloat (ch_mitau (document.form.summe_m.value));
						document.form.summe_b.value = machLesbar (ch_mitau (document.form.summe_b.value));
						document.form.summe.value   = machLesbar (sum);
					}
				}
			}
			else
			{
				document.form.lastfield.value = "summeb_plausi";
				document.form.summe_b.value   = machLesbar (this.b_sum);
				sum                           = parseFloat (this.b_sum) +
							        parseFloat (ch_mitau (document.form.summe_m.value));
				document.form.summe.value     = machLesbar (sum);
				document.form.summe_b.focus ();
			}
		}
		else if (extra == "m")
		{
			val = ch_mitau (document.form.summe_m.value);
			if ((!isNaN (val)) && (val != "") && (val != null))
			{
				if (this.m_sum != 0) // Mnzen alle 0?
				{
//					if (confirm ("Achtung!\n\nSie haben bereits M\u00fcnzen ausgew\u00e4hlt.\n"+
//						"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
					if (confirm (msg0011))
					{
						machNull ("m");
						sum                         = parseFloat (ch_mitau (document.form.summe_b.value)) +
									      parseFloat (ch_mitau (document.form.summe_m.value));
						document.form.summe_m.value = machLesbar (ch_mitau (document.form.summe_m.value));
						document.form.summe.value   = machLesbar (sum);
					}
					else
					{
						sum                         = parseFloat (m_sum) +
									      parseFloat (ch_mitau (document.form.summe_b.value));
						document.form.summe_m.value = machLesbar (m_sum);
						document.form.summe.value   = machLesbar (sum);
					}
				}
				else if ((parseFloat (machFloat (t_summe)) != 0) && (b_sum == 0) &&
					(m_sum == 0) && (parseFloat (machFloat (document.form.summe_b.value)) == 0))
				{
//					if (confirm ("Achtung!\n\nSie haben bereits eine Gesamtsumme ausgew\u00e4hlt.\n"+
//						"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
					if (confirm (msg0010))
					{
						machNull ("b");
						machNull ("m");
						sum                         = parseFloat (ch_mitau (document.form.summe_m.value));
						document.form.summe_b.value = machLesbar (0);
						document.form.summe_m.value = machLesbar (sum);
						document.form.summe.value   = machLesbar (sum);
					}
					else
					{
						machNull ("b");
						machNull ("m");
						document.form.summe_b.value = machLesbar (0);
						document.form.summe_m.value = machLesbar (0);
						document.form.summe.value   = machLesbar (parseFloat (machFloat (t_summe)));
					}
				}
				else
				{
					sum                         = parseFloat (ch_mitau (document.form.summe_b.value)) +
								      parseFloat (ch_mitau (document.form.summe_m.value));
					document.form.summe_m.value = machLesbar (ch_mitau (document.form.summe_m.value));
					document.form.summe.value   = machLesbar (sum);
				}
			}
			else
			{
				document.form.lastfield.value = "summem_plausi";
				document.form.summe_m.value   = machLesbar (this.m_sum);
				sum                           = parseFloat (this.m_sum) +
							        parseFloat (ch_mitau (document.form.summe_b.value));
				document.form.summe.value     = machLesbar (sum);
				document.form.summe_m.focus ();
			}
		}
		else if (extra == "s")
		{
			val = ch_mitau (document.form.summe.value);
			if ((!isNaN (val)) && (val != "") && (val != null))
			{
				if ((parseFloat (machFloat (document.form.summe_m.value)) != 0) ||
					 (parseFloat (machFloat (document.form.summe_b.value)) != 0))    // Alles andere 0?
				{
//					if (confirm ("Achtung!\n\nSie haben bereits Betr\u00e4ge ausgew\u00e4hlt.\n"+
//						"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
					if (confirm (msg0012))
					{
						machNull ("b");
						machNull ("m");
						document.form.summe_b.value = machLesbar (0);
						document.form.summe_m.value = machLesbar (0);
						document.form.summe.value   = machLesbar (ch_mitau (document.form.summe.value));
					}
					else
					{
						if (b_sum == 0)
							var1                = machFloat (document.form.summe_b.value);
						else
							var1                = b_sum;
						if (m_sum == 0)
							var2                = machFloat (document.form.summe_m.value);
						else
							var2                = m_sum;
						sum                         = parseFloat (var1) + parseFloat (var2);
						document.form.summe_b.value = machLesbar (var1);
						document.form.summe_m.value = machLesbar (var2);
						document.form.summe.value   = machLesbar (Math.round (sum * 100) / 100);
					}
				}
				else
					document.form.summe.value = machLesbar (ch_mitau (document.form.summe.value));
			}
			else
			{
				document.form.lastfield.value = "summe_plausi";
				document.form.summe.value     = machLesbar (this.sum);
				sum                           = parseFloat (this.m_sum) + parseFloat (this.b_sum);
				document.form.summe.value     = machLesbar (sum);
				document.form.summe.focus ();
			}
		}
		else
		{
			if ((t_m_sum == 0) && (t_b_sum == 0) && (parseFloat (machFloat (t_summe)) > 0) &&
			   (parseFloat (machFloat (document.form.summe_m.value)) == 0))
			{
//				if (confirm ("Achtung!\n\nSie haben bereits absolute Summen ausgew\u00e4hlt.\n"+
//					"M\u00f6chten Sie diese \u00c4nderung trotzdem durchf\u00fchren?"))
				if (confirm (msg0013))
				{
					if (this.b_sum != 0)
						b_val               = this.b_sum;
					else
						b_val               = parseFloat (machFloat (document.form.summe_b.value));
					if (this.m_sum != 0) 
						m_val               = this.m_sum;
					else
						m_val               = parseFloat (machFloat (document.form.summe_m.value));
					this.summe                  = parseFloat (m_val) + parseFloat (b_val);
					document.form.summe_m.value = machLesbar (m_val);
					document.form.summe_b.value = machLesbar (b_val);
					document.form.summe.value   = machLesbar (this.summe);
				}
				else
				{
					this.m_sum                  = 0;
					this.b_sum                  = 0;
					machNull ("b");
					machNull ("m");
					sum                         = parseFloat (machFloat (document.form.summe_b.value)) +
								      parseFloat (machFloat (document.form.summe_m.value));
					document.form.summe_b.value = machLesbar (machFloat (document.form.summe_b.value));
					document.form.summe_m.value = machLesbar (machFloat (document.form.summe_m.value));
					document.form.summe.value   = machLesbar (sum);
				}
			}
			else if ((parseFloat (machFloat (document.form.summe_b.value)) > 0) && (t_b_sum == 0) && (this.b_sum > 0))
			{
//				if (confirm ("Achtung!\n\nSie haben bereits eine absolute Summe f\u00fcr "+
//					"Banknoten ausgew\u00e4hlt.\nM\u00f6chten Sie diese \u00c4nderung "+
//					"trotzdem durchf\u00fchren?"))
				if (confirm (msg0014))
				{
					if (this.m_sum != 0) 
						m_val               = this.m_sum;
					else
						m_val               = parseFloat (machFloat (document.form.summe_m.value));
					this.summe                  = parseFloat (m_val) + parseFloat (this.b_sum);
					document.form.summe_m.value = machLesbar (m_val);
					document.form.summe_b.value = machLesbar (this.b_sum);
					document.form.summe.value   = machLesbar (this.summe);
				}
				else
				{
					this.b_sum                  = 0;
					machNull ("b");
					if (this.m_sum != 0) 
						m_val               = this.m_sum;
					else
						m_val               = parseFloat (machFloat (document.form.summe_m.value));
					sum                         = parseFloat (machFloat (document.form.summe_b.value)) +
															parseFloat (m_val);
					document.form.summe_b.value = machLesbar (machFloat (document.form.summe_b.value));
					document.form.summe_m.value = machLesbar (m_val);
					document.form.summe.value   = machLesbar (sum);
				}
			}
			else if ((parseFloat (machFloat (document.form.summe_m.value)) > 0) && (t_m_sum == 0) && (this.m_sum > 0))
			{
//				if (confirm ("Achtung!\n\nSie haben bereits eine absolute Summe f\u00fcr "+
//					"M\u00fcnzen ausgew\u00e4hlt.\nM\u00f6chten Sie diese \u00c4nderung "+
//					"trotzdem durchf\u00fchren?"))
				if (confirm (msg0015))
				{
					if (this.b_sum != 0) 
						b_val               = this.b_sum;
					else
						b_val               = parseFloat (machFloat (document.form.summe_b.value));
					this.summe                  = parseFloat (b_val) + parseFloat (this.m_sum);
					document.form.summe_b.value = machLesbar (b_val);
					document.form.summe_m.value = machLesbar (this.m_sum);
					document.form.summe.value   = machLesbar (this.summe);
				}
				else
				{
					this.m_sum                  = 0;
					machNull ("m");
					if (this.b_sum != 0) 
						b_val               = this.b_sum;
					else
						b_val               = parseFloat (machFloat (document.form.summe_b.value));
					sum                         = parseFloat (machFloat (document.form.summe_m.value)) +
															parseFloat (b_val);
					document.form.summe_m.value = machLesbar (machFloat (document.form.summe_m.value));
					document.form.summe_b.value = machLesbar (b_val);
					document.form.summe.value   = machLesbar (sum);
				}
			}
			else
			{
				if (this.b_sum != 0)
					b_val                    = this.b_sum;
				else if ((this.b_sum == 0) && (t_b_sum != 0))
					b_val                    = 0;
				else
					b_val                    = parseFloat (machFloat (document.form.summe_b.value));
				if (this.m_sum != 0) 
					m_val                    = this.m_sum;
				else if ((this.m_sum == 0) && (t_m_sum != 0))
					m_val                    = 0;
				else
					m_val                    = parseFloat (machFloat (document.form.summe_m.value));
				this.summe                  = parseFloat (m_val) + parseFloat (b_val);
				document.form.summe_m.value = machLesbar (m_val);
				document.form.summe_b.value = machLesbar (b_val);
				document.form.summe.value   = machLesbar (this.summe);
			}
		}
	}
	else
	{
		summe = 0;

		if (document.form.summe_b.value != null)
		{
			if (document.form.summe_b.value != 0)
			{
				summe += parseFloat (machFloat (document.form.summe_b.value));
				document.form.summe_b.value = machLesbar (machFloat (document.form.summe_b.value));
			}
			else
			{
				document.form.summe_b.value = machLesbar (this.b_sum);
				summe += this.b_sum;
			}
		}

		if (document.form.summe_m.value != null)
		{
			if (document.form.summe_m.value != 0)
			{
				summe += parseFloat (machFloat (document.form.summe_m.value));
				document.form.summe_m.value = machLesbar (machFloat (document.form.summe_m.value));
			}
			else
			{
				document.form.summe_m.value = machLesbar (this.m_sum);
				summe += this.m_sum;
			}
		}

		if (summe != 0)
			document.form.summe.value = machLesbar (summe);
		else
			document.form.summe.value = machLesbar (machFloat (document.form.summe.value));
	}
}

function init (formfield, firstelem)
{
	this.firstelem             = firstelem;
	this.formfield             = formfield;
	document.form.fields.value = this.formfield;
	var temp                   = this.formfield.substring (0, this.formfield.length - 1);
	var felder                 = temp.split (";");
	update ("aktual");
}

/*
 *	Diese Funktion ermöglicht Automatische Vervollstaendigung von Eingabefeldern
 * str	: Anfangsbuchstaben, die vom Benutzer schon eingegeben wurden
 * cont	: Array mit moeglichen Werten
 * akt	: Eingabefeld, welches vervollstaendigt werden soll
 * um diese Funktion verwenden zu können, muss eine leere Tabelle in einem 
 * ausgeblendeten <div>-Tag mit der id="completeBox" definiert werden
 * außerdem sollten auf der Seite Key-Events implementiert sein die den 'keycode'
 * zur Verfügung stellen
 */
function fieldComplete(str,cont,akt){
                 
        	if(keycode == '40'){ //auf die Taste 'nach unten' reagieren
        		if(document.getElementById('completeBox').style.display != 'none'){
        			var options = document.getElementById('completeBox').lastChild.getElementsByTagName('tr');
        			for (var i = 0; i < options.length; i++){
     				if(i == options.length-1){
	  					options[i].id = 'nix'+i;
     					options[0].id = 'selrow';
     					keycode = '';
     					return;
					}
     				if(options[i].id == 'selrow'){
     					options[i].id = 'nix'+i;
     					options[i+1].id = 'selrow';
     					keycode = '';
     					return;
     				}
        			}
        		}
        	}
         if(keycode == '38'){	//auf die Taste 'nach oben' reagieren
            if(document.getElementById('completeBox').style.display != 'none'){
               var options = document.getElementById('completeBox').lastChild.getElementsByTagName('tr');
               for (var i = options.length-1; i>=0; i--){
                  if(i == 0){
                     options[0].id = 'nix'+i;
                     options[options.length-1].id = 'selrow';
                     keycode = '';
                     return;
                  }
         	      if(options[i].id == 'selrow'){
		      	      options[i].id = 'nix'+i;
               	   options[i-1].id = 'selrow';
                  	keycode = '';
                     return;
                  }
               }
            }
         }
			if(keycode == '13'){//auf die Taste 'Enter' reagieren
	         if(document.getElementById('completeBox').style.display != 'none'){
					akt.value = document.getElementById('selrow').lastChild.innerHTML;
	         	document.getElementById('completeBox').style.display='none';
		      }
	         keycode = '';
	         return;
			}
         var ret = new Array();
			for (var i = 0; i < cont.length; i++){
				if(cont[i].toLowerCase().indexOf(str.toLowerCase())==0){
					ret.push(cont[i]);
				}
			}
			try{
				document.getElementById('completeBox').lastChild.removeChild(document.getElementById('sel'));
			}
			catch(e){}
			
			if(ret.length != 0 && ret.length <= 20){
				var sel = document.createElement('tbody');
				sel.id = 'sel';
				for(var i = 0; (i < ret.length && i < 20); i++){
				var cbrow = document.createElement('tr');
				var cbcell = document.createElement('td');
				cellText           = document.createTextNode(ret[i]);
				cbcell.onclick = function(){akt.value=this.innerHTML;document.getElementById('completeBox').style.display='none';}.closure();
				cbcell.appendChild(cellText);
				cbrow.appendChild(cbcell);
				if(i == 0) cbrow.id = 'selrow';
				sel.appendChild(cbrow);
			}
			document.getElementById('completeBox').style.top = (getY(akt)+parseInt(akt.offsetHeight)) + "px";
	   	document.getElementById('completeBox').style.left = getX(akt) + "px";
	      document.getElementById('completeBox').style.display = "block";
	      document.getElementById('completeBox').lastChild.appendChild(sel);
		}
		else document.getElementById('completeBox').style.display = "none";
}			

/*************************************************************** 
*	Diese Funktion ist speziell fuer unsere lieben IEs ;o)!!!!
*	Es kam vor, dass es zwei Tags gab, einmal <td id="verwzw1">
*	und ein <input name="verwzw1" ...>
*	Wenn man dann versucht das Feld Verwendungszweck 1 mit Hilfe
*	von getElementsByName() zu suchen, sind die lustigen IEs so
*	kreativ und geben diese Beiden zurueck. Das Feld steht leider
*	in dem Array erst an zweiter Stelle, so dass beim Zugriff
*	auf die erste Stelle man nur undefined zurueckbekommt.
*	Die Id ist halt nun mal kein Name.
*	Der Firefox macht den Unfug nicht.
*	
*	@param		String	field		Name des gesuchten Feldes
*	@return		Object				das gesuchte Feld
****************************************************************/
function getElementBNEx(field){
	elems = document.getElementsByName(field);
	for(_geBNEx = 0; elems != null && _geBNEx < elems.length; _geBNEx++){
		if(elems[_geBNEx].name == field){
			return elems[_geBNEx];
		}
	}
	return null;
}
