function initLoadingPanel(inUniqueId, inOptions, inCount)	{
	if(typeof(Ext) == "undefined")	{
		return false;
	}
	
	if(typeof(inOptions) != "object")	{
		inOptions = {};
	}

	Ext.Ajax.request({
		//url:((window.PROGRAM_FOLDER) ? "../../"+window.PROGRAM_FOLDER+"/" : "../") + "easy_pages/load_on_demand.php",
		url:((window.BASE_PATH && window.PROGRAM_FOLDER) ? window.BASE_PATH+window.PROGRAM_FOLDER+"/" : "../") + 
			"easy_pages/load_on_demand.php",
		params:{
			loading_panel_id:inUniqueId
		},
		success:function(inResponse)	{
			var response = Ext.util.JSON.decode(inResponse.responseText);
		
			var updatePanelFunction = function(inUpdatePanelCount)	{
				var panel = Ext.get("loading-panel-" + inUniqueId);
				if(!panel)	{
					if(typeof(inUpdatePanelCount) == "undefined")	{
						inUpdatePanelCount = 0;
					}
					
					if(inUpdatePanelCount > 50)	{
						return false;
					}
					inUpdatePanelCount++;
					
					setTimeout(updatePanelFunction, 100);
					return false;
				}
				
				panel.removeClass("loading-indicator");
				panel.dom.innerHTML = response.html;
				if(inOptions.success)	{
					if(typeof(inOptions.success) == "string")	{
						inOptions.success = window[inOptions.success];
					}
					
					if(typeof(inOptions.success) != "function")	{
						return false;
					}
					
					inOptions.response = response;
					
					inOptions.success(inOptions);
				}
			};
			
			updatePanelFunction();
		},
		failure:function(inResponse)	{
			switch(inResponse.status)	{
				case -1: // PHP timeout
					if(typeof(inCount) == "undefined")	{
						inCount = 0;
					}
					
					if(inCount > 10)	{
						return false;
					}
					
					initLoadingPanel(inUniqueId, inOptions, inCount);
					break;
				case 404: // Can't find load_on_demand.php file
					Ext.MessageBox.alert("Error", "This panel is not properly configured. Please contact the website administrator if the problem persists. Error Code: LPD37.");
					break;
			}
		}
	});
}

function loadingPanelDisplayGenericJs(inOptions)	{
	if(!inOptions.response.js)	{
		return false;
	}

	var js = Ext.util.JSON.decode(inOptions.response.js);
	if(typeof(js.items) != "object")	{
		return false;
	}
	
	var panel = Ext.getCmp(inOptions.id);
	
	panel.add(js.items);
	panel.doLayout();
}
