﻿//Change the gif that displays when AyncRefresh happen
function WebAsyncRefreshPanel_InitializePanel(oPanel){
	var url = "/IRMNet/Images/RDP_Processing3.gif";
  var hdn = document.getElementById('hdnProcessingGif');
  if (hdn) {
     if (hdn.value.length > 0) {
     url = "/IRMNet/Images/" + hdn.value;
     }
  }  
	oPanel.getProgressIndicator().setImageUrl(url);
	ig_shared.getCBManager()._timeLimit = 120000;
}

function CalcDeparture(oCalendar, newValue, oEvent){
	var dtDeparture = new Date();
	var oDeparture = GetControlByID("wdcDeparture", true);
	if (!oDeparture) return false;

	var oNights = GetControlByID("wcNights", false);
	if (!oNights) return false;
	var iNights = oNights.value;

	var msPerDay = 24 * 60 * 60 * 1000;
	dtDeparture.setTime(newValue.getTime() + (iNights * msPerDay));
	oDeparture.setValue(dtDeparture);
}

function SetDeparture(webComboId){
	var dtArrival = new Date();
	var oArrival = GetControlByID("wdcArrival", true);
	if (!oArrival) return false;

	var dtDeparture = new Date();
	var oDeparture = GetControlByID("wdcDeparture", true);
	if (!oDeparture) return false;

	var oNights = GetControlByID("wcNights", false);
	if (!oNights) return false;
	var iNights = oNights.value;

	var msPerDay = 24 * 60 * 60 * 1000;
	dtArrival.setTime(oArrival.getValue());
	dtDeparture.setTime(dtArrival.getTime() + (iNights * msPerDay));
	oDeparture.setValue(dtDeparture);
}
function SetNights(oCalendar, newValue, oEvent){
	var dtArrival = new Date();
	var oArrival = GetControlByID("wdcArrival", true);
	if (!oArrival) return false;

	var dtOldDeparture = new Date();
	var dtDeparture = new Date();
	var oDeparture = GetControlByID("wdcDeparture", true);
	if (!oDeparture) return false;

	var msPerDay = 24 * 60 * 60 * 1000;
	dtArrival.setTime(oArrival.getValue());
	dtDeparture.setTime(newValue.getTime());
	dtOldDeparture.setTime(oDeparture.getValue());

	if (dtDeparture < dtArrival) {
		alert ("Departure date cannot be prior to Arrival date");
		oEvent.cancel = true;
	} else {
		var iNights = (dtDeparture.getTime() - dtArrival.getTime()) / msPerDay;
		var oNights = GetControlByID("wcNights", false);
		if (!oNights) return false;
		oNights.value = Math.round(iNights);
	};
}


function GetControlByID(sName, bCombo){
	var ctl
	if (bCombo){
		ctl = igdrp_getComboById(sName);
	} else {
		ctl = document.getElementById(sName);
	}; 
	if (ctl) return ctl;

	//did not find the control by typical name
	var allElms = document.body.getElementsByTagName("*");
	for (var c=0; c< allElms.length; c++){
		var itm = allElms[c];
		if (itm.id){
			if (itm.id.length > sName.length){
				if (itm.id.substring(itm.id.length-sName.length).toLowerCase() == sName.toLowerCase()){
					if (bCombo){
						ctl = igdrp_getComboById(itm.id);
						if (ctl) return ctl;
				  } else {
 						return itm;
					};
				};
			};
		};
	};
	
	return null;
}

function WebCalendar_RenderDay(oCalendar, oDay, oEvent){
	if (customDays == null) return;
	var d
	var i = customDays.length;
	while (i-- > 0) {
		d=customDays[i];
		if (d == null || d.length < 4) continue;
		if (oDay.css.indexOf("CalendarOffDay") == -1) {
			if ((d[0] == -1 || d[0] == oDay.year) && (d[1] < 0 || d[1] == oDay.month) && d[2] == oDay.day) {
				oDay.element.className = d[3];
				oEvent.cancel = true;
				break;
			}
		}
  }
}
