NG.slide=function(b){var c={},$img,width;function loaded_handler(){width=this.width;$(c).triggerHandler('load')}$.extend(c,{width:function(){return width+10},load:function(){$img=$('<img />');$img.bind('load readystatechange',loaded_handler);$img.attr('src','assets/photos/thumbnails/'+b+'.jpg')},img:function(){return $('<a href="photo.php?photoId='+b+'" />').append($img)},index:function(){return index},set_index:function(a){index=a}});return c};NG.slides=(function(){var d,width,slides_showing,slides_hiding,$slides,pixels_per_frame=1,frame_milliseconds=30,ready_to_start,interval_id,scroll_width=960;function draw(){var a=$('<div id="slideshow_mask" />').appendTo($('#slideshow'));$slides=$('<div id="slides" />').appendTo(a)}function draw_slides(){slides_showing=slides_hiding;slides_hiding=[];$.each(slides_showing,function(a,b){$slides.append(b.img())})}function adjust_width(a,b){width+=a.width()*b;$slides.width(width)}function start_animating(){if(interval_id===undefined&&ready_to_start){interval_id=window.setInterval(animate,frame_milliseconds)}}function stop_animating(){if(interval_id!==undefined){window.clearInterval(interval_id);interval_id=undefined}}function loaded_handler(){var a=this;slides_hiding.push(a);if(!ready_to_start){adjust_width(a,1);if(width>scroll_width){ready_to_start=true;draw_slides();start_animating()}}}function load_slides(){$.each(NG.slideshow_data,function(a,b){var c=NG.slide(b);$(c).bind('load',loaded_handler);c.load()})}function can_animate(){return width+(d-pixels_per_frame)>scroll_width}function shift_slide(){var a=slides_showing[0];if(a.width()+d<=0){a.img().remove();slides_hiding.push(slides_showing.shift());adjust_width(a,-1);d+=a.width()}}function push_slide(){if(-(d-pixels_per_frame)>=width-scroll_width){var a=slides_hiding.shift();slides_showing.push(a);$slides.append(a.img());adjust_width(a,1)}}function animate(){shift_slide();push_slide();if(can_animate()){d-=pixels_per_frame;$slides.css({left:d})}}return{initialise:function(){ready_to_start=false;d=0;width=0;slides_showing=[];slides_hiding=[];draw();load_slides()},start:function(){start_animating()},stop:function(){stop_animating()}}}());$(function(){$('a[rel="ext"]').attr('target','_blank');NG.slides.initialise()});
