﻿var viewport = { height: null, width: null };
var bTriggeredBySlideShow = false;

jQuery(function ($) {
	$(window).resize(fWindowResize);
	fWindowResize();

	var jqWrapper = $('#wrapper');
	var jqCanvas = $('#canvas');

	//$('#topNavToggler').click(fTopNavTogglerClick);
	//$('#bottomNavToggler').click(fBottomNavTogglerClick);

});

// START SlideShow Object
var SlideShow = {};
SlideShow.timer = null;
SlideShow.timerInterval = function () {
	return isiPhone() ? SlideShow.iPhoneTimerInterval : SlideShow.standardTimerInterval;
};
SlideShow.standardTimerInterval = 3000;
SlideShow.iPhoneTimerInterval = 4000;
SlideShow.jqListItems = null;
SlideShow.jqDefaultListItem = null;
SlideShow.jqCurrentListItem = null;
SlideShow.initialized = false;
SlideShow.init = function () {
	//alert('init');
	if (!this.initialized) {
		this.jqDefaultListItem = $('.category-thumbs li.default');
		//this.setItems(this.jqDefaultListItem);
		this.jqListItems = $('.category-thumbs li');
		this.indexListItems();
		this.jqCurrentListItem = this.jqDefaultListItem;
		this.timer = setInterval(this.setTimer, this.timerInterval());
		this.initialized = true;
	}
};
SlideShow.indexListItems = function () {
	//alert('indexing ('+this.jqListItems.size()+')');
	$('.category-thumbs li').attr('index', '');
	this.jqListItems.each(function (index) {
		$(this).attr('index', index);
	});
};
SlideShow.setTimer = function () {
	if ($('#slideshow-controls').hasClass('playing')) {

		var iCurrentIndex = parseInt(SlideShow.jqCurrentListItem.attr('index'));
		var iNextIndex = iCurrentIndex + 1;
		var iMaxIndex = SlideShow.jqListItems.size();
		iNextIndex = iNextIndex == iMaxIndex ? 0 : iNextIndex;

		iPreloadIndex = iNextIndex + 1;
		iPreloadIndex = iPreloadIndex == iMaxIndex ? 0 : iPreloadIndex;

		SlideShow.jqCurrentListItem = $(SlideShow.jqListItems[iNextIndex]);

		try{
			$('#image-preloader').attr('src', $('a img', SlideShow.jqListItems[iPreloadIndex]).attr('bigImageSrc'));
		}
		catch(e){}

		//		if (SlideShow.jqCurrentListItem.hasClass('last')) {
		//			SlideShow.jqCurrentListItem = SlideShow.jqCurrentListItem.siblings('.first');
		//		}
		//		else {
		//			SlideShow.jqCurrentListItem = SlideShow.jqCurrentListItem.next();
		//		}

		$('li.current-slide').removeClass('current-slide');
		SlideShow.jqCurrentListItem.addClass('current-slide');
		bTriggeredBySlideShow = true;
		$('a', SlideShow.jqCurrentListItem[0]).click();
	}
};
SlideShow.setItems = function (jqCurrentLI) {
	$('li.current-slide').removeClass('current-slide');
	jqCurrentLI.addClass('current-slide');
	if (!bTriggeredBySlideShow) {
		this.jqListItems = $('li', jqCurrentLI.closest('.category-thumbs')[0]);
		this.indexListItems();
	}
	this.jqCurrentListItem = jqCurrentLI;
	clearTimeout(this.timer);
	this.timer = setInterval(this.setTimer, this.timerInterval());
};
// END SlideShow Object

var fWindowResize = function () {
	var win, iMaxCanvasHeight, iMaxCanvasWidth, fAspectRatio, jqWrapper, jqCanvas, iCanvasTop, iHeaderHeight, iSubHeaderHeight;

	win = $(window);
	iHeaderHeight = $('.header').outerHeight();
	iSubHeaderHeight = $('#sub-header').outerHeight();
	viewport.height = win.height() - iHeaderHeight;
	if (window.NAV_MODE) {
		viewport.height = win.height() - iHeaderHeight - iSubHeaderHeight;
	}
	viewport.width = win.width();
	iMaxCanvasHeight = Math.floor(viewport.height * .8);
	iMaxCanvasWidth = Math.floor(viewport.width * .8);
	fAspectRatio = parseFloat(iMaxCanvasWidth / iMaxCanvasHeight);

	if (fAspectRatio > 2) {
		//too wide
		iMaxCanvasWidth = parseInt(iMaxCanvasHeight * 2);
	}
	else if (fAspectRatio < 2) {
		//too tall
		iMaxCanvasHeight = parseInt(iMaxCanvasWidth / 2);
	}

	jqWrapper = $('#wrapper');
	jqWrapper.css('height', win.height() + 'px');
	jqWrapper.css('width', viewport.width + 'px');


	iCanvasPaddingSides = Math.floor((viewport.width - iMaxCanvasWidth) / 2);
	iCanvasPaddingTop = Math.floor((viewport.height - iMaxCanvasHeight) / 2);
	jqCanvas = $('#canvas');
	//jqCanvas.css('height', viewport.height + 'px');
	jqCanvas.css('paddingRight', iCanvasPaddingSides + 'px');
	jqCanvas.css('paddingLeft', iCanvasPaddingSides + 'px');
	jqCanvas.css('paddingTop', iCanvasPaddingTop + 'px');
	jqCanvas.css('paddingBottom', iCanvasPaddingTop + 'px');
	if (window.NAV_MODE) {
		jqCanvas.css('marginTop', iSubHeaderHeight + 'px');
	}

	jqImage = $('img', jqCanvas[0]);
	jqImage.css('height', iMaxCanvasHeight + 'px');
	jqImage.css('width', iMaxCanvasWidth + 'px');

};

jQuery(function ($) {

	var bIsIPhone = isiPhone();
	var sTelPrifix = bIsIPhone ? "tel:" : "callto:";
	$('a.tel').each(function () {
		var jq = $(this);
		var s = jq.attr('href');
		jq.attr('href', sTelPrifix + s);
	});


	$('body').toggleClass('iPhone', bIsIPhone);

	window.HEADER_HOVER = false;
	window.WRAPPER_HOVER = false;

	$('#sub-header').hide();
	$('#gripper').mouseover(function () {
		$('#sub-header:hidden').fadeIn();
		$('.category-links:hidden').slideDown();
	});

	$('#content-wrapper').mouseover(function () {
		$('#sub-header:visible').fadeOut();
	});

	$('.category-links a[category]').each(function () {
		var jq = $(this);
		jq.attr('href', 'javascript: return false;');
		jq.click(function () {

			window.CATEGORY = jq.attr('category');


			var jqCats = $('.category-thumbs[category!="' + window.CATEGORY + '"]:visible');
			var fSlideDown = function () {
				$('.category-thumbs[category="' + window.CATEGORY + '"]:hidden').slideDown();
			};
			var fFadeIn = function () {
				$('.category-thumbs[category="' + window.CATEGORY + '"]:hidden').fadeIn();
			};

			if (jqCats.size() > 0) {
				jqCats.fadeOut(fFadeIn);
			}
			else {
				fSlideDown();
			}

			$('.category-thumbs[category="' + window.CATEGORY + '"] a:first').click();


		});

	});

	window.jqMainImage = $('#imgMain');

	$('.category-thumbs ul').each(function () {
		var jqBG = $('<img class="thumbnail-bg left" src="_images/gui/subhead-thumbnail-bg-left.png" />' +
					'<img class="thumbnail-bg right" src="_images/gui/subhead-thumbnail-bg-right.png" />');
		jqBG.insertBefore($(this));
	});

	$('.category-thumbs a').each(function () {
		var e = this;
		var jq = $(e);
		var sImageUrl = jq.attr('href');
		jq.attr('href', 'JavaScript: return false;');

		var fImageTransition = function () {
			window.NAV_MODE = true;
			//$('.category-thumbs[category="' + window.CATEGORY + '"]').removeClass('visible').slideUp();
			//$('#sub-header').fadeOut('fast', function () {

			var fDoTransition = function () {
				jqMainImage.fadeOut('fast', function () {
					fWindowResize();
					jqMainImage.attr('src', sImageUrl);
					jqMainImage.css('visibility', 'visible');
					jqMainImage.fadeIn('fast');
				});
			};

			if (bTriggeredBySlideShow) {
				fDoTransition();
			}
			else {
				$('.category-links').slideUp('fast', fDoTransition);
			}
			bTriggeredBySlideShow = false;

		};

		var fFadeInCanvas = function () {
			$('#canvas').fadeIn('fast', fImageTransition);
		};

		var fClick = function () {
			$('#slideshow-controls:hidden').show().removeClass('paused').addClass('playing');
			var jqSlideLI = $(this).closest('li');
			SlideShow.setItems(jqSlideLI);
			var jqHiddenCanvas = $('#canvas:hidden');
			if (jqHiddenCanvas.size() > 0) {
				jqMainImage.css('visibility', 'hidden');
				$('#meta-content-block').fadeOut('fast', fFadeInCanvas);
			}
			else {
				fImageTransition();
			}
		};

		jq.click(fClick);
	});

	$('#meta-links a').each(function () {
		var e = this;
		var jq = $(e);
		var sSpecificContentId = jq.attr('href');
		jq.attr('href', 'JavaScript: return false;');

		var fOptionallyHideSubHeader = function () {
			var jqSubHeader = $('#sub-header:visible');
			if (jqSubHeader.size() > 0) {
				jqSubHeader.fadeOut('fast', fOptionallyHideCanvas);
			}
			else {
				fOptionallyHideCanvas();
			}
		};
		var fOptionallyHideCanvas = function () {
			var jqCanvas = $('#canvas:visible');
			if (jqCanvas.size() > 0) {
				jqCanvas.fadeOut('fast', fOptionallyHideOldMetaContentBlocks);
			}
			else {
				fOptionallyHideOldMetaContentBlocks();
			}
		};
		var fOptionallyHideOldMetaContentBlocks = function () {
			if (sSpecificContentId == window.CURRENT_META_CONTENT) {
				window.CURRENT_META_CONTENT = null;
				$('#meta-content-block:visible > div:visible').fadeOut('fast', fOptionallyShowMetaContentBlock);
			}
			else {
				$('#meta-content-block > div').hide();
				fOptionallyShowMetaContentBlock();
			}
		};
		var fOptionallyShowMetaContentBlock = function () {
			var jqMetaContent = $('#meta-content-block:hidden');
			if (jqMetaContent.size() > 0) {
				jqMetaContent.fadeIn('fast', fShowSpecificContentBlock);
			}
			else {
				fShowSpecificContentBlock();
			}
		};
		var fShowSpecificContentBlock = function () {
			$(sSpecificContentId).fadeIn('fast');
			window.CURRENT_META_CONTENT = sSpecificContentId;
		};


		var fClick = function () {
			// explicitly stop the SlideShow
			$('#slideshow-controls').removeClass('playing').addClass('paused').hide();
			fOptionallyHideSubHeader();
		};

		jq.click(fClick);

	});

	$('.category-thumbs li.default a').click();

	// Initialize Slide Show
	$('#slideshow-controls').click(function () {
		var e = this;
		var jq = $(e);
		jq.toggleClass('playing');
		jq.toggleClass('paused');
	});

	SlideShow.init();
});





function isiPhone() {
	return (
        (navigator.platform.indexOf("iPhone") != -1) ||
        (navigator.platform.indexOf("iPod") != -1)
    );
}
