YAHOO.namespace("wog.calendar");
var localizeCalendar = function(calendar)  {
	// Correct formats for Denmark: dd.mm.yyyy, dd.mm, mm.yyyy
	calendar.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
	calendar.cfg.setProperty("MDY_DAY_POSITION", 1);
	calendar.cfg.setProperty("MDY_MONTH_POSITION", 2);
	calendar.cfg.setProperty("MDY_YEAR_POSITION", 3);
	calendar.cfg.setProperty("MD_DAY_POSITION", 1);
	calendar.cfg.setProperty("MD_MONTH_POSITION", 2);

	var iso_code = 'da';
	var queryString = window.top.location.search.substring(1);
	if ( queryString.length > 0 ) {
		parameterName = 'L=';
		var end;
		begin = queryString.indexOf ( parameterName );
		if ( begin != -1 ) {
			begin += parameterName.length;
			end = queryString.indexOf ( "&" , begin );
		}
		if ( end == -1 ) {
			 end = queryString.length
		}
		iso_code = queryString.substring ( begin, end );

	}

	if (iso_code == 'da') {
		// Date labels for Danish locale
		calendar.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]);
		calendar.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"]);
		calendar.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "T", "O", "T", "F", "L"]);
		calendar.cfg.setProperty("WEEKDAYS_SHORT", ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"]);
		calendar.cfg.setProperty("WEEKDAYS_MEDIUM",["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"]);
		calendar.cfg.setProperty("WEEKDAYS_LONG",  ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"]);
	}
	else if(iso_code == 'de') {
		calendar.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]);
		calendar.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
		calendar.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]);
		calendar.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
		calendar.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
		calendar.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "	Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
	}
	else if(iso_code == 'en') {
		calendar.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
		calendar.cfg.setProperty("MONTHS_LONG",    ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
		calendar.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "T", "W", "T", "F", "S"]);
		calendar.cfg.setProperty("WEEKDAYS_SHORT", ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]);
		calendar.cfg.setProperty("WEEKDAYS_MEDIUM",["Sun", "Mon", "Tue", "Wen", "Thu", "Fri", "Sat"]);
		calendar.cfg.setProperty("WEEKDAYS_LONG",  ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]);
	}
	return calendar
}

var showArrivalCalendar = function() {
	var coordinates = YAHOO.util.Dom.getXY("hostel_arrival_calendar");
	YAHOO.wog.calendar.arrivalCalendar.show();
	YAHOO.util.Dom.setXY('arrival_calendar_container', coordinates);
}

var showDepartureCalendar = function() {
	var coordinates = YAHOO.util.Dom.getXY("hostel_departure_calendar");
	YAHOO.wog.calendar.departureCalendar.show();
	YAHOO.util.Dom.setXY('departure_calendar_container', coordinates);
}

function initializeCalenders() {
	var arrivalDateSelected = function(type, args, obj) {
		var selected = args[0];
		document.getElementById('hostel_arrival_date').value = selected[0][2]+'/'+selected[0][1]+' - '+selected[0][0];
		this.hide();
	}
	
	var departureDateSelected = function(type, args, obj) {
		var selected = args[0];
		document.getElementById('hostel_departure_date').value = selected[0][2]+'/'+selected[0][1]+' - '+selected[0][0];
		this.hide();
	}
	
	var dummyString = $("#hostel_arrival_date").val();
	dummyString = dummyString.split('/');
	var pagedateString = dummyString[1].substring(0, dummyString[1].indexOf(' ')) + '/' + dummyString[1].substring(dummyString[1].lastIndexOf(' ') + 1);
	
	var mindate = new Date()

	var arrival_calender_title = get_arrival_calendar_title();
	// arrival calendar
	YAHOO.wog.calendar.arrivalCalendar = new YAHOO.widget.CalendarGroup("arrivalCalendar",
																		"arrival_calendar_container",
																		{ 	pages: 				1,
																			title: 				arrival_calender_title,
																			close: 				true,
																			LOCALE_WEEKDAYS: 	"short",
																			START_WEEKDAY: 		1,
																			mindate: 			mindate,
																			pagedate:			pagedateString
																		} );
	localizeCalendar(YAHOO.wog.calendar.arrivalCalendar);

	// Select-event handling
	YAHOO.wog.calendar.arrivalCalendar.selectEvent.subscribe(arrivalDateSelected, YAHOO.wog.calendar.arrivalCalendar, true);

	YAHOO.wog.calendar.arrivalCalendar.render();
	YAHOO.util.Event.addListener("hostel_arrival_calendar", "click", showArrivalCalendar, YAHOO.wog.calendar.arrivalCalendar, true);

	// departure calendar
	
	/*var mindateString = $("#hostel_departure_date").val();
	mindateString = mindateString.split('/');
	var pagedateString = mindateString[1].substring(0, mindateString[1].indexOf(' ')) + '/' + mindateString[1].substring(mindateString[1].lastIndexOf(' ') + 1);
	mindateString = mindateString[1].substring(0, mindateString[1].indexOf(' ')) + '/' + mindateString[0] + '/' +  mindateString[1].substring(mindateString[1].lastIndexOf(' ') + 1);
	var mindate = new Date(mindateString);*/
	
	var dummyString = $("#hostel_departure_date").val();
	dummyString = dummyString.split('/');
	var pagedateString = dummyString[1].substring(0, dummyString[1].indexOf(' ')) + '/' + dummyString[1].substring(dummyString[1].lastIndexOf(' ') + 1);

	var departure_calender_title = get_departure_calendar_title();
	YAHOO.wog.calendar.departureCalendar = new YAHOO.widget.CalendarGroup("departureCalendar",
																		"departure_calendar_container",
																		{ 	pages: 				1,
																			title: 				departure_calender_title,
																			close: 				true,
																			LOCALE_WEEKDAYS: 	"short",
																			START_WEEKDAY: 		1,
																			mindate: 			mindate,
																			pagedate: 			pagedateString
																		} );
	localizeCalendar(YAHOO.wog.calendar.departureCalendar);
	
	// Select-event handling
	YAHOO.wog.calendar.departureCalendar.selectEvent.subscribe(departureDateSelected, YAHOO.wog.calendar.departureCalendar, true);
	
	YAHOO.wog.calendar.departureCalendar.render();
	YAHOO.util.Event.addListener("hostel_departure_calendar", "click", showDepartureCalendar, YAHOO.wog.calendar.departureCalendar, true);
}
