// @date 13.05.2004
/*
var Errtxt = new Array();
Errtxt[0] = "In das Feld "
Errtxt[1] = " dürfen Sie nur Zahlen eingeben."
Errtxt[2] = "Sie haben die Postleitzahl falsch eingegeben."
Errtxt[3] = "Sie müssen das Feld "
Errtxt[4] = " ausfüllen."
Errtxt[5] = "Sie müssen einen Eintrag in der Auswahlliste "
Errtxt[6] = " auswählen."
Errtxt[7] = "Sie müssen einen Wert auswählen."
Errtxt[8] = "Sie dürfen im Feld "
Errtxt[9] = " nur Zahlen von "
Errtxt[10] = " bis "
Errtxt[11] = " eingeben."
Errtxt[12] = "Die Email-Adresse hat ein falsches Format."
Errtxt[13] = "In das Feld "
Errtxt[14] = " müssen Sie mindestens "
Errtxt[15] = " Zeichen eingeben."
Errtxt[16] = " dürfen Sie nur positive ganze Zahlen eingeben."
Errtxt[17] = "Bitte geben Sie das Datum im Format tt.mm.jjjj ein (z.B. 05.02.2003)."
Errtxt[18] = "In das Feld "
Errtxt[19] = " dürfen Sie nur positive Zahlen und ein Komma eingeben (z.B. 5,15)."
Errtxt[20] = "Bitte geben Sie das Datum im Format mm.jj ein (z.B. 01.02)."
Errtxt[21] = "Bitte geben Sie ein Jahr zwischen 1900 und 3000 ein."
Errtxt[22] = "Bitte geben Sie einen Monat zwischen 1 und 12 ein."
Errtxt[23] = "Bitte geben Sie einen Tag zwischen 1 und 31 ein."
Errtxt[24] = "Bitte geben Sie das Datum im Format mm.jjjj ein (z.B. 02.2003)."
Errtxt[25] = " nur positive Zahlen von "
Errtxt[26] = " und ein Komma eingeben."

var Netscape = false;	
if(navigator.appName.indexOf("Netscape") != -1)  Netscape = true;
if (Netscape){
window.captureEvents(Event.SUBMIT);
window.onSubmit = Ausgabe;
}
*/

function writeError (t)
{
  
  alert(t);
}


function MM_findObj(n, d) {

  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;
}



function isNumeric(oN,Fehlermeldung)
{ 
	var objRef = MM_findObj(oN);
	if (isNaN(objRef.value)) {
	if (objRef.value.indexOf(".")!=-1) {
	var zahl = objRef.value.split(".");
	} else { var zahl = objRef.value.split(","); }
	if (zahl.length>2)
		{ alert(Fehlermeldung);
		 objRef.focus();return false;} 
	if (isNaN(zahl[0]) || isNaN(zahl[1]))
		{ alert(Fehlermeldung);
		 objRef.focus();return false;} 
	}
}




function countit2(oN,maxzahl)
{ 	
	var objRef = MM_findObj(oN);
	if (objRef.value.length>maxzahl) {
		alert("In dieses Feld können Sie nur "+maxzahl+ " Zeichen eingeben.");
		objRef.value = objRef.value.substring(0, maxzahl-1);		
		objRef.focus();return false; 
	}	
}

function countit3(oN,maxzahl)
{ 	
	var objRef = MM_findObj(oN);
	if (objRef.value.length>maxzahl) {		
		alert("In this field you cannot enter more than "+maxzahl+ " characters.");		
		objRef.value = objRef.value.substring(0, maxzahl-1);		
		objRef.focus();return false; 
	}	
}

function countit(oN,Fehlermeldung,maxzahl)
{ 
	var objRef = MM_findObj(oN);
	if (objRef.value.length>maxzahl) {
		alert(Fehlermeldung);		
		objRef.focus();return false; 
	}
	
	
}


function isPLZ(oN, Fehlermeldung)
{ 

  var objRef = MM_findObj(oN);
	if ((isNaN(objRef.value)) || objRef.value.length!=5 || objRef.value.indexOf(".")!=-1)
		{alert(Fehlermeldung);
		 objRef.focus();return false;}	
}




function isValue(oN,Fehlermeldung) {
  var objRef = MM_findObj(oN);
  if (objRef.value=="") {
    alert(Fehlermeldung);
    objRef.focus();
    return false; }
}




function isValueDrop(oN,Fehlermeldung,Ausschluss)
{  	
	
	var objRef = MM_findObj(oN);
	
	var i=0; leer=false; x="";
	with (objRef)
	{  	for (i=0;i<objRef.length;i++)
    		{if (objRef[i].selected) 
    		 x=objRef[i].value;} 
		if (x=="")
    		{leer = true;}
         }

   if (x==Ausschluss)
   		{alert(Fehlermeldung);
   		 objRef.focus();return false;}
	else
		{return true;}
 
  if (leer)
   		{alert(Fehlermeldung);
   		 objRef.focus();return false;}
	else
		{return true;}

		
}

//auch für checkbox-gruppen; bei einzelner c-box s.nächste function
function isValueRadio(oN,Fehlermeldung) {  	
  var objRef = MM_findObj(oN);
  var i=0; leer=false; x="";
  with (objRef) { 
    for (i=0;i<objRef.length;i++) {
      if (objRef[i].checked) 
      x=objRef[i].value; } 
    if (x=="") leer = true;
  }
  if (leer) {
	 	   alert(Fehlermeldung);
    return false;}
  else return true;
}


function isValue_one_cbox(oN,Fehlermeldung) {
  var objRef = MM_findObj(oN);
  if (objRef.checked==false) {
	if (Fehlermeldung)
	{
	    alert(Fehlermeldung);
	}
    objRef.focus();
    return false; }
 
}


function isRange(oN,Fehlermeldung,x,y)
{  	

	var objRef = MM_findObj(oN);
	if (objRef.value != "") {
	if ((objRef.value < x)||(objRef.value > y))
	  {alert(Fehlermeldung);
	   objRef.focus();return false;} 
	}
}




function isFloatRange(oN,Fehlermeldung,Vz,i,min,max)
{  	

	var objRef = MM_findObj(oN);
	z=objRef.value;
	z=z.replace(" ",""); 						// Leerzeichen durch Komma ersetzen	
	p_pos=z.indexOf(".");
	while (p_pos!=-1)						// solange punkte vorhanden sind
	{
		if (z.charAt(p_pos-1)=="." || z.charAt(p_pos+1)==".")	// Bereich vor und nach punkt nach punkten durchsuchen
		{
			alert(Fehlermeldung);
		}
		tmp=z.substring(0,p_pos);
		z=tmp.concat((z.substring(p_pos+1,z.length)));
		p_pos=z.indexOf(".",p_pos);
	}
  	if (z.indexOf("e") != -1 || z.indexOf("E") != -1) 		// falls e´s vorhanden sind : fehler
        { 								
		alert(Fehlermeldung);
		objRef.focus();return false;
	}
 	z=z.replace(/,/,".");						// kommas durch punkte ersetzen...
  	if (isNaN(z))  							// ...und auf numerische angabe überprüfen
        {
		alert(Fehlermeldung);
		objRef.focus();return false;
	}
	if ((Vz == 1) && (z.charAt(0) == "-"))				// überprüfen auf negative werte
	{
		alert(Fehlermeldung);
		objRef.focus();return false;
	}


	if (z > i) 								//prüfen, ob pos. eintrag größer i und zwischen min und max
	{alert(Fehlermeldung);
          objRef.focus();return false;}

}
function isEmail(oN, Fehlermeldung)
{  	

	var objRef = MM_findObj(oN);
	suche=objRef.value.search(/@.+/);
	letzter_teil=objRef.value.substr(suche+1,objRef.value.length)
	letzter_teil=letzter_teil.length
	if (!objRef.value=="")
	{if ((objRef.value.indexOf('@') == -1)||(objRef.value.length<10)||(suche<1)||(letzter_teil<6))
	{ alert(Fehlermeldung);
          objRef.focus();return false;}}

}

function isEmail_apartner(oN, Fehlermeldung)
{  	

	var objRef = MM_findObj(oN);
	suche=objRef.value.search(/@.+/);
	letzter_teil=objRef.value.substr(suche+1,objRef.value.length)
	letzter_teil=letzter_teil.length
	if (!objRef.value=="")
	{if ((objRef.value.indexOf('@') == -1)||(objRef.value.length<10)||(suche<3)||(letzter_teil<6))
	{ alert(Fehlermeldung);
          objRef.focus();letzter_teil="";return false;}}
	letzter_teil="";
}	

function isMinStr(oN,Fehlermeldung,zeichenanzahl)
{ 	

	var objRef = MM_findObj(oN);
	if (objRef.value.length<zeichenanzahl)
	{ alert(Fehlermeldung);
          objRef.focus();return false;}
}


function isPos(oN,Fehlermeldung)
{	

	var objRef = MM_findObj(oN);
  	z=objRef.value;        
  	if ((z.indexOf(".")!=-1)||(z.indexOf(",")!=-1)||(z.indexOf("e")!=-1)||(z.indexOf("E")!=-1)||(isNaN(z))||(z<0))
	{ alert(Fehlermeldung);
          objRef.focus();return false;}
}



function isFloat(oN,Fehlermeldung,Vz)
{  	

	var objRef = MM_findObj(oN);
	z=objRef.value;
	z=z.replace(" ",""); 						// Leerzeichen durch Komma ersetzen	
	p_pos=z.indexOf(".");
	while (p_pos!=-1)						// solange punkte vorhanden sind
	{
		if (z.charAt(p_pos-1)=="." || z.charAt(p_pos+1)==".")	// Bereich vor und nach punkt nach punkten durchsuchen
		{
			alert(Fehlermeldung);
		}
		tmp=z.substring(0,p_pos);
		z=tmp.concat((z.substring(p_pos+1,z.length)));
		p_pos=z.indexOf(".",p_pos);
	}
  	if (z.indexOf("e") != -1 || z.indexOf("E") != -1) 		// falls e´s vorhanden sind : fehler
        { 								
		writeError ( Errtxt[18]+Fehlername+Errtxt[19]);
		objRef.focus();return false;
	}
 	z=z.replace(/,/,".");						// kommas durch punkte ersetzen...
  	if (isNaN(z))  							// ...und auf numerische angabe überprüfen
        {
		alert(Fehlermeldung);
		objRef.focus();return false;
	}
	if ((Vz == 1) && (z.charAt(0) == "-"))				// überprüfen auf negative werte
	{
		alert(Fehlermeldung);
		objRef.focus();return false;
	}
}


function isDateFormat(oN,Typ) {

  var objRef = MM_findObj(oN);
  var datum = objRef.value;

  var zahl,RegExpPoint,RegExpNoPoint,formatedDate;
  var ErrCode = 0;
  
  if (objRef.value != "") {
    //--- Typ ttmmjjjj -------------------------------------------
    if (Typ == "0") {
      RegExpPoint = /^\d{1,2}\.\d{1,2}\.\d{4}$/; // check Tt.Mm.JJJJ
      RegExpNoPoint = /^\d{8}$/; //check ttmmjjjj
      if(RegExpPoint.test(datum) || RegExpNoPoint.test(datum)) {
        if(RegExpPoint.test(datum)){
          zahl = datum.split(".");
          formatedDate = ((zahl[0].toString().length<2)?"0"+zahl[0]:zahl[0])+"."+((zahl[1].toString().length<2)?"0"+zahl[1]:zahl[1])+"."+zahl[2];
        }
        else {
          zahl = new Array();
          zahl[0] = datum.substring(0,2);
          zahl[1] = datum.substring(2,4);
          zahl[2] = datum.substring(4,8);
          formatedDate = zahl[0]+"."+zahl[1]+"."+zahl[2];
        }
        if (isNaN(zahl[0]) || isNaN(zahl[1]) || isNaN(zahl[2])) ErrCode = 17;
        else if ((zahl[0]<1) || (zahl[0]>31)) ErrCode = 23;
        else if ((zahl[1]<1) || (zahl[1]>12)) ErrCode = 22;
        else if ((zahl[2]<1900) || (zahl[2]>3000)) ErrCode = 21;
      }
      else ErrCode = 17;
    }
    //--- Typ mmjj -------------------------------------------
    else if (Typ == "1") {
      RegExpPoint = /^\d{1,2}\.\d{2}$/; // check Mm.JJ
      RegExpNoPoint = /^\d{4}$/; //check mmjj
      if(RegExpPoint.test(datum) || RegExpNoPoint.test(datum)) {
        if(RegExpPoint.test(datum)){
          zahl = datum.split(".");
          formatedDate = ((zahl[0].toString().length<2)?"0"+zahl[0]:zahl[0])+"."+zahl[1];
        }
        else {
          zahl = new Array();
          zahl[0] = datum.substring(0,2);
          zahl[1] = datum.substring(2,4);
          formatedDate = zahl[0]+"."+zahl[1];
        }
        if (isNaN(zahl[0]) || isNaN(zahl[1])) ErrCode = 20;
        else if ((zahl[0]<1) || (zahl[0]>12)) ErrCode = 22;
      }
      else ErrCode = 20;
    }
    //--- Typ mmjjjj -------------------------------------------    
    else if (Typ == "2") {
      RegExpPoint = /^\d{1,2}\.\d{4}$/; // check Mm.JJJJ
      RegExpNoPoint = /^\d{6}$/; //check mmjjjj
      if(RegExpPoint.test(datum) || RegExpNoPoint.test(datum)) {
        if(RegExpPoint.test(datum)){
          zahl = datum.split(".");
          formatedDate = ((zahl[0].toString().length<2)?"0"+zahl[0]:zahl[0])+"."+zahl[1];
        }
        else {
          zahl = new Array();
          zahl[0] = datum.substring(0,2);
          zahl[1] = datum.substring(2,6);
          formatedDate = zahl[0]+"."+zahl[1];
        }
        if (isNaN(zahl[0]) || isNaN(zahl[1])) ErrCode = 24;
        else if ((zahl[0]<1) || (zahl[0]>12)) ErrCode = 22;
      }
      else ErrCode = 24;
    }
  }
  // return true: wenn feld eintrag leer (optionale validierung)    
  else {
  return true;
  }
  //alert:
  if(ErrCode!=0){
    writeError(Errtxt[ErrCode]);
    objRef.focus();
    return false;
  }
  //formatieren: führungsnullen an monat und tag
  else {
    objRef.value = formatedDate;
  }
}