// JavaScript Document

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

;(function($)
{
	$.loader = function()
	{
		var TIMER;
		var COUNT = 0;
		var LOAD = [
//			"resource/js/jquery/ui/jquery.ui.js",
			"resource/js/menu.js",
//			"resource/js/json.js",
			"resource/js/jquery/jquery.gatracker.js",
			"resource/js/jquery/jquery.sifr.js",
			"resource/js/jquery/jquery.ifixpng.js",
//			"resource/js/jquery/jquery.infotab.js",
			"resource/js/jquery/jquery.metadata.js",
			"resource/js/jquery/jquery.validate.js",
//			"resource/js/jquery/jquery.validate.additional.js",
//			"resource/js/jquery/jquery.ajaxform.js",
//			"resource/js/jquery/jquery.fileupload.js",
			"resource/js/jquery/jquery.formvalidate.js",
//			"resource/js/jquery/jquery.dimscreen.js",
//			"resource/js/jquery/jquery.boxgrp.js",
//			"resource/js/jquery/jquery.jmap.js",
//			"resource/js/jquery/jquery.sessionchk.js",

	// add new plugins here

	// have to stay at last
			"resource/js/layout.js"

		];
		var MAX = LOAD.length;

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

		$.each(LOAD, function (i,n)
		{
			$.ajax(
			{
				url:n,
				type: "GET",
				dataType:"script",
				global:false,
				async: false,
				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);
