////////////////////////////////////
// Allgemeine Funktionen weil Notes die übergebenen Parameter nicht in die Action übernimmt
////////////////////////////////////

/**
 * Validiert ob Felder gefüllt bzw. bei Select-Felder etwas ausgewählt ist
 * @param objForm	-	Formular-Objekt
 * @param arrayParams	-	Array mit Parametern ( Bsp.: "Paramname 1", "Feldname 1", "Paramname 2", "Feldname 2", ... )
 */
function updateFormAction( objForm, arrayParams ) {
	for ( i = 0; i < arrayParams.length; i+=2) {
		// param zusammenbasteln
		var par = (arrayParams[i] + "=" + objForm.elements[arrayParams[i+1]].value);
		if ( objForm.action.indexOf(par) < 0 ) objForm.action += ("&" + par);
	}
}


////////////////////////////////////
// Allgemeine Funktionen zur Validierung
////////////////////////////////////

function isValidMail(strMail) {
	return (strMail != null
		&& strMail.length > 0 
		&& strMail.indexOf('@') > 0 
		&& strMail.length - strMail.lastIndexOf('.') > 2 
		&& strMail.lastIndexOf('.') - strMail.indexOf('@') > 2);
}

/**
 * Validiert ob Felder gefüllt bzw. bei Select-Felder etwas ausgewählt ist
 * @param objForm	-	Formular-Objekt
 * @param fields	-	Array mit den zu testenden Feldern ( Bsp.: "Feldname1", "Bezeichnung 1", "Feldname2", "Bezeichnung 2", ... )
 */
function checkCommonFields( objForm, fields) {
	if ( fields == null || objForm == null ) return true;
	for ( i = 0; i < fields.length; i+=2 ) {
		if (!objForm.elements[ fields[i] ]) continue;
		var status = false;
 		var focus = true;
 		switch (objForm.elements[ fields[i] ].type) {
 		case "select-one": 
 			status = (objForm.elements[ fields[i] ].selectedIndex > 0 ? true : false);
 			break;
		case "checkbox":
			status = (objForm.elements[ fields[i] ].checked ? true : false);
		break;
 		case "hidden": continue; break;
 		default:
 			status = (objForm.elements[ fields[i] ].value.length > 0 ? true : false);
 		}
  		if ( !status ) {
   			alert( "Bitte fuellen Sie alle gekennzeichneten Felder aus. Die Angabe - " + fields[i+1] + " - fehlt.");
   			if ( objForm.elements[ fields[i] ].focus ) objForm.elements[ fields[i] ].focus();
   			return false;
  		}
 	}
 	return true;
}

/**
 * Validiert auf korrektes E-Mail-Format
 * @param objForm	-	Formular-Objekt
 * @param fields	-	Array mit den zu testenden Feldern ( Bsp.: "Feldname1", "Bezeichnung 1", "Feldname2", "Bezeichnung 2, ... )
 */
function checkMailFields( objForm, fields ) {
	if ( fields == null || objForm == null ) return true;
	for ( i = 0; i < fields.length; i+=2 ) {
		if (!objForm.elements[ fields[i] ]) continue;
		if ( !isValidMail( objForm.elements[ fields[i] ].value) ) {
			alert("Bitte geben Sie im Feld - " + fields[i+1] + " - eine korrekte E-Mail-Adresse ein.");
			objForm.elements[ fields[i] ].focus();
			return false;  		
		}
	}
	return true;
}

////////////////////////////////////
// Funktionen zur Anmeldung
////////////////////////////////////

/**
 * onSubmit - Funktion für Anmeldeformular
 */
function checkAnmeldung() {
	var aFields = new Array("NL_Anrede", "Anrede", "NL_Name", "Name", "NL_Vorname", "Vorname", "NL_Firma", "Firma", "NL_Mail", "E-Mail");
 	var mFields = new Array("NL_Mail", "E-Mail");
 	
 	if (!checkCommonFields(document.forms[0], aFields)) return false;
 	if (!checkMailFields(document.forms[0], mFields)) return false;
 	return true;
}


function sendAnmeldung() {
	if (document.forms[0].onsubmit) {
		var retVal = document.forms[0].onsubmit();
		if (typeof retVal == "boolean" && retVal == false) return false;
	}
	document.forms[0].elements.senden.click();
	return true;
}

////////////////////////////////////
// Funktionen zur Änderung
////////////////////////////////////

/**
 * onSubmit - Funktion für Änderungsformular
 */
function checkAenderung() {
	var aFields = new Array("NL_MailNeu", "neue E-Mail");
 	if (!checkCommonFields(document.forms[0], aFields)) return false;
 	if (!checkMailFields(document.forms[0], aFields)) return false;
 	return true;
}

function sendAenderung() {
	if (document.forms[0].onsubmit) {
		var retVal = document.forms[0].onsubmit();
		if (typeof retVal == "boolean" && retVal == false) return false;
	}

	mFields = new Array("aboid", "tmp_tNoteId", "show", "tmp_tShowCmd");
	updateFormAction( document.forms[0], mFields);

	document.forms[0].elements.senden.click();
	return true;
}

////////////////////////////////////
// Funktionen zur Abmeldung
////////////////////////////////////
function sendAbmeldung() {
	var mFields = new Array("aboid", "tmp_tNoteId", "show", "tmp_tShowCmd");
	updateFormAction( document.forms[0], mFields);

	document.forms[0].elements.senden.click();
	return true;
}

////////////////////////////////////
// Funktionen zum Empfehlen
////////////////////////////////////
function checkEmpfehlung() {
	var aFields = new Array("NL_Anrede", "Anrede", "NL_Name", "Name", "NL_Vorname", "Vorname", "NL_Firma", "Firma", "NL_Mail", "E-Mail");
 	var mFields = new Array("NL_Mail", "E-Mail");
 	
 	if (!checkCommonFields(document.forms[0], aFields)) return false;
 	if (!checkMailFields(document.forms[0], mFields)) return false;

 	return true;
}

function sendEmpfehlung() {
	if (document.forms[0].onsubmit) {
		var retVal = document.forms[0].onsubmit();
		if (typeof retVal == "boolean" && retVal == false) return false;
	}

	mFields = new Array("aboid", "tmp_tNoteId", "show", "tmp_tShowCmd");
	updateFormAction( document.forms[0], mFields);

	document.forms[0].elements.senden.click();
	return true;
}

