/*
 * Slideshow code.
 *
 * @author     Alex Adriaanse <alex@innovacomputing.com>
 * @copyright  Copyright (c) 2009 Innova Computing, L.L.C.
 */
Array.prototype.remove=function(c,b){var a=this.slice((b||c)+1||this.length);this.length=c<0?this.length+c:c;return this.push.apply(this,a)};function Slideshow(F,j,m,o,f,B){var k=30;var v=0;var q=1;var a=2;var i=F;var C=j;var A;var t;var D=o;var n=o-B;var l=f;var e=B;var E=0;var d=false;var u;var h;var c;var p;var s;var z;var g=function(){if(m.length==0){return}c=i.width();p=i.height();var H=2;$("#vt_loading_container").width(c).height(p);$("#vt_loading_container .vt_image_frame").width(c-H*2).height(p-H*2);z=$('<div id="vt_loading_container" class="vt_image_frame_container">  <div class="vt_image_frame">    <img src="/images/loading.gif" alt="" />  </div></div>');i.append(z);s=new ImageLoader();A=$.map(m,function(I,M){var O=c-H*2;var J=p-H*2;if(I.width>O&&I.width<O+k){O=I.width-k}else{if(I.width<O){O=I.width}}if(I.height>J&&I.height<J+k){J=I.height-k}else{if(I.height<J){J=I.height}}var N=s.getImage(I.url);N.width(I.width).height(I.height).addClass("vt_image");var L=$("<div />");L.addClass("vt_image_frame").append(N).width(O).height(J).css({left:Math.floor((c-O-H*2)/2)+"px",top:Math.floor((p-J-H*2)/2)+"px"});var R=$("<div />");R.addClass("vt_image_frame_container").append(L).width(c).height(p);I.imageElement=N;I.frameElement=L;I.containerElement=R;var P;if(I.width>O){P=q}else{if(I.height>J){P=a}else{P=v}}I.panDirection=P;var K=s.getImage(I.thumbnail_url);var Q=$("<a />");Q.attr("href",I.url).append(K).appendTo(C);I.thumbnailElement=K;if(M==0){s.load(I.imageElement)}s.load(K);return I});t={};$.each(A,function(I,J){t[J.url]=I;return true})};g();this.start=function(){if(m.length==0){return}r()};var r=function(){var H=A[E];s.onLoad(H.imageElement,function(){H.imageElement.css({marginLeft:"0px",marginTop:"0px"});h=H.containerElement;H.containerElement.hide().appendTo(i).fadeIn(l*1000,function(){h=undefined;if(typeof z!="undefined"){z.empty();z=undefined}w();x()})})};var w=function(){var H=A[E];H.thumbnailElement.addClass("displayed")};var G=function(){var H=A[E];H.thumbnailElement.removeClass("displayed")};var x=function(H){if(typeof H=="undefined"){H=true}var I=A[E];if(I.panDirection==v){if(!d){b(y,o)}return}b(function(){var K;var N;var L;var M;if(I.panDirection==q){N=I.imageElement.width()-I.frameElement.width();L="marginLeft"}else{N=I.imageElement.height()-I.frameElement.height();L="marginTop"}if(H){M="-"+N+"px"}else{M="0px"}var J={};J[L]=M;h=I.imageElement;I.imageElement.animate(J,n*1000,"linear",function(){h=undefined;if(d){x(!H)}else{b(y,e)}})},e)};var b=function(I,H){if(typeof u!="undefined"){window.clearTimeout(u)}u=window.setTimeout(function(){u=undefined;I()},H*1000)};var y=function(){G();E++;if(E>=A.length){E=0}r()};this.moveTo=function(H){d=true;var J=t[H];if(J==E){return}var I=A[E];if(typeof u!="undefined"){window.clearTimeout(u);u=undefined}if(typeof h!="undefined"){h.stop(true,false);h=undefined}s.clearOnLoad(I.imageElement);G();E=J;var K=A[E];s.load(K.imageElement);K.imageElement.css({marginLeft:"0px",marginTop:"0px"});K.containerElement.fadeTo(1,1).appendTo(i);w();x()};this.freeze=function(){d=true};this.resume=function(){d=false;var H=A[E];if(H.panDirection==v){b(y,o)}}}function ImageLoader(){var c=[];var g=[];var b=[];this.getImage=function(h){var j=$("<img />");var k={element:j,url:h,loaded:false,callbacks:[]};var i=c.push(k)-1;j.data("ImageLoader::imageId",i);b.push(i);return j};var a=function(h){return h.data("ImageLoader::imageId")};this.load=function(i){var h=a(i);e(h)};var e=function(h){var j=$.inArray(h,b);if(j==-1){return}b.remove(j);g.push(h);var i=c[h];i.element.load(function(){d(h)}).attr("src",i.url)};var d=function(i){var j=c[i];j.loaded=true;var h=$.inArray(i,g);g.remove(h);$.each(j.callbacks,function(k,l){l()});j.callbacks=[];f()};var f=function(){if(b.length>0&&g.length==0){e(b[0])}};this.loadAll=function(){f()};this.onLoad=function(i,k){var h=a(i);var j=c[h];if(j.loaded){k()}else{j.callbacks.push(k)}};this.clearOnLoad=function(h){c[a(h)].callbacks=[]}};