/**
 * Managed das Nachladen von JavaScript-Dateien
 * 
 * @author pro (1.0)
 */
var Script = 
{	
	/**
	 * Alle default Skripte
	 * 
	 * @var Array
	 */
	arrScripts : 
	[
		'core/prototype',
		'core/effects',
		'core/functions',
		'core/mvc',  
		'plugins/module',
		'plugins/navigation'
		],

    /**
     * Array mit allen bereits geladenen Scripten
     * 
     * @var Array
     */
    arrScriptsLoaded : new Object(),

	/**
	 * Aktueller Pfad
	 * 
	 * @var String
	 */
	path : '',
	
	/**
	 * Head-Knoten
	 * 
	 * @var String
	 */
	head : '',
	
	/**
	 * Ermittelt den aktuellen Pfad zu den JavaScript-Dateien
	 * 
	 * @author	pro (1.0)
	 */
	setPath : function()
	{
		var scriptTags 	= document.getElementsByTagName("script");

		for(var i = 0, count = scriptTags.length; i<count; i++)
		{
			if(scriptTags[i].src && scriptTags[i].src.match(/script\.js(\?.*)?$/))
			{
				
				Script.path = scriptTags[i].src.replace(/script\.js(\?.*)?$/,'');
				break;
			}
		}
	},
	
	/**
	 * Ermittelt den aktuellen Head-Knoten
	 * 
	 * @author	pro (1.0)
	 */
	setHead : function()
	{
		var headTags = document.getElementsByTagName("head");
		if(headTags.length > 0)
		{
			Script.head = $(headTags[0]);
		}
	},

	/**
	 * Lädt eine JavaScript-Datei
	 * 
	 * @author	pro (1.0)
	 */
	load : function(strSrc)
	{
		if(!Script.head)
		{
			Script.setHead();
		}

		if(!this.arrScriptsLoaded[strSrc])
		{
			var jScript = $(document.createElement("script"));
			jScript.language = "javascript";
			jScript.type = "text/javascript";
			jScript.src = strSrc;
			Script.head.appendChild(jScript);
			this.arrScriptsLoaded[strSrc] = true;
		}
	},

	/**
	 * Lädt eine JavaScript-Datei
	 * 
	 * @author	pro (1.0)
	 */
	write : function(strSrc)
	{
		document.write('<script type="text/javascript" language="javascript" src="'+strSrc+'"><\/script>');
	},
		
	/**
	 * Lädt alle JavaScript-Dateien aus dem arrScripts-Array
	 * 
	 * @author	pro (1.0)
	 */
	writeAll : function()
	{
		if(!Script.path)
		{
			Script.setPath();
		}
				
		/*
		 * Skripte laden
		 */
		for(var i = 0, count = Script.arrScripts.length; i<count; i++)
		{
			if(Script.arrScripts[i])
			{
				Script.write(Script.path + Script.arrScripts[i] + '.js');
			}
		}
	}
};

/*
 * Skripte laden
 */
Script.writeAll();
