function winOnLoad()
{
	// überprüft das hinflugdatum auf gültigkeit
	// setzt im negativen fall den defaultwert
	if(checkDatePast(readDate('', 'date_from_dd', 'date_from_mmyy')))
	{	
		writeDate('', 'date_from_dd', 'date_from_mmyy', currentFlugDateString);
	}
	
	changeDays();
	return;
}

function changeDate()
{
	// hinflugdatum handler
	// überprüft hinflugdatum auf gültigkeit
	// setzt im negativen fall den defaultwert für hinflugdatum
	
	if(checkDatePast(readDate('', 'date_from_dd', 'date_from_mmyy')))
	{
		writeDate('', 'date_from_dd', 'date_from_mmyy', startFlugDateString);
	}
	
	changeDays();
}

function changeDays()
{
	// aktualisiert hinflug
	success = setDateFromDays('', 'date_from_dd', 'date_from_mmyy');

	// überprüft hinflug datum auf gültigkeit
	// im negativen fall das ganz nocheinmal
	if(checkDatePast(readDate('', 'date_from_dd', 'date_from_mmyy')))
	{
		changeDate();
	}

	refreshCalendar();
}

function setDateFromDays(frm, obj1Day, obj1Month)
{
	// brechnet und setzt hinflugdatum nach datum + reisedauer
	var startTime = createDateObj(readDate(frm, obj1Day, obj1Month));
	var startDateStr = createDateString(startTime);

	return (writeDate(frm, obj1Day, obj1Month, startDateStr))
}

function refreshCalendar()
{
	// setzt den wert für das hiddentextfield für den kalenderaufruf
	dp1.setDate(createDateObj(readDate('', 'date_from_dd', 'date_from_mmyy')));
}

function readDays(frm, obj)
{
	// liest den Datumswert von Reisedauer
	days = readHidden(frm, obj);
	if(days)
		return days;

	return false;
}

function writeDays(frm, obj, val)
{
	// schreibt den Datumswert von Reisedauer
	if(writeSelect(frm, obj, val))
		return true

	return false;
}

function readDate(frm, objDay, objMonth)
{
	// liest den Datumswert von Hin oder Rückdatum
	var days = readHidden(frm, objDay);
	var selMonth = readHidden(frm, objMonth);
	var month = selMonth.substr(0,2)
	var year = selMonth.substr(2,2)
	
	if(days && month)
		return days + "." + month + "." + year;

return false;
}

function writeDate(frm, objDay, objMonth, val)
{
	// schreibt den Datumswert nach Hin oder Rückdatum
	var tmpDate = val.split(".");

	if (tmpDate.length == 3 && tmpDate[0] > 0 && tmpDate[1] > 0 && tmpDate[2] > 0)
	{
		var day = tmpDate[0];
		var month = tmpDate[1];
		var year = tmpDate[2];
	}
	//writeHiddenorgstring
	writeOrgDateStr(day,month,year);
	//formtext
	writeFormText(val, day, year);
	//hidden field
	if(writeHidden(frm, objDay, day) && writeHidden(frm, objMonth, month+""+year))
		return true;

return false;
}

function getfrmObj(frm, obj)
{
	// gibt ein frmularobjakt zurück
	return eval("document."+dateSelectForm+"."+obj);
}

function readHidden(frm, obj)
{
	// liest den Wert eines hidden fields
	 return getfrmObj(frm, obj).value;
}

function writeFormText(val,day,year){

	displayDate =  createDateObj(val)
	
	var days 	= new Array("So","Mo","Di","Mi","Do","Fr","Sa");				  
	var months 	= new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "Sept.", "Oktober", "Nov.", "Dez.");

	document.getElementById('formText_date_from').innerHTML = days[parseInt(displayDate.getDay())]+', '+day+'. '+months[parseInt(displayDate.getMonth())]+' '+year;
}

function writeHidden(frm, obj, val){
	//writes hidden field
	return getfrmObj(frm, obj).value = val;
}

function writeOrgDateStr(day,month,year){
	//writes hidden field
	
	if(document.getElementById('date_fromDateString')){
		document.getElementById('date_fromDateString').value = day+'.'+month+'.20'+year;
	}
}

//----------------------------------------------------------------------------------------------------------------------------------------------------



function calendarCallBack1()
{
	// aktualisiert das textfeld und die selectfelder tag und monat
	// mit dem vom kalender zurückgegebene datum

	// berechnet die Differenz zwische Datum 1 und Datum 2
	// die Werte werden aus zwei Textfeldern ausgelesen und in ein weiteres geschrieben
	
	writeDate('', "date_from_dd", "date_from_mmyy", createDateString(dp1.getDate()));
	changeDate('from');
	
	refreshCalendar();
}


function checkDatePast(val)
{
	// checks if given date is in the past

	var now = new Date();
	now = now.getTime(); //NN3

	var splitCheckDate = val.split(".");

	var dateToCheck = new Date();
	dateToCheck.setFullYear("20"+splitCheckDate[2]);
	dateToCheck.setMonth(splitCheckDate[1]-1);
	dateToCheck.setDate(splitCheckDate[0]-startFlugDays);
	var checkDate = dateToCheck.getTime();

	var futureDate = (now < checkDate);
	var pastDate = (now > checkDate);

	return pastDate;
}

function createDateString(time)
{
	// konvertiert dateobjekt nach datestring

	var day = time.getDate();
	var month = time.getMonth() + 1;
	var year = time.getFullYear() - 2000;

	if (day < 10 && day > 0) day = "0" + day;
	if (month < 10 && month > 0) month = "0" + month;
	if (year < 10 && year > 0) year = "0" + year;

	return day+"."+month+"."+year;
}

function createDateObj(dateStr)
{
	// erzeugt dateobjekt
	
	if(dateStr == "") return new Date;
	var dateArr = dateStr.split(".");

	var day = dateArr[0];
	var month = dateArr[1] - 1;
	//var year = parseInt(dateArr[2]) + 2000;
	if (dateArr[2] < 2000)
		var year = 20 + dateArr[2];
	else
		var year = dateArr[2];

	if (dateArr.length == 3 && dateArr[0] > 0 && dateArr[1] > 0 && dateArr[2] > 0)
		return new Date(year, month, day);

	return false;
}

function readTextField(frm, obj, val)
{
	// liest den wert für ein textfeld
	
	//return getfrmObj(frm, obj).value;
}

function writeTextField(frm, obj, val)
{
	// setzt den wert für ein textfeld

	//return getfrmObj(frm, obj).value = val;
}

function browseCalendar() {	
}