// minimized on 04-13-2010

var simpleGallery_navpanel={panel:{height:'47px',opacity:0.5,paddingTop:'5px',fontStyle:'bold 11px Verdana'},images:['/_layouts/usmc/images/simplegallery/buttons/left.gif','/_layouts/usmc/images/simplegallery/buttons/play.gif','/_layouts/usmc/images/simplegallery/buttons/right.gif','/_layouts/usmc/images/simplegallery/buttons/pause.gif'],imageSpacing:{offsetTop:[-4,0,-4],spacing:10},slideduration:500}
function simpleGallery(settingarg)
{this.setting=settingarg
settingarg=null
var setting=this.setting
setting.panelheight=(parseInt(setting.navpanelheight)>5)?parseInt(setting.navpanelheight):parseInt(simpleGallery_navpanel.panel.height)
setting.fadeduration=parseInt(setting.fadeduration)
setting.curimage=(setting.persist)?simpleGallery.routines.getCookie("gallery-"+setting.wrapperid):0
setting.curimage=setting.curimage||0
setting.ispaused=!setting.autoplay[0]
setting.currentstep=0
setting.totalsteps=setting.imagearray.length*setting.autoplay[2]
setting.fglayer=0
setting.bglayer=1
setting.isHovering=false;setting.wasPausedOnHover=false;setting.pageSize=3;setting.oninit=setting.oninit||function(){}
setting.onslide=setting.onslide||function(){}
var longestdesc=null
setting.longestdesc=""
for(var i=0;(i<setting.imagearray.length);i++)
{if(setting.imagearray[i][3]&&(setting.imagearray[i][3].length>setting.longestdesc.length))
setting.longestdesc=setting.imagearray[i][3]}
var preloadimages=[]
for(var i=0;(i<setting.imagearray.length);i++)
{preloadimages[i]=null;}
setting.preloadedImages=preloadimages;var slideshow=this
jQuery(document).ready(function($)
{var setting=slideshow.setting
simpleGallery.routines.downloadImageAt(0,setting);var pageSize=setting.pageSize;simpleGallery.routines.loadImagesInPageForwardAsync(setting,pageSize,1);var lastPageNo=simpleGallery.routines.getLastPageNumber(setting,pageSize);simpleGallery.routines.loadImagesInPageForwardAsync(setting,pageSize,lastPageNo);setting.$wrapperdiv=$('#'+setting.wrapperid).css({position:'relative',visibility:'visible',overflow:'hidden',width:setting.dimensions[0],height:setting.dimensions[1]}).empty()
if(setting.showBackground)
setting.$wrapperdiv.css('background',setting.backgroundColor)
if(setting.$wrapperdiv.length==0)
{return}
setting.$gallerylayers=$('<div class="gallerylayer"></div><div class="gallerylayer"></div>').css({position:'absolute',left:0,top:0}).appendTo(setting.$wrapperdiv)
setting.gallerylayers=setting.$gallerylayers.get()
setting.navbuttons=simpleGallery.routines.addnavpanel(setting)
if(setting.longestdesc!="")
setting.descdiv=simpleGallery.routines.adddescpanel(setting)
$(setting.navbuttons).filter('img.navimages').css({opacity:0.8}).bind('mouseover mouseout',function(e)
{$(this).css({opacity:(e.type=="mouseover")?1:0.8})}).bind('click',function(e)
{var keyword=e.target.title.toLowerCase()
slideshow.navigate(keyword)})
setting.$wrapperdiv.bind('mouseenter',function()
{slideshow.showhidenavpanel('show')
slideshow.doPauseOnHover('hover');})
setting.$wrapperdiv.bind('mouseleave',function()
{slideshow.showhidenavpanel('hide')
slideshow.doPauseOnHover('exit');})
slideshow.showslide(setting.curimage)
setting.oninit.call(slideshow)
$(window).bind('unload',function()
{$(slideshow.setting.navbuttons).unbind()
if(slideshow.setting.persist)
simpleGallery.routines.setCookie("gallery-"+setting.wrapperid,setting.curimage)
jQuery.each(slideshow.setting,function(k)
{if(slideshow.setting[k]instanceof Array)
{for(var i=0;i<slideshow.setting[k].length;i++)
{if(slideshow.setting[k][i]!=null)
{if(slideshow.setting[k][i].tagName=="DIV")
slideshow.setting[k][i].innerHTML=''
slideshow.setting[k][i]=null}}}
if(slideshow.setting[k].innerHTML)
slideshow.setting[k].innerHTML=null
slideshow.setting[k]=null})
slideshow=slideshow.setting=null})})}
simpleGallery.prototype={navigate:function(keyword)
{clearTimeout(this.setting.playtimer)
this.setting.totalsteps=100000
if(!isNaN(parseInt(keyword)))
{this.showslide(parseInt(keyword))}
else if(/(prev)|(next)/i.test(keyword))
{this.showslide(keyword.toLowerCase())}
else
{var slideshow=this
var $playbutton=$(this.setting.navbuttons).eq(1)
if(!this.setting.ispaused)
{this.setting.autoplay[0]=false
$playbutton.attr({title:'Play',src:simpleGallery_navpanel.images[1]})}
else if(this.setting.ispaused)
{this.setting.autoplay[0]=true
this.setting.playtimer=setTimeout(function()
{if(slideshow.setting.isHovering)
{slideshow.setting.wasPausedOnHover=true;}
else
{slideshow.showslide('next');}},slideshow.setting.autoplay[1])
$playbutton.attr({title:'Pause',src:simpleGallery_navpanel.images[3]})}
slideshow.setting.ispaused=!slideshow.setting.ispaused}},showslide:function(keyword)
{var slideshow=this
var setting=slideshow.setting
var totalimages=setting.imagearray.length
var imgindex=0;if(keyword=="next")
{if(setting.curimage<totalimages-1)
imgindex=(setting.curimage+1);else
imgindex=0;simpleGallery.routines.loadImagesForNextPageAsync(setting,setting.pageSize,imgindex,true);}
else
{if(keyword=="prev")
{if(setting.curimage>0)
imgindex=(setting.curimage-1);else
imgindex=(totalimages-1);simpleGallery.routines.loadImagesForNextPageAsync(setting,setting.pageSize,imgindex,false);}
else
{imgindex=Math.min(keyword,totalimages-1);}}
setting.gallerylayers[setting.bglayer].innerHTML=simpleGallery.routines.getSlideHTML(setting.imagearray[imgindex])
setting.$gallerylayers.eq(setting.bglayer).css({zIndex:10,opacity:0}).stop().css({opacity:0}).animate({opacity:1},setting.fadeduration,function()
{clearTimeout(setting.playtimer)
setting.gallerylayers[setting.bglayer].innerHTML=''
try
{setting.onslide.call(slideshow,setting.gallerylayers[setting.fglayer],setting.curimage)}
catch(e)
{}
setting.currentstep+=1
if(setting.autoplay[0])
{if(setting.currentstep<=setting.totalsteps)
setting.playtimer=setTimeout(function()
{if(slideshow.setting.isHovering)
{slideshow.setting.wasPausedOnHover=true;}
else
{slideshow.showslide('next');}},setting.autoplay[1])
else
slideshow.navigate("play/pause")}})
setting.gallerylayers[setting.fglayer].style.zIndex=9
setting.fglayer=setting.bglayer
setting.bglayer=(setting.bglayer==0)?1:0
setting.curimage=imgindex
setting.navbuttons[3].innerHTML=(setting.curimage+1)+'/'+setting.imagearray.length
if(setting.imagearray[imgindex][3])
{setting.$descpanel.css({visibility:'visible'})
var imageRec=setting.imagearray[imgindex];if(imageRec[1].length>0)
{var onclickText='"javascript:window.open(\''+imageRec[1]+'\',\''+imageRec[2]+'\');"';var styleText='style="LEFT:0px; WIDTH:100%; POSITION:absolute; TOP:0px; HEIGHT:100%; cursor:pointer;"';setting.descdiv.innerHTML='<div onclick='+onclickText+' '+styleText+' >'+imageRec[3]+'</div>';}
else
{setting.descdiv.innerHTML=imageRec[3];}}
else
{if(setting.longestdesc!="")
{setting.descdiv.innerHTML='';setting.$descpanel.css({visibility:'hidden'})}}},showhidenavpanel:function(state)
{var setting=this.setting
var endpoint=(state=="show")?setting.dimensions[1]-setting.panelheight:this.setting.dimensions[1]
setting.$navpanel.stop().animate({top:endpoint},simpleGallery_navpanel.slideduration)
if(setting.longestdesc!="")
this.showhidedescpanel(state)},showhidedescpanel:function(state)
{var setting=this.setting
var endpoint=(state=="show")?0:-setting.descpanelheight
setting.$descpanel.stop().animate({top:endpoint},simpleGallery_navpanel.slideduration)},doPauseOnHover:function(state)
{var setting=this.setting
if(state=="hover")
{this.setting.isHovering=true;}
else
{this.setting.isHovering=false;if(this.setting.wasPausedOnHover)
{this.setting.wasPausedOnHover=false;if(!this.setting.ispaused)
{this.showslide('next');}}}}}
simpleGallery.routines={getSlideHTML:function(imgelement)
{var layerHTML='';if(imgelement[1])
layerHTML+='<a href="'+imgelement[1]+'" target="'+imgelement[2]+'">\n';layerHTML+='<img src="'+imgelement[0]+'" style="border-width:0" galleryimg="false" />';if(imgelement[1])
layerHTML+='</a>';return layerHTML;},addnavpanel:function(setting)
{var interfaceHTML='';var title='';var imagesrc='';var imgstyle='';title='Prev';imagesrc=simpleGallery_navpanel.images[0]
imgstyle='position:relative; border:0; cursor:hand; cursor:pointer; top:'+simpleGallery_navpanel.imageSpacing.offsetTop[0]+'px; margin-right:'+simpleGallery_navpanel.imageSpacing.spacing+'px'
interfaceHTML+='<img class="navimages" title="'+title+'" src="'+imagesrc+'" style="'+imgstyle+'" /> '
var imageIndex=1;if(setting.ispaused)
{title='Play';imageIndex=1;}
else
{title='Pause';imageIndex=3;}
imagesrc=simpleGallery_navpanel.images[imageIndex]
imgstyle='position:relative; border:0; cursor:hand; cursor:pointer; top:'+simpleGallery_navpanel.imageSpacing.offsetTop[1]+'px; margin-right:'+simpleGallery_navpanel.imageSpacing.spacing+'px'
interfaceHTML+='<img class="navimages" title="'+title+'" src="'+imagesrc+'" style="'+imgstyle+'" /> '
title='Next';imagesrc=simpleGallery_navpanel.images[2]
imgstyle='position:relative; border:0; cursor:hand; cursor:pointer; top:'+simpleGallery_navpanel.imageSpacing.offsetTop[2]+'px; margin-right:0px'
interfaceHTML+='<img class="navimages" title="'+title+'" src="'+imagesrc+'" style="'+imgstyle+'" /> '
interfaceHTML+='<div class="gallerystatus" style="margin-top:1px">'+(setting.curimage+1)+'/'+setting.imagearray.length+'</div>'
setting.$navpanel=$('<div class="navpanellayer"></div>').css({position:'absolute',width:'100%',height:setting.panelheight,left:0,top:setting.dimensions[1],font:simpleGallery_navpanel.panel.fontStyle,zIndex:'12'}).appendTo(setting.$wrapperdiv)
$('<div class="navpanelbg"></div><div class="navpanelfg"></div>').css({position:'absolute',left:0,top:0,width:'100%',height:'100%'}).eq(0).css({background:'black',opacity:simpleGallery_navpanel.panel.opacity}).end().eq(1).css({paddingTop:simpleGallery_navpanel.panel.paddingTop,textAlign:'center',color:'white'}).html(interfaceHTML).end().appendTo(setting.$navpanel)
return setting.$navpanel.find('img.navimages, div.gallerystatus').get()},adddescpanel:function(setting)
{setting.$descpanel=$('<div class="gallerydesc"><div class="gallerydescbg"></div><div class="gallerydescfg"><div class="gallerydesctext"></div></div></div>').css({position:'absolute',width:'100%',left:0,top:-1000,zIndex:'11'}).find('div').css({position:'absolute',left:0,top:0,width:'100%'}).eq(0).css({background:'black',opacity:simpleGallery_navpanel.panel.opacity}).end().eq(1).css({color:'white'}).end().eq(2).html(setting.longestdesc).end().end().appendTo(setting.$wrapperdiv)
var $gallerydesctext=setting.$descpanel.find('div.gallerydesctext')
setting.descpanelheight=$gallerydesctext.outerHeight()
setting.$descpanel.css({top:-setting.descpanelheight,height:setting.descpanelheight}).find('div').css({height:'100%'})
return setting.$descpanel.find('div.gallerydesctext').get(0)},getCookie:function(Name)
{var re=new RegExp(Name+"=[^;]+","i");if(document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1]
return null},setCookie:function(name,value)
{document.cookie=name+"="+value+";path=/"},downloadImageAt:function(index,setting)
{try{var preloadedImages=setting.preloadedImages;preloadedImages[index]=new Image()
var imageRec=setting.imagearray[index]
var sourceUrl=imageRec[0]
preloadedImages[index].src=sourceUrl
simpleGallery.routines.logMessage('In downloadImageAt('+index.toString()+')')}
catch(e)
{simpleGallery.routines.logMessage("Exception in downloadImageAt("+index.toString()+")");}},loadImagesForward:function(startingIndex,count,setting)
{simpleGallery.routines.logMessage('Begin loadImagesForward()')
var preloadedImages=setting.preloadedImages;var imagesArray=setting.imagearray;var stopingIndex=startingIndex+count-1;var lastIndex=imagesArray.length-1;if(stopingIndex>lastIndex)
stopingIndex=lastIndex;for(var i=startingIndex;(i<=stopingIndex);i++)
{if(preloadedImages[i]==null)
{simpleGallery.routines.downloadImageAt(i,setting);}
else
{simpleGallery.routines.logMessage('In loadImagesForward(): The image was already downloaded at i = '+i.toString());}}
simpleGallery.routines.logMessage('Exit loadImagesForward()')},loadImagesForwardAll:function(setting)
{simpleGallery.routines.loadImagesForward(0,setting.imagearray.length,setting);},loadImagesForwardAllByPagesAsync:function(setting,pageSize)
{setTimeout(function(){simpleGallery.routines.loadImagesPageForwardContinue(setting,pageSize,1,true);},200);},loadImagesForwardAllByPages:function(setting,pageSize)
{simpleGallery.routines.loadImagesPageForwardContinue(setting,pageSize,1,true);},getPageNumberForIndex:function(setting,pageSize,indexIn)
{var count=setting.imagearray.length;var index=indexIn;if(index<0)
index=count+index;index+=1;if(index>count)
index=index%count;var times=Math.floor(index/pageSize);var remainder=index%pageSize;if(remainder>0)
return times+1;else
return times;},getLastPageNumber:function(setting,pageSize)
{var imagesCount=setting.imagearray.length;var times=Math.floor(imagesCount/pageSize);var remainder=imagesCount%pageSize;if(remainder>0)
return times+1;else
return times;},loadImagesInPageForward:function(setting,pageSize,pageNumber)
{simpleGallery.routines.logMessage('Begin loadImagesInPageForward('+pageSize.toString()+', '+pageNumber.toString()+')')
var startIndex1=(pageSize*(pageNumber-1));var imagesCount=setting.imagearray.length;var startIndex=startIndex1%imagesCount;if(startIndex<setting.imagearray.length)
{simpleGallery.routines.loadImagesForward(startIndex,pageSize,setting);}
else
{simpleGallery.routines.logMessage('In loadImagesInPageForward('+pageSize.toString()+', '+pageNumber.toString()+') -- Bad Page Number')}},loadImagesInPageForwardAsync:function(setting,pageSize,pageNumber)
{setTimeout(function(){simpleGallery.routines.loadImagesInPageForward(setting,pageSize,pageNumber);},100);},loadImagesPageForwardContinue:function(setting,pageSize,pageNumber,loadNextPage)
{simpleGallery.routines.logMessage('Begin loadImagesPageForwardContinue('+pageSize.toString()+', '+pageNumber.toString()+', '+loadNextPage.toString()+')')
var startIndex=(pageSize*(pageNumber-1));if(startIndex<setting.imagearray.length)
{simpleGallery.routines.loadImagesForward(startIndex,pageSize,setting);if(loadNextPage)
{setTimeout(function(){simpleGallery.routines.loadImagesPageForwardContinue(setting,pageSize,pageNumber+1,loadNextPage);},1000);}}
else
{simpleGallery.routines.logMessage('In loadImagesPageForwardContinue('+pageSize.toString()+', '+pageNumber.toString()+', '+loadNextPage.toString()+') -- Last Page Found')}},loadImagesForNextPage:function(setting,pageSize,index,forward)
{simpleGallery.routines.logMessage('Start loadImagesForNextPage('+pageSize.toString()+', '+index.toString()+', '+forward.toString()+')')
var pageNo1=simpleGallery.routines.getPageNumberForIndex(setting,pageSize,index);var pageNo2=0;if(forward)
{pageNo2=pageNo1+1;var lastPageNo=simpleGallery.routines.getLastPageNumber(setting,pageSize);if(pageNo2>lastPageNo)
pageNo2=(pageNo2-lastPageNo);}
else
{pageNo2=pageNo1-1;if(pageNo2<=0)
{var lastPageNo=simpleGallery.routines.getLastPageNumber(setting,pageSize);pageNo2=lastPageNo;}}
simpleGallery.routines.loadImagesInPageForward(setting,pageSize,pageNo2);},loadImagesForNextPageAsync:function(setting,pageSize,index,forward)
{setTimeout(function(){simpleGallery.routines.loadImagesForNextPage(setting,pageSize,index,forward);},100);},loadImagesBackwards:function(startingIndex,count,setting)
{simpleGallery.routines.logMessage('Begin loadImagesBackwards()')
var preloadedImages=setting.preloadedImages;var imagesArray=setting.imagearray;var lastIndex=startingIndex-count;for(var i=startingIndex;(i>lastIndex);i--)
{if(i<0)
i=imagesArray.length+i;if(preloadedImages[i]==null)
{simpleGallery.routines.downloadImageAt(i,setting);}
else
{simpleGallery.routines.logMessage('In loadImagesBackwards(): The image was already downloaded at i = '+i.toString());}}
simpleGallery.routines.logMessage('Exit loadImagesBackwards()')},loadImagesBackwardsAll:function(setting)
{simpleGallery.routines.loadImagesBackwards(setting.imagearray.length-1,setting.imagearray.length,setting);},logMessage:function(message)
{}}
