
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
//
// Mailformular überprüfen
//   Aufruf mit 'Feldname','Feldbezeichnung','Test'   (wenn 2. Parameter == '' dann = 1.Parameter)
//   mit den möglichen Überprüfungen bei Test:
//   'R' oder 'N': benötigtes Feld
//   'isEmail'   : E-Mail Adresse
//   'isAlpha'   : nur Buchstaben, Leerräume und Satzzeichen, keine Ziffern
//   'isTel'     : Telefonnummer
//   'isNum'     : Zahl
//   'inRange1:3': Zahl im Bereich von 1 bis 3
//   'Select1'   : Element in einer Liste (bei Menü 2.Element) muss ausgewählt sein
//   'Radio'     : Element im Optionsfeld muss ausgewählt sein
//
function CheckMail() {
  var i,p,pa,q,name,test,num,min,max,errors='',args=CheckMail.arguments
  for (i=0; i<(args.length-2); i+=3) {
    name = (args[i+1] ? args[i+1] : args[i])
    test = args[i+2]
    val  = MM_findObj(args[i])
    if (val) {
      if (test.indexOf('Select') != -1) {
        p = test.substring(7)
        if (val.selectedIndex < p)
            errors += '- '+name+' muss ausgewählt werden.\n'
       }

      else if (test.indexOf('Radio') != -1) {
        if (!GetRadioValue(val))
            errors += '- '+name+' muss ausgewählt werden.\n'
       }
       
       else if (test.indexOf('Checkbox') != -1) {
       
         if (!GetCheckboxValue(val))
         	errors += '- '+name+' wird benötigt.\n'
       }
       
      else if ((val=val.value) != "") {
        if (test.indexOf('isEmail') != -1) {
          p  = val.indexOf('@')
          pa = val.split('@')
          pspc = val.indexOf(' ')
          if (pspc>0 || p<1 || p==(val.length-1) || (q=pa.length)>2 || pa[1]==pa[1].split('.')[0])
            errors += '- '+name+' muss eine korrekte E-Mail-Adresse sein.\n'
          }
         else if (test.indexOf('isAlpha') != -1) {
          if ((q = CheckMailText(val,'Alpha')) != '')
            errors += '- '+name+q
       }
         else if (test.indexOf('isTel') != -1) {
          if ((q = CheckMailText(val,'Tel')) != '')
            errors += '- '+name+q
       }
         else if (test != 'R') {
          num = parseFloat(val)
   if (val.replace(/^0*/,"") != ''+num)
            errors += '- '+name+' muss eine Zahl sein.\n'
          if (test.indexOf('inRange') != -1) {
            p   = test.indexOf(':')
            min = test.substring(8,p)
            max = test.substring(p+1)
            if (num<min || max<num)
              errors+='- '+name+' muss eine Zahl zwischen '+min+' und '+max+' sein.\n'
            }
          }
        }
       else if (test.charAt(0) == 'R')
         errors += '- '+name+' wird benötigt.\n'
      }
    }
  if (errors)
    alert('Beim Ausfüllen des Formulars sind Fehler aufgetreten:\n'+errors)
  return (errors == '')
}

function CheckMailText(text,was) {
  var i,j,ch,checkOK,errorText,error=''
  if (was == 'Tel') {
     checkOK   = "0123456789+()/- \t\r\n\f"
     errorText = " darf nur Ziffern, Leerräume und \"+()/-\"-Zeichen enthalten.\n"
 }
   else if (was == 'Alpha') {
 checkOK   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ,.-' \t\r\n\f"
 errorText = " darf nur Buchstaben, Leerräume und \",.-\"'-Zeichen enthalten.\n"
    }
  for (i=0; i<text.length; i++) {
    ch = text.charAt(i)
    for (j=0; j<checkOK.length; j++)
      if (ch == checkOK.charAt(j))
        break
    if (j == checkOK.length) {
      error = errorText
      break
      }
    }
  return error
}
//
// Wert einer Auswahl bestimmen
//
function GetRadioValue( radioObject ) {
  var value = null;
  // Validate parameter value
  if (radioObject+"" == "undefined" || radioObject == null)
    return null;
  for (var i=0; i < radioObject.length; i++) {
    if (radioObject[i].checked) {
      value = radioObject[i].value;
      break;
      }
    }
  return value;
}
function GetCheckboxValue( cbObject ) {
  var value = null;
  // Validate parameter value
  if (cbObject+"" == "undefined" || cbObject == null)
    return null;  
    if (cbObject.checked) {
      value = cbObject.value;
      }
  return value;
}

//
// Wert einer Liste bestimmen
//
function GetListValue( listObject ) {
  var value = null;
  // Validate parameter value
  if (listObject+"" == "undefined" || listObject == null)
    return null;
  return(listObject[listObject.selectedIndex].value)
}

 function Validate(){
   if (document.Contact.Query.length > 1000) {
        alert("Bitte geben Sie weniger als 1000 Zeichen für die Anfrage ein");
        document.Contact.Query.focus();
        return false;
   }
   if (CheckMail('Sex','Anrede','RRadio','FirstName','Vorname','RisAlpha','LastName','Nachname','RisAlpha','Street','Straße','R','PostalCode','PLZ','RinRange01000:99999','City','Stadt','R','Phone','Telefon','RisTel','Fax','Fax','isTel','EMailAddress','E-Mail','RisEmail','Query','Ihre Frage','R','AcceptIt','Einwilligung','RCheckbox') != true)
    //return false;
    alert("Bitte füllen Sie alle Felder aus!");
   else {
     document.Contact.Query.value=document.Contact.Query.value + "\n\n\nErreichbarkeit:\n" + document.Contact.InquiryType2.value;
     document.forms['Contact'].submit();
   }
  }
