<!--
function ButtonInit()	//Buttens in Anwendung animieren
{
	var ua = navigator.userAgent.toLowerCase();
	isIE		= ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)); 
	isGecko		= (ua.indexOf("gecko") != -1);
	isSafari	= (ua.indexOf("safari") != -1);
	isKonqueror	= (ua.indexOf("konqueror") != -1);
	
	if (isIE)
	{
		document.onmouseover = raiseButton;
		document.onmouseout  = normalButton;
		document.onmousedown = lowerButton;
		document.onmouseup   = raiseButton;
	}
}
function raiseButton(e)
{
	var el = window.event.srcElement;
	if (el != null)
	{
		className = el.className;
		if (className == 'rteImage'			|| className == 'rteImageLowered')	el.className = 'rteImageRaised';
		if (className == 'hdnbtn'			|| className == 'hdnbtnLowered')	el.className = 'hdnbtnRaised';
	}
}
function normalButton(e)
{
	var el = window.event.srcElement;
	if (el != null)
	{
		className = el.className;
		if (className == 'rteImageRaised'	|| className == 'rteImageLowered')	el.className = 'rteImage';
		if (className == 'hdnbtnRaised'		|| className == 'hdnbtnLowered')	el.className = 'hdnbtn';
	}
}
function lowerButton(e)
{
	var el = window.event.srcElement;
	if (el != null)
	{
		className = el.className;
		if (className == 'rteImage'			|| className == 'rteImageRaised')	el.className = 'rteImageLowered';
		if (className == 'hdnbtn'			|| className == 'hdnbtnRaised')		el.className = 'hdnbtnLowered';
	}
}

function ChDat(obj,prev)		// Datum auf gültig prüfen
{
	var strFehler = "";			// String mit Fehlermeldung
	var TErr = false;			// Fehler, true wenn ungültiger Tag
	var jetzt = new Date();		// Datum Objekt
	var strD;					// String / Array für Datum
	var autofill = false;		// Datum wurde unvollständig eingegeben - für Vergangenheit Prüfung
	strD = trim(obj.value);
	obj.value = strD;
	if (strD == "") return;
	// Trennzeichen mit . ersetzen
	strD = strD.split(" ").join(".");
	strD = strD.split(",").join(".");
	strD = strD.split(":").join(".");
	strD = strD.split(";").join(".");
	strD = strD.split("-").join(".");
	// Datum zerlegen in Tag - Monat - Jahr
	strD = strD.split(".");
	if (strD.length == 1 && strD[0].length == 4)	// Datum wurde ohne Trennzeichen eingegeben TTMM
	{
		strD[1] = strD[0].substr(2, 2)
		strD[0] = strD[0].substr(0, 2)
	}
	if (strD.length == 1 && strD[0].length == 6)	// Datum wurde ohne Trennzeichen eingegeben TTMMJJ
	{
		strD[2] = strD[0].substr(4, 2)
		strD[1] = strD[0].substr(2, 2)
		strD[0] = strD[0].substr(0, 2)
	}
	if (strD.length == 1 && strD[0].length == 8)	// Datum wurde ohne Trennzeichen eingegeben TTMMJJJJ
	{
		strD[2] = strD[0].substr(4, 4)
		strD[1] = strD[0].substr(2, 2)
		strD[0] = strD[0].substr(0, 2)
	}
	// Array auf 3 Elemente prüfen und ev korrigieren mit aktuellen Datumswerten
	if (strD.length < 2) 
	{
		strD[strD.length] = jetzt.getMonth()+1;
		autofill = true;
	}
	if (strD.length < 3)
	{
		strD[strD.length] = jetzt.getFullYear();
		autofill = true;
	}
	if (strD[2] == "")
	{
		strD[2] = jetzt.getFullYear();
		autofill = true;
	}
	while (strD.length > 3) strD.length=strD.length-1;
	// Element mit aktuellem Datumswert wenn leer
	if (strD[0] == "") strD[0] = jetzt.getDate();
	if (strD[1] == "") strD[1] = jetzt.getMonth()+1;
	if (strD[2] == "") strD[2] = jetzt.getFullYear();
	// Jahr auf 4-stellig
	if (strD[2].length < 4) strD[2] = 2000 + parseInt(strD[2],10);
	// Jahresbereich SQL Server 1.1.1753 - 31.12.9999 11:59:59
	if (strD[2] < 1753 || strD[2] > 9999) strFehler = "Kein gültiges Datum - Jahr -> " + strD[2];
	// Monat überprüfen
	if (strD[1] < 1 || strD[1] > 12) strFehler = "Kein gültiges Datum - Monat -> " + strD[1];
	// Tag überprüfen
	if ((strD[1]==1 || strD[1]==3 || strD[1]==5 || strD[1]==7 || strD[1]==8 || strD[1]==10 || strD[1]==12) && (strD[0]<1 || strD[0]>31)) TErr = true;
	if ((strD[1]==4 || strD[1]==6 || strD[1]==9 || strD[1]==11) && (strD[0]<1 || strD[0]>30)) TErr = true;
	if (strD[1]==2 && (parseInt(strD[2]/4,10)*4)!=strD[2] && (strD[0]<1 || strD[0]>28)) TErr = true;
	if (strD[1]==2 && (parseInt(strD[2]/4,10)*4)==strD[2] && (strD[0]<1 || strD[0]>29)) TErr = true;
	if (TErr == true) strFehler = "Kein gültiges Datum - Tag -> " + strD[0];
	// Auf Zahlen prüfen
	if (isNaN(strD[0]) || isNaN(strD[1]) || isNaN(strD[2])) strFehler = "Keine gültiges Datumt -> " + strD[0] + "." + strD[1] + "." + strD[2];
	// Fehlermeldungen und Übergabe
	if (strFehler.length > 0)
	{
		alert(strFehler);
		objId = GetElementIdByName(obj.name);
		try		{document.forms[0].elements[objId-1].select();}
		catch(e){document.forms[0].elements[objId+1].select();}
		obj.select();
		return 0;
	}
	else if (prev==true && Date.UTC(strD[2],strD[1],strD[0]) < Date.UTC(jetzt.getFullYear(),jetzt.getMonth()+1,jetzt.getDate()))
	{
		// auf Standardformat xx.xx.xxxx bringen
		if (String(strD[0]).length == 1) strD[0] = "0" + strD[0];
		if (String(strD[1]).length == 1) strD[1] = "0" + strD[1];
		if (autofill == true) strD[2] = parseInt(strD[2]) + 1;
		obj.value = strD.join(".");
		if (autofill == false) alert("Dieses Datum liegt in der Vergangenheit");
	}
	else
	{
		// auf Standardformat xx.xx.xxxx bringen
		if (String(strD[0]).length == 1) strD[0] = "0" + strD[0];
		if (String(strD[1]).length == 1) strD[1] = "0" + strD[1];
		obj.value = strD.join(".");
	}
}

function ChTime(obj)			// Zeit auf gültig prüfen
{
	var strFehler = "";			// String mit Fehlermeldung
	var jetzt = new Date();		// Datum Objekt
	var strT;					// String / Array für Zeit
	strT = trim(obj.value);
	obj.value = strT;
	if (strT == "") return;
	// Trennzeichen mit : ersetzen
	strT = strT.split(" ").join(":");
	strT = strT.split(".").join(":");
	strT = strT.split(",").join(":");
	strT = strT.split(";").join(":");
	strT = strT.split("-").join(":");
	// Zeit zerlegen in Stunden - Minuten
	strT = strT.split(":");
	if (strT.length == 1 && strT[0].length == 4)	// Zeit wurde ohne Trennzeichen eingegeben SSMM
	{
		strT[1] = strT[0].substr(2, 2)
		strT[0] = strT[0].substr(0, 2)
	}
	// Array auf 2 Elemente prüfen und ev. ergänzen
	if (strT.length < 2) strT[strT.length] = "";
	while (strT.length > 2) strT.length=strT.length-1;
	// Element mit aktuellem Zeitwert wenn leer
	if (strT[0] == "") strT[0] = jetzt.getHours();
	if (strT[1] == "") strT[1] = jetzt.getMinutes();
	// Stunde überprüfen
	if (strT[0] < 0 || strT[0] > 24) strFehler = "Keine gültige Zeit - Stunde -> " + strT[0];
	// Minuten überprüfen
	if (strT[1] < 0 || strT[1] > 59) strFehler = "Keine gültige Zeit - Minuten -> " + strT[1];
	// Minuten nach 24 Uhr überprüfen
	if (strT[0] == 24 && strT[1] > 0) strFehler = "Keine gültige Zeit -> " + strT[0] + ":" + strT[1];
	// Auf Zahlen prüfen
	if (isNaN(strT[0]) || isNaN(strT[1])) strFehler = "Keine gültige Zeit -> " + strT[0] + ":" + strT[1];
	// Fehlermeldungen und Übergabe
	if (strFehler.length > 0)
	{
		alert(strFehler);
		objId = GetElementIdByName(obj.name);
		try		{document.forms[0].elements[objId-1].select();}
		catch(e){document.forms[0].elements[objId+1].select();}
		obj.select();
	}
	else
	{
		// auf Standardformat xx:xx bringen
		if (String(strT[0]).length == 1) strT[0] = "0" + strT[0];
		if (String(strT[1]).length == 1) strT[1] = "0" + strT[1];
		obj.value = strT.join(":");
	}
}

function ChMail(obj)		// E-Mail auf gültig prüfen
{
	var strFehler = "";				// String mit Fehlermeldung
	var strE;						// String E-Mail Adresse
	var atPos, dotPos, domLen, Madr, AnzAdr, actAdr;
	strE	= trim(obj.value);
	strE	= strE.replace(/ /g, ";");
	strE	= strE.replace(/,/g, ";");
	strE	= strE.replace(/;;/g, ";");
	if (strE.indexOf(";") == 0)					strE = strE.substr(1);
	if (strE.lastIndexOf(";") == strE.length-1)	strE = strE.substr(0,strE.length-1);
	obj.value = strE;
	if (strE == "") return;
	Madr	= strE.split(";");		// einzelne Adressen trennen
	AnzAdr	= Madr.length;
	for (i = 1; i <= AnzAdr; i++)	// jede Adresse prüfen
	{
		atPos	= Madr[i-1].indexOf("@");
		dotPos	= Madr[i-1].length - Madr[i-1].lastIndexOf(".");
		domLen	= Madr[i-1].lastIndexOf(".") - Madr[i-1].indexOf("@");
		if (AnzAdr > 1)	actAdr = i + ".  E-Mail Adresse -> " + Madr[i-1] + " <-\n";
		else			actAdr = "E-Mail Adresse -> " + Madr[i-1] + " <-\n";
		if (atPos < 1)					strFehler = actAdr + "ist unvollständig oder falsch.\nEine gültige E-Mail Adresse enthält einen Namen vor dem @";
		if (atPos == -1)				strFehler = actAdr + "ist unvollständig oder falsch.\nEine gültige E-Mail Adresse enthält ein -> @ <-";
		if (domLen < 3)					strFehler = actAdr + "ist unvollständig oder falsch.\nEine gültige E-Mail Adresse enthält eine Domain";
		if (dotPos > 4 || dotPos < 3)	strFehler = actAdr + "ist unvollständig oder falsch.\nEine gültige E-Mail Adresse enthält eine TopLevelDomain";
	}
	if (strFehler.length > 0)		// Fehlermeldungen und Übergabe
	{
		alert(strFehler + "\n\nName@Domain.TopLevelDomain");
		objId = GetElementIdByName(obj.name);
		try		{document.forms[0].elements[objId-1].select();}
		catch(e){document.forms[0].elements[objId+1].select();}
		obj.select();
	}
}

function SetDivVisHid(DivID,Type)	// change visibility state
{
	document.getElementById(DivID).style.display=Type;
}

function GetElementIdByName(elementName)
{
   var element = null;
   for(formIndex=0; formIndex < document.forms.length; formIndex++)
   {
      for(elementIndex=0; elementIndex < document.forms[formIndex].elements.length; elementIndex++)
      {
         if(document.forms[formIndex].elements[elementIndex].name == elementName)
         {
            element = elementIndex;
            break;
         }
      }
   }
   return element;
}

function SetClick(ObjName,NewVal)	// In Listen Icon Klick lösst Form-Post aus
{
	document.getElementsByName(ObjName)[0].value = NewVal;
	document.getElementsByName(ObjName)[0].click();
}

function SetThisReg(RegSubject, RegNr, RegItem)
{
	for(i in RegArr)
	{
		SetRegNr = i; SetRegNr++;
		obj = document.forms["FormHome"].elements[RegArr[i]];
		obj.style.backgroundImage	='url(../_upload/home/RegHGraf.gif)';
		obj.style.cursor			= "pointer";
		obj.onclick					= new Function("SetThisReg('" + RegSubject + "', '" + SetRegNr + "', '" + RegArr[i] + "')");
		document.getElementById(RegSubject+SetRegNr).style.display = "none";
	}
	obj = document.forms["FormHome"].elements[RegItem];
	obj.style.backgroundImage	='url(../_upload/home/RegDGraf.gif)';
	obj.onclick					= "";
	obj.style.cursor			= "auto";
	document.getElementById(RegSubject+RegNr).style.display = "inline";
	document.getElementById("sv_" + RegSubject).value = RegSubject+RegNr;
}

function CalcTage(Von,Bis,Anzahl)	// Anzahl Tage zwischen 2 Datum
{
	DatVon = document.forms[0].elements[Von].value.split(".");
	DatBis = document.forms[0].elements[Bis].value.split(".");
	if (isNaN(DatVon) && isNaN(DatBis)) document.forms[0].elements[Anzahl].value = (Date.UTC(DatBis[2],DatBis[1]-1,DatBis[0]) - Date.UTC(DatVon[2],DatVon[1]-1,DatVon[0]))/86400000;
	else document.forms[0].elements[Anzahl].value = "";
}

function trim(sString)				// führende und abschliessende Leerzeichen entfernen
{
	while (sString.substring(0,1) == ' ')								// führende
		sString = sString.substring(1, sString.length);
	while (sString.substring(sString.length-1, sString.length) == ' ')	// abschliessende
		sString = sString.substring(0,sString.length-1);
	while (sString.indexOf("  ") != -1)									// 2 Leerzeichen
		sString = sString.substring(0, sString.indexOf("  ")) + sString.substring(sString.indexOf("  ") + 1, sString.length);
	return sString;
}
function CRtrim(sString)			// Leerzeichen und Zeilenumbrüche entfernen
{
	sString = trim(sString);
	while (sString.charCodeAt(sString.length-1) == 10 || sString.charCodeAt(sString.length-1) == 13)
	{
		sString = sString.substring(0,sString.length-1);
		sString = trim(sString);
	}	
	return trim(sString);
}

function SetNum(sString,Set0)
{
	while (isNaN(sString.substring(0,1)) && sString.substring(0,1) != '-')
		sString = sString.substring(1, sString.length);
	while (sString.substring(0,1) == '0')
		sString = sString.substring(1, sString.length);
	sString = parseInt(sString);
	if ((isNaN(sString) || sString == 0) && Set0 == false)
		return "";
	else if (isNaN(sString) && Set0 == true)
		return "0";
	else
		return sString;
}
function SetByte(sString,Set0)
{
	while (isNaN(sString.substring(0,1)))
		sString = sString.substring(1, sString.length);
	sString = parseInt(sString,10);
	if ((isNaN(sString) || sString == 0) && Set0 == false)	return "";
	else if (isNaN(sString) && Set0 == true)				return "0";
	else
	{
		if (sString > 255)	sString = 255;
		if (sString < 0)	sString = 0;
		return sString;
	}
}
function SetInt(sString,Set0)
{
	while (isNaN(sString.substring(0,1)) && sString.substring(0,1) != '-')
		sString = sString.substring(1, sString.length);
	sString = parseInt(sString,10);
	if ((isNaN(sString) || sString == 0) && Set0 == false)	return "";
	else if (isNaN(sString) && Set0 == true)				return "0";
	else
	{
		if (sString > 32767)	sString = 32767;
		if (sString < -32768)	sString = -32768;
		return sString;
	}
}
function SetFloat(sString,Set0)
{
	var tempString = "";
	for (var i = 0; i < sString.length; i++)	//ev. Tausenderseparatoren entfernen
		if (isNaN(sString.substring(i,i+1))==false || sString.substring(i,i+1)=="." || sString.substring(i,i+1)=="," || sString.substring(i,i+1)=="-") tempString = tempString + sString.substring(i,i+1);
	sString = tempString;
	if (GetDecChar() == ".")	sString = sString.replace(",", ".");
	else						sString = sString.replace(".", ",");
	while (isNaN(sString.substring(0,1)) && sString.substring(0,1) != '-' && sString.substring(0,1) != GetDecChar())
		sString = sString.substring(1, sString.length);		// führende Zeichen die keine Zahl sind abschneiden
	sString = parseFloat(sString);
	if ((isNaN(sString) || sString == 0) && Set0 == false)	return "";
	else if (isNaN(sString) && Set0 == true)				return "0";
	else													return sString;
}
function GetDecChar()
{
	DecCharString = (1/2) + " ";
	return DecCharString.substr(1, 1);
}

function findloc(imgname)		// position of Image
{
	var image	= document.images[imgname];
	var posLeft	= (FindLeftEdge(image)) ? FindLeftEdge(image) : image.x;	// Mozilla or NS4+6
	var posTop	= (FindTopEdge(image)) ? FindTopEdge(image) : image.y;
	return ([posLeft,posTop]);
}
function FindLeftEdge(img)		// left of Image
{
	var xPos = img.offsetLeft;
	var tempEl = img.offsetParent;
	while (tempEl != null)
	{
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}
function FindTopEdge(img)		// top of Image
{
	var yPos = img.offsetTop;
	var tempEl = img.offsetParent;
	while (tempEl != null)
	{
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}
function finddist(imgname1,imgname2)	// Distance between img1 and img2
{
	var image1	= document.images[imgname1];
	var image2	= document.images[imgname2];
	var posLeft1	= (FindLeftEdge(image1)) ? FindLeftEdge(image1) : image.x;	// Mozilla or NS4+6
	var posLeft2	= (FindLeftEdge(image2)) ? FindLeftEdge(image2) : image.x;
	return posLeft2 - posLeft1;
}

function OpenPopUp(FName,PopName,w,h)
{
	if (isNaN(w)) w = 620;
	if (isNaN(h)) h = 445;
	FNameWindow = window.open(FName, PopName, "width="+w+", height="+h+", resizeable=no,location=no,toolbar=no,status=no,scrollbars=no,menubar=no");
	if (FNameWindow == null)	PopUpError();
	else						FNameWindow.focus();
}
function OpenScrollPopUp(FName,SPopName,w,h)
{
	if (isNaN(w)) w = 620;
	if (isNaN(h)) h = 445;
	FNameWindow = window.open(FName, SPopName, "width="+w+", height="+h+", resizeable=no,toolbar=no,status=no,scrollbars=yes,menubar=no");
	if (FNameWindow == null)	PopUpError();
	else						FNameWindow.focus();
}
function PopUpError()	// PopUp Error für PopUpfenster oder ScrollPopUpfenster
{
	alert("Das PopUp Fenster konnte nicht angezeigt werden\n\nWahrscheinlich blockiert Ihr Browser PopUp Fenster. Überprüfen Sie:\n\n- Im Internet Explorer, Menü Extras - Popupblocker\n- Google Symbolleiste\n- Yahoo Symbolleiste\n- MSN Symbolleiste\n- ev. andere Software wie «WebWasher» oder ähnlich\n\n(Tip: Symbolleisten können ausgeblendet sein - Klicken sie mit der\nrechten Maustaste in den Symbolleistenbereich)");
}
function LoginError()	// PopUp Error für Loginfenster
{
	alert("Das Login Fenster konnte nicht angezeigt werden\n\nWahrscheinlich blockiert Ihr Browser PopUp Fenster. Überprüfen Sie:\n\n- Im Internet Explorer, Menü Extras - Popupblocker\n- Google Symbolleiste\n- Yahoo Symbolleiste\n- MSN Symbolleiste\n- ev. andere Software wie «WebWasher» oder ähnlich\n\n(Tip: Symbolleisten können ausgeblendet sein - Klicken sie mit der\nrechten Maustaste in den Symbolleistenbereich)");
}
function PDFError()	// PopUp Error für PDFfenster
{
	alert("Das Acrobat-PDF Fenster konnte nicht angezeigt werden\n\nWahrscheinlich blockiert Ihr Browser PopUp Fenster. Überprüfen Sie:\n\n- Im Internet Explorer, Menü Extras - Popupblocker\n- Google Symbolleiste\n- Yahoo Symbolleiste\n- MSN Symbolleiste\n- ev. andere Software wie «WebWasher» oder ähnlich\n\n(Tip: Symbolleisten können ausgeblendet sein - Klicken sie mit der\nrechten Maustaste in den Symbolleistenbereich)");
}

function MakeHome(URL)		// URL zur Startseite machen
{
	if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
	{
		document.all.home.style.behavior= "url(#default#homepage)";
		document.all.home.sethomepage("http://" + URL);
	}
	else	alert("Ihr Browser unterstütz diese Funktion nicht!");
}
function MakeFavorit(URL,Titel)		// zu Favoriten hinzufügen
{ 
	if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
		window.external.AddFavorite("http://"+URL,Titel);
	else
		alert("Ihr Browser unterstütz diese Funktion nicht! Drücken Sie stattdessen Ctrl-D");
} 
function empfehlen(FName,w,h)	// Seite Empfehlen
{
	if (isNaN(w)) w = 620;
	if (isNaN(h)) h = 445;
	FNameWindow=window.open(FName, "FNameWindow", "width="+w+", height="+h+", resizeable=no, toolbar=no, status=no, scrollbars=no, menubar=no");
}

// E-Mail Adresse im HTML vor Spam schützen
function mail(name,domain,toplevel,style,text)
{
	if (style) style = 'class="'+style+'"';
	document.write('<a ' + style + ' href="mailto:' + name + '@' + domain + '.' + toplevel + '">');
	if (text) document.write(text + '</a>');
	else	document.write(name  + '@' + domain + '.' + toplevel + '</a>');
}

function SetPreis(Typ,ID,LogLevel,AgCanNetto)	// BuchungKalkulationXX Preis für Item
{
	var elmTyp		= Typ + "Typ_" + ID;
	var elmEinkauf	= Typ + "Einkauf_" + ID;
	var elmPreis	= Typ + "EPreis_" + ID;
	var elmNetto	= Typ + "ENetto_" + ID;
	var ArrTyp		= Typ + "Typ";
	var ArrEPreis	= Typ + "EPreis";
	var ArrEinkauf	= Typ + "Einkauf";
	var Anz, Preis=0, PreisCHF = "", Einkauf;
	for (var i = 0; i < GetObject(ArrTyp).length; i++)
	{
		if (GetObject(ArrTyp)[i] == document.forms[0].elements[elmTyp].value && GetObject(ArrEPreis)[i]>0) Preis = GetObject(ArrEPreis)[i];
		if (GetObject(ArrTyp)[i] == document.forms[0].elements[elmTyp].value) Einkauf = GetObject(ArrEinkauf)[i];
	}
	document.forms[0].elements[elmEinkauf].value = Einkauf;
	if (Preis == parseInt(Preis)) Preis = Preis + ".00";
	if (Preis > 0) document.forms[0].elements[elmPreis].value = Preis;
	if (Einkauf == 0) // Items die kein Einkauf sind deaktivieren
	{
		document.getElementById(elmNetto).style.backgroundColor = "transparent";
		document.forms[0].elements[elmNetto].readOnly = true;
	}
	else if (LogLevel <=3 || (LogLevel ==4 && AgCanNetto=="True"))
	{
		document.getElementById(elmNetto).style.backgroundColor = document.getElementById(elmPreis).style.backgroundColor;
		document.forms[0].elements[elmNetto].readOnly = false;
	}
	CalcSumme(Typ,ID);
}

function CalcSumme(Typ,ID)		// BuchungKalkulationXX - Summenkalkulation
{
	var anzKalkPos;		// Kalkulation 10, Gebüren und Versicherung 10 soll dann dynamisch werden...
	var elmEinkaufX		= Typ + "Einkauf_"  + ID;	// Einkauf  der Position i
	var elmAnzX			= Typ + "Anzahl_"   + ID;	// Anzahl   der Position i
	var elmPreisX		= Typ + "EPreis_"   + ID;	// EPreis   der Position i
	var elmPreisTotX	= Typ + "PreisCHF_" + ID;	// PreisCHF der Position i
	var elmNettoX		= Typ + "ENetto_"   + ID;	// ENetto   der Position i
	var elmNettoTotX	= Typ + "NettoCHF_" + ID;	// NettoCHF der Position i
	var elmErtragX		= Typ + "Ertrag_"   + ID;	// Ertrag   der Position i
	var elmPreisTot		= Typ + "PreisCHF_";		// PreisCHF der Position 1 to 10
	var elmNettoTot		= Typ + "NettoCHF_";		// NettoCHF der Position 1 to 10
	var elmErtrag		= Typ + "Ertrag_";			// Ertrag   der Position 1 to 10
	var elmSumme		= Typ + "Sum";				// Summe	   PreisCHF der Positionen 1 - 10
	var elmNetSumme		= Typ + "NettoSum";			// NettoSumme  NettoCHF der Positionen 1 - 10
	var elmErtSumme		= Typ + "ErtragSum";		// ErtragSumme Ertrag   der Positionen 1 - 10
	var elmTS			= Typ + "TS";				// hidden Summe  der Positionen 1 - 10
	var elmNS			= Typ + "NS";				// hidden Netto  der Positionen 1 - 10
	var elmES			= Typ + "ES";				// hidden Ertrag der Positionen 1 - 10
	var Anz, Preis, PreisCHF ="", Netto, NettoCHF ="", Ertrag ="", Summe = 0, NetSumme = 0, ErtSumme = 0;
	if (Typ=="BuKalk")
		anzKalkPos=15;
	else
		anzKalkPos=10;
	// Werte auslesen
	Einkauf	= document.forms[0].elements[elmEinkaufX].value;
	Anz		= document.forms[0].elements[elmAnzX].value;
	Preis	= document.forms[0].elements[elmPreisX].value/1;
	Netto	= document.forms[0].elements[elmNettoX].value/1;
	// Werte berechnen
	if (Anz > 0)		PreisCHF	= Anz * Preis;
	if (Netto != 0)		NettoCHF	= Anz * Netto;
	if (NettoCHF != 0)	Ertrag		= PreisCHF - NettoCHF;
	// Werte für Darstellung aufbereiten
	if (Anz > 0)		PreisCHF	= MakeDec(PreisCHF,2,".",true);	else PreisCHF = "";
	if (Preis != 0)		Preis		= MakeDec(Preis,2,".",true);	else Preis = "";
	if (Netto != 0)		Netto		= MakeDec(Netto,2,".",true);	else Netto = "";
	if (NettoCHF != 0)	NettoCHF	= MakeDec(NettoCHF,2,".",true);	else NettoCHF = "";
	if (Ertrag != 0)	Ertrag		= MakeDec(Ertrag,2,".",true);	else Ertrag = "";
	if (Einkauf == 0 && Anz > 0)
	{
		Netto		= "0.00";
		NettoCHF	= "0.00";
		Ertrag		= PreisCHF;
	}
	// Werte übertragen
	document.forms[0].elements[elmPreisX].value		= Preis;
	document.forms[0].elements[elmPreisTotX].value	= PreisCHF;
	document.forms[0].elements[elmNettoX].value		= Netto;
	document.forms[0].elements[elmNettoTotX].value	= NettoCHF;
	document.forms[0].elements[elmErtragX].value	= Ertrag;
	// Summen berechnen und übertragen
	for (var i = 1; i <= anzKalkPos; i++)
	{
		// Bruttosumme berechnen
		elmPreisToti	= elmPreisTot + i;
		PreisCHF		= document.forms[0].elements[elmPreisToti].value/1;
		if (PreisCHF != "") Summe = Summe + PreisCHF;
		// Nettosumme berechnen
		elmNettoToti	= elmNettoTot + i;
		NettoCHF		= document.forms[0].elements[elmNettoToti].value/1;
		if (NettoCHF != "") NetSumme = NetSumme + NettoCHF;
		// Ertragsumme berechnen
		elmErtragi		= elmErtrag + i;
		Ertrag			= document.forms[0].elements[elmErtragi].value/1;
		if (Ertrag != "") ErtSumme = ErtSumme + Ertrag;
	}
	// Summen für Teilkalkulationen übertragen
	document.forms[0].elements[elmSumme].value		= MakeDec(Summe,2,".",false);
	document.forms[0].elements[elmNetSumme].value	= MakeDec(NetSumme,2,".",true);
	document.forms[0].elements[elmErtSumme].value	= MakeDec(ErtSumme,2,".",false);
	// hidden Elemente, Summen für Teilkalkulationen übertragen
	document.forms[0].elements[elmTS].value			= Summe;
	document.forms[0].elements[elmNS].value			= NetSumme;
	document.forms[0].elements[elmES].value			= ErtSumme;
	// Summen für Gesamtkalkulation übertragen
	document.forms[0].elements["BuKalkTotSum"].value		= MakeDec(parseFloat(document.forms[0].elements["BuKalkTS"].value) + parseFloat(document.forms[0].elements["BuKalkGebTS"].value) + parseFloat(document.forms[0].elements["BuKalkVersTS"].value),2,".",false);
	document.forms[0].elements["BuKalkTotNettoSum"].value	= MakeDec(parseFloat(document.forms[0].elements["BuKalkNS"].value) + parseFloat(document.forms[0].elements["BuKalkGebNS"].value) + parseFloat(document.forms[0].elements["BuKalkVersNS"].value),2,".",false);
	document.forms[0].elements["BuKalkTotErtragSum"].value	= MakeDec(parseFloat(document.forms[0].elements["BuKalkES"].value) + parseFloat(document.forms[0].elements["BuKalkGebES"].value) + parseFloat(document.forms[0].elements["BuKalkVersES"].value),2,".",false);
	if (parseFloat(document.forms[0].elements["BuKalkTotErtragSum"].value) != 0 && parseFloat(document.forms[0].elements["BuKalkTotSum"].value) != 0)
		document.forms[0].elements["BuKalkTotErtragProz"].value	= MakeDec(parseFloat(document.forms[0].elements["BuKalkTotErtragSum"].value) / (parseFloat(document.forms[0].elements["BuKalkTotSum"].value)/100),2,".",false) + "%";
}

function MakeDec(fldVal,Anz,Delimiter,Emptyfill)	// Dezimalzahl erstellen
{
	var strVal = String(fldVal);
	if (Emptyfill==false && (strVal.length==0 || strVal==0))	return "";
	if (isNaN(fldVal))				strVal = "0";
	strVal = (Math.round(strVal*100)/100).toString();
	strVal = strVal.split(Delimiter);
	if (strVal.length < 2)			strVal[strVal.length] = "";
	if (strVal[0] == "")			strVal[0] = "0"
	while (strVal[1].length < Anz)	strVal[1] = strVal[1] + "0";
	return strVal.join(Delimiter);
} 

function SetFld()	// Betriebsystem und Browser an Formfeld übergeben
{
	document.forms.ProfilEdit.ProfBetriebssystem.value = getOS();
	document.forms.ProfilEdit.ProfBrowser.value = getBrowser();
	document.forms.ProfilEdit.ProfUserAgent.value = getUserAgent();
	document.forms.ProfilEdit.ProfAppVersion.value = getAppVersion();
}

// -->
