
/* 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 -
 */

/* - ++resource++carousel.js - */
// https://vm9.cas.unc.edu/religious/portal_javascripts/++resource++carousel.js?original=1
(function($){
function PloneCarousel(container,opts){var carousel=this;this.parent_container=$(container);this.container=this.parent_container.find('.carousel-banners');this.banners=this.container.find('.carousel-banner');this.current_index=0;this.max_index=this.banners.length-1;this.animating=false;this.opts=opts;this.container.add(this.banners).height(opts.height).width(opts.width).css({position:'relative',overflow:'hidden'});this.banners.css({position:'absolute'});this.triggerEvent=function(name,extra_args){var args=[this];if(extra_args!=undefined){args=args.concat(extra_args)}
this.parent_container.triggerHandler(name,args)};this.shiftIndex=function(offset,old_index){old_index=(old_index==undefined)?this.current_index:old_index;var new_index=old_index+offset;if(new_index>this.max_index){new_index-=this.banners.length} else if(new_index<0){new_index+=this.banners.length}
return new_index};this.nextBanner=function(){this.animateTo(this.shiftIndex(1))};this.prevBanner=function(){this.animateTo(this.shiftIndex(-1))};this.animateTo=function(index){};this.play=function(){if(carousel.timer){clearInterval(carousel.timer)}
carousel.timer=setInterval(function(){carousel.nextBanner()},carousel.opts.delay);carousel.triggerEvent('play')};this.pause=function(){if(carousel.timer){clearInterval(carousel.timer)}
carousel.triggerEvent('pause')}};
function FadingPloneCarousel(container,opts){PloneCarousel.apply(this,[container,opts]);var carousel=this;this.animateTo=function(index){if(index==this.current_index||this.animating) return;this.triggerEvent('beforeAnimate',[this.current_index,index]);this.animating=true;this.banners.not(':eq('+index.toString()+')').fadeOut(this.opts.speed, function(){carousel.current_index=index});this.banners.eq(index).fadeIn(this.opts.speed, function(){var old_index=carousel.current_index=index;carousel.animating=false;carousel.triggerEvent('afterAnimate',[old_index,index])})}};
function SlidingPloneCarousel(container,opts){PloneCarousel.apply(this,[container,opts]);var carousel=this;this.banners.wrapAll('<div class="carousel-slider" />');this.slider=this.container.find('.carousel-slider').height(this.opts.height).width(this.opts.width * this.banners.length).css({position:'absolute',left:0,top:0});this.nextBanner=function(){this.animateTo(this.shiftIndex(1),'left')};this.prevBanner=function(){this.animateTo(this.shiftIndex(-1),'right')};this.animateTo=function(index,direction){if(index==this.current_index||this.animating) return;this.animating=true;this.triggerEvent('beforeAnimate',[this.current_index,index]);direction=(direction==undefined)?'left':direction;var shift=(direction=='left')?-carousel.current_index:carousel.max_index-carousel.current_index;this.banners.each(function(banner_index,banner){var new_index=carousel.shiftIndex(shift,banner_index);$(banner).css('left',(new_index * carousel.opts.width)).show()});var start_left=(direction=='left')?0:-this.opts.width * this.max_index;this.slider.css('left',start_left);var index_offset=this.shiftIndex(shift,index);this.slider.animate({left:-this.opts.width * index_offset},this.opts.speed,'swing', function(){var old_index=carousel.current_index=index;carousel.animating=false;carousel.triggerEvent('afterAnimate',[old_index,index])})}};$.fn.ploneCarousel=function(options){var opts=$.extend({},$.fn.ploneCarousel.defaults,options);return this.each(function(){var container=$(this);var carousel=$.fn.ploneCarousel.selectCarousel(container,opts);$.fn.ploneCarousel.initCarousel(carousel);$.fn.ploneCarousel.initPager(carousel);$.fn.ploneCarousel.initEvents(carousel)})};$.fn.ploneCarousel.defaults={speed:500,delay:8000,height:0,width:0,transition:'fade'};$.fn.ploneCarousel.selectCarousel=function(container,opts){if(opts.transition=='fade'){return new FadingPloneCarousel(container,opts)} else{return new SlidingPloneCarousel(container,opts)}};$.fn.ploneCarousel.initCarousel=function(carousel){carousel.banners.eq(0).addClass('carousel-banner-active')};$.fn.ploneCarousel.initPager=function(carousel){var pager_items=carousel.parent_container.find('.carousel-pager-item');pager_items.filter(':first').addClass('carousel-pager-item-first carousel-pager-item-active');pager_items.filter(':last').addClass('carousel-pager-item-last');pager_items.click(function(){carousel.animateTo(pager_items.index($(this)));return false});carousel.parent_container.find('.carousel-pager-button-prev').click(function(){carousel.prevBanner();return false});carousel.parent_container.find('.carousel-pager-button-next').click(function(){carousel.nextBanner();return false})};$.fn.ploneCarousel.initEvents=function(carousel){var pager_items=carousel.parent_container.find('.carousel-pager-item');carousel.parent_container.bind('beforeAnimate', function(e,carousel,old_index,new_index){carousel.banners.removeClass('carousel-banner-active').eq(new_index).addClass('carousel-banner-active');pager_items.removeClass('carousel-pager-item-active').eq(new_index).addClass('carousel-pager-item-active')})}})(jQuery);

/* - ++resource++jquery.jcarousel.js - */
// https://vm9.cas.unc.edu/religious/portal_javascripts/++resource++jquery.jcarousel.js?original=1
(function($){var defaults={vertical:false,rtl:false,start:1,offset:1,size:null,scroll:3,visible:null,animation:'normal',easing:'swing',auto:0,wrap:null,initCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,buttonNextHTML:'<div></div>',buttonPrevHTML:'<div></div>',buttonNextEvent:'click',buttonPrevEvent:'click',buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},windowLoaded=false;$(window).bind('load.jcarousel', function(){windowLoaded=true});$.jcarousel=function(e,o){this.options=$.extend({},defaults,o||{});this.locked=false;this.autoStopped=false;this.container=null;this.clip=null;this.list=null;this.buttonNext=null;this.buttonPrev=null;this.buttonNextState=null;this.buttonPrevState=null;if(!o||o.rtl===undefined){this.options.rtl=($(e).attr('dir')||$('html').attr('dir')||'').toLowerCase()=='rtl'}
this.wh=!this.options.vertical?'width':'height';this.lt=!this.options.vertical?(this.options.rtl?'right':'left'):'top';var skin='',split=e.className.split(' ');for(var i=0;i<split.length;i++){if(split[i].indexOf('jcarousel-skin')!=-1){$(e).removeClass(split[i]);skin=split[i];break}}
if(e.nodeName.toUpperCase()=='UL'||e.nodeName.toUpperCase()=='OL'){this.list=$(e);this.container=this.list.parent();if(this.container.hasClass('jcarousel-clip')){if(!this.container.parent().hasClass('jcarousel-container')){this.container=this.container.wrap('<div></div>')}
this.container=this.container.parent()} else if(!this.container.hasClass('jcarousel-container')){this.container=this.list.wrap('<div></div>').parent()}} else{this.container=$(e);this.list=this.container.find('ul,ol').eq(0)}
if(skin!==''&&this.container.parent()[0].className.indexOf('jcarousel-skin')==-1){this.container.wrap('<div class=" '+skin+'"></div>')}
this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass('jcarousel-clip')){this.clip=this.list.wrap('<div></div>').parent()}
this.buttonNext=$('.jcarousel-next',this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null){this.buttonNext=this.clip.after(this.options.buttonNextHTML).next()}
this.buttonNext.addClass(this.className('jcarousel-next'));this.buttonPrev=$('.jcarousel-prev',this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null){this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next()}
this.buttonPrev.addClass(this.className('jcarousel-prev'));this.clip.addClass(this.className('jcarousel-clip')).css({overflow:'hidden',position:'relative'});this.list.addClass(this.className('jcarousel-list')).css({overflow:'hidden',position:'relative',top:0,margin:0,padding:0}).css((this.options.rtl?'right':'left'),0);this.container.addClass(this.className('jcarousel-container')).css({position:'relative'});if(!this.options.vertical&&this.options.rtl){this.container.addClass('jcarousel-direction-rtl').attr('dir','rtl')}
var di=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null;var li=this.list.children('li');var self=this;if(li.size()>0){var wh=0,j=this.options.offset;li.each(function(){self.format(this,j++);wh+=self.dimension(this,di)});this.list.css(this.wh,(wh+100)+'px');if(!o||o.size===undefined){this.options.size=li.size()}}
this.container.css('display','block');this.buttonNext.css('display','block');this.buttonPrev.css('display','block');this.funcNext=function(){self.next()};this.funcPrev=function(){self.prev()};this.funcResize=function(){self.reload()};if(this.options.initCallback!==null){this.options.initCallback(this,'init')}
if(!windowLoaded&&$.browser.safari){this.buttons(false,false);$(window).bind('load.jcarousel', function(){self.setup()})} else{this.setup()}};var $jc=$.jcarousel;$jc.fn=$jc.prototype={jcarousel:'0.2.7'};$jc.fn.extend=$jc.extend=$.extend;$jc.fn.extend({setup: function(){this.first=null;this.last=null;this.prevFirst=null;this.prevLast=null;this.animating=false;this.timer=null;this.tail=null;this.inTail=false;if(this.locked){return}
this.list.css(this.lt,this.pos(this.options.offset)+'px');var p=this.pos(this.options.start,true);this.prevFirst=this.prevLast=null;this.animate(p,false);$(window).unbind('resize.jcarousel',this.funcResize).bind('resize.jcarousel',this.funcResize)},reset: function(){this.list.empty();this.list.css(this.lt,'0px');this.list.css(this.wh,'10px');if(this.options.initCallback!==null){this.options.initCallback(this,'reset')}
this.setup()},reload: function(){if(this.tail!==null&&this.inTail){this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+this.tail)}
this.tail=null;this.inTail=false;if(this.options.reloadCallback!==null){this.options.reloadCallback(this)}
if(this.options.visible!==null){var self=this;var di=Math.ceil(this.clipping()/this.options.visible),wh=0,lt=0;this.list.children('li').each(function(i){wh+=self.dimension(this,di);if(i+1<self.first){lt=wh}});this.list.css(this.wh,wh+'px');this.list.css(this.lt,-lt+'px')}
this.scroll(this.first,false)},lock: function(){this.locked=true;this.buttons()},unlock: function(){this.locked=false;this.buttons()},size: function(s){if(s!==undefined){this.options.size=s;if(!this.locked){this.buttons()}}
return this.options.size},has: function(i,i2){if(i2===undefined||!i2){i2=i}
if(this.options.size!==null&&i2>this.options.size){i2=this.options.size}
for(var j=i;j<=i2;j++){var e=this.get(j);if(!e.length||e.hasClass('jcarousel-item-placeholder')){return false}}
return true},get: function(i){return $('.jcarousel-item-'+i,this.list)},add: function(i,s){var e=this.get(i),old=0,n=$(s);if(e.length===0){var c,j=$jc.intval(i);e=this.create(i);while(true){c=this.get(--j);if(j<=0||c.length){if(j<=0){this.list.prepend(e)} else{c.after(e)}
break}}} else{old=this.dimension(e)}
if(n.get(0).nodeName.toUpperCase()=='LI'){e.replaceWith(n);e=n} else{e.empty().append(s)}
this.format(e.removeClass(this.className('jcarousel-item-placeholder')),i);var di=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null;var wh=this.dimension(e,di)-old;if(i>0&&i<this.first){this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-wh+'px')}
this.list.css(this.wh,$jc.intval(this.list.css(this.wh))+wh+'px');return e},remove: function(i){var e=this.get(i);if(!e.length||(i>=this.first&&i<=this.last)){return}
var d=this.dimension(e);if(i<this.first){this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+d+'px')}
e.remove();this.list.css(this.wh,$jc.intval(this.list.css(this.wh))-d+'px')},next: function(){if(this.tail!==null&&!this.inTail){this.scrollTail(false)} else{this.scroll(((this.options.wrap=='both'||this.options.wrap=='last')&&this.options.size!==null&&this.last==this.options.size)?1:this.first+this.options.scroll)}},prev: function(){if(this.tail!==null&&this.inTail){this.scrollTail(true)} else{this.scroll(((this.options.wrap=='both'||this.options.wrap=='first')&&this.options.size!==null&&this.first==1)?this.options.size:this.first-this.options.scroll)}},scrollTail: function(b){if(this.locked||this.animating||!this.tail){return}
this.pauseAuto();var pos=$jc.intval(this.list.css(this.lt));pos=!b?pos-this.tail:pos+this.tail;this.inTail=!b;this.prevFirst=this.first;this.prevLast=this.last;this.animate(pos)},scroll: function(i,a){if(this.locked||this.animating){return}
this.pauseAuto();this.animate(this.pos(i),a)},pos: function(i,fv){var pos=$jc.intval(this.list.css(this.lt));if(this.locked||this.animating){return pos}
if(this.options.wrap!='circular'){i=i<1?1:(this.options.size&&i>this.options.size?this.options.size:i)}
var back=this.first>i;var f=this.options.wrap!='circular'&&this.first<=1?1:this.first;var c=back?this.get(f):this.get(this.last);var j=back?f:f-1;var e=null,l=0,p=false,d=0,g;while(back?--j>=i:++j<i){e=this.get(j);p=!e.length;if(e.length===0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));c[back?'before':'after'](e);if(this.first!==null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){g=this.get(this.index(j));if(g.length){e=this.add(j,g.clone(true))}}}
c=e;d=this.dimension(e);if(p){l+=d}
if(this.first!==null&&(this.options.wrap=='circular'||(j>=1&&(this.options.size===null||j<=this.options.size)))){pos=back?pos+d:pos-d}}
var clipping=this.clipping(),cache=[],visible=0,v=0;c=this.get(i-1);j=i;while(++visible){e=this.get(j);p=!e.length;if(e.length===0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));if(c.length===0){this.list.prepend(e)} else{c[back?'before':'after'](e)}
if(this.first!==null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){g=this.get(this.index(j));if(g.length){e=this.add(j,g.clone(true))}}}
c=e;d=this.dimension(e);if(d===0){throw new Error('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...')}
if(this.options.wrap!='circular'&&this.options.size!==null&&j>this.options.size){cache.push(e)} else if(p){l+=d}
v+=d;if(v>=clipping){break}
j++}
for(var x=0;x<cache.length;x++){cache[x].remove()}
if(l>0){this.list.css(this.wh,this.dimension(this.list)+l+'px');if(back){pos-=l;this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-l+'px')}}
var last=i+visible-1;if(this.options.wrap!='circular'&&this.options.size&&last>this.options.size){last=this.options.size}
if(j>last){visible=0;j=last;v=0;while(++visible){e=this.get(j--);if(!e.length){break}
v+=this.dimension(e);if(v>=clipping){break}}}
var first=last-visible+1;if(this.options.wrap!='circular'&&first<1){first=1}
if(this.inTail&&back){pos+=this.tail;this.inTail=false}
this.tail=null;if(this.options.wrap!='circular'&&last==this.options.size&&(last-visible+1)>=1){var m=$jc.margin(this.get(last),!this.options.vertical?'marginRight':'marginBottom');if((v-m)>clipping){this.tail=v-clipping-m}}
if(fv&&i===this.options.size&&this.tail){pos-=this.tail;this.inTail=true}
while(i-->first){pos+=this.dimension(this.get(i))}
this.prevFirst=this.first;this.prevLast=this.last;this.first=first;this.last=last;return pos},animate: function(p,a){if(this.locked||this.animating){return}
this.animating=true;var self=this;var scrolled=function(){self.animating=false;if(p===0){self.list.css(self.lt,0)}
if(!self.autoStopped&&(self.options.wrap=='circular'||self.options.wrap=='both'||self.options.wrap=='last'||self.options.size===null||self.last<self.options.size||(self.last==self.options.size&&self.tail!==null&&!self.inTail))){self.startAuto()}
self.buttons();self.notify('onAfterAnimation');if(self.options.wrap=='circular'&&self.options.size!==null){for(var i=self.prevFirst;i<=self.prevLast;i++){if(i!==null&&!(i>=self.first&&i<=self.last)&&(i<1||i>self.options.size)){self.remove(i)}}}};this.notify('onBeforeAnimation');if(!this.options.animation||a===false){this.list.css(this.lt,p+'px');scrolled()} else{var o=!this.options.vertical?(this.options.rtl?{'right':p}:{'left':p}):{'top':p};this.list.animate(o,this.options.animation,this.options.easing,scrolled)}},startAuto: function(s){if(s!==undefined){this.options.auto=s}
if(this.options.auto===0){return this.stopAuto()}
if(this.timer!==null){return}
this.autoStopped=false;var self=this;this.timer=window.setTimeout(function(){self.next()},this.options.auto * 1000)},stopAuto: function(){this.pauseAuto();this.autoStopped=true},pauseAuto: function(){if(this.timer===null){return}
window.clearTimeout(this.timer);this.timer=null},buttons: function(n,p){if(n==null){n=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='first')||this.options.size===null||this.last<this.options.size);if(!this.locked&&(!this.options.wrap||this.options.wrap=='first')&&this.options.size!==null&&this.last>=this.options.size){n=this.tail!==null&&!this.inTail}}
if(p==null){p=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='last')||this.first>1);if(!this.locked&&(!this.options.wrap||this.options.wrap=='last')&&this.options.size!==null&&this.first==1){p=this.tail!==null&&this.inTail}}
var self=this;if(this.buttonNext.size()>0){this.buttonNext.unbind(this.options.buttonNextEvent+'.jcarousel',this.funcNext);if(n){this.buttonNext.bind(this.options.buttonNextEvent+'.jcarousel',this.funcNext)}
this.buttonNext[n?'removeClass':'addClass'](this.className('jcarousel-next-disabled')).attr('disabled',n?false:true);if(this.options.buttonNextCallback!==null&&this.buttonNext.data('jcarouselstate')!=n){this.buttonNext.each(function(){self.options.buttonNextCallback(self,this,n)}).data('jcarouselstate',n)}} else{if(this.options.buttonNextCallback!==null&&this.buttonNextState!=n){this.options.buttonNextCallback(self,null,n)}}
if(this.buttonPrev.size()>0){this.buttonPrev.unbind(this.options.buttonPrevEvent+'.jcarousel',this.funcPrev);if(p){this.buttonPrev.bind(this.options.buttonPrevEvent+'.jcarousel',this.funcPrev)}
this.buttonPrev[p?'removeClass':'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled',p?false:true);if(this.options.buttonPrevCallback!==null&&this.buttonPrev.data('jcarouselstate')!=p){this.buttonPrev.each(function(){self.options.buttonPrevCallback(self,this,p)}).data('jcarouselstate',p)}} else{if(this.options.buttonPrevCallback!==null&&this.buttonPrevState!=p){this.options.buttonPrevCallback(self,null,p)}}
this.buttonNextState=n;this.buttonPrevState=p},notify: function(evt){var state=this.prevFirst===null?'init':(this.prevFirst<this.first?'next':'prev');this.callback('itemLoadCallback',evt,state);if(this.prevFirst!==this.first){this.callback('itemFirstInCallback',evt,state,this.first);this.callback('itemFirstOutCallback',evt,state,this.prevFirst)}
if(this.prevLast!==this.last){this.callback('itemLastInCallback',evt,state,this.last);this.callback('itemLastOutCallback',evt,state,this.prevLast)}
this.callback('itemVisibleInCallback',evt,state,this.first,this.last,this.prevFirst,this.prevLast);this.callback('itemVisibleOutCallback',evt,state,this.prevFirst,this.prevLast,this.first,this.last)},callback: function(cb,evt,state,i1,i2,i3,i4){if(this.options[cb]==null||(typeof this.options[cb]!='object'&&evt!='onAfterAnimation')){return}
var callback=typeof this.options[cb]=='object'?this.options[cb][evt]:this.options[cb];if(!$.isFunction(callback)){return}
var self=this;if(i1===undefined){callback(self,state,evt)} else if(i2===undefined){this.get(i1).each(function(){callback(self,this,i1,state,evt)})} else{var call=function(i){self.get(i).each(function(){callback(self,this,i,state,evt)})};for(var i=i1;i<=i2;i++){if(i!==null&&!(i>=i3&&i<=i4)){call(i)}}}},create: function(i){return this.format('<li></li>',i)},format: function(e,i){e=$(e);var split=e.get(0).className.split(' ');for(var j=0;j<split.length;j++){if(split[j].indexOf('jcarousel-')!=-1){e.removeClass(split[j])}}
e.addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-'+i)).css({'float':(this.options.rtl?'right':'left'),'list-style':'none'}).attr('jcarouselindex',i);return e},className: function(c){return c+' '+c+(!this.options.vertical?'-horizontal':'-vertical')},dimension: function(e,d){var el=e.jquery!==undefined?e[0]:e;var old=!this.options.vertical?(el.offsetWidth||$jc.intval(this.options.itemFallbackDimension))+$jc.margin(el,'marginLeft')+$jc.margin(el,'marginRight'):(el.offsetHeight||$jc.intval(this.options.itemFallbackDimension))+$jc.margin(el,'marginTop')+$jc.margin(el,'marginBottom');if(d==null||old==d){return old}
var w=!this.options.vertical?d-$jc.margin(el,'marginLeft')-$jc.margin(el,'marginRight'):d-$jc.margin(el,'marginTop')-$jc.margin(el,'marginBottom');$(el).css(this.wh,w+'px');return this.dimension(el)},clipping: function(){return!this.options.vertical?this.clip[0].offsetWidth-$jc.intval(this.clip.css('borderLeftWidth'))-$jc.intval(this.clip.css('borderRightWidth')):this.clip[0].offsetHeight-$jc.intval(this.clip.css('borderTopWidth'))-$jc.intval(this.clip.css('borderBottomWidth'))},index: function(i,s){if(s==null){s=this.options.size}
return Math.round((((i-1)/ s) - Math.floor((i-1) / s)) * s)+1}});$jc.extend({defaults: function(d){return $.extend(defaults,d||{})},margin: function(e,p){if(!e){return 0}
var el=e.jquery!==undefined?e[0]:e;if(p=='marginRight'&&$.browser.safari){var old={'display':'block','float':'none','width':'auto'},oWidth,oWidth2;$.swap(el,old, function(){oWidth=el.offsetWidth});old.marginRight=0;$.swap(el,old, function(){oWidth2=el.offsetWidth});return oWidth2-oWidth}
return $jc.intval($.css(el,p))},intval: function(v){v=parseInt(v,10);return isNaN(v)?0:v}});$.fn.jcarousel=function(o){if(typeof o=='string'){var instance=$(this).data('jcarousel'),args=Array.prototype.slice.call(arguments,1);return instance[o].apply(instance,args)} else{return this.each(function(){$(this).data('jcarousel',new $jc(this,o))})}}})(jQuery);

