var pages = ["about-the-walk","find-us","beacon-hill", "kings-chapel", "government-center", "old-state-house", "financial-district", "custom-house", "rose-kennedy-greenway", "long-wharf"];

function loadPage (page)
{
	if ( $.inArray(page, pages) >= 0 ) window.location = page + ".html";
}

function loadPageAjax (page)
{
	if ( $.inArray(page, pages) >= 0 ) 
	{
		$("ul.locations li a span").removeClass("active");

		$.get(page + ".html", function(data){
			$('div#bd').html($('div#bd', data).children());

			if ( !currentPage )
			{
				showPage();
			} else {
				currentPage = null;

				showPage(page);
			}
		});
	}
}

function loadPreviousPage ()
{
	if ( currentPanel > 1 )
	{
		showPanel(currentPanel - 1);
	} else {
		var index = $.inArray(currentPage, pages);

		if ( index >= 0 )
		{
			index - 1 < 0 ? index = pages.length - 1 : index--;

			window.location = pages[index] + ".html";
		}
	}
}

function loadNextPage ()
{
	if ( $("div.content div.panel").length > currentPanel )
	{
		showPanel(currentPanel + 1);
	} else {
		var index = $.inArray(currentPage, pages);

		if ( index >= 0 )
		{
			index + 1 >= pages.length ? index = 0 : index++;

			window.location = pages[index] + ".html";
		}
	}
}

var currentPage;

function showPage (page)
{
	if ( !currentPage )
	{
		if ( !page )
		{
			currentPage = "beacon-hill";

			$("#w2c-flash").height(260);

			$("#bd").fadeIn("1000", function(){

				showLocations();

				$("div.content").fadeIn("250", function(){

					$("div.content div.panel:first").fadeIn("300");

					$("#ft").slideDown("300");

					initPage();
				});
			});
		} else {
			currentPage = page;

			$("div.content div.panel:not(:first)").hide();

			initPage();
		}
	}
}

function initPage ()
{
	$("ul.panels li a").click(panelTabHandler);

	$("div.thumbnail a").click(showOverlayHandler);
	$("div.thumbnail-wide a").click(showOverlayHandler);

	$("div.previous a").click(previousPageHandler);
	$("div.next a").click(nextPageHandler);

	$("ul.locations li a[href*="+currentPage+"] span").addClass("active");
	
	$("div.thumbnail a").hover(
		function() { $(this).addClass("spanHover_ovr"); },
		function() { $(this).removeClass("spanHover_ovr"); }
	);

	$("div.thumbnail-wide a").hover(
		function() { $(this).addClass("spanHover_ovr"); },
		function() { $(this).removeClass("spanHover_ovr"); }
	);

	panelTextRollup(1);
}

function showLocations ()
{
	$("ul.locations li:not(:visible):first").fadeIn("250", showLocations);
}

var currentPanel = 1;
var changingPanel = false;

function showPanel (panel)
{
	changingPanel = true;

	if ( $("div#panel-" + panel).length == 1 )
	{
		if ( panel > currentPanel )
		{
			$("ul.panels li a").parent().removeClass("active");
			$("ul.panels li a[href$="+panel+"]").parent().addClass("active");

			$("div#panel-" + panel).fadeIn("1000", function(){
				panelTextRollup(panel);

				panelTextRollup(currentPanel);
				$("div#panel-" + currentPanel).hide();

				currentPanel = panel;
			});
		} else if ( panel < currentPanel ) {
			$("ul.panels li a").parent().removeClass("active");
			$("ul.panels li a[href$="+panel+"]").parent().addClass("active");

			$("div#panel-" + panel).show();
			panelTextRollup(panel);

			$("div#panel-" + currentPanel).fadeOut("1000", function(){
				panelTextRollup(currentPanel);
			});

			currentPanel = panel;
		} else {
			changingPanel = false;
		}
	} else {
		changingPanel = false;
	}
}

function panelTextRollup (panel)
{
	if ( $("div#panel-" + panel + " div.text").length > 0 )
	{
		$("div#panel-" + panel + " div.text").each(function (i) {
			if ( $(this).parent().parent().is("div.stack") )
			{
				var maxHeight = 233;
				var cssHeight = 238;
			} else if ( $(this).parent().parent().is("div.stack-single") ) {
				var maxHeight = 253;
				var cssHeight = 258;
			}

			if ( $(this).height() > maxHeight )
			{
				$(this).height(cssHeight);

				if ( $(this).children("div.more").length == 0 )
				{
					$(this).append('<div class="more"><a href="#">more</a></div>');

					$("div.panel div.more a").click(panelMoreHandler);
				} else {
					$(this).children("div.more").show();
				}
			} else {
				$(this).css("height", null);
			}
		});
	}
}

function showOverlay (value)
{
	if ( $("div#bd div.overlay").length == 0 )
	{
		var overlay = '<div class="overlay">\n' + 
					'\t<div class="dimmer">&nbsp;</div>\n' + 
					'\t<div class="window">\n' + 
					'\t\t<div class="close"><a href="#">X</a></div>\n' + 
					'\t\t<div class="inner"></div>\n' + 
					'\t</div>\n' + 
					'</div>\n';

		$('div#bd').append(overlay);

		$('div#bd div.overlay div.dimmer').click(closeOverlayHandler);
		$('div#bd div.overlay div.close a').click(closeOverlayHandler);
	}

	$.ajax({
		type: 'GET',
		url: 'overlay/'+value+'.html',
		success: function(data){
			$('div#bd div.overlay div.inner').html(data);

			$(window).resize(resizeOverlay);
			$('div#bd div.overlay').show();

			$('div#bd div.overlay').width($(document).width());
			$('div#bd div.overlay').height($(document).height());

			$('div#bd div.overlay div.window').slideDown("slow", function(){
				$('div#bd div.overlay').width($(document).width());
				$('div#bd div.overlay').height($(document).height());
			});

			if ( ( $('div#bd div.overlay div.overlay-flash').length == 1 ) && typeof(overlayInit) != 'undefined' ) overlayInit();
		}
	});
}
function resizeOverlay (event)
{
	$('div#bd div.overlay').width($(document).width());
	$('div#bd div.overlay').height($(document).height());
}

function showOverlayHandler (event)
{
	event.stopPropagation();

	if ( $(event.target).is("a") )
	{
		var imgsrc = $(event.target).children("img:first").attr("src");
	} else if ( $(event.target).parent().is("a") ) {
		var imgsrc = $(event.target).parent().children("img:first").attr("src");
	}

	var value = imgsrc.replace(/^images\/thumb\/([a-zA-Z0-9-_]+).jpg$/,"$1");
	showOverlay(value);

	return false;
}

function closeOverlayHandler (event)
{
	event.stopPropagation();

	$('div#bd div.overlay div.window').slideUp("normal", function () {
		$('div#bd div.overlay').remove();
	});

	return false;
}

function panelTabHandler (event)
{
	event.stopPropagation();

	if ( $(event.target).is("a") )
	{
		var href = $(event.target).attr("href");
	} else if ( $(event.target).parent().is("a") ) {
		var href = $(event.target).parent().attr("href");
	}

	showPanel(href.replace(/^.*([0-9]+)$/,"$1"));

	return false;
}

function panelMoreHandler (event)
{
	event.stopPropagation();

	$(event.target).parent().hide();
	$(event.target).parent().parent().css("height",null);

	return false;
}

function previousPageHandler (event)
{
	event.stopPropagation();

	loadPreviousPage();

	return false;
}

function nextPageHandler (event)
{
	event.stopPropagation();

	loadNextPage();

	return false;
}
