/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - jq.galleriffic.js - */
// http://www.wi.edu.au/portal_javascripts/jq.galleriffic.js?original=1
;(function($){$('.noscript').hide();var ver='galleriffic-1.1';var galleryOffset=0;var galleries=[];var allImages=[];$.galleriffic={goto: function(hash){hash=getHashFromString(hash);var gallery=getGalleryForHash(hash);if(!gallery) return;var index=hash-gallery.offset;gallery.goto(index)}};
function getGalleryForHash(hash){for(i=0;i<galleries.length;i++){var gallery=galleries[i];if(hash<(gallery.data.length+gallery.offset))
return gallery}
return 0}
function getHashFromString(hash){if(typeof hash=='number')
return hash;if(!hash) return-1;hash=hash.replace(/^.*#/,'');if(isNaN(hash)) return-1;return(+hash)}
function registerGallery(gallery){galleries.push(gallery);galleryOffset+=gallery.data.length}
var defaults={delay:3000,numThumbs:20,preloadAhead:40,enableTopPager:false,enableBottomPager:true,maxPagesToShow:7,imageContainerSel:'',captionContainerSel:'',controlsContainerSel:'',loadingContainerSel:'',renderSSControls:true,renderNavControls:true,playLinkText:'Play',pauseLinkText:'Pause',prevLinkText:'Previous',nextLinkText:'Next',nextPageLinkText:'Next &rsaquo;',prevPageLinkText:'&lsaquo; Prev',enableHistory:false,autoStart:false,syncTransitions:false,defaultTransitionDuration:1000,onSlideChange:undefined,onTransitionOut:undefined,onTransitionIn:undefined,onPageTransitionOut:undefined,onPageTransitionIn:undefined};$.fn.galleriffic=function(thumbsContainerSel,settings){$.extend(this,{ver: function(){return ver},getIndex: function(hash){return hash-this.offset},clickHandler: function(e,link){this.pause();if(!this.enableHistory){var hash=getHashFromString(link.href);if(hash>=0){var index=this.getIndex(hash);if(index>=0)
this.goto(index)}
e.preventDefault()}},initializeThumbs: function(){this.data=[];var gallery=this;this.$thumbsContainer.find('ul.thumbs > li').each(function(i){var $li=$(this);var $aThumb=$li.find('a.thumb');var hash=gallery.offset+i;gallery.data.push({title:$aThumb.attr('title'),slideUrl:$aThumb.attr('href'),caption:$li.find('.caption').remove(),hash:hash});$aThumb.attr('rel','history').attr('href','#'+hash).click(function(e){gallery.clickHandler(e,this)})});return this},isPreloadComplete:false,preloadInit: function(){if(this.preloadAhead==0) return this;this.preloadStartIndex=this.currentIndex;var nextIndex=this.getNextIndex(this.preloadStartIndex);return this.preloadRecursive(this.preloadStartIndex,nextIndex)},preloadRelocate: function(index){this.preloadStartIndex=index;return this},preloadRecursive: function(startIndex,currentIndex){if(startIndex!=this.preloadStartIndex){var nextIndex=this.getNextIndex(this.preloadStartIndex);return this.preloadRecursive(this.preloadStartIndex,nextIndex)}
var gallery=this;var preloadCount=currentIndex-startIndex;if(preloadCount<0)
preloadCount=this.data.length-1-startIndex+currentIndex;if(this.preloadAhead>=0&&preloadCount>this.preloadAhead){setTimeout(function(){gallery.preloadRecursive(startIndex,currentIndex)},500);return this}
var imageData=this.data[currentIndex];if(!imageData)
return this;if(imageData.image)
return this.preloadNext(startIndex,currentIndex);var image=new Image();image.onload=function(){imageData.image=this;gallery.preloadNext(startIndex,currentIndex)};image.alt=imageData.title;image.src=imageData.slideUrl;return this},preloadNext: function(startIndex,currentIndex){var nextIndex=this.getNextIndex(currentIndex);if(nextIndex==startIndex){this.isPreloadComplete=true} else{var gallery=this;setTimeout(function(){gallery.preloadRecursive(startIndex,nextIndex)},100)}
return this},getNextIndex: function(index){var nextIndex=index+1;if(nextIndex>=this.data.length)
nextIndex=0;return nextIndex},getPrevIndex: function(index){var prevIndex=index-1;if(prevIndex<0)
prevIndex=this.data.length-1;return prevIndex},pause: function(){if(this.interval)
this.toggleSlideshow();return this},play: function(){if(!this.interval)
this.toggleSlideshow();return this},toggleSlideshow: function(){if(this.interval){clearInterval(this.interval);this.interval=0;if(this.$controlsContainer){this.$controlsContainer.find('div.ss-controls a').removeClass().addClass('play').attr('title',this.playLinkText).attr('href','#play').html(this.playLinkText)}} else{var gallery=this;this.interval=setInterval(function(){gallery.ssAdvance()},this.delay);if(this.$controlsContainer){this.$controlsContainer.find('div.ss-controls a').removeClass().addClass('pause').attr('title',this.pauseLinkText).attr('href','#pause').html(this.pauseLinkText)}}
return this},ssAdvance: function(){var nextIndex=this.getNextIndex(this.currentIndex);var nextHash=this.data[nextIndex].hash;if(this.enableHistory)
$.historyLoad(String(nextHash));else
this.goto(nextIndex);return this},next: function(){this.pause();goto(this.getNextIndex(this.currentIndex))},previous: function(){this.pause();goto(this.getPrevIndex(this.currentIndex))},goto: function(index){if(index<0) index=0;else if(index>=this.data.length) index=this.data.length-1;if(this.onSlideChange)
this.onSlideChange(this.currentIndex,index);this.currentIndex=index;this.preloadRelocate(index);return this.refresh()},getDefaultTransitionDuration: function(isSync){if(isSync)
return this.defaultTransitionDuration;return this.defaultTransitionDuration/2},refresh: function(){var imageData=this.data[this.currentIndex];if(!imageData)
return this;if(this.$controlsContainer){this.$controlsContainer.find('div.nav-controls a.prev').attr('href','#'+this.data[this.getPrevIndex(this.currentIndex)].hash).end().find('div.nav-controls a.next').attr('href','#'+this.data[this.getNextIndex(this.currentIndex)].hash)}
var previousSlide=this.$imageContainer.find('span.current').addClass('previous').removeClass('current');var previousCaption=0;if(this.$captionContainer){previousCaption=this.$captionContainer.find('span.current').addClass('previous').removeClass('current')}
var isSync=this.syncTransitions&&imageData.image;var isTransitioning=true;var gallery=this;var transitionOutCallback=function(){isTransitioning=false;previousSlide.remove();if(previousCaption)
previousCaption.remove();if(!isSync){if(imageData.image&&imageData.hash==gallery.data[gallery.currentIndex].hash){gallery.buildImage(imageData,isSync)} else{if(gallery.$loadingContainer){gallery.$loadingContainer.show()}}}};if(previousSlide.length==0){transitionOutCallback()} else{if(this.onTransitionOut){this.onTransitionOut(previousSlide,previousCaption,isSync,transitionOutCallback)} else{previousSlide.fadeTo(this.getDefaultTransitionDuration(isSync),0.0,transitionOutCallback);if(previousCaption)
previousCaption.fadeTo(this.getDefaultTransitionDuration(isSync),0.0)}}
if(isSync)
this.buildImage(imageData,isSync);if(!imageData.image){var image=new Image();image.onload=function(){imageData.image=this;if(!isTransitioning&&imageData.hash==gallery.data[gallery.currentIndex].hash){gallery.buildImage(imageData,isSync)}};image.alt=imageData.title;image.src=imageData.slideUrl}
this.relocatePreload=true;return this.syncThumbs()},buildImage: function(imageData,isSync){var gallery=this;var nextIndex=this.getNextIndex(this.currentIndex);var newSlide=this.$imageContainer.append('<span class="image-wrapper current"><a class="advance-link" rel="history" href="#'+this.data[nextIndex].hash+'" title="'+imageData.title+'"> </a></span>').find('span.current').css('opacity','0');newSlide.find('a').append(imageData.image).click(function(e){gallery.clickHandler(e,this)});var newCaption=0;if(this.$captionContainer){newCaption=this.$captionContainer.append('<span class="image-caption current"></span>').find('span.current').css('opacity','0').append(imageData.caption)}
if(this.$loadingContainer){this.$loadingContainer.hide()}
if(this.onTransitionIn){this.onTransitionIn(newSlide,newCaption,isSync)} else{newSlide.fadeTo(this.getDefaultTransitionDuration(isSync),1.0);if(newCaption)
newCaption.fadeTo(this.getDefaultTransitionDuration(isSync),1.0)}
return this},syncThumbs: function(){if(this.$thumbsContainer){var page=Math.floor(this.currentIndex/this.numThumbs);if(page!=this.currentPage){this.currentPage=page;this.updateThumbs()}
var $thumbs=this.$thumbsContainer.find('ul.thumbs').children();$thumbs.filter('.selected').removeClass('selected');$thumbs.eq(this.currentIndex).addClass('selected')}
return this},updateThumbs: function(){var gallery=this;var transitionOutCallback=function(){gallery.rebuildThumbs();if(gallery.onPageTransitionIn)
gallery.onPageTransitionIn();else
gallery.$thumbsContainer.show()};if(this.onPageTransitionOut){this.onPageTransitionOut(transitionOutCallback)} else{this.$thumbsContainer.hide();transitionOutCallback()}
return this},rebuildThumbs: function(){if(this.currentPage<0)
this.currentPage=0;var needsPagination=this.data.length>this.numThumbs;var $topPager=this.$thumbsContainer.find('div.top');if($topPager.length==0)
$topPager=this.$thumbsContainer.prepend('<div class="top pagination"></div>').find('div.top');if(needsPagination&&this.enableTopPager){$topPager.empty();this.buildPager($topPager)}
if(needsPagination&&this.enableBottomPager){var $bottomPager=this.$thumbsContainer.find('div.bottom');if($bottomPager.length==0)
$bottomPager=this.$thumbsContainer.append('<div class="bottom pagination"></div>').find('div.bottom');else
$bottomPager.empty();this.buildPager($bottomPager)}
var startIndex=this.currentPage*this.numThumbs;var stopIndex=startIndex+this.numThumbs-1;if(stopIndex>=this.data.length)
stopIndex=this.data.length-1;var $thumbsUl=this.$thumbsContainer.find('ul.thumbs');$thumbsUl.find('li').each(function(i){var $li=$(this);if(i>=startIndex&&i<=stopIndex){$li.show()} else{$li.hide()}});$thumbsUl.removeClass('noscript');return this},buildPager: function(pager){var gallery=this;var startIndex=this.currentPage*this.numThumbs;var pagesRemaining=this.maxPagesToShow-1;var pageNum=this.currentPage-Math.floor((this.maxPagesToShow-1)/2)+1;if(pageNum>0){var remainingPageCount=this.numPages-pageNum;if(remainingPageCount<pagesRemaining){pageNum=pageNum-(pagesRemaining-remainingPageCount)}}
if(pageNum<0){pageNum=0}
if(this.currentPage>0){var prevPage=startIndex-this.numThumbs;pager.append('<a rel="history" href="#'+this.data[prevPage].hash+'" title="'+this.prevPageLinkText+'">'+this.prevPageLinkText+'</a>')}
if(pageNum>0){this.buildPageLink(pager,0);if(pageNum>1)
pager.append('<span class="ellipsis">&hellip;</span>');pagesRemaining--}
while(pagesRemaining>0){this.buildPageLink(pager,pageNum);pagesRemaining--;pageNum++}
if(pageNum<this.numPages){var lastPageNum=this.numPages-1;if(pageNum<lastPageNum)
pager.append('<span class="ellipsis">&hellip;</span>');this.buildPageLink(pager,lastPageNum)}
var nextPage=startIndex+this.numThumbs;if(nextPage<this.data.length){pager.append('<a rel="history" href="#'+this.data[nextPage].hash+'" title="'+this.nextPageLinkText+'">'+this.nextPageLinkText+'</a>')}
pager.find('a').click(function(e){gallery.clickHandler(e,this)});return this},buildPageLink: function(pager,pageNum){var pageLabel=pageNum+1;if(pageNum==this.currentPage)
pager.append('<span class="current">'+pageLabel+'</span>');else if(pageNum<this.numPages){var imageIndex=pageNum*this.numThumbs;pager.append('<a rel="history" href="#'+this.data[imageIndex].hash+'" title="'+pageLabel+'">'+pageLabel+'</a>')}}});$.extend(this,defaults,settings);if(this.interval)
clearInterval(this.interval);this.interval=0;if(this.enableHistory&&!$.historyInit)
this.enableHistory=false;if(this.imageContainerSel) this.$imageContainer=$(this.imageContainerSel);if(this.captionContainerSel) this.$captionContainer=$(this.captionContainerSel);if(this.loadingContainerSel) this.$loadingContainer=$(this.loadingContainerSel);this.$transitionContainers=$([]);if(this.$imageContainer)
this.$transitionContainers=this.$transitionContainers.add(this.$imageContainer);if(this.$captionContainer)
this.$transitionContainers=this.$transitionContainers.add(this.$captionContainer);this.offset=galleryOffset;this.$thumbsContainer=$(thumbsContainerSel);this.initializeThumbs();registerGallery(this);this.numPages=Math.ceil(this.data.length/this.numThumbs);if(this.maxPagesToShow<3)
this.maxPagesToShow=3;this.currentPage=-1;this.currentIndex=0;var gallery=this;if(this.$loadingContainer)
this.$loadingContainer.hide();if(this.controlsContainerSel){this.$controlsContainer=$(this.controlsContainerSel).empty();if(this.renderSSControls){if(this.autoStart){this.$controlsContainer.append('<div class="ss-controls"><a href="#pause" class="pause" title="'+this.pauseLinkText+'">'+this.pauseLinkText+'</a></div>')} else{this.$controlsContainer.append('<div class="ss-controls"><a href="#play" class="play" title="'+this.playLinkText+'">'+this.playLinkText+'</a></div>')}
this.$controlsContainer.find('div.ss-controls a').click(function(e){gallery.toggleSlideshow();e.preventDefault();return false})}
if(this.renderNavControls){this.$controlsContainer.append('<div class="nav-controls"><a class="prev" rel="history" title="'+this.prevLinkText+'">'+this.prevLinkText+'</a><a class="next" rel="history" title="'+this.nextLinkText+'">'+this.nextLinkText+'</a></div>').find('div.nav-controls a').click(function(e){gallery.clickHandler(e,this)})}}
if(!this.enableHistory||!location.hash){this.goto(0)}
if(this.autoStart){setTimeout(function(){gallery.play()},this.delay)}
setTimeout(function(){gallery.preloadInit()},1000);return this}})(jQuery);

/* - jq.history.js - */
// http://www.wi.edu.au/portal_javascripts/jq.history.js?original=1
jQuery.extend({historyCurrentHash:undefined,historyCallback:undefined,historyIframeSrc:undefined,historyInit: function(callback,src){jQuery.historyCallback=callback;if(src) jQuery.historyIframeSrc=src;var current_hash=location.hash.replace(/\?.*$/,'');jQuery.historyCurrentHash=current_hash;if(jQuery.browser.msie){if(jQuery.historyCurrentHash==''){jQuery.historyCurrentHash='#'}
jQuery("body").prepend('<iframe id="jQuery_history" style="display: none;"'+(jQuery.historyIframeSrc?' src="'+jQuery.historyIframeSrc+'"':'')+'></iframe>');var ihistory=jQuery("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=current_hash}
else if(jQuery.browser.safari){jQuery.historyBackStack=[];jQuery.historyBackStack.length=history.length;jQuery.historyForwardStack=[];jQuery.lastHistoryLength=history.length;jQuery.isFirst=true}
if(current_hash)
jQuery.historyCallback(current_hash.replace(/^#/,''));setInterval(jQuery.historyCheck,100)},historyAddHistory: function(hash){jQuery.historyBackStack.push(hash);jQuery.historyForwardStack.length=0;this.isFirst=true},historyCheck: function(){if(jQuery.browser.msie){var ihistory=jQuery("#jQuery_history")[0];var iframe=ihistory.contentDocument||ihistory.contentWindow.document;var current_hash=iframe.location.hash.replace(/\?.*$/,'');if(current_hash!=jQuery.historyCurrentHash){location.hash=current_hash;jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''))}} else if(jQuery.browser.safari){if(jQuery.lastHistoryLength==history.length&&jQuery.historyBackStack.length>jQuery.lastHistoryLength){jQuery.historyBackStack.shift()}
if(!jQuery.dontCheck){var historyDelta=history.length-jQuery.historyBackStack.length;jQuery.lastHistoryLength=history.length;if(historyDelta){jQuery.isFirst=false;if(historyDelta<0){for(var i=0;i<Math.abs(historyDelta);i++) jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop())} else{for(var i=0;i<historyDelta;i++) jQuery.historyBackStack.push(jQuery.historyForwardStack.shift())}
var cachedHash=jQuery.historyBackStack[jQuery.historyBackStack.length-1];if(cachedHash!=undefined){jQuery.historyCurrentHash=location.hash.replace(/\?.*$/,'');jQuery.historyCallback(cachedHash)}} else if(jQuery.historyBackStack[jQuery.historyBackStack.length-1]==undefined&&!jQuery.isFirst){if(location.hash){var current_hash=location.hash;jQuery.historyCallback(location.hash.replace(/^#/,''))} else{var current_hash='';jQuery.historyCallback('')}
jQuery.isFirst=true}}} else{var current_hash=location.hash.replace(/\?.*$/,'');if(current_hash!=jQuery.historyCurrentHash){jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''))}}},historyLoad: function(hash){var newhash;hash=decodeURIComponent(hash.replace(/\?.*$/,''));if(jQuery.browser.safari){newhash=hash}
else{newhash='#'+hash;location.hash=newhash}
jQuery.historyCurrentHash=newhash;if(jQuery.browser.msie){var ihistory=jQuery("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=newhash;jQuery.lastHistoryLength=history.length;jQuery.historyCallback(hash)}
else if(jQuery.browser.safari){jQuery.dontCheck=true;this.historyAddHistory(hash);var fn=function(){jQuery.dontCheck=false};window.setTimeout(fn,200);jQuery.historyCallback(hash);location.hash=newhash}
else{jQuery.historyCallback(hash)}}});
