/**************************************************************
 *  Common meetingmasters.de Functions                        *
 *                                                            *
 **************************************************************/
// wichtige Funktionen für die HM-Start-Seite

/*
 * mz: Hilfsfunktion zum extrahieren der Form-ID
 * Parameter "id" hat folgende Gestalt: hmAnreise_29336693_day
 */
function extractFormID(id){
	return (id.match(/([a-zA-Z_]*)([0-9]*)([a-zA-Z_]*)/))[2];
}

/*
 * mz: Funktion zum Anpassen des An- und Abreisedatums
 */
function startSeiteCheckDatum(id){
       //Form ID
	var formID = extractFormID(id);
	
	//UPD-ID für den Date-Picker
	var updID1 = 'hmAnreise_'+formID+'_day';
	var updID2 = 'hmAbreise_'+formID+'_day';
	
	//Felder
	var anReiseTag = document.getElementById('hmAnreise_'+formID+'_day');
	var anReiseMonat = document.getElementById('hmAnreise_'+formID+'_month');
	var anReiseJahr = document.getElementById('hmAnreise_'+formID+'_year');
	var abReiseTag = document.getElementById('hmAbreise_'+formID+'_day');
	var abReiseMonat = document.getElementById('hmAbreise_'+formID+'_month');
	var abReiseJahr = document.getElementById('hmAbreise_'+formID+'_year');
	
	//Int-Werte
	var abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
	var anReiseTagWert = parseInt(anReiseTag.options[anReiseTag.options.selectedIndex].value);
	var abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
	var anReiseMonatWert = parseInt(anReiseMonat.options[anReiseMonat.options.selectedIndex].value);
	var abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
	var anReiseJahrWert = parseInt(anReiseJahr.options[anReiseJahr.options.selectedIndex].value);
	
	//heute
	var heute = new Date();
	heute.setHours(0);
	heute.setMinutes(0);
	heute.setSeconds(0);
	heute.setMilliseconds(0);
	
	//Anreisedatum
	var anReiseDatum = new Date(anReiseJahrWert,anReiseMonatWert-1,anReiseTagWert,0,0,0);
	//Abreisedatum
	var abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	//neues Abreisedatum +1Tag
	var abReiseDatumNeu = new Date(anReiseJahrWert,anReiseMonatWert-1,anReiseTagWert+1,0,0,0);
	
	//
	// FÄLLE
	//
	 
	 var debug = false;
	
	//1. Fall: Ist das Datum in sich korrekt? -> 31. Aug. == 1. Okt.
	if(anReiseTagWert != anReiseDatum.getDate() || anReiseMonatWert != (anReiseDatum.getMonth()+1) || anReiseJahrWert != anReiseDatum.getYear()){
		anReiseTag[anReiseDatum.getDate()-1].selected = true;
		anReiseMonat[anReiseDatum.getMonth()].selected = true;
		anReiseJahr[anReiseDatum.getYear()-heute.getYear()].selected = true;
		anReiseTagWert = parseInt(anReiseTag.options[anReiseTag.options.selectedIndex].value);
		anReiseMonatWert = parseInt(anReiseMonat.options[anReiseMonat.options.selectedIndex].value);
		anReiseJahrWert = parseInt(anReiseJahr.options[anReiseJahr.options.selectedIndex].value);
		abReiseDatumNeu = new Date(anReiseJahrWert,anReiseMonatWert-1,anReiseTagWert+1,0,0,0);
	}
	if(abReiseTagWert != abReiseDatum.getDate() || abReiseMonatWert != (abReiseDatum.getMonth()+1) || abReiseJahrWert != abReiseDatum.getYear()){
		abReiseTag[abReiseDatum.getDate()-1].selected = true;
		abReiseMonat[abReiseDatum.getMonth()].selected = true;
		abReiseJahr[abReiseDatum.getYear()-heute.getYear()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//9. Fall: Jahr kleiner
	if(abReiseJahrWert < anReiseJahrWert){
		if(debug) alert('Fall 9');
		abReiseJahr[anReiseDatum.getYear()-heute.getYear()].selected = true;
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
	}

	//2. Fall: Tag und Monat sind kleiner
	if(abReiseTagWert < anReiseTagWert && abReiseMonatWert < anReiseMonatWert && abReiseJahrWert == anReiseJahrWert){
		if(debug) alert('Fall 2');
		abReiseTag[abReiseDatumNeu.getDate()-1].selected = true;
		abReiseMonat[abReiseDatumNeu.getMonth()].selected = true;
		abReiseJahr[abReiseDatumNeu.getYear()-heute.getYear()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//3. Fall: Tag ist kleiner und Monat gleich
	if(abReiseTagWert < anReiseTagWert && abReiseMonatWert == anReiseMonatWert){
	    if(debug) alert('Fall 3');
		abReiseTag[abReiseDatumNeu.getDate()-1].selected = true;
		abReiseMonat[abReiseDatumNeu.getMonth()].selected = true;
		abReiseJahr[abReiseDatumNeu.getYear()-heute.getYear()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//4. Fall: Tag ist gleich und Monat kleiner
	if(abReiseTagWert == anReiseTagWert && abReiseMonatWert < anReiseMonatWert){
		if(debug) alert('Fall 4');
		abReiseMonat[abReiseDatumNeu.getMonth()].selected = true;
		abReiseJahr[abReiseDatumNeu.getYear()-heute.getYear()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//5. Fall: Tag ist gleich und Monat gleich
	if(abReiseTagWert == anReiseTagWert && abReiseMonatWert == anReiseMonatWert){
		if(debug) alert('Fall 5');
		abReiseTag[abReiseDatumNeu.getDate()-1].selected = true;
		abReiseMonat[abReiseDatumNeu.getMonth()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//6. Fall: Tag ist gleich und Monat gleich
	if(abReiseTagWert > anReiseTagWert && abReiseMonatWert < anReiseMonatWert && abReiseJahrWert == anReiseJahrWert){
		if(debug) alert('Fall 6');
		abReiseTag[abReiseDatumNeu.getDate()-1].selected = true;
		abReiseMonat[abReiseDatumNeu.getMonth()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseDatum = new Date(abReiseJahrWert,abReiseMonatWert-1,abReiseTagWert,0,0,0);
	}
	
	//7. Fall: Anreisedatum ist kleiner als heute
	//mz: Änderungen bzgl. "vorausschauden Datumswahl" (wie bei anderen Hotel-Seiten)
	if(anReiseDatum.getTime() < heute.getTime()){
		if(debug) alert('Fall 7');
		//anReiseTag[heute.getDate()-1].selected = true;
		anReiseMonat[heute.getMonth()+1 % 12].selected = true;
		abReiseMonat[heute.getMonth()+1 % 12].selected = true;
        if(heute.getMonth() == 12) {
              anReiseJahr[heute.getYear()-heute.getYear()+1].selected = true;
              abReiseJahr[heute.getYear()-heute.getYear()+1].selected = true;
        } else {
		      anReiseJahr[heute.getYear()-heute.getYear()].selected = true;
		      abReiseJahr[heute.getYear()-heute.getYear()].selected = true;
		}
		anReiseTagWert = parseInt(anReiseTag.options[anReiseTag.options.selectedIndex].value);
		anReiseMonatWert = parseInt(anReiseMonat.options[anReiseMonat.options.selectedIndex].value);
		anReiseJahrWert = parseInt(anReiseJahr.options[anReiseJahr.options.selectedIndex].value);
		abReiseDatumNeu = new Date(anReiseJahrWert,anReiseMonatWert-1,anReiseTagWert+1,0,0,0);
		anReiseDatum = new Date(anReiseJahrWert,anReiseMonatWert-1,anReiseTagWert,0,0,0);
	}
	
	//8. Fall: abReiseDatum ist kleiner als heute
	if(abReiseDatum.getTime() < heute.getTime()){
		if(debug) alert('Fall 8');
		abReiseTag[heute.getDate()].selected = true;
		abReiseMonat[heute.getMonth()].selected = true;
		abReiseJahr[heute.getYear()-heute.getYear()].selected = true;
		abReiseTagWert = parseInt(abReiseTag.options[abReiseTag.options.selectedIndex].value);
		abReiseMonatWert = parseInt(abReiseMonat.options[abReiseMonat.options.selectedIndex].value);
		abReiseJahrWert = parseInt(abReiseJahr.options[abReiseJahr.options.selectedIndex].value);
	}
	
	
	
	//Am Ende dem Calendar-Date-Picker bescheid geben
	notifyCalendars(updID1);
	notifyCalendars(updID2);
}

