jQuery.iFooGallery = {
	build : function(user_options)
	{
		var user_options;

		var defaults = {
			getIconUrl:function(fullImgUrl){
				return fullImgUrl;
			}
			,getPhotoId:function(fullImgUrl){
				var pid = fullImgUrl;
				var pos = pid.lastIndexOf("/");
				if( pos > -1 )
				{
					pid = pid.substr(pos + 1);
				}

				pos = pid.lastIndexOf( ".jpg" );
				if( pos > - 1 )
				{
					pid = pid.substr(0,pos);
				}

				pos = pid.lastIndexOf( "_medium" );
				if( pos > - 1 )
				{
					pid = pid.substr(0,pos);
				}

				return pid;
			}
		};

		jQuery(this).each(

			function() {
				$(".gallery li").css("display","none");
				var options = jQuery.extend(defaults, user_options);

				$(this).wrap("<div class='foo-gallery'></div>");
				$(this).before("<div class='foo-gallery-icons'></div>");
				$(this).before("<div class='foo-gallery-prev-next'><a id='foo-gallery-prev'>&lt; Prev</a> <a id='foo-gallery-next'>Next &gt;</a></div>");
				var iconDiv = $(".foo-gallery-icons");

				var baseUrl = window.location.pathname;

				$(".gallery img").each(
					function()
					{
						var fullImgUrl = $(this).attr('src');
						var pid = options.getPhotoId(fullImgUrl);
						var li = $(this).parent();
						li.attr("pid",pid);

						var iconImgUrl = options.getIconUrl(fullImgUrl);
						var iconImgNode = $("<img src='" + iconImgUrl + "'/>");
						iconImgNode.attr("pid",pid);
						var iconNode = $("<a href='#" + pid + "'></a>");
						iconNode.append(iconImgNode);
						iconNode.appendTo( iconDiv );
					}
					);

				}

		);

		setInterval("jQuery.iFooGallery.showItem()",200);

	}
	,
     showItem : function()
     {
	var pid = window.location.hash;
	if( jQuery.iFooGallery.fooGalleryLastPid == pid )
	{
		return;
	}

	jQuery.iFooGallery.fooGalleryLastPid = pid;

	if( pid.indexOf("#") == 0 )
	{
		pid = pid.substr(1);
	}
	else
	{
		pid = null;
	}

	var pids = new Array();
	var index = 0;
	var selectedIndex = -1;

	$(".foo-gallery li").each(
            function(){
		var thisPid = $(this).attr("pid");
		pids.push(thisPid);
		if( pid == null || thisPid == pid )
		{
			$(this).css("display","block");
			pid = thisPid;
			selectedIndex = index;
		}
		else
		{
			$(this).css("display","none");
		}
                   
		index += 1;
		}
          );

	var prevIndex = selectedIndex - 1;
	if( prevIndex < 0 ){prevIndex = 0;}
	$("#foo-gallery-prev").attr("href","#" + pids[prevIndex]);

	var nextIndex = selectedIndex + 1;
	if( nextIndex >= pids.length ){nextIndex = pids.length-1;}
	$("#foo-gallery-next").attr("href","#" + pids[nextIndex]);

	$(".foo-gallery-icons img").each(
            function(){
		var thisPid = $(this).attr("pid");
		if( thisPid == pid )
		{
			$(this).addClass("selected");
			$(this).parent().focus();
		}
		else
		{
			$(this).removeClass("selected");
		}
		}
	);

     }
	
};

jQuery.fn.FooGallery = jQuery.iFooGallery.build;

