YAHOO.namespace("example.calendar");

function init() {
	YAHOO.example.calendar.cal1 = new YAHOO.widget.CalendarGroup("personStayArrivalCal","cal1Container", { pages:1, title:"Arrival date:", close:true } );
	YAHOO.example.calendar.cal1.render();
	YAHOO.example.calendar.cal2 = new YAHOO.widget.CalendarGroup("personStayDepartureCal","cal2Container", { pages:1, title:"Departure date:", close:true } );
	YAHOO.example.calendar.cal2.render();
	
	var arrival = document.getElementById('personStayArrival');
	var departure = document.getElementById('personStayDeparture');

	YAHOO.util.Event.addListener("calendar1", "click", showCal, YAHOO.example.calendar.cal1, true);
	YAHOO.util.Event.addListener("calendar2", "click", showCal, YAHOO.example.calendar.cal2, true);
	YAHOO.util.Event.addListener("personStayArrival", "click", fieldcheck, arrival, true);
	YAHOO.util.Event.addListener("personStayArrival", "blur", fieldcheck, arrival, true);
	YAHOO.util.Event.addListener("personStayDeparture", "click", fieldcheck, departure, true);
	YAHOO.util.Event.addListener("personStayDeparture", "blur", fieldcheck, departure, true);
	
	YAHOO.example.calendar.cal1.selectEvent.subscribe(handleSelect, YAHOO.example.calendar.cal1, true); 
	YAHOO.example.calendar.cal2.selectEvent.subscribe(handleSelect, YAHOO.example.calendar.cal2, true);
	
	var pops = document.getElementById('sidebar').getElementsByTagName('a');
	for (var i=0; i<pops.length; i++) {
		pops[i].onclick = function() {
			window.open(this.href, 'MeetingStreetInnMedia', 'width=500,height=390');
			return false;
		}		
	} 
}

function fieldcheck(arrival) {
	if (arrival.target.value == "Arrival Date" || arrival.target.value == "Departure Date") arrival.target.value = "";
	else if (arrival.target.value == "") {
		if (arrival.target.id == "personStayArrival") arrival.target.value = "Arrival Date";
		else arrival.target.value = "Departure Date";
	}
}

function handleSelect(type,args,obj) { 
	var dates = args[0];  
	var date = dates[0]; 
	var year = date[0], month = date[1], day = date[2];
	var reference = obj.id.replace('Cal','');

	var txtDate1 = document.getElementById(reference); 
	txtDate1.value = month + "/" + day + "/" + year; 
	obj.hide();
}

function showCal(ev,obj) { //Handles changing the date on the calendar based on the entry in the input field and then showing, or simply showing.
	var inputfield = document.getElementById(obj.id.replace('Cal',''));
	
	if (inputfield.value != "Arrival Date" && inputfield.value != "Departure Date") {
		// Select the date typed in the field 
		obj.select(inputfield.value);
		var firstDate = obj.getSelectedDates()[0]; 
	
		// Set the Calendar's page to the earliest selected date 
		obj.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear());  
		obj.render();
	}
	obj.show();
}

YAHOO.util.Event.addListener(window, "load", init);