
/* -------------------------------------------------------------------------------------
		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_callback" method="post" action="/#client.www_lang#/kontakt/index.cfm/page/callback_action/#request.urltoken#" onsubmit="return CheckForm(form_callback);" >

		<input name="useri1" type="hidden" value="Uups!"/>
		<input name="useri2" type="hidden" value="Bitte füllen Sie unbedingt die blau gekennzeichneten Felder aus." />

		<input name="telefon" value="#form.telefon#" class="input200"  id="Ihre.Telefonnummer.fehlt_1_0"/>
		<input name="email" value="#form.email#" class="input200" id="Geben.Sie.eine.gültige.E-Mail-Adresse.ein_2_0"/></div>
			
		// Wenn mehrere Checkboxen mit gleichem Namen zur Verfügung stehen wird ein Info-hidden_feld eingefügt
		<input type="hidden" 		name="alter" value="0" id="Alter.muss.aktiviert.sein_3_2"/>
		<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="image" src="_objects/#client.www_lang#/basic/form_senden2.gif" style="border:0; width:74px; height:17px; margin:0 0 0 0;" name="submit" value="" class="formSenden">
		
	</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=2; 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
				pruefart 	= checkparameter[1];
				range 		= checkparameter[2];
				feldname 	= form[i].name;
				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); 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,form);
			return false;
		}

		return true;

	}

	/* -------------------------------------------------------------------------------------
		Benutzerinfos anzeigen
	-------------------------------------------------------------------------------------- */
	function benutzerinfo(array,form)
	{
		array_len = array.length;
		
		info =  form[0].value + "\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 + "\n" + form[1].value + "\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;
	}

	/* 	Ende FormCheck -------------------------------------------------------------------- */
