$(document).ready(function() {					   
	$(function() {
		$("#photo_nav a").tooltip(
			{
				tip: '#tooltip',
				position: ['top', 'center'],
				offset: [-20, 0],
				onBeforeShow: showThumbnail, 
				onHide:removeThumbnail
			}
		); 
		$("#photo_nav a").click(function () {
			var caption = $(this).data("title");
			var hrefer = $(this).attr("href");
			
			$("#photolg").attr("src", hrefer);
			if (caption == "") caption = "&nbsp;";
			$("#photocaption").html(caption);
			
			return false;
		});
		
		$("#photo_contain").photoScroll({nextBtn:"#next",prevBtn:"#prev", displayUp:10, scrollCount: 10});
		
		function showThumbnail(){
			var tip = $(this.getTip());
			var target = $(this.getTrigger());
			var url = $(target).attr("href");
			var thumb = url.substr(0, 20) + "_sm.jpg";
			$(tip).html("<img width=\"100\" height=\"100\" src='"+thumb+"' />");
		}
		
		function removeThumbnail(){
			var tip = $(this.getTip());
			$(tip).html("");
		}
	});
});



/*------ PHOTO SCROLL -----*/
// Note: Never have a scrollCount greater than displayUp, not only is it silly because not all items would be shown
// but it would also cause unpredictable behavior.
(function($) {  
	$.fn.photoScroll = function(options) {
		var defaults = {
			scrollCount: 10, // Items to scroll per click, use this number to determine pages
			pxPerItem: 24, // the width of each item -- kev wants to calculate this
			displayUp: 10, // how many to display at a time
			totalOffset: 3, // This number represents any additional td tags that exist in photo scroll, but are not links
			offClass: "fade",
			nextBtn: ".forward",
			prevBtn: ".backward"
		}
		var options = $.extend(defaults, options);
		var obj;
		var scrollDiv;
		var index = 0;
		var total;
		var pages;
		var page;
		var pageIndex = 1;
		return this.each(function() {
			obj = $(this);
			scrollDiv = obj.find(".photo-scroll div");
			// total number of items
			total = obj.find(".photo-scroll td").size()-options.totalOffset;
			// get total number of pages
			pages = Math.max(1, Math.ceil((total - (options.displayUp - options.scrollCount)) / options.scrollCount));
			// Make sure page number is within valid range.
			pageIndex = Math.max(1, pageIndex);
			pageIndex = Math.min(pages, pageIndex);
			
			scrollDiv.scrollLeft(0);
			scrollDiv.css("overflow","hidden");
			
			// disable prev and next nav items by default
			obj.find(options.prevBtn).addClass(options.offClass);
			obj.find(options.nextBtn).addClass(options.offClass);
			
			// check if prev and next nav items might be necessary
			if (pages > 1) {
				obj.find(options.nextBtn).removeClass(options.offClass);
				obj.find(options.prevBtn).click(
					function(){
						moveScroll("previous");
						$(this).blur();
						return false;
					}
				);
				obj.find(options.nextBtn).click(
					function(){
						moveScroll("next");
						$(this).blur();
						return false;
					}
				)
			} else {
				obj.find(options.prevBtn).click(
					function(){
						return false;
					}
				);
				obj.find(options.nextBtn).click(
					function(){
						return false;
					}
				)
			}
		});
		function moveScroll(direction) {
			switch (direction) {
				case "previous":
					obj.find(options.nextBtn).removeClass(options.offClass);
					(pageIndex > 1) ? (pageIndex--) : (pageIndex = 1);
					if (pageIndex == 1) {
						obj.find(options.prevBtn).addClass(options.offClass);	
					}
					break;
				case "next":
					obj.find(options.prevBtn).removeClass(options.offClass);
					(pageIndex < pages) ? (pageIndex++) : (pageIndex = pages);
					if(pageIndex == pages){
						obj.find(options.nextBtn).addClass(options.offClass);	
					}
					break;
			}
			scrollAmount = (options.scrollCount * options.pxPerItem) * (pageIndex - 1);
			scrollDiv.animate({scrollLeft: scrollAmount},"fast");
		}
	}
})(jQuery);  
/*------ END PHOTO SCROLL -----*/
