/*
 * This files checks that all the json files are available. This block needs to be placed
 * in the head tag of Default.master
 * <pre>
 * <script type="text/javascript" src="/pagedata/sitemap.js"></script>
 * <script type="text/javascript" src="/pagedata/topnavbar.js"></script>
 * <script type="text/javascript" src="/pagedata/pagelookup.js"></script>
 * <script type="text/javascript" src="/pagedata/breadcrumbs.js"></script>
 * <script type="text/javascript" src="/pagedata/leftmenu.js"></script>
 * <script type="text/javascript" src="/pagedata/translations.js"></script>
 * <script type="text/javascript" src="/pagedata/urllookup.js"></script>
 * </pre>
 */
YAHOO.si.Startup = {
	dataModules:{
		"sitemap.js":"sitemap",
		"topnavbar.js":"topnavbardata",
		"pagelookup.js":"pagelookup",
		"breadcrumbs.js":"breadcrumbs",
		"leftmenu.js":"leftmenudata",
		"translations.js":"translations",
		"urllookup.js":"urllookup"
		},
	verifyDataModules:function()
	{
		var missing = [];
		for(var module in this.dataModules)
		{
			if(typeof(window[this.dataModules[module]]) == 'undefined' )
			{
				missing.push(module);
			}
		}
		if(missing.length>0)
		{
			var error = "Page data error. The following data file(s) may be missing:\n";
			for(var i = 0; i < missing.length; i++)
			{
				if(i > 0)
				{
					error += ",";
				}
				error += missing[i];
			}
			throw error;
		}
		else
		{
			this.onDataReady.fire();
		}
	},	
	onDataReady: new YAHOO.util.CustomEvent(
		"dataready",
		this,
		true,
		YAHOO.util.CustomEvent.LIST)
};
/**
 * The whole application begins here.  It became so difficult to track what each component
 * was doing individually that it became necessary to wait until the whole DOM was ready
 * before attempting to set up the feedback system (with its error handler) and the various
 * components that depend on static markup in the document. If the data modules are available
 * and correctly installed, the onDataReady event fires.
 */
YAHOO.util.Event.onDOMReady(function()
{
	try
	{
		YAHOO.si.Startup.verifyDataModules();	
	}
	catch(e)
	{
		alert("Data Modules are not ready:" + e);
	}
	/*
	try
	{
		YAHOO.si.Controller.setupFeedback();
	}
	catch(e)
	{
		YAHOO.si.handleErrors(e);
	}
	*/ 	
});
