var speed = 1000;
(function($) {
	var overlayClose = function(event, withOpen) {
		$("#overlay").fadeOut(speed/2, function() {
			$("#overlay").data("isOpened", false);
			if(withOpen) overlayOpen(event, withOpen);
		});
	};

	var overlayOpen = function(event, target) {
		var src = $("img", target).attr("src");
		src = src.replace("thumb", "popout");
		var alt = $("img", target).attr("alt");
		var html = '<img src="'+src+'" alt="'+alt+'" />';
		if($("img", target).attr("title")) {
			var title = $("img", target).attr("title");
			html = "<h1>"+title+"</h1>"+html;
		}
		$("#overlay .inner_content").html(html);
		var f = function() {
			$("#overlay").css({visibility: "hidden", display: "block" });
			$("#overlay").css({marginLeft: "-"+($("#overlay").width()/2)+"px", marginTop: "-"+($("#overlay").height()/2)+"px" });
			$("#overlay").css({visibility: "visible", display: "none" }).fadeIn(speed/2, function() {
				$("#overlay").data("isOpened", true);
			});
		};
		setTimeout(f, 100);
	};

	var activatePage = function() {
		$(".tab_navigation li").bind("click", function() {
			if(!$(this).hasClass("current")) {
				$(".tab_navigation li.current").removeClass("current");
				$(this).addClass("current");
				var index = $(this).index()+1;
				$(".tab_content.current").stop().fadeOut(speed/2).removeClass("current");
				$(".tab_content.content_"+index).stop().fadeIn(speed/2).addClass("current");
			}
		});
		$(".tab_navigation li:first-child").addClass("current");
		$(".tab_content:first-child").addClass("current");

		$(".plans .tab_navigation li").bind("click", function() {
			var index = $(this).index()+1;
			$(".image_panel li.current").stop().fadeOut(speed/2).removeClass("current");
			$(".image_panel li.image_panel_"+index).stop().fadeIn(speed/2).addClass("current");
		});
		$(".image_panel li:first-child").addClass("current");

		if($("#spec_floorplans li").length>0) {
			$("#spec_floorplans").data("current", 0);
			$("#spec_floorplans li").hide();
			$("#spec_floorplans li:first-child").show();
			$("#spec_floorplan_list li:first-child").addClass("current");
			var timeout = 3500;
			var timeout_var = false;
			var fadechange = function(next) {
				if(typeof(next)=="undefined") {
					next = $("#spec_floorplans").data("current")+1;
					if(next>=$("#spec_floorplans li").length) {
						next = 0;
					}
				}
				$("#spec_floorplan_list li.current").removeClass("current");
				$($("#spec_floorplans li").get($("#spec_floorplans").data("current"))).fadeOut(speed);

				$($("#spec_floorplan_list li").get(next)).addClass("current");
				$($("#spec_floorplans li").get(next)).fadeIn(speed, function() {
					$("#spec_floorplans").data("current", next);
					clearTimeout($("#spec_floorplans").data("timeout_var"));
					$("#spec_floorplans").data("timeout_var", setTimeout(fadechange, timeout));
				});
			};

			$("#spec_floorplan_list li").click(function() {
				clearTimeout($("#spec_floorplans").data("timeout_var"));
				fadechange($(this).index());
			});

			$("#spec_floorplans,#spec_floorplan_list").fadeIn(speed/2, function() {
				$("#spec_floorplans").data("timeout_var", setTimeout(fadechange, timeout));
			});

		}

		$('#overlay .close').live("click", overlayClose);

		$('.popout').bind("click", function(e) {
			if($("#overlay").data("isOpened")==true) {
				overlayClose(e, this);
			} else {
				overlayOpen(e, this);
			}
		});

		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);
			}
		}
		$('.popout').each(function() {
			var src = $("img", this).attr("src");
			src = src.replace("thumb", "popout");
			$.preLoadImages(src);
		});

		$("#award").animate({left: "390px"}, speed);
	};

	$(window).load(function() {
		var height = 675;
		var actual_height = "100%";
		var targetHeight = $("body").height()<height?height+"px":"100%";
		$("#wrapper").animate({height: targetHeight }, speed, function() {
			if($.browser.msie) {
				$(this).css({height: actual_height});
			} else {
				$(this).css({minHeight: height+"px", height: actual_height});
			}
		})
		var current_bg = Math.floor(Math.random()*4);
		$($(".page_bg").get(current_bg)).fadeIn(speed, function() {
			$("#content").animate({left: 0}, speed, function() {
				activatePage();
			});
		});


		$("#menu a").click(function(e) {
			$("#menu a.current").removeClass("current");
			$(this).addClass("current");
			var src = $(this).attr("href")+".php";
			var classsrc = $(this).attr("href")
			var new_bg = current_bg;
			do {
				new_bg = Math.floor(Math.random()*4)
			} while(current_bg==new_bg);
			if($.browser.msie) {
				$($(".page_bg").get(current_bg)).hide();
				$($(".page_bg").get(new_bg)).show();
			} else {
				$($(".page_bg").get(current_bg)).fadeOut(speed);
				$($(".page_bg").get(new_bg)).fadeIn(speed);
			}
			current_bg = new_bg;
			var loadContent = function() {
				$("#content").css({left:"-3000px"});
				$("#content").attr("class", classsrc);
				$("#content").load("content/"+src, function() {
					$("#content").stop(true, true).delay(100).animate({left: 0}, speed,function() {
						activatePage();
					});
				});
			};
			if($("#overlay").data("isOpened")==true) {
				overlayClose(e);
			}
			$("#content").stop(true, true).animate({left:"3000px"}, speed, 'easeInBack', loadContent);
			return false;
		});

	});
})(jQuery);

