function ImageQueue(B,A){this.imageData=B;this.loadedImages=new Array(B.length);this.imageIdx=A;this.lastIdx=-1}ImageQueue.prototype.init=function(){this.load()};ImageQueue.prototype.nextIndex=function(){if(!((this.imageIdx!=this.lastIdx)&&(this.get(this.imageIdx)===null))){var C=-1,A=-1;for(var B=0,D=this.loadedImages.length;B<D;B++){if((this.lastIdx>B)&&(!this.loadedImages[B])){C=B}else{if(A>-1){break}else{if((this.lastIdx<B)&&(!this.loadedImages[B])){A=B}}}}if(A>-1){this.imageIdx=A}else{this.imageIdx=C}}};ImageQueue.prototype.get=function(A){var B=this.loadedImages[A];if(B){if(B.complete){return B}else{return null}}else{this.imageIdx=A}return null};ImageQueue.prototype.load=function(){var D=document.createElement("img");var C=this.imageData[this.imageIdx];this.lastIdx=this.imageIdx;this.loadedImages[this.lastIdx]=D;var B=this;var A=function(E){B.nextIndex();if(B.imageIdx!=-1){B.load()}if(this.addEventListener){this.removeEventListener("load",A,false)}else{if(this.attachEvent){this.detachEvent("onload",A)}}};if(D.addEventListener){D.addEventListener("load",A,false)}else{if(D.attachEvent){D.attachEvent("onload",A)}}D.height=C.height;D.width=C.width;D.src=C.filename;this.lastIdx=this.imageIdx};function ImageSeries(){this.imageWidth=0;this.imageHeight=0;this.images=null}ImageSeries.prototype.init=function(){ISUtils.addSeries(this)};var ISUtils={moar:null,series:[],addSeries:function(B){for(var A=0;A<this.series.length;A++){if(B===this.series[A]){return }}this.series.push(B)},getAllSeries:function(){return this.series},doMoar:function(B){div=document.createElement("div");div.className="ssMoar";var A=document.createElement("a");A.appendChild(document.createTextNode(this.moar));EventUtils.attachClick(A,B);div.appendChild(A);return div},getShortText:function(C,A){var B;if(!(B=C.textShort)){B=StringUtils.shortenText(C.data,38,A);if(B.length<C.data.length){B+=" ..."}B=B.replace(new RegExp("\\r\\n","g"),"<br />");C.textShort=B}return B}};Slideshow.prototype=new ImageSeries;function Slideshow(A){this.currentImageIndex=-1;this.slides=["slideshowImg","slideshowImgSpare"];this.slideDivInUse=0;this.FrameRate=50;this.forward=true;this.imageAvailable=false;this.swapTimeout=4000;this.loadDelay=500;this.lastSwapTime=0;this.fadeInProgress=false;this.fadeFinish=2000;this.images=A;this.containerHeight=250;this.data=null;this.textDivBgColour=null;this.url=null;this.largeImage=false;this.loadIdx=-1;this.viewIdx=-1;this.isDisplay=false;this.thread=null;this.imageQueue=null;this.indexSet=false}Slideshow.prototype.init=function(){ImageSeries.prototype.init.call(this);if(!this.images[0]){return }this.currentImageIndex=(Math.ceil(Math.random()*this.images.length))-2;if(this.images[0].data){if(this.images[0].dataObjects.length>0){this.largeImage=true}var B=document.getElementById("slideshowContainer");var A=this.containerHeight+"px";B.style.height=A;for(var C=0;C<this.slides.length;C++){document.getElementById(this.slides[C]).style.height=A}this.fadeFinish=500}this.imageQueue=new ImageQueue(this.images,this.currentImageIndex+1);this.imageQueue.init();this.loadImage();me=this;this.thread=window.setInterval(function(){me.manage()},this.FrameRate)};Slideshow.prototype.manage=function(){if(!this.imageAvailable){this.loadImage()}else{if(this.fadeInProgress){this.doFade()}else{if((((this.getTime()-this.lastSwapTime)>=this.swapTimeout))||(this.lastSwapTime===0)){this.swapImage()}}}};Slideshow.prototype.display=function(){if(this.isDisplay){return }document.getElementById("slideshowContainer").style.visibility="visible";this.isDisplay=true};Slideshow.prototype.loadImage=function(){var B;this.imageAvailable=false;var A=0;if(this.forward){A=this.currentImageIndex+1}else{A=this.loadIdx-1;if(A<0){A=this.images.length-1}}if((tmpImg=this.imageQueue.get(A))===null){return }if((this.images[0].data)&&(this.lastSwapTime===0)){this.lastSwapTime=this.getTime()+(this.loadDelay-this.swapTimeout)}this.imageAvailable=true;this.currentImageIndex=A;this.scratch=tmpImg;me=this;this.loadIdx=this.currentImageIndex;if(this.largeImage){this.largeImageObj=this.images[this.currentImageIndex].dataObjects[0]}if(this.images[this.currentImageIndex].data){this.data=ISUtils.getShortText(this.images[this.currentImageIndex],this.textNumLines)}if(this.currentImageIndex>=(this.images.length-1)){this.currentImageIndex=-1}this.forward=true};Slideshow.prototype.showImage=function(A){if(!this.imageWindow){this.imageWindow=new ImageWindow(this)}this.imageWindow.show(A)};Slideshow.prototype.swapImage=function(){this.lastSwapTime=this.getTime();var E;E=document.getElementById(this.slides[this.slideDivInUse]);if(E.lastChild.nodeName!="IMG"){var D=document.createElement("img");if((this.url!==null)||(this.largeImage)){var C;var B=this;if(this.largeImage){C=function(F){B.showImage(B.viewIdx)}}else{var A=this.url;C=function(F){window.location=A}}D.style.cursor="pointer";EventUtils.attachClick(D,C)}D.height=this.scratch.height;D.width=this.scratch.width;D.src=this.scratch.src;E.appendChild(D);ImageUtils.centre(D,this.imageWidth,this.imageHeight)}else{if(this.images.length==1){window.clearInterval(this.thread);return }E.lastChild.height=this.scratch.height;E.lastChild.width=this.scratch.width;E.lastChild.src=this.scratch.src;ImageUtils.centre(E.lastChild,this.imageWidth,this.imageHeight)}this.viewIdx=this.loadIdx;if(this.data!==null){E.firstChild.innerHTML=this.data}this.imageAvailable=false;E.style.zIndex=2;E.style.visibility="visible";this.lastSwapTime=this.getTime();this.doFade()};Slideshow.prototype.doFade=function(){var A=Math.ceil(((this.getTime()-this.lastSwapTime)/this.fadeFinish)*100);if(A>=100){A=100;var B=document.getElementById(this.slides[this.slideDivInUse^1]);B.style.visibility="hidden";B.style.zIndex=2;B=document.getElementById(this.slides[this.slideDivInUse]);B.style.zIndex=1;this.slideDivInUse=(this.slideDivInUse)^1;this.fadeInProgress=false}else{this.fadeInProgress=true}if(!B){var B=document.getElementById(this.slides[this.slideDivInUse])}B.style.filter="alpha(opacity="+A+")";if(A==100){A=1}else{A=A/100}B.style.opacity=A};Slideshow.prototype.getTime=function(){var A=new Date();return A.valueOf()};SlideshowTB.prototype=new Slideshow;SlideshowTB.prototype.constructor=Slideshow;function SlideshowTB(A){this.swapEvents=[];this.fadeEvents=[];this.toolbar=null;this.toolbarVisible=false;Slideshow.apply(this,arguments);this.swapTimeout=5000;this.containerHeight=260;this.textNumLines=6;this.isNav=null}SlideshowTB.prototype.init=function(){Slideshow.prototype.init.call(this);this.toolbar=document.createElement("div");this.toolbar.className="toolbar";this.toolbar.style.visibility="hidden";var C;var B=this;if(this.largeImage){var A=function(D){B.showImage(B.viewIdx)};this.toolbar.appendChild(ISUtils.doMoar(A))}if(this.images.length>1){this.isNav=new ISNav(this,function(D){B.registerNavClick(D)});this.isNav.show(this.toolbar);this.fadeEvents.push(function(){B.unsetNav()});this.swapEvents.push(function(){B.isNav.updatePicNum();B.isNav.updateLabel()})}C=document.getElementById("slideshowContainer");C.appendChild(this.toolbar)};SlideshowTB.prototype.registerNavClick=function(B){var A=this.isNav.navActive;if(A!=null){return }if(B.target){A=B.target}else{if(B.srcElement){A=B.srcElement}}if(A.className=="back"){this.forward=false}this.lastSwapTime=1;this.isNav.navActive=A;this.isNav.setNavImage(true)};SlideshowTB.prototype.unsetNav=function(){if(this.isNav.navActive==null){return }this.isNav.setNavImage(false);this.isNav.navActive=null};SlideshowTB.prototype.swapImage=function(){Slideshow.prototype.swapImage.call(this);for(var A=0;A<this.swapEvents.length;A++){this.swapEvents[A]()}};SlideshowTB.prototype.getISIndex=function(){return this.isNav.picNum};SlideshowTB.prototype.doFade=function(){Slideshow.prototype.doFade.call(this);if(!this.toolbarVisible&&!this.fadeInProgress){this.toolbar.style.visibility="visible";this.toolbarVisible=true}if(!this.fadeInProgress){for(var A=0,B=this.fadeEvents.length;A<B;A++){this.fadeEvents[A]()}}};function ISNav(A,B){this.prefix="ss";this.picNum=0;this.images=A.images;this.navClickEvent=B;this.navActive=null;this.labelDiv=null}ISNav.prototype.navImgDir=null;ISNav.prototype.imgCountText=null;ISNav.prototype.setNavImage=function(B){if(!this.navActive){return }var A=this.navActive.className;A=A.substring(0,1).toUpperCase()+A.substring(1);this.navActive.style.backgroundImage="url('"+this.navImgDir+this.prefix+A+"_"+((B)?"a":"n")+".gif')"};ISNav.prototype.show=function(A){var B=this;var C=function(G){EventUtils.attachClick(G,B.navClickEvent)};var F=document.createElement("div");F.className="nav";div=document.createElement("div");div.className="back";F.appendChild(div);C(div);var E=document.createElement("div");E.className="imgLabel";E.appendChild(document.createTextNode(" "));this.labelDiv=E;F.appendChild(E);div=document.createElement("div");div.className="next";F.appendChild(div);C(div);var D=new Image();D.src=this.navImgDir+this.prefix+"Next_a.gif";D=new Image();D.src=this.navImgDir+this.prefix+"Back_a.gif";A.appendChild(F)};ISNav.prototype.updatePicNum=function(){var A=this.images.length;if((this.navActive)&&(this.navActive.className=="back")){this.picNum--;if(this.picNum==0){this.picNum=A}}else{this.picNum++}if(this.picNum>A){this.picNum=(this.picNum%A)}};ISNav.prototype.updateLabel=function(){this.labelDiv.innerHTML=StringUtils.labelReplace(this.imgCountText,[this.picNum,this.images.length])};function ImageWindow(A){this.imageWindow=null;this.isNav=null;this.rootDivId="SSLargeImg";this.imageSeries=A;this.newWin=true}ImageWindow.prototype.imageHeight=0;ImageWindow.prototype.imageWidth=0;ImageWindow.prototype.imgLoadingText="set loading text!";ImageWindow.prototype.show=function(O,H){var T=this.imageSeries.images[O];var L;var N;var E;var S=this;var A=false;var R=-1;if(this.imageSeries.images.length>1){if(!H){R=this.imageSeries.getISIndex()}else{R=this.isNav.picNum}}var C=function(V){G.style.display="none";N.style.display="inline";if(R!=-1){S.isNav.setNavImage(false);S.isNav.activeNav=null;S.isNav.updateLabel();if((S.newWin)&&(O==S.isNav.images.length-1)){S.isNav.picNum=0}}};if(!this.imageWindow){this.imageWindow=document.getElementById(this.rootDivId)}if(!this.imageWindow){this.imageWindow=document.createElement("div");A=true;this.imageWindow.setAttribute("id",this.rootDivId);var M=document.getElementById("content_container");this.imageWindow.style.top=DOMTools.getOffsetTop(M)+"px";var D=DOMTools.getOffsetLeft(M);if((document.all)&&(!window.addEventListener)){D++}D+=2;this.imageWindow.style.left=D+"px";var B=document.createElement("div");B.className="header";var Q=document.createElement("div");Q.className="closeButton";var I=function(V){S.imageWindow.style.display="none"};WindowRegistry.register(I,S.imageWindow);EventUtils.attachClick(Q,I);B.appendChild(Q);this.imageWindow.appendChild(B);var P=document.createElement("div");P.className="content";this.imageWindow.appendChild(P);var U=document.createElement("div");U.setAttribute("id","SSLargeImgContainer");U.style.height=this.imageHeight+"px";U.style.width=this.imageWidth+"px";E=document.createElement("div");N=document.createElement("img");if(N.addEventListener){N.addEventListener("load",C,false)}else{if(N.attachEvent){N.attachEvent("onload",C)}}N.style.display="none";U.appendChild(E);E.appendChild(N);var G=document.createElement("div");G.setAttribute("id","SSLoadMsg");G.className="loadMsg";G.style.height="26px";G.style.width="180px";G.appendChild(document.createTextNode(this.imgLoadingText));N.setAttribute("src",T.dataObjects[0].filename);N.setAttribute("alt",T.dataObjects[0].alt);N.setAttribute("height",T.dataObjects[0].height);N.setAttribute("width",T.dataObjects[0].width);E.style.height=T.dataObjects[0].height+"px";E.style.width=T.dataObjects[0].width+"px";E.appendChild(G);DOMTools.centre(G);P.appendChild(U);L=document.createElement("div");L.setAttribute("id","SSLargeImgText");if(R!=-1){var J=document.createElement("div");J.className="toolbar";var S=this;var F=function(W){if(W.target){active=W.target}else{if(W.srcElement){active=W.srcElement}}S.isNav.navActive=active;S.isNav.setNavImage(true);S.isNav.updatePicNum();var V=S.isNav.picNum-1;S.show(V,true)};this.isNav=new ISNav(this.imageSeries,function(V){F(V)});this.isNav.picNum=R;this.isNav.show(J);this.imageWindow.appendChild(J)}this.imageWindow.appendChild(L);document.body.appendChild(this.imageWindow)}else{this.newWin=false;L=document.getElementById("SSLargeImgText");var K=document.getElementById("SSLargeImgContainer").firstChild;N=K.firstChild;if((navigator.userAgent.toString().indexOf("Safari")>-1)||(navigator.appName=="Opera")){N=document.createElement("img");K.removeChild(K.firstChild);K.insertBefore(N,K.firstChild);N.addEventListener("load",C,false)}E=N.parentNode;E.style.height=T.dataObjects[0].height+"px";E.style.width=T.dataObjects[0].width+"px";N.style.display="none";var G=K.lastChild;DOMTools.centre(G);G.style.display="inline";N.setAttribute("src",T.dataObjects[0].filename);N.setAttribute("alt",T.dataObjects[0].alt);N.setAttribute("height",T.dataObjects[0].height);N.setAttribute("width",T.dataObjects[0].width);if(R!=-1){this.isNav.picNum=R}}L.innerHTML=T.data.replace(new RegExp("\\r\\n","g"),"<br />");WindowRegistry.notifyOpen(this.imageWindow);this.imageWindow.style.display="inline";DOMTools.centre(E);E.style.paddingTop=E.style.marginTop;E.style.marginTop="0px"};ISBasic.prototype=new ImageSeries;function ISBasic(A){this.images=A;this.imagePrefix="ISBidx_";this.textNumLines=7;this.containerId=null}ISBasic.prototype.init=function(){ImageSeries.prototype.init.call(this);if(this.images.length==0){return }var G=(!this.images[0].dataObjects)||(this.images[0].dataObjects.length>0);var H=this;if(G){var I=function(J){var K;if(J.target){K=J.target}else{if(J.srcElement){K=J.srcElement}}while((K.className!="container")&&(K.className!="container_last")){K=K.parentNode}H.viewIdx=Number(K.id.toString().replace(H.imagePrefix,""));H.showImage()};this.viewIdx=-1}var A=document.getElementById(this.containerId);for(var F=0,D=this.images.length;F<D;F++){var C=document.createElement("div");C.setAttribute("id",this.imagePrefix+F);C.className=(F+1==this.images.length)?"container_last":"container";var B=document.createElement("div");B.className="img";B.style.height=this.imageHeight+"px";B.style.width=this.imageWidth+"px";var E=ImageUtils.newImage(this.images[F]);B.appendChild(E);if(E.attachEvent){E.attachEvent("onload",function(J){ImageUtils.centre(E,this.imageWidth,this.imageHeight)})}else{ImageUtils.centre(E,this.imageWidth,this.imageHeight)}if(G){B.style.cursor="pointer";EventUtils.attachClick(B,I)}C.appendChild(B);if(this.images[F].data){B=document.createElement("div");B.className="text";B.innerHTML=ISUtils.getShortText(this.images[F],this.textNumLines);C.appendChild(B);if(G){B=document.createElement("div");B.className="toolbar";B.appendChild(ISUtils.doMoar(I));C.appendChild(B)}}A.appendChild(C)}};ISBasic.prototype.getISIndex=function(){return this.viewIdx+1};ISBasic.prototype.showImage=function(){if(!this.imageWindow){this.imageWindow=new ImageWindow(this)}this.imageWindow.show(this.viewIdx)};