var QueryLoader = {
	
	overlay: "",
	loadBar: "",
	preloader: "",
	items: new Array(),
	doneStatus: 0,
	doneNow: 0,
	selectorPreload: "body",
	ieLoadFixTime: 4000,
	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[0].match("MSIE")) {
			while ((100 / QueryLoader.doneStatus) * QueryLoader.doneNow < 100) {
				QueryLoader.imgCallback();
			}
		}
	},
	
	imgCallback: function() {
		QueryLoader.doneNow ++;
		QueryLoader.animateLoader();
	},
	
	getImages: function(selector) {
		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) {
				QueryLoader.items.push(url);
			}
		});
	},
	
	createPreloading: function() {
		QueryLoader.preloader = $("<div></div>").appendTo(QueryLoader.selectorPreload);
		$(QueryLoader.preloader).css({
			height: 	"0px",
			width:		"0px",
			overflow:	"hidden"
		});
		
		var length = QueryLoader.items.length; 
		QueryLoader.doneStatus = length;
		
		for (var i = 0; i < length; i++) {
			var imgLoad = $("<img></img>");
			$(imgLoad).attr("src", QueryLoader.items[i]);
			$(imgLoad).unbind("load");
			$(imgLoad).bind("load", function() {
				QueryLoader.imgCallback();
			});
			$(imgLoad).appendTo($(QueryLoader.preloader));
		}
	},

	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.loadContent = $("<div>Good people, Great friends,<br /> A helping hand at this <p>CHRISTMAS</p> Come check us out.....</div>").appendTo($(QueryLoader.overlay));
		$(QueryLoader.loadContent).addClass("QLoad_content");
		
		
		QueryLoader.loadBarBg = $("<div><span>Please wait while site is loading</span></div>").appendTo($(QueryLoader.overlay));
		$(QueryLoader.loadBarBg).addClass("QBgLoader");
		$(QueryLoader.loadBarBg).css ({
			width: "259px",
			height: "19px",
			position: "relative",
			padding: "8px 8px 0 8px"
		});
				
		
		QueryLoader.loadBar = $("<div></div>").appendTo($(QueryLoader.loadBarBg));
		$(QueryLoader.loadBar).addClass("QLoader");
		
		$(QueryLoader.loadBar).css({
			position: "relative",
			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.overlay).fadeOut(900, function(){
			$('.page_logo img').animate({top: '0'},{duration: 900, easing: 'easeOutBounce'});
																									  	
			
			$('.nav_home').animate({opacity: 'show',top: '0'},300);	
			$('.page_music').animate({top:'-7px', height:'23px'},{duration:700, easing: 'easeOutElastic'});
			$('.nav_About').animate({opacity: 'show',top: '0'},500);	
			$('.nav_Donate').animate({opacity: 'show',top: '0'},700, function(){
				$('.tell_friend').animate({top: '-644px'},{duration: 500, easing: 'easeOutBack'});																	
			});		
			$('.nav_Card').animate({opacity: 'show',top: '0'},900);	
			$('.nav_Comments').animate({opacity: 'show',top: '0'},1100);
			$('.nav_Message').animate({opacity: 'show',top: '0'},1400);
			
			$('.nav_Share').animate({opacity: 'show',top: '0'},1300, function(){
				$('.page_nav li img:first').parent().find("span").stop().animate({ top: '0px' },{queue:false, duration:600, easing: 'easeOutQuart'});															  
				$('.bg_banner').fadeIn(1000, function(){
					$('.btn_feedback').animate({top:'40%'},{duration: 2000, easing: 'easeOutExpo'});								  
					$('.ani_content').fadeIn(1000 , function(){
						$('.bg_home img').animate({width: '350px', height: '585px', top: '0', left: '0'},{duration: 1000, easing: 'easeOutExpo'});
						$('.logo_cre8tive').animate({top:'0'},500, function(){
							$('.bg_fog').fadeIn('fast');												
							$('.Ashraya').animate({top:'0'},500, function(){
							$('.link_oovey').animate({top:'5px'},600);											  
								$('.follow_us span').fadeIn('slow', function(){
									$('.follow_us a:first').animate({left:'0'},{duration: 1000, easing: 'easeOutExpo'});
									$('.follow_us a:last').animate({left:'8px'},{duration: 1000, easing: 'easeOutExpo'});
									$('.bg_boy').animate({top:'-30px'},{duration: 1000, easing: 'easeOutBack'});
									$('.bg_gril').animate({top:'-30px'},{duration: 1500, easing: 'easeOutBack'});
									$('.page_nav ul li img').addClass('pageAnimate');
									$('.page_nav li img').addClass('navActive');
									$('.page_nav li img:first').removeClass('navActive');
									$('.page_nav li img').addClass('navMove');
									
									
									$('.bg_text_christmas').click(function(){
										$('#slides').stop().animate({marginLeft: '-1800px'},{duration:1000, easing: 'easeInOutExpo'});
										
										$('.page_nav ul li img').addClass('navActive');
										$('.page_nav ul li img').parent().find("span").stop().animate({ top: '-70px' },200, function(){
											$('.page_nav ul li img').parent().find("span").removeClass('bg_navActive');	
											$('li.nav_Donate img').removeClass('navActive');
											$('li.nav_Donate img').parent().find("span").addClass('bg_navActive');
											$('li.nav_Donate img').parent().find("span").stop().animate({ top: '0px' },{queue:false, duration:600, easing: 'easeOutQuart'});
										});
									});
									
									function runIt() {
									  $(".bg_boy").animate({top:"+=15"}, 1200);
									  $(".bg_gril").animate({top:"+=15"}, 1000);
									  $(".bg_boy").animate({top:"-=15"}, 1200);
									  $(".bg_gril").animate({top:"-=15"}, 1000, runIt);
									}
									runIt();
									
								});										  
							});									 
						});
					});								  
				 });															  
																			  
			});
			
			
		});
		$(QueryLoader.preloader).remove();
		
	}
}