// JavaScript Document

/**
 * Load components
 *
 * @uses jQuery
 * @version 1.1
 * @author Martin Walper
 * @link klickhere.com
 *
 */

;(function($)
{
	$.loader = function()
	{
	
		var TIMER;
		var COUNT = 0;
		var FF2 = ($.browser.firefox && $.browser.version<1.9);
		var LOAD = [
			"resource/js/jquery/ui/jquery.ui.js",
	//		"resource/js/json.js",
	//		"resource/js/menu.js",
	//		"resource/js/pphlogger.js",
	//		"resource/js/jquery/jquery.history.js",
	//		"resource/js/jquery/jquery.flydom.js",
			"resource/js/jquery/jquery.ifixpng.js",
	//		"resource/js/jquery/jquery.validate.js",
			"resource/js/jquery/jquery.metadata.js",
	//		"resource/js/jquery/jquery.autocomplete.js",
	//		"resource/js/jquery/jquery.infotab.js",
	//		"resource/js/jquery/jquery.lightbox.pack.js",
	//		"resource/js/jquery/jquery.interface.js",
	//		"resource/js/jquery/jquery.sessionchk.js",
			"resource/js/jquery/jquery.slideviewer.js",
	//		"resource/js/jquery/jquery.jdmenu.js",
			"resource/js/jquery/jquery.jmap.js",
			"resource/js/jquery/jquery.khmenu.js",
	//		"resource/js/jquery/jquery.fl_txt.js",
			"resource/js/jquery/jquery.simplemodal.js",
	//		"resource/js/jquery/jquery.gatracker.js",
			"resource/js/layout.js"
	
		];
		var MAX = LOAD.length;

		//TIMER = window.setTimeout("$.loader.timeout()", 20000);

		$.each(LOAD, function (i,n)
		{
			$.ajax(
			{
				url:n,
				type: "GET",
				dataType:"script",
				global:false,
				async: (FF2)?false:true,
				cache: true,
				success:onSuccess,
				error:onError
			});
		});

		function onSuccess(msg)
		{
			COUNT++;
			if (COUNT == MAX)
			{
				//window.clearTimeout(TIMER);
				window.setTimeout("$.loader.Finish()", 300);
			}
		}

		function onFinish()
		{
			loadAllways();
			loadByAction();
		}

		function onError(o,t,e)
		{
			$.log('Error loading file ! Script paused.');
			$.log(o);
		}

		function onTimeout()
		{
			$.log('Script timed out while loading critical files! Script aborted. Scripts loaded :'+COUNT+' Scripts Total:'+MAX);
			alert("A JavaScript timed out while loading dependent files!\nPlease refresh this page.");
		}

		$.loader.timeout = function()
		{
			onTimeout();
		}

		$.loader.Finish = function()
		{
			onFinish();
		}
	};

})(jQuery);