var months;
var month;
var state;
var slide = -1;
var panel = -1;
var interval;
var timeout;

$(document).ready(function() {
	if($("#googlemap").length) loadMap();
	$("#prev").click(scrollCalendar);
	$("#next").click(scrollCalendar);
	scrollCalendar();
	$("a.buynow").click(buyNow);
	$("a.moreinfo").click(moreInfo);
	if($("#slides").length) showSlide();
	$("#balloons img").click(showSlide);
	$("select[name='session_id']").change(setColor).trigger("change");
	$("area").click(function(e) { state = $(e.target).parent().prev(); });
	if($("#jqzoom").length) jqZoom();
	/* IE7 */
	$("div.tooltip + input").focus(function(e) { $(e.target).prev().show(); }).blur(function(e) { $(e.target).prev().hide(); });
	/* */
	if($("#flash").length) {
		swfobject.embedSWF("/flash/header.swf", "flash", "100%", "220", "10.0.0", null, {}, {wmode: "transparent", scale: "noscale", salign: "c"}, {});
		$("#header").css("background", "none");
	}
});

function loadMap() {
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=embedMap";
	document.body.appendChild(script);
}

function embedMap() {
	var center = new google.maps.LatLng(-29.532804, 145.491477);
	var parameters = {
		zoom: 4,
		scrollwheel: false,
		center: center,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	var map = new google.maps.Map($("#googlemap")[0], parameters);
	var bounds = new google.maps.LatLngBounds();
	for(i = 0; i < markers.length; i ++) {
		var marker = markers[i];
		var position = new google.maps.LatLng(marker.lat, marker.lng);
		bounds.extend(position);
		var marker = new google.maps.Marker({
			position: position,
			map: map,
			icon: "/images/markers/" + marker.letter + ".png"
		});
	}
	if(markers.length) {
		if(markers.length > 1) {
			map.fitBounds(bounds);
		} else {
			map.setCenter(position);
			map.setZoom(12);
		}
	}
}

function scrollCalendar(e) {
	if(e) {
		switch($(e.target).attr("id")) {
			case "prev":
			if(!month.is(":first-child")) month = month.prev();
			break;
			case "next":
			if(!month.is(":last-child")) month = month.next();
			break;
		}
		months.animate({scrollLeft: months.find(".month").index(month) * months.width()}, 250, "swing");
	} else {
		months =  $("#months");
		month = months.find(".month").first();
		months.children().css("width", months.find(".month").length * months.width() + "px");
	}
	$("#prev, #next").show();
	if(month.is(":first-child")) $("#prev").hide();
	if(month.is(":last-child")) $("#next").hide();
}

function buyNow(e) {
	var session = $(e.target).prev();
	var form = session.closest("form");
	var vendor = parseInt(session.attr("vendor"));
	if(session.find("option:selected").index()/* && parseInt(form.find("input[name='quantity']").val())*/) {
		if(vendor) {
			window.location = "bookings/" + vendor + window.location.search;
		} else {
			if(session.val()) form.trigger("submit");
		}
	} else {
		alert("You must select a session time to continue");
	}
}

function moreInfo(e, o) {
	var info = $(e.target).closest("tr").next();
	if(info.is(":visible")) {
		info.hide();
		$(e.target).html("More Info");
	} else {
		info.show();
		$(e.target).html("Hide Info");
	}
}

function showSlide(e) {
	slide ++;
	if(slide > $("#balloons > img").length - 1) slide = 0;
	if(e) slide = $(e.target).index("#balloons > img");
	if(slide < 0) slide = 0;
	$("#balloons > img").attr("src", "/images/balloons/grey.png").eq(slide).attr("src", "/images/balloons/red.png");
	//$("#slides > div").hide().eq(slide).show();
	$("#slides > div").css("z-index", 0).eq(slide).css("z-index", 1);
	panel = -1;
	clearInterval(interval);
	interval = setInterval(showPanel, 200);
	if($("#balloons img").length > 1) {
		clearTimeout(timeout);
		timeout = setTimeout(showSlide, 8000);
	}
}

function showPanel() {
	panel ++;
	if(panel < 3) {
		$("#slides > div > div:nth-child(" + (panel + 1) + ")").css("visibility", "hidden").eq(slide).css("visibility", "visible").children().css("opacity", 0).fadeTo(200, 1);
	} else {
		panel = -1;
		clearInterval(interval);
	}
}

function selectState(s) {
	//var state = $("select[name='state']");
	if(state.find("option[value='" + s + "']").length && state.val() != s) if(state.val(s).val() == s) state.trigger("change");
}

function setColor(e) {
	var session = $(e.target);
	session.attr("style", session.find("option:selected").attr("style"));
	if(session.find("option:selected").index()) session.closest("tr").find("a.moreinfo").trigger("click", [true]);
}

function jqZoom() {
	$("#jqzoom").jqzoom({
		zoomType: "reverse",
		zoomWidth: 360,
		zoomHeight: 360,
		xOffset: 22,
		title: false,
		preloadText: "Loading"
	});	
}
