// Namespaced code

var pets;
if (!pets)
	pets = {};

pets.index = {

	initialize: function () {
		$(document).ready(function () {
			$("#start_overlay_image").click(function () {
				var fader = $("<div id='index_fader'></div>");
				
				$("body").prepend(fader);
					
				fader.fadeIn(500);
				setTimeout(function () { loadPage('http://pets.animalcompass.org', false); }, 500);
			});
		});
	}

};

// Un-namespaced code

var overlays = [
	{
		id: "start_overlay_base",
		mouseOver: false
	},
	{
		id: "start_overlay_image",
		mouseOver: false
	},
	{
		id: "intro_overlay_base",
		mouseOver: false
	},
	{
		id: "intro_overlay_image",
		mouseOver: false
	},
	{
		id: "slider_overlay_base",
		mouseOver: false
	}
];

var start_base = 0;
var start_image = 1;
var intro_base = 2;
var intro_image = 3;
var slider_base = 4;

var defaultAnimationDelay = 100;

function getElementIndex(element, base) {
	if (element == "start") {
		if (base)
			return start_base;
		else
			return start_image;
	}
	if (element == "intro") {
		if (base)
			return intro_base;
		else
			return intro_image;
	}
	if (element == "slider")
		return slider_base;
	
	return -1;
}

function mouseOver(element, base, on) {
	var index = getElementIndex(element, base);
	
	if (index == -1)
		return;
		
	overlays[index].mouseOver = on;
}

function startBaseMouseOver(on) {
	mouseOver("start", true, on);
	startImageActivate(on);
}

function startImageMouseOver(on) {
	mouseOver("start", false, on);
}

function startImageActivate(activate) {
	var speed = 200;
	var indexImage = getElementIndex("start", false);
	var indexBase = getElementIndex("start", true);

	if (activate) {
		$("#" + overlays[indexImage].id).stop(true, true);
		$("#" + overlays[indexImage].id).fadeIn(speed);
	}
	else {
		if (!overlays[indexImage].mouseOver && !overlays[indexBase].mouseOver) {
			$("#" + overlays[indexImage].id).stop(true, true);
			$("#" + overlays[indexImage].id).fadeOut(speed);
		}
	}
}

function introBaseMouseOver(on) {
	mouseOver("intro", true, on);
	introImageActivate(on);
}

function introImageMouseOver(on) {
	mouseOver("intro", false, on);
}

function introImageActivate(activate, delay) {
	var speed = 200;
	var indexIntroImage = getElementIndex("intro", false);
	var indexIntroBase = getElementIndex("intro", true);
	var indexSliderBase = getElementIndex("slider", true);

	if (delay != undefined) {
		setTimeout(function() {introImageActivate(activate)}, delay);
		return;
	}
	
	if (activate) {
		$("#" + overlays[indexIntroImage].id).stop(true, true);
		$("#" + overlays[indexIntroImage].id).fadeIn(speed);
	}
	else {
		if (!overlays[indexIntroImage].mouseOver && !overlays[indexIntroBase].mouseOver && !overlays[indexSliderBase].mouseOver) {
			$("#" + overlays[indexIntroImage].id).stop(true, true);
			$("#" + overlays[indexIntroImage].id).fadeOut(speed);
		}
	}
}

function sliderBaseMouseOver(on) {
	mouseOver("slider", true, on);
	mouseOver("intro", true, on);
	mouseOver("intro", false, on);
	introImageActivate(on, defaultAnimationDelay);
	sliderBaseActivate(on, defaultAnimationDelay);
}

function sliderBaseActivate(activate, delay) {
	var speed = 250;
	var indexIntroImage = getElementIndex("intro", false);
	var indexIntroBase = getElementIndex("intro", true);
	var indexSliderBase = getElementIndex("slider", true);

	if (delay != undefined) {
		setTimeout(function() {sliderBaseActivate(activate)}, delay);
		return;
	}

	if (activate) {
		$("#" + overlays[indexSliderBase].id).stop(true, false);
		$("#" + overlays[indexSliderBase].id).animate({width: "166px"}, speed);
	}
	else {
		if (!overlays[indexIntroImage].mouseOver && !overlays[indexIntroBase].mouseOver && !overlays[indexSliderBase].mouseOver) {
			$("#" + overlays[indexSliderBase].id).stop(true, false);
			$("#" + overlays[indexSliderBase].id).animate({width: "0px"}, speed);
		}
	}
}

var gallery = {
	database: [
		["http://pets.animalcompass.org/share?shid=PqopkwAAv_4EkjX4uqlEapWosY--48xu", "Atlanta, GA"],
		["http://pets.animalcompass.org/share?shid=QLUkzgAAr_73s2Gy7QtG-7tFegeJfMsR", "Houston, TX"],
		["http://pets.animalcompass.org/share?shid=PtIdiQAAz_6aicndBrFKK74_qj1rzghK", "Phoenix, AZ"],
		["http://pets.animalcompass.org/share?shid=OeQvWAAAr_58Ld34ECVCYo3hoj1IQbyK", "Cambridge, MA"],
		["http://pets.animalcompass.org/share?shid=OxwtvAAAr_5Fbewgy5BJ4Jglw4sPtYoe", "Trenton, NJ"],
		["http://pets.animalcompass.org/share?shid=OdcqHwAAv_7AogtZBcpGmZfAPTPpgKxL", "Ferndale, MI"],
		["http://pets.animalcompass.org/share?shid=OsMuEQAAv_4Lduq-vqZOm5SWCW9FrIcm", "Hackensack, NJ"],
		["http://pets.animalcompass.org/share?shid=QmQrcgAAr_45ZSAC1ABHgrWMLqsejjpH", "Boca Raton, FL"],
		["http://pets.animalcompass.org/share?shid=N_sY4gAAr_4KuAYS2U1Dd5gXVb89w72z", "Portland, OR"],
		["http://pets.animalcompass.org/share?shid=RFF_9QAAr_4kyTvJTiNF6Ku3hc9dzmFN", "Hong Kong, China"],
		["http://pets.animalcompass.org/share?shid=REp_5QAAv_5Hlo-A2gFAa7-_0bRGg6as", "Hong Kong, China"],
		["http://pets.animalcompass.org/share?shid=NitSIQAAz_7cop-SexpEbIJTtor6uH_-", "Rangendingen, Germany"],
		["http://pets.animalcompass.org/share?shid=OsMuIgAAz_46RqQKYdBJBYCjyISp7Gqs", "New York, NY"],
		["http://pets.animalcompass.org/share?shid=OfEnhwAAz_56Gn5SyPdGcqabpVMsuM8q", "Rockford, IL"],
		["http://pets.animalcompass.org/share?shid=PN0tEwAAz_50Qsl-TFND04O5ajGP7qaF", "Richmond, VA"],
		["http://pets.animalcompass.org/share?shid=NaAY0wAAz_6bXMM51edPdorqqMegjZg6", "New Westminster, BC, Canada"],
		["http://pets.animalcompass.org/share?shid=OkcoCwAAz_4XgLLb_ntBaL5b2JxtTVc3", "Palos Park, IL"],
		["http://pets.animalcompass.org/share?shid=ROIkhwAAz_66O-KAVQ5F8q3_m8Ev3Lc5", "Huntington Beach, CA"],
		["http://pets.animalcompass.org/share?shid=NaAY0wAAz_4tMstn15lAbaUs3PwK3ltR", "New Westminster, BC, Canada"],
		["http://pets.animalcompass.org/share?shid=OsYuJgAAr_4_y10ZkCNB-bxwETIWTJwM", "Bronx, NY"]
	],
	current: -1,
	path: "image/gallery/",
	filePrefix: "gallery_",
	history: new Array(19),
	historyIndex: 0,
	idTag: "index_gallery_item",
	imageExtension: ".jpg",
	fadeSpeed: 1000,
	loadPeriod: 10000,
	
	inHistory: function(index) {
		var found = false;

		for (i = 0; i < this.history.length; i++)
			if (this.history[i] == index)
				return true;
		
		return false;
	},
	
	next: function() {
		var i = 0;
		
		do {
			i = Math.floor(Math.random() * this.database.length);
		} while (this.inHistory(i));
		
		this.current = i;
		this.history[this.historyIndex] = i;
		this.historyIndex++;
		this.historyIndex = (this.historyIndex == this.history.length) ? 0 : this.historyIndex;
		
		return i;
	}
}

var locationId = "index_gallery_location";

function loopGallery() {
	unloadGallery();
	next = gallery.next();
	
	setTimeout(function() {loadGallery(next)}, gallery.fadeSpeed);
	setTimeout(function() {loopGallery()}, gallery.loadPeriod);
}

function loadGallery(index) {
	$("#" + gallery.idTag).css("backgroundImage", "url('" + gallery.path + gallery.filePrefix + index + gallery.imageExtension + "')");
	$("#" + gallery.idTag).fadeIn(gallery.fadeSpeed);
	$("#" + locationId).html(gallery.database[index][1]);
	$("#" + locationId).fadeIn(gallery.fadeSpeed);
}

function unloadGallery() {
	$("#" + gallery.idTag).fadeOut(gallery.fadeSpeed);
	$("#" + locationId).fadeOut(gallery.fadeSpeed);
	gallery.current = -1;
}

function directGalleryItem() {
	if (gallery.current != -1)
		loadPage(gallery.database[gallery.current][0], true);
}