
/* -------------------------------------------------------------------------------------
		CheckForm() - Version 1.0 - 
		Created: 27/12/05 by Marco Weisser (marco.w@c-bra.de) - Modified: 28/12/05

		Parameter 0 - Fehlermeldung z.b. - Name eingeben
		Parameter 1 - Prüfart -	1=Leerzeichen, 2=email,	3=checkbox,	4=select
		Parameter 2 - Range z.b. - 5
		Parameter 3 - Wenn Bezeichnung in Formular-Feld z.b "Name" - not len(name) OR form.name = "Name"
		
	-------------------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------------------
					
	// Beispiel-Formular
		<form name="form_callback" method="post" action="/kontakt/index.cfm/page/callback_action/#request.urltoken#" onsubmit="return CheckForm(form_callback);" >
			<input name="firma" 	value="#form.firma#" class="input200" id="Bitte.geben.Sie.Ihren.Firmennamen.ein_1_0" />
			<input name="name" 		value="#form.name#" class="input200" id="Bitte.geben.Sie.Ihren.Namem.ein_1_0" />
			<input name="telefon" value="#form.telefon#" class="input200" id="Bitte.geben.Sie.Ihre.Telefon-Nr.ein_1_0" />
			<input name="submit" 	 value="&##8250; Abschicken" class="submit100"  type="submit">
		</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 ID-Eintrag haben...
		for(var i=0; i<felder_anzahl; i++)
		{
			
			// ...und nur diese werden in das Array aufgenommen
			if(form[i].id)
			{
				
				//Übergabeparameter werden gesplittet
				checkparameter = form[i].id.split("_");
				
				// Variable werden gesetzt
				var	pruefart 	= checkparameter[1];
				var	range 		= checkparameter[2];
				var	label			= checkparameter[3];
				
				var feldname 	= form[i].name;
				var feldwert 	= form[i].value;
				
				if(pruefart == 3)	feldname = form[feldname + '_cb'];
				if(pruefart == 4)	feldname = form[feldname];
				
								
				switch(pruefart)
				{
					case "1": checkok = check_leerzeichen(feldwert,label); break;
					case "2":	checkok = check_email(feldwert); break;
					case "3": checkok = check_checkbox(feldname,range); break;
					case "4": checkok = check_select(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][0] = checkparameter[0];			// 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 = "Uuups:\n\n";

		for(var i=0; i<array_len; i++)
		{
			xinfo 	= array_benutzerinfo[i][0];
			xinfo 	= xinfo.replace(/\./g," ");
			info 		= info + ' -> ' + xinfo + '\n';
		}

		info = info + "\nMit einem * gekennzeichnete Felder müssen ausgefüllt werden.\n\n";
		alert(info);
	}

	/* -------------------------------------------------------------------------------------
		Leerzeichen-Check
	-------------------------------------------------------------------------------------- */
	function check_leerzeichen(feldinhalt, label)
	{
		
		// Wenn Label in Feld steht
		if(label){feldinhalt = feldinhalt.replace(label,"")};
		// lerrzeichen prüfen	
		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;
	}

	/* 	Ende FormCheck -------------------------------------------------------------------- */
