//
// 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
//
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 ((val=val.value) != "") {
        if (test.indexOf('isEmail') != -1) {
          p  = val.indexOf('@')
          pa = val.split('@')
          if (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 != ''+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)

// Spezielle Anpassung an reservierung.pl
  fillForm.realname.value = fillForm.Vorname.value + " " + fillForm.Nachname.value;
  fillForm.email.value = fillForm.EMail.value;
  
  return (errors == '')
}


//
// Überprüfung eines Textes auf korrekte Zeichen
//
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
}



function MM_findObj(n, d) { //v3.0 Dreamweaver
  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); return x;
}