
////////////////////////////////////////////////////////////////
//
// Anzupassende Variablen:
//
//
// Aktiviert den Debugmodus zur Fehlersuche (0 = aus, 1 = ein).
var cacheMode = 0;
//
// Aktiviert den Debugmodus zur Fehlersuche (0 = aus, 1 = ein).
var debugMode = 0;
//
//
//erscheint wenn ein Pflichtfeld nicht ausgefüllt wurde
var messageObligation = " ist ein Pflichtfeld!\n"; 
////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////
//
// Beschreibung: Browsererkennung
//
////////////////////////////////////////////////////////////////

var ns  = (document.layers) ? 1 : 0;
var ie  = (document.all) ? 1 : 0;
var dom = (document.getElementById) ? 1 : 0;
var mac = (navigator.platform.indexOf("Mac") != -1) ? 1 : 0;



////////////////////////////////////////////////////////////////
//
// Beschreibung: Sendet das Formular
// 
// Parameter: form = Formular, das gesendet werden soll.
//
////////////////////////////////////////////////////////////////

function submitForm(form, cacheMode){

  var cookieStr = "";

  if(checkForm(form) == false){
    return; 
  }
  else{
    if(cacheMode == 1){   
      cookieStr += "; path=/";  
      document.cookie = cookieStr; 
    }
    form.submit();
  }
}

//////////////////////////////////////////////////////////////////////////////
//
// Beschreibung: Prüft, ob die Plichtfelder im Formular ausgefüllt worden sind.
// 
// Parameter: form = Formular, das geprüft werden soll.
//
//////////////////////////////////////////////////////////////////////////////

function checkForm(form){

 var messageEmail      = " enthält keine gültige Email Adresse!\n"; //erscheint wenn ein Pflichtfeld nicht ausgefüllt wurde

  var isObligation = /\|\w*o\w*$/i;  //Pflichtfeld, wenn Feldname am Schluss |o  enthaelt   (z.B.: "Strasse|o")
  var isEmail      = /\|\w*e\w*$/i;  //Emailfeld wenn Feldname am Schluss |e enthaelt       (z.B.: "eMail|e")
  var isCache      = /\|\w*c\w*$/i;  //Wird fuer weitere Formulare gespeichert am Schluss |c enthaelt       (z.B.: "eMail|c")
          //Pflicht- und Emailfeld, wenn am Schluss |oe oder |eo (z.B.: "eMail|eo") 

  var checkEmail   = /.*\@.*\.\w+/i;
  var formElement;
  var formElementNameOrig;
  var elementStr;
  var alertStr = "";
  var radioButtonName = "";
 
  for(var i = 0; i <= form.elements.length - 1; i++){
    var formElement = form.elements[i];
    if(formElement){
      formElementNameOrig = formElement.name.replace(/\|\w+/, '');
      if(formElement.title == ""){
        elementStr = formElementNameOrig;
      }
      else{
        elementStr = formElement.title;
      }
      if(formElement.type == "text" || formElement.type == "textarea" || formElement.type == "select-one" ||  formElement.type == "password"){
         
        if(isObligation.test(formElement.name) == true){  
          if(formElement.value == ""){
            alertStr += elementStr + messageObligation;                     
          }
        } 
        if(isEmail.test(formElement.name) == true){  
          if (checkEmail.test(formElement.value) == false){
            alertStr += elementStr + messageEmail;                     
          }
        } 
        if(cacheMode == "1"){    
          if(isCache.test(formElement.name) == true){ 
            if(formElement.value != ""){
              cookieStr += "wFc_" + formElementNameOrig + "=" + formElement.value + ":";
            }
          }    
        }     
      }
	    else if(formElement.type == "checkbox"){
        formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 	  
        if(isObligation.test(formElement.name) == true){  
          if(formElement.checked == false){
            alertStr += elementStr + messageObligation;                     
          }
        } 
	    }
      else if(formElement.type == "radio"){
        if(radioButtonName != formElement.name){
          radioButtonName = formElement.name;
          var radioButtons = document.getElementsByName(formElement.name);
          formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 	  
          if(isObligation.test(formElement.name) == true){  
            var isChecked = false;
            for(j = 0; j < radioButtons.length; j++){
              if(radioButtons[j].checked == true){
                isChecked = true
              }
            }
            if(isChecked == false){
              alertStr += elementStr + messageObligation;                     
            }
          } 
        }
	    }
    }
  }

  if(alertStr != ""){
    alert(alertStr);  
    return false;
  }
  
  return true;
  
}

////////////////////////////////////////////////////////////////
//
// Beschreibung: Initialisiert das Formular
// 
// Parameter: form = Formular, das initialisiert werden soll.
//
////////////////////////////////////////////////////////////////

function initForm(form){

  var isCache      = /\|\w*c\w*$/i;  //Wird fuer weitere Formulare gespeichert am Schluss |c enthaelt       (z.B.: "eMail|c")

  var formElement;
  var formElementNameOrig;

  var cookieStr    = document.cookie;
  var elementValue = "";

  if(form){
    for(var i = 0; i <= form.elements.length - 1; i++){
      var formElement = form.elements[i];
      if(formElement){
        if(formElement.name){      
          if(isCache.test(formElement.name) == true){ 
            if(formElement.value == ""){
              formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 
              var getElementValue = eval("/wFc_" + formElementNameOrig + "\=([^\:]+)\:/");
              if(getElementValue.test(cookieStr) == true){
                elementValue = RegExp.$1;
                formElement.value = elementValue;
              }  
            }
          }
        }
      }
    }
  }
  else{
    //alert("Formular wurde nicht gefunden!\n Wurde es schon geladen?");
  }
}

