/*	JavaScript
	============================================================
	This script comes with no warranty.
	It may be used, copied and modified
	for your own purposes as you like.

	Manfred Sorgo
	http://www.sorgo.de
	============================================================
*/

//	a simple form input checker
function cf(
//	comma separated list of input tag name / displayed name
//	that must have contents
	ftx
) 
{
//	tag / display names containers
	var fts = new Array();
	var fns = new Array();
//	formal correctnes
	var ok = true;
//	CHECK FORM
	var frm = window.document.forms[0];
//	if no form available: form error
	if (!frm) {
		alert('Formularfehler / form error');
		return false;
	}
//	ALL ENTRIES
//	- eliminate leading / tailing blanks
//	- check email 
	for (var i = 0; i < frm.elements.length; ++i) {
		var el = frm.elements[i];
	//	clear leading and tailing banks	
		el.value = el.value.replace(/^\s*/, '');
		el.value = el.value.replace(/\s*$/, '');
	//	check for proper email addresses
		if (!cm(el)) return false;
	}	
//	REQUIRED ENTRIES
	if (ftx.length > 0) {
		var mis = new Array();
		var first;
	//	split by ','
		var lst = ftx.split(',');
		for (var i = 0; i < lst.length; ++i) {
			var ok = false;
			var mtmp = new Array();
			var ftmp;
		//	split by '|': one maust be valid
			var one = lst[i].split('|');
			for (var ii = 0; (!ok) && (ii < one.length); ++ii) {
				var tr = one[ii].split('=');
				var fld = tr[0];
				var desc = tr[1];
				if (!desc) { desc = fld; }
				var el = frm.elements[fld];
				if (el) {
					if (!el.value.length) { 
						mtmp.push(desc);
						if (!ftmp) ftmp = el;
					}
					else ok = true;
				}
			}
		//	evaluation
			if ((!ok) && mtmp.length) {
				mis.push(mtmp.join(' / '));
				if (!first) first = ftmp;
			}
		}
	//	missing entries alert
		if (mis.length) {
			alert("Fehlende Eintraege - Missing entries: \n- " + mis.join("\n- "));
			first.focus();
			first.select();
			return false;
		}
	}
//	no errors
	return true;
}

//	a simple email address checker
//	tag name must be 'email' or 'user' regardless of case
//	Umlaute (ä,ö, etc.) are not supported
function cm(el)
{
	if (!el.value.length) return true;
	if (el.name.search(/^(email)$/i) == -1) return true;
	el.value = el.value.replace(/\s/g, '');
	var re_m = /^[\w\d-]+(\.[\w\d-]+)*@[\w\d-]+(\.[\w\d-]+)*\.[a-z]+$/;
	if (el.value.search(re_m) == -1) {
		alert('Ungueltige E-Mail-Adresse / invalid email address');
		el.focus();
		el.select();
		return false;
	}
	return true;
}

