// JavaScript Document

/**
 * Load components
 *
 * @uses jQuery
 * @version 2.0
 * @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/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.boxgrp.js",
			"resource/js/jquery/jquery.boxmodal.js",
//			"resource/js/jquery/jquery.kh_gmap.js",

	// add new plugins here
			"resource/js/jquery/jquery.lightbox.js",
	// 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: (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);
