// cal_holidaysearch.js is used when 1 is needed on a page

DLHNS.namespace("calendar"); 
var focus = 1;
var calPopupLock = 0;

function handleSelect1(type,args,obj) {
	var dates = args[0];
	var date = dates[0];
	var year = date[0], month = date[1], day = date[2];
	
	var inputDate = $('cal1input');
	inputDate.value = lZero(day,2)+"/"+lZero(month,2)+"/"+lZero(year,4);
	hideCalendar(1);
}

function handleSelect3(type,args,obj) {
	var dates = args[0];
	var date = dates[0];
	var year = date[0], month = date[1], day = date[2];
	
	var inputDate = $('cal3input');

	inputDate.value = lZero(day,2)+"/"+lZero(month,2)+"/"+lZero(year,4);
	hideCalendar(3);
}

function hideCalendar(calNumber) {
	// Function to just hide selected calendar
	if ($('calFrame'+calNumber)) $('calFrame'+calNumber).style.display = 'none';
	if ($('hideDiv')) $('hideDiv').style.display = 'none';
	if ($('dlh_ss_shadow')) $('dlh_ss_shadow').style.display = 'none';
}

function hidePopups() {
	hideCalendar(1);
	hideCalendar(3);
}

function showCalendar(calNumber) {
	if (calPopupLock == 0) {
		// Function to just position and show requested calendar
		positionCalendar(calNumber,'calAnchor'+calNumber);
		
		eval('DLHNS.calendar.cal'+calNumber+'.render();');
		
		if ($('cal'+calNumber+'Container')) $('cal'+calNumber+'Container').style.display = 'block';
		if ($('calFrame'+calNumber)) $("calFrame"+calNumber).style.display = 'block';
		resizeShadow(calNumber);
		if ($('hideDiv')) $("hideDiv").style.display = 'block';
	}
}


function resizeShadow(calNumber) {
	try {
		$('dropShadow'+calNumber).style.height = $('cal'+calNumber+'Container').offsetHeight+'px';
	} catch (e) {}
}

function hideAndLockCalendar(calNumber) {
	calPopupLock = 1;	
	hideCalendar(calNumber);
}

function unlockCalendar() {
	calPopupLock = 0;	
}

DLHNS.calendar.init = function() {
	var calElement1 = document.createElement('div');
	calElement1.id = 'calFrame1';
	calElement1.className = 'calFrame';
	calContainerElement = document.createElement('div');
		calContainerElement.id = 'cal1Container';
		calContainerElement.className = 'calContainer';
		calElement1.appendChild(calContainerElement);
	calShadowElement = document.createElement('div');
		calShadowElement.id = 'dropShadow1';
		calShadowElement.className = 'dropShadow';
		calShadowElement.onMouseOver = hideShadow;
		calElement1.appendChild(calShadowElement);
	document.body.appendChild(calElement1);
		
	DLHNS.calendar.cal1 = new DLHNS.widget.CalendarGroup("cal1","cal1Container", { 
			pages:1, 
			close:true,
			start_weekday:1,
			mindate: dat_MinDate,
			pagedate: dat_DeptDate,
			MAXDATE: dat_maxCalDate,
			hide_blank_weeks: true,
			dl_openmonth: [true,true,true,true,false,false,false,false,false,false,false,true]
		} );
	
	var inwardDate = document.getElementById("cal1input");
		
	var endDate = new Date();
	endDate.setTime(endDate.getTime()+(1*24*60*60*1000));
	
	// Set the default date for inward flight if there isn't one in the url
	if (!inwardDate.value) {
		inwardDate.value = lZero(endDate.getDate(),2)+"/"+lZero(endDate.getMonth()+1,2)+"/"+lZero(endDate.getFullYear(),2);
		DLHNS.calendar.cal1.select((endDate.getMonth()+1)+"/"+endDate.getDate()+"/"+endDate.getFullYear());
	} else {
		// Adjust calendar still
		DLHNS.calendar.cal1.select(inwardDate.value.substr(3,2)+"/"+inwardDate.value.substr(0,2)+"/"+inwardDate.value.substr(6,4));
	}

	DLHNS.calendar.cal1.selectEvent.subscribe(handleSelect1, DLHNS.calendar.cal1, true); 
	DLHNS.calendar.cal1.hideEvent.subscribe(function(){hideCalendar(1);}, DLHNS.calendar.cal1, true); 
	DLHNS.calendar.cal1.changePageEvent.subscribe(function(){resizeShadow(1);}, DLHNS.calendar.cal1, true);

	DLHNS.calendar.cal1.render();

	// Listener to show the 2 page Calendar when the button is clicked
	DLHNS.util.Event.addListener("cal1input", "focus", function() {showCalendar(1);}, DLHNS.calendar.cal1, true);
	DLHNS.util.Event.addListener("cal1input", "click", function() {showCalendar(1);}, DLHNS.calendar.cal1, true);
	DLHNS.calendar.cal1.show();


	// CS REQUEST CALENDAR
	if ($('cal3input')) {
		var inwardDate = $('cal3input');
		var calElement3 = document.createElement('div');
		calElement3.id = 'calFrame3';
		calElement3.className = 'calFrame';
		calContainerElement = document.createElement('div');
			calContainerElement.id = 'cal3Container';
			calContainerElement.className = 'calContainer';
			calElement3.appendChild(calContainerElement);
		calShadowElement = document.createElement('div');
			calShadowElement.id = 'dropShadow3';
			calShadowElement.className = 'dropShadow';
			calShadowElement.onMouseOver = hideShadow;
			calElement3.appendChild(calShadowElement);
		document.body.appendChild(calElement3);
			
		DLHNS.calendar.cal3 = new DLHNS.widget.CalendarGroup("cal3","cal3Container", { 
			pages:1, 
			close:true,
			start_weekday:1,
			mindate: dat_MinDate,
			pagedate: dat_DeptDate,
			MAXDATE: dat_maxCalDate,
			hide_blank_weeks: true,
			dl_openmonth: [true,true,true,true,false,false,false,false,false,false,false,true]
			} );
		// Set the default date for inward flight if there isn't one in the url
		if (!inwardDate.value) inwardDate.value = csr_InwardDateDefault;
		// Adjust calendar still
		DLHNS.calendar.cal3.select(inwardDate.value);
	
		DLHNS.calendar.cal3.selectEvent.subscribe(handleSelect3, DLHNS.calendar.cal3, true); 
		DLHNS.calendar.cal3.hideEvent.subscribe(function(){hideCalendar(3);}, DLHNS.calendar.cal3, true); 
		DLHNS.calendar.cal3.render();
		// Listener to show the 2 page Calendar when the button is clicked
		DLHNS.util.Event.addListener("cal3input", "focus", function() {showCalendar(3);}, DLHNS.calendar.cal3, true);
		DLHNS.util.Event.addListener("cal3input", "click", function() {showCalendar(3);}, DLHNS.calendar.cal3, true);
	}



	hideDiv = document.createElement('img');
	hideDiv.src = '/images/spacer.gif';
	hideDiv.id = 'hideDiv';
	hideDiv.className = 'hideDiv';
	hideDiv.style.zIndex = 5;
	hideDiv.onclick = hidePopups;
	document.body.appendChild(hideDiv);
}
document.observe('dom:loaded',DLHNS.calendar.init);