var dialog, dialogMain, dialogInner;
function showPage(address, title) {
	$.get(address+"?ajax=true", function(output) {
		if(!dialog) {
			dialog = $("<div class='overlay'><div class='dialog'><h2><span class='heading'></span> <a class='close'><span>&nbsp;</span></a></h2><div class='dialogBox'><div class='dialogInner'></div></div></div></div>").appendTo(document.body);
			dialogMain = dialog.find(".dialog");
		}
		dialogMain.css({
			marginTop: $(window).height()/2 - dialogMain.height()/2
		});
		dialog.find("h2 .heading").html(title);
		dialog.find(".dialogInner").html(output);
		dialog.find(".close").click(function() {
			dialog.remove();
			dialog = null;
		});
	});
}
function goToInstitute(name) {
	goToSlide("institutions");
	$(".billboard .header:first .items a[rel="+name+"]").click();
}
function goToSlide(slide) {
	$("body, html").stop().animate({
		scrollTop: $("#"+slide).offset()['top']
	},1300);
};
window.members = {
	"uc": { 
		address: "University of Canberra, Kirinari St, Bruce ACT",
		website: "http://www.canberra.edu.au/openday"
	},
	"acu": {
		address: "Australian Catholic University, 223 Antill St, Watson ACT",
		website: "http://www.acu.edu.au/"
	},
	"cit": {
		address: "Canberra Institute of Technology, Haydon Drive, Bruce ACT",
		website: "http://cit.edu.au/"
	},
	"adfa": {
		address: "Australian Defence Force Academy, Northcott Drive, Canberra ACT",
		website: "http://www.openday.adfa.edu.au/"
	},
	"anu": {
		address: "Australian National University, Union Building, University Avenue, Canberra ACT",
		website: "http://www.anu.edu.au/OpenDay"
	}
};
$(function() {

	// Handle coolness
	var slideHeight = 769;
	var slideWidth;
	var slideID = 0;
	var lastSlideID = -1;
	var balloonTarget = [0,0];
	var balloonTargetChanged = false;
	var balloonAnimating = true;
	var clouds = [];
	if(navigator.userAgent.match(/(iPad|iPhone|iPod)/i) == null) {
		window.updateBackgrounds = function() {
			slideID = Math.round($(window).scrollTop()/slideHeight);
			var scrollFactor = $(window).scrollTop()/($("#tod").height()-slideHeight)
			$(document.body).css({
				"background-position": "0% " + (-10+scrollFactor*30) +"%"
			});
			$("#hill, #hillOuter").css({
				"background-position": "50% " + (2*slideHeight+0.72*slideHeight) + "px"
			});
			$("#blackmountain").css({
				"background-position": "50% " + (2*slideHeight+480+100*scrollFactor) + "px"
			});
			
			// big balloon and navigation
			if(slideID != lastSlideID) {
				lastSlideID = slideID;
				var pos = [[678,171], [740,1000], [670,1600], [850,2400]][slideID];
				if(pos) {
					balloonTarget = pos;
					balloonTargetChanged = true;
				}
				
				$("#main-nav").stop().animate({
					"top": Math.round($(window).scrollTop()/slideHeight) * slideHeight + 40
				},800);
			}
			
			// clouds y
			for(var m in clouds) {
				if(clouds[m].isUnder) {
					slideTop = Math.round(clouds[m].originalY/slideHeight)*slideHeight;
					offset = clouds[m].originalY*0.3*scrollFactor + clouds[m].originalY*0.9;
					$(clouds[m]).css("top", offset);
				}
			}
			
			// small balloon
			$("#smallballoon").css({
				top: 1800 + 300*scrollFactor
			});
			// birds
			$("#birds").css({
				top: 2100 - 350*scrollFactor
			});
		}
	
		// clouds x
		$(".cloud").each(function() {
			clouds.push(this);
			var x = $(this).position()['left'];
			var y = $(this).position()['top'];
			this.originalY = y;
			var self = $(this);
			var dist = 0;
			if($(this).hasClass("small")) {
				dist = 20;
			} else if($(this).hasClass("medium")) {
				dist = 30;
			} else if($(this).hasClass("large")) {
				dist = 50;
			}
			this.isUnder = $(this).hasClass("under");
			var i = 0;
			var cloudTimer = setInterval(function() {
				i++;
				self.css("left", x - dist/2 + Math.sin(i/dist*0.4)*dist)
			},Math.random()*20 + 20);
		});
		
		
		// air balloon timer
		var m = 0;
		var balloonTimer = setInterval(function() {
			if(balloonTargetChanged) {
				m = 0;
				// pause hover animation
				balloonAnimating = false;
				balloonTargetChanged = false;
				$("#airballoon").stop().animate({
					top: balloonTarget[1],
					left: balloonTarget[0]
				}, 2000, function() {
					balloonAnimating = true;
				});
			}
			if(balloonAnimating) {
				m++;
				$("#airballoon").css({
					"top": balloonTarget[1] + Math.sin(m/100)*20,
					"left": balloonTarget[0] + Math.sin(m/60)*10
				});
			}
		},20);
		
		// Update stuff on scroll and resize;
		$(window).scroll(function() {
			updateBackgrounds();
		});
		$(window).resize(function() {
			updateBackgrounds();
			var newTop = slideID*slideHeight;
			$(window).scrollTop(newTop);
			$("#getting-around").css({
				'height': $(window).height() > slideHeight ? $(window).height() : slideHeight
			});
		}).resize();
	} else {
		$("body").addClass("mobileversion");
	}
	

	// institutions listing
	$(".institutionsTab .scrollPanel").addClass("jsScrolling").each(function() {
		var panel = $(this);
		$(this).find(".scrollItem").hide().filter(":first").show();
		$(this).find(".header .items a").click(function() {
			var member = this.getAttribute("rel");
			window.selectedMember = member;
			
			// show the correct panel
			panel.find(".scrollItem").hide().filter("[rel="+member+"]").show();
			
			// update links on the signpost
			$(".signpost [rel=website]").attr("href",members[member].website);
		});
	});
	$(".institutionsTab .header:first a:first").click();
	
	// Nav items
	$("#main-nav a").click(function() {
		goToSlide(this.getAttribute("rel"));
		return false;
	});
	
	// Google map
	window.showMap = function(location) {
		var map = $("#map").css({"width":800,"height":400});
		var options = {
			markers: [
				{
					address: members.uc.address,
					icon: {
						image:              "/design/main/graphics/marker1.png",
						shadow:             false,
						iconsize:           [57, 37],
						shadowsize:         false,
						iconanchor:         [28, 37],
						infowindowanchor:   [8, 2]
					}
				},
				{
					address: members.acu.address,
					icon: {
						image:              "/design/main/graphics/marker2.png",
						shadow:             false,
						iconsize:           [57, 37],
						shadowsize:         false,
						iconanchor:         [28, 37],
						infowindowanchor:   [8, 2]
					}
				},
				{
					address: members.cit.address,
					icon: {
						image:              "/design/main/graphics/marker3.png",
						shadow:             false,
						iconsize:           [57, 37],
						shadowsize:         false,
						iconanchor:         [28, 37],
						infowindowanchor:   [8, 2]
					}
				},
				{
					address: members.adfa.address,
					icon: {
						image:              "/design/main/graphics/marker4.png",
						shadow:             false,
						iconsize:           [57, 37],
						shadowsize:         false,
						iconanchor:         [28, 37],
						infowindowanchor:   [8, 2]
					}
				},
				{
					address: members.anu.address,
					icon: {
						image:              "/design/main/graphics/marker5.png",
						shadow:             false,
						iconsize:           [57, 37],
						shadowsize:         false,
						iconanchor:         [28, 37],
						infowindowanchor:   [8, 2]
					}
				}
			],
			controls: ["GLargeMapControl3D", "GMapTypeControl"],
			zoom: 12,
			scrollwheel: false
		};
		// Centre map on northbourne if no location was specified
		if(!location) {
			options.latitude = -35.25592;
			options.longitude = 149.133139;
		} else {
			options.address = members[location].address;
			options.zoom = 14;
		}
		map.gMap(options);
	}
	showMap();
});
