/**
 * @author Gumfi
 */

function createBookingTeaser() {
	
	function hotelSelection() {
		
		var bookingTeaser = $('bookingTeaser');
		if($chk(actHotel)) {
			var hotelOptions = $('bookHotel').getElements('option')
			hotelOptions.each(function(element, index) {
				if(element.getProperty('value') == actHotel) {
					element.setProperty('selected', 'selected')
				}
			});
		}
		
	}
	
	function createDateOptions(){
		//Holen der Elemente in denen die Auswahlfelder sind
		
		var bookingTeaser = $('bookingTeaser');
		
		var formFieldDate = bookingTeaser.getElements('.formFieldDate');
		
		formFieldDate.each(function(element, index){
			
			//Inputdummyfelder Löschen
			var inputField = element.getElement('input');
			var dateContainerID = inputField.getProperty('id');
			inputField.dispose();
			
			//Anhand des Labels herrausfinden ob es das Ankunftsdatum oder Abreisedatum ist
			var labelField = element.getElement('label');
			labelField = labelField.getProperty('for');
			
			//Erstellen der Selectfelder
			var dateContainer = new Element('div', {
				'id': dateContainerID
			});
			element.grab(dateContainer);
			var fieldDay = new Element('select', {
				'name': labelField + 'day',
				'id': labelField + 'day',
				'class': 'required'
			});
			dateContainer.grab(fieldDay);
			var fieldMonth = new Element('select', {
				'name': labelField + 'mon',
				'id': labelField + 'mon',
				'class': 'required'
			});
			dateContainer.grab(fieldMonth);
			var fieldYear = new Element('select', {
				'name': labelField + 'year',
				'id': labelField + 'year',
				'class': 'required'
			});
			dateContainer.grab(fieldYear);
			
			//Leeres Datum erstellen und einen Monatsarray erstellen
			var actDate = new Date();
			actDateMonth = new Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
			if(langID == 'de') {
				actDateMonth = new Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
			} else if(langID == 'en') {
				actDateMonth = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
			} else if(langID = 'nl') {
				actDateMonth = new Array("Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dez");
			}
			
			//Ein leeres Optionselement erstellen und ein Platzhalter für das Selektierte Feld 
			var optionElement = '';
			var optionSelected = '';
			var optNoneSelect = true;
			var endOfMonth = false;
			var daysInMonth;
			var moduloMonth = actDate.getMonth() % 2;
			if(actDate.getMonth() < 7) {
				if(moduloMonth == 0) {
					daysInMonth = 31;
				} else if(moduloMonth == 1) {
					daysInMonth = 30;
				}
				if(moduloMonth == 1 && actDate.getMonth() == 1) {
					var thisYear = actDate.getFullYear();
					daysInMonth = 28;
					if((thisYear % 4 == 0 && thisYear % 100 != 0) || thisYear % 400 == 0)
					daysInMonth = 29;
				}
			} else {
				if(moduloMonth == 0) {
					daysInMonth = 30;
				} else if(moduloMonth == 1) {
					daysInMonth = 31;
				}
			}
	//		alert(Date.UTC(2008, 9, 31, 00, 00, 00));
			//Die Optionselemente für die Tage erstellen
			for (var i = 01; i <= 31; i++) {
				optionElement = new Element('option', {
					'html': i,
					'value':i
				});
				
				if(actDate.getDate() == daysInMonth - 1 && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == daysInMonth) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == 01) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				} else if(actDate.getDate() == daysInMonth && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == 01) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == 02) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				}
				
				if(labelField == 'anreise_' && i == Cookie.read('fieldArrivalDay')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if(labelField == 'abreise_' && i == Cookie.read('fieldCheckOutDay')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if (labelField == 'anreise_' && i == actDate.getDate() + 1 && optNoneSelect == true) {
					optionElement.setProperty('selected', 'selected');
				} else if(labelField == 'abreise_' && i == actDate.getDate() + 2 && optNoneSelect == true) {
					optionElement.setProperty('selected', 'selected');
				}
				
				fieldDay.grab(optionElement);
			}
			
			//Die Optionselemente für die Monate erstellen
			var optionMonth = '';
			optNoneSelect = true;
			for (var i = 0; i <= 11; i++) {
				optionMonth = actDateMonth[i];
				optionElement = new Element('option', {
					'html': optionMonth,
					'value': optionMonth
				});
				
				 if(actDate.getMonth() == 11 && actDate.getDate() == daysInMonth - 1 && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == actDate.getMonth()) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == 0) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				} else if(actDate.getMonth() == 11 && actDate.getDate() == daysInMonth && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == 0) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == 0) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				} else if(actDate.getDate() == daysInMonth - 1 && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == actDate.getMonth()) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == actDate.getMonth() + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				} else if(actDate.getDate() == daysInMonth && optNoneSelect == true) {
					if(labelField == 'anreise_' && i == actDate.getMonth() + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'abreise_' && i == actDate.getMonth() + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				}
				
				if(labelField == 'anreise_' && optionMonth == Cookie.read('fieldArrivalMonth')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if(labelField == 'abreise_' && optionMonth == Cookie.read('fieldCheckOutMonth')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if(i == actDate.getMonth() && optNoneSelect == true) {
					optionElement.setProperty('selected', 'selected');
				}
				
				fieldMonth.grab(optionElement);
			}
			
			//Die Optionselemente für 4 Jahre erstellen
			var actYear = actDate.getFullYear();
			optNoneSelect = true;
			for (var i = actYear; i <= actYear + 3; i++) {
				optionElement = new Element('option', {
					'html': i,
					'value':i
				});
				
				if(actDate.getMonth() == 11 && actDate.getDate() == daysInMonth - 1 && optNoneSelect == true) {
					if(labelField == 'fieldArrival' && i == actYear) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'fieldCheckOut' && i == actYear + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				} else if(actDate.getMonth() == 11 && actDate.getDate() == daysInMonth && optNoneSelect == true) {
					if(labelField == 'fieldArrival' && i == actYear + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					} else if(labelField == 'fieldCheckOut' && i == actYear + 1) {
						optionElement.setProperty('selected', 'selected');
						optNoneSelect = false;
					}
				}
				
				if(labelField == 'fieldArrival' && i == Cookie.read('fieldArrivalYear')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if(labelField == 'fieldCheckOut' && i == Cookie.read('fieldCheckOutYear')) {
					optionElement.setProperty('selected', 'selected');
					optNoneSelect = false;
				} else if(i == actYear && optNoneSelect == true) {
					optionElement.setProperty('selected', 'selected');
				}
				fieldYear.grab(optionElement);
			}
		});
	};
	hotelSelection();
	createDateOptions();
}

window.addEvent('domready',function(){
	
		createBookingTeaser();
	
});
