/********************
 *
 *	JAVASCRIPT_CALENDAR.JS
 *	Calendar-specific javascript functions for ITC
 * 
********************/

// Gets the CustomSessionID
// function getCustomSessionID() {
// 	CustomSessionID = fetchGETVar('CustomSessionID');
// 	return (CustomSessionID !== null)?'&CustomSessionID=' + CustomSessionID:'';
// }

// Reloads the calendar with options selected (cutomer/item) -- for admin only
function reloadCalendarWithOptions(Default_DateStamp, Default_ItemID, Default_RentalID, Default_CustomerID, ExtraQueryStr) {
	
	with (document) {
		Elmnt_ItemID     = getElementById('AdminOption_ItemID');
		Elmnt_CustomerID = getElementById('AdminOption_CustomerID');
	}
	
	Override_ItemID     = Elmnt_ItemID[Elmnt_ItemID.selectedIndex].value;
	Override_CustomerID = Elmnt_CustomerID[Elmnt_CustomerID.selectedIndex].value;

	generateCalendar(Default_DateStamp, (Override_ItemID)?Override_ItemID:Default_ItemID, Default_RentalID,
			 (Override_CustomerID)?Override_CustomerID:Default_CustomerID, ExtraQueryStr);
}

// Selects a calendar rental day
function toggleRentalDay(RentalDateStamp, ItemID, RentalID, CustomerID, ExtraQueryStr) {

	generateWaitDiv('Setting Selections');
	
	AJAX_sendRequest(true,
	
	'?ToggleRentalDay=' + RentalDateStamp + '&ItemID=' + ItemID + '&RentalID=' + RentalID + '&CustomerID=' + CustomerID +
	'&' + getQueryStr(true) + ExtraQueryStr,
	
	"if (VarForResponseText.substr(0,7) == 'OUTPUT:') { generateCalendar_action(VarForResponseText.substr(7)); deleteWaitDiv(); " +
	"getAvailableSerialNumbers('" + ItemID + "', " + "'" + RentalID + "', '" + CustomerID + "', '" + ExtraQueryStr + "'); } " +	
	"else { alert(VarForResponseText); } ");
}

// Gets the available serial numbers for the selected day(s)
function getAvailableSerialNumbers(ItemID, RentalID, CustomerID, ExtraQueryStr) {

	generateWaitDiv('Finding Available Items');
	
	AJAX_sendRequest(true,
	
	'?getAvailableSerialNumbers&ItemID=' + ItemID + '&RentalID=' + RentalID + '&CustomerID=' + CustomerID +
	'&' + getSelectedSerialNumbersQryStr() + ExtraQueryStr,
	
	"if (VarForResponseText.substr(0,7) == 'OUTPUT:') { document.getElementById('SerialNumbersContainer').innerHTML = " +
	"VarForResponseText.substr(7); } else { alert(VarForResponseText); } deleteWaitDiv();");
}


// Generates the calendar
function generateCalendar(YearMonthStamp, ItemID, RentalID, CustomerID, ExtraQueryStr, LoadSerialNumbers) {
	generateWaitDiv('Loading');

	AJAX_sendRequest(true,
	
	'?BuildCalendar&ItemID=' + ItemID + '&YearMonthStamp=' + YearMonthStamp + '&RentalID=' + RentalID +
	'&CustomerID=' + CustomerID + '&' + ExtraQueryStr,
	
	"if (VarForResponseText.substr(0,7) == 'OUTPUT:') { generateCalendar_action(VarForResponseText.substr(7)); " +
	((LoadSerialNumbers)?"getAvailableSerialNumbers('" + ItemID + "', " + "'" + RentalID + "', '" + CustomerID + "', '" +
	ExtraQueryStr + "');":'') + " } else { alert(VarForResponseText); } deleteWaitDiv();");
}

// Fills the calendar output container with the calendar output
function generateCalendar_action(CalendarOutput) {
	document.getElementById('CalendarContainer').innerHTML = CalendarOutput;
}


// Records or restores the selected serial numbers into a variable
function getSelectedSerialNumbersQryStr() {
	
	SelectedArray = new Array();
	
	Objs = document.getElementById('SerialNumbersContainer').getElementsByTagName('input');
	for (i = 0; i < Objs.length; i++) {
		if (Objs[i].type == 'checkbox')
			SelectedArray.push('SerialChecked_' + Objs[i].getAttribute('id') + '=' + Objs[i].checked);
	}
	
	return SelectedArray.join('&');
}

/*
// Records or restores the selected serial numbers into a variable
function rememberSelectedSerialNumbers(record) {
	
	Objs = document.getElementById('SerialNumbersContainer').getElementsByTagName('input');
	for (i = 0; i < Objs.length; i++) {
		if (Objs[i].type == 'checkbox') {
			if (record)
				SelectedArray[Objs[i].getAttribute('id')] = Objs[i].checked;
			else
				Objs[i].checked = SelectedArray[Objs[i].getAttribute('id')];
		}
	}
}
*/
