// JavaScript Document
// RegEx-reservierte Zeichen: ^$.*+-?=!:|\/()[]{}
function Sende(f,Command)
{
 // f = button object
 // alert(f.form.action);

 Pos = f.form.action.indexOf("?");

 if(Pos != -1)
  Teil1 = f.form.action.substr(0,Pos);
 else
  Teil1 = f.form.action; 

 f.form.action = Teil1 + '?Cmd=' + Command;
// alert(f.form.action);
 f.form.submit();
}

function Sende2(f,Cmd)
{
 f.form.action=f.form.action +"&Cmd="+Cmd;
 f.form.submit();
}

function CheckLogonDaten(f)
{
  var fehler = '';
  if (!f.elements["benutzer"] || f.elements["benutzer"].value=="")
    fehler += "b";
  if (!f.elements["pass"] || f.elements["pass"].value=="")
    fehler += "p";
  if (fehler != "")
  {
    var msg = '';
    if (fehler == "b")
      msg = "Bitte geben Sie Ihren Benutzernamen ein!";
    else if (fehler == "p")
      msg = "Bitte geben Sie Ihr Kennwort ein!";
    else if (fehler == "bp")
      msg = "Bitte geben Sie Ihren Benutzernamen und Ihr Kennwort ein!";
    alert (msg);
    if (fehler == "p")
      document.Logon.pass.focus();
    else
      document.Logon.benutzer.focus();
    return false;
  }
  else
    return true;    
}

function Press(BildName, In, Item) 
{
// if(BildName == "Papierkorb")
//  alert(Item);
 for(i=0,x=0;i < window.document.images.length; i++)
 {
  if (window.document.images[i].src.indexOf(BildName) != -1)
  {
   if(Item == x)
   {
    Teil1 = window.document.images[i].src.substr(0,window.document.images[i].src.length-5);
    Teil2 = window.document.images[i].src.substr(window.document.images[i].src.length-4);
    window.document.images[i].src = Teil1 + In + Teil2;
    break;
   }
   else
    ++x; 
  }
 }
}


function Fentry(obj,evnt,Filter) //Filtert Eingabe von Zeichen anhand Filter
{
  return true;
  var keymatch    = true;
  var add_allowed = true;
  var keyCode     = evnt.keyCode ? evnt.keyCode : evnt.which;
  var FieldTyp    = obj.hidvalue.substr(1,1);
  var FieldLen    = obj.hidvalue.substr(2);
  
  //alert(FieldLen);
  switch(FieldTyp)
  {
    case "A":
    case "I":
    case "F":
    case "T":
      FieldLen = parseInt(FieldLen.substr(1));
      break;
  }
  //alert(FieldLen);
    
  if(Filter!="" && Filter.indexOf(String.fromCharCode(keyCode))==-1)
  {
  	keymatch = false;
  }
  if(!keymatch &&(keyCode>36 && keyCode<41 || keyCode==8 || keyCode==9 || keyCode==47)) //Pfeiltasten, Backspace, Entf,... zulassen
  {
  	keymatch = true;
  }  
  if(obj.value.length>=FieldLen)
  {
     add_allowed = false;
  }
  
  return (keymatch && add_allowed);
}

function EingabeKorrigieren(obj,evnt) // Korrigiert Eingaben nach Loslassen der Taste + automatisches Schreiben von : und . bei Datum und Zeit
{
  var FieldType = obj.hidvalue.substr(1,1);
  var keyCode   = evnt.keyCode ? evnt.keyCode : evnt.which;

    
  switch(FieldType)
  {
    case "T":
      if((obj.value.length < 3  || obj.value.length > 5) && obj.value.substr(obj.value.length - 1,1)==":") // Doppelpunkt nur nach 2. und 4. Ziffer zulassen
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      if(obj.value.length == 2) // vor Minuten  : hinzufügen
      {
      	obj.value += ":";
      }
      if(obj.value.length ==5 && parseInt(obj.hidvalue.substr(3))>5) // vor Sekunden  : hinzufügen
      {
      	obj.value += ":";
      }
      if(obj.value.length == 8 && parseInt(obj.hidvalue.substr(3))>8) // vor Millisekunden . hinzufügen
      {
      	obj.value += ".";
      }
      if(obj.value.indexOf(".") != obj.value.lastIndexOf(".")) // zweiten . filtern
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      break;
    case "D":
      if((obj.value.length < 3  || obj.value.length > 5) && obj.value.substr(obj.value.length - 1,1)==".")// Punkt nur nach 2. und 4. Ziffer erlauben
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      if(obj.value.length == 2 || obj.value.length==5) // vor Monat und Jahr . hinzufügen
      {
      	obj.value += ".";
      }
      break;
    case "I":
      if(obj.value.substr(obj.value.length-1,1)=="-" && obj.value.lastIndexOf("-")!=0) // - nur am Anfang zulassen
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      break;
    case "F":
      if(obj.value.substr(obj.value.length-1,1)=="-" && obj.value.lastIndexOf("-")!=0) // - nur am Anfang zulassen
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      if(obj.value.indexOf(".") != obj.value.lastIndexOf(".")) // zweiten . filtern
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      //Ziffern nach dem Komma auf angegebene Anzahl begrenzen
      var anz_nachkomma = parseInt(obj.hidvalue.split(".")[1]);
      var float_ziffern = obj.value.split(".");
      if(float_ziffern.length == 2 && float_ziffern[1].length > anz_nachkomma)
      {
      	obj.value = obj.value.substr(0,obj.value.length - 1);
      }
      break;
  }
}

function ScreenCheck(form)
{
  var anz_felder = form.elements.length;
  var feld;
  var bOK = true;
  var meldung;
  var must;
  var typ;
  var size;
  //alert(anz_felder);
  
  Feld_Schleife:
  for(var i =0 ; i < anz_felder; i++)
  {
    feld = form.elements[i];
    if(feld.hidvalue != undefined)
    {
      must = feld.hidvalue.substr(0,1);
      typ  = feld.hidvalue.substr(1,1);
      size = feld.hidvalue.substr(2);
           
      if(must == "M")
      {
        if((typ == "A" && feld.value == "") ||
           (typ == "C" && feld.checked == false))
        {
          meldung = "Mindestens ein Pflichtfeldfeld wurde nicht ausgefüllt.";
          bOK = false;
          break Feld_Schleife;
        }
      }
      else
      {
      	switch(typ)
      	{
      	    case "A":
      	      var regex = "";
      	      switch (feld.hidvalue.substr(2,1))
      	      {
      	      	case "1":
      	      	  regex = "^[a-zA-Z0-9äöüÄÖÜß ]{0,}$";
      	      	  break;
      	      	case "2":
      	      	  regex = "^[a-zA-Z0-9äöüÄÖÜß \.%\/\$]{0,}$";
      	      	  break;
      	      }
      	      if(regex != "")
      	      {
      	      	if(!feld.value.match(regex))
      	      	{
      	      	  meldung = "Text hat ein ungültiges Format."
      	      	  bOK     = false;
      	      	  break Feld_Schleife;
      	      	}
      	      }
      	      break;
      	    case "D":
      	    if(!gueltigesDatum(feld.value))
      	    {
      	    	meldung = "Datum enhält ein ungültiges Format oder ist ungültig.";
      	    	bOK     = false;
      	    	break Feld_Schleife;
      	    }
      	    break;
      	  case "T":
      	    var regex = "^(?:2[0-3]|[01][0-9]):[0-5][0-9]:{0,1}[0-5]{0,1}[0-9]{0,1}\.{0,1}[0-9]{0,}$";
      	    switch(size)
      	    {
      	    	case 5:
      	    	  regex ="^(?:2[0-3]|[01][0-9]):[0-5][0-9]$";
      	    	  break;
      	    	case 8:
      	    	  regex ="^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$";
      	    	  break;
      	    	  
      	    }
      	    if(!feld.value.match(regex))
      	    {
      	    	meldung = "Uhrzeit enhält eine ungültige Eingabe.";
      	    	bOK     = false;
      	    	break Feld_Schleife;
      	    }
      	    break;
      	  case "I":
      	    var regex = "[0-9]{0,}$";
      	    if(feld.hidvalue.substr(2,1) == "-")
      	    {
      	      regex = "\-{0,1}" + regex;
      	    }
      	    if(!feld.value.match("^" +regex))
      	    {
      	     	meldung = "Eingabe enhält keine Ganzzahl.";
      	     	bOK     = false;
      	     	break Feld_Schleife;
      	    }
      	    break;
      	 case "F":
      	    var ziffern = feld.hidvalue.substr(3).split(".");
      	    var regex = "[0-9]{0," + ziffern[0] + "}\.{0,1}[0-9]{0," + ziffern[1] + "}$";
      	    if(feld.hidvalue.substr(2,1) == "-")
      	    {
      	      regex = "\-{0,1}" + regex;
      	    }
      	    if(!feld.value.match("^" + regex))
      	    {
      	     	meldung = "Eingabe enhält keine Kommazahl.";
      	     	bOK     = false;
      	     	break Feld_Schleife;
      	    }
      	    break;
        }//ende switch typ
      } //ende else must == "M"
    }  //ende if feld.hidvalue != undefined
  }//ende for
  if(!bOK)
  {
    alert(meldung)
    feld.focus();	
  }
  return bOK;
}

function gueltigesDatum (datum)
{
    //QUELLE: http://aktuell.de.selfhtml.org/artikel/javascript/datumueberpruefen/
    //(Schritt 1) Fehlerbehandlung
 
 if (!datum) return false;
 if (datum=="") return true;

    //(Schritt 2) Aufspaltung des Datums
 datum=datum.split(".");
 if (datum.length!=3) return false;

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats

 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
 if (datum[2].length==2) datum[2]="20"+datum[2];

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
 var kontrolldatum=new Date(datum[2],datum[1],datum[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
 if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
     return true; else return false;

}

