var Engine = {
	jsLoaded: '',
	elements: [],
	references: [
		['*', 'config.js'],							//configurazioni
		['*', 'SharedFunctions.js'],							// Shared JS
		['*', 'lightbox.js'],						// Lightbox
		['*', 'lightbox_unMod.js'],						// Lightbox
		['*', 'removegrid.js'],						//rimuove griglia per error msg
		['EPG', 'DatagridHandler.js'], 			// Classe datagrid
		['EPG', 'Programs.js'],
		['EPG', 'PersonalArea.js'],
		// Pastore 11/05/2010 commentato		
		//['grigliatv','gtvnew.js'],
		['tmDays', 'timeline.js'], // Gestione della timeline
		 ['EPG', 'searchFilterClass.js']	// Pannello di ricerca
	],


        require: function(jsName) {
                // Aggiungo i JS che mi servono in base alla pagina
                //this.getVersionFiles(jsName);
                document.write('<script type="text/javascript" src="/js/'+this.getVersionFiles('archive/',jsName)+'"></script>');
        },
        
        getVersionFiles: function(folder,js){
        	//substitute Programs.js to Programs_1200409596.js
           var pathVersion = '_24_10_2008';
           //var pathVersion = ''; folder=''; 
            var versionedFile = js.substring(0,js.lastIndexOf('.'))+pathVersion+'.js';
            return folder+versionedFile;
           
        },




	//require: function(jsName) {
		// Aggiungo i JS che mi servono in base alla pagina
		//document.write('<script type="text/javascript" src="/js/'+jsName+'"></script>');
	//},
	
	
	debug: function(t) {
		$('debug').innerHTML += t;
	},
	load: function() {
		var divs = $A(document.getElementsByTagName('div'));
		var imgs = $A(document.getElementsByTagName('img'));
		divs.concat(imgs).each(
			function(elem){
				for(var i=0; i<Engine.references.length; i++) {
					if(elem.id == Engine.references[i][0] || elem.className == Engine.references[i][0] || Engine.references[i][0] == '*') {
						if (Engine.jsLoaded.indexOf(Engine.references[i][1]) == -1) {
							Engine.jsLoaded += Engine.references[i][1]+',';
							Engine.require(Engine.references[i][1]);
							Engine.elements[Engine.references[i][0]] = new Array();
							
						}
						Engine.elements[Engine.references[i][0]].push(elem);
					}
					
				}
			}
			
		)
	}
}
