// SW 2005-06-06: Berechnung der Teilnehmergebühren
function berechneKosten(f)
{
	var summe=0;
	var felder=f.AnzahlFelder.value;
	for(var i=1; i<=felder; i++)
	{
		var addieren = false;
		var tVorname = eval("f.Teilnehmer" + i + "Vorname.value");
		var tNachname = eval("f.Teilnehmer" + i + "Nachname.value");
		var tStatus = eval("f.Teilnehmer" + i + "Status.options[f.Teilnehmer" + i + "Status.selectedIndex].value");
		var tStrasse = "n/a";
		var tPlz = "n/a";
		var tOrt = "n/a";
		var tErweiterteDaten = eval("f.Teilnehmer" + i + "AdressdatenErweitert.value");
		if(tErweiterteDaten=="true") {
			tStrasse = eval("f.Teilnehmer" + i + "Strasse.value");
			tPlz = eval("f.Teilnehmer" + i + "Plz.value");
			tOrt = eval("f.Teilnehmer" + i + "Ort.value");
		}
		var tBetrag = 0;
		if( tStatus == "ZA" ) {
			tBetrag = parseFloat(f.GebührZA.value);
		} else if( tStatus == "ASS" ) {
			tBetrag = parseFloat(f.GebührASS.value);
		} else if( tStatus == "ZMF" ) {
			tBetrag = parseFloat(f.GebührZMF.value);
		}
		if(tVorname!="" || tNachname!="") {
			addieren = true;
		}
		if(tErweiterteDaten=="true" && (tStrasse!="" || tPlz!="" || tOrt!="")) {
			addieren = true;
		}
		if(addieren) {
			summe += tBetrag;
		}
	}
	f.Kosten.value = getGermanFormattedAmount(summe);
}

// SW 2005-06-09: Formatierung der Teilnehmergebühren in deutschem Zahlenformat
function getGermanFormattedAmount(summe) {
	var ret = "" + (summe.toFixed(2));
	var vorkomma = ret.substring(0,ret.indexOf("."));
	var nachkomma = ret.substring(ret.indexOf(".")+1,ret.length);;
	var merker = "";
	while(vorkomma.length > 3) {
		merker = "." + vorkomma.substring(vorkomma.length-3,vorkomma.length) + merker;
		vorkomma = vorkomma.substring(0,vorkomma.length-3);
	}
	vorkomma = vorkomma + merker;
	ret = vorkomma + "," + nachkomma;
	return ret;
}

function mehrTeilnehmer()
{
	document.anmelden.MAXTEILNEHMER.value = parseInt(document.anmelden.MAXTEILNEHMER.value) + 5;
	document.anmelden.mehr.value = "ja";
}

// SW 2004-07-13: Handler Teilnehmeranzahl geändert
function aktTeilnehmer(obj)
{
	//Validierung neuer Wert, ggfs. Rückschreiben über merker
	if(!isValidNumber(obj))
	{
		obj.value = merker;
		alert('Bitte geben Sie eine Zahl<100 ein.');
	}
	else
	{
		berechneKosten();
	}
}

// SW 2004-07-13: Prüfung Eingabe auf gültige Teilnehmeranzahl 
function isValidNumber(obj) {
	var strok = /^\d{1,2}$/;
	return ( strok.exec( obj.value ) );
}

// SW 2004-07-13: Highlighting über DOM 
function hl(elem,modus)
{
	if(document.getElementById)
	{
		if(modus!=null)
		{
			document.getElementById(elem).style.color='#FF6600';
		}
		else
		{
			document.getElementById(elem).style.color='#000000';
		}
	}
}

// SW-2004-05-18: Open Popup with specified options
function popup(pname)
{
	var popupOptionen = "";
	switch(pname)
	{
		 case "AGB":
		 popupOptionen='menubar=yes,scrollbars=yes,resizable=yes,width=665,height=550';
		 break;
		 case "infos":
		 popupOptionen='menubar=yes,scrollbars=yes,resizable=yes,width=665,height=550';
		 break;
		 default:
		 alert("Popup noch nichtdefiniert");
		 break;	
	}
	window.open('',pname,popupOptionen);
}

// SW-2004-05-18: Determine if value is valid email adress
function isValidEmail(obj) {
	var strok = /.+@.+\..+/;
	return ( strok.exec( obj.value ) );
}

// KA-2004-05-24: Determine if value is valid email adress from a string
function isValidEmailString(str) {
	str = str.substring(0, str.indexOf(","))
	var strok = /.+@.+\..+/;
	return ( strok.exec( str ) );
}

// KA-2004-05-18: Determine if a checkbox is checked
function isCheckBoxChecked(obj) {
	if (obj.checked == true) return true;
	else return false;
}

// SW-2004-05-18: Determine if value is number
function isNumber(obj) {
	var strok = /^\D$/;
	return ( strok.exec( obj.value ) );
}

// SW-2004-05-18: Determine if value is empty
function isEmpty(obj) {
	return ( obj.value=="" );
}

/* 	KA-2004-05-27: Checkes value of radiobutton group -> 
	return number of RadioButton which is checked
	returns "undefined" if nothing is checked  */
function getRadioInput(myObj) {
	var myVal = 'undefined';
	if(typeof myObj =='object') {
		for (var i=0; i<myObj.length; i++) {
			if(myObj[i].checked) {
				myVal = myObj[i].value;
			} 
		}
	}
	return myVal;
}

// 	KA-2004-05-27: Checkes if given Object is a radio Button
function isRadioButton(myObj) {
	if ( myObj == null ) { return false; }
	else {
		if (myObj.type == 'radio') return true;
		else return false;
	}
}

/*	Checks which Radio Button in selected
	If no one is selected, the return value is -1
	else the return value is the listed number of the button
*/
function checkRadioButtons(myObj, NumberOfRadioButtons) {
	var iRet = -1;
	
	for (var i=0 ; i<NumberOfRadioButtons; i++)	{
		if (myObj[i].checked == true)
			iRet = i;
	}
	return iRet;
}

/*	Checks the quantity of an input field
	If the quantity is 0, an confirmation will be alerted
	If it will be confirmed, the form will be submitted  */
function checkQuantity(quantity, formname, fieldname) {
	if (quantity >= 0) {
		if (quantity == 0) {
			check = confirm("Wollen Sie dieses Produkt wirklich löschen?");
			if(check == true) {
				doSubmit('update', formname);
			}
			else {
				//setFocus();
			}
		}
	}
	else { alert ("Sie müssen eine Ziffer eingeben"); }
}


/*	Submit an Form with the the given action */
//	myForm: Formular als Objekt, z.B. aus Button heraus aufgerufen -> onclick="doSubmitForm(this.form)"
//	myAction: optional, enthält die ActionURL und wird nur übergeben, wenn vorhandene ActionURL geändert werden soll
function doSubmitForm(myForm,myAction) {
	if ( myAction != null ) myForm.action = myAction;
	myForm.submit();
}



