/**
 * (c) CREVO Marketing & Media, 2009
 * Used Javascript Framework: DOJO 1.3
 *
 * During development we decided, that commenting in English
 * is really, really phony.(Unfortunately we need to do all
 * the work by ourselves - knowing that some Indian or Chinese
 * code-wizards would do it in half the time and about two
 * times as efficiently.) So please, lets start writing our
 * comments in a language that we actually do master!
 * Viel Glück dabei!
 */
var sidescroller =  
{	
    application: null,

		/** Initialize the application */
		init : function ( )
		{
			// ____________________________________________________________
			// --- Dynamic loading of dependencies ------------------------
			// ------------------------------------------------------------
			if (typeof preloadImages === undefined ) {
				var fileref = dojo.doc.createElement ( "script" );
				fileref.setAttribute ( "type", "text/javascript" );
				fileref.setAttribute ( "src", "/js/at/lesalzgries/imagepreloader/ImagePreloader.js" );				
				dojo.body().appendChild ( fileref );
			}			
			sidescroller.imagePreload();
		},
		
		// A rather mechanical way of image-preloading...
		// ... but a way.
		imagePreload: function ()
		{

			var preloadingElements = [ 
				'/media/template/bg_body_gradient.jpg',
				'/media/template/bg_topnav.png',		
				'/media/elements/adresse_lesalzgries.png',
				'/media/elements/bienvenue_dans_lsp.png',
				'/media/elements/bienvenue_dans_lsp.png',
				'/media/elements/menu_total.png',
				'/media/pages/home/home_txtcontent.png',
				'/media/pages/home/krone_cut.png',
				'/media/images/locations/triumphbogen.png',
				'/media/images/locations/bridge_complete.png',
				'/media/images/locations/bridge_front.png',
				'/media/images/locations/louvre2.png',
				'/media/images/locations/sacrecoeur.png',
				'/media/prototyping/screen4.png',
				'/media/images/locations/notredame.png',
				'/media/images/locations/versailles.png',
				'/media/elements/car_corpus_close_left.png',
				'/media/elements/car_corpus_open_left.png',
				'/media/elements/car_corpus_close_right.png',
				'/media/elements/car_corpus_open_right.png',
				'/media/elements/car_tire_front.png',
				'/media/elements/car_tire_back.png',
				'/media/elements/rope_left.png',
				'/media/elements/rope_right.png',
				'/media/elements/rope_attach_rotbarsch_left.png',
				'/media/elements/rope_attach_rotbarsch_right.png',
				'/media/elements/car_tire_front_animation_right.gif',
				'/media/elements/car_tire_back_animation_right.gif',
				'/media/elements/car_tire_front_animation_right.gif',
				'/media/elements/car_tire_back_animation_right.gif',
				'/media/elements/car_corpus_close_right.png',
				'/media/elements/car_tire_front_animation_right.gif',
				'/media/elements/car_tire_back_animation_right.gif',
				'/media/elements/car_corpus_close_right.png'		
			];
			
			// one of the files has been loaded
			preloadImages.onLoaded = function()
			{
				//dojo.byId("preloading_details").innerHTML += '| ' + preloadImages.loaded_image.src + ' wurde geladen.<br />';
				dojo.style(dojo.byId("loadedimg-container"), 'backgroundImage', 'url('+preloadImages.loaded_image.src+')');
				//console.log('| ', preloadImages.loaded_image , ' wurde geladen.');
			};

			// all files have been loaded
			preloadImages.onComplete = function()
			{
				//console.log('all images preloaded');
				//sidescroller.closeShader();
				
				// organizational stuff
				//lsaf.setScreenPreloaded(sid);	// tell the screens-object, that this one's loaded
				
				// the preloader
				//dojo.byId("preloading_details").innerHTML += '| Alle Bilder geladen. <br /><br />';
				//dojo.byId("preloading_details").innerHTML += lsaf.closeShaderLink();
				//dojo.byId("preloading_icon_16x16").src = 'media/library/loaders/loading-indicator02.gif';

				//lsaf.positionScreenElements(response);
				//var anim1 = dojo.fadeOut({ node: dojo.byId('stage'), duration: 1}).play();
				var anim2 = dojo.fadeOut({ node: dojo.byId('shader'), duration: 1500, onEnd: function(ev) { dojo.style(dojo.byId('shader'), 'display', 'none'); }}).play(25);
				//var anim3 = dojo.fadeIn({ node: dojo.byId('stage'), duration: 800}).play();
				
				dojo.style(dojo.byId('topmenu_de'), 'display', 'block');
				application = new at.lesalzgries.sidescroller.Sidescroller ( );
			  application.init();
			};

			// start the preloading
			preloadImages.queue_images(preloadingElements);
		
		},
		
		/**
		 * close the preloading window
		 */
		closeShader : function()
		{
			dojo.style( dojo.byId("shader"), "visibility", "hidden");	
			dojo.style( dojo.byId("shader"), "display", "none");	
		}
};


var application = null;

// Register Code Libraries
dojo.registerModulePath('net', '/js/net/');
dojo.registerModulePath('at', '/js/at/');

// Import relevant classes
dojo.require('net.crevo.ui.Container');
dojo.require('net.crevo.sidescroller.Screen');
dojo.require('net.crevo.sidescroller.ScreensModel');
dojo.require('net.crevo.sidescroller.FillsModel');
dojo.require('net.crevo.sidescroller.Sidescroller');
dojo.require('at.lesalzgries.sidescroller.Sidescroller');
dojo.require('at.lesalzgries.screens.Home');
dojo.require('at.lesalzgries.screens.Speisekarte');
dojo.require('at.lesalzgries.screens.Weinkarte');
dojo.require('at.lesalzgries.screens.Philosophie');
dojo.require('at.lesalzgries.screens.Galerie');
dojo.require('at.lesalzgries.screens.Silvester');
dojo.require('at.lesalzgries.screens.Catering');
dojo.require('at.lesalzgries.screens.Presse');
dojo.require('at.lesalzgries.screens.Kontakt');
dojo.require('at.lesalzgries.screens.FillTriumphbogen');
dojo.require('at.lesalzgries.screens.FillBruecke');
dojo.require('at.lesalzgries.screens.FillLouvre');
dojo.require('at.lesalzgries.screens.FillSacrecoeur');
dojo.require('at.lesalzgries.screens.FillNotredame');
dojo.require('at.lesalzgries.screens.FillVersailles');
dojo.require('at.lesalzgries.elements.Blacky');
dojo.require('at.lesalzgries.elements.Bienvenu');
dojo.require('at.lesalzgries.elements.Car');
dojo.require('at.lesalzgries.elements.Crown');
dojo.require('at.lesalzgries.elements.MainMenu');

// Go
dojo.addOnLoad( sidescroller.init );