var QueryLoader = {
	/*
	 * QueryLoader		Preload your site before displaying it!
	 * Author:			Gaya Kessler
	 * Date:			23-09-09
	 * URL:				http://www.gayadesign.com
	 * Version:			1.0
	 * 
	 * A simple jQuery powered preloader to load every image on the page and in the CSS
	 * before displaying the page to the user.
	 */
	
	overlay: "",
	loadBar: "",
	preloader: "",
	items: new Array(),
	doneStatus: 0,
	doneNow: 0,
	selectorPreload: "body",
	ieLoadFixTime: 2000,
	ieTimeout: "",
		
	init: function() {
		if (navigator.userAgent.match(/MSIE (\d+(?:\.\d+)+(?:b\d*)?)/) == "MSIE 6.0,6.0") {
			//break if IE6			
			return false;
		}
		if (QueryLoader.selectorPreload == "body") {
			QueryLoader.spawnLoader();
			QueryLoader.getImages(QueryLoader.selectorPreload);
			QueryLoader.createPreloading();
		} else {
			$(document).ready(function() {
				QueryLoader.spawnLoader();
				QueryLoader.getImages(QueryLoader.selectorPreload);
				QueryLoader.createPreloading();
			});
		}
		
		//help IE drown if it is trying to die :)
		QueryLoader.ieTimeout = setTimeout("QueryLoader.ieLoadFix()", QueryLoader.ieLoadFixTime);
	},
	
	ieLoadFix: function() {
		var ie = navigator.userAgent;//.match(/MSIE (\d+(?:\.\d+)+(?:b\d*)?)/);
		if (ie.indexOf("MSIE")!=-1) {
			while ((100 / QueryLoader.doneStatus) * QueryLoader.doneNow < 100) {
				QueryLoader.imgCallback();
			}
		}
	},
	
	imgCallback: function() {
		QueryLoader.doneNow ++;
		QueryLoader.animateLoader();
	},
	
	getImages: function(selector) {
		var FilesArray = ['/images/artsy/sold3.jpg', '/images/gear/gear_civilian_picture3.jpg', '/images/artsy/avia2.jpg', '/images/watches/ulavia.jpg', '/images/watches/gene0.jpg', '/images/artsy/gene1.jpg', '/images/artsy/guag1.jpg', '/images/gear/gear_civilian_picture2.jpg', '/images/artsy/avia1.jpg', '/images/artsy/arma2.jpg', '/images/watches/avia0sw.jpg', '/images/artsy/cann1.jpg', '/images/artsy/usco3.jpg', '/images/watches/ulphan.jpg', '/images/watches/ulsold.jpg', '/images/watches/legi0.jpg', '/images/artsy/usco2.jpg', '/images/watches/wing0.jpg', '/images/gear/gear_equipment_picture1.jpg', '/images/watches/zeus0.jpg', '/images/artsy/phan1.jpg', '/images/artsy/gija1.jpg', '/images/artsy/wing2.jpg', '/images/artsy/arma3.jpg', '/images/gear/g_ap_t2.jpg', '/images/watches/cann0.jpg', '/images/watches/ulguag.jpg', '/images/watches/ularma.jpg', '/images/watches/ulcann.jpg', '/images/banners/banner3.jpg', '/images/artsy/phan2.jpg', '/images/watches/phan0.jpg', '/images/watches/ulgene.jpg', '/images/watches/guag0.jpg', '/images/gear/gear_apparel_bg.jpg', '/images/artsy/avia3.jpg', '/images/artsy/sold1.jpg', '/images/gear/gear_apparel_picture3.jpg', '/images/artsy/gene2.jpg', '/images/artsy/wing1.jpg', '/images/artsy/exca3.jpg', '/images/watches/ulzeus.jpg', '/images/artsy/legi3.jpg', '/images/watches/snak0.jpg', '/images/watches/ulwing.jpg', '/images/artsy/cann3.jpg', '/images/gear/g_ap_t3.jpg', '/images/artsy/sold2.jpg', '/images/gear/g_eq_t2.jpg', '/images/watches/ulsnak.jpg', '/images/artsy/gija2.jpg', '/images/artsy/arma1.jpg', '/images/watches/ulusco.jpg', '/images/watches/ulexca.jpg', '/images/artsy/legi2.jpg', '/images/gear/gear_equip_bg.jpg', '/images/gear/g_ci_t1.jpg', '/images/artsy/guag2.jpg', '/images/watches/exca0.jpg', '/images/artsy/gene3.jpg', '/images/artsy/zeus1.jpg', '/images/banners/banner2.jpg', '/images/gear/gear_apparel_picture2.jpg', '/images/banners/banner4.jpg', '/images/artsy/usco1.jpg', '/images/banners/banner1.jpg', '/images/watches/ullegi.jpg', '/images/watches/arma0.jpg', '/images/gear/g_ap_t1.jpg', '/images/artsy/exca2.jpg', '/images/watches/ulgija.jpg', '/images/gear/gear_equipment_picture2.jpg', '/images/watches/sold0.jpg', '/images/artsy/phan3.jpg', '/images/artsy/zeus3.jpg', '/images/gear/g_eq_t1.jpg', '/images/artsy/zeus2.jpg', '/images/artsy/legi1.jpg', '/images/artsy/guag3.jpg', '/images/watches/usco0.jpg', '/images/watches/gija0.jpg', '/images/artsy/wing3.jpg', '/images/gear/gear_apparel_picture1.jpg', '/images/gear/g_ci_t2.jpg', '/images/artsy/exca1.jpg', '/images/artsy/cann2.jpg', '/images/gear/gear_civilian_picture1.jpg', '/images/gear/g_ci_t3.jpg', '/images/watches/excalibur.jpg', '/images/topmenu/topmenu3_boutiques-on.gif', '/images/topmenu/topmenu1_collection.gif', '/images/topmenu/topmenu4_contact-on.gif', '/images/icons/icon_twitter.gif', '/images/topmenu/topmenu2_gear.gif', '/images/topmenu/topmenu2_gear-on.gif', '/images/topmenu/topmenu1_collection-on.gif', '/images/topmenu/topmenu4_contact.gif', '/images/icons/icon_youtube.gif', '/images/icons/icon_fb.gif', '/images/topmenu/topmenu3_boutiques.gif'];
		for ( var i=FilesArray.length-1; i>=0; --i ){
			QueryLoader.items.push(FilesArray[i]);
		}
		
		// var everything = $(selector).find("*:not(script)").each(function() {
		// 	var url = "";
		// 	
		// 	if ($(this).css("background-image") != "none") {
		// 		var url = $(this).css("background-image");
		// 	} else if (typeof($(this).attr("src")) != "undefined" && $(this).attr("tagName").toLowerCase() == "img") {
		// 		var url = $(this).attr("src");
		// 	}
		// 	
		// 	url = url.replace("url(\"", "");
		// 	url = url.replace("url(", "");
		// 	url = url.replace("\")", "");
		// 	url = url.replace(")", "");
		// 	
		// 	if (url.length > 0) {
		// 		alert(url);
		// 		QueryLoader.items.push(url);
		// 	}
		// });
	},
	
	createPreloading: function() {
		  var cache = [];
		QueryLoader.preloader = $("<div></div>").appendTo(QueryLoader.selectorPreload);
		$(QueryLoader.preloader).css({
			height: 	"0px",
			width:		"0px",
			overflow:	"hidden"
		}); //.css
		
		var length = QueryLoader.items.length; 
		QueryLoader.doneStatus = length;
		
		for (var i = 0; i < length; i++) {
			
	      var cacheImage = document.createElement('img');
		  cacheImage.src = QueryLoader.items[i];
	      cache.push(cacheImage);
			$(cacheImage).unbind("load");
			$(cacheImage).bind("load", function() {
			QueryLoader.imgCallback();
		});//for
		$(cacheImage).appendTo($(QueryLoader.preloader));		

			// var imgLoad = $("<img></img>");
			// $(imgLoad).attr("src", QueryLoader.items[i]);
			// $(imgLoad).unbind("load");
			// $(imgLoad).bind("load", function() {
			// 	QueryLoader.imgCallback();
			// });
			// $(imgLoad).appendTo($(QueryLoader.preloader));
		}//function
	},

	spawnLoader: function() {
		if (QueryLoader.selectorPreload == "body") {
			var height = $(window).height();
			var width = $(window).width();
			var position = "fixed";
		} else {
			var height = $(QueryLoader.selectorPreload).outerHeight();
			var width = $(QueryLoader.selectorPreload).outerWidth();
			var position = "absolute";
		}
		var left = $(QueryLoader.selectorPreload).offset()['left'];
		var top = $(QueryLoader.selectorPreload).offset()['top'];
		
		QueryLoader.overlay = $("<div></div>").appendTo($(QueryLoader.selectorPreload));
		$(QueryLoader.overlay).addClass("QOverlay");
		$(QueryLoader.overlay).css({
			position: position,
			top: top,
			left: left,
			width: width + "px",
			height: height + "px"
		});
		
		QueryLoader.loadBar = $("<div></div>").appendTo($(QueryLoader.overlay));
		$(QueryLoader.loadBar).addClass("QLoader");
		
		$(QueryLoader.loadBar).css({
			position: "relative",
			top: "50%",
			width: "0%"
		});
	},
	
	animateLoader: function() {
		var perc = (100 / QueryLoader.doneStatus) * QueryLoader.doneNow;
		if (perc > 99) {
			$(QueryLoader.loadBar).stop().animate({
				width: perc + "%"
			}, 500, "linear", function() { 
				QueryLoader.doneLoad();
			});
		} else {
			$(QueryLoader.loadBar).stop().animate({
				width: perc + "%"
			}, 500, "linear", function() { });
		}
	},
	
	doneLoad: function() {
		//prevent IE from calling the fix
		clearTimeout(QueryLoader.ieTimeout);
		
		//determine the height of the preloader for the effect
		if (QueryLoader.selectorPreload == "body") {
			var height = $(window).height();
		} else {
			var height = $(QueryLoader.selectorPreload).outerHeight();
		}
		
		//The end animation, adjust to your likings
		$(QueryLoader.loadBar).css("top", height/2).css("background", "url('/images/intro_logo.gif') center center no-repeat fixed #141414").animate({
			height: height + "px",
			top: 0
		}, 300, "linear", function() {
			$('#loading').hide();
			$(QueryLoader.overlay).delay(1200).fadeOut(350, function() { getPage(); });
			$(QueryLoader.preloader).remove();
			$("#jquery_jplayer").jPlayer("play");
		});
	}
}
