/**
 * LazyLoad - jQuery plugin
 */
lazyModules = {
			  "dummy":""
//hook lazyModules {,ACTION}// --- HOOK BEGIN ---
,
"overview" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/admin/overview/js/overview.js"]
            	   		,"css":		["/totoya/cache/core/clib/admin/overview/css/overview.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"user-editor" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/admin/user-editor/js/user-editor.js"]
            	   		,"css":		["/totoya/cache/core/clib/admin/user-editor/css/user-editor.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"glossary" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/standard/glossary/js/glossary.js"]
            	   		,"css":		["/totoya/cache/core/clib/standard/glossary/css/glossary.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
        	"jqueryJson" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/lib/jquery/jquery.json-2.2.min.js"]
          	   		,"css":		[]
           		}
           		,"dependencies": []          	          		 
			}
         // --- HOOK END ---// --- HOOK BEGIN ---
,
			"jqueryComplete" : {
				"files": {
					"scripts":	["/totoya/cache/core/clib/lib/jquery/jquery.fcbkcomplete.js"]
					,"css":		["/totoya/cache/core/clib/lib/jquery/fcbkcomplete/style.css"]
				}
				,"dependencies": []          	          		 
			}
		// --- HOOK END ---// --- HOOK BEGIN ---
,
              "cTemplate" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/admin/framework/skin/default/js/ctemplate.js"]
          	   		,"css":		[]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "ui" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/lib/jquery/jquery.ui.js"]
          	   		,"css":		["/totoya/cache/core/clib/lib/jquery/ui/jquery.ui.css"]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
			"jqueryDatePicker" : {
				"files": {
					"scripts":	["/totoya/cache/core/clib/lib/jquery/datepicker/date.js", "/totoya/cache/core/clib/lib/jquery/datepicker/date_de.js", "/totoya/cache/core/clib/lib/jquery/jquery.datepicker-2.1.2.js"]
					,"css":		["/totoya/cache/core/clib/lib/jquery/datepicker/datepicker.css"]
				}
				,"dependencies": []          	          		 
			}
		// --- HOOK END ---// --- HOOK BEGIN ---
,
              "cForm" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/lib/jquery/jquery.cform.js"]
          	   		,"css":		["/totoya/cache/core/clib/lib/jquery/cform/jquery.cform.css"]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "codeMirror" : {
          		"files": {
          	   		"scripts":	[
          	   			"/totoya/cache/core/clib/lib/codemirror/js/codemirror.js"
          	   			,"/totoya/cache/core/clib/lib/jquery/jquery.codemirror.js"
          	   		]
          	   		,"css":		["/totoya/cache/core/clib/lib/jquery/codemirror/jquery.codemirror.css"]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"formxmleditor" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/admin/xml-editor/js/formxmleditor.js"]
            	   		,"css":		["/totoya/cache/core/clib/admin/xml-editor/css/formxmleditor.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"shopAdmin" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/standard/shop/js/cshopadmin.class.js"]
            	   		//,"css":		["/totoya/cache/core/clib/standard/invoice/css/invoice.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "modulePanel" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/admin/framework/skin/default/js/modulepanel.js"]
          	   		,"css":		["/totoya/cache/core/clib/admin/framework/skin/default/css/modulepanel.css"]
             		}
             		,"dependencies": []          	          		 
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "systemPanel" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/admin/framework/skin/default/js/systempanel.js"]
          	   		,"css":		["/totoya/cache/core/clib/admin/framework/skin/default/css/modulepanel.css"]
             		}
             		,"dependencies": []          	          		 
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "standard" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/admin/framework/skin/default/js/standard.js"]
          	   		,"css":		[]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"newsletter" : {
            		"files": {
            	   		"scripts":	[
            	   			"/totoya/cache/core/clib/admin/newsletter/js/newsletteradmin.js"
            	   			,"/totoya/cache/core/clib/admin/newsletter/js/newslettertree.js"
            	   			,"/totoya/cache/core/clib/admin/newsletter/js/newsletteradmin.class.js"
            	   			]
            	   		//,"css":		["/totoya/cache/core/clib/admin/newsletter/css/user-editor.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
			"attendenceAdmin" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/standard/attendance/js/cattendanceadmin.class.js"]
            	   		//,"css":		["/totoya/cache/core/clib/standard/attendance/css/attendenceadmin.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
              "cList" : {
          		"files": {
          	   		"scripts":	["/totoya/cache/core/clib/lib/jquery/jquery.clist.js"]
          	   		,"css":		["/totoya/cache/core/clib/lib/jquery/clist/jquery.clist.css"]
             		}
             		,"dependencies": []
             }
         // --- HOOK END ---// --- HOOK BEGIN ---
,
"invoiceAdmin" : {
            		"files": {
            	   		"scripts":	["/totoya/cache/core/clib/standard/invoice/js/cinvoiceadmin.class.js"]
            	   		//,"css":		["/totoya/cache/core/clib/standard/invoice/css/invoiceadmin.css"]
               		}
               		,"dependencies": []
            	          		 
               }
         // --- HOOK END ---
};

(function( $ ) {
    $.fn.lazyLoad = function( aModules, fCallback, mParams ) {
    	// init all local storages
    	var oTarget = this;
    	var aScripts = new Array();
    	var aCss = new Array();
    	// collect all files to load
    	// TODO: dependencies are not handeled jet!
    	for(var i in aModules) {
    		var sModule = aModules[i];
    		if(lazyModules[sModule].loaded == true) {
    			continue;
    		}
    		// set loaded to true to avoid duplicate loading
    		// TODO: exemine, if bad timing could result in unloaded modules because setting to loaded to early
    		lazyModules[sModule].loaded = true;
    		for(var j in lazyModules[sModule].files.scripts) {
    			aScripts.push(lazyModules[sModule].files.scripts[j]);
    		}
    		for(var j in lazyModules[sModule].files.css) {
    			aCss.push(lazyModules[sModule].files.css[j]);
    		}
    	}
    	// examine how many files are to be loaded
    	var iLoadCount = aScripts.length + aCss.length;
    	var iLoadedCount = -1;
    	//define a function for loaded scripts
    	var fCheckLoaded = function() {
    		iLoadedCount ++;
    		if(iLoadedCount == iLoadCount) {
    			//execute callback
    			//timeout for Safari2 compatibility
    			window.setTimeout(function(){fCallback.call(oTarget, mParams);},10);
    		}
    	};
    	// load all scripts
    	for(var i in aScripts) {
        	$.getScript(aScripts[i], function() {
        		fCheckLoaded();
        	});
    	}
    	// load all css
    	for(var i in aCss) {
        	$.get(aCss[i], function(sCss) {
        		$("head").append("<style type='text/css'>"+sCss+"</style>");
        		fCheckLoaded();
        	});
    	}
    	fCheckLoaded();
    };
    // make it global accessible
    $.lazyLoad = $.fn.lazyLoad;
})(jQuery);
