//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++                                                              ++++++
//++++++    copyright Ralf Schulenburg, Databau                       ++++++
//++++++    Dieses Script darf für eigene Zwecke verwendet werden     ++++++
//++++++    Diese Zeilen und mein Name dürfen nicht enfernt werden    ++++++
//++++++                                                              ++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//                     Hier editieren
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------


var cellFontFamily       = "Arial, Helvetica, sans-serif";  //Schriftart
var cellFontSize         = 12;        //Schriftgröße
var tableBorder          = 1;         //Tabellenrandstärke
var tableBorderColorLight= "#AFAFAF"; //3D Tabellenrand hell
var tableBorderColorDark = "#3F3F3F"; //3D Tabellenrand dunlel

var cellPadding          = 0;         //Abstand zwischen Zellenrand und Zelleninhalt
var cellSpacing          = 0;         //Zellenabstand

var cellBorder           = 1;         //Zellenrandstärke
var cellBorderColorLight = "#dde0FF"; //3D Zellenrand hell
var cellBorderColorDark  = "#11225F"; //3D Zellenrand dunlel

var background           = "#FFE9C4"; //Allgemeine Hintergrundfarbe
var headerBackground     = "#FFE9C4"; /*Hintergrund Zeile oben (Monat und Jahr)
                                        nur relevant mit cellSpacing*/
var monthdayBackground   = "#00C0FF"; //Hintergrundfarbe der Kalendertageszellen
var pickedBackground     = "#FF007F"; //Hintergrundfarbe der ausgewählten Kalendertageszelle
var chosenBackground     = "#FFBF00"; //Hintergrundfarbe der Kalendertageszelle bei MouseOver
var weekdayBackground    = "#000099"; //Hintergrundfarbe für die Wochentagszellen
var weekdayFont          = "#ffffff"; //Schriftfarbe für die Wochentagszellen
var todayFontColor       = "#cc0000"; //Schriftfarbe des heutigen Tages
var alldayFontColor      = "#003F00"; //Schriftfarbe aller anderen Kalendertage


//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//                     Hier besser nichts mehr editieren
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

var inpObj;
var div;
var pickervisible = false;
var dConfig = "dd.mm.yyyy";
var monSize        = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Wochentag1 = new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");
var Wochentag2 = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
var Monate = new Array("Januar", "Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var iJahre = new Array(-2,-1,0,1,2);
var remcol;
//---------------------------------------------------------------------------

function timepick(obj,t,l)
{
   if(pickervisible){
       pickervisible = false;
       document.body.removeChild(div);
   }else{
       pickervisible = true;
       inpObj = obj;
       div = document.createElement("div");
       div.style.borderTop = tableBorder + "px " + tableBorderColorLight + " solid";
       div.style.borderLeft = tableBorder + "px " + tableBorderColorLight + " solid";
       div.style.borderBottom = tableBorder + "px " + tableBorderColorDark + " solid";
       div.style.borderRight = tableBorder + "px " + tableBorderColorDark + " solid";
       div.style.position = "absolute";
       div.style.display  = "block";
       div.style.width    = "150px";
       div.style.hight    = "300px";
       var top = obj.offsetTop;
       var left = obj.offsetLeft;
       var hObj = obj;
       div.style.top      = t;
       div.style.left     = l;
       div.style.zIndex  = "10";
       fillPicker(obj.value);
   }
}
//---------------------------------------------------------------------------

function fillPicker(datum)
{
   var jetzt = new Date();

   var dString = datum.split(".");
   if(dString[2]%4 == 0) monSize[1] = 29;
   else                  monSize[1] = 28;

   var ndt = new Date(dString[2], parseInt(dString[1])-1, parseInt(dString[0]));
   var anzMonTage = monSize[parseInt(dString[1])-1];
   var wd = ndt.getDay();

   var stddt = new Date(dString[2], parseInt(dString[1])-1, 0);
   var ms = stddt.getDay();

   var h = div.style.height;
   var w = div.style.width;
   var cl = parseInt(parseInt(w)/7);

   document.body.appendChild(div);
   var tbl = document.createElement("table");
   tbl.cellPadding = cellPadding;
   tbl.cellSpacing = cellSpacing;
   tbl.border      = 0;
   tbl.style.backgroundColor = background;
   div.appendChild(tbl);
   var tbd = document.createElement("tbody");
   tbl.appendChild(tbd);

   var fr = document.createElement("tr");
   var fd = document.createElement("td");
   fd.colSpan="7";
   fd.style.backgroundColor = headerBackground;
   var sel1 = document.createElement("select");
   var sel2 = document.createElement("select");
   sel1.style.width = parseInt(parseInt(div.style.width)/2)+ "px";
   sel2.style.width = parseInt(parseInt(div.style.width)/2)+ "px";
   for(var x=0; x<12; x++){
       var opt = document.createElement("option");
       opt.value = x+1;
       opt.innerHTML = Monate[x];
       sel1.appendChild(opt);
   }
   for(var x=0; x<iJahre.length; x++){
       var opt = document.createElement("option");
       opt.value = parseInt(dString[2]) + iJahre[x];
       opt.innerHTML = parseInt(dString[2]) + iJahre[x];
       sel2.appendChild(opt);
   }
   sel1.selectedIndex = parseInt(dString[1])-1;
   sel2.selectedIndex = sel2.options.length/2;

   sel2.style.marginLeft = cellPadding + "px";

   sel1.onchange = changeM;
   sel2.onchange = changeY;

   fd.appendChild(sel1);
   fd.appendChild(sel2);

   fr.appendChild(fd);
   tbd.appendChild(fr);

   var c=0;
   var goofy = false;
   var doBreak = false;
   for(var x=0; x<7; x++){
       var tr = document.createElement("tr");
       for(var y=0; y<7; y++){
           var td = document.createElement("td");
           td.style.height = cl + "px";
           td.style.borderTop = cellBorder + "px " + cellBorderColorLight + " solid";
           td.style.borderLeft = cellBorder + "px " + cellBorderColorLight + " solid";
           td.style.borderBottom = cellBorder + "px " + cellBorderColorDark + " solid";
           td.style.borderRight = cellBorder + "px " + cellBorderColorDark + " solid";

           td.style.textAlign = "center";
           td.style.fontFamily = cellFontFamily;
           td.style.fontSize = cellFontSize;
           if(x==0){
               td.innerHTML = Wochentag1[y+1];
               td.style.backgroundColor = weekdayBackground;
               td.style.color = weekdayFont;
           }else if(x>0){
               if(y >= ms && c < anzMonTage-1){
                   goofy = true;
               }
               if(goofy){
                   td.innerHTML = c+1;
                   if(c+1==parseInt(dString[0]))
                       td.style.backgroundColor = pickedBackground;
                   else
                       td.style.backgroundColor = monthdayBackground;
                   td.style.cursor = "pointer";
                   td.onclick = dateclick;
                   td.onmouseover = doremcol;
                   td.onmouseout  = doreremcol;

                   if(parseInt(sel1.value-1) == parseInt(jetzt.getMonth())
                   && c+1                  == parseInt(jetzt.getDate())
                   && parseInt(sel2.value) == parseInt(jetzt.getFullYear()))
                       td.style.color = todayFontColor;
                   else
                       td.style.color = alldayFontColor;

                   c++;
               }
               if(c > anzMonTage-1){
                   goofy = false;
                   doBreak = true;
               }
           }

           tr.appendChild(td);
           tbd.appendChild(tr);
           if(doBreak == true) break;
       }
   }
}
//---------------------------------------------------------------------------

function changeM()
{
    var month = div.getElementsByTagName("select")[0].value;
    var year  = div.getElementsByTagName("select")[1].value;
    var day   = "1";
    var tds   = div.getElementsByTagName("td");
    for(x=0; x<tds.length; x++){
        if(tds[x].style.backgroundColor.toLowerCase() == pickedBackground.toLowerCase()){
            day = tds[x].innerHTML;
            break;
        }
    }
    div.removeChild(div.firstChild);
    fillPicker(day + "." + month + "." + year);
}
//---------------------------------------------------------------------------

function changeY()
{
    var month = div.getElementsByTagName("select")[0].value;
    var year  = div.getElementsByTagName("select")[1].value;
    var day   = "1";
    var tds   = div.getElementsByTagName("td");
    for(x=0; x<tds.length; x++){
        if(tds[x].style.backgroundColor.toLowerCase() == pickedBackground.toLowerCase()){
            day = tds[x].innerHTML;
            break;
        }
    }
    div.removeChild(div.firstChild);
    fillPicker(day + "." + month + "." + year);
}
//---------------------------------------------------------------------------

function dateclick()
{
    var month = div.getElementsByTagName("select")[0].value;
    var year  = div.getElementsByTagName("select")[1].value;
    var day = this.innerHTML;
    inpObj.value = (day + "." + month + "." + year);
    div.removeChild(div.firstChild);
    fillPicker(day + "." + month + "." + year);
    pickervisible = false;
    document.body.removeChild(div);
    berech();
}
//---------------------------------------------------------------------------

function doremcol()
{
    remcol = this.style.backgroundColor;
    this.style.backgroundColor = chosenBackground;
}
//---------------------------------------------------------------------------

function doreremcol()
{
    this.style.backgroundColor = remcol;
}