(function($) {
$(function() {

	// Perform slide animation on loaded media sections
	var panelset = $('.media-panel');
	var panelbuttonset = $('.media-panel-buttonset');
	var panelRotateTime = 4000;
	var panelIdleTime = 3000
	var heartbeatTime = 10000;
	var panelStatus = null;
	var panelIntervalId = null;
	var heartbeatIntervalId = null;
	var lastUserClickTime = null;

	var mouseOverPanel = false;
	panelset
		.mouseenter(function() { mouseOverPanel = true; })
		.mouseleave(function() { mouseOverPanel = false; });

	panelset.children(':first').addClass('current');

	var showNextPanel = function(ev) {
		// Don't rotate away if the user has their mouse over the panel
		if (mouseOverPanel) { return; };
//panelset.children().stop();
		var curr = panelset.children('.current');
		var next = curr.next();
		if (next.size() == 0) {
			next = panelset.children(':first');
		}

		curr.fadeOut('slow');
		next.fadeIn('slow');

		curr.removeClass('current');
		next.addClass('current');

		// update icon state
		panelbuttonset.find('.selected').each(function() {
			$(this).removeClass('selected').removeClass('selected'+$(this).attr('data-icon-number'));
		});
		var nextIndex = next.index() + 1;
		$(panelbuttonset.find('a')[nextIndex-1]).addClass('selected').addClass('selected'+nextIndex);
		
	};

	//$(window).focus

	var checkStatus = function() {
		if (panelStatus == 'userclick') {
			var now = new Date();
			if ((now - lastUserClickTime) > panelIdleTime) {
				panelset.children.stop();	
				panelIntervalId = setInterval(showNextPanel, panelRotateTime);
				panelStatus = null;
			}
		}
	};

	var numImages = $(panelset).find('img.headerimg').size();
	var hasMultipleImages = (numImages > 1);
	if (hasMultipleImages) {
		// start the panel rotation 
		panelset.children(':first').find('img:first').load(function() {
			panelIntervalId = setInterval(showNextPanel, panelRotateTime);
		});

		// start the heartbeat check
		heartbeatIntervalId = setInterval(checkStatus, heartbeatTime);

		// add the image selection icon functionality
		panelbuttonset.find('a').click(function(ev) {
			clearTimeout(panelIntervalId);
			var iconNum = $(this).attr('data-icon-number');
			var imgToShow = $(panelset.find('img')[(iconNum-1)]);
			if (imgToShow.filter(':visible').size() > 0) {
				// image is already visible, do nothing.
			} else {
				// hide the current image, and show the selected one
				$(panelset).children('.current').removeClass('current').fadeOut('slow');
				imgToShow.parent().addClass('current').fadeIn('slow');
			}

			lastUserClickTime = new Date();
			panelStatus = 'userclick';

			panelbuttonset.find('.selected').each(function() {
				$(this).removeClass('selected').removeClass('selected'+$(this).attr('data-icon-number'));
			});
			$(this).addClass('selected').addClass('selected'+iconNum);

			ev.stopImmediatePropagation();
			return false;
		});

		panelbuttonset.find('a:first').addClass('selected').addClass('selected1');
	}
});
})(jQuery);

