/*****************************************************
*
*	JS function checkFormFields
*
*	(p) 2007 Christoph Lebiger / LUKA netconsult
*
*	Input :
*
*	fields2check : associative array of formfields to check
*
*	errorMsg : prepended error message (optional)
*
*	form2check : # or name of form (optional)
*
*	debug : Debug Alerts if > 0 (optional)
*
******************************************************/

//alert("loaded - 30");

function checkForm(fields2check, errorMsg, form2check, debug) {

//alert("called");

	// DEBUG: submitted vars
	if (debug) {
		alert ("called checkFormFields:\n-----------------------------------\nArray: " +fields2check+ "\nErrorMsg: "+errorMsg+"\nFormname: "+form2check);
	}

	// ERROR: No array to check!
	if (!(fields2check)) {
		alert("checkFormFields\nError : no array !");
		return false;
	}

	// DEFAULT: Error Message
	if (!(errorMsg)) {
		errorMsg = "Please insert correct data for ";
	}

	// DEFAULT: Form (first form in document)
	if ((!(form2check))||(!(document.forms[form2check]))) {
		form2check = 0;
	}

	// transfere radiobutton values (radio[0].value ... radio[n].value) in normal values (radio.value)
	for (var i = 0; i < document.forms[form2check].length; ++i) {
	  	// got a radio button ...
		if (document.forms[form2check].elements[i].type == "radio") {
			var theName = document.forms[form2check].elements[i].name;
			// DEBUG: name of radiobutton
			if (debug) { alert( document.forms[form2check].elements[i].name + " is a radiobutton!"); }
			// ... it is checked ...
		  	if (document.forms[form2check].elements[i].checked) {
		  		// init the new element
		  		var helpMe = "";
		  		document.forms[form2check].elements[document.forms[form2check].elements[i].name].value = helpMe;
		  		// DEBUG: button is checked
		  		if (debug) { alert( document.forms[form2check].elements[i].name + " is checked!\n(" + document.forms[form2check].elements[i].value + ")"); }
		  		// ... so define the 'normal' value as the value of the checked radiobutton
		  		document.forms[form2check].elements[document.forms[form2check].elements[i].name].value = document.forms[form2check].elements[i].value;
		  		// DEBUG: value of checked radiobutton
		  		if (debug) { alert("Checked Radiobutton:\ndocument.forms[" + form2check + "].elements[" + document.forms[form2check].elements[i].name + "].value:\n" + document.forms[form2check].elements[document.forms[form2check].elements[i].name].value); }
		  	}
		  	// DEBUG: Value of element after if-block
		  	if (debug) { alert("End Radiobutton-Check:\ndocument.forms[" + form2check + "].elements[" + document.forms[form2check].elements[i].name + "].value:\n" + document.forms[form2check].elements[document.forms[form2check].elements[i].name].value); }
		}
	}

	// cycle to each field to check
	for (var i = 0; i < fields2check.length; i++) {
		// DEBUG: checked fields
		if (debug) { alert("FieldCheck:\n-----------------\nField : document.forms[" + form2check + "].elements[" + fields2check[i].name + "]\nvalue : " + document.forms[form2check].elements[fields2check[i].name].value); }
		// if value is undefined, empty or has fields2check.value (value it SHOULDN'T have) then exit with error
		if ((document.forms[form2check].elements[fields2check[i].name].value == undefined)||(document.forms[form2check].elements[fields2check[i].name].value == fields2check[i].value)||(document.forms[form2check].elements[fields2check[i].name].value == "")) {
			alert(errorMsg + fields2check[i].label);
			return false;
		// value checked OK, if it's a mail, check if format is correct - if not, exit with error
		} else if (fields2check[i].name == "mail" || fields2check[i].name == "email"){
			if (!(isEmail(document.forms[form2check].elements[fields2check[i].name].value))) {
				alert(errorMsg + fields2check[i].label);
				return false;
			}
		}
	}
	// everything ok - return true!
	return true;
}

function isEmail(mailString) {
	if (!mailString.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@[a-zA-Z0-9]([a-zA-Z0-9\._-]{1,})(\.[a-zA-Z]{2,4})$/)) {
		return false;
	}
	return true;
}

/*****JS function checkFormFields***END***************/
