$(document).ready(function(){
	$('iframe:first').remove();
	generateEmail();
	initNavigationActions();
	initImageCarousel();
	setMinWidth();
});

function generateEmail(){
	$('span.ems1').html(generateEms('info','leeshealingma','com'));
	$('span.ems2').html(generateEms('shifukeeleong','tampabay.rr','com'));
}

function generateEms(user, domain, web){
	var user = user;
	var domain = domain;
	var web = web;
	var char = '&#64;';
	var output = '<a ' + 'href' + '="' + 'mailto:' + user + char + domain + '.' + web + '">' + user + char + domain + '.' + web + '</a>';
	return output;
}

function initNavigationActions(){
	// navigation highlighting
	$('ul.nav li a').click(function(){
		$('ul.nav li a').removeClass('selected');
		$(this).addClass('selected');
		if($(this).parent().parent().hasClass('aboutFlyout')){
			$('ul.nav li.about a:last').addClass('selected');
		}
		if($(this).parent().parent().hasClass('programFlyout')){
			$('ul.nav li.programs a:last').addClass('selected');
		}
		$('ul.programFlyout').hide();
		$('ul.aboutFlyout').hide();
	});
	$('.topLink').click(function(){
		$('ul.nav li a').removeClass('selected');
		$('ul.nav li a:first').addClass('selected');
	});
	
	// navigation flyouts
	$('ul.nav li.programs').hover(function(){
		$('ul.nav li.programs a:last').addClass('over');
		$('ul.programFlyout').fadeIn('fast');								   
	}, function(){
		$('ul.nav li.programs a:last').removeClass('over');
		$('ul.programFlyout').fadeOut('fast');
	});
	$('ul.nav li.about').hover(function(){
		$('ul.nav li.about a:last').addClass('over');
		$('ul.aboutFlyout').fadeIn('fast');								   
	}, function(){
		$('ul.nav li.about a:last').removeClass('over');
		$('ul.aboutFlyout').fadeOut('fast');
	});
	
	// scrolling actions
	var hScrollOnLoad;
	if(window.pageYOffset){ // webkit check
		hScrollOnLoad = window.pageYOffset;
	}else{ //all other browsers
		hScrollOnLoad = document.documentElement.scrollTop;
	}
	if(hScrollOnLoad > 216){
		$('ul.nav').css('top',hScrollOnLoad);
	}
	$(window).scroll(function(){
		var hScroll;
		if(window.pageYOffset){ // webkit check
			hScroll = window.pageYOffset;
		}else{ // all other browsers
			hScroll = document.documentElement.scrollTop;
		}
		if(hScroll > 216){
			$('ul.nav').stop().animate({top:hScroll + 'px'});
		}else{
			$('ul.nav').stop().animate({top:'216px'});
		}
	});
	
	// if visitor is coming to anchor link, highlight appropriate link in nav
	var thisLoc = window.location.href;
	var thisQuery = thisLoc.indexOf('#');
	if(thisQuery != -1){
		var thisID = thisLoc.split('#');
		$('ul.nav li a').each(function(){
			if($(this).attr('href') == '#' + thisID[1]){
				$(this).addClass('selected');
				if($(this).parent().parent().hasClass('aboutFlyout')){
					$('ul.nav li.about a:last').addClass('selected');
				}
				if($(this).parent().parent().hasClass('programFlyout')){
					$('ul.nav li.programs a:last').addClass('selected');
				}
			}
		});
		if(thisID[1] == "top"){
			$('ul.nav li a:first').addClass('selected');
		}
	}else{
		$('ul.nav li a:first').addClass('selected');
	}
}

function initImageCarousel(){
	var nImgTotal = $('#imgCarousel li').size();    // number of thumbs in the carousel
	var nImgWidth = $('#imgCarousel li').outerWidth();    // width of each thumb
	var nMinMargin = 4;    // the minimum px margin amount for each image allowed
	var nMinMargWidth = nImgWidth + (nMinMargin * 2);    // calculate the width of the thumb with minimum margin
	var nMargin;    // track the px margin amount assigned to each image
	var nWrapperCalc;    // track how many images are viewable through the viewport
	var nSlideCount = 0;	// track how many thumbs we've advanced through

	alignImgThumbnails();
	
	// PROPERLY SPACE EACH THUMBNAIL IN THE CAROUSEL
	function alignImgThumbnails(){
		var nMaskWidth = $('#thmbContent').width() - 60;    // width of the thumb container
		var nFitAmt = Math.floor(nMaskWidth / nMinMargWidth);    // how many thumbs we can fit in the viewport with minimum margin
	
		if($('#nextImg').hasClass('disabled')){
			$('#nextImg').removeClass('disabled');
		}
	
		if(nFitAmt >= nImgTotal){   // we can fit all the thumbs in the viewport
			var nEmptyPixels = nMaskWidth - (nImgWidth * nImgTotal);    // calculate how much empty space is available
			nMargin = Math.floor((nEmptyPixels / nImgTotal) / 2);    // calculate how much margin we can assign to each image
			nWrapperCalc = nImgTotal;
			$('#prevImg, #nextImg').addClass('disabled');    // disable next/prev buttons
		}else{ // we can't fit all the thumbs in the viewport
			var nEmptyPixels = nMaskWidth - (nFitAmt * nImgWidth); // calculate how much empty space is available
			nMargin = Math.floor((nEmptyPixels / nFitAmt) / 2); // calculate how much margin we can assign to each image
			nWrapperCalc = nFitAmt;
			$('#prevImg').addClass('disabled');    // disable prev button
		}
	
		$('#imgCarousel li').css('margin','0 ' + nMargin + 'px');    // assign each thumnail the proper margin
		var nTotWidth = Math.ceil(nImgTotal * (nImgWidth + (nMargin * 2)));    // calculate the total space occuppied by all the thumbs
		$('#imgCarousel').css('width', nTotWidth + 1 + 'px');    // assign the thumbnail container a width
		var nShownWidth = nWrapperCalc * (nImgWidth + (nMargin * 2));    // calculate the total space occupied by thumbs in the viewport
		$('#imgMask').css('width', nShownWidth + 'px');    // assign the thumnail mask a width
	}
	
	// NEXT IMAGE BUTTON EVENT
	$('#nextImg').bind('click', function(){
		var nThmbsToShow = nImgTotal - nWrapperCalc - nSlideCount;    // how many thumbs are to the right of the viewport?

		if(nThmbsToShow > nWrapperCalc){    // if there are more thumbs to view than the amount that can fit in the viewport
			nThmbsToShow = nSlideCount + nWrapperCalc;
		}else{    // there are fewer images to view than the amount that can fit in the viewport
			nThmbsToShow = nImgTotal - nWrapperCalc;
			$(this).addClass('disabled');
		}
	
		if(nWrapperCalc != nImgTotal){    // if not all thumbs are viewable in the viewport
			if($('#prevImg').hasClass('disabled')){
				$('#prevImg').removeClass('disabled');
			}
		}

		var nRightPx = (nMargin * 2 + nImgWidth) * nThmbsToShow;	
		$('#imgCarousel').animate({
			'right': nRightPx  + 'px'
		}, 'fast');
	
		nSlideCount = nThmbsToShow;
	});
	
	// PREVIOUS IMAGE BUTTON EVENT
	$('#prevImg').bind('click', function(){
		var nThmbsToShow = nSlideCount;    // how many thumbs are to the left of the viewport?
	
		if(nThmbsToShow < nWrapperCalc){    // if there are less thumbs to view than the amount that can fit in the viewport
			nThmbsToShow = 0;    // reset to zero
			$(this).addClass('disabled');
		}else{    // there are more thumbs to view than the amount that can fit in the viewport
			nThmbsToShow = nSlideCount - nWrapperCalc;
		}
	
		if(nWrapperCalc != nImgTotal){    // if not all thumbs are viewable in the viewport
			if($('#nextImg').hasClass('disabled')){
				$('#nextImg').removeClass('disabled');
			}
		}
	
		$('#imgCarousel').animate({
			'right': (nMargin * 2 + nImgWidth) * nThmbsToShow + 'px'
		}, 'fast');
	
		nSlideCount = nThmbsToShow;
	});
	
	// THUMBNAIL IMAGE CLICK EVENT
	$('#imgCarousel img').bind('click', function(){
		$('#loaderImg').css('display','block');    // show the loading animate gif
		var sThmbPath = $(this).attr('src');    // get the src attribute of the clicked thumb
		var sImgPath = sThmbPath.replace('thumbs','large');    // get the src attribute of the large image to be shown
		$('#mainImg').css('opacity','0');    // set opacity of large image to 0
	
		// use native js targetting because it's faster than jquery
		document.getElementById('mainImg').src = sImgPath;    // load the new large image
		
		document.getElementById('mainImg').onload = function(){    // when the image loads
			$('#mainImg').animate({opacity:1});    // fade in new image
			$('#loaderImg').css('display','none');    // hide loading animated gif
		}
	});
	
	$(window).resize(function(){
  		alignImgThumbnails();
		nSlideCount = 0;
		$('#imgCarousel').stop().animate({right:0}, 'fast');
		setMinWidth();
	});
}

function setMinWidth(){
	if($.browser.msie && parseInt($.browser.version, 10) == 6){
		var minWidth = 1020;
		var width = document.documentElement.offsetWidth < minWidth ? minWidth : 'auto';
		$('body').css('width', width);
	}
}
