$(function() {
	// Open new window for external links
	$("a[rel='external']").attr("target", "_blank");
	
	// Open new window for terms and conditions
	$("a[rel='window']").click(function() {
		window.open(this.href+"?text", '_blank', 'height=500, width=480, scrollbars, resizable');
		return false;
	});
	
	// Open new window for printing
	$("a[rel='print']").attr("target", "_blank");
	
	/***** Rotating Banner *****/
	var bannerBackground = "#banner"; // Background element for image
	var bannerOverlay = "#banner-overlay"; // Overlay for transition + next image
	var bannerDelay = 3000; // Delay between transitions
	var bannerSpeed = 1000; // Time for transition to take effect
	var bannerCount = 2; // Next image to animate
	var bannerLimit = 5; // Total number of images
	var bannerImgArr = new Array(); // Array of banner images
	var bannerLite = false; // Remove banners containing text
	
	// Location aware banners
	if ($("body").hasClass("banner-lite"))
	{
		bannerLite = true;
	}
	if (bannerLite)
	{
		bannerImgArr[1] = "/images/banners/rotate-1.jpg";
		bannerImgArr[2] = "/images/banners/rotate-2.jpg";
		/*bannerImgArr[3] = "/images/banners/rotate-4.jpg";*/
		bannerImgArr[3] = "/images/banners/rotate-5.jpg";
		bannerLimit = 3;
	}
	else
	{
		bannerImgArr[1] = "/images/banners/rotate-1.jpg";
		bannerImgArr[2] = "/images/banners/rotate-12.jpg";
		bannerImgArr[3] = "/images/banners/rotate-13.jpg";
		bannerImgArr[4] = "/images/banners/rotate-2.jpg";
		bannerImgArr[5] = "/images/banners/rotate-4.jpg";
	}
	/*if ($("body").hasClass("banner-encore"))
	{
		bannerImgArr[5] = "/images/banners/encore.jpg";
	}*/
	
	function bannerRotate()
	{
		$(bannerOverlay).css("backgroundImage", "url("+bannerImgArr[bannerCount]+")").delay(bannerDelay).animate({
			"opacity" : "1"
		}, bannerSpeed, function() {
			$(bannerBackground).css({
				"backgroundImage" : "url("+bannerImgArr[bannerCount]+")",
				"backgroundPosition" : "center"
			});
			$(this).css("opacity", "0");
			if (bannerCount<bannerLimit)
			bannerCount++;
			else
			bannerCount=1;
			bannerRotate();
		});
	}
	/***************************/
	
	/***** Home Tabs *****/
	var tabList = "#tabs li"; // List of tabs
	var tabCount = $(tabList).length; // How many tabs are there?
	var tabDelay = 4000; // Time between transitions
	var tabSpeed = 1000; // Length of transition
	var tabOnMatrix = "-1, 0, 0, 1, 0, 0";
	var tabOnBkg = "/images/home-tabs-flip.png";
	var tabOffMatrix = "1, 0, 0, 1, 0, 0";
	var tabOffBkg = "/images/home-tabs.png";
	var tabIndex = null; // Tab index for random animation
	
	function rotateThis(obj, delay)
	{
		$(obj).delay(delay).animate({
			"transform" : "matrix("+tabOnMatrix+")"
		}, tabSpeed/8, function() {
			$(this).css("backgroundImage", "url("+tabOnBkg+")").animate({
				"transform" : "matrix("+tabOffMatrix+")"
			}, tabSpeed/8, function() {
				$(this).animate({
					"transform" : "matrix("+tabOnMatrix+")"
				}, tabSpeed/8, function() {
					// Rest period...
					$(this).delay(tabDelay).animate({
						"transform" : "matrix("+tabOffMatrix+")"
					}, tabSpeed/8, function() {
						$(this).animate({
							"transform" : "matrix("+tabOnMatrix+")"
						}, tabSpeed/8, function() {
							$(this).css("backgroundImage", "url("+tabOffBkg+")").animate({
								"transform" : "matrix("+tabOffMatrix+")"
							}, tabSpeed/8, function() {
								rotateThis($(this), 4000); // Fire function again
							});
						});
					});
				});
			});
		});
	}
	
	function tabRotate()
	{
		rotateThis($(tabList).eq(0), 0000);
		rotateThis($(tabList).eq(1), 1000);
		rotateThis($(tabList).eq(2), 2000);
		rotateThis($(tabList).eq(3), 3000);
	}
	/*********************/
	
	/***** Photo Gallery *****/
	var myGallery = "#house-photo-gallery"; // Parent element for gallery images
	var myGalleryItem = "li img"; // Instance of image (inside parent)
	var myGalleryExtract = "longdesc"; // Where is the image source?
	var myGalleryDisplay = "#banner"; // Where to place the new image?
	var myGalleryDesc = "title"; // Description of image
	var myGalleryDescTarget = "#controls span"; // Where is the description going?
	var myGalleryPos = 1; // Current position
	var myGalleryTotal = $(myGallery+" "+myGalleryItem).length; // Total no. of images
	
	// Swap photo on click
	$(myGallery+" "+myGalleryItem).click(function() {
		myGalleryPos = $(this).attr("class").substr(6);
		$(myGalleryDisplay).css("backgroundImage", "url('"+$(this).attr(myGalleryExtract)+"')");
		$(myGalleryDescTarget).html($(this).attr(myGalleryDesc));
	});
	
	// Load source images as background for each element
	$(myGallery+" "+myGalleryItem).each(function() {
		$(this).css("backgroundImage", "url(\""+$(this).attr("longdesc")+"\"");
	});
	
	// Monitor buttons
	var myGalleryLeft = "#controls-left"; // Left button
	var myGalleryRight = "#controls-right"; // Right button
	$(myGalleryLeft).click(function() {
		if (myGalleryPos>1)
		{
			myGalleryPos--;
			var myGalleryNext = $(myGallery+" "+myGalleryItem).eq(myGalleryPos-1);
			$(myGalleryDisplay).css("backgroundImage", "url('"+$(myGalleryNext).attr(myGalleryExtract)+"')");
			$(myGalleryDescTarget).html($(myGalleryNext).attr(myGalleryDesc));
		}
		return false;
	});
	$(myGalleryRight).click(function() {
		if (myGalleryPos<myGalleryTotal)
		{
			myGalleryPos++;
			var myGalleryNext = $(myGallery+" "+myGalleryItem).eq(myGalleryPos-1);
			$(myGalleryDisplay).css("backgroundImage", "url('"+$(myGalleryNext).attr(myGalleryExtract)+"')");
			$(myGalleryDescTarget).html($(myGalleryNext).attr(myGalleryDesc));
		}
		return false;
	});
	
	/*************************/
	
	/***** HOME PLANS *****/
	// Switch 'Plans' link for first lightbox image link
	var plansElement = "#lightbox-gallery a.lightbox-plans"; // Where is it?
	var plansElementCount = $(plansElement).length; // How many are there? (check if it exists)
	
	if (plansElementCount>=1)
	{
		// Copy first image to target off 'Plans' link
		$("#home-plans a").attr("href", $(plansElement).first().attr("href"));
		
		// Ditch the duplicate
		$(plansElement).first().remove();
	}
	/**********************/
	
	/***** HOME LOCATION *****/
	// Switch 'Location' link for first lightbox image link
	var locationElement = "#lightbox-gallery a.lightbox-location"; // Where is it?
	var locationElementCount = $(locationElement).length; // How many are there? (check if it exists)
	
	if (locationElementCount>=1)
	{
		// Copy first image to target off 'Plans' link
		$("#home-location a").attr("href", $(locationElement).first().attr("href"));
		
		// Ditch the duplicate
		$(locationElement).first().remove();
	}
	/**********************/
	
	// Initialise
	if (!$("body").hasClass("house") && !$("body").hasClass("customise"))
	{
		$(bannerBackground).css({
			"backgroundImage" : "url(/images/banners/rotate-1.jpg)",
			"backgroundPosition" : "center"
		}).html("<div id=\"banner-overlay\"></div>");
		$(bannerOverlay).css("opacity", "0");
		bannerRotate();
		
		if (!$.browser.msie)
		tabRotate();
	}
	
	/***** PRINT BUTTON *****/
	var printSrc = null;
	
	// Have to use mousedown to save image before lightbox disappears
	// Can't open window here because browsers think it's SPAM
	$("#print").live("mousedown", function() {
		printSrc = $("#lightbox-image").attr("src");
	});
	$("#print").live("mouseup", function() {
		window.open("/print.html?p="+encodeURIComponent(printSrc), '_blank', 'height=500, width=480, scrollbars, resizable');
		return false;
	});
	/************************/
});
