var arrivalDateName = "checkInDate";
var departureDateName = "departureDate";
var numOfNightsSelect = "numOfNightsSelect";
var numOfAdultsSelect = "numOfAdultsSelect";
var numOfBedsSelect = "numOfBedsSelect";

YAHOO.namespace("example.calendar");

function setCalCfg(cal1)
{
	cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "-"); 
	cal1.cfg.setProperty("DATE_RANGE_DELIMITER", ":"); 
	cal1.cfg.setProperty("MDY_DAY_POSITION", 3); 
	cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); 
	cal1.cfg.setProperty("MDY_YEAR_POSITION", 1); 
	cal1.cfg.setProperty("MD_DAY_POSITION", 1); 
	cal1.cfg.setProperty("MD_MONTH_POSITION", 2);
	
	if(LNG==1)
	{
		cal1.cfg.setProperty("MONTHS_SHORT",   ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa&#378;", "Lis", "Gru"]); 
		cal1.cfg.setProperty("MONTHS_LONG",    ["Stycze&#324;", "Luty", "Marzec", "Kwiecie&#324;", "Maj", "Czerwiec", "Lipiec", "Sierpie&#324;", "Wrzesie&#324;", "Pa&#378;dziernik", "Listopad", "Grudzie&#324;"]); 
		cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["N", "P", "W", "&#346;", "C", "P", "S"]); 
		cal1.cfg.setProperty("WEEKDAYS_SHORT", ["Nd", "Pn", "Wt", "&#346;r", "Czw", "Pt", "So"]); 
		cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Nd","Pon", "Wt", "&#346;rd", "Czw", "Pi&#261;", "Sob"]); 
		cal1.cfg.setProperty("WEEKDAYS_LONG",  ["Niedziela", "Poniedzia&#322;ek", "Wtorek", "&#346;roda", "Czwartek", "Pi&#261;tek", "Sobota"]);
	}
	else if(LNG==3)
	{
		cal1.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]); 
		cal1.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); 
		cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]); 
		cal1.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); 
		cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]); 
		cal1.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
	}
}

var LNG=1;
var yahooC=false;
YAHOO.example.calendar.init = function() {

	YAHOO.example.calendar.cal1 = new YAHOO.widget.CalendarGroup("cal1","checkInDate_c", { pages:2, title:"<img src='http://rezerwuje.pl/img/cal/icon_przyjazd.gif' align='absmiddle'> "+(LNG==1?'Wybierz dat&#281; przyjazdu':(LNG==2?'Arrival date':'Anreisedatum'))+":", START_WEEKDAY: 1, close:true } );
	setCalCfg(YAHOO.example.calendar.cal1);
	
	YAHOO.example.calendar.cal2 = new YAHOO.widget.CalendarGroup("cal2","departureDate_c", { pages:2, title:"<img src='http://rezerwuje.pl/img/cal/icon_wyjazd.gif' align='absmiddle'> "+(LNG==1?'Wybierz dat&#281; wyjazdu':(LNG==2?'Departure date':'Abreisetag'))+":",START_WEEKDAY: 1, close:true } );
	setCalCfg(YAHOO.example.calendar.cal2);
	
	YAHOO.example.calendar.cal2.selectEvent.subscribe(function (type,args,obj)
	{
		var dt = this.toDate(args[0][0]);
		var mnt=dt.getMonth(); mnt++; if(mnt<10) mnt='0'+mnt;
		var dz=dt.getDate(); if(dz<10) dz='0'+dz;
		
		yahooC=true;
		$('departureDate').value=dt.getFullYear()+'-'+mnt+'-'+dz;
		$('departureDate').onchange();
		yahooC=false;
		
		
		this.hide();
	}, YAHOO.example.calendar.cal2, true);
	YAHOO.example.calendar.cal2.hideEvent.subscribe(hideCalEv2, YAHOO.example.calendar.cal1, true);
	YAHOO.example.calendar.cal2.render();

	YAHOO.example.calendar.cal1.cfg.setProperty("mindate", new Date() );

	function mySelectHandler(type,args,obj)
	{
		var dt = this.toDate(args[0][0]);
		var mnt=dt.getMonth();mnt++;if(mnt<10) mnt='0'+mnt;
		var dz=dt.getDate();if(dz<10) dz='0'+dz;
		var now=new Date();
		var dtt = this.toDate(args[0][0]);
		dtt.setMonth(parseInt(mnt,10)-2);

		yahooC=true;
		$('checkInDate').value=dt.getFullYear()+'-'+mnt+'-'+dz;
		yahooC=false;
		if(parseInt(mnt,10)>(now.getMonth()+2))
			YAHOO.example.calendar.cal1.cfg.setProperty("pagedate", dtt);

		YAHOO.example.calendar.cal1.render();

		var dt2=this.toDate(args[0][0]);dt2.setDate(dt2.getDate()+1);
		YAHOO.example.calendar.cal2.cfg.setProperty("mindate", dt2);

		var dt2=this.toDate(args[0][0]);dt2.setDate(dt2.getDate()+parseInt($('numOfNightsSelect').value,10));

		var dt3 = this.toDate(this.cfg.getProperty("pagedate"));
		while(dt3.getTime()<dt2.getTime()) dt3.setMonth(dt3.getMonth()+1);
		YAHOO.example.calendar.cal2.cfg.setProperty("pagedate",  dt3.getMonth()+'-'+dt3.getFullYear());
		
		YAHOO.example.calendar.cal2.select(dt2);
		YAHOO.example.calendar.cal2.render();

		this.hide();
	};
	
	function showUp(){if($('checkInDate_c').style.display=='none' || $('checkInDate_c').style.display==''){YAHOO.example.calendar.cal1.show();$($('checkInDate_c').parentNode.parentNode.parentNode).show();}else{YAHOO.example.calendar.cal1.hide();YAHOO.example.calendar.cal2.hide();$($('checkInDate_c').parentNode.parentNode.parentNode).hide();} YAHOO.example.calendar.cal2.hide();}
	function showUp2(){if($('departureDate_c').style.display=='none' || $('departureDate_c').style.display==''){YAHOO.example.calendar.cal2.show();$($('departureDate_c').parentNode.parentNode.parentNode).show();}else{YAHOO.example.calendar.cal2.hide();$($('departureDate_c').parentNode.parentNode.parentNode).hide();} YAHOO.example.calendar.cal1.hide();}

	function hideCalEv(){$('checkInDate_c').parentNode.parentNode.parentNode.hide();}
	function hideCalEv2(){$('departureDate_c').parentNode.parentNode.parentNode.hide();}

	YAHOO.example.calendar.cal1.selectEvent.subscribe(mySelectHandler, YAHOO.example.calendar.cal1, true);
	YAHOO.example.calendar.cal1.hideEvent.subscribe(hideCalEv, YAHOO.example.calendar.cal1, true);
	YAHOO.example.calendar.cal1.select($F('checkInDate'));
	YAHOO.example.calendar.cal1.render();

	YAHOO.util.Event.addListener("checkInDate_b", "click", showUp, YAHOO.example.calendar.cal1, true);
	YAHOO.util.Event.addListener("departureDate_b", "click", showUp2, YAHOO.example.calendar.cal2, true);
	
	setTimeout(function()
	{
		$('checkInDate').onchange();
		$('numOfNightsSelect').onchange=function()
		{
			onNumOfNightsChange(this.form, this.value);
			if(!yahooC && typeof(YAHOO.example.calendar.cal2) != 'undefined')
			{
				YAHOO.example.calendar.cal2.select($F('departureDate'));
				YAHOO.example.calendar.cal2.render();
			}
		}
		$('numOfNightsSelect').onchange();
	},1000);
}

YAHOO.util.Event.onDOMReady(YAHOO.example.calendar.init);


var today = new Date();
var m=today.getMonth()+1; m=(m>9?m:'0'+m);
var d=today.getDay(); d=(d>9?d:'0'+d);
if(!$F('checkInDate')) $('checkInDate').value = formatDate(today);
else
{
	var tt=$F('checkInDate').split('-');
	var today = new Date(parseInt(tt[0],10),(parseInt(tt[1])-1,10),parseInt(tt[2],10));
}

$('departureDate').onchange=function()
{
	this.f=changeDATE.bind(this);
	this.f();
	ret=onDepartureDateChange(this.form, this.value)
	$('numOfNightsSelect').onchange();
	return ret;
}
$('checkInDate').onchange=function()
{
	this.f=changeDATE.bind(this);
	this.f();
	if(!yahooC && typeof(YAHOO.example.calendar.cal1) != 'undefined')
	{
		YAHOO.example.calendar.cal1.select($F('checkInDate'));
		YAHOO.example.calendar.cal1.render();
	}
	return onArrivalDateChange(this.form, this.value, true);
}
var changeDATE=function()
{
	var d=this.value.split(/[^\d]/);
	var date=[];
	date[0]=d[0];//y
	date[1]=d[1];//m
	date[2]=d[2];//d
	
	if(date[0] < 2000 ){if(date[1]>2000){date[0]=d[1];date[1]=d[0];}else if(date[2]>2000){date[0]=d[2];date[2]=d[0];}}
	if(date[1]>12){if(date[2]<12){dd=date[2];date[2]=date[1];date[1]=dd;}}
	this.value=date.join('-');
}

if(!$F(''+numOfNightsSelect)) $(numOfNightsSelect).value = '2';

