jQuery(function($){
				
	// tag added for JavaScript enabled sytles
	$("body").addClass("js");
	
	// ***********************************************************************************
	// automatic vertical centering
	
	var vertCenter = -($(".panelContainer").height() + parseInt($(".panelContainer").css("padding-top")) + parseInt($(".panelContainer").css("padding-bottom")))/2;
	
	$("<div id='floater'></div>")
		.css({
			 position: 'relative', 
			 width: '100%', 
			 height: '50%', 
			 float: 'left', 
			 'margin-bottom': vertCenter
		})
		.prependTo("body");
	
	// *********************************************************************************************									
    // preload critcal images
    var cache = [];
    // arguments are image paths relative to the current page.
    $.preLoadImages = function() {
        var args_len = arguments.length;
        for (var i = args_len; i--;) {
            var cacheImage = document.createElement('img');
            cacheImage.src = arguments[i];
            cache.push(cacheImage);
        }
    };

    $.preLoadImages("/portfolio/_images/web/90four.com/90four01.jpg", "/portfolio/_images/web/90four.com/90four02.jpg", "/portfolio/_images/web/90four.com/90four03.jpg", "/portfolio/_images/web/90four.com/90four04.jpg", "/portfolio/_images/web/slaggie.com/slaggie01.jpg", "/portfolio/_images/web/slaggie.com/slaggie02.jpg", "/portfolio/_images/web/slaggie.com/slaggie03.jpg", "/portfolio/_images/web/slaggie.com/slaggie04.jpg", "/portfolio/_images/web/wehmueller.net/wehmueller01.jpg", "/portfolio/_images/web/wehmueller.net/wehmueller02.jpg", "/portfolio/_images/web/wehmueller.net/wehmueller03.jpg", "/portfolio/_images/web/wehmueller.net/wehmueller04.jpg", "/profile/_images/profile01.jpg", "/profile/_images/profile02.jpg", "/profile/_images/profile03.jpg", "/profile/_images/profile04.jpg", "/profile/_images/profile05.jpg");

	// ***********************************************************************************
	// page inits
	
	var href = (document.location.href).split("/");
	href = (href[href.length - 2])
	
	if (href == "profile"){
		initProfile();
		$("#sideNav a[id=profileBtn]").addClass("current");
	}
	if (href == "portfolio"){
		initPortfolio();
		$("#sideNav a[id=portfolioBtn]").addClass("current");
	}
	if (href == "resume"){
		initResume();
		$("#sideNav a[id=resumeBtn]").addClass("current");
	}
	
	// ***********************************************************************************
	// sidebar

	$("#sideNav a").click(function() {
		if ($(this).hasClass("current")) {
			return false;
		} 
	});
	
	// ***********************************************************************************
	// shared behaviors
	
	// Image replacement + thumbnail gallery behavior
	function firstActive($thumb){
		$thumb.find("img:first").addClass("activeThumb");
	}
	
	function initThumbs(){
		$(".thumbs img")
			.css("opacity", "0.7")
			.wrap("<div class='thumbBg'></div>");
			
		$(".thumbBg").each(function(){
			var $bg = $(this);
			var h = $bg.children("img").height() + 2;
			var w = $bg.children("img").width() + 2;
			$bg.height(h).width(w);
		});
				
		$(".activeThumb").css({opacity: 1.0});
	}
	
	function preLoadThumbs($img){
			var complete = 0;
			
			function checkImg(img){
				if (img.complete){
					complete++;
					if (complete == $img.length){
						initThumbs();
					}
				} else {
					var element = img;
					setTimeout(function() {
						checkImg(element);
					},
					125);
				}
			}
			
			$img.each(function(){
				checkImg(this);
			});
	}
	
	function thumbChange($thumb, $current){
		if(!$thumb.hasClass("activeThumb")){
			if($current.length > 0){
				$current.removeClass("activeThumb").fadeTo(350, 0.7);
			}
			$thumb.addClass("activeThumb").fadeTo(150, 1.0);
		}
	}
	
	// ***********************************************************************************
	// profile page
		
	function initProfile(){
		
		firstActive($("#profileThumbs"));
		var $img = $("#profileThumbs").find("img");
		preLoadThumbs($img);

		$("#profileThumbs a")
			.hover(function(){
				var $thumb = $(this);
				var largePath = $thumb.attr("href");
				var caption = $thumb.attr("class");
				$("#profilePhoto").attr({src: largePath});
				$("p#caption").html("[photo: " + caption + "]");
				var $current = $("#profileThumbs img.activeThumb");
				thumbChange($thumb.find("img"), $current);
		})
			.click(function(){
				return false;
		});
			
		// accordion panel behavior
		$("#profileAccordion").kwicks({
			min : 26,
			spacing : 1,
			isVertical : true,
			sticky : true,
			defaultKwick: 0,
			event : "click",
			duration: 1000,  
			easing: "easeOutQuint"
		});
		
		$(".subHeader1.accordion").each(function(){
			$("<div class='arrow'></div>").prependTo(this);
		});
		
	}
	
	// ***********************************************************************************
	// portfolio page
		
	function initPortfolio(){
		
		firstActive($("#nintyfourThumbs"));
		firstActive($("#slaggieThumbs"));
		firstActive($("#wehmuellerThumbs"));
		var $img = $("#nintyfourThumbs, #slaggieThumbs, #wehmuellerThumbs").find("img");
		preLoadThumbs($img);  
		
		$(".panelContent li").addClass("active");
		
		$("#nintyfourThumbs a")
			.hover(function(){
				var largePath = $(this).attr("href");
				$("#nintyfourLarge").attr({src: largePath});
				var $current = $("#nintyfourThumbs img.activeThumb");
				thumbChange($(this).find("img"), $current);
		})
			.click(function(){
				return false;
		});
		
		$("#slaggieThumbs a")
			.hover(function(){
				var largePath = $(this).attr("href");
				$("#slaggieLarge").attr({src: largePath});
				var $current = $("#slaggieThumbs img.activeThumb");
				thumbChange($(this).find("img"), $current);
		})
			.click(function(){
				return false;
		});
			
		$("#wehmuellerThumbs a")
			.hover(function(){
				var largePath = $(this).attr("href");
				$("#wehmuellerLarge").attr({src: largePath});
				var $current = $("#wehmuellerThumbs img.activeThumb");
				thumbChange($(this).find("img"), $current);
		})
			.click(function(){
				return false;
		});

	}
	
	// ***********************************************************************************
	// resume page
	
	function initResume(){
		
		$(".panelContent li").addClass("active");
		
	}
	
});