
/* -------------------------------------------------------------------------------------
		CheckForm() - Version 1.0 - 
		Created: 27/12/05 by Marco Weisser (marco.w@c-bra.de) - Modified: 28/12/05

		Parameter 1 - Prüfart -	1=Leerzeichen, 2=email,	3=checkbox,	4=select
		Parameter 2 - Fehlermeldung z.b. - Name eingeben
		Parameter 3 - Range z.b. - 5
		
	-------------------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------------------
	// Beispiel-Formular
					
	<form name="form_test" method="post" action="check_form_status.cfm" onsubmit="return CheckForm(this.form);">
	
		<input type="text"	name="vorname" 	value="" 	title="1;Vornamen eintragen;0" >
		
		<input type="text" 	name="email" 		value="" 	title="2;E-Mail-Adresse ist nicht erlaubt;0" >
		
		// Wenn mehrere Checkboxen mit gleichem Namen zur Verfügung stehen wird ein Info-hidden_feld eingefügt
		<input type="hidden" 		name="alter" value="0" title="3;Alter muss aktiviert sein;2"/><br />
		<input type="checkbox" 	name="alter_cb" value="1"/>10-15 Jahre<br />
		<input type="checkbox" 	name="alter_cb" value="2"/>15-18 Jahre<br />
		
		<input type="submit" 	name="submit" onclick="return CheckForm(this.form);">
		
	</form>
	-------------------------------------------------------------------------------------- */
	
	function CheckForm(form)
	{
	
		// Anzahl der Elemente (Felder) im Formular
		felder_anzahl = form.elements.length;
		
	
		
		array_benutzerinfo = new Array();
		idx = 0;
		
		// Checken welche Felder einen Title-Eintrag haben...
		for(var i=0; i<felder_anzahl; i++)
		{
			
			// ...und nur diese werden in das Array aufgenommen
			if(form[i].title)
			{
				
				//Übergabeparameter werden gesplittet
				checkparameter = form[i].title.split(";");
				
				// Variable werden gesetzt
				pruefart 	= checkparameter[0];
				range 		= checkparameter[2];
				feldname 	= form[i].name;
				feldwert 	= form[i].value;
				
				if(pruefart == 3)	feldname = form[feldname + '_cb'];
				if(pruefart == 4)	feldname = form[feldname];
				if(pruefart == 5)	feldname = form[feldname];
				
				switch(pruefart)
				{
					case "1": checkok = check_leerzeichen(feldwert); break;
					case "2":	checkok = check_email(feldwert); break;
					case "3": checkok = check_checkbox(feldname,range); break;
					case "4": checkok = check_select(feldname); break;
					case "5": checkok = check_callback(feldname); break;
				}
				
				// Benutzer-Infos in Array aufbereiten
				if (!checkok)
				{
					
					// 2 dimensionale Tabelle erzeugen
					array_benutzerinfo[idx] = new Array(2);
	
					array_benutzerinfo[idx][0] = feldname;							// Feldname
					array_benutzerinfo[idx][1] = checkparameter[1];			// Meldung
					
					// Index hochgezählen
					idx++;
				
				}
				
			}
			
		}


		if (array_benutzerinfo.length)
		{
			benutzerinfo(array_benutzerinfo);
			return false;
		}
			
		return true;

	}
	
	/* -------------------------------------------------------------------------------------
		Benutzerinfos anzeigen
	-------------------------------------------------------------------------------------- */
	function benutzerinfo(array)
	{
		
		array_len = array.length;
		
		info = "Hinweis:\n\n";
		
		for(var i=0; i<array_len; i++)
		{
			info = info + ' -> ' + array_benutzerinfo[i][1] + '\n';
		}

	alert(info);

	}
	
	/* -------------------------------------------------------------------------------------
		Leerzeichen-Check
	-------------------------------------------------------------------------------------- */
	function check_leerzeichen(feldinhalt)
	{
		//Leerzeichen entfernen	
		feldinhalt = feldinhalt.replace(/^\s*|\s*$/g,"");
		
		// true oder false wird zurückgegeben
		return(feldinhalt.length) ?  true : false;
	}

	/* -------------------------------------------------------------------------------------
		E-Mail-Check	
	-------------------------------------------------------------------------------------- */
	function check_email(email)
	{
		var rgx = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,4})(\\]?)$");
		return rgx.exec(email) ? true : false;
	}

	/* -------------------------------------------------------------------------------------
		CheckBox-Check	
	-------------------------------------------------------------------------------------- */
	function check_checkbox(checkbox,range)
	{

		for(var i=0; i<range; i++)
		{
			if(checkbox[i].checked) return true;
		}
		
		return false;
		
	}
	
	/* -------------------------------------------------------------------------------------
		Select-Check	
	-------------------------------------------------------------------------------------- */
	
	function check_select(selectfeld)
	{
		return(selectfeld.selectedIndex) ? true : false;
	}
	
	
	/* -------------------------------------------------------------------------------------
		Callback-Check
	-------------------------------------------------------------------------------------- */
	function check_callback(feldinhalt)
	{
		//Leerzeichen entfernen	
		feldinhalt = feldinhalt.replace(/^\s*|\s*$/g,"");
		// true oder false wird zurückgegeben
		return(feldinhalt == "Name" || feldinhalt == "Telefonnummer") ? false : true;
	}

	/* 	Ende FormCheck -------------------------------------------------------------------- */
