// Eingabefelder eingegeben ??
// wenn nicht, dann Fehlermeldung ausgeben
function goChk(edt,fehler) {
	if (edt.value=="") {
		alert(fehler);
		edt.focus();
		return false;
	} else return true;
}

// ist Profiltiefe zulässig
function chkGreater(edt,fehler, wert) {
	if (edt.value > wert) {
		alert(fehler+'\n'+edt.value+' > '+wert);
		edt.value=wert;
		edt.focus();
		return false;
	} else return true;
}// EochkProfiltiefe

// ist Profiltiefe zulässig
function chkSmaller(edt,fehler, wert) {
	if (edt.value < wert) {
		alert(fehler+'\n'+edt.value+' < '+wert);
		edt.value=wert;
		edt.focus();
		return false;
	} else return true;
}// EochkProfiltiefe

// ist Datum zu klein ?
function chkSmallerDate(edt, fehler, wert, akt_datum) {
  var r;
  // DatumFormat und ShowTime aus Inputfeld abholen; 
  // wird von $this->ShowCalendarInput automatisch gesetzt
  var DatumFormat = edt.DatumFormat;
  var ShowTime = edt.ShowTime;
  
  var a = MMPCal_getTestStr(DatumFormat, ShowTime, edt.value);
  var c = MMPCal_getTestStr(DatumFormat, ShowTime, wert);
  if (a < c) {
    r = MMPCal_getDatumStrArr(DatumFormat, MMPCal_getDatumArray(DatumFormat, wert));
		alert(fehler + '\n' + edt.value + ' < ' + r);
		edt.value = wert;/*MMPCal_getDatumStrArr(DatumFormat, MMPCal_getDatumArray(DatumFormat, akt_datum));*/
		//edt.focus();
		return false;
	} else {
    return true;
  }
}// chkSmallerDate

var JS_Zwischenablage= new Array();
// kopiere alles, was den Reifen ausmacht
function Assistent_Kopiere_JS(pos) {
  JS_Zwischenablage['Reifen']=new Array(); // alte Reifendaten löschen
  JS_Zwischenablage['Reifen']['ST']=document.getElementById('edt_ST_'+pos).value;
  JS_Zwischenablage['Reifen']['HE']=document.getElementById('edt_HE_'+pos).value;
  JS_Zwischenablage['Reifen']['GR']=document.getElementById('edt_GR_'+pos).value;
  JS_Zwischenablage['Reifen']['PR']=document.getElementById('edt_PR_'+pos).value;
  JS_Zwischenablage['Reifen']['LL']=document.getElementById('edt_LL_'+pos).value;
  JS_Zwischenablage['Reifen']['PT']=document.getElementById('edt_PT_'+pos).value;
  JS_Zwischenablage['Reifen']['ZL']=document.getElementById('edt_ZL_'+pos).value;
} // Eo Assistent_Kopiere_JS

// kopiere alles, was den Reifen ausmacht
function Assistent_Einfuegen_JS(pos) {
  document.getElementById('edt_ST_'+pos).value=JS_Zwischenablage['Reifen']['ST'];
  document.getElementById('edt_HE_'+pos).value=JS_Zwischenablage['Reifen']['HE'];
  document.getElementById('edt_GR_'+pos).value=JS_Zwischenablage['Reifen']['GR'];
  document.getElementById('edt_PR_'+pos).value=JS_Zwischenablage['Reifen']['PR'];
  document.getElementById('edt_LL_'+pos).value=JS_Zwischenablage['Reifen']['LL'];
  document.getElementById('edt_PT_'+pos).value=JS_Zwischenablage['Reifen']['PT'];
  document.getElementById('edt_ZL_'+pos).value=JS_Zwischenablage['Reifen']['ZL'];
  // wenn keine RN vergeben, dann dummy nr
  var laenge=document.getElementById('edt_RN_'+pos).value.length;
  if (isNaN(laenge)) laenge=0;
  var posneu=pos.replace(/_/, "");
  if (laenge<=0) document.getElementById('edt_RN_'+pos).value=__js_kennzeichen+posneu;
  document.getElementById('edt_RN_'+pos).select();
  document.getElementById('edt_RN_'+pos).focus();
} // Eo Assistent_Kopiere_JS

// Sprachdefinitionen
// Ländercodes; PLZ; Telefon

var __Mask_PLZ;      // Maske für Edit PLZ
var __Mask_Telefon;  // Maske für Edit Telefon
var __Mask_Fax;      // Maske für Edit Fax

var Land_Daten_Maske_Vor = 3; // Index
var Land_Daten_Maske_Tel = 4; // Index
var Land_Daten_Maske_PLZ = 5; // Index

// function updLandControl
// Setzt die übergebene Vorwahl, falls das Eingabefeld
// keinen Wert hat oder der Wert mit einer Vorwahl aus
// der Länderliste identisch ist
// Eingabe: aControlname: id des Controls
//          neueVorwal: die neue Vorwalhl (mit +) 
function updLandControl(aControlname, neueVorwahl) {
  var i;
  var flag = false;
  var aControl = document.getElementById(aControlname);
  if (aControl) {
    var aValue = aControl.value;
    if (aValue == "") {
      flag = true;
    } else {
      for(i = 0; i < LandDaten.length; i++) {
        if (aValue == ("+" + LandDaten[i][Land_Daten_Maske_Vor])) {
          flag = true;
          break;
        }
      }
    }
  }
  if (flag == true) {
    aControl.value = neueVorwahl;
  }
}// EoupdLandControl

// function chkLand
// Bei Eingabefeld "onkeypress" bei Select "onchange"
// Eingabe: land (index, Ländername oder Kürzel)
// Setzt die Maske eines PLZ-Feldes
function chkLand(land) {
  var i = 0;
  // Objekte löschen
  __Mask_PLZ = false;
  __Mask_Telefon = false;
  __Mask_Fax = false;
  // Für Vergleiche
  strland = land.toLowerCase();
  // Masken aus Liste suchen und evtl. setzen
  for (i = 0; i < LandDaten.length; i++) {
    str1 = LandDaten[i][1].toLowerCase();
    str2 = LandDaten[i][2].toLowerCase();
    if ((LandDaten[i][0] == strland) || 
        (str1 == strland) || 
        (str2 == strland)) {
      __Mask_PLZ = new InputMask(LandDaten[i][Land_Daten_Maske_PLZ], getObject("edtPlz"));
      /* Masken für Telefon und Fax
      if (LandDaten[i][Land_Daten_Maske_Tel] != "") { 
        __Mask_Telefon = new InputMask(LandDaten[i][Land_Daten_Maske_Tel], getObject("edtTelefon"));
        __Mask_PLZ = new InputMask(LandDaten[i][Land_Daten_Maske_Tel], getObject("edtFax"));
      }
      */
      // Vorwahl für Telefon und Fax bei Länderauswahl setzen
      strvorwahl = "+" + LandDaten[i][Land_Daten_Maske_Vor];
      updLandControl('edtTelefon', strvorwahl);
      updLandControl('edtFax', strvorwahl);
      break;
    }
  }
} // EochkLand


/* MMP Kalender */

/* Id's für DatumArray */
var __jahr_id    = 0;
var __monat_id   = 1;
var __tag_id     = 2;
var __stunde_id  = 3;
var __minute_id  = 4;
var __sekunde_id = 5;
var __lastDateElement_id    = 6; // 6 Elemente im Array

/* Funktion MMPCal_MMPCal_Format2Preg
   noch nicht vollständig
   Liefert einen String für Reguläre Ausdrücke auf Grund das Datumformates zurück
   DatumFormat: Format des Datums ('d.m.Y')
   Ausgabe: Regulärer Ausdruck
*/
function MMPCal_Format2Preg(DatumFormat) {
  var r = '';
  var i;
  var c;
  for (i = 0; i < DatumFormat.length; i++) {
    c = DatumFormat.substring(i, i+1);
    switch (c) {
      case 'd' : r += '([012][0-9]|3[01]|[1-9])'; break;
      case 'm' : r += '(0[1-9]|1[012]|[1-9])'; break;
      case 'Y' : r += '(\d\d\d\d)'; break;
      case 'H' : r += '([01][0-9]|2[01234]|[0-9])'; break;
      case 'i' : r += '(0[0-9]|[12345][0-9]|[0-9])'; break;
      case 's' : r += '(0[0-9]|[12345][0-9]|[0-9])'; break;
      default  : r += '['  + c + ']'; break;
    }
  }
  return '/' + r + '/';
} // EoF MMPCal_Format2Preg

/* Funktion MMPCal_skipZahl
   liest eine Zahl aus einem String, bis ein nichtnumerisches Zeichen auftritt
   Str: String, aus dem gelesen werden soll
   p: die Startposition in Str
   Ausgabe: Zahl
*/
function MMPCal_skipZahl(Str, p) {
  var r = '';
  var i;
  var c;
  var f = false;
  for (i = p; i < Str.length; i++) {
    c = Str.substring(i, i+1);
    switch (c) {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9': r += c; f = true; break;
      default : f = false; break;
    }
    if (!f) { break; }
  }
  return r;
} // EoF MMPCal_skipZahl

/* Funktion MMPCal_skipAlpha
   liest einen Text aus einem String, bis ein numerisches Zeichen auftritt
   Str: String, aus dem gelesen werden soll
   p: die Startposition in Str
   Ausgabe: Text
*/
function MMPCal_skipAlpha(Str, p) {
  var r = '';
  var i;
  var c;
  var f = false;
  for (i = p; i < Str.length; i++) {
    c = Str.substring(i, i+1);
    switch (c) {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9': f = false; break;
      default : r += c; f = true; break;
    }
    if (!f) { break; }
  }
  return r;
} // EoF MMPCal_skipAlpha

/* Funktion MMPCal_getTestStr
   Übersetzt das Datum mit Hilfe von Datumformat (MMPCal_getDatumArray)
   und liefert Ergebnis in einer Zeichenkette für Vergleichszwecke zurück
   DatumFormat: Format des Datums ('d.m.Y')
   ShowTime: true | false
   Datum: Datum als Text ('1.2.2005')
   Ausgabe: Zeichenkette der Datumswerten ('20050201000000')
*/
function MMPCal_getTestStr(DatumFormat, ShowTime, Datum) {
  // Indexnamen und Längen
  var i = new Array(__jahr_id, __monat_id, __tag_id, __stunde_id, __minute_id, __sekunde_id);
  var l = new Array(        4,          2,        2,           2,           2,            2);
  // Datum in array a schreiben
  var a = MMPCal_getDatumArray(DatumFormat, Datum);
  var r = '';
  var j, s;
  var jEnde = (ShowTime) ? __sekunde_id + 5 : 2;
  
  // auf definierte Längen setzen und ausgeben
  for (j = 0; j <= jEnde; j++) {
    s = String(a[i[j]]);
    if (!s) { s = ''; }
    while (s.length < l[j]) { s = '0' + s; }
    r += s;
  }
  
  return r;
} // EoF MMPCal_getTestStr

/* Funktion MMPCal_getDatumArray
   Übersetzt das Datum mit Hilfe von Datumformat und liefert Ergebnis
   in einem Array zurück
   DatumFormat: Format des Datums ('d.m.Y')
   Datum: Datum als Text ('1.1.2005')
   Ausgabe: Array mit Datumswerten 
     (r[__jahr_id], r[__monat_id], r[__tag_id], r[__stunde_id], r[__minute_id], r[__sekunde_id])
*/
function MMPCal_getDatumArray(DatumFormat, Datum) {
  var r = new Array(__lastDateElement_id);
  var l = DatumFormat.length;
  var i = 0;
  var c;
  var a;
  var p = 0;
  var x;
  for (i = 0; i < r.length; i++) { r[i] = 0; }
  i = 0;
  while (i < l) {
    a = 1;
    z = i + 1;
    c = DatumFormat.substring(i, i+1);
    if (z < l) {
      while (c == DatumFormat.substring(z, z+1)) {
        z++;
        a++;
      }
    }
    /* Variable a zeigt immer die Anzahl der Buchstaben an 
       Bsp: a = 2 bei 'YY' oder a = 3 bei "mmm" */
    switch (c) {
      case 'd' : r[__tag_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__tag_id].length;
                 break;
      case 'm' : r[__monat_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__monat_id].length;
                 break;
      case 'Y' : r[__jahr_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__jahr_id].length;
                 break;
      case 'H' : r[__stunde_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__stunde_id].length;
                 break;
      case 'i' : r[__minute_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__minute_id].length;
                 break;
      case 's' : r[__sekunde_id] = MMPCal_skipZahl(Datum, p);
                 p += r[__sekunde_id].length;
                 break;
      default  : x = MMPCal_skipAlpha(Datum, p);
                 p += x.length;
                 break;
    }
    i += a;    
  }
  return r;
} // EoF MMPCal_getDatumArray


// Funktion MMPCal_getDatumStrArr
// liefert den Datumstext, formatiert nach DatumFormat
// Werte kommen aus dem Feld arr
function MMPCal_getDatumStrArr(DatumFormat, arr) {
  var r = '';
  var l = DatumFormat.length;
  var i = 0;
  var j;
  var c;
  var v;
  var a;
  var z;
  while (i < l) {
    a = 1;
    z = i + 1;
    c = DatumFormat.substring(i, i+1);
    if (z < l) {
      while (c == DatumFormat.substring(z, z+1)) {
        z++;
        a++;
      }
    }
    /* Variable a zeigt immer die Anzahl der Buchstaben an 
       Bsp: a = 2 bei 'YY' oder a = 3 bei "mmm" */
    switch (c) {
      case 'd' : v = parseInt(arr[__tag_id], 10);
                 if (v < 10) { v = '0' + v; }
                 r += v;
                 break;
      case 'm' : v = parseInt(arr[__monat_id], 10);
                 if (v < 10) { v = '0' + v; }
                 r += v;
                 break;
      case 'Y' : r += parseInt(arr[__jahr_id], 10);
                 break;
      case 'H' : v = parseInt(arr[__stunde_id], 10);
                 if (v < 10) { v = '0' + v; }
                 r += v;
                 break;
      case 'i' : v = parseInt(arr[__minute_id], 10);
                 if (v < 10) { v = '0' + v; }
                 r += v;
                 break;
      case 's' : v = parseInt(arr[__sekunde_id], 10);
                 if (v < 10) { v = '0' + v; }
                 r += v;
                 break;     
      default  : for (j = 0; j < a; j++ ) {
                   r += c; 
                 }
                 break;
    }  
    i += a;    
  }
  return r;
} // EoF MMPCal_getDatumStrArr

/* Funktion MMPCal_getDatumStr
   Liefert den Datumstext eines Kalenders (calendar + edt)
   DatumFormat: Format des Datums ('d.m.Y')
   edt: Name des Kalenders (Id) ohne 'calendar'
   Ausgabe: Datumstext 
*/
function MMPCal_getDatumStr(DatumFormat, edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  return MMPCal_getDatumStrArr(o.DatumFormat, o.DatumArray);
}  // EoF MMPCal_getDatumStr

/* Funktion MMPCal_zeichneKalender
   Schreibt die Kalenderausgabe in den Container 'calendar' + edt
   (.innerHTML)
  
*/
function MMPCal_zeichneKalender(edt) {
  var kalender = 'calendar' + edt;           // Name des Kalenders
  var o = document.getElementById(kalender); // der div Container
  var i;
  var sel;                                   // Monat im Jahr = d.Monat
  var Kal_Str;                               // Text für Container
  var d;                                     // Laufdatum 
  var classeZeile = 1;                       // Klasse für Zeile Z0 | Z1  
  
  Kal_Str = 
    "<table cellpadding=\"4\" cellspacing=\"0\" border=\"0\">" +
    
    // Kopfzeile (Schliessen)
    "<tr class=\"calZ0\" style=\"height:15px;\">" +
    "<td colspan=\"7\">" +
    "<table cellpadding='0' cellspacing='0' border='0' width='100%'>"+
    "<tr><td align='left'><a href=\"javascript:;\" alt=\""+o.Str_heutiges_Datum+"\" title=\""+o.Str_heutiges_Datum+"\" onClick=\"javascript:MMPCal_DatumHeute('" + edt + "');\">Heute</a></td>"+
    "<td align='right'>   <a href=\"javascript:;\" onclick=\"javascript:MMPCal_versteckeKalender('" + edt + "');\">" +
		"<img border=\"0\" src=\"/public/images/cal/cancel.gif\" width=\"13\" height=\"11\" " +
		"title=\"" + o.Str_Schliessen + "\"" +
		"onMouseOver=\"this.className='JS_BUTTON';\" " +
		"onMouseOut=\"this.className='button';\">" +													
		"</a></td></tr></table>" +
    "</td>" +
    "</tr>" +
    
    // Zeile mit Monat und Jahr 
    "<tr class=\"calZ0\" style=\"height:25px;\">" +
    "<td colspan=\"7\">" +
		"<select id=\"calendarselmonat" + edt + "\" style=\"float:left;\" onchange=\"javascript:MMPCal_setMonat('" + edt + "');\">";
		
	for (i = 1; i <= 12; i++) {
	  sel = (i == o.DatumArray[__monat_id]) ? ' selected' : '';
	  Kal_Str += "<option" + sel + ">" + o.MonatKurz[i] + "</option>";
  }   
		
	Kal_Str +=	
    "</select>" +
    "<div style=\"float:left;\">" +
    "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_incMonat('" + edt + "');\">" +
		"<img border=\"0\" src=\"/public/images/cal/pfeiloben.gif\" width=\"12\" height=\"11\" " +
		"onMouseOver=\"this.className='JS_BUTTON';\" " +
		"onMouseOut=\"this.className='button';\">" +													
		"</a><br>" +
    "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_decMonat('" + edt + "');\">" +
		"<img border=\"0\" src=\"../public/images/cal/pfeilunten.gif\" width=\"12\" height=\"11\" " +
		"onMouseOver=\"this.className='JS_BUTTON';\" " +
		"onMouseOut=\"this.className='button';\">" +													
		"</a></div>" +
    
    "<div style=\"float:left;width:4px;\"></div>" +
    
    "<input id=\"calendarseljahr" + edt + "\" class=\"calINPUTSmall\" maxlength=\"4\" size=\"4\" " +
    "value=\"" + o.DatumArray[__jahr_id] + "\" " +
    "style=\"float:left;text-align:right;width:30pt;\" " +
    "onchange=\"javascript:MMPCal_setJahr('" + edt + "');\">" +  
		
		"<div style=\"float:left;\">" +
    "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_incJahr('" + edt + "');\">" +
		"<img border=\"0\" src=\"../public/images/cal/pfeiloben.gif\" width=\"12\" height=\"11\" " +
		"onMouseOver=\"this.className='JS_BUTTON';\" " +
		"onMouseOut=\"this.className='button';\">" +													
		"</a><br>" + 
    "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_decJahr('" + edt + "');\">" +
		"<img border=\"0\" src=\"../public/images/cal/pfeilunten.gif\" width=\"12\" height=\"11\" " +
		"onMouseOver=\"this.className='JS_BUTTON';\" " +
		"onMouseOut=\"this.className='button';\">" +													
		"</a></div>" +
    		
    "</td>" +
    "</tr>" +
    
    // Überschrift Wochentage
    "<tr class=\"calZ0\" style=\"height:15px;\">";
    
  for (i = 1; i <= 7; i++) {
	  Kal_Str += "<td class=\"calTDHead\">" + o.Wochentag[i].substring(0, 2) + "</td>";
  }  
  Kal_Str += "</tr>";
  
  d = new Date(o.DatumArray[__jahr_id], o.DatumArray[__monat_id] - 1, 1);
  
  // endeMonat -> Abbruchvariable
  endeMonat = o.DatumArray[__monat_id];
  if (endeMonat == 12) { endeMonat = 0; }
  
  // auf einen Montag zurückgehen
  while (d.getDay() != 1) {
    d.setDate(d.getDate() - 1);
  }
  
  // Tage anzeigen
  do {
    Kal_Str += "<tr class=\"calZ" + classeZeile + "\"  style=\"height:23px;\">";
    for (i = 1; i <= 7; i++) {
      classeTagTD = (((d.getMonth() + 1) == o.DatumArray[__monat_id]) && (d.getDate() == o.DatumArray[__tag_id])) ? 'calTDheute' : 'calTD';
      classeTagLink = ((d.getMonth() + 1) == o.DatumArray[__monat_id]) ? (d.getDay() == 0) ? 'calAso' : 'calA' : 'calAex';
	    Kal_Str += "<td class=\"" + classeTagTD + "\"><a class=\"" + classeTagLink + "\" href=\"javascript:;\" onclick=\"javascript:MMPCal_setTagMonatJahr('"  + edt + "', " + d.getDate() + ', ' + (d.getMonth() + 1) + ', ' + d.getFullYear() + ");\">" + d.getDate() + "</a></td>";
	    d.setDate(d.getDate() + 1);
    }  
    Kal_Str += "</tr>";
    classeZeile = (classeZeile == 1) ? 2 : 1;
  } while (d.getMonth() != endeMonat);
  
  // Uhrzeit (Stunde : Minute [: sekunde])
  if (o.ShowTime == true) {
    Kal_Str += "<tr class=\"calZ0\" style=\"height:30px;\"><td colspan=\"7\">";
    
    Kal_Str += "<div style=\"float:left;margin-right:4px;\">" + o.Str_Uhrzeit + ": </div>";
    
    Kal_Str +=     
      "<input id=\"calendarselstunde" + edt + "\" class=\"calINPUTSmall\" maxlength=\"2\" size=\"2\" " +
      "value=\"" + o.DatumArray[__stunde_id] + "\" " +
      "style=\"float:left;text-align:right;width:18pt;\" " +
      "onchange=\"javascript:MMPCal_setStunde('" + edt + "');\">" +  
		
	  	"<div style=\"float:left;\">" +
      "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_incStunde('" + edt + "');\">" +
		  "<img border=\"0\" src=\"../public/images/cal/pfeiloben.gif\" width=\"12\" height=\"11\" " +
		  "onMouseOver=\"this.className='JS_BUTTON';\" " +
		  "onMouseOut=\"this.className='button';\">" +													
		  "</a><br>" + 
      "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_decStunde('" + edt + "');\">" +
		  "<img border=\"0\" src=\"../public/images/cal/pfeilunten.gif\" width=\"12\" height=\"11\" " +
		  "onMouseOver=\"this.className='JS_BUTTON';\" " +
		  "onMouseOut=\"this.className='button';\">" +													
		  "</a></div>";
		  
		Kal_Str += "<div style=\"float:left;width:8px;text-align:center;\"></div>";
		  
    Kal_Str +=     
      "<input id=\"calendarselminute" + edt + "\" class=\"calINPUTSmall\" maxlength=\"2\" size=\"2\" " +
      "value=\"" + o.DatumArray[__minute_id] + "\" " +
      "style=\"float:left;text-align:right;width:18pt;\" " +
      "onchange=\"javascript:MMPCal_setMinute('" + edt + "');\">" +  
		
	  	"<div style=\"float:left;\">" +
      "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_incMinute('" + edt + "');\">" +
		  "<img border=\"0\" src=\"../public/images/cal/pfeiloben.gif\" width=\"12\" height=\"11\" " +
		  "onMouseOver=\"this.className='JS_BUTTON';\" " +
		  "onMouseOut=\"this.className='button';\">" +													
		  "</a><br>" + 
      "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_decMinute('" + edt + "');\">" +
		  "<img border=\"0\" src=\"../public/images/cal/pfeilunten.gif\" width=\"12\" height=\"11\" " +
		  "onMouseOver=\"this.className='JS_BUTTON';\" " +
		  "onMouseOut=\"this.className='button';\">" +													
		  "</a></div>";
		  
	  if (o.ShowSekunde) {
	    Kal_Str += "<div style=\"float:left;width:8px;text-align:center;\">:</div>";
		  
      Kal_Str +=     
        "<input id=\"calendarselsekunde" + edt + "\" class=\"calINPUTSmall\" maxlength=\"2\" size=\"2\" " +
        "value=\"" + o.DatumArray[__sekunde_id] + "\" " +
        "style=\"float:left;text-align:right;width:18pt;\" " +
        "onchange=\"javascript:MMPCal_setSekunde('" + edt + "');\">" +  
		
	  	  "<div style=\"float:left;\">" +
        "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_incSekunde('" + edt + "');\">" +
		    "<img border=\"0\" src=\"../public/images/cal/pfeiloben.gif\" width=\"12\" height=\"11\" " +
		    "onMouseOver=\"this.className='JS_BUTTON';\" " +
		    "onMouseOut=\"this.className='button';\">" +													
		    "</a><br>" + 
        "<a href=\"javascript:;\" onclick=\"javascript:MMPCal_decSekunde('" + edt + "');\">" +
		    "<img border=\"0\" src=\"../public/images/cal/pfeilunten.gif\" width=\"12\" height=\"11\" " +
		    "onMouseOver=\"this.className='JS_BUTTON';\" " +
		    "onMouseOut=\"this.className='button';\">" +													
		    "</a></div>";
		}
    
    Kal_Str += "</td><tr>";
    
  }

  Kal_Str +=  "</table>";
  
  //alert(Kal_Str);
  
  o.innerHTML = Kal_Str;		
} // Eof MMPCal_zeichneKalender

/* Funktion MMPCal_zeigeKalender
   Zeigt den Kalender 'calendar' + edt an und platziert ihn
   neben den Öffnenschalter 
*/
function MMPCal_zeigeKalender(edt) {
  var klick = 'calendarclick' + edt;
  var kalender = 'calendar' + edt;
  var o = document.getElementById(klick);
  var e = document.getElementById(edt);
  var x = 0;
  var y = 0;
  var w = o.offsetWidth;
  var Eltern = o;
  while (Eltern) {
    x += Eltern.offsetLeft;
    y += Eltern.offsetTop;
    Eltern = Eltern.offsetParent;
  }
  x = x + w + 3;
  o = document.getElementById(kalender); 
  o.style.left = '100px';
  // o.style.top = y;
  if (e.value != '') {
    o.DatumArray = MMPCal_getDatumArray(o.DatumFormat, e.value);
  } else {
    var d = new Date();
    o.DatumArray = new Array(__lastDateElement_id);
    o.DatumArray[__jahr_id] = d.getFullYear();
    o.DatumArray[__monat_id] = d.getMonth() + 1;
    o.DatumArray[__tag_id] = d.getDate();
    o.DatumArray[__stunde_id] = d.getHours();
    o.DatumArray[__minute_id] = d.getMinutes();
    o.DatumArray[__sekunde_id] = d.getSeconds(); 
  }
  if (o.DatumArray[__stunde_id] == '') {
    var d = new Date();
    o.DatumArray[__stunde_id] = d.getHours();
    o.DatumArray[__minute_id] = d.getMinutes();
    o.DatumArray[__sekunde_id] = d.getSeconds(); 
  }
  MMPCal_zeichneKalender(edt);
  o.style.visibility = 'visible';
  //window.scrollTo(x, y);
} // Eof MMPCal_zeigeKalender

/* Funktion MMPCal_versteckeKalender
   Schliesst den Kalender 'calendar' + edt
*/
function MMPCal_versteckeKalender(edt) {
  var kalender = 'calendar' + edt;
  o = document.getElementById(kalender);
  o.style.visibility = 'hidden'; 
}; // EoF MMPCal_versteckeKalender

/*
  Aktuelles Datum in Edt eintragen und Kalendar verstecken
*/
function MMPCal_DatumHeute(edt) {
  var kalender = 'calendar' + edt;
  o = document.getElementById(kalender);
  e = document.getElementById(edt);
  e.value=o.DatumHeute;
  o.style.visibility = 'hidden'; 
}; // Eo MMPCal_DatumHeute

/* Funktion MMPCal_CheckDatum
   Überpüft den Kalender 'calendar' + edt
   ob der Monat zwischen 1 und 12 liegt 
   ob sich der Tag innerhalb des Monats befindet
   Tag zu groß -> Korrektur auf letzen Monatstag
*/
function MMPCal_CheckDatum(edt) {
  var md = new Array(31, 27, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  var j = o.DatumArray[__jahr_id];
  var l = ((j % 4 == 0) && (j % 100 != 0)) || (j % 400 == 0); // Schaltjahr
  if (l) {md[1] = 28;}
  var m = o.DatumArray[__monat_id];
  if (m < 1) { m = 1; o.DatumArray[__monat_id] = m; }
  if (m > 12) { m = 12; o.DatumArray[__monat_id] = m; }
  m--;
  if (md[m] < o.DatumArray[__tag_id]) {
    o.DatumArray[__tag_id] = md[m];
  }
} // EoF MMPCal_CheckDatum

/* Funktion MMPCal_CheckZeit
   Überpüft die Zeit des Kalenders 'calendar' + edt
   und korrigiert sie evtl.
*/
function MMPCal_CheckZeit(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  var test;
  test = o.DatumArray[__stunde_id];
  if (test < 0) { test = 0; }
  if (test > 23) { test = 23; }
  o.DatumArray[__stunde_id] = test;
  test = o.DatumArray[__minute_id];
  if (test < 0) { test = 0; }
  if (test > 59) { test = 59; }
  o.DatumArray[__minute_id] = test;
  test = o.DatumArray[__sekunde_id];
  if (test < 0) { test = 0; }
  if (test > 59) { test = 59; }
  o.DatumArray[__sekunde_id] = test;
} // EoF MMPCal_CheckZeit

/* Funktion MMPCal_setTagMonatJahr
   Setzt Tag, Monat und Jahr des Kalenders 'calendar' + edt
   und zeigt ihn erneut an
*/
function MMPCal_setTagMonatJahr(edt, Tag, Monat, Jahr) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  var alterMonat = o.DatumArray[__monat_id];
  o.DatumArray[__tag_id] = Tag;
  o.DatumArray[__monat_id] = Monat;
  o.DatumArray[__jahr_id] = Jahr;
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  // Klick auf Tag im gleichen Monat -> dann Kalender schliessen
  if (alterMonat == Monat) {
    MMPCal_versteckeKalender(edt);
    e.focus();
  }
}

/* Funktion MMPCal_decMonat
   Verringert den Monat um eins und zeigt den Kalender neu an
*/
function MMPCal_decMonat(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__monat_id]--;
  if (o.DatumArray[__monat_id] == 0) {
    o.DatumArray[__monat_id] = 12;
    o.DatumArray[__jahr_id]--;
  }
  MMPCal_CheckDatum(edt);
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_incMonat
   Erhöht den Monat um eins und zeigt den Kalender neu an
*/
function MMPCal_incMonat(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__monat_id]++;
  if (o.DatumArray[__monat_id] == 13) {
    o.DatumArray[__monat_id] = 1;
    o.DatumArray[__jahr_id]++;
  }
  MMPCal_CheckDatum(edt);
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_setMonat
   Ändert den Monat und zeigt den Kalender neu an
*/
function MMPCal_setMonat(edt) {
  var kalender = 'calendar' + edt;
  var sel = 'calendarselmonat' + edt;
  var o = document.getElementById(kalender);
  var s = document.getElementById(sel);
  o.DatumArray[__monat_id] = s.selectedIndex + 1;
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  var s = document.getElementById(sel);
  s.focus();
}

/* Funktion MMPCal_decJahr
   Verringert das Jahr um eins und zeigt den Kalender neu an
*/
function MMPCal_decJahr(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__jahr_id]--;
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_incJahr
   Erhöht das Jahr um eins und zeigt den Kalender neu an
*/
function MMPCal_incJahr(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__jahr_id]++;
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_setJahr
   Ändert das Jahr und zeigt den Kalender neu an
*/
function MMPCal_setJahr(edt) {
  var kalender = 'calendar' + edt;
  var sel = 'calendarseljahr' + edt;
  var o = document.getElementById(kalender);
  var s = document.getElementById(sel);
  var j = MMPCal_skipZahl(s.value, 0);
  o.DatumArray[__jahr_id] = j;
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  var s = document.getElementById(sel);
  s.focus();
}

/* Funktion MMPCal_decStunde
   Verringert die Stunde um eins und zeigt den Kalender neu an
*/
function MMPCal_decStunde(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__stunde_id]--;
  if (o.DatumArray[__stunde_id] < 0) { o.DatumArray[__stunde_id] = 23; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_incStunde
   Erhöht die Stunde um eins und zeigt den Kalender neu an
*/
function MMPCal_incStunde(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__stunde_id]++;
  if (o.DatumArray[__stunde_id] > 23) { o.DatumArray[__stunde_id] = 0; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_setStunde
   Ändert die Stunde und zeigt den Kalender neu an
*/
function MMPCal_setStunde(edt) {
  var kalender = 'calendar' + edt;
  var sel = 'calendarselstunde' + edt;
  var o = document.getElementById(kalender);
  var s = document.getElementById(sel);
  var h = MMPCal_skipZahl(s.value, 0);
  o.DatumArray[__stunde_id] = h;
  if (o.DatumArray[__stunde_id] < 0) { o.DatumArray[__stunde_id] = 0; }
  if (o.DatumArray[__stunde_id] > 23) { o.DatumArray[__stunde_id] = 23; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  var s = document.getElementById(sel);
  s.focus();
}

/* Funktion MMPCal_decMinute
   Verringert die Minute um eins und zeigt den Kalender neu an
*/
function MMPCal_decMinute(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__minute_id]--;
  if (o.DatumArray[__minute_id] < 0) { o.DatumArray[__minute_id] = 59; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_incMinute
   Erhöht die Minute um eins und zeigt den Kalender neu an
*/
function MMPCal_incMinute(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__minute_id]++;
  if (o.DatumArray[__minute_id] > 59) { o.DatumArray[__minute_id] = 0; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_setMinute
   Ändert die Minute und zeigt den Kalender neu an
*/
function MMPCal_setMinute(edt) {
  var kalender = 'calendar' + edt;
  var sel = 'calendarselminute' + edt;
  var o = document.getElementById(kalender);
  var s = document.getElementById(sel);
  var m = MMPCal_skipZahl(s.value, 0);
  o.DatumArray[__minute_id] = m;
  if (o.DatumArray[__minute_id] < 0) { o.DatumArray[__minute_id] = 0; }
  if (o.DatumArray[__minute_id] > 59) { o.DatumArray[__minute_id] = 59; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  var s = document.getElementById(sel);
  s.focus();
}

/* Funktion MMPCal_decSekunde
   Verringert die Sekunde um eins und zeigt den Kalender neu an
*/
function MMPCal_decSekunde(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__sekunde_id]--;
  if (o.DatumArray[__sekunde_id] < 0) { o.DatumArray[__sekunde_id] = 59; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_incSekunde
   Erhöht die Sekund um eins und zeigt den Kalender neu an
*/
function MMPCal_incSekunde(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  o.DatumArray[__sekunde_id]++;
  if (o.DatumArray[__sekunde_id] > 59) { o.DatumArray[__sekunde_id] = 0; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
}

/* Funktion MMPCal_setMinute
   Ändert die Sekunde und zeigt den Kalender neu an
*/
function MMPCal_setSekunde(edt) {
  var kalender = 'calendar' + edt;
  var sel = 'calendarselsekunde' + edt;
  var o = document.getElementById(kalender);
  var s = document.getElementById(sel);
  var m = MMPCal_skipZahl(s.value, 0);
  o.DatumArray[__sekunde_id] = m;
  if (o.DatumArray[__sekunde_id] < 0) { o.DatumArray[__sekunde_id] = 0; }
  if (o.DatumArray[__sekunde_id] > 59) { o.DatumArray[__sekunde_id] = 59; }
  e = document.getElementById(edt);
  e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
  MMPCal_zeichneKalender(edt);
  var s = document.getElementById(sel);
  s.focus();
}

/* Funktion MMPCal_inputChange
   Aktualisiert den Kalender, wenn sich ein externes Eingabefeld ändert
   z.B. onchange des Eingabefeldes
*/
function MMPCal_inputChange(edt) {
  var kalender = 'calendar' + edt;
  var o = document.getElementById(kalender);
  if (o) {
    if (o.style.visibility == "visible") {
      var e = document.getElementById(edt);
      o.DatumArray = MMPCal_getDatumArray(o.DatumFormat, e.value);
      MMPCal_CheckDatum(edt);
      MMPCal_CheckZeit(edt);
      //e.value = MMPCal_getDatumStr(o.DatumFormat, edt);
      MMPCal_zeichneKalender(edt);  
    }
  }
}

