  var hinRueckSwitch = 0;
  var hinFlugTag = 0;
  var hinFlugMonat = 0;
  var hinFlugJahr = 0;
	var anzahlTage = '21';
  
  function setDatum(tabellenzelle, jahr, monat, tag) {
  	//Was muss alles passieren? 
  	//1. Die Ueberschrift muss sich aendern
  	//2. Die Variable zum switchen zwischen hin- und Ruecktermin muss gesetzt werden
  	//HinRueck == 0. Dann wurde Hin gewaehlt
  	if(!hinRueckSwitch) {
  		hinRueckSwitch = !hinRueckSwitch;
  		tabellenzelle.style.backgroundColor = 'red';
  		tabellenzelle.style.fontWeight = 'bold';
  		updateAlleTermine(jahr, monat, tag,'k');
  		setRueckUeberschrift();
  	}
  	else {
  		if(rueckKleinerAlsHin(jahr,monat,tag)) return;
  		hinRueckSwitch = !hinRueckSwitch;
  		updateAlleTermine(jahr,monat,tag,'rueck');
  		window.calendar.close();
  	}
  }
  
  
  function updateAlleTermine(jahr,monat,tag,dropDown) {
  	
  	var popUpFenster = checkIfPopUp();
  	var datum = new Date(jahr,monat-1,tag);
  	var tmpTag = eval(popUpFenster+'document.schnellsuche.'+dropDown+'tag');
  	var tmpMonat = eval(popUpFenster+'document.schnellsuche.'+dropDown+'monat');
  	var tmpMonatIndex = datum.getMonth()+1 < 10 ? '0' + (datum.getMonth()+1) :datum.getMonth()+1 ;
  	
  	tmpMonat.options.selectedIndex = berechneIndexMonatJahr(dropDown,(tmpMonatIndex+'.'+datum.getFullYear()));
  	
  	//Setze die richtige Anzahl der anzuzeigenden Tage im entsprechenden Tagedropdown
  	setzeTagDropDown(dropDown,datum.getFullYear(),(datum.getMonth()+1))
  	
  	tmpTag.options.selectedIndex = datum.getDate()-1;
  	//Selektiere das richtige MonatJahr
  	
  	updateTermine((dropDown == 'k' ? 'ab' : 'rueck'),datum.getFullYear(), (datum.getMonth()+1), datum.getDate());
  	if(dropDown == 'k') {
  		
  		//Belege einige Variablen. Dienen als zwischenspeicher um nicht immer document. ... auszufuehren
  		hinFlugTag = datum.getDate();
			hinFlugMonat = (datum.getMonth()+1);
			hinFlugJahr = datum.getFullYear();
  		
  		var tmpTag = parseInt(tag) + parseInt(anzahlTage);
  		
  		
  		datum = new Date(jahr,monat-1,tmpTag);
  		updateAlleTermine(datum.getFullYear(),(datum.getMonth()+1),datum.getDate(),'rueck');
  	}
  	else {
  		if(((hinFlugMonat >= (datum.getMonth()+1)) && (hinFlugTag >= datum.getDate()) && (hinFlugJahr >= datum.getFullYear())) || (hinFlugJahr > datum.getFullYear())) {
  			document.schnellsuche.ruecktag.selectedIndex = hinFlugTag;
	  		var tmpHinflugMonat = hinFlugMonat < 10 ? '0' + hinFlugMonat : hinFlugMonat ;
  			document.schnellsuche.rueckmonat.selectedIndex = berechneIndexMonatJahr('rueck',(tmpHinflugMonat+'.'+hinFlugJahr));
  		}
  	}
  }

  
  //Ueberschrift Aenderun sobald Hinreise ausgewaehlt wurde
  function setRueckUeberschrift() {
  	calendar.document.title = 'HolidayCheck Kalender - Rueckreise am...';
  }
  
  
  //Gibt den Index des Optionfeldes zurueck an welchem der richtige MonatJahr Eintrag zu finden ist
  function berechneIndexMonatJahr(dropDown,monJahr) {
  	var popUpFenster = checkIfPopUp();
  	var monJahrSelect = eval(popUpFenster+'document.schnellsuche.'+dropDown+'monat');
  	for(i=0;i<monJahrSelect.options.length;i++) {
			if(monJahrSelect[i].value == monJahr) {
				return i;
			}
		}	
  }
  
  
  function setzeTag(dropDown) {
  	var tmpTag = eval('document.schnellsuche.'+ dropDown + 'tag');
  	var tmpMonat = eval('document.schnellsuche.'+ dropDown + 'monat');
  	updateAlleTermine(tmpMonat.value.substr(3),tmpMonat.value.substr(0,2),tmpTag.selectedIndex+1,dropDown);
  }
  
  
  function setzeMonat(dropDown) {
  	var tmpMonat = eval('document.schnellsuche.'+ dropDown + 'monat');
  	var tmpTagSpeichern = eval('document.schnellsuche.'+ dropDown + 'tag');
  	var tmpTagIndex = tmpTagSpeichern.selectedIndex;
  	updateAlleTermine(tmpMonat.value.substr(3),tmpMonat.value.substr(0,2),(tmpTagIndex+1),dropDown);
  }
  
  //Sorgt fuer eine richtige Belegung des Tagedropdowns
  function setzeTagDropDown(abreiseRueckreise,jahr,monat) {
  	//Hole dir erstmal alle ausgewaehlten Daten aus dem Forumlar
  	popUpFenster = checkIfPopUp();
  	
  	var selectedTag = eval(popUpFenster + 'document.schnellsuche.' + abreiseRueckreise + 'tag');	//noch kein Valuewert drin
  	var anzahlTageVonSelectedMonat = berechneTageZuMonat(jahr,monat);
  	//Anzahl Listenelemente(option) festlegen
  	
  	selectedTag.options.length = anzahlTageVonSelectedMonat;
  	//Listenelemente belegen
  	for(i=1;i<=anzahlTageVonSelectedMonat;i++) {
  		//Wir treffen ein vorbereitungen Abseitsfalle aufheben
  		selectedTag.options[(i-1)] = new Option(i,i);
  	}
  }
  
  
  //Gibt die Anzahl der Tage eines Monats zurueck
  function berechneTageZuMonat(jahr,monat) {
  	var dPrevDate = new Date(jahr, monat, 0);
		return dPrevDate.getDate();
  }
  
  
  //Wenn ja dann aendert sich der Style und eine Auswahl sollte nicht mehr moeglich sein
  function _mouseover(tabellenzelle,jahr,monat,tag) {
  	if(hinRueckSwitch && rueckKleinerAlsHin(jahr,monat,tag)) {
  		tabellenzelle.className = 'invalidSelection';
  	}
  	else {
  		tabellenzelle.className = 'aktivSelektion';
  	}
  }
  
  //Prueft ob das Rueckflugdatum vor dem Abflugdatum liegt.
  function rueckKleinerAlsHin(jahr,monat,tag) {
  	return ((jahr < hinFlugJahr || 
  						(jahr == hinFlugJahr && monat < hinFlugMonat) || 
  						(monat == hinFlugMonat && tag < hinFlugTag)));
  }
  
  //Den Style wieder zuruecksetzen. Ansonsten waeren ueber all alles durchgestrichen
  function _mouseout(tabellenzelle) {
  	tabellenzelle.className = 'datumsZelle';
  }
  
  
  function updateTermine(abreiserueckreise, jahr, monat, tag) {
  	popUpFenster = checkIfPopUp();
  	var tmpHidden = eval(popUpFenster + 'document.schnellsuche.' + abreiserueckreise + 'reise');
  	tmpHidden.value = tag + '.' + monat + '.' + jahr;
  }
  
  
  //Nur um das formular richtig anzusprechen
  function checkIfPopUp() {
  	return '';
  }
  
  
  function changeReiter(gewaehlterReiter, aktiverReiter) {
		switch(gewaehlterReiter) {
			case 'pauschalReise':
				document.getElementById('pauschalReise').className = 'reiterAktiv';
				document.getElementById('nurHotelReise').className = 'reiterInaktiv';
			break;
			case 'nurHotelReise':
				document.getElementById('pauschalReise').className = 'reiterInaktiv';
				document.getElementById('nurHotelReise').className = 'reiterAktiv';
			break;	
		}
	}
	
	function changeDauer(typ){
		//Hotel options fuer das Reiseart-Select schreiben
		if(typ == 'hotel'){
				var options = '<select name="dauer" size="1" style="width: 103px;">'+
										'<option value="-1">beliebig</option>'+
										'<option value="1">1 Tag</option>'+
										'<option value="2">2 Tage</option>'+
										'<option value="3">3 Tage</option>'+
										'<option value="4">4 Tage</option>'+
										'<option value="5">5 Tage</option>'+
										'<option value="6">6 Tage</option>'+
										'<option value="7">7 Tage</option>'+
										'<option value="8">8 Tage</option>'+
										'<option value="9">9 Tage</option>'+
										'<option value="10">10 Tage</option>'+
										'<option value="11">11 Tage</option>'+
										'<option value="12">12 Tage</option>'+
										'<option value="13">13 Tage</option>'+
										'<option value="14">14 Tage</option>'+
										'<option value="15">15 Tage</option>'+
										'<option value="16">16 Tage</option>'+
										'<option value="17">17 Tage</option>'+
										'<option value="18">18 Tage</option>'+
										'<option value="19">19 Tage</option>'+
										'<option value="20">20 Tage</option>'+
										'<option value="21">21 Tage</option>'+
										'<option value="22">&gt; 22 Tage</option>'+
									'</select>';
			document.getElementById('dauerHolder').innerHTML = options;
		}
	
	//Pauschal options fuer das Reiseart-Select schreiben
		if(typ == 'pauschal'){
			var options = '<select name="dauer" size="1" style="width: 103px;">'+
								'<option value="-1">beliebig</option>'+
								'<option value="1">Kurz (1-4 Tage)</option>'+
								'<option value="5">5 - 8 Tage</option>'+
								'<option value="7">1 Woche</option>'+
								'<option value="9">9 - 12 Tage</option>'+
								'<option value="13">13 - 15 Tage</option>'+
								'<option value="14">2 Wochen</option>'+
								'<option value="16">16 - 22 Tage</option>'+
								'<option value="21">3 Wochen</option>'+
								'<option value="23">> 22 Tage</option>'+
							'</select>';
			document.getElementById('dauerHolder').innerHTML = options;								
		}
	}
	
	function updateAlleTermineReiterSwitch(jahr,monat,tag,dropDown,$vorherigerTyp) {
		
		
  	var datum = new Date(jahr,monat-1,tag);
  	var tmpTag = eval('document.schnellsuche.'+dropDown+'tag');
  	var tmpMonat = eval('document.schnellsuche.'+dropDown+'monat');
  	var tmpTagRueck = eval('document.schnellsuche.ruecktag');
  	var tmpMonatRueck = eval('document.schnellsuche.rueckmonat');
  	
  	
  	var tmpMonatIndex = datum.getMonth()+1 < 10 ? '0' + (datum.getMonth()+1) :datum.getMonth()+1 ;
  	
  	tmpMonat.options.selectedIndex = berechneIndexMonatJahr(dropDown,(tmpMonatIndex+'.'+datum.getFullYear()));
  	
  	//Setze die richtige Anzahl der anzuzeigenden Tage im entsprechenden Tagedropdown
  	setzeTagDropDown(dropDown,datum.getFullYear(),(datum.getMonth()+1))
  	
  	tmpTag.options.selectedIndex = datum.getDate()-1;
  	//Selektiere das richtige MonatJahr
  	
  	updateTermine((dropDown == 'k' ? 'ab' : 'rueck'),datum.getFullYear(), (datum.getMonth()+1), datum.getDate());
  	if(dropDown == 'k') {
  		
  		//Belege einige Variablen. Dienen als zwischenspeicher um nicht immer document. ... auszufuehren
  		hinFlugTag = datum.getDate();
			hinFlugMonat = (datum.getMonth()+1);
			hinFlugJahr = datum.getFullYear();
  		
  		var tmpTag = parseInt(tag) + parseInt(anzahlTage);
  		
  		
  		datum = new Date(jahr,monat-1,tmpTag);
  		updateAlleTermine(datum.getFullYear(),(datum.getMonth()+1),datum.getDate(),'rueck');
  	}
  	else {
  		if(((hinFlugMonat >= (datum.getMonth()+1)) && (hinFlugTag >= datum.getDate()) && (hinFlugJahr >= datum.getFullYear())) || (hinFlugJahr > datum.getFullYear())) {
  			document.schnellsuche.ruecktag.selectedIndex = hinFlugTag;
	  		var tmpHinflugMonat = hinFlugMonat < 10 ? '0' + hinFlugMonat : hinFlugMonat ;
  			document.schnellsuche.rueckmonat.selectedIndex = berechneIndexMonatJahr('rueck',(tmpHinflugMonat+'.'+hinFlugJahr));
  		}
  	}
	}