var origin = new Array("Graz","Zürich","Linz");

var originCode = new Array();
originCode["Graz"] = "GRZ";
originCode["Zürich"] = "ZRH";
originCode["Linz"] = "LNZ";


var destination = new Array();
destination["GRZ"] = new Array("Zürich");
destination["ZRH"] = new Array("Graz","Linz");
destination["LNZ"] = new Array("Zürich");




function main() {


setOrigins();
initDest();
initDays();
initYears();
setToday();

}



function setToday() {

var today = new Date();

document.form.depmon.options[today.getMonth()].selected=true;
document.form.retmon.options[today.getMonth()].selected=true;
document.form.depday.options[today.getDate()-1].selected=true;
document.form.retday.options[today.getDate()-1].selected=true;




}

function changeReturn() {
	document.form.retday.selectedIndex = document.form.depday.selectedIndex;
	document.form.retmon.selectedIndex = document.form.depmon.selectedIndex;
	document.form.retyear.selectedIndex = document.form.depyear.selectedIndex;
	
	returnDays(document.forms[0].retmon[document.form.retmon.selectedIndex].value);
}

function setOrigins() {

for ( var i=0; i < origin.length; i ++){
document.form.origin.options[i] = new Option(origin[i],originCode[origin[i]]);}


}

function initDest() {

var originValue = originCode[origin[0]];

for ( var i=0; i < destination[originValue].length; i++)
{
document.forms[0].dest.options[i] = new Option(destination[originValue][i],originCode[destination[originValue][i]]);

}
}

function setDest(originValue) {

 for(z=document.form.dest.length; z>=0; z--)
 {
document.form.dest.options[z] = null;
 }

for ( var i=0; i < destination[originValue].length; i++)
{
document.forms[0].dest.options[i] = new Option(destination[originValue][i],originCode[destination[originValue][i]]);

}
}

function checkLeapYearDepart(year) {

   
	  var leapYear = true;
     var days = 28;
     if(year%4==0) days++;
     if(year%100==0) days--;
     if(year%400==0) days++;
     if(days==28)  leapYear = false;
     if(days==29)  leapYear = true;
     
     return leapYear;
}




function returnDays(selectedMonth) {


var before = document.form.retday.selectedIndex;

 for(z=document.form.retday.length; z>=0; z--)
 {
document.form.retday.options[z] = null;
 }

var dayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");

var days = dayArray[selectedMonth-1];

if (checkLeapYearDepart(document.form.retyear.options[document.form.retyear.selectedIndex].value) && selectedMonth == 2){ days = 29;}

for( var i=0; i < days; i++) {
	document.form.retday.options[i] = new Option(i+1,i+1);
}

document.form.retday.options[before].selected=true;
}



function departDays(selectedMonth) {


var before = document.form.depday.selectedIndex;

 for(z=document.form.depday.length; z>=0; z--)
 {
document.form.depday.options[z] = null;
 }

var dayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");

var days = dayArray[selectedMonth-1];

if (checkLeapYearDepart(document.form.depyear.options[document.form.depyear.selectedIndex].value) && selectedMonth == 2){ days = 29;}

for( var i=0; i < days; i++) {
	document.form.depday.options[i] = new Option(i+1,i+1);
}

document.form.depday.options[before].selected=true;
changeReturn();

}

function initDays() {





var today = new Date();

var dayArray = new Array("31","29","31","30","31","30","31","31","30","31","30","31");

var month = today.getMonth();



var days = dayArray[month];

if ((checkLeapYearDepart() == true) && month == 2){ days = 29;}

for( var i=0; i < days; i++) {
	document.form.depday.options[i] = new Option(i+1,i+1);
}

for( var i=0; i < days; i++) {
	document.form.retday.options[i] = new Option(i+1,i+1);
}


}

function initYears() {

var today = new Date();
var year = today.getFullYear();
document.form.depyear.options[0] = new Option(year,year);
document.form.depyear.options[1] = new Option(year+1,year+1);
document.form.retyear.options[0] = new Option(year,year);
document.form.retyear.options[1] = new Option(year+1,year+1);

}
function vis(value) {

document.forms[0].retday.style.visibility = "visible"
document.forms[0].retmon.style.visibility = "visible"
document.forms[0].retyear.style.visibility = "visible"
document.getElementById("to").style.visibility = "visible"

}

function invis(value) {

document.forms[0].retday.style.visibility = "hidden"
document.forms[0].retmon.style.visibility = "hidden"
document.forms[0].retyear.style.visibility = "hidden"
document.getElementById("to").style.visibility = "hidden"



}


function  checkForm() {

var adults = document.form.adults.selectedIndex;
var children = document.form.children.selectedIndex;
var infants = document.form.infants.selectedIndex;


if ( children > 0 ) { 
if ( adults == 0) { 
	alert("Kinder können nur gebucht werden wenn mindestens ein Erwachsener gebucht wird, bitte wenden Sie sich an das Robin Hood Service Center +43 316 292966 0 ");
	return false;
}
}


if ( infants > 0 ) { 
if ( adults < infants) { 
	alert("Es kann nur ein Kleinkind pro Erwachsener gebucht werden, bitte wenden Sie sich an das Robin Hood Service Center +43 316 292966 0 ");
	return false;
}
}


if ( (adults + children + infants) > 10) { 
	alert("Sie können nicht mehr als 10 Personen auf einmal buchen!");
	return false;
}

if ( document.forms[0].retday.style.visibility == "visible")
{

if ( document.form.depyear.selectedIndex > document.form.retyear.selectedIndex ) { 
	alert("Das Rückflugdatum liegt vor dem Abreisedatum. Bitte geben sie ein korrektes Datum ein!");
	return false;
}

if ( document.form.depyear.selectedIndex == document.form.retyear.selectedIndex &&
	 document.form.depmon.selectedIndex > document.form.retmon.selectedIndex ) { 
	alert("Das Rückflugdatum liegt vor dem Abreisedatum. Bitte geben sie ein korrektes Datum ein!");
	return false;
}

if ( document.form.depyear.selectedIndex == document.form.retyear.selectedIndex &&
	 document.form.depmon.selectedIndex == document.form.retmon.selectedIndex &&
	 document.form.depday.selectedIndex > document.form.retday.selectedIndex ) { 
	alert("Das Rückflugdatum liegt vor dem Abreisedatum. Bitte geben sie ein korrektes Datum ein!");
	return false;
}
}
}
