  jQuery(function() {
      jQuery.extend( {
        insertDateFormated: function(day, month, year, date) {
          var formatedValue = null;
          // Tag
          formatedValue = date.getDate();
          //if(formatedValue < 10) formatedValue = '0'+formatedValue;
          jQuery(day).val(formatedValue);
          // Monat
          formatedValue = date.getMonth() + 1;
          //if(formatedValue < 10) formatedValue = '0'+formatedValue;
          jQuery(month).val(formatedValue);
          // Jahr
          jQuery(year).val(date.getFullYear());

          formatedValue = null;
        }
      });

      jQuery(document).ready(function() {
        var date = new Date();
        var anreise = date.getTime() + (2 * 24 * 60 * 60 * 1000);
        var abreise = anreise + (7 * 24 * 60 * 60 * 1000);

        date.setTime(anreise);
        jQuery.insertDateFormated('#day_start','#month_start','#year_start',date);
        jQuery.insertDateFormated('#day_start_teaser','#month_start_teaser','#year_start_teaser',date);

        date.setTime(abreise);
        jQuery.insertDateFormated('#day_end','#month_end','#year_end',date);
        jQuery.insertDateFormated('#day_end_teaser','#month_end_teaser','#year_end_teaser',date);
      });

      jQuery('#datepicker_start').datepicker({
        // Optionen setzen
        showOn: 'button',
        buttonImage: 'fileadmin/layout/layoutimages/datepicker/calendar.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        dateFormat: 'yy/m/d',
        firstDay: 1,
        minDate: new Date(),
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
        nextText: 'vor',
        prevText: 'zurück',

        // Event "beforeShow"
        beforeShow: function(input, inst) {
          var day = parseInt(jQuery('#day_start').val());
          var month = parseInt(jQuery('#month_start').val());
          var year = parseInt(jQuery('#year_start').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            jQuery('#datepicker_start').datepicker('option', 'defaultDate', date);
            jQuery('#datepicker_start').datepicker('setDate', date);
            date = null;
          }

          day = month = year = null;
        },

        // Event "onSelect"
        onSelect: function(dateText, inst) {
          var arrDate = dateText.split('/');
          var date = new Date(arrDate[0], arrDate[1]-1, arrDate[2], 12, 0, 0);
          arrDate = null;
          jQuery.insertDateFormated('#day_start','#month_start','#year_start',date);

          // Prüfen, ob das Abreisedatum nach dem Anreisedatum liegt. Wenn nicht, Datum setzen.
          var frueheste_abreise = date.getTime() + (24 * 60 * 60 * 1000);
          date.setTime(frueheste_abreise);
          frueheste_abreise = null;

          var day = parseInt(jQuery('#day_end').val());
          var month = parseInt(jQuery('#month_end').val());
          var year = parseInt(jQuery('#year_end').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date_abreise = new Date(year, month-1, day);
            if(date_abreise.getTime() < date.getTime()) {
              jQuery.insertDateFormated('#day_end','#month_end','#year_end',date);
            }
            date_abreise = null;
          } else {
            jQuery.insertDateFormated('#day_end','#month_end','#year_end',date);
          }

          date = day = month = year = null;
        }
      });
      
      jQuery('#datepicker_start_teaser').datepicker({
        // Optionen setzen
        showOn: 'button',
        buttonImage: 'fileadmin/layout/layoutimages/datepicker/calendar.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        dateFormat: 'yy/m/d',
        firstDay: 1,
        minDate: new Date(),
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
        nextText: 'vor',
        prevText: 'zurück',

        // Event "beforeShow"
        beforeShow: function(input, inst) {
          var day = parseInt(jQuery('#day_start_teaser').val());
          var month = parseInt(jQuery('#month_start_teaser').val());
          var year = parseInt(jQuery('#year_start_teaser').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            jQuery('#datepicker_start_teaser').datepicker('option', 'defaultDate', date);
            jQuery('#datepicker_start_teaser').datepicker('setDate', date);
            date = null;
          }

          day = month = year = null;
        },

        // Event "onSelect"
        onSelect: function(dateText, inst) {
          var arrDate = dateText.split('/');
          var date = new Date(arrDate[0], arrDate[1]-1, arrDate[2], 12, 0, 0);
          arrDate = null;
          jQuery.insertDateFormated('#day_start_teaser','#month_start_teaser','#year_start_teaser',date);

          // Prüfen, ob das Abreisedatum nach dem Anreisedatum liegt. Wenn nicht, Datum setzen.
          var frueheste_abreise = date.getTime() + (24 * 60 * 60 * 1000);
          date.setTime(frueheste_abreise);
          frueheste_abreise = null;

          var day = parseInt(jQuery('#day_end_teaser').val());
          var month = parseInt(jQuery('#month_end_teaser').val());
          var year = parseInt(jQuery('#year_end_teaser').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date_abreise = new Date(year, month-1, day);
            if(date_abreise.getTime() < date.getTime()) {
              jQuery.insertDateFormated('#day_end_teaser','#month_end_teaser','#year_end_teaser',date);
            }
            date_abreise = null;
          } else {
            jQuery.insertDateFormated('#day_end_teaser','#month_end_teaser','#year_end_teaser',date);
          }

          date = day = month = year = null;
        }
      });

      jQuery('#datepicker_end').datepicker({
        showOn: 'button',
        buttonImage: 'fileadmin/layout/layoutimages/datepicker/calendar.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        dateFormat: 'yy/m/d',
        firstDay: 1,
        minDate: new Date(),
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
        nextText: 'vor',
        prevText: 'zurück',

        beforeShow: function(input, inst) {
          // minDate festlegen
          var day = parseInt(jQuery('#day_start').val());
          var month = parseInt(jQuery('#month_start').val());
          var year = parseInt(jQuery('#year_start').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            date.setTime(date.getTime() + (24 * 60 * 60 * 1000));
            jQuery('#datepicker_end').datepicker('option', 'minDate', date);
            date = null;
          }

          // Selected Date aus Input-Feldern holen
          var day = parseInt(jQuery('#day_end').val());
          var month = parseInt(jQuery('#month_end').val());
          var year = parseInt(jQuery('#year_end').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            jQuery('#datepicker_end').datepicker('option', 'defaultDate', date);
            jQuery('#datepicker_end').datepicker('setDate', date);
            date = null;
          }

          day = month = year = null;
        },

        onSelect: function(dateText, inst) {
          var arrDate = dateText.split('/');
          var date = new Date(arrDate[0], arrDate[1]-1, arrDate[2], 12, 0, 0);
          arrDate = null;
          jQuery.insertDateFormated('#day_end','#month_end','#year_end',date);
          date = null;
        }
      });
      
      jQuery('#datepicker_end_teaser').datepicker({
        showOn: 'button',
        buttonImage: 'fileadmin/layout/layoutimages/datepicker/calendar.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        dateFormat: 'yy/m/d',
        firstDay: 1,
        minDate: new Date(),
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
        nextText: 'vor',
        prevText: 'zurück',

        beforeShow: function(input, inst) {
          // minDate festlegen
          var day = parseInt(jQuery('#day_start_teaser').val());
          var month = parseInt(jQuery('#month_start_teaser').val());
          var year = parseInt(jQuery('#year_start_teaser').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            date.setTime(date.getTime() + (24 * 60 * 60 * 1000));
            jQuery('#datepicker_end_teaser').datepicker('option', 'minDate', date);
            date = null;
          }

          // Selected Date aus Input-Feldern holen
          var day = parseInt(jQuery('#day_end_teaser').val());
          var month = parseInt(jQuery('#month_end_teaser').val());
          var year = parseInt(jQuery('#year_end_teaser').val());

          if(!isNaN(day) && !isNaN(month) && !isNaN(year) && day>=1 && day<=31 && month>=1 && month<=12 && year>2000) {
            var date = new Date(year, month-1, day);
            jQuery('#datepicker_end_teaser').datepicker('option', 'defaultDate', date);
            jQuery('#datepicker_end_teaser').datepicker('setDate', date);
            date = null;
          }

          day = month = year = null;
        },

        onSelect: function(dateText, inst) {
          var arrDate = dateText.split('/');
          var date = new Date(arrDate[0], arrDate[1]-1, arrDate[2], 12, 0, 0);
          arrDate = null;
          jQuery.insertDateFormated('#day_end_teaser','#month_end_teaser','#year_end_teaser',date);
          date = null;
        }
      });
    });
