/**
  * Feld generieren
  * @return <type>
  */
 public function generate()
 {
     $strBuffer = parent::generate();
     if ($this->readonly || $this->disabled) {
         return $strBuffer;
     }
     //CSS und JAVACRIPT laden
     $GLOBALS['TL_CSS'][] = 'plugins/datepicker/dashboard.css';
     $GLOBALS['TL_JAVASCRIPT'][] = 'plugins/datepicker/datepicker.js';
     //Datumsformat setzen
     $dateFormat = strlen($this->xdateformat) ? $this->xdateformat : $GLOBALS['TL_CONFIG']['dateFormat'];
     $dateFormat_kalender = "%d.%m.%Y";
     if (strlen($this->xdateformat) == 5) {
         $dateFormat_kalender = str_replace('d', '%d', $this->xdateformat);
         $dateFormat_kalender = str_replace('m', '%m', $dateFormat_kalender);
         $dateFormat_kalender = str_replace('Y', '%Y', $dateFormat_kalender);
     }
     //Startwert aufarbeiten
     $xstartwertset = $this->setzteXWert($this->xstartwert, $dateFormat);
     //Stopwert setzen
     $xstopwertset = $this->setzteXWert($this->xstopwert, $dateFormat);
     //----------------------------------------------------------------------
     //Picker zusammenbauen
     //----------------------------------------------------------------------
     $strBuffer = str_replace('class', 'class', $strBuffer);
     if ($this->varValue == "") {
         $strBuffer = str_replace('value="', 'value="' . ($xstartwertset == "" ? date($dateFormat) : $xstartwertset), $strBuffer);
     }
     $strBuffer .= '<img src="plugins/datepicker/icon.gif" id="xdate_toggler' . $this->strId . '" class="xdate_toggler' . $this->strId . '" alt="calenderbild" style="position: relative; top: 3px; margin-left: 4px;" />';
     //Keine Abhänignkeit da
     if ($this->xdepend == "none") {
         $objTE = $this->Database->prepare("SELECT id FROM tl_form_field WHERE xdepend=?")->execute($this->strId);
         if ($objTE->numRows == 0) {
             $strBuffer .= '
                 <script type="text/javascript">
                 <!--//--><![CDATA[//><!--
                 window.addEvent("load", function() {   
                     new Picker.Date($$("#ctrl_' . $this->strId . '"), {
                       draggable:false,
                       toggle:$$("#xdate_toggler' . $this->strId . '"),
                       format:"' . $dateFormat_kalender . '",                          
                       timePicker:false,
                       pickerClass:"datepicker_dashboard",
                       days_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['days'] . ',
                       months_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['month'] . ',
                       useFadeInOut:!Browser.ie,
                       startDay:1,
                       allowEmpty:false,
                       titleFormat:"%d. %B %Y"
                   ';
             //Startwert
             if ($xstartwertset != "") {
                 $strBuffer .= ',minDate : "' . $xstartwertset . '"';
             }
             //Stopwert
             if ($xstopwertset != "") {
                 $strBuffer .= ',maxDate : "' . $xstopwertset . '"';
             }
             $strBuffer .= "});});//--><!]]></script>";
         }
     } else {
         //Erster Kalender
         $objDatenxdepend = $this->Database->prepare("SELECT xstartwert,xstopwert FROM tl_form_field WHERE id=?")->execute($this->xdepend);
         $xstartwertset_depend = $xstartwertset;
         $xstopwertset_depend = $xstopwertset;
         if ($objDatenxdepend->numRows > 0) {
             $ergobjDatenxdepend = $objDatenxdepend->fetchAssoc();
             $xstartwertset_depend = $this->setzteXWert($ergobjDatenxdepend['xstartwert'], $dateFormat);
             $xstopwertset_depend = $this->setzteXWert($ergobjDatenxdepend['xstopwert'], $dateFormat);
         }
         $strBuffer .= '
             <script type="text/javascript">
             <!--//--><![CDATA[//><!--
             window.addEvent("load", function() {   
                 var xdatepicker' . $this->xdepend . ' = new Picker.Date($$("#ctrl_' . $this->xdepend . '"), {
                   draggable:false,
                   toggle:$$("#xdate_toggler' . $this->xdepend . '"),
                   format:"' . $dateFormat_kalender . '",                      
                   timePicker:false,
                   pickerClass:"datepicker_dashboard",
                   days_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['days'] . ',
                   months_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['month'] . ',
                   useFadeInOut:!Browser.ie,
                   allowEmpty:false,
                   startDay:1,
                   titleFormat:"%d. %B %Y"                     
               ';
         //Startwert
         if ($xstartwertset_depend != "") {
             $strBuffer .= ',minDate : "' . $xstartwertset_depend . '"';
         }
         //Stopwert
         if ($xstopwertset_depend != "") {
             $strBuffer .= ',maxDate : "' . $xstopwertset_depend . '"';
         }
         $strBuffer .= '});';
         //Zweiter Kalender
         $strBuffer .= '                
                 new Picker.Date($$("#ctrl_' . $this->strId . '"), {
                   draggable:false,
                   toggle:$$("#xdate_toggler' . $this->strId . '"),
                   format:"' . $dateFormat_kalender . '",                       
                   timePicker:false,
                   pickerClass:"datepicker_dashboard",
                   days_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['days'] . ',
                   months_abbr: ' . $GLOBALS['TL_LANG']['FFL']['xdependentcalendarfields']['month'] . ',
                   useFadeInOut:!Browser.ie,
                   startDay:1,
                   allowEmpty:false,
                   titleFormat:"%d. %B %Y"
               ';
         //Startwert
         if ($xstartwertset != "") {
             $strBuffer .= ',minDate : "' . $xstartwertset . '"';
         }
         //Stopwert
         if ($xstopwertset != "") {
             $strBuffer .= ',maxDate : "' . $xstopwertset . '"';
         }
         $strBuffer .= ',maxDate : "' . $xstopwertset . '"';
         $strBuffer .= "\r\n                ,onSelect: function(d){                    \r\n                    var xtime = Math.floor(d.valueOf());                    \r\n                    var date = new Date(xtime);\r\n            ";
         $strBuffer .= '              
              xdatepicker' . $this->xdepend . '.options.minDate = new Date(xtime);                    
              $("ctrl_' . $this->xdepend . '").value = new Date(xtime).format("' . $dateFormat_kalender . '");                    
             }
         });            
         });//--><!]]></script>';
     }
     return $strBuffer;
 }
 /**
  * Generate the widget and return it as string
  *
  * @return string The widget markup
  */
 public function generate()
 {
     return parent::generate();
 }