
var SLIDESHOW=function(){var PHI=1.61803399;var container;var thumbs;var standardDuration=3;var current=0;var duration;var frame=0;var frameRate=40;var start;var delta;var fadeInterval;var slideInterval;var offset;var slideWidth;var isAnimating=false;var images=[];var imagesToLoad;var thumbsUp;var thumbsDown;var thumbHeight=74;var thumbsVisible=4;var imagesDir="images/";var upArrow=imagesDir+"up-arrow.gif";var upArrowOff=imagesDir+"up-arrow-off.gif";var downArrow=imagesDir+"down-arrow.gif";var downArrowOff=imagesDir+"down-arrow-off.gif";var tween=TWEEN.easeOutSine;function getProp(element,prop){return element.style[prop]?parseFloat(element.style[prop],10):0;}
function setProp(element,prop,value,unit){element.style[prop]=value+(unit||"");}
function setOpacity(element,value){element.style.opacity=value;element.style.filter="alpha(opacity="+(value*100)+")";}
function fadeImage(image){images.push(image);}
function updateFades(){var opacity;var currentImage;var imagesLoaded=0;for(var i=0;i<images.length;i+=1){currentImage=images[i];opacity=getProp(currentImage,"opacity");if(opacity<1){setOpacity(currentImage,opacity+0.1);}else{imagesLoaded+=1;}}
if(imagesLoaded===imagesToLoad){clearInterval(fadeInterval);}}
function updateSlides(){if(isAnimating){if(frame<=duration){setProp(container,"left",tween(frame,start,delta,duration),"px");frame+=1;}else{isAnimating=false;frame=0;clearInterval(slideInterval);}}}
function thumbsScroll(num){var top=getProp(thumbs,"top")+(thumbHeight*num);if(top>=-(thumbHeight*(images.length-thumbsVisible))&&top<=0){setProp(thumbs,"top",top,"px");updateArrows();}}
function updateArrows(){var top=getProp(thumbs,"top");var upArrowImage=thumbsUp.getElementsByTagName("IMG")[0];var downArrowImage=thumbsDown.getElementsByTagName("IMG")[0];thumbsUp.onclick=scrollUp;thumbsDown.onclick=scrollDown;upArrowImage.src=upArrow;downArrowImage.src=downArrow;setProp(thumbsUp,"cursor","pointer");setProp(thumbsDown,"cursor","pointer");if(imagesToLoad>thumbsVisible){if(top===0){upArrowImage.src=upArrowOff;thumbsUp.onclick=null;setProp(thumbsUp,"cursor","default");}else if(top===-(thumbHeight*(imagesToLoad-thumbsVisible))){downArrowImage.src=downArrowOff;thumbsDown.onclick=null;setProp(thumbsDown,"cursor","default");}}else{thumbsUp.onclick=null;thumbsDown.onclick=null;upArrowImage.src=upArrowOff;downArrowImage.src=downArrowOff;setProp(thumbsUp,"cursor","default");setProp(thumbsDown,"cursor","default");}}
function scrollUp(){thumbsScroll(1);}
function scrollDown(){thumbsScroll(-1);}
return{init:function(slideContainer,imageURLs,thumbContainer,thumbURLs){var image;var slide;var thumb;var thumbImage;container=slideContainer;imagesToLoad=imageURLs.length;for(var i=0;i<imagesToLoad;i+=1){image=new Image();image.onload=function(){fadeImage(this);};image.src=imagesDir+imageURLs[i];slide=document.createElement("P");slide.appendChild(image);container.appendChild(slide);if(thumbContainer){thumbs=thumbContainer;thumbImage=new Image();thumbImage.src=imagesDir+thumbURLs[i];thumb=document.createElement("P");thumb.id="t"+i;thumb.appendChild(thumbImage);thumb.onclick=function(){var num=parseInt(this.id.substring(1),10);SLIDESHOW.gotoSlide(num);};thumbsUp=document.getElementById("thumbs-up");thumbsDown=document.getElementById("thumbs-down");thumbsUp.onclick=scrollUp;thumbsDown.onclick=scrollDown;thumbs.appendChild(thumb);}}
if(thumbs){updateArrows();}
offset=container.offsetLeft;slideWidth=slide.offsetWidth;fadeInterval=setInterval(updateFades,frameRate);},gotoSlide:function(num){var left;if(!isAnimating){if(num!==current){duration=standardDuration*Math.ceil(PHI*Math.abs(current-num));left=container.style.left||offset;start=parseInt(left,10);delta=(offset-(num*slideWidth))-start;isAnimating=true;current=num;slideInterval=setInterval(updateSlides,frameRate);}}},nextSlide:function(){if(current<(images.length-1)){SLIDESHOW.gotoSlide(current+1);}},prevSlide:function(){if(current>0){SLIDESHOW.gotoSlide(current-1);}}};}();
