//******************************************************************************
// Description: Checkt im übergebenen Formular alle text Felder.
// Input: Formularobjekt
// Return: null wenn Check nicht bestanden, sonst wird der Submit-Event des
//   Formulars aufgerufen.
// Remarks: Es werden nur Felder überprüft, welche im Namen am Ende ein Stern (*) 
//   haben. 
//   * bedeutet: Darf nicht leer sein.
//   Spezialfall: Wenn der Name keyboxnr ist, so müssen min. 4 Zahlen im Feld sein.
// Version: 1.0 / 06.09.2005 / M. Derflinger / www.deltavision.ch
// Version: 1.1 / 08.09.2005 / M. Derflinger / www.deltavision.ch
//   - Neu wird geprüft, ob im Formular die Checkbox mit dem Namen
//     "Identische_Lieferadresse" aktiviert ist. (Default: true, wenn keine Checkbox vorhanden ist)
//     Wenn true, so werden Felder die mit "Lieferadresse" beginnen nicht geprüft,
//     auch wenn der Name mit einem Stern (*) endet.
// Version 1.2 / 10.10.2006 / M. Derflinger / www.deltavision.ch
//   - Neu werden nicht nur Inputfelder sonder auch Textarea berücksichtigt.
//******************************************************************************
function checkFormFields(oForm) {
  var iCountFields = 0;
  var i =0;
  var j =0;
  var sFieldName = "";
  var sFieldName2 = "";
  var sFieldType = "";
  var sFieldValue = "";
  var bIdentische_Lieferadresse = true;  // Default: Keine Angabe einer Lieferadresse möglich --> Alle Felder prüfen
  var bCheck = true; 
  
  if (oForm.Identische_Lieferadresse != null)  // ev. ist die Checkbox ja gar nicht vorhanden!
    { bIdentische_Lieferadresse = oForm.Identische_Lieferadresse.checked; }
  
  iCountFields = oForm.elements.length;
  
  for(i=0; i<iCountFields; i++) 
  {
	sFieldName = (oForm.elements[i].name);
	sFieldType = (oForm.elements[i].type);

	switch (sFieldType) {
	  case "text": 
 	  case "textarea":
	    sFieldName2 = sFieldName.substring(0, sFieldName.length-1);

        if (sFieldName.charAt(sFieldName.length-1) =="*")
		{ 
		  bCheck = true;
		  if (bIdentische_Lieferadresse)
		  {
			if ("lieferadresse" == sFieldName2.substring(0, 13).toLowerCase() )  // Name beginnt mit Lieferadresse...
			  { bCheck = false; }
			else
			  { bCheck = true; }
		  }
		  
		  if ((oForm.elements[i].value == "") && (bCheck))
		  {
		    alert("Bitte füllen Sie das Feld " + sFieldName2 + " noch aus.");
			oForm.elements[i].focus();
			return null;
          }
		}
		
		if (sFieldName2.toLowerCase() == "keyboxnr")   // keyboxnr
		{
		  sFieldValue = oForm.elements[i].value;
		  if (sFieldValue.length >= 4) 	
		  {
			for(j=0; j<4; j++)
			{
			  if ((sFieldValue.charAt(j) < "0") || (sFieldValue.charAt(j) > "9" )) 
              {
				alert("Das Feld " + sFieldName2 + " muss min. 4 Zahlen enthalten");
				oForm.elements[i].focus();
				return null;
			  }
			}  // end for j
		  }	  // end Inhalt >= 4
		  else
		  {
		    alert("Das Feld " + sFieldName2 + " muss min. 4 Zahlen enthalten!");
			oForm.elements[i].focus();
			return null;
		  }
		}
	    break;
	} // end switch
  }
  oForm.submit();
}


