// Allgemeine Funktionen
function ShowTxtInfo(txt){
     window.status = txt;
     // setTimeout("erase()",2000);
}

function doOnLoad(which) {  
	parent.ABTOP.setSubMenue(which);
}

// Calculator functions

	var windowCalculator = null;

	function openCalcWindow(which) {
		Vers = (navigator.userAgent);
		MacCheck =  Vers.indexOf("Mac");
		WinCheck =  Vers.indexOf("Win");
		var barlohn=0;
		if (which=="barlohn") barlohn=110;
		if (MacCheck != -1) {
		 return New_Window('rr/'+which +'.htm',which,620,600+barlohn,16,16,1,0,0); // mac NS & IE
		}
		else
		{	return New_Window('rr/'+which +'.htm',which,620,600+barlohn,16,16,1,0,0); // windows NS & IE
		}
	}
	
	function openerError(text,url,line) {
		windowCalculator = openCalcWindow('fcalc');
		return true;
	}
	
	function openWindow_Calculator(which) {
	
		window.onError = openerError;
			

				
			windowCalculator = openCalcWindow(which);
	
		
			windowCalculator.focus();
	
		
		window.onError = null;
	}


// 	MATHEMATISCHE HILFSFUNKTIONEN
//	
// 			string_num()  > Wandelt einen String in eine Zahl, entfernt alle Nicht-Zahlen
// 			num_format()  > Wandelt eine Zahl in einen String mit n-Nachkommastellen


//------------- MATHEMATISCHE HILFSFUNKTIONEN -----------------
//
function num_format(val, n, lng) {

	// Wandelt eine Zahl in einen String mit n-Nachkommastellen (max = 16)
	// Werden keine Stellen uebergeben > 2 Dezimalstellen
	// Das erste "," oder der erste "." wird die Dezimatstelle.
	// dl: Erweiterung fuer deutsche oder englische Notation

	// Sprachnotation
	if (typeof(lng) == "undefined") {
		komma = ",";				// deutsch
		punkt = ".";
	}
	else {
		if  (lng == "E") {
			komma = ".";				// englisch
			punkt = ",";
		}
		else if ( lng == "ohne" ) {
			komma = "";					// nur Zahlen darstellen
			punkt = "";
		} 
		else {
			komma = ",";				// deutsch
			punkt = ".";		
		}
	}

	var wert = val.toString();	// dl: Fehler, wenn val nicht als String sondern als Zahl uebergeben wird
		
	if (typeof(wert)=="undefined")
    {   //alert("FUNKTION: num_format (zahl)\nFEHLER: Falscher Parameter!");
        return 0;}

	if (typeof(n)!="number")
		n = 2;
	else
		n = Math.round(eval(n));
		
	n = (n<0) ? n = 0 : n;
	n = (n>16) ? 16 : n;

	//if(n==0) return (Math.round(wert));

    // Erlaubte Zeichen ausfiltern und "," in "." wandeln.
    res = "";
    erl = "0123456789.";
    max = wert.length;
	
    for (i=1; i<=max; i++)
    {
    	akt   = wert.charAt(i-1);
    	akt   = (akt == ",") ? "." : akt;
    	check = erl.indexOf(akt);
    	if (check >= 0)
    		res = res + akt;
    	if (i==1 && akt == "-")
    		res = res + akt;
    }
    
    if (res == "" ) return 0;//|| typeof(res)!="string"

	wert = eval(res);
	
	vorz = (wert < 0) ? "-" : "";
	wert = Math.abs(wert);
	wert = wert + "";
	
	nullen = "0000000000000000";
	nullen = nullen.substring(0, n);

	if (wert==0)
		if (n==0)
			return ("0");
		else
			return ("0" + komma + nullen);

	wert = wert * Math.pow(10,n);
	wert = Math.round(wert);
	wert = wert + "";
	max  = wert.length;
	
	if (max <= n)
		return (vorz + "0" + komma + nullen.substring(0, n - max) + wert);

	wert1 = wert.substring(0,max-n);
	wert2 = wert.substring(max-n,max);
	
	max  = wert1.length;
	if (max > 3) wert1 = wert1.substring(0,max-3) + punkt + wert1.substring(max-3,max);
	
	max  = wert1.length;
	if (max > 7) wert1 = wert1.substring(0,max-7) + punkt + wert1.substring(max-7,max);

	max  = wert1.length;
	if (max > 11) wert1 = wert1.substring(0,max-11) + punkt + wert1.substring(max-11,max);

	if ( n== 0) return vorz + wert1;
	
	return (vorz + wert1 + komma + wert2);

}

//------------------------------

function string_num(str) {

    // Entfernt aus dem uebergebenen Wert alle Zeichen ausser "0123456789,"
    // dl: Gibt die Zahl in englischer Notation zurueck	

	var i, start, ende, vorz, res, erl, akt, check, komma, res, restmp;
	    
	if (typeof(str)=="undefined")
    {	//alert("FUNKTION: string_num (str)\nFEHLER: Falscher Parameter!");
		return(0);}
		
	str = str + "";
    
    start = 1;
    ende  = str.length;
    vorz  = 1;
    
    // Vorzeichen nur uebernehmen, wenn es das ERSTE Zeichen ist.
    if (str.charAt(0) == "-")
    {
        vorz = -1;
        start = 2;
    if (ende == 1)
        return (0);
    }
    
    
    // Erlaubte Zeichen ausfiltern und "," in "." wandeln.
    res = "";
    erl = "0123456789,";
    
    for (i=start; i<=ende; i++)
    {
    	akt   = str.charAt(i-1);
    	//akt   = (akt == ".") ? "" : akt;
    	check = erl.indexOf(akt);
    	if (check >= 0)
    		res = res + akt;
    }
    
    if (res == "" || typeof(res)!="string")
        return (0);
    
    // Ueberzaehlige Kommastellen entfernen (nur die erste zaehlt)
    max    = res.length;
    komma  = 1;
    restmp = res;
    res    = "";
    for (i=1; i<=max; i++)
    {
       akt = restmp.charAt(i-1);
       akt = (akt == "," && komma == 0) ? "" : akt;
       if (akt == ",")
       {     komma = 0;
			akt = ".";}
			
       res = res + akt;
    }

    res = res * vorz;
    
    return(res);
}


//------------------------------

function New_Window (WinURL, WinName, WinWidth, WinHeight, WinXPos, WinYPos, WinScroll, WinMenu, WinLocation)
	{
		// oeffnet ein neues Fenster.
		// Die Gr�se bezieht sich auf den INNEREN Bereich.
		// Ausser der URL sind alle anderen Parameter optional.
		
		// WinURL		> URL, die in dem Fenster erscheinen soll.
		// WinName		> Identifikationsname des neuen Fensters.		DEFAULT = "EXTRA"
		// WinWidth		> Breite des Fensters.							DEFAULT = 320
		// WinHeight	> Hhe des Fensters.							DEFAULT = 240
		// WinXPos		> X-Position des Fensters (nur Netscape)		DEFAULT = 16
		// WinYPos		> Y-Position des Fensters (nur Netscape)		DEFAULT = 16
		// WinScroll	> Anzeige mit Scroll-Leiste						DEFAULT = 0
		//
		
		if (typeof(WinURL)		!= "string") return 0;
		if (typeof(WinName)		!= "string") WinName	= "EXTRA";
		if (typeof(WinWidth)	!= "number") WinWidth	= 800;
		if (typeof(WinHeight)	!= "number") WinHeight	= 600;
		if (typeof(WinXPos)		!= "number") WinXPos	= 16;
		if (typeof(WinYPos)		!= "number") WinYPos	= 16;
		if (typeof(WinScroll)	!= "number") WinScroll	= 1;
		if (typeof(WinMenu)		!= "number") WinMenu	= 1;
		if (typeof(WinLocation)	!= "number") WinLocation = 1;
		
		
		Scroll = 0;
		if (WinScroll != 0) Scroll = 1;
		
		// Unter dem Explorer wird das Fenster bei eingeschalteten Scrollbars
		// immer um 16 Pixel vergr�sert, egal ob sie sichtbar sind, oder nicht.
		// Der Navigator dagegen zeigt die Scrollbars innerhalb der gesetzten Fensterdimension.
		// Daher wird auf den Browser-Typ getestet und die Fenstergre ggf. verkleinert:
		
		Check = navigator.appName;
		Netscape  = Check.indexOf("Netscape");	// -1, wenn nicht Netscape, sonst >= 0
		Microsoft = Check.indexOf("Microsoft");	// -1, wenn nicht Microsoft, sonst >= 0

		if (Microsoft != -1 && Scroll == 1)
		{	WinWidth = WinWidth - 16;
			WinHeight = WinHeight - 16;}

		//if (Netscape != -1 && WinMenu == 1)
		//	WinHeight = WinHeight - 78;
		
		DefString = "width=" + WinWidth + ",height=" + WinHeight + ",";
		DefString = DefString + "screenX=" + WinXPos + ",screenY=" + WinYPos + ",";
		DefString = DefString + "scrollbars=" + Scroll + ",location=" + WinLocation;

		// DefString = DefString + ",location=0,toolbar=1,status=1,dependent=1";		
			
		if (WinMenu == 0)
			DefString = DefString + ",resizable=1,toolbar=0,status=0,directories=0,menubar=0";
		else
			DefString = DefString + ",resizable=1,toolbar=0,status=0,directories=0,menubar=0";
			// DefString = DefString + ",resizable=1,toolbar=1,status=1,directories=0,menubar=1";
	
		var tmpWin;
		tmpWin = window.open(WinURL, WinName, DefString);
		
		return tmpWin;
	}

	
