var $j = jQuery.noConflict();

$j(document).ready(function(){
	
	
	
	// Menu 
	
	checkMenus();
	
	function checkMenus(){
	
		var currentpage = window.location.href;
		
	
		$j("#main-menu .main-menu-links").each(function(){
		
			$j("h4 a", this).each(function(){
				if($j(this).attr("href") == currentpage){
					$j(this).parents(".main-menu-link").addClass("active");
				} else {
					$j(this).parents(".main-menu-link").removeClass("active");
				}
			
			});
		
			if($j(".main-menu-link", this).hasClass("active")){
				$j(this).prev("h3").addClass("active");
				$j(this).show();
				$j(this).parents(".main-menu-children").show();
			}
		});
		
		$j(".main-menu-parent").each(function(){
			if(!$j(".main-menu-link", this).hasClass("active")){
				if(!$j("h2 a", this).hasClass("active")){
					$j(".main-menu-children, .main-menu-links", this).slideUp();
				} else {
					$j(".main-menu-links", this).slideUp();
					$j(".main-menu-children", this).show();
				}
			}
			
					
		});
		
	}
	
	
	$j(".main-menu-parent h2").click(function(e){
		//e.preventDefault();
		var sub = $j(this).next(".main-menu-children");
	
		$j(".main-menu-children").not(sub).stop(true,true).slideUp();
		$j(".main-menu-links").stop(true,true).slideUp();
		sub.stop(true,true).slideDown();
		
		$j(".main-menu-child h3").removeClass("active");
		$j(".main-menu-link").removeClass("active");
		$j("#sub-menu .current-menu-item").removeClass("current-menu-item");
		
	});
	
	$j(".main-menu-child h3").click(function(){
		$j(".main-menu-child h3").removeClass("active");
		$j(this).addClass("active");
		$j(this).next(".main-menu-links").children(".main-menu-link:eq(0)").addClass("active");
		var sub = $j(this).next(".main-menu-links");
		$j(".main-menu-links").not(sub).stop(true,true).slideUp();
		sub.stop(true,true).slideDown();
	});
	
	$j("#main-menu .main-menu-link a").click(function(){
		$j(".main-menu-link").removeClass("active");
		$j(this).parents(".main-menu-link").addClass("active");
	});
	
	
	$j("#main-menu .main-menu-child").each(function(){
		if($j(".melbourne", this).length){
			$j(this).addClass("melbourne");
			var melb = $j("<span>").text("Melbourne/Sydney");
			$j(this).prepend(melb);
		} else if($j(".style-director", this).length){
			$j(this).addClass("style-director");
			var melb = $j("<span>").text("Style Director");
			$j(this).prepend(melb);
		}
	});
	
	
	
	$j("#sub-menu a").click(function(){
		$j("#sub-menu .current-menu-item").removeClass("current-menu-item");
		$j(this).parent().addClass("current-menu-item");
	});
	
	
	// Gallery
	
	
	$j("#loader").stop(true,true).fadeTo(500,0);
	
	
	var imageWidths = new Array();
	resetGallery();
	var current = 0;
	function resetGallery(){
		var current = 0;
		
		if(!jQuery.browser.mobile){
			$j(".lizard-gallery td").fadeTo(0, 0.05);
			
			var join = $j(".lizard-gallery td:eq("+current+") img").hasClass("join");
			var faded = ".lizard-gallery td:eq("+current+")";
			if(join){
				faded += ", .lizard-gallery td:eq("+(current+1)+")";
			}
			
			$j(faded).stop().fadeTo(0,1);
		}
		$j("#navleft").fadeTo(0, 0.2);
		
		imageWidths = [];
		
		$j(".lizard-gallery td").each(function(){
			imageWidths.push($j(this).width());
		});
		/*

		$j(".lizard-gallery figure").each(function(){
			if($j("img", this).hasClass("join")){
				$j("figcaption", this).hide();
			}
		});
*/
	}
	
	
	
	
	
	if(!jQuery.browser.mobile){
	
		
		$j("#navright").live("click", function(e){
			e.preventDefault();
			if(current < ($j(".lizard-gallery td").length-1)){
			
				var join = $j(".lizard-gallery td:eq("+current+") img").hasClass("join");
				if(join){
					if((current+2) > ($j(".lizard-gallery td").length-1)){
						return;
					} else {
						current += 2;
					}
				} else {
					current += 1;
				}
			
				join = $j(".lizard-gallery td:eq("+current+") img").hasClass("join");
				
				scrollImages(join);
			}
		});
		
		$j("#navleft").live("click", function(e){
			e.preventDefault();
			if(current > 0){
			
				var join = $j(".lizard-gallery td:eq("+(current-1)+") img").hasClass("join");
				
				if ($j(".lizard-gallery td:eq("+(current-2)+") img").hasClass("join")) {
					current -= 2;
					join = true;
				} else {
					current -= 1;
				}
				
				scrollImages(join);
			}
		});
		

		$j(".lizard-gallery td").live("mouseenter", function(){
			var partjoin = (($j(this).index()-1) == current) && $j(".lizard-gallery td:eq("+($j(this).index()-1)+") img").hasClass("join");
			
			if(($j(this).index() != current) && !partjoin ){
				
					$j(this).stop().fadeTo(0,0.5);
				
			}
			
		}).live("mouseleave",function(){
			// the "current" is the one preceeding the hover one & it has class join
			var partjoin = (($j(this).index()-1) == current) && $j(".lizard-gallery td:eq("+($j(this).index()-1)+") img").hasClass("join");
			
			if(($j(this).index() != current) && !partjoin ){
					$j(this).stop().fadeTo(0,0.05);
			}
			
		});


		$j(".lizard-gallery td").live("click", function(){
			if($j(this).is(":animated") || $j("a", this).length){
				return;
			}
			
			
			current = $j(this).index();
			 
			var join = $j(".lizard-gallery td:eq("+current+") img").hasClass("join");
			
			var prevjoin = $j(".lizard-gallery td:eq("+(current-1)+") img").hasClass("join");
			
			if(prevjoin){
				current -= 1;
				join = true;
			}
			
			scrollImages(join);
		});

	}
	
	function scrollImages(join){
		
		var scroll = 0;
		for(var i=0; i < current; i++){
			scroll += imageWidths[i];
		}
		
		if(current == 0){
			$j("#navleft").stop().fadeTo(300, 0.3);
		} else if (current == ($j(".lizard-gallery td").length-1) || 
			($j(".lizard-gallery td:eq("+current+") img").hasClass("join") && 
				current+1 == ($j(".lizard-gallery td").length-1))){
				
			$j("#navright").stop().fadeTo(300, 0.3);
		} else {
			$j("#navleft, #navright").fadeTo(300,1);
		}
		
		if(!jQuery.browser.mobile){
		
			$j(".lizard-gallery").stop().animate({"left":-scroll});
			
			$j(".lizard-gallery td").stop().fadeTo(300, 0.05);
			
			var faded = ".lizard-gallery td:eq("+current+")";
			if(join){
				faded += ", .lizard-gallery td:eq("+(current+1)+")";
			}
			
			$j(faded).stop().fadeTo(300,1);
			
		} else {
			$j(".lizard-gallery").stop().css({"left":-scroll});
		}
	}
	
	
	// AJAX magic a.k.a. dynamic boner
	

	function supports_history_api() {
  		return !!(window.history && history.pushState);
	}
	if(!jQuery.browser.mobile){
		if(supports_history_api()){
			addClicker();
		}
	}
	
	function addClicker(){
		
		$j("#main-menu .main-menu-parent h2 a, #main-menu .main-menu-child h3 a, #main-menu .main-menu-link h4 a").click(function(e){
			e.preventDefault();
			if($j(this).attr("href") != window.location.href){
				swapContent($j(this).attr("href"));
				history.pushState(null, null, $j(this).attr("href"));
			}
			
		});
		
	}
	
	
	function swapContent(href, check){
		$j("#content").stop(true,true).fadeTo(500,0);
		$j("#loader").stop(true,true).fadeTo(500,1);
		$j("#content").load(href + " #content", function(){
			//complete
			$j("#content").stop(true,true).hide().fadeTo(500,1);
			$j("#loader").stop(true,true).fadeTo(500,0);
			current = 0;
			resetGallery();
			if(check){
    			checkMenus();
			}
			$j(window).bind("popstate", bindPopState);
			
			
		});
		
	}

	function bindPopState(){
		swapContent(window.location.href, true);
	}

}); 



