(function ($) {

	var loaded = false;

	var cache = {};

	function initialize_map() {
		//$("map_canvas")
		var latlng = new google.maps.LatLng(53.913439,-1.968269);

		var myOptions = {
			zoom: 12,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};

		var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	}

	function supports_history_api() {
		return !!(window.history && history.pushState);
	}

	function setContent(data) {
		//console.log(JSON.stringify(cache));
		$("#content").html(data.html);
		document.title = data.title;
	}

	function getContent(link) {
		if (cache[link]) {
			//console.log("cached");
			setContent(cache[link]);
		} else {
			var data = {
				url: link,
				ajax_controller_request: "true"
			};

			$.getJSON("index.php", data, function (result) {
				cache[link] = result;
				setContent(result);
			});
		}
	}

	function pushHistory(event) {
		if (!supports_history_api()) return;

		var link = $(this).attr("href");
		history.pushState(null, null, link);

		getContent(link);

		event.preventDefault();
	}

	function loadBanner() {
		var images =
			'<img src="assets/DSCF0213.jpg" />' +
			'<img src="assets/DSCF0014s.jpg" />' +
			//'<img src="assets/P8161535.jpg" />' +
			'<img src="assets/P1010010.jpg" />' +
			'<img src="assets/1000325-44.jpg" />' +
			'<img src="assets/P8161521.jpg" />' +
			'<img src="assets/DSCF0015.jpg" />' +
			'<img src="assets/1000325-10.jpg" />';

		$(".banner").append(images);
		$(".banner").cycle({ fx: "fade", timeout: 8000 });
	}

	$(document).ready(function () {
		var current_link = location.pathname.split("/").pop() || "home";
		cache[current_link] = {
			html: $("#content").html(),
			title: document.title
		};
		//console.log(JSON.stringify(cache));

		$("#nav").on("click", "a", function (e) {
			var parent_ul = $(this).parent().parent();

			if (parent_ul.parent().hasClass("parent_nav")) {
				parent_ul.css("display", "none");
			}
			pushHistory.call(this, e);
		});

		$("#accordion").on("click", "a", pushHistory);
		$(".logo").on("click", "a", pushHistory);

		$('footer').on("click", "a", function (e) {
			$('html, body').animate({ scrollTop: 0 }, 0);
			pushHistory.call(this, e);
		});

		$("#accordion").accordion({ autoHeight: true });

		loadBanner();

		//initialize_map();

		$(".parent_nav").hover(
			function () {
				$(this).children("ul").css("display", "block");
			},
			function () {
				$(this).children("ul").css("display", "none");
			});

		$("#content").on("click", ".lightbox", function (e) {
			e.preventDefault();
			$(this).parent().parent().children().lightBox();
			$(this).click();
		});
	});

	$(window).bind("popstate", function () {
		if (!loaded) {
			loaded = true;
			return;
		} else {
			var link = location.pathname.split("/").pop() || "home";

			getContent(link);
		}
	});

})(jQuery);

