var baseFilename="";var originalresw=0;var originalresh=0;var mainresw=0;var mainresh=0;var tileLevels=0;var baseTileLevel=-10;var tileHeight=400;var tileWidth=400;var thumbnailwidth=0;var thumbnailheight=0;var totalTilesWidth=0;var totalTilesHeight=0;var thisx=0;var thisy=0;var curtilex=0;var curtiley=0;var curtileh=0;var curtilew=0;var heightindex=0;var widthindex=0;var activeTiles=",";var fakeZoomLevelsAllowed=3;var extraZoomLevel=1;var galleryactive=0;function calculateTileLevels(){tileLevels=Math.floor(originalresw/800);if(originalresw%800<30)tileLevels-=1}function showDefaultImage(){galleryactive=0;thisx=0;thisy=0;var urlbase=baseFilename.substring(0,baseFilename.lastIndexOf("."));urlbase+="_md"+baseFilename.substring(baseFilename.lastIndexOf("."));document.getElementById("galleryimagescroll").innerHTML='<img src="'+urlbase+'" width="'+(mainresw)+'" height="'+(mainresh)+'" />';refreshOverlay()}function calculateTileNumbers(tileLevel){if(tileLevel>0){totalTilesWidth=Math.ceil((originalresw*extraZoomLevel)/((tileWidth*extraZoomLevel)*tileLevel));totalTilesHeight=Math.ceil((originalresh*extraZoomLevel)/((tileHeight*extraZoomLevel)*tileLevel))}}function doGallery(forcereload,firstload){if(document.getElementById){calculateTileLevels();if(!get_element("mastertile")){firstload=true;forcereload=true;galleryactive=1}doTiling(baseTileLevel,forcereload,firstload)}}function getTileUrl(tileLevel,tileCount){if(tileLevel<1)tileLevel=1;var urlbase=baseFilename.substring(0,baseFilename.lastIndexOf("."));urlbase+="_tl_"+tileLevel+"_"+tileCount+baseFilename.substring(baseFilename.lastIndexOf("."));return urlbase}function calculateImageDimensions(tileLevel,tileCount){heightindex=(tileCount%totalTilesHeight);if(heightindex==0)heightindex=totalTilesHeight;widthindex=Math.ceil(tileCount/totalTilesHeight);if(heightindex!=totalTilesHeight||(originalresh-(heightindex*tileHeight)==0)){curtileh=tileHeight*extraZoomLevel}else{curtileh=((originalresh*extraZoomLevel)/tileLevel)-((heightindex-1)*(tileHeight*extraZoomLevel))}if(widthindex!=totalTilesWidth||(originalresw-(widthindex*tileWidth)==0)){curtilew=tileWidth*extraZoomLevel}else{curtilew=((originalresw*extraZoomLevel)/tileLevel)-((widthindex-1)*(tileWidth*extraZoomLevel))}curtiley=((heightindex-1)*(tileHeight*extraZoomLevel));curtilex=((widthindex-1)*(tileWidth*extraZoomLevel))}function calculateTilesNeeded(tileLevel,xcoord,ycoord){var returnstring="";var count=1;var tileindex=new Array(totalTilesWidth);for(i=0;i<tileindex.length;i++){tileindex[i]=new Array(totalTilesHeight);for(j=0;j<tileindex[i].length;j++){tileindex[i][j]=count++}}var numVerticalTilesToUse=Math.ceil((mainresh+(thisy%(tileHeight*extraZoomLevel)))/(tileHeight*extraZoomLevel));var numHorizontalTilesToUse=Math.ceil((mainresw+(thisx%(tileWidth*extraZoomLevel)))/(tileWidth*extraZoomLevel));var tilemultiple=numVerticalTilesToUse*numHorizontalTilesToUse;var x=Math.ceil((xcoord+1)/(tileWidth*extraZoomLevel));var y=Math.ceil((ycoord+1)/(tileHeight*extraZoomLevel));var rowcounter=0;for(a=0;a<tilemultiple;a++){rowcounter++;if(y<=totalTilesHeight&&x<=totalTilesWidth){returnstring+=tileindex[x-1][y-1]+","}if(rowcounter<numVerticalTilesToUse){y++}else{rowcounter=0;y=Math.ceil((ycoord+1)/(tileHeight*extraZoomLevel));if(y==0)y=1;x++}}return returnstring}function doTiling(tileLevel,forcereload,firstload){if((thisx+mainresw)>((originalresw*extraZoomLevel)/(tileLevel)))thisx=((originalresw*extraZoomLevel)/tileLevel)-mainresw;if((thisy+mainresh)>((originalresh*extraZoomLevel)/(tileLevel)))thisy=((originalresh*extraZoomLevel)/tileLevel)-mainresh;if(thisx<0)thisx=0;if(thisy<0)thisy=0;if(firstload){document.getElementById("galleryimagescroll").innerHTML='';var mastertile=new Element('div',{'id':"mastertile",'styles':{'position':'relative','overflow':'hidden','zIndex':0,'height':(originalresh*extraZoomLevel)+"px",'width':(originalresw*extraZoomLevel)+"px",'left':0,'top':0}});get_element("galleryimagescroll").appendChild(mastertile);var tileshield=new Element('span',{'id':"tileshield",'styles':{'position':'absolute','height':mainresh+"px",'width':mainresw+"px",'left':find_position(get_element("galleryimagescroll")).x,'top':find_position(get_element("galleryimagescroll")).y}});get_element("galleryimagescroll").appendChild(tileshield)}if(forcereload){activeTiles=","}if(thumbdragenabled){get_element("galleryimagescroll").style.cursor="move"}calculateTileNumbers(tileLevel);var tileListString=calculateTilesNeeded(tileLevel,thisx,thisy);var alltiles=tileListString.split(",");for(i=0;i<alltiles.length;i++){if(alltiles[i].length>0){if(activeTiles.indexOf(","+alltiles[i]+",")==-1){drawTile(tileLevel,alltiles[i]);activeTiles+=alltiles[i]+","}}}get_element("mastertile").style.top=-thisy;get_element("mastertile").style.left=-thisx}function drawTile(tileLevel,tileNumber){calculateImageDimensions(tileLevel,tileNumber);var tile=new Element('img',{'id':"tile_"+tileLevel+"_"+tileNumber,'src':getTileUrl(tileLevel,tileNumber),'height':curtileh,'width':curtilew,'styles':{'position':'absolute','left':curtilex,'top':curtiley}});get_element("mastertile").appendChild(tile)}var safeToMouseOut=true;var safeToMouseOut2=true;function galleryMouseover(){safeToMouseOut2=false;hideNavOverlay(true);showOverlay()}function refreshOverlay(){hideNavOverlay(true);showOverlay()}function moveThumbOverlay(){thumbx=0;thumby=0;var totalLevels=((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1)+tileLevels+1;var activeLevel=baseTileLevel-(extraZoomLevel-1)+((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1);if(galleryactive==0)activeLevel++;if(activeLevel!=totalLevels){var totalWidthForThisLevel=(originalresw*extraZoomLevel);var totalWidthDivisor=(activeLevel-(fakeZoomLevelsAllowed-1));if(totalWidthDivisor>0)totalWidthForThisLevel=totalWidthForThisLevel/totalWidthDivisor;thumbx=Math.floor((100/totalWidthForThisLevel)*thisx);thumby=Math.floor((100/totalWidthForThisLevel)*thisy)}get_element("thumbselectoverlay").style.top=find_position(get_element("galleryimagescroll")).y+10+thumby;get_element("thumbselectoverlay").style.left=find_position(get_element("galleryimagescroll")).x+get_element("galleryimagescroll").offsetWidth-110+thumbx}function showOverlay(){calculateTileLevels();if(baseTileLevel==-10){baseTileLevel=tileLevels}var cursorstyle="pointer";if(thumbdragenabled){cursorstyle="move"}var navoverlay=new Element('span',{'id':"navoverlay",'onmouseover':"buttonMouseover()",'onmouseout':"buttonMouseout()",'styles':{'position':'absolute','zIndex':'5','left':find_position(get_element("galleryimagescroll")).x+10,'top':find_position(get_element("galleryimagescroll")).y+10}});var thumboverlay=new Element('span',{'id':"thumboverlay",'onmouseover':"buttonMouseover()",'onmouseout':"buttonMouseout()",'styles':{'position':'absolute','zIndex':'5','cursor':cursorstyle,'left':find_position(get_element("galleryimagescroll")).x+get_element("galleryimagescroll").offsetWidth-110,'top':find_position(get_element("galleryimagescroll")).y+10}});var totalLevels=((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1)+tileLevels+1;var activeLevel=baseTileLevel-(extraZoomLevel-1)+((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1);if(galleryactive==0)activeLevel++;var navbox="";if(totalLevels>1){navbox+="<center>";for(x=0;x<totalLevels;x++){if((x+1)==totalLevels){if((x+1)==activeLevel){navbox+='<a href="javascript:goToLevel('+(x+1)+');" class="gallery_selectedbottom"><img src="/s/i/i.gif" height="6" width="18" alt="" border="0"></a><br/>'}else{navbox+='<a href="javascript:goToLevel('+(x+1)+');" class="gallery_selectbottom"><img src="/s/i/i.gif" height="4" width="10" alt="" border="0"></a><br/>'}}else{if((x+1)==activeLevel){navbox+='<a href="javascript:goToLevel('+(x+1)+');" class="gallery_selected"><img src="/s/i/i.gif" height="10" width="18" alt="" border="0"></a><br/>'}else{navbox+='<a href="javascript:goToLevel('+(x+1)+');" class="gallery_selecttop"><img src="/s/i/i.gif" height="8" width="10" alt="" border="0"></a><br/>'}}}navbox+='</center><img src="/s/i/i.gif" height="3" width="1" alt="" border="0"><br/>'}navoverlay.setHTML('<a href="javascript:zoom(0,0,true);" class="icon_zoomin"><img src="/s/i/i.gif" height="20" width="20" alt="" border="0"></a><br/><img src="/s/i/i.gif" height="3" width="1" alt="" border="0"><br/>'+navbox+'<a href="javascript:zoom(0,0,false);" class="icon_zoomout"><img src="/s/i/i.gif" height="20" width="20" alt="" border="0"></a>');var urlbase=baseFilename.substring(0,baseFilename.lastIndexOf("."));urlbase+="_th"+baseFilename.substring(baseFilename.lastIndexOf("."));thumboverlay.setHTML('<img src="'+urlbase+'" style="border: 1px solid #000000" />');thumbselectwidth=0;thumbselectheight=0;thumbx=0;thumby=0;if(activeLevel==totalLevels){thumbselectwidth=100;thumbselectheight=Math.floor(originalresh/(originalresw/thumbselectwidth))}else{var totalWidthForThisLevel=(originalresw*extraZoomLevel);var totalWidthDivisor=(activeLevel-(fakeZoomLevelsAllowed-1));if(totalWidthDivisor>0)totalWidthForThisLevel=totalWidthForThisLevel/totalWidthDivisor;thumbselectwidth=Math.floor((100/totalWidthForThisLevel)*mainresw);thumbselectheight=Math.floor(originalresh/(originalresw/thumbselectwidth));thumbx=Math.floor((100/totalWidthForThisLevel)*thisx);thumby=Math.floor((100/totalWidthForThisLevel)*thisy)}thumbnailwidth=100;thumbnailheight=Math.floor(originalresh/(originalresw/thumbnailwidth));var thumbselectoverlay=new Element('span',{'id':"thumbselectoverlay",'onmouseover':"buttonMouseover()",'onmouseout':"buttonMouseout()",'styles':{'position':'absolute','zIndex':'5','cursor':cursorstyle,'border':'1px solid #FF0000','left':find_position(get_element("galleryimagescroll")).x+get_element("galleryimagescroll").offsetWidth-110+thumbx,'top':find_position(get_element("galleryimagescroll")).y+10+thumby}});thumbselectoverlay.setHTML('<img src="/s/i/i.gif" height="'+thumbselectheight+'" width="'+thumbselectwidth+'" border="0" />');get_element("navoverlaycontainer").appendChild(navoverlay);get_element("navoverlaycontainer").appendChild(thumboverlay);get_element("navoverlaycontainer").appendChild(thumbselectoverlay);if(get_element("navoverlay").attachEvent&&!window.opera){get_element("navoverlay").attachEvent('onmouseover',buttonMouseover);get_element("navoverlay").attachEvent('onmouseout',buttonMouseout)}if(get_element("thumboverlay").attachEvent&&!window.opera){get_element("thumboverlay").attachEvent('onmouseover',buttonMouseover);get_element("thumboverlay").attachEvent('onmouseout',buttonMouseout)}if(get_element("thumbselectoverlay").attachEvent&&!window.opera){get_element("thumbselectoverlay").attachEvent('onmouseover',buttonMouseover);get_element("thumbselectoverlay").attachEvent('onmouseout',buttonMouseout)}if(get_element("thumboverlay").addEventListener){get_element("thumboverlay").addEventListener('click',navClickTracker,false)}else if(get_element("thumboverlay").attachEvent){get_element("thumboverlay").attachEvent('onclick',navClickTracker)}if(get_element("thumbselectoverlay").addEventListener){get_element("thumbselectoverlay").addEventListener('click',navClickTracker,false)}else if(get_element("thumbselectoverlay").attachEvent){get_element("thumbselectoverlay").attachEvent('onclick',navClickTracker)}if(get_element("thumbselectoverlay").addEventListener){get_element("thumbselectoverlay").addEventListener('mousedown',navClickDraggerOn,false);get_element("thumbselectoverlay").addEventListener('mousemove',navClickDragger,false);get_element("thumbselectoverlay").addEventListener('mouseup',navClickDraggerOff,false);get_element("thumboverlay").addEventListener('mousedown',navClickDraggerOn,false);get_element("thumboverlay").addEventListener('mousemove',navClickDragger,false);get_element("thumboverlay").addEventListener('mouseup',navClickDraggerOff,false)}else if(get_element("thumbselectoverlay").attachEvent){get_element("thumbselectoverlay").attachEvent('ondragstart',navClickDraggerOn);get_element("thumbselectoverlay").attachEvent('ondrag',navClickDragger);get_element("thumbselectoverlay").attachEvent('ondragend',navClickDraggerOff);get_element("thumboverlay").attachEvent('ondragstart',navClickDraggerOn);get_element("thumboverlay").attachEvent('ondrag',navClickDragger);get_element("thumboverlay").attachEvent('ondragend',navClickDraggerOff)}}function buttonMouseover(){safeToMouseOut=false}function buttonMouseout(){safeToMouseOut=true;setTimeout("hideNavOverlay(false)",100)}function galleryMouseout(){safeToMouseOut2=true;setTimeout("hideNavOverlay(false)",100)}function hideNavOverlay(force){if((safeToMouseOut&&safeToMouseOut2)||force)get_element("navoverlaycontainer").innerHTML=''}var dragenabled=false;var thumbdragenabled=false;var mousex=0;var mousey=0;var wheelmousex=0;var wheelmousey=0;function windowDraggerOn(e){if(galleryactive==1){dragenabled=true;var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}mousex=posx;mousey=posy;get_element("galleryimagescroll").style.cursor="move"}refreshOverlay();if(e.preventDefault)e.preventDefault()}function navClickDraggerOn(e){if(galleryactive==1){thumbdragenabled=true;var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}mousex=posx;mousey=posy;get_element("thumboverlay").style.cursor="move";get_element("thumbselectoverlay").style.cursor="move"}moveThumbOverlay();buttonMouseover();if(e.preventDefault)e.preventDefault()}function navClickDragger(e){if(thumbdragenabled&&galleryactive==1){var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}mousex=posx;mousey=posy;posx-=find_position(get_element("galleryimagescroll")).x;posy-=find_position(get_element("galleryimagescroll")).y;posx=(thumbnailwidth-(mainresw-(posx+10)));posy=((posy-10));thisxpercentage=(100/thumbnailwidth)*posx;thisypercentage=(100/thumbnailheight)*posy;thisx=Math.floor((((originalresw*extraZoomLevel)/(baseTileLevel))/100)*thisxpercentage)-(mainresw/2);thisy=Math.floor((((originalresh*extraZoomLevel)/(baseTileLevel))/100)*thisypercentage)-(mainresh/2);doGallery(false,false);moveThumbOverlay();buttonMouseover()}if(e.preventDefault)e.preventDefault()}function navClickTracker(e){if(galleryactive==1){var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}posx-=find_position(get_element("galleryimagescroll")).x;posy-=find_position(get_element("galleryimagescroll")).y;posx=(thumbnailwidth-(mainresw-(posx+10)));posy=((posy-10));thisxpercentage=(100/thumbnailwidth)*posx;thisypercentage=(100/thumbnailheight)*posy;thisx=Math.floor((((originalresw*extraZoomLevel)/(baseTileLevel))/100)*thisxpercentage)-(mainresw/2);thisy=Math.floor((((originalresh*extraZoomLevel)/(baseTileLevel))/100)*thisypercentage)-(mainresh/2)}doGallery(false,false);moveThumbOverlay();if(e.preventDefault)e.preventDefault()}function navClickDraggerOff(e){if(galleryactive==1){thumbdragenabled=false;doGallery(false,false);get_element("thumboverlay").style.cursor="pointer";get_element("thumbselectoverlay").style.cursor="pointer";get_element("galleryimagescroll").style.cursor="pointer"}moveThumbOverlay();if(e.preventDefault)e.preventDefault()}function windowDragger(e){var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}wheelmousex=posx;wheelmousey=posy;if(dragenabled&&galleryactive==1){thisx-=(posx-mousex)*2;thisy-=(posy-mousey)*2;mousex=posx;mousey=posy;doGallery(false,false)}moveThumbOverlay();if(e.preventDefault)e.preventDefault()}function windowDraggerOff(e){if(galleryactive==1){dragenabled=false;doGallery(false,false);get_element("galleryimagescroll").style.cursor="pointer"}refreshOverlay();if(e.preventDefault)e.preventDefault()}function windowDoubleClick(e){var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop}posx-=find_position(get_element("galleryimagescroll")).x;posy-=find_position(get_element("galleryimagescroll")).y;zoom(posx,posy,true);if(e.preventDefault)e.preventDefault()}function wheel(event){var delta=0;if(!event)var event=window.event;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta){var posx=0;var posy=0;if(event.pageX||event.pageY){posx=wheelmousex;posy=wheelmousey}else if(event.clientX||event.clientY){posx=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=event.clientY+document.body.scrollTop+document.documentElement.scrollTop}posx-=find_position(get_element("galleryimagescroll")).x;posy-=find_position(get_element("galleryimagescroll")).y;handlewheel(delta,posx,posy)}if(event.preventDefault)event.preventDefault();event.returnValue=false}function handlewheel(delta,posx,posy){zoom(posx,posy,(delta>=0))}function goToLevel(zoomlevel){var totalLevels=((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1)+tileLevels+1;var activeLevel=baseTileLevel-(extraZoomLevel-1)+((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1);if(galleryactive==0&&zoomlevel==activeLevel){galleryactive=1;doGallery(true,true);refreshOverlay()}if(zoomlevel==activeLevel){return}if(zoomlevel<activeLevel){for(i=0;i<(activeLevel-zoomlevel);i++){galleryactive=1;zoom(0,0,true,true)}}else{for(i=0;i<(zoomlevel-activeLevel);i++){galleryactive=1;zoom(0,0,false,true)}}activeLevel=baseTileLevel-(extraZoomLevel-1)+((fakeZoomLevelsAllowed==0)?0:fakeZoomLevelsAllowed-1);if(galleryactive==1)doGallery(true,true);refreshOverlay()}function zoom(xpos,ypos,zoomin,dontrefreshgallery){var previouslevel=baseTileLevel;var previouszoomlevel=extraZoomLevel;if(zoomin&&extraZoomLevel>=fakeZoomLevelsAllowed&&baseTileLevel==1){return}if(galleryactive==1){if(zoomin)baseTileLevel--;else baseTileLevel++;if(previouszoomlevel>1&&!zoomin){extraZoomLevel--;if(extraZoomLevel<1)extraZoomLevel=1;baseTileLevel=1/extraZoomLevel}if(baseTileLevel<1&&zoomin){if(extraZoomLevel<fakeZoomLevelsAllowed){extraZoomLevel++;baseTileLevel=1/extraZoomLevel;if(previouslevel==1)previouslevel=1/(extraZoomLevel-1)}else{if(fakeZoomLevelsAllowed>0){baseTileLevel=1/fakeZoomLevelsAllowed;if(previouslevel==1)previouslevel=1/(extraZoomLevel-1)}else{baseTileLevel=1}}}if(baseTileLevel>tileLevels){baseTileLevel=tileLevels;showDefaultImage();return}}if(xpos!=0)thisx+=xpos;if(ypos!=0)thisy+=ypos;if(thisx==0&&thisy==0){if(baseTileLevel<1)baseTileLevel=1;thisx=((originalresw)/(baseTileLevel/extraZoomLevel))/2-(mainresw/2);thisy=((originalresh)/(baseTileLevel/extraZoomLevel))/2-(mainresh/2)}else{var thisxpercentage;var thisypercentage;if(previouslevel<1)previouslevel=1;if(xpos==0&&ypos==0){thisxpercentage=((100/(((originalresw)/(previouslevel/previouszoomlevel))))*(thisx+(mainresw/2)));thisypercentage=((100/(((originalresh)/(previouslevel/previouszoomlevel))))*(thisy+(mainresh/2)))}else{thisxpercentage=((100/(((originalresw)/(previouslevel/previouszoomlevel))))*(thisx));thisypercentage=((100/(((originalresh)/(previouslevel/previouszoomlevel))))*(thisy))}thisx=((((originalresw)/(baseTileLevel))/100)*thisxpercentage)-(mainresw/2);thisy=((((originalresh)/(baseTileLevel))/100)*thisypercentage)-(mainresh/2)}if(baseTileLevel<1)baseTileLevel=1;if(galleryactive==1){if(!dontrefreshgallery)doGallery(true,true);if(!dontrefreshgallery)refreshOverlay()}else{if(zoomin){if(!dontrefreshgallery)doGallery(true,true);if(!dontrefreshgallery)refreshOverlay()}}}
