
var MODULE_LOADER_INCLUDED;

if(MODULE_LOADER_INCLUDED)
{
	//silent noop - Loader is allready included!
}
else
{
	MODULE_LOADER_INCLUDED=true;
	
	var L_the_loaded_modules=new Array();

	var L_the_base_url=null;

	function _getBaseURL()
	{
		if(L_the_base_url==null)
		{
			var elements = document.getElementsByTagName('script');

			for (var i=0; i<elements.length; i++) 
			{
				if (elements[i].src && elements[i].src.indexOf("modules.js") != -1) 
				{
						var src = elements[i].src;
						src = src.substring(0, src.lastIndexOf('/'));
						L_the_base_url = src;
						break;
				}
			}
			
			// Get document base path
			var documentBasePath = document.location.href;
			if (documentBasePath.indexOf('?') != -1)
				documentBasePath = documentBasePath.substring(0, documentBasePath.indexOf('?'));
			documentBasePath = documentBasePath.substring(0, documentBasePath.lastIndexOf('/'));

			// If not HTTP absolute
			if (L_the_base_url.indexOf('://') == -1 && L_the_base_url.charAt(0) != '/') 
			{
				// If site absolute
				L_the_base_url = documentBasePath + "/" + L_the_base_url;
			}
			
		}
		
		return L_the_base_url;
	}


	function LoadModule(module_name)
	{
		
		if(L_the_loaded_modules[module_name])
		{
			return;
		}
		else
		{
			document.write('<script language="javascript" type="text/javascript" src="' + _getBaseURL() + '/' + module_name + '.js"></script>');	
			L_the_loaded_modules[module_name]=true;	
		}
	}
	
	
	function isModuleLoaded(module_name)
	{
		if(L_the_loaded_modules[module_name])
			return true;
		
		return false;
	}
}

