var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};Object.extend=function(A,B){for(property in B){A[property]=B[property]}return A};Function.prototype.bind=function(B){var A=this;return function(){return A.apply(B,arguments)}};Function.prototype.bindAsEventListener=function(B){var A=this;return function(C){A.call(B,C||window.event)}};function proto$(){if(arguments.length==1){return B(arguments[0])}var A=[];$c(arguments).each(function(C){A.push(B(C))});return A;function B(C){if(typeof C=="string"){C=document.getElementById(C)}return C}}if(!window.Element){var Element=new Object()}Object.extend(Element,{remove:function(A){A=proto$(A);A.parentNode.removeChild(A)},hasClassName:function(B,C){B=proto$(B);if(!B){return }var A=false;B.className.split(" ").each(function(D){if(D==C){A=true}});return A},addClassName:function(A,B){A=proto$(A);Element.removeClassName(A,B);A.className+=" "+B},removeClassName:function(B,C){B=proto$(B);if(!B){return }var A="";B.className.split(" ").each(function(E,D){if(E!=C){if(D>0){A+=" "}A+=E}});B.className=A},cleanWhitespace:function(A){A=proto$(A);$c(A.childNodes).each(function(B){if(B.nodeType==3&&!/\S/.test(B.nodeValue)){Element.remove(B)}})},find:function(A,B){A=proto$(A)[B];while(A.nodeType!=1){A=A[B]}return A}});var Position={cumulativeOffset:function(B){var A=0,C=0;do{A+=B.offsetTop||0;C+=B.offsetLeft||0;B=B.offsetParent}while(B);return[C,A]}};document.getElementsByClassName=function(B){var A=document.getElementsByTagName("*")||document.all;var C=[];$c(A).each(function(D){if(Element.hasClassName(D,B)){C.push(D)}});return C};Array.prototype.iterate=function(B){for(var A=0;A<this.length;A++){B(this[A],A)}};if(!Array.prototype.each){Array.prototype.each=Array.prototype.iterate}function $c(C){var B=[];for(var A=0;A<C.length;A++){B.push(C[A])}return B}var fx=new Object();fx.Base=function(){};fx.Base.prototype={setOptions:function(A){this.options={duration:500,onComplete:"",transition:fx.sinoidal};Object.extend(this.options,A||{})},step:function(){var B=(new Date).getTime();if(B>=this.options.duration+this.startTime){this.now=this.to;clearInterval(this.timer);this.timer=null;if(this.options.onComplete){setTimeout(this.options.onComplete.bind(this),10)}}else{var A=(B-this.startTime)/(this.options.duration);this.now=this.options.transition(A)*(this.to-this.from)+this.from}this.increase()},custom:function(B,A){if(this.timer!=null){return }this.from=B;this.to=A;this.startTime=(new Date).getTime();this.timer=setInterval(this.step.bind(this),13)},hide:function(){this.now=0;this.increase()},clearTimer:function(){clearInterval(this.timer);this.timer=null}};fx.Layout=Class.create();fx.Layout.prototype=Object.extend(new fx.Base(),{initialize:function(B,A){this.el=proto$(B);this.el.style.overflow="hidden";this.iniWidth=this.el.offsetWidth;this.iniHeight=this.el.offsetHeight;this.setOptions(A)}});fx.Height=Class.create();Object.extend(Object.extend(fx.Height.prototype,fx.Layout.prototype),{increase:function(){this.el.style.height=this.now+"px"},toggle:function(){if(this.el.offsetHeight>0){this.custom(this.el.offsetHeight,0)}else{this.custom(0,this.el.scrollHeight)}}});fx.Width=Class.create();Object.extend(Object.extend(fx.Width.prototype,fx.Layout.prototype),{increase:function(){this.el.style.width=this.now+"px"},toggle:function(){if(this.el.offsetWidth>0){this.custom(this.el.offsetWidth,0)}else{this.custom(0,this.iniWidth)}}});fx.Opacity=Class.create();fx.Opacity.prototype=Object.extend(new fx.Base(),{initialize:function(B,A){this.el=proto$(B);this.now=1;this.increase();this.setOptions(A)},increase:function(){if(this.now==1&&(/Firefox/.test(navigator.userAgent))){this.now=0.9999}this.setOpacity(this.now)},setOpacity:function(A){if(A==0&&this.el.style.visibility!="hidden"){this.el.style.visibility="hidden"}else{if(this.el.style.visibility!="visible"){this.el.style.visibility="visible"}}if(window.ActiveXObject){this.el.style.filter="alpha(opacity="+A*100+")"}this.el.style.opacity=A},toggle:function(){if(this.now>0){this.custom(1,0)}else{this.custom(0,1)}}});fx.sinoidal=function(A){return((-Math.cos(A*Math.PI)/2)+0.5)};fx.linear=function(A){return A};fx.cubic=function(A){return Math.pow(A,3)};fx.circ=function(A){return Math.sqrt(A)};var fileLoadingImage="berkeley/images/litebox/loading.gif";var fileBottomNavCloseImage="berkeley/images/litebox/closelabel.gif";var resizeSpeed=6;var borderSize=0;var imageArray=new Array;var activeImage;if(resizeSpeed>10){resizeSpeed=10}if(resizeSpeed<1){resizeSpeed=1}resizeDuration=(11-resizeSpeed)*100;Object.extend(Element,{hide:function(){for(var B=0;B<arguments.length;B++){var A=proto$(arguments[B]);A.style.display="none"}},show:function(){for(var B=0;B<arguments.length;B++){var A=proto$(arguments[B]);A.style.display=""}},getWidth:function(A){A=proto$(A);return A.offsetWidth},setWidth:function(B,A){B=proto$(B);B.style.width=A+"px"},getHeight:function(A){A=proto$(A);return A.offsetHeight},setHeight:function(A,B){A=proto$(A);A.style.height=B+"px"},setTop:function(B,A){B=proto$(B);B.style.top=A+"px"},setSrc:function(A,B){A=proto$(A);A.src=B},setInnerHTML:function(A,B){A=proto$(A);A.innerHTML=B}});Array.prototype.removeDuplicates=function(){for(i=1;i<this.length;i++){if(this[i][0]==this[i-1][0]){this.splice(i,1)}}};Array.prototype.empty=function(){for(i=0;i<=this.length;i++){this.shift()}};var Lightbox=Class.create();Lightbox.prototype={initialize:function(){if(!document.getElementsByTagName){return }var N=document.getElementsByTagName("a");for(var T=0;T<N.length;T++){var F=N[T];var V=String(F.getAttribute("rel"));if(F.getAttribute("href")&&(V.toLowerCase().match("lightbox"))){F.onclick=function(){myLightbox.start(this);return false}}}var W=document.getElementsByTagName("body").item(0);var G=document.createElement("div");G.setAttribute("id","overlay");G.onclick=function(){myLightbox.end();return false};W.appendChild(G);var M=document.createElement("div");M.setAttribute("id","lightbox");M.style.display="none";W.appendChild(M);var O=document.createElement("div");O.setAttribute("id","bottomNav");M.appendChild(O);var U=document.createElement("div");U.setAttribute("id","outerImageContainer");M.appendChild(U);var L=document.createElement("div");L.setAttribute("id","imageContainer");U.appendChild(L);var I=document.createElement("img");I.setAttribute("id","lightboxImage");L.appendChild(I);var Q=document.createElement("div");Q.setAttribute("id","hoverNav");L.appendChild(Q);var R=document.createElement("a");R.setAttribute("id","prevLink");R.setAttribute("href","#");Q.appendChild(R);var C=document.createElement("a");C.setAttribute("id","nextLink");C.setAttribute("href","#");Q.appendChild(C);var S=document.createElement("div");S.setAttribute("id","loading");L.appendChild(S);var K=document.createElement("img");K.setAttribute("src",fileLoadingImage);S.appendChild(K);var J=document.createElement("span");J.innerHTML="<span>Loading or</span>";S.appendChild(J);var A=document.createElement("a");A.setAttribute("id","loadingLink");A.setAttribute("href","#");A.innerHTML="<span>&nbsp;Cancel&nbsp;</span>";A.onclick=function(){myLightbox.end();return false};S.appendChild(A);var E=document.createElement("div");E.setAttribute("id","imageDataContainer");E.className="clearfix";M.appendChild(E);var D=document.createElement("div");D.setAttribute("id","imageData");E.appendChild(D);var P=document.createElement("div");P.setAttribute("id","imageDetails");D.appendChild(P);var H=document.createElement("span");H.setAttribute("id","caption");P.appendChild(H);var B=document.createElement("span");B.setAttribute("id","numberDisplay");P.appendChild(B);var X=document.createElement("a");X.setAttribute("id","bottomNavClose");X.setAttribute("href","#");X.innerHTML="<u>C</u>lose";X.onclick=function(){myLightbox.end();return false};O.appendChild(X);overlayEffect=new fx.Opacity(G,{duration:300});overlayEffect.hide();imageEffect=new fx.Opacity(I,{duration:350,onComplete:function(){imageDetailsEffect.custom(0,1);imageCloseEffect.custom(0,1);navEffect.custom(0,1)}});imageEffect.hide();imageDetailsEffect=new fx.Opacity("imageDataContainer",{duration:400});imageDetailsEffect.hide();imageCloseEffect=new fx.Opacity("bottomNav",{duration:400});imageCloseEffect.hide();navEffect=new fx.Opacity("hoverNav",{duration:100});navEffect.hide()},start:function(G){hideSelectBoxes();var C=getPageSize();Element.setHeight("overlay",C[1]);overlayEffect.custom(0,0.4);imageArray=[];imageNum=0;if(!document.getElementsByTagName){return }var E=document.getElementsByTagName("a");if((G.getAttribute("rel")=="lightbox")){imageArray.push(new Array(G.getAttribute("href"),G.getAttribute("title")))}else{for(var D=0;D<E.length;D++){var B=E[D];if(B.getAttribute("href")&&(B.getAttribute("rel")==G.getAttribute("rel"))){imageArray.push(new Array(B.getAttribute("href"),B.getAttribute("title")))}}imageArray.removeDuplicates();while(imageArray[imageNum][0]!=G.getAttribute("href")){imageNum++}}var C=getPageSize();var A=getPageScroll();var F=A[1]+(C[3]/15);Element.setTop("lightbox",F);Element.show("lightbox");this.changeImage(imageNum)},changeImage:function(A){activeImage=A;Element.show("loading");imageDetailsEffect.hide();imageCloseEffect.hide();imageEffect.hide();navEffect.hide();Element.hide("prevLink");Element.hide("nextLink");Element.hide("numberDisplay");imgPreloader=new Image();imgPreloader.onload=function(){Element.setSrc("lightboxImage",imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height)};imgPreloader.src=imageArray[activeImage][0]},resizeImageContainer:function(B,A){this.wCur=Element.getWidth("outerImageContainer");this.hCur=Element.getHeight("outerImageContainer");wDiff=(this.wCur-borderSize*2)-B;hDiff=(this.hCur-borderSize*2)-A;reHeight=new fx.Height("outerImageContainer",{duration:resizeDuration});reHeight.custom(Element.getHeight("outerImageContainer"),A+(borderSize*2));reWidth=new fx.Width("outerImageContainer",{duration:resizeDuration,onComplete:function(){imageEffect.custom(0,1)}});reWidth.custom(Element.getWidth("outerImageContainer"),B+(borderSize*2));if((hDiff==0)&&(wDiff==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){pause(250)}else{pause(100)}}Element.setHeight("prevLink",A);Element.setHeight("nextLink",A);Element.setWidth("imageDataContainer",B+(borderSize*2));Element.setWidth("hoverNav",B+(borderSize*2));Element.setWidth("bottomNav",B+(borderSize*2));this.showImage()},showImage:function(){Element.hide("loading");myLightbox.updateDetails();this.preloadNeighborImages()},updateDetails:function(){Element.show("caption");Element.setInnerHTML("caption",imageArray[activeImage][1]);if(imageArray.length>1){Element.show("numberDisplay");Element.setInnerHTML("numberDisplay","Project Image "+eval(activeImage+1)+" of "+imageArray.length)}myLightbox.updateNav()},updateNav:function(){if(activeImage!=0){Element.show("prevLink");document.getElementById("prevLink").onclick=function(){myLightbox.changeImage(activeImage-1);return false}}if(activeImage!=(imageArray.length-1)){Element.show("nextLink");document.getElementById("nextLink").onclick=function(){myLightbox.changeImage(activeImage+1);return false}}this.enableKeyboardNav()},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction},disableKeyboardNav:function(){document.onkeydown=""},keyboardAction:function(A){if(A==null){keycode=event.keyCode}else{keycode=A.which}key=String.fromCharCode(keycode).toLowerCase();if((key=="x")||(key=="o")||(key=="c")){myLightbox.end()}else{if(key=="p"){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1)}}else{if(key=="n"){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1)}}}}},preloadNeighborImages:function(){if((imageArray.length-1)>activeImage){preloadNextImage=new Image();preloadNextImage.src=imageArray[activeImage+1][0]}if(activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=imageArray[activeImage-1][0]}},end:function(){this.disableKeyboardNav();Element.hide("lightbox");imageEffect.toggle();overlayEffect.custom(0.4,0);showSelectBoxes()}};function getPageScroll(){var A;if(self.pageYOffset){A=self.pageYOffset}else{if(document.documentElement&&document.documentElement.scrollTop){A=document.documentElement.scrollTop}else{if(document.body){A=document.body.scrollTop}}}arrayPageScroll=new Array("",A);return arrayPageScroll}function getPageSize(){var C,A;if(window.innerHeight&&window.scrollMaxY){C=document.body.scrollWidth;A=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){C=document.body.scrollWidth;A=document.body.scrollHeight}else{C=document.body.offsetWidth;A=document.body.offsetHeight}}var B,D;if(self.innerHeight){B=self.innerWidth;D=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){B=document.documentElement.clientWidth;D=document.documentElement.clientHeight}else{if(document.body){B=document.body.clientWidth;D=document.body.clientHeight}}}if(A<D){pageHeight=D}else{pageHeight=A}if(C<B){pageWidth=B}else{pageWidth=C}arrayPageSize=new Array(pageWidth,pageHeight,B,D);return arrayPageSize}function getKey(A){if(A==null){keycode=event.keyCode}else{keycode=A.which}key=String.fromCharCode(keycode).toLowerCase();if(key=="x"){}}function listenKey(){document.onkeypress=getKey}function showSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible"}}function hideSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden"}}function pause(B){var A=new Date();var C=A.getTime()+B;while(true){A=new Date();if(A.getTime()>C){return }}}function initLightbox(){myLightbox=new Lightbox()};