//
// 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('CheckBox') != -1) {      	
        if (!val.checked)
            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 ((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 == '')
}


//
// �berpr�fung eines Textes auf korrekte Zeichen
//
function CheckMailText(text,was) {
  var i,j,ch,checkOK,errorText,error=''

  if (was == 'Tel') {
	checkOK   = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+()/- \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) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}


//
// 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;
}


//
// 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)
}
