// 1/10/2008
var fileLoadingImage="/elements/images/lightbox/loading.gif";var fileBottomNavCloseImage="/elements/images/lightbox/closelabel.gif";var animate=true;var resizeSpeed=7;var borderSize=10;var imageArray=new Array;var activeImage;if(animate==true){overlayDuration=0.2;if(resizeSpeed>10){resizeSpeed=10}if(resizeSpeed<1){resizeSpeed=1}resizeDuration=(11-resizeSpeed)*0.15}else{overlayDuration=0;resizeDuration=0}Object.extend(Element,{getWidth:function(a){a=$(a);return a.offsetWidth},setWidth:function(a,w){a=$(a);a.style.width=w+"px"},setHeight:function(a,h){a=$(a);a.style.height=h+"px"},setTop:function(a,t){a=$(a);a.style.top=t+"px"},setSrc:function(a,b){a=$(a);a.src=b},setHref:function(a,b){a=$(a);a.href=b},setInnerHTML:function(a,b){a=$(a);a.innerHTML=b}});Array.prototype.removeDuplicates=function(){for(i=0;i<this.length;i++){for(j=this.length-1;j>i;j--){if(this[i][0]==this[j][0]){this.splice(j,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 b=document.getElementsByTagName('a');var c=document.getElementsByTagName('area');for(var i=0;i<b.length;i++){var d=b[i];var f=String(d.getAttribute('rel'));if(d.getAttribute('href')&&(f.toLowerCase().match('lightbox'))){d.onclick=function(){myLightbox.start(this);return false}}}for(var i=0;i<c.length;i++){var g=c[i];var f=String(g.getAttribute('rel'));if(g.getAttribute('href')&&(f.toLowerCase().match('lightbox'))){g.onclick=function(){myLightbox.start(this);return false}}}var h=document.getElementsByTagName("body").item(0);var j=document.createElement("div");j.setAttribute('id','overlay');j.style.display='none';j.onclick=function(){myLightbox.end()};h.appendChild(j);var k=document.createElement("div");k.setAttribute('id','lightbox');k.style.display='none';k.onclick=function(e){if(!e)var e=window.event;var a=Event.element(e).id;if(a=='lightbox'){myLightbox.end()}};h.appendChild(k);var l=document.createElement("div");l.setAttribute('id','outerImageContainer');k.appendChild(l);if(animate){Element.setWidth('outerImageContainer',250);Element.setHeight('outerImageContainer',250)}else{Element.setWidth('outerImageContainer',1);Element.setHeight('outerImageContainer',1)}var m=document.createElement("div");m.setAttribute('id','imageContainer');l.appendChild(m);var n=document.createElement("img");n.setAttribute('id','lightboxImage');m.appendChild(n);var o=document.createElement("div");o.setAttribute('id','hoverNav');m.appendChild(o);var p=document.createElement("a");p.setAttribute('id','prevLink');p.setAttribute('href','#');o.appendChild(p);var q=document.createElement("a");q.setAttribute('id','prevViewPort');q.setAttribute('href','#');o.appendChild(q);var r=document.createElement("a");r.setAttribute('id','nextLink');r.setAttribute('href','#');o.appendChild(r);var s=document.createElement("a");s.setAttribute('id','nextViewPort');s.setAttribute('href','#');o.appendChild(s);var t=document.createElement("div");t.setAttribute('id','loading');m.appendChild(t);var u=document.createElement("a");u.setAttribute('id','loadingLink');u.setAttribute('href','#');u.onclick=function(){myLightbox.end();return false};t.appendChild(u);var v=document.createElement("img");v.setAttribute('src',fileLoadingImage);u.appendChild(v);var w=document.createElement("div");w.setAttribute('id','imageDataContainer');w.className='clearfix';k.appendChild(w);var x=document.createElement("div");x.setAttribute('id','imageData');w.appendChild(x);var y=document.createElement("div");y.setAttribute('id','imageDetails');x.appendChild(y);var z=document.createElement("div");z.setAttribute('id','caption');y.appendChild(z);var A=document.createElement("div");A.setAttribute('id','imageDescription');y.appendChild(A);var B=document.createElement("span");B.setAttribute('id','numberDisplay');y.appendChild(B);var C=document.createElement("div");C.setAttribute('id','bottomNav');x.appendChild(C);var D=document.createElement("a");D.setAttribute('id','bottomNavClose');D.setAttribute('href','#');D.onclick=function(){myLightbox.end();return false};C.appendChild(D);var E=document.createElement("img");E.setAttribute('src',fileBottomNavCloseImage);D.appendChild(E)},start:function(b){var c=b.getAttribute('href');if(c.indexOf('&')==-1){c=c+'?js=1'}else{c=c+'&js=1'}jQuery.ajax({type:"GET",url:c,dataType:"json",success:function(a){myLightbox.doBegin(a.imageId,a.imageUrl,a.title,a.description,a.width,a.height,a.rel,a.tagId)},error:function(a){alert('Unable to proceed - an error has occurred.')}})},doBegin:function(b,c,d,e,f,g,h,j){hideSelectBoxes();hideFlash();var k=getPageSize();Element.setHeight('overlay',k[1]);new Effect.Appear('overlay',{duration:overlayDuration,from:0.0,to:0.8});imageArray=[];imageNum=0;if(!document.getElementsByTagName){return}var l=document.getElementsByTagName('a');if(h=='lightbox'){imageArray.push(new Array(c,d,e,f,g));this.doChangeImage()}else{jQuery.ajax({type:"GET",url:"/elements/classes/remote/portfolioComponentToSecureService.cfc?method=RetrievePortfolioGroup_JSON&portfolioTagId="+j,dataType:"json",success:function(a){if(a.itemCount>0){for(var i=0;i<a.itemCount;i++){imageArray.push(new Array(a.items[i].imageUrl,a.items[i].title,a.items[i].description,a.items[i].width,a.items[i].height))}}imageArray.removeDuplicates();while(imageArray[imageNum][0]!=c){imageNum++}myLightbox.doChangeImage()},error:function(a){alert('Unable to proceed - image push error has occurred.')}})}},doChangeImage:function(){var a=getPageSize();var b=getPageScroll();var c=b[1]+(a[3]/10);Element.setTop('lightbox',c);Element.show('lightbox');this.changeImage(imageNum)},changeImage:function(a){activeImage=a;if(animate){Element.show('loading')}Element.hide('lightboxImage');Element.hide('hoverNav');Element.hide('prevLink');Element.hide('nextLink');Element.hide('prevViewPort');Element.hide('nextViewPort');Element.hide('imageDataContainer');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(a,b){this.widthCurrent=Element.getWidth('outerImageContainer');this.heightCurrent=Element.getHeight('outerImageContainer');var c=(a+(borderSize*2));var d=(b+(borderSize*2));this.xScale=(c/this.widthCurrent)*100;this.yScale=(d/this.heightCurrent)*100;wDiff=this.widthCurrent-c;hDiff=this.heightCurrent-d;if(!(hDiff==0)){new Effect.Scale('outerImageContainer',this.yScale,{scaleX:false,duration:resizeDuration,queue:'front'})}if(!(wDiff==0)){new Effect.Scale('outerImageContainer',this.xScale,{scaleY:false,delay:resizeDuration,duration:resizeDuration})}if((hDiff==0)&&(wDiff==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){pause(250)}else{pause(100)}}Element.setHeight('prevLink',b);Element.setHeight('nextLink',b);Element.setHeight('prevViewPort',b);Element.setHeight('nextViewPort',b);Element.setWidth('imageDataContainer',c);this.showImage()},showImage:function(){Element.hide('loading');new Effect.Appear('lightboxImage',{duration:resizeDuration,queue:'end',afterFinish:function(){myLightbox.updateDetails()}});this.preloadNeighborImages()},updateDetails:function(){Element.show('caption');Element.setInnerHTML('caption',imageArray[activeImage][1]);Element.setInnerHTML('imageDescription',imageArray[activeImage][2]);if(imageArray.length>1){Element.show('numberDisplay');Element.setInnerHTML('numberDisplay',"Image "+eval(activeImage+1)+" of "+imageArray.length)}new Effect.Parallel([new Effect.SlideDown('imageDataContainer',{sync:true,duration:resizeDuration,from:0.0,to:1.0}),new Effect.Appear('imageDataContainer',{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){var a=getPageSize();Element.setHeight('overlay',a[1]);myLightbox.updateNav()}})},updateNav:function(){Element.show('hoverNav');if(activeImage!=0){Element.show('prevLink');document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage-1);return false}}else if(document.location.pathname.indexOf('/content/samples/')==-1){Element.show('prevViewPort');document.getElementById('prevViewPort').onclick=function(){document.location.href='/content/samples/';return false}}if(activeImage!=(imageArray.length-1)){Element.show('nextLink');document.getElementById('nextLink').onclick=function(){myLightbox.changeImage(activeImage+1);return false}}else if(document.location.pathname.indexOf('/content/samples/')==-1){Element.show('nextViewPort');document.getElementById('nextViewPort').onclick=function(){document.location.href='/content/samples/';return false}}this.enableKeyboardNav()},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction},disableKeyboardNav:function(){document.onkeydown=''},keyboardAction:function(e){if(e==null){keycode=event.keyCode;escapeKey=27}else{keycode=e.keyCode;escapeKey=e.DOM_VK_ESCAPE}key=String.fromCharCode(keycode).toLowerCase();if((key=='x')||(key=='o')||(key=='c')||(keycode==escapeKey)){myLightbox.end()}else if((key=='p')||(keycode==37)){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1)}}else if((key=='n')||(keycode==39)){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');new Effect.Fade('overlay',{duration:overlayDuration});showSelectBoxes();showFlash()}};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 a,yScroll;if(window.innerHeight&&window.scrollMaxY){a=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){a=document.body.scrollWidth;yScroll=document.body.scrollHeight}else{a=document.body.offsetWidth;yScroll=document.body.offsetHeight}var b,windowHeight;if(self.innerHeight){b=self.innerWidth;windowHeight=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight}else if(document.body){b=document.body.clientWidth;windowHeight=document.body.clientHeight}if(yScroll<windowHeight){pageHeight=windowHeight}else{pageHeight=yScroll}if(a<b){pageWidth=b}else{pageWidth=a}arrayPageSize=new Array(pageWidth,pageHeight,b,windowHeight);return arrayPageSize};function getKey(e){if(e==null){keycode=event.keyCode}else{keycode=e.which}key=String.fromCharCode(keycode).toLowerCase();if(key=='x'){}};function listenKey(){document.onkeypress=getKey};function showSelectBoxes(){var a=document.getElementsByTagName("select");for(i=0;i!=a.length;i++){a[i].style.visibility="visible"}};function hideSelectBoxes(){var a=document.getElementsByTagName("select");for(i=0;i!=a.length;i++){a[i].style.visibility="hidden"}};function showFlash(){var a=document.getElementsByTagName("object");for(i=0;i!=a.length;i++){a[i].style.visibility="visible"}var b=document.getElementsByTagName("embeds");for(i=0;i!=b.length;i++){b[i].style.visibility="visible"}};function hideFlash(){var a=document.getElementsByTagName("object");for(i=0;i!=a.length;i++){a[i].style.visibility="hidden"}var b=document.getElementsByTagName("embeds");for(i=0;i!=b.length;i++){b[i].style.visibility="hidden"}};function pause(a){var b=new Date();c=null;do{var c=new Date()}while(c-b<a)};jQuery(document).ready(function(){myLightbox=new Lightbox()});
