﻿YAHOO.namespace("widget");

YAHOO.widget.init = function() {

	function handleSelect(type,args,obj) {
		formName='filterform'; prim='from'; sec='to';
		if (obj.id=='cal1') {prefix="fid_from_"; checkType='start'; }
		else if (obj.id=='cal2') {prefix="fid_to_"; checkType='end'; }
		else if (obj.id=='cal1h') {prefix="fid_arrival_"; checkType='start'; formName='bookingform'; prim='arrival'; sec='departure'; }
		else {prefix="fid_departure_"; checkType='end'; formName='bookingform'; prim='arrival'; sec='departure'; }
		var dates = args[0]; 
		var date = dates[0];
		var year = date[0], month = date[1], day = date[2];

		var selMonth = document.getElementById(prefix+"month");
		var selDay = document.getElementById(prefix+"day");
		var selYear = document.getElementById(prefix+"year");

		selMonth.selectedIndex = month-1;
		selDay.selectedIndex = day-1;

		for (var y=0;y<selYear.options.length;y++) {
			if (selYear.options[y].text == year) {
				selYear.selectedIndex = y;
				break;
			}
		}

		obj.hide()
		checkDate(formName,'',checkType, prim, sec);
	}

	function updateCal() {
		if (this.id=='cal1') {obj=YAHOO.widget.cal1; prefix="fid_from_"; }
		else if (this.id=='cal2') {obj=YAHOO.widget.cal2; prefix="fid_to_"; }
		else if (this.id=='cal1h') {obj=YAHOO.widget.cal1h; prefix="fid_arrival_"; }
		else  {obj=YAHOO.widget.cal2h; prefix="fid_departure_"; }

		var selMonth = document.getElementById(prefix+"month");
		var selDay = document.getElementById(prefix+"day");
		var selYear = document.getElementById(prefix+"year");
			
		var month = parseInt(selMonth.options[selMonth.selectedIndex].value,10);
		var day = parseInt(selDay.options[selDay.selectedIndex].value,10);
		var year = parseInt(selYear.options[selYear.selectedIndex].value,10);

		if (! isNaN(month) && ! isNaN(day) && ! isNaN(year)) {
			var date = month + "/" + day + "/" + year;

			obj.select(date);
			obj.cfg.setProperty("pagedate", month + "/" + year);
			obj.render();
		}
		obj.show()

	}

	function setProp(obj) {
		obj.setProperty("START_WEEKDAY",1); //pondeli
		if (lang=='cz') {
			obj.setProperty("MONTHS_LONG", ["leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec"]); 
			obj.setProperty("WEEKDAYS_SHORT", ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]); 
		}
		if (lang=='de') {
			obj.setProperty("MONTHS_LONG", ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); 
			obj.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); 
		}
		if (lang=='ru') {
			obj.setProperty("MONTHS_LONG", ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"]); 
			obj.setProperty("WEEKDAYS_SHORT", ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"]); 
		}
	}

    // v panelu
	YAHOO.widget.cal1 = new YAHOO.widget.Calendar("cal1","calCont1", { mindate:YUIminDate, maxdate:YUImaxDate, close:true });
	setProp(YAHOO.widget.cal1.cfg)
	YAHOO.widget.cal1.selectEvent.subscribe(handleSelect, YAHOO.widget.cal1, true);
	YAHOO.widget.cal1.render();
	YAHOO.util.Event.addListener("show1up", "click", updateCal, YAHOO.widget.cal1, true);

	YAHOO.widget.cal2 = new YAHOO.widget.Calendar("cal2","calCont2", { mindate:YUIminDate, maxdate:YUImaxDate, close:true });
	setProp(YAHOO.widget.cal2.cfg)
	YAHOO.widget.cal2.selectEvent.subscribe(handleSelect, YAHOO.widget.cal2, true);
	YAHOO.widget.cal2.render();
	YAHOO.util.Event.addListener("show2up", "click", updateCal, YAHOO.widget.cal2, true);

    // u hotelu
	YAHOO.widget.cal1h = new YAHOO.widget.Calendar("cal1h","calCont1h", { mindate:YUIminDate, maxdate:YUImaxDate, close:true });
	setProp(YAHOO.widget.cal1h.cfg)
	YAHOO.widget.cal1h.selectEvent.subscribe(handleSelect, YAHOO.widget.cal1h, true);
	YAHOO.widget.cal1h.render();
	YAHOO.util.Event.addListener("show1uph", "click", updateCal, YAHOO.widget.cal1h, true);

	YAHOO.widget.cal2h = new YAHOO.widget.Calendar("cal2h","calCont2h", { mindate:YUIminDate, maxdate:YUImaxDate, close:true });
	setProp(YAHOO.widget.cal2h.cfg)
	YAHOO.widget.cal2h.selectEvent.subscribe(handleSelect, YAHOO.widget.cal2h, true);
	YAHOO.widget.cal2h.render();
	YAHOO.util.Event.addListener("show2uph", "click", updateCal, YAHOO.widget.cal2h, true);

}

YAHOO.util.Event.onDOMReady(YAHOO.widget.init);
