﻿  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() + (0 * 24 * 60 * 60 * 1000);
        var abreise = anreise + (7 * 24 * 60 * 60 * 1000);

        date.setTime(anreise);
        jQuery.insertDateFormated('#datum_tag','#datum_monat','#datum_jahr',date);
        jQuery.insertDateFormated('#datum_tag_teaser','#datum_monat_teaser','#datum_jahr_teaser',date);

        date.setTime(abreise);
        jQuery.insertDateFormated('#datum2_tag','#datum2_monat','#datum2_jahr',date);
        jQuery.insertDateFormated('#datum2_tag_teaser','#datum2_monat_teaser','#datum2_jahr_teaser',date);*/

	var jetzt = new Date();
  	jetzt.setDate(jetzt.getDate() + 3);	// + 0 Tage
  	var anreiseDatum = new Date(jetzt.getTime());
  	jetzt.setDate(jetzt.getDate() + 7);	// + 7 Tage
  	var abreiseDatum = new Date(jetzt.getTime());
  	jetzt = new Date();

  	document.obs_form.datum_tag.selectedIndex = anreiseDatum.getDate() - 1;
  	document.obs_form.datum_monat.selectedIndex = anreiseDatum.getMonth();

  	var jetztJahr = jetzt.getFullYear();
  	for(var i=0; i<3; i++) {
    		var jahr = jetztJahr + i;
    		var isSelected = false;
    		if(jahr == anreiseDatum.getFullYear()) { isSelected = true; }

    		var option_jahr = new Option(jahr, jahr, false, isSelected);
    		document.obs_form.datum_jahr.options[document.obs_form.datum_jahr.length] = option_jahr;
  	}

  	document.obs_form.datum2_tag.selectedIndex = abreiseDatum.getDate() - 1;
  	document.obs_form.datum2_monat.selectedIndex = abreiseDatum.getMonth();

  	jetzt.setDate(jetzt.getDate() + 7);	// Abreise 7 Tage nach Anreise
  	var jetztJahr = jetzt.getFullYear();
  	for(var i=0; i<3; i++) {
    		var jahr = jetztJahr + i;
    		var isSelected = false;
    		if(jahr == abreiseDatum.getFullYear()) { isSelected = true; }

    		var option_jahr = new Option(jahr, jahr, false, isSelected);
    		document.obs_form.datum2_jahr.options[document.obs_form.datum2_jahr.length] = option_jahr;
  	}
	
      });

      jQuery('#datepicker_start').datepicker({
        // Optionen setzen
        showOn: 'button',
        buttonImage: '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('#datum_tag').val());
          var month = parseInt(jQuery('#datum_monat').val());
          var year = parseInt(jQuery('#datum_jahr').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('#datum_tag','#datum_monat','#datum_jahr',date);

          // Prüfen, ob das Abreisedatum nach dem Anreisedatum liegt. Wenn nicht, Datum setzen.
          var frueheste_abreise = date.getTime() + (7 * 24 * 60 * 60 * 1000);
          date.setTime(frueheste_abreise);
          frueheste_abreise = null;

          var day = parseInt(jQuery('#datum2_tag').val());
          var month = parseInt(jQuery('#datum2_monat').val());
          var year = parseInt(jQuery('#datum2_jahr').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('#datum2_tag','#datum2_monat','#datum2_jahr',date);
            }
            date_abreise = null;
          } else {
            jQuery.insertDateFormated('#datum2_tag','#datum2_monat','#datum2_jahr',date);
          }

          date = day = month = year = null;
        }
      });
      
      jQuery('#datepicker_start_teaser').datepicker({
        // Optionen setzen
        showOn: 'button',
        buttonImage: '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('#datum_tag_teaser').val());
          var month = parseInt(jQuery('#datum_monat_teaser').val());
          var year = parseInt(jQuery('#datum_jahr_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('#datum_tag_teaser','#datum_monat_teaser','#datum_jahr_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('#datum2_tag_teaser').val());
          var month = parseInt(jQuery('#datum2_monat_teaser').val());
          var year = parseInt(jQuery('#datum2_jahr_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('#datum2_tag_teaser','#datum2_monat_teaser','#datum2_jahr_teaser',date);
            }
            date_abreise = null;
          } else {
            jQuery.insertDateFormated('#datum2_tag_teaser','#datum2_monat_teaser','#datum2_jahr_teaser',date);
          }

          date = day = month = year = null;
        }
      });

      jQuery('#datepicker_end').datepicker({
        showOn: 'button',
        buttonImage: '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('#datum_tag').val());
          var month = parseInt(jQuery('#datum_monat').val());
          var year = parseInt(jQuery('#datum_jahr').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('#datum2_tag').val());
          var month = parseInt(jQuery('#datum2_monat').val());
          var year = parseInt(jQuery('#datum2_jahr').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('#datum2_tag','#datum2_monat','#datum2_jahr',date);
          date = null;
        }
      });
      
      jQuery('#datepicker_end_teaser').datepicker({
        showOn: 'button',
        buttonImage: '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('#datum_tag_teaser').val());
          var month = parseInt(jQuery('#datum_monat_teaser').val());
          var year = parseInt(jQuery('#datum_jahr_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('#datum2_tag_teaser').val());
          var month = parseInt(jQuery('#datum2_monat_teaser').val());
          var year = parseInt(jQuery('#datum2_jahr_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('#datum2_tag_teaser','#datum2_monat_teaser','#datum2_jahr_teaser',date);
          date = null;
        }
      });
    });

function showChildLayer(selectBox, layerId) {
	var index = selectBox.selectedIndex;
	if(index > 0) {
		// alle SelectBoxen im Layer verstecken
		var sbDiv = document.getElementById('kindalter');
		for(var i=0; i<sbDiv.childNodes.length; i++){
             if(sbDiv.childNodes[i].nodeName=="DIV") sbDiv.childNodes[i].className="usbar";
		}
		
		// für die Anzahl der Kinder benötigte SelctBoxen anzeigen
		var sbValue = selectBox.options[index].value;
		var splitedValue = sbValue.split(",");
		for(var i=0; i<splitedValue.length; i++) {
			document.getElementById(splitedValue[i]).className = 'sbar';
		}
		
		// den Layer anzeigen
		document.getElementById(layerId).style.display = 'inline';
	} else {
		document.getElementById('kind_alter_anzeige').innerHTML = '';
		document.getElementById(layerId).style.display = 'none';
	}
}

function closeChildLayer(layerId) {
	var text = '';
	
	var sbDiv = document.getElementById('kindalter');
	for(var i=0; i<sbDiv.childNodes.length; i++){
    	if(sbDiv.childNodes[i].nodeName=="DIV" && sbDiv.childNodes[i].className=="sbar") {
			var divChilds = sbDiv.childNodes[i].childNodes;
			for(var j=0; j<divChilds.length; j++){
				if(divChilds[j].nodeName=="SELECT") {
					var selectBox = divChilds[j];
					text += ', '+selectBox.options[selectBox.selectedIndex].value+' J.';
				}
			}
		}
	}
	
	document.getElementById('kind_alter_anzeige').innerHTML = '( '+text.substr(2)+' )';
	document.getElementById(layerId).style.display = 'none';
}

