//
// stuck
//

(function() {
  (function($) {
    return $.fn.stuck = function(opts) {
      var Stuck;
      Stuck = (function() {
        Stuck.prototype.elements = [];

        Stuck.prototype.resizing = false;

        function Stuck(w, opts) {
          this.window = w;
          this.body = $("body");
          this.loadElements();
          this.calculateTopOffset();
          if (this.isIOS()) {
            this.body.on({
              touchmove: (function(_this) {
                return function() {
                  return _this.update();
                };
              })(this)
            });
          }
          this.window.scroll(((function(_this) {
            return function() {
              return _this.update();
            };
          })(this)));
          this.window.resize(((function(_this) {
            return function() {
              return _this.resize();
            };
          })(this)));
          this.update();
          this;
        }

        Stuck.prototype.isIOS = function() {
          return this._isIOS || (this._isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent));
        };

        Stuck.prototype.resize = function() {
          this.resizing = true;
          this.calculateTopOffset();
          this.update();
        };

        Stuck.prototype.loadElements = function() {
          var classes, container, divs, i, name, node, release, spacer, top, x, y;
          divs = $(".stuck");
          i = divs.length;
          y = 0;
          while (i--) {
            node = divs.eq(y);
            y++;
            release = false;
            container = '';
            classes = node.attr("class").split(/\s+/);
            spacer = $("<div/>");
            x = classes.length;
            while (x--) {
              name = classes[x];
              if (name === "release") {
                release = true;
                container = node.closest(".release-container");
              }
              if (!(name === "stuck" || name === "release")) {
                spacer.addClass(name);
              }
            }
            spacer.height(node.outerHeight()).hide().css("background-color", "transparent").insertBefore(node);
            top = node.offset().top - parseInt(node.css('margin-top'));
            this.elements.push({
              node: node,
              spacer: spacer,
              top: top,
              top_offset: 0,
              fixed: false,
              release: release,
              container: container,
              contained: false
            });
          }
        };

        Stuck.prototype.calculateTopOffset = function() {
          var collide_flag, collide_y, collision, el, elements, i, matrix, max_height, row_element, value, x, y, z;
          matrix = [];
          i = this.elements.length;
          x = 0;
          while (i--) {
            el = this.elements[x];
            x++;
            y = matrix.length;
            if (y === 0) {
              if (!el.release) {
                matrix.push([el]);
              }
            } else {
              collide_flag = false;
              while (y-- && !collide_flag) {
                max_height = 0;
                elements = matrix[y];
                z = elements.length;
                while (z--) {
                  row_element = elements[z];
                  collision = this.collide(row_element.node, el.node);
                  if (collision) {
                    value = row_element.top_offset + row_element.node.outerHeight(true);
                    if (value > max_height) {
                      max_height = value;
                    }
                    collide_flag = true;
                    if (matrix[y + 1] != null) {
                      collide_y = y + 1;
                    } else {
                      collide_y = -1;
                    }
                  } else {
                    if (y === 0) {
                      collide_y = 0;
                    }
                  }
                }
              }
              if (collide_flag) {
                el.top_offset = max_height;
                if (!el.release) {
                  if (collide_y >= 0) {
                    matrix[collide_y].push(el);
                  } else {
                    matrix.push([el]);
                  }
                }
              } else {
                el.top_offset = 0;
                if (!el.release) {
                  matrix[0].push(el);
                }
              }
            }
          }
        };

        Stuck.prototype.collide = function(node1, node2) {
          var n1l, n2l;
          n1l = node1.offset().left;
          n2l = node2.offset().left;
          if (n1l === n2l) {
            return true;
          } else if (n1l < n2l) {
            if (Math.floor(n1l) + node1.width() > Math.ceil(n2l)) {
              return true;
            } else {
              return false;
            }
          } else {
            if (Math.floor(n2l) + node2.width() > Math.ceil(n1l)) {
              return true;
            } else {
              return false;
            }
          }
        };

        Stuck.prototype.update = function() {
          var el, i, window_top;
          window_top = this.window.scrollTop();
          i = this.elements.length;
          while (i--) {
            el = this.elements[i];
            if (this.resizing) {
              if (el.fixed) {
                el.top = el.spacer.offset().top - parseInt(el.spacer.css('margin-top'));
              } else {
                el.top = el.node.offset().top - parseInt(el.node.css('margin-top'));
              }
              if (el.fixed) {
                el.node.css({
                  top: el.top_offset,
                  left: el.spacer.offset().left,
                  width: el.spacer.outerWidth()
                });
              }
              if (el.contained && window_top > (el.container.offset().top + el.container.height() - el.node.height() - el.top_offset)) {
                el.node.css({
                  position: "absolute",
                  top: el.container.height() - el.node.height(),
                  left: '',
                  width: '',
                  "z-index": ''
                });
              }
            }
            if (el.fixed && el.release && !el.contained && window_top > (el.container.offset().top + el.container.height() - el.node.height() - el.top_offset)) {
              el.contained = true;
              el.container.css("position", "relative");
              el.node.css({
                position: "absolute",
                top: el.container.height() - el.node.height(),
                left: '',
                width: '',
                "z-index": ''
              });
            }
            if (el.contained && window_top < (el.container.offset().top + el.container.height() - el.node.height() - el.top_offset)) {
              el.contained = false;
              el.container.css("position", '');
              el.node.css({
                position: "fixed",
                top: el.top_offset,
                left: el.spacer.offset().left,
                width: el.spacer.outerWidth(),
                "z-index": 999
              });
            }
            if (!el.fixed && window_top > el.top - el.top_offset) {
              el.fixed = true;
              el.spacer.show();
              el.node.css({
                position: "fixed",
                top: el.top_offset,
                left: el.spacer.offset().left,
                width: el.spacer.outerWidth(),
                "z-index": 999
              });
            }
            if (el.fixed && window_top < el.top - el.top_offset) {
              el.fixed = false;
              el.spacer.hide();
              el.node.css({
                position: "relative",
                top: '',
                left: '',
                width: '',
                "z-index": ''
              });
            }
          }
          this.resizing = false;
        };

        Stuck.prototype.destroy = function() {
          var i;
          i = this.elements.length;
          while (i--) {
            this.elements[i].spacer.remove();
          }
          this.window.unbind('scroll');
          this.window.unbind('resize');
          this.window = this.elements = null;
        };

        return Stuck;

      })();
      return new Stuck(this, opts);
    };
  })(jQuery);

}).call(this);


/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
var stacks = {};
stacks.jQuery = jQuery.noConflict(true);
stacks.com_joeworkman_stacks_offsite3 = {};
stacks.com_joeworkman_stacks_offsite3 = (function(stack) { const newOffsite=function(options){const i=document.createElement("iframe");i.src=options.src;i.scrolling=options.scrolling;i.width=options.width;i.height=options.height;i.classList="offsite offsite-load "+options.class;i.setAttribute("loading",options.loading);i.dataset.delay=options.delay;if(options.name.length>0)i.name=options.name;if(options.title.length>0)i.title=options.title;if(options.fullscreen==true)i.allow="fullscreen";i.addEventListener("load",event=>{event.target.classList.remove("offsite-load");},{once:true});return i;};const offsiteFit=function(iframe){iframe.height=iframe.contentWindow.document.body.scrollHeight;};const offsiteWatch=function(){const wrappers=Array.from(document.getElementsByClassName("offsite-wrapper"));for(const wrapper of wrappers){if(wrapper.classList.contains("offsite-loaded"))continue;const options=JSON.parse(wrapper.dataset.offsite);const iframe=newOffsite(options);wrapper.append(iframe);if(wrapper.classList.contains("offsite-fit")){offsiteFit(iframe);iframe.addEventListener("DOMContentLoaded",()=>offsiteFit(iframe));window.addEventListener("resize",()=>offsiteFit(iframe));setTimeout(()=>offsiteFit(iframe),iframe.dataset.delay);}
wrapper.classList.add("offsite-loaded");}};document.addEventListener("DOMContentLoaded",offsiteWatch,false);document.addEventListener("totalcms.loadmore",offsiteWatch,false);

return stack;})(stacks.com_joeworkman_stacks_offsite3);
stacks.com_bigwhiteduck_stacks_headerpro = {};
stacks.com_bigwhiteduck_stacks_headerpro = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery; var elements=document.getElementsByClassName('hp-slice');while(elements.length>0){elements[0].parentNode.removeChild(elements[0]);}

return stack;})(stacks.com_bigwhiteduck_stacks_headerpro);
stacks.uk_co_doobox_doojet = {};
stacks.uk_co_doobox_doojet = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;// Start dooJet stack page Javascript code(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("jetAnimate.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.JETANIMATE=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.jetAnimateEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"jetAnimate",animateClass:"animated",offset:50,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.jetAnimateEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-jetAnimate-duration"),c=a.getAttribute("data-jetAnimate-delay"),e=a.getAttribute("data-jetAnimate-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-jetAnimate-offset")||this.config.offset,f=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);new JETANIMATE().init();// End dooJet stack page Javascript code
return stack;})(stacks.uk_co_doobox_doojet);
stacks.stacks_in_3 = {};
stacks.stacks_in_3 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;// Set Language for Document
document.documentElement.lang = "en";

$(document).ready(function(){
  

  
});

$.fn.elementRealHeight = function () {
   $clone = this.clone()
       .css("visibility","hidden")
       .appendTo($('body'));
   var $height = $clone.outerHeight();
   $clone.remove();
   return $height;
 };

 $.fn.elementRealWidth = function () {
    $clone = this.clone()
        .css("visibility","hidden")
        .appendTo($('body'));
    var $width = $clone.outerWidth();
    $clone.remove();
    return $width;
  };


  // Handles offsets for anchor tags
  // (function(document, history, location) {
  //   var HISTORY_SUPPORT = !!(history && history.pushState);
  //
  //   var anchorScrolls = {
  //     ANCHOR_REGEX: /^#[^ ]+$/,
  //     OFFSET_HEIGHT_PX: 0,
  //
  //     /**
  //      * Establish events, and fix initial scroll position if a hash is provided.
  //      */
  //     init: function() {
  //       this.scrollToCurrent();
  //       window.addEventListener('hashchange', this.scrollToCurrent.bind(this));
  //       document.body.addEventListener('click', this.delegateAnchors.bind(this));
  //     },
  //
  //     /**
  //      * Return the offset amount to deduct from the normal scroll position.
  //      * Modify as appropriate to allow for dynamic calculations
  //      */
  //     getFixedOffset: function() {
  //       return this.OFFSET_HEIGHT_PX;
  //     },
  //
  //     /**
  //      * If the provided href is an anchor which resolves to an element on the
  //      * page, scroll to it.
  //      * @param  {String} href
  //      * @return {Boolean} - Was the href an anchor.
  //      */
  //     scrollIfAnchor: function(href, pushToHistory) {
  //       var match, rect, anchorOffset;
  //
  //       if(!this.ANCHOR_REGEX.test(href)) {
  //         return false;
  //       }
  //
  //       match = document.getElementById(href.slice(1));
  //
  //       if(match) {
  //         rect = match.getBoundingClientRect();
  //         anchorOffset = window.pageYOffset + rect.top - this.getFixedOffset();
  //         window.scrollTo(window.pageXOffset, anchorOffset);
  //
  //         // Add the state to history as-per normal anchor links
  //         if(HISTORY_SUPPORT && pushToHistory) {
  //           history.pushState({}, document.title, location.pathname + href);
  //         }
  //       }
  //
  //       return !!match;
  //     },
  //
  //     /**
  //      * Attempt to scroll to the current location's hash.
  //      */
  //     scrollToCurrent: function() {
  //       this.scrollIfAnchor(window.location.hash);
  //     },
  //
  //     /**
  //      * If the click event's target was an anchor, fix the scroll position.
  //      */
  //     delegateAnchors: function(e) {
  //       var elem = e.target;
  //
  //       if(
  //         elem.nodeName === 'A' &&
  //         this.scrollIfAnchor(elem.getAttribute('href'), true)
  //       ) {
  //         e.preventDefault();
  //       }
  //     }
  //   };
  //
  //   window.addEventListener(
  //     'DOMContentLoaded', anchorScrolls.init.bind(anchorScrolls)
  //   );
  // })(window.document, window.history, window.location);

return stack;})(stacks.stacks_in_3);
stacks.stacks_in_85_2 = {};
stacks.stacks_in_85_2 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;$(function() {
    var scrollPosition = 0,
          fmHeader = $(".fm-header"),
         animationTime = 0.10,
         blurToggle = $(".fm-toggle-blur"),
           activeItems = $('.fm-overlay, .fm-navigation, .overlay-content, body');
    
    $('.fm-button').on('click', function(e) {
        $([this, blurToggle]).toggleClass('active');
        activeItems.toggleClass('active');
    });
    
    $('.fm-navigation-menu ul li').each(function(){
        $(this).css("animation-delay", animationTime+"s");
        animationTime += 0.10;
    });
    
    $(document).scroll(function() { 
        scrollPosition = $(this).scrollTop();
        if(scrollPosition > 100) {
            fmHeader.addClass("navigation-bg")
        } else {
            fmHeader.removeClass("navigation-bg")
        }
    });
    
});
return stack;})(stacks.stacks_in_85_2);
stacks.stacks_in_107 = {};
stacks.stacks_in_107 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;$(document).ready(function(){
	
		$('#stacks_in_107 > .container').parentsUntil('.stacks_top').css('overflow', 'visible');
		$('.stacks_top').css({'overflow' : 'visible'});
	
});

return stack;})(stacks.stacks_in_107);
stacks.stacks_in_140 = {};
stacks.stacks_in_140 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;$(document).ready(function(){
	
		$('#stacks_in_140 > .container').parentsUntil('.stacks_top').css('overflow', 'visible');
		$('.stacks_top').css({'overflow' : 'visible'});
	
});

return stack;})(stacks.stacks_in_140);
stacks.stacks_in_141 = {};
stacks.stacks_in_141 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;jQuery.noConflict();

// BEGIN JQUERY
(function($){
// BEGIN DOMREADY
$(document).ready(function(){

	// Main Stack Object
	var ascend = {
		$el: $('#ascend-stacks_in_141'),
		$container: $('#ascend-container-stacks_in_141'),
		$link: $('#ascend-stacks_in_141 .ascend-menu a'),
		$elHover: $('#ascend-stacks_in_141.ascend-on-hover'),
		$elClick: $('#ascend-stacks_in_141.ascend-on-click'),
		$overlay: $('#ascend-overlay-stacks_in_141'),
		isOpen: function(){
			return this.$el.hasClass('open');
		},
		open: function(){
			this.$el.addClass('open')
			$('.weavium-ascend:not(#ascend-stacks_in_141)')
			.css({
				pointerEvents: 'none',
				zIndex: '1'
			});
			// $(document.body).css('overflow','hidden')
		},
		close: function(){
			this.$el.removeClass('open')
			$('.weavium-ascend:not(#ascend-stacks_in_141)')
			.css({
				pointerEvents: 'none',
				zIndex: ''
			});

			// $(document.body).css('overflow','visible')
		},
		initialize: function(){
			this.$el.prependTo(document.body);
			$(document.body).prepend('<div id="ascend-top" class="ascend-marker"><span>Ascend Page Top</span></div>')
		}
	}

	ascend.initialize();

	// Toggle Ascend Menu
	ascend.$el.find('.ascend-toggle').on('click', function(){
		if(!ascend.isOpen()){
			ascend.open();
		} else {
			ascend.close();
		}
	})

	// Open on Hover
	ascend.$elHover.hover(function(){
		if($(window).width() >= 768){
			ascend.open();
		}
	}, function(){
		if($(window).width() >= 768){
			ascend.close();
		}
	});


	// Close on Overlay Click
	ascend.$overlay.click(function(e){
		e.preventDefault();
		ascend.close();
	})

	// Focusing Close Effect
	ascend.$overlay.hover(function(){
		ascend.$el.addClass('close-focus')
	}, function(){
		ascend.$el.removeClass('close-focus')
	})

	// Close on ESC Key
	$(document).keyup(function(e) {
		 if (e.keyCode == 27 && ascend.isOpen()) {
				ascend.close();
			}
	});

	


	ascend.$link.click(function(event) {
		// On-page links
		if (
			location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 
			&& 
			location.hostname == this.hostname
		) {
			// Figure out element to scroll to
			var target = $(this.hash);
			target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
			// Does a scroll target exist?
			if (target.length) {
				// Only prevent default if animation is actually gonna happen
				event.preventDefault();
				ascend.close();
				$('html, body').animate({
					scrollTop: target.offset().top
				}, 600);
			}
		}
	});


// END DOCUMENT READY
});
	// END JQUERY
})(jQuery);

return stack;})(stacks.stacks_in_141);
stacks.stacks_in_119 = {};
stacks.stacks_in_119 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;

// $(document).ready(function($){
// 	$("#stacks_in_119 > .sticky_content").makeFixed();
// });

$(document).ready(function(){
	

	$('#stacks_in_119').addClass('stuck');
	$(window).stuck();
});




return stack;})(stacks.stacks_in_119);
stacks.stacks_in_120 = {};
stacks.stacks_in_120 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;$(document).ready(function(){
	
		$('#stacks_in_120 > .container').parentsUntil('.stacks_top').css('overflow', 'visible');
		$('.stacks_top').css({'overflow' : 'visible'});
	
});

return stack;})(stacks.stacks_in_120);
stacks.stacks_in_122 = {};
stacks.stacks_in_122 = (function(stack) {
var jQuery = stacks.jQuery;var $ = jQuery;// Start dooJet stack each Javascript code$(document).ready(function() {	var stacks_in_122possFloatValues = ["left","right"];	$('#stacks_in_122').parentsUntil( ".stacks_top" ).each(function() {		$(this).css({'overflow' : 'visible'});		if(jQuery.inArray($(this).css('float'), stacks_in_122possFloatValues) !== -1) {			$(this).parent().addClass("skywardClearing");		}	});	if($("#jetOverflowRestrict").length == 0){		$( "body" ).wrapInner( "<div id='jetOverflowRestrict'></div>");	}	$( ".stacks_top" ).parentsUntil( $( "#jetOverflowRestrict" ) ).css( "overflow", "visible" );});// End dooJet stack each Javascript code
return stack;})(stacks.stacks_in_122);