(function(a){a.fn.filmstrip=function(b){var c=a.extend(a.fn.filmstrip.defaults,b);return this.each(function(){var j=0;var m=0;var o=a(this).find("ul li a");var g=[];var t=a(this).find("#caption");var s=a(this).find("#title");var i=a(this).find("#loading");var q=[];var n=a(this).find("#target");var h=a(this).find("#prev");var k=a(this).find("#next");e();p();f(j);o.each(function(u){q[u]=new Image();q[u].width=c.thumbWidth;q[u].height=c.thumbHeight;if(u<c.preloadCount){q[u].src=this.href;if(c.filmstripMode){g[u]=true}}else{if(c.filmstripMode){a(this).hide();g[u]=false}}a(q[u]).load(function(){i.fadeOut("slow");a(o[u]).data("loaded",true)});a(this).click(function(){var v=a.inArray(this,o);if(v!=j){r(j);j=v;f(j);d()}return false});a(this).mouseover(function(){a(this).find("img").addClass(c.thumbBorderSelectedCssClass)});a(this).mouseout(function(){if(j!=a.inArray(this,o)){a(this).find("img").removeClass(c.thumbBorderSelectedCssClass)}})});h.click(function(u){a(this).attr("disabled","disabled");if(m-1>=0&&c.filmstripMode){if(m-1+c.preloadCount<o.length){a(o[m+c.preloadCount-1]).fadeOut("slow",function(){a(o[m-1]).show("slow");g[m+c.preloadCount-1]=false;m--;g[m]=true})}else{a(this).attr("disabled","disabled");a(o[--m]).show("slow");g[m]=true}}if(j-1>=0){r(j);f(--j);d()}a(this).removeAttr("disabled");return false});k.click(function(u){if(m+c.preloadCount<o.length&&c.filmstripMode){a(this).attr("disabled","disabled");a(o[m]).fadeOut("slow",function(){a(o[m+c.preloadCount]).show();g[m]=false;g[m+c.preloadCount]=true;m++;k.removeAttr("disabled")})}if(j+1<o.length){r(j);f(++j);if(!a(o[j]).data("loaded")){i.show()}d()}return false});function e(){t.text(j+1+" of "+a(o).length+(a(o).length==1?" Photo":" Photos"))}function p(){s.html(a(o[j]).find("img").attr("title"))}function l(){a(o).each(function(u){if(u>=j&&u<j+c.preloadCount){a(this).fadeIn(800)}else{a(this).fadeOut(800)}})}function d(){n.hide();n.attr("src",a(q[j]).attr("src",a(o[j]).attr("href")).attr("src"));n.fadeIn("slow");e();p()}function f(u){a(o[u]).find("img").addClass(c.thumbBorderSelectedCssClass)}function r(u){a(o[u]).find("img").removeClass(c.thumbBorderSelectedCssClass)}})};a.fn.filmstrip.defaults={preloadCount:3,targetWidth:350,targetHeight:250,thumbWidth:100,thumbHeight:71,thumbBorderSelectedCssClass:"selected",filmstripMode:true}})(jQuery);