var ie6 = $.browser.msie && $.browser.version < 7;

var notWhitespace = /\S/

function cleanWhitespace(node) {
    for (var x = 0; x < node.childNodes.length; x++) {
        var childNode = node.childNodes[x]
        if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
            // that is, if it's a whitespace text node
            node.removeChild(node.childNodes[x])
            x--
        }
        if (childNode.nodeType == 1) {
         // elements can have text child nodes of their own
         cleanWhitespace(childNode)
        }
    }
}

$(function(){
    cleanWhitespace(document);
});


// TopNav - Dropdown Animation
$(document).ready(function(){
    // Ie css shortcoming fixes
    $("ul#topnav li:last-child").css("margin-right", 0);
    $("ul#topnav li ul li:last-child a").css("border-bottom-width", 0);

    var nav_delay_timeout = null;

	$("#topnav li").hover(
		mouseover = function () {	
		    var li = $(this);	
			queue = li.find("ul").queue("fx")
			if (queue && queue.length <= 1)
			nav_delay_timeout = window.setTimeout(function() {
			    li.find("ul").slideDown(250);
			}, 100);
			if (ie6) li.addClass("hover");
	    },
		mouseoout = function () {	
		    window.clearTimeout(nav_delay_timeout);	
	    	$(this).find("ul").slideUp(250);
			if (ie6) $(this).removeClass("hover");
	    }
	);
});

// Scrollbar
$(function() {
    if ($('.scrollbar')) {
	var scrollable = $('.scrollbar').jScrollPane({animateTo:true, dragMaxHeight:73, dragMinHeight:73, scrollbarWidth:9, scrollbarDragWidth:9, scrollbarMargin:15});

    $(".scrollbar a[href^='#']").bind('click',
        function() {
            var bookmark = $(this);
            var href = bookmark.attr('href');
            href = href.replace("#", "");
            scrollable[0].scrollTo("a[name='"+href+"']");
            return false;            
        });
   }
});

// Gallery
$(function() {
if ($("body#t5").length > 0) {

	var canvas_width = 0;
	
	$("#gallery .canvas img").each(function(i, elem) { $(elem).wrapAll("<a href=\"#\" class=\"item\"></a>"); });
	$("#gallery .canvas a").each(function(i, elem) { 
		canvas_width += $(elem).outerWidth();
	});
	
	$("#gallery .canvas").css({'width':canvas_width+1+"px"});
	$("#gallery").jScrollHorizontalPane({	scrollbarHeight:19, scrollbarMargin:0, scrollbarDragHeight:12, scrollbarDragTop:6, dragMaxWidth:60, 
														dragMinWidth:60, showArrows:true });
	
	// Image Click Behavior
	$("#gallery .canvas a").click(function() {
		$("#gallery .canvas a").removeClass("selected");
		$(this).addClass("selected");
		
		img = $(this).find("img");
		large_img = $("img.large");
		backbuffer_img = $("img.backbuffer");

		if (backbuffer_img.length > 0) {
			large_img.fadeOut(500);
			backbuffer_img.attr('src', img.attr('src'));
			backbuffer_img.fadeIn(500);
			
			backbuffer_img.removeClass("backbuffer")
			backbuffer_img.addClass("large")
			
			large_img.removeClass("large")
			large_img.addClass("backbuffer")
		}
		else {
			// Create back buffer
			large_img.attr('src', img.attr('src'));
			large_img.after("<img class=\"backbuffer\" style=\"display:none;\" src="+large_img.attr('src')+" />")
			large_img.fadeIn(500);
		}
	
		
		$(".caption p").fadeOut(200, function(){$(this).text(img.attr("alt")).fadeIn(200)})
		return false;
	});
	
	// Select the first image
	$("img.large").hide();
	$("#gallery .canvas a:first").trigger("click")
}
});

// Promo Images
$(document).ready(function(){
    // IE css fixes
    $("#promo img").css("position", "absolute");
	if ($("body.photopromo").length > 0 && $("#promo img").length > 0) {

	// Init
		$("#promo img").hide();
	
		var promo_current = 0
		var promo_count = $("#promo img").length
		var promo_current_img = $($("#promo img")[promo_current]);
		promo_current_img.show();
		var promoInterval = null;
	
		$("#promo .title .text").text(promo_current_img.attr("alt"))
	
		$("#promo .next").click(promo_next = function(){
			promoFadeOutCurrent();
			
			if (promo_current == promo_count - 1)
				promo_current = 0;
			else
				promo_current++;
		
			promoFadeInCurrent();
		
			return false;	
		})
	
		$("#promo .previous").click(promo_previous = function(){
			promoFadeOutCurrent();
			
			if (promo_current == 0)
				promo_current = promo_count - 1;
			else
				promo_current--;
			
			promoFadeInCurrent();
		
			return false;	
		})
		
		promoFadeOutCurrent = function() {
			setPromoInterval();
			$($("#promo img")[promo_current]).fadeOut(500);
		}
		
		promoFadeInCurrent = function() {
			promo_current_img = $($("#promo img")[promo_current])
			$("#promo .title .text").fadeOut(200, function(){
			    if (promo_current_img.parent("a").length > 0)
			        $(this).html("<a href=\""+promo_current_img.parent("a").attr("href")+"\">"+promo_current_img.attr("alt")+"</a>").fadeIn(200)
			    else
			        $(this).text(promo_current_img.attr("alt")).fadeIn(200)
			})
			promo_current_img.fadeIn(500);
		}
		
		setPromoInterval = function() {
			if (promoInterval) clearInterval(promoInterval);
			promoInterval = setInterval("promo_next()", 5000);
		}
	
		setPromoInterval();
	}
});

// Promo Tabs
$(document).ready(function(){

	$("#promo > .tabs a").click(function(){
		// Get tab index
		index = $("#promo ul.tabs li").index(this.parentNode) + 1

		// Reset
		$("#promo > div.content").hide()
		$("#promo > .tabs li").removeClass("current")
		
		// Set current tab
		$(this).parent().addClass("current")
		$("#promo > div.content:nth-child("+(index+1)+")").show();
		
		$("#promo ul.tabs li").removeClass("previous").removeClass("next");
		$("#promo ul.tabs li:nth-child("+(index-1)+")").addClass("previous");
		$("#promo ul.tabs li:nth-child("+(index+1)+")").addClass("next");
		
		return false;
	})
	$("#promo ul.tabs li:first-child a").trigger("click");
});

// Garden Map
jQuery.fn.garden_map = function(settings) {
    settings = jQuery.extend(
		{
			map : $("#m_garden_overview")
		}, settings
	);
	
	var garden_map_image = $(this);
    var old_garden_map_image_src = garden_map_image.attr("src");
    
	return this.each(function(){
	    settings.map.find("area").mouseover(function() {
	        garden_map_image.attr("src", "/images/gardens/" + this.id + "RO.jpg ");
	    });
	    
	    settings.map.find("area").mouseout(function() {
	        garden_map_image.attr("src", old_garden_map_image_src);
	    });
	});
}

$(document).ready(function(){
    $("#garden_overview").garden_map();
})

// Manion Map
jQuery.fn.mansion_map = function(settings) {
    settings = jQuery.extend(
		{
			
		}, settings
	);
	

	return this.each(function(){
	
	var image = $(this);
	    image.hover(function() {
	        image.attr("src", image.attr("src").replace(".", "_RO."));
	    },
	    function() {
	        image.attr("src", image.attr("src").replace("_RO", ""));
	    });
	});
}

$(document).ready(function(){
    $("img.mansion").mansion_map();
})


// T7 - Gallery
$(function() {
if ($("body#t7").length > 0) {

	var canvas_width = 0;
	var images = $("#photos img");
	var number_list = $("#photo_list ul");
	
	images.css({'display':'none'});
	//images[0].css({'display':'block'});
	
	// Add Numbers
	for (i = 0; i < images.length; i++) {
	    number_list.append("<li><a href=\"" + images[i].src + "\">" + (i+1) + "</a></li>");
	}
	
	var numbers = number_list.find("li");
	//numbers[0].addClass("current");
	
	
	
	// Image Click Behavior
	$(numbers).click(function() {
	    var index = numbers.index($(this));
	    var image = images[index];
	    var number = $(this);
	    
		numbers.removeClass("current");
		number.addClass("current");
		
		
		
		large_img = $("img.large");
		backbuffer_img = $("img.backbuffer");

		if (backbuffer_img.length > 0) {
			large_img.fadeOut(500);
			backbuffer_img.attr('src', image.src);
			backbuffer_img.fadeIn(500);
			
			backbuffer_img.removeClass("backbuffer")
			backbuffer_img.addClass("large")
			
			large_img.removeClass("large")
			large_img.addClass("backbuffer")
		}
		else {
		    // Create image canvas
		    $("#photos").append("<img class=\"large\" style=\"display:none;\" src="+image.src+" />")
		    large_img = $("img.large");
		    
			// Create back buffer
			large_img.after("<img class=\"backbuffer\" style=\"display:none;\" src="+image.src +" />")
			large_img.fadeIn(500);
		}
	
		$(".caption p").fadeOut(200, function(){$(this).text(image.alt).fadeIn(200)})
		return false;
	});
	
	// Select the first image
	$(numbers[0]).trigger("click")
}
});

