
/* 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++oxfordceramics.oc_theme.js/jquery.galleria.js - */
// http://www.oxfordceramics.com/portal_javascripts/++resource++oxfordceramics.oc_theme.js/jquery.galleria.js?original=1
(function($){var $$;$$=$.fn.galleria=function($options){if(!$$.hasCSS()){return false}
$.historyInit($$.onPageLoad);var $defaults={insert:'.galleria_container',history:true,clickNext:true,onImage: function(image,caption,thumb){},onThumb: function(thumb){}};var $opts=$.extend($defaults,$options);for(var i in $opts){if(i){$.galleria[i]=$opts[i]}}
var _insert=($($opts.insert).is($opts.insert))?$($opts.insert):jQuery(document.createElement('div')).insertBefore(this);var _div=$(document.createElement('div')).addClass('galleria_wrapper');var _span=$(document.createElement('span')).addClass('caption');_insert.addClass('galleria_container').append(_div).append(_span);return this.each(function(){$(this).addClass('galleria');$(this).children('li').each(function(i){var _container=$(this);var _o=$.meta?$.extend({},$opts,_container.data()):$opts;_o.clickNext=$(this).is(':only-child')?false:_o.clickNext;var _a=$(this).find('a').is('a')?$(this).find('a'):false;var _img=$(this).children('img').css('display','none');var _src=_a?_a.attr('href'):_img.attr('src');var _title=_a?_a.attr('title'):_img.attr('title');var _loader=new Image();if(_o.history&&(window.location.hash&&window.location.hash.replace(/\#/,'')==_src)){_container.siblings('.active').removeClass('active');_container.addClass('active')}
$(_loader).load(function(){$(this).attr('alt',_img.attr('alt'));var _thumb=_a?_a.find('img').addClass('thumb noscale').css('display','none'):_img.clone(true).addClass('thumb').css('display','none');if(_a){_a.replaceWith(_thumb)}
if(!_thumb.hasClass('noscale')){var w=Math.ceil(_img.width()/_img.height() * _container.height());var h=Math.ceil(_img.height()/_img.width() * _container.width());if(w<h){_thumb.css({height:'auto',width:_container.width(),marginTop:-(h-_container.height())/2})} else{_thumb.css({width:'auto',height:_container.height(),marginLeft:-(w-_container.width())/2})}} else{window.setTimeout(function(){_thumb.css({marginLeft:-(_thumb.width()-_container.width())/2,marginTop:-(_thumb.height()-_container.height())/2})},1)}
_thumb.attr('rel',_src);_thumb.attr('title',_title);_thumb.click(function(){$.galleria.activate(_src)});_thumb.hover(
function(){$(this).addClass('hover')},
function(){$(this).removeClass('hover')});_container.hover(
function(){_container.addClass('hover')},
function(){_container.removeClass('hover')});_container.prepend(_thumb);_thumb.css('display','block');_o.onThumb(jQuery(_thumb));if(_container.hasClass('active')){$.galleria.activate(_src)}
_img.remove()}).error(function(){_container.html('<span class="error" style="color:red">Error loading image: '+_src+'</span>')}).attr('src',_src)})})};$$.nextSelector=function(selector){return $(selector).is(':last-child')?$(selector).siblings(':first-child'):$(selector).next()};$$.previousSelector=function(selector){return $(selector).is(':first-child')?$(selector).siblings(':last-child'):$(selector).prev()};$$.hasCSS=function(){$('body').append($(document.createElement('div')).attr('id','css_test').css({width:'1px',height:'1px',display:'none'}));var _v=($('#css_test').width()!=1)?false:true;$('#css_test').remove();return _v};$$.onPageLoad=function(_src){var _wrapper=$('.galleria_wrapper');var _thumb=$('.galleria img[@rel="'+_src+'"]');if(_src){if($.galleria.history){window.location=window.location.href.replace(/\#.*/,'')+'#'+_src}
_thumb.parents('li').siblings('.active').removeClass('active');_thumb.parents('li').addClass('active');var _img=$(new Image()).attr('src',_src).addClass('replaced');_wrapper.empty().append(_img);_wrapper.siblings('.caption').text(_thumb.attr('title'));$.galleria.onImage(_img,_wrapper.siblings('.caption'),_thumb);if($.galleria.clickNext){_img.css('cursor','pointer').click(function(){$.galleria.next()})}} else{_wrapper.siblings().andSelf().empty();$('.galleria li.active').removeClass('active')}
$.galleria.current=_src};$.extend({galleria:{current:'',onImage: function(){},activate: function(_src){if($.galleria.history){$.historyLoad(_src)} else{$$.onPageLoad(_src)}},next: function(){var _next=$($$.nextSelector($('.galleria img[@rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');$.galleria.activate(_next)},prev: function(){var _prev=$($$.previousSelector($('.galleria img[@rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');$.galleria.activate(_prev)}}})})(jQuery);jQuery.extend({historyCurrentHash:undefined,historyCallback:undefined,historyInit: function(callback){jQuery.historyCallback=callback;var current_hash=location.hash;jQuery.historyCurrentHash=current_hash;if(jQuery.browser.msie){if(jQuery.historyCurrentHash===''){jQuery.historyCurrentHash='#'}}
else if(jQuery.browser.safari){jQuery.historyBackStack=[];jQuery.historyBackStack.length=history.length;jQuery.historyForwardStack=[];jQuery.isFirst=true}
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){} else if(jQuery.browser.safari){if(!jQuery.dontCheck){var historyDelta=history.length-jQuery.historyBackStack.length;if(historyDelta){jQuery.isFirst=false;var i;if(historyDelta<0){for(i=0;i<Math.abs(historyDelta);i++){jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop())}} else{for(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;jQuery.historyCallback(cachedHash)}} else if(jQuery.historyBackStack[jQuery.historyBackStack.length-1]===undefined&&!jQuery.isFirst){if(document.URL.indexOf('#')>=0){jQuery.historyCallback(document.URL.split('#')[1])} else{current_hash=location.hash;jQuery.historyCallback('')}
jQuery.isFirst=true}}} else{current_hash=location.hash;if(current_hash!=jQuery.historyCurrentHash){jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''))}}},historyLoad: function(hash){var newhash;if(jQuery.browser.safari){newhash=hash}
else{newhash='#'+hash;location.hash=newhash}
jQuery.historyCurrentHash=newhash;if(jQuery.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=newhash;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)}}});

/* - ++resource++oxfordceramics.oc_theme.js/jquery.scrollable-1.0.2.js - */
// http://www.oxfordceramics.com/portal_javascripts/++resource++oxfordceramics.oc_theme.js/jquery.scrollable-1.0.2.js?original=1
(function($){
function fireEvent(opts,name,self,arg){var fn=opts[name];if($.isFunction(fn)){try{return fn.call(self,arg)} catch(error){if(opts.alert){alert("Error calling scrollable."+name+": "+error)} else{throw error}
return false}}
return true}
var current=null;
function Scrollable(root,conf){var self=this;if(!current){current=self}
var horizontal=!conf.vertical;var wrap=$(conf.items,root);var index=0;var navi=root.siblings(conf.navi).eq(0);var prev=root.siblings(conf.prev).eq(0);var next=root.siblings(conf.next).eq(0);var prevPage=root.siblings(conf.prevPage).eq(0);var nextPage=root.siblings(conf.nextPage).eq(0);$.extend(self,{getVersion: function(){return [1,0,1]},getIndex: function(){return index},getConf: function(){return conf},getSize: function(){return self.getItems().size()},getPageAmount: function(){return Math.ceil(this.getSize()/conf.size)},getPageIndex: function(){return Math.ceil(index/conf.size)},getRoot: function(){return root},getItemWrap: function(){return wrap},getItems: function(){return wrap.children()},seekTo: function(i,time,fn){time=time||conf.speed;if($.isFunction(time)){fn=time;time=conf.speed}
if(i<0){i=0}
if(i>self.getSize()-conf.size){return self}
var item=self.getItems().eq(i);if(!item.length){return self}
if(fireEvent(conf,"onBeforeSeek",self,i)===false){return self}
if(horizontal){var left=-(item.outerWidth(true) * i)+0;wrap.animate({left:left},time,conf.easing,fn? function(){fn.call(self)}:null)} else{var top=-(item.outerHeight(true) * i);wrap.animate({top:top},time,conf.easing,fn? function(){fn.call(self)}:null)}
if(navi.length){var klass=conf.activeClass;var page=Math.ceil(i/conf.size);page=Math.min(page,navi.children().length-1);navi.children().removeClass(klass).eq(page).addClass(klass)}
if(i===0){prev.add(prevPage).addClass(conf.disabledClass)} else{prev.add(prevPage).removeClass(conf.disabledClass)}
if(i>=self.getSize()-conf.size){next.add(nextPage).addClass(conf.disabledClass)} else{next.add(nextPage).removeClass(conf.disabledClass)}
current=self;index=i;fireEvent(conf,"onSeek",self,i);return self},move: function(offset,time,fn){var to=index+offset;if(conf.loop&&to>(self.getSize()-conf.size)){to=0}
return this.seekTo(to,time,fn)},next: function(time,fn){return this.move(1,time,fn)},prev: function(time,fn){return this.move(-1,time,fn)},movePage: function(offset,time,fn){return this.move(conf.size * offset,time,fn)},setPage: function(page,time,fn){var size=conf.size;var index=size * page;var lastPage=index+size>=this.getSize();if(lastPage){index=this.getSize()-conf.size}
return this.seekTo(index,time,fn)},prevPage: function(time,fn){return this.setPage(this.getPageIndex()-1,time,fn)},nextPage: function(time,fn){return this.setPage(this.getPageIndex()+1,time,fn)},begin: function(time,fn){return this.seekTo(0,time,fn)},end: function(time,fn){return this.seekTo(this.getSize()-conf.size,time,fn)},reload: function(){return load()},click: function(index,time,fn){var item=self.getItems().eq(index);var klass=conf.activeClass;if(!item.hasClass(klass)&&(index>=0||index<this.getSize())){self.getItems().removeClass(klass);item.addClass(klass);var delta=Math.floor(conf.size/2);var to=index-delta;if(to>self.getSize()-conf.size){to--}
if(to!==index){return this.seekTo(to,time,fn)}}
return self}});if($.isFunction($.fn.mousewheel)){root.bind("mousewheel.scrollable", function(e,delta){var step=$.browser.opera?1:-1;self.move(delta>0?step:-step,50);return false})}
prev.addClass(conf.disabledClass).click(function(){self.prev()});next.click(function(){self.next()});nextPage.click(function(){self.nextPage()});prevPage.addClass(conf.disabledClass).click(function(){self.prevPage()});if(conf.keyboard){$(window).unbind("keypress.scrollable").bind("keypress.scrollable", function(evt){var el=current;if(!el){return}
if(horizontal&&(evt.keyCode==37||evt.keyCode==39)){el.move(evt.keyCode==37?-1:1);return evt.preventDefault()}
if(!horizontal&&(evt.keyCode==38||evt.keyCode==40)){el.move(evt.keyCode==38?-1:1);return evt.preventDefault()}
return true})}
function load(){navi.each(function(){var nav=$(this);if(nav.is(":empty")||nav.data("me")==self){nav.empty();nav.data("me",self);for(var i=0;i<self.getPageAmount();i++){var item=$("<"+conf.naviItem+"/>").attr("href",i).click(function(e){var el=$(this);el.parent().children().removeClass(conf.activeClass);el.addClass(conf.activeClass);self.setPage(el.attr("href"));return e.preventDefault()});if(i===0){item.addClass(conf.activeClass)}
nav.append(item)}} else{var els=nav.children();els.each(function(i){var item=$(this);item.attr("href",i);if(i===0){item.addClass(conf.activeClass)}
item.click(function(){nav.find("."+conf.activeClass).removeClass(conf.activeClass);item.addClass(conf.activeClass);self.setPage(item.attr("href"))})})}});if(conf.clickable){self.getItems().each(function(index,arg){var el=$(this);if(!el.data("set")){el.bind("click.scrollable", function(){self.click(index)});el.data("set",true)}})}
if(conf.hoverClass){self.getItems().hover(function(){$(this).addClass(conf.hoverClass)}, function(){$(this).removeClass(conf.hoverClass)})}
return self}
load();var timer=null;
function setTimer(){timer=setInterval(function(){self.next()},conf.interval)}
if(conf.interval>0){root.hover(function(){clearInterval(timer)}, function(){setTimer()});setTimer()}}
jQuery.prototype.scrollable=function(conf){var api=this.eq(typeof conf=='number'?conf:0).data("scrollable");if(api){return api}
var opts={size:5,vertical:false,clickable:true,loop:false,interval:0,speed:400,keyboard:true,activeClass:'active',disabledClass:'disabled',hoverClass:null,easing:'swing',items:'.items',prev:'.prev',next:'.next',prevPage:'.prevPage',nextPage:'.nextPage',navi:'.navi',naviItem:'a',onBeforeSeek:null,onSeek:null,alert:true};$.extend(opts,conf);this.each(function(){var el=new Scrollable($(this),opts);$(this).data("scrollable",el)});return this}})(jQuery);
