// Class for handling displaying of families on the MeetFamiliesMap.aspx page
var meetFamiliesMap = {
	families: ["ackley", "alexander", "andreas", "ayars", "grammer", "hastings", "hein", "holter", "layman", "miedema", "ramsey", "shipley", "vanwezel", "weaver", "brown", "douglass"],
	showFamily: function (element) {
		meetFamiliesMap.hideAllFamilies();

		if (element != null) {
			var familyName = meetFamiliesMap.getFamilyNameFromDiv(element);
			$('#' + familyName + 'MapImage').addClass('current');
			$('#' + familyName + 'MenuItem').addClass('current');
		}
	},
	hideAllFamilies: function () {
		for (var i = 0; i < meetFamiliesMap.families.length; i++) {
			var slideName = meetFamiliesMap.families[i];

			$('#' + slideName + 'MapImage').removeClass('current');
			$('#' + slideName + 'MenuItem').removeClass('current');
		}
	},
	getFamilyNameFromDiv: function (element) {
		var familyName = element.id.replace("MenuItem", "");
		familyName = familyName.replace("MapArea", "");
		return familyName;
	},
	initialize: function () {
		for (var i = 0; i < meetFamiliesMap.families.length; i++) {
			var slideName = meetFamiliesMap.families[i];

			$('#' + slideName + 'MapArea').mouseenter(function () { meetFamiliesMap.showFamily(this); });
			$('#' + slideName + 'MapArea').mouseleave(function () { meetFamiliesMap.hideAllFamilies(); });

			$('#' + slideName + 'MenuItem').mouseenter(function () { meetFamiliesMap.showFamily(this); });
			$('#' + slideName + 'MenuItem').mouseleave(function () { meetFamiliesMap.hideAllFamilies(); });
		}
	}
}

// Class for handling the slideshow and links on the MeetFamilies.aspx page
var meetFamilies = {
	slides: ["Family0", "Family1", "Family2", "Family3", "Family4"],
	initialVisibleSlide: 0,
	slideChangeInterval: 4000,
	slideTimerHandle: null,
	currentSlide: -1,

	stopTimer: function () {
		if (meetFamilies.slideTimerHandle != null) {
			clearInterval(meetFamilies.slideTimerHandle);
			meetFamilies.slideTimerHandle = null;
		}
	},
	startTimer: function () {
		meetFamilies.stopTimer();
		meetFamilies.slideTimerHandle = setInterval("meetFamilies.changeSlide()", meetFamilies.slideChangeInterval);
	},
	changeSlide: function (slideNumber) {
		if (slideNumber == meetFamilies.currentSlide) return;
		if (slideNumber == null) {
			meetFamilies.currentSlide++;
			if (meetFamilies.currentSlide >= meetFamilies.slides.length) {
				meetFamilies.currentSlide = 0;
			}
		} else {
			meetFamilies.currentSlide = slideNumber;
		}
		//NOTE: fadeOutAllSlides() will call deselectAllSlides(), which will then finally call showCurrentSlide().
		meetFamilies.fadeOutAllSlides();
	},
	fadeOutAllSlides: function () {
		//fade out all family images
		$('.familyImage').stop().fadeTo(350, 0);
		meetFamilies.deselectAllSlides();
	},
	deselectAllSlides: function () {
		//apply style to hide divs
		for (var i = 0; i < meetFamilies.slides.length; i++) {
			var slideName = meetFamilies.slides[i];

			$('#' + slideName + 'Image').removeClass('current');
			$('#' + slideName + 'FamilyFact').removeClass('current');
			$('#' + slideName + 'MenuItem').removeClass('current');
		}

		//Show the new current slide
		meetFamilies.showCurrentSlide();
	},
	showCurrentSlide: function () {
		var slideName = meetFamilies.slides[meetFamilies.currentSlide];
		$('#' + slideName + 'Image').addClass('current');
		$('#' + slideName + 'FamilyFact').addClass('current');
		$('#' + slideName + 'MenuItem').addClass('current');
		//fade in current image
		$('#' + slideName + 'Image').stop().fadeTo(300, 1);
	},
	getSlideNumberFromDiv: function (element) {
		var slideName = element.id.replace("MenuItem", "");

		for (var i = 0; i < meetFamilies.slides.length; i++) {
			if (slideName == meetFamilies.slides[i]) {
				return i;
			}
		}
	},
	initialize: function () {
		if (meetFamilies.initialVisibleSlide != null) {
			meetFamilies.changeSlide(meetFamilies.initialVisibleSlide);
		}

		for (var i = 0; i < meetFamilies.slides.length; i++) {
			var slideName = meetFamilies.slides[i];

			$('#' + slideName + 'Image').mouseenter(function () { meetFamilies.stopTimer(); });
			$('#' + slideName + 'Image').mouseleave(function () { meetFamilies.startTimer(); });

			$('#' + slideName + 'FamilyFact').mouseenter(function () { meetFamilies.stopTimer(); });
			$('#' + slideName + 'FamilyFact').mouseleave(function () { meetFamilies.startTimer(); });

			$('#' + slideName + 'MenuItem').mouseenter(function () { meetFamilies.stopTimer(); meetFamilies.changeSlide(meetFamilies.getSlideNumberFromDiv(this)); });
			$('#' + slideName + 'MenuItem').mouseleave(function () { meetFamilies.startTimer(); });
		}

		$('#moreMenuItem').mouseenter(function () { $(this).addClass('current'); });
		$('#moreMenuItem').mouseleave(function () { $(this).removeClass('current'); });

		meetFamilies.startTimer();
	}
}
