PageSourceSearch

https://bnl.it/etc.clientlibs/bnl/clientlibs/clientlib-all.min.js

js bnl.it collected 2026-10-02 03:09:47 UTC 289,351 bytes, 5,200 lines download raw bytes

1/*!
2  * Bootstrap v5.3.3 (https://getbootstrap.com/)
3  * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5  */
vendor: 21,520 bytes, lines 5-6
5
6!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function j(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function M(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${M(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${M(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=j(t.dataset[n])}return e},getDataAttribute:(t,e)=>j(t.getAttribute(`data-bs-${M(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>n(t))).join(","):null},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",jt="collapsing",Mt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(jt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(jt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(Mt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];
vendor: 18,133 bytes, line 6
6function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function je(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const Me={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:je(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:je(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},j=p?3:1;j>0&&"break"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled}
vendor: 5,266 bytes, line 6
6)),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,Me,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:Me,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",ji=p()?"top-end":"top-start",Mi=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Mi:ji:e?Hi:Fi}
vendor: 10,248 bytes, line 6
6_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method n
vendor: 9,229 bytes, line 6
6amed "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,jn=`hide${xn}`,Mn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,Mn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,Mn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}
vendor: 5,396 bytes, line 6
6hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method n
vendor: 10,644 bytes, line 6
6amed "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",js="Home",Ms="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([js,Ms].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}}));
6
7//# sourceMappingURL=bootstrap.bundle.min.js.map
8var viewportSize;
9var slidingDimension;
10
11function _dimensions() {
12
13	if (typeof $ === "undefined" || $(".header").length===0 || $(".footer_area").length===0) {
14		return;
15	}
16
17	var header_height = $(".header").outerHeight();
18	var footer_header_height = $(".footer_header").outerHeight();
19
20	var main_container_height = $(window).height() - header_height - footer_header_height;
21	var offering_height = main_container_height;
22	var contacts_height = main_container_height;
23	var inst_contacts_height = main_container_height;
24
25	$('.contacts').css('height', 'auto');
26
27	if ( isSmallDevice() ) {	
28		contacts_height = 'auto';
29		inst_contacts_height = 'auto';
30		main_container_height = 'auto';
31		offering_height = Math.max($(window).height() - $(".header").outerHeight(), 343);
32	}
33
34	else {
35
36		if ( ( contacts_height > $('.contacts').height() ) )
37			$('.contacts').css('height', contacts_height);
38	}
39
40	$('.main_container').css('height', main_container_height);
41
42	$('.service_bar').css('height', main_container_height);
43
44	$('.scrollable').css('height', main_container_height);
45
46	$('.hamburger_menu_body').css('height', main_container_height);
47
48	$('.offering').css('height', offering_height);
49
50	$('.lateral_contents').css('height', main_container_height);	
51
52	$('.row.contacts').css('height', contacts_height);
53	
54	$('.wrapper_bg.row').css('height', inst_contacts_height);
55	
56	console.log('footer_header_height: ' + footer_header_height);
57	var footerBodyHeight = ( isSmallDevice() || $(".content_container").length ) ? 'auto' : getFooterBodyHeight( footer_header_height );
58	$('.footer .footer_body').css('height', footerBodyHeight);
59
60	setHambMenuBodySize();
61}
62
63function getFooterBodyHeight( footer_header_height ){
64	var header_height = $('.navbar_brand').height() + $('.nav_filter.dropdown').height() - 20 ;
65	return $( document ).height() - header_height - footer_header_height;
66}
67
68function setHambMenuBodySize() {
69	var menuID = '.hamburger_menu .hamburger_menu_body';
70	viewportSize = $( document ).width();
71	slidingDimension = '-380px';
72	
73	if ( isSmallDevice() ){
74		slidingDimension = '-' + viewportSize + 'px';
75		$(menuID).css('width', '100%');
76		if( !$('.hamburger_menu_toggle').hasClass('collapsed')){
77			$(menuID).css('left', slidingDimension);
78		}
79	}
80	else 
81		$(menuID).css('width', '390');
82}
83
84function parenthesisFix() {
85	$('.fix_ng_wcm_html').each(function(index,item){
86	  var el = $(item).parent()[0];
87	  if (typeof el.childNodes!="undefined" && el.childNodes.length>1 && el.childNodes[el.childNodes.length-1].nodeValue=="}") {
88	    el.childNodes[el.childNodes.length-1].nodeValue = "";
89	  }
90	});
91}
92
93function pageSetup() {
94	parenthesisFix();
95	//setHeaderVariables();
96	//setContactsVariables();
97	//setFooterVariables();
98	//$(window).trigger('resize');
99}
100
101$( window ).resize( _dimensions );
102$( document ).ready( pageSetup );
103FooterConfig = {
104	/*FIXME[Rep-Remove] Generate in HTL via componenti
105	SocialIcons: {
106		facebook: { link: "#", visibleDesktop: "false", visibleMobile: "false" },
107		twitter: { link: "#", visibleDesktop: "false", visibleMobile: "false" },
108		youtube: { link: "#", visibleDesktop: "false", visibleMobile: "false"},
109		linkedin: { link: "#" , visibleDesktop: "false", visibleMobile: "false" },
110		socialWall: { link: "#", visibleDesktop: "false", visibleMobile: "false"} 
111	},
112
113	ProductIcons: {
114		helloBank: { link: "#", visibleDesktop: "false", visibleMobile: "false" },
115		lifeBanker: { link: "#", visibleDesktop: "false", visibleMobile: "false" },
116		wealthManagement: { link: "#", visibleDesktop: "false", visibleMobile: "false" },
117		mestiereImpresa: { link:"www.mestiereimpresa.it", visibleDesktop:"false", visibleMobile:"false"}
118	}
119	*/
120}
121
122Contacts = {
123	scriviciLink: "#",
124	fattiRichiamareLink: "#"
125}
126
127function setHeaderVariables(){
128
129	//DROPDOWN LABEL
130	$('.nav_filter .menu_label').text( HeaderConfig.VerticalFilter.dropdownLabel );
131
132	//VERTICAL FILTERS
133	$('.nav_filter .items .item').removeClass('active');
134	$('.nav_filter .items .item>a').removeClass('selected');
135	if( HeaderConfig.VerticalFilter.verticalSelected!="" ){
136		$('#' + HeaderConfig.VerticalFilter.verticalSelected ).addClass('active');
137		$('#' + HeaderConfig.VerticalFilter.verticalSelected +'>a').addClass('selected');
138	}
139
140	if( HeaderConfig.BrandBlock.logoPrivate == 'true' ){
141		$('.navbar_brand').addClass('bg_private');
142	}
143	if( HeaderConfig.BrandBlock.payoff == 'false' ){
144		$('.navbar_brand .brand_logo .payoff').addClass('d-none');
145	}
146
147	//MAIN MENU
148	if( HeaderConfig.MainMenu.accedi.visible =='false' )
149		$('#accedi').addClass('d-none');
150	if( HeaderConfig.MainMenu.doveSiamo.visible =='false' )
151		$('#dove-siamo').addClass('d-none');
152	if( HeaderConfig.MainMenu.contatti.visible =='false' )
153		$('#contatti').addClass('d-none');
154	if( HeaderConfig.MainMenu.diventaCliente.visible =='false' )
155		$('#diventa-cliente').addClass('d-none');
156
157	$('#overlay-dovesiamo iframe').attr('src', HeaderConfig.MainMenu.doveSiamo.link );
158	$('#overlay-prendiappuntamento iframe').attr('src', HeaderConfig.MainMenu.prendiAppuntamento.link );
159}
160
161function setFooterVariables(){
162
163	//PRODUCT ICONS SETTINGS
164
165	if( FooterConfig.ProductIcons.helloBank.visibleDesktop == 'false' )
166		$('.left_icons_desktop').find(".icon-hello-bank").closest("a").addClass('d-none');
167	if( FooterConfig.ProductIcons.helloBank.visibleMobile == 'false' )
168		$('.left_icons_mobile').find(".icon-hello-bank").closest("a").addClass('d-none');
169
170	if( FooterConfig.ProductIcons.lifeBanker.visibleDesktop == 'false' )
171		$('.left_icons_desktop').find(".icon-life-banker").closest("a").addClass('d-none');
172	if( FooterConfig.ProductIcons.lifeBanker.visibleMobile == 'false' )
173		$('.left_icons_mobile').find(".icon-life-banker").closest("a").addClass('d-none');
174
175	if( FooterConfig.ProductIcons.wealthManagement.visibleDesktop == 'false' )
176		$('.left_icons_desktop').find(".icon-wealth-managment").closest("a").addClass('d-none');
177	if( FooterConfig.ProductIcons.wealthManagement.visibleMobile == 'false' )
178		$('.left_icons_mobile').find(".icon-wealth-managment").closest("a").addClass('d-none');
179
180	if( FooterConfig.ProductIcons.mestiereImpresa.visibleDesktop == 'false' )
181		$('.left_icons_desktop').find(".icon-mestiereimpresa").closest("a").addClass('d-none');
182	if( FooterConfig.ProductIcons.mestiereImpresa.visibleMobile == 'false' )
183		$('.left_icons_mobile').find(".icon-mestiereimpresa").closest("a").addClass('d-none');
184
185	//SOCIAL ICONS SETTINGS
186
187	if( FooterConfig.SocialIcons.facebook.visibleDesktop == 'false' )
188		$('.right_icons_desktop').find(".icon-facebook").closest("a").addClass('d-none');
189	if( FooterConfig.SocialIcons.facebook.visibleMobile == 'false' )
190		$('.right_icons_mobile').find(".icon-facebook").closest("a").addClass('d-none');
191
192	if( FooterConfig.SocialIcons.twitter.visibleDesktop == 'false' )
193		$('.right_icons_desktop').find(".icon-twitter").closest("a").addClass('d-none');
194	if( FooterConfig.SocialIcons.twitter.visibleMobile == 'false' )
195		$('.right_icons_mobile').find(".icon-twitter").closest("a").addClass('d-none');
196
197	if( FooterConfig.SocialIcons.youtube.visibleDesktop == 'false' )
198		$('.right_icons_desktop').find(".icon-youtube").closest("a").addClass('d-none');
199	if( FooterConfig.SocialIcons.youtube.visibleMobile == 'false' )
200		$('.right_icons_mobile').find(".icon-youtube").closest("a").addClass('d-none');
201
202	if( FooterConfig.SocialIcons.socialWall.visibleDesktop == 'false' )
203		$('.right_icons_desktop').find(".icon-social-wall").closest("a").addClass('d-none');
204	if( FooterConfig.SocialIcons.socialWall.visibleMobile == 'false' )
205		$('.right_icons_mobile').find(".icon-social-wall").closest("a").addClass('d-none');
206
207	if( FooterConfig.SocialIcons.linkedin.visibleDesktop == 'false' )
208		$('.right_icons_desktop').find(".icon-linkedin").closest("a").addClass('d-none');
209	if( FooterConfig.SocialIcons.linkedin.visibleMobile == 'false' )
210		$('.right_icons_mobile').find(".icon-linkedin").closest("a").addClass('d-none');
211}
212
213function setContactsVariables(){
214
215	if( window.location.href.match(/fatti-richiamare/gi) != null ){
216		$('#my-iframe-scrivici').attr('src', Contacts.fattiRichiamareLink );
217	}else if( window.location.href.match(/scrivici/gi) != null ){
218		$('#my-iframe-scrivici').attr('src', Contacts.scriviciLink );		
219	}
220
221}
222
223function goTo( event, link ){
224	event.preventDefault();
225	window.open(link);
226}
227
228function goTo( event, link, target ){
229	event.preventDefault();
230	window.open(link, target);
231}
232
233function goTo( link, target ){
234	window.open(link,target);
235}
236
237$( document ).ready( function(){
238	//setHeaderVariables(); FIXME Andrea: commentato setHeaderVariables() perchè nasconde le icone dei link rapidi, rimpiazzato con parsys.
239	setContactsVariables();
240	//setFooterVariables(); FIXME FEDERICO: commentato setFooterVariables() perchè nasconde le icone del footer, rimpiazzato con parsys.
241
242	$(window).trigger('resize');
243});
244if( window.location.href.match(/corporate/gi) != null ){
245	//CONTACTS SETTINGS
246	Contacts.scriviciLink= "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&Segmento=corporate&ACTION_TO_CALL=/ToCCOnlineAction.do";
247	Contacts.fattiRichiamareLink= "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&Segmento=corporate&ACTION_TO_CALL=/ToCCOnlineAction.do";
248
249}
250
251
252if( window.location.href.match(/individui.*famiglie/gi) != null ){
253	
254	//CONTACTS SETTINGS
255	Contacts.scriviciLink= "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&Segmento=individuiefamiglie&ACTION_TO_CALL=/ToCCOnlineAction.do";
256	Contacts.fattiRichiamareLink= "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&Segmento=individuiefamiglie&ACTION_TO_CALL=/ToCCOnlineAction.do";
257
258}
259if( window.location.href.match(/pubblica.*amministrazione/gi) != null ){
260	
261	//CONTACTS SETTINGS
262	Contacts.scriviciLink= "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&Segmento=paentieistituzioni&ACTION_TO_CALL=/ToCCOnlineAction.do";
263	Contacts.fattiRichiamareLink= "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&Segmento=paentieistituzioni&ACTION_TO_CALL=/ToCCOnlineAction.do";
264	
265}
266
267
268if( window.location.href.match(/Private-Banking/gi) != null ){
269	//CONTACTS SETTINGS
270	Contacts.scriviciLink = "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&ArgInt=Private Banking&Segmento=private&ACTION_TO_CALL=/ToCCOnlineAction.do";
271	Contacts.fattiRichiamareLink = "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&ArgInt=Private Banking&Segmento=private&ACTION_TO_CALL=/ToCCOnlineAction.do";
272
273	//SOCIAL SHARE SETTINGS
274	/* FIXME: Spostate in head.html per la visualizzazione delle icon share per il componente share-block
275	SocialSharingConfig.linkedin = true;
276	*/
277	$('head').append('<link rel="stylesheet" href="/rsc/contrib/graphicaltheme/bnl-public/css/private.css" type="text/css" />');
278}
279if( window.location.href.match(/professionisti.*imprese/gi) != null ){
280	
281	//CONTACTS SETTINGS
282	Contacts.scriviciLink= "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&Segmento=Imprese&AbilitaCF=true&ACTION_TO_CALL=/ToCCOnlineAction.do";
283	Contacts.fattiRichiamareLink= "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&Segmento=Imprese&AbilitaCF=true&ACTION_TO_CALL=/ToCCOnlineAction.do";
284
285}
286
287
288
289
290
291if( window.location.href.match(/scopri-bnl/gi) != null ){
292	/*
293	/* FIXME[Rep-Remove]: Generate in HTL via componenti
294	//VERTICAL FILTER SETTINGS
295	HeaderConfig.VerticalFilter.dropdownLabel = "Scopri BNL";
296	HeaderConfig.VerticalFilter.verticalSelected = "scopri-bnl";
297	
298	//BRAND BLOCK SETTINGS
299	HeaderConfig.BrandBlock.link = "/it/Scopri-Bnl";
300	HeaderConfig.BrandBlock.payoff = "true";
301	
302	//MAIN MENU SETTINGS
303	HeaderConfig.MainMenu.contatti.link="#";
304	HeaderConfig.MainMenu.contatti.visible="false";
305	HeaderConfig.MainMenu.accedi.link="https://banking.bnl.it/it/login/";
306	//HeaderConfig.MainMenu.accedi.link="/it/Login-Offline";
307	
308	HeaderConfig.MainMenu.doveSiamo.link="#";
309	HeaderConfig.MainMenu.doveSiamo.visible="false";
310
311	HeaderConfig.MainMenu.prendiAppuntamento.link = "#";
312
313	HeaderConfig.MainMenu.diventaCliente.visible = "false";
314
315	//SOCIAL ICONS SETTINGS
316	FooterConfig.SocialIcons.facebook.visibleMobile = "false";
317	FooterConfig.SocialIcons.facebook.visibleDesktop = "false";	
318	FooterConfig.SocialIcons.facebook.link = "#";
319
320	FooterConfig.SocialIcons.twitter.visibleMobile = "false";
321	FooterConfig.SocialIcons.twitter.visibleDesktop = "false";
322	FooterConfig.SocialIcons.twitter.link = "#";
323
324	FooterConfig.SocialIcons.youtube.visibleMobile = "false";
325	FooterConfig.SocialIcons.youtube.visibleDesktop = "false";
326	FooterConfig.SocialIcons.youtube.link = "#";
327
328	FooterConfig.SocialIcons.socialWall.visibleMobile = "true";
329	FooterConfig.SocialIcons.socialWall.visibleDesktop = "true";
330	FooterConfig.SocialIcons.socialWall.link = "http://socialwall.bnl.it/";
331
332	FooterConfig.SocialIcons.linkedin.visibleMobile = "true";
333	FooterConfig.SocialIcons.linkedin.visibleDesktop = "true";
334	FooterConfig.SocialIcons.linkedin.link = "https://www.linkedin.com/company/bnl-bnp-paribas";
335
336	//PRODUCTS ICONS SETTINGS
337	FooterConfig.ProductIcons.helloBank.visibleMobile = "false";
338	FooterConfig.ProductIcons.helloBank.visibleDesktop = "false";
339	FooterConfig.ProductIcons.helloBank.link = "#";
340
341	FooterConfig.ProductIcons.lifeBanker.visibleMobile = "false";
342	FooterConfig.ProductIcons.lifeBanker.visibleDesktop = "false";
343	FooterConfig.ProductIcons.lifeBanker.link = "#";
344
345	FooterConfig.ProductIcons.wealthManagement.visibleMobile = "false";
346	FooterConfig.ProductIcons.wealthManagement.visibleDesktop = "false";
347	FooterConfig.ProductIcons.wealthManagement.link = "#";
348
349	FooterConfig.ProductIcons.mestiereImpresa.visibleMobile = "false";
350	FooterConfig.ProductIcons.mestiereImpresa.visibleDesktop = "false";
351	FooterConfig.ProductIcons.mestiereImpresa.link = "#";
352	*/
353	//CONTACTS SETTINGS
354	Contacts.scriviciLink= "#";
355	Contacts.fattiRichiamareLink= "#";
356
357	//SOCIAL SHARE SETTINGS
358	/* FIXME: Spostate in head.html per la visualizzazione delle icon share per il componente share-block
359	SocialSharingConfig.facebook = true;
360	SocialSharingConfig.twitter = true;
361	SocialSharingConfig.linkedin = false;
362	*/
363}
364
365
366function showModalOriginal(iFrameLink,inNewPageIfMobile,TitleHeader) {
367	if(iFrameLink.includes("youtu.be") || iFrameLink.includes("youtube.com")){
368		if(OptanonActiveGroups && !OptanonActiveGroups.match(/[^,]+/g).includes("ITA04")){
369			//categoria ITA04 non accettata
370			iFrameLink="";
371		}
372	}
373	$("#modal-overlay .modal-title").text("");
374	
375    if (isSmallDevice() && inNewPageIfMobile) {
376		window.open(iFrameLink);
377	}else{
378		$("#modal-overlay iframe").attr('src',iFrameLink);
379		$("#modal-overlay .modal-title").text(TitleHeader);
380		$('#modal-overlay').modal();
381		let modalBackdrop = document.querySelector(".modal-backdrop");
382		/*if(modalBackdrop){
383			modalBackdrop.classList.add("contatti-backdrop");
384		}*/
385		$('#modal-contatti-overlay').css('overflowY', 'scroll');
386	}
387}
388
389function showModal(iFrameLink,inNewPageIfMobile,TitleHeader){
390	console.log("Richiesto form " +iFrameLink );
391	if(admittedFormPages(iFrameLink)){
392		if (iFrameLink.includes(".html")) {
393			newLink = iFrameLink.substring(0, iFrameLink.lastIndexOf("."))
394					+ ".bnlopenformservlet.json";
395		} else {
396			newLink = iFrameLink + ".bnlopenformservlet.json";
397		}
398		$.ajax(newLink,
399			    {
400			        success: function (data, status, xhr) {
401			        	document.body.innerHTML+=(data.html);
402			        	//Aggiungo CSS
403			        	addCssOpenCta(data.cssPath);
404			        	addScriptOpenCta(data.jsPath, data.event);			        	
405			    }
406			});
407	}else {
408		showModalOriginal(iFrameLink,inNewPageIfMobile,TitleHeader);
409	}
410}
411
412function addCssOpenCta(cssPath){
413	
414	var findCss = $("link[href='"+ cssPath +"']");
415	if(!findCss || findCss.length === 0){
416		var selfAppointmentCSS = document.createElement( 'link' );
417		selfAppointmentCSS.type = 'text/css';
418		selfAppointmentCSS.setAttribute('rel','stylesheet');
419		var cssPathSanitized = sanitizeValue(cssPath);
420		selfAppointmentCSS.setAttribute('href', cssPathSanitized);
421		document.head.appendChild(selfAppointmentCSS);
422	}
423}
424
425function sanitizeValue(value) {
426	if (value) {
427		var sanitizedValue = value.replace(/[<>!\n\r\\]/g, "");
428		return sanitizedValue;
429	}
430}
431
432function addScriptOpenCta(jsPath, event){
433	var findJs = $("script[src='"+ jsPath +"']");
434	if(!findJs || findJs.length === 0){
435		var selfAppointmentScript = document.createElement( 'script' );
436		selfAppointmentScript.type = 'text/javascript';
437		var jsPathSanitized = sanitizeValue(jsPath);
438		selfAppointmentScript.src = jsPathSanitized;
439		if(selfAppointmentScript.readyState) {  // only required for IE <9
440			selfAppointmentScript.onreadystatechange = function() {
441	  		if ( selfAppointmentScript.readyState === "loaded" || selfAppointmentScript.readyState === "complete" ) {
442				selfAppointmentScript.onreadystatechange = null;
443				launchEventOpenCta(event);
444	  		}
445		};
446		} else {  //Others
447			selfAppointmentScript.onload = function() {
448				launchEventOpenCta(event);
449			};
450		}
451		document.head.appendChild(selfAppointmentScript);
452	}else{
453		//Se già presente lancio direttamente l'evento
454		launchEventOpenCta(event);
455	}
456}
457
458function launchEventOpenCta(eventId){
459	(function () {
460        if ( typeof window.CustomEvent === "function" ) return false; //If not IE
461        function CustomEvent ( event, params ) {
462            params = params || { bubbles: false, cancelable: false, detail: undefined };
463            var evt = document.createEvent( 'CustomEvent' );
464            evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
465            return evt;
466        }
467        CustomEvent.prototype = window.Event.prototype;
468        window.CustomEvent = CustomEvent;
469    })()
470	var appInitEvent = new CustomEvent(eventId);
471    document.dispatchEvent(appInitEvent);
472}
473
474function admittedFormPages(iFrameLink) {
475	var configPageAdmitted = siteSettings.admittedFormPages;
476	if(configPageAdmitted != null){	
477		var splittedAddress = configPageAdmitted.split(",");
478		for(var i = 0; i<splittedAddress.length;i++){
479			if(iFrameLink.includes(splittedAddress[i])){
480				return true;
481			}
482		}
483	}
484	return false;
485}
486
487function showContattiModal(iFrameLink,inNewPageIfMobile) {
488    if (isSmallDevice() && inNewPageIfMobile) {
489		return window.open(iFrameLink);
490	}else{
491		$("#modal-contatti-overlay iframe").attr('src',iFrameLink);
492		$('#modal-contatti-overlay').modal();
493
494		let modalBackdrop = document.querySelector(".modal-backdrop");
495		if(modalBackdrop){
496			modalBackdrop.classList.add("contatti-backdrop");
497		}
498		
499		var ifr = $("#modal-contatti-overlay iframe").get(0);
500		return (ifr.contentWindow || ifr.contentDocument);
501	}
502}
503
504$(document).ready(function() {
505	$('#modal-overlay').on('hidden.bs.modal', function (e) {
506		$("#modal-overlay iframe").attr('src',"");
507	});
508});
509/* FIXME: spostato in head.html in main template
510BNLPublicConfig = {
511 SocialSharingConfig : {
512  facebook: true,     // Turns on Facebook sharing
513  twitter: true,      // Turns on Twitter sharing
514  pinterest: false,    // Turns on Pinterest sharing
515  googleplus: false,   // Turns on Google Plus sharing
516  linkedin: true   // Turns on LinkedIn sharing
517 }
518};
519
520*/
521
522
523(function(window, $) {
524
525  "use strict";
526
527  // HIDESHARE PUBLIC CLASS DEFINITION
528  // =================================
529
530  var Hideshare = function (elem, options) {
531    this.elem = elem;
532    this.$elem = $(elem);
533    this.options = options;
534  };
535
536  Hideshare.prototype = {
537    defaults: {
538      link: document.URL,
539      title: document.title,
540      description: '',
541      media: null,
542      facebook: true,
543      twitter: true,
544      pinterest: true,
545      googleplus: true,
546      linkedin: true
547    },
548
549    init: function() {
550      this.config = $.extend({}, this.defaults, this.options);
551      this.wrapHideshare();
552      return this;
553    },
554
555    wrapHideshare: function() {
556      var output = output,
557          width = this.$elem.outerWidth(),
558          height = this.$elem.outerHeight(),
559          placement = this.config.position,
560          transition = this.config.speed,
561          shareTitle = this.config.title,
562          shareLink = this.config.link,
563          shareMedia = this.config.media,
564          shareDescription = this.config.description,
565          facebookTemplate = '<div><a class="hideshare-facebook" href="#"><i class="fa fa-facebook-square fa-2x"></i><div class="bnl-icon-facebook"></div></a></div>',
566          twitterTemplate = '<div><a class="hideshare-twitter" href="#"><i class="fa fa-twitter-square fa-2x"></i><div class="bnl-icon-twitter"></div></a></div>',
567          pinterestTemplate = '<div><a class="hideshare-pinterest" href="#" data-pin-do="buttonPin" data-pin-config="above"><i class="fa fa-pinterest-square fa-2x"></i><div class="bnl-icon-pinterest"></div></a></div>',
568          googleplusTemplate = '<div><a class="hideshare-google-plus" href="#"><i class="fa fa-google-plus-square fa-2x"></i><div class="bnl-icon-google"></div></a></div>',
569          linkedinTemplate = '<div><a class="hideshare-linkedin" href="#"><i class="fa fa-linkedin-square fa-2x"></i><div class="bnl-icon-linkedin"></div></a></div>';
570
571      if (this.config.facebook) {
572        output = facebookTemplate;
573      } else {
574        output = "";
575      }
576      if (this.config.twitter) {
577        output += twitterTemplate;
578      } else {
579        output = output;
580      }
581      if (this.config.pinterest) {
582        output += pinterestTemplate;
583      } else {
584        output = output;
585       }
586      if (this.config.googleplus) {
587        output += googleplusTemplate;
588      } else {
589        output = output;
590    }
591      if (this.config.linkedin) {
592        output += linkedinTemplate;
593      } else {
594        output = output;
595      }
596
597      // Construct sharing list
598      var hideshareList = '<div class="hideshare-list" style="display:none;">' + output + '</div>';
599
600      // Wrap button
601      this.$elem.addClass("hideshare-btn").wrap("<div class='hideshare-wrap'/>");
602
603      // Insert sharing button list
604      $(hideshareList).insertAfter(this.$elem);
605
606
607      // Toggle sharing on button click
608      this.$elem.click(function(event) {
609      event.preventDefault();
610
611      var list = $(this).parents(".hideshare-wrap").children(".hideshare-list");
612      if (list.hasClass("shown")){
613          $(list).hide().removeClass("shown");
614          $(this).removeClass("active");
615        } else {
616          $(list).show().addClass("shown");
617          $(this).addClass("active");
618        }
619        return false;
620      });
621
622      // SHARING FUNCTIONS
623      var shareFacebook = function() {
624        window.open('//www.facebook.com/share.php?m2w&s=100&p[url]=' + encodeURIComponent(shareLink) + '&p[images][0]=' + encodeURIComponent(shareMedia) + '&p[title]=' + encodeURIComponent(shareTitle) + '&p[summary]=' + encodeURIComponent(shareDescription),'Facebook','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
625      };
626      var shareTwitter = function() {
627        window.open('https://twitter.com/intent/tweet?original_referer=' + encodeURIComponent(shareLink) + '&text=' + encodeURIComponent(shareTitle) + '%20' + encodeURIComponent(shareLink),'Twitter','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
628      };
629      var sharePinterest = function() {
630        window.open('//pinterest.com/pin/create/button/?url=' + encodeURIComponent(shareLink) + '&media=' + encodeURIComponent(shareMedia) + '&description=' + encodeURIComponent(shareTitle),'Pinterest','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
631      };
632      var shareGooglePlus = function() {
633        window.open('//plus.google.com/share?url=' + encodeURIComponent(shareLink),'GooglePlus','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
634      };
635      var shareLinkedIn = function() {
636        window.open('//www.linkedin.com/shareArticle?mini=true&url=' + encodeURIComponent(shareLink) + '&title=' + encodeURIComponent(shareTitle) + '&source=' + encodeURIComponent(shareLink),'LinkedIn','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');
637      };
638
639		this.$elem.parent(".hideshare-wrap").contents(".hideshare-list").find(".hideshare-facebook").click(function(event) {
640        event.preventDefault();
641    shareFacebook();
642        return false;
643      });
644
645		this.$elem.parent(".hideshare-wrap").contents(".hideshare-list").find(".hideshare-twitter").click(function(event) {
646        event.preventDefault();
647    shareTwitter();
648        return false;
649      });
650
651		this.$elem.parent(".hideshare-wrap").contents(".hideshare-list").find(".hideshare-pinterest").click(function(event) {
652        event.preventDefault();
653    sharePinterest();
654        return false;
655      });
656
657		this.$elem.parent(".hideshare-wrap").contents(".hideshare-list").find(".hideshare-google-plus").click(function(event) {
658        event.preventDefault();
659    shareGooglePlus();
660        return false;
661      });
662
663		this.$elem.parent(".hideshare-wrap").contents(".hideshare-list").find(".hideshare-linkedin").click(function(event) {
664        event.preventDefault();
665    shareLinkedIn();
666        return false;
667      });
668    }
669  };
670
671  Hideshare.defaults = Hideshare.prototype.defaults;
672
673  $.fn.hideshare = function(options) {
674    return this.each(function() {
675      new Hideshare(this, options).init();
676    });
677  };
678
679  window.Hideshare = Hideshare;
680
681})(window, jQuery);
682
683
684/*At the moment this breakpoint euivalent to the bootstrap md-device breakpoint*/
685function isSmallDevice(){
686	return $(window).width() < 992;
687}
688function openCurrentBranch() {
689	$('.dropdown-toggle.animate.selected').addClass('show');
690}
691
692function animateHamburgerMenu() {
693	var menuID = '.hamburger_menu .hamburger_menu_body';
694	
695	$('.hamburger_menu .hamburger_menu_toggle').toggleClass('collapsed');
696	$('.hamburger_menu .hamburger_menu_body').toggleClass('collapsed');
697
698	if($('.hamburger_menu .hamburger_menu_body').hasClass('collapsed')) {
699		//resetSitemap(); FIXME ANDREA: Commentato perchè distrugge l'hamburger menu calcolato lato server
700
701		hamburgerMenuIn(menuID);
702		openCurrentBranch();
703	}
704
705	else
706		hamburgerMenuOut(menuID);
707}
708
709function hamburgerMenuIn(menuID) {
710	if ( isSmallDevice() )
711		$(menuID).css('width', '100%');
712
713	$(menuID).animate({left: '0px'}, 500);
714}
715
716function hamburgerMenuOut(menuID) {
717	viewportSize = $( document ).width();
718	slidingDimension = '-400px';
719
720	if ( isSmallDevice() )
721		slidingDimension = '-' + viewportSize + 'px';
722	else
723		$(menuID).css('width', '390px');
724
725	$(menuID).animate({left: slidingDimension}, 500);
726}
727
728function loadHamburgerMenuAdditionalItems() {
729	if($(".d-none .additional_items").length > 0)
730		$(".d-none .additional_items").appendTo(".hamburger_menu_body");
731}
732
733$( document ).ready(loadHamburgerMenuAdditionalItems);
734
735/* Close the menu on click out */
736$(document).ready(function() {
737    $(document).mouseup(function(e) {
738        var subject = $('.hamburger_menu_body');
739        var isMenuOpen = $('.hamburger_menu .hamburger_menu_body.collapsed').length > 0;
740        var isMenuButtonClicked = $(e.target).hasClass('hamburger_menu_toggle');
741        var isSubject = $(e.target).hasClass('hamburger_menu_body');
742        var isChildOfSubject = subject.has(e.target).length > 0;
743              
744        if(isMenuOpen && !isSubject && !isChildOfSubject && !isMenuButtonClicked) {
745           animateHamburgerMenu();
746        }
747     });
748
749    $('body').bind( "touchend", function(e){
750        var subject = $('.hamburger_menu_body');
751        var isMenuOpen = $('.hamburger_menu .hamburger_menu_body.collapsed').length > 0;
752        var isMenuButtonClicked = $(e.target).hasClass('hamburger_menu_toggle');
753        var isSubject = $(e.target).hasClass('hamburger_menu_body');
754        var isChildOfSubject = subject.has(e.target).length > 0;
755              
756        if(isMenuOpen && !isSubject && !isChildOfSubject && !isMenuButtonClicked) {
757           animateHamburgerMenu();
758        }
759	});
760/*START Load the Breadcrumbs script
761	$.getScript("/rsc/contrib/graphicaltheme/bnl-public/js/breadcrumbs.js");
762END Load the Breadcrumbs script*/
763});
764/**
765 * Determine the mobile operating system.
766 * This function either returns 'iOS', 'Android' or 'unknown'
767 *
768 * @returns {String}
769 */
770
771function getMobileOperatingSystem() {
772  var userAgent = navigator.userAgent || navigator.vendor || window.opera;
773
774  if( userAgent.match( /iPad/i ) || userAgent.match( /iPhone/i ) || userAgent.match( /iPod/i ) ) {
775    return 'iOS';
776  }
777
778  else if( userAgent.match( /Android/i ) ) {
779    return 'Android';
780  }
781
782  else {
783    return 'unknown';
784  }
785}
786
787function isiOS() {
788  return getMobileOperatingSystem() == 'iOS';
789}
790
791function isAndroid() {
792  return getMobileOperatingSystem() == 'Android';
793}
794function animateMore(moredata) {
795	$(".footer .footer_more " + moredata.data.moreclass).toggleClass("collapsed");
796}
797
798
799function verticalTap(verticalElementID){
800
801	var vert_elem_parent = $(verticalElementID).parent();
802	var children_not_collaps = $('.footer .footer_body > div > div:not(.collapsed)');
803
804    if( vert_elem_parent.hasClass("collapsed") ){
805      children_not_collaps.addClass('collapsed');
806      vert_elem_parent.toggleClass("collapsed");
807    }else{
808      vert_elem_parent.addClass('collapsed');
809    }
810}
811
812
813
814/* Functions to be executed on page load */
815$( function(){
816	$(".footer .footer_header .footer_toggle a").click(function(event) {	
817		event.preventDefault();
818		console.log("entro");
819		_dimensions(); //FIXME [BNL] To setting height 
820		if (isSmallDevice() || ($('.service_bar').length==0 && $('.contacts_container').length==0 && $('.inst_contacts_container').length==0 )){
821				if($(".footer .footer_header .footer_toggle").hasClass("collapsed")){
822					$('.footer .footer_body').slideToggle(0);
823					$(".footer .footer_header .footer_toggle").toggleClass("collapsed");
824					$("html, body").animate({ scrollTop: $(document).height()-$(window).height() },500);
825				}else{
826					$('.footer .footer_body').slideToggle(500);
827					$(".footer .footer_header .footer_toggle").toggleClass("collapsed");
828				}
829		}else{
830			$('.footer .footer_body').slideToggle(500);
831			$(".footer .footer_header .footer_toggle").toggleClass("collapsed");
832		}
833
834	});
835
836	if($(".footer .footer_header .right_icons_mobile .icon-more").length)
837		$(".footer .footer_header .icon-more").click({moreclass: ".more-social"}, animateMore);
838});
839$(document).ready(function() {
840	$("#dove-siamo-btn").click(function(event){
841		event.preventDefault();
842		if (isSmallDevice()) {
843			if( getMobileOperatingSystem()=='unknown' ){
844				showModal(HeaderConfig.MainMenu.doveSiamo.link,true);
845			}else{
846				$('#choise-app').toggleClass('display-none');
847				$('.contacts_container').toggleClass('d-none');				
848			}
849		} else {
850			showModal(HeaderConfig.MainMenu.doveSiamo.link);
851		}
852	});
853	$("#choise-app-no").click(function(event) {
854		event.preventDefault();
855		$('#choise-app').addClass('display-none');
856		showModal(HeaderConfig.MainMenu.doveSiamo.link,true);
857		$('.contacts_container').removeClass('d-none');
858	});
859	$("#choise-app-close").click(function(event) {
860		event.preventDefault();
861		$('#choise-app').addClass('display-none');
862		$('.contacts_container').removeClass('d-none');
863	});
864	$('.modal-header button').on('click', function(event){
865		event.preventDefault();
866		$('#choise-app').addClass('display-none');
867		$('.contacts_container').removeClass('d-none');
868	});
869});
870var currentNode = null;
871var currentBackNode = null;
872var currentVertical = null;
873
874function node(id, level, selected, display, lock, view, link, label_key, label, seo, parent, nodes) {
875    this.id = id;
876    this.level = level;
877    this.selected = selected;
878    this.display = display;
879    this.lock = lock;
880    this.view = view;
881    this.link = link;
882    this.label_key = label_key;
883    this.label = label;
884    this.seo = seo;
885    this.parent = parent;
886    this.nodes = nodes;
887
888    this.isCurrentNode = function() { return this.selected == 1; };
889
890    this.isLeaf = function() {
891        var isLeaf = (this.nodes === undefined) || (this.nodes == null) || (this.nodes.length == 0);
892        var nullNodes = true;
893
894        if(!isLeaf) {
895            var nodes = this.nodes;
896
897            for(var i = 0; (nullNodes && (i < nodes.length)); i++)
898                nullNodes = nullNodes && ((nodes[i] === undefined) || (nodes[i] == null));
899        }
900
901        isLeaf = isLeaf || nullNodes;
902
903        return isLeaf;
904    };
905
906    this.getId = function() { return this.id; };
907
908    this.getLabelKey = function() { return this.label_key; };
909
910    this.getLabel = function() { return this.label; };
911
912    this.getLevel = function() { return this.level; };
913
914    this.getLink = function() { return this.link; };
915
916    this.getParent = function() { return this.parent; };
917
918    this.setParent = function(parent) { this.parent = parent; };
919
920    this.getNodes = function() { return this.nodes; }
921
922    this.getLink = function() { return this.link; };
923
924    this.isAncestor = function(node) {
925        var nodeId = node.getId();
926        var ancestor = false;
927
928        for(var i = 0; (!ancestor && i < this.nodes.length && !(this.nodes[i] === undefined) && (this.nodes[i] != null)); i++) {
929            ancestor = this.nodes[i].getId() == nodeId || this.nodes[i].isAncestor(node);
930        }
931
932        return ancestor;
933    };
934
935    this.toString = function() {
936        var stringRapresentation = this.label + " [";
937
938        if(!this.isLeaf())
939            for(var i = 0; i < this.nodes.length; i++)
940                stringRapresentation += this.nodes[i];
941
942        stringRapresentation += "] ";
943
944
945        return stringRapresentation;
946    };
947}
948
949//Initialize the sitemap setting the parent for every node
950function initSitemap(node, parent) {
951    if(!(node === undefined) && (node != null)) {
952        node.setParent(parent);
953    
954        if(!node.isLeaf()) {
955            var nodes = node.getNodes();
956    
957            for(var i = 0; i < nodes.length; i++)
958                initSitemap(nodes[i], node);
959        }
960    }
961}
962
963//Return the current node
964function getCurrentNode(node) {
965    if(!(node === undefined) && (node != null)) {
966        if(node.isCurrentNode()) {
967            currentNode = node;
968        }
969    
970        else {
971            if(!node.isLeaf()) {
972                var nodes = node.getNodes();
973    
974                for(var i = 0; ((currentNode == null) && (i < nodes.length)); i++) {
975                    getCurrentNode(nodes[i]);
976                }
977            }
978        }
979    }
980
981    return currentNode;
982}
983
984//Return the current Vertical for a given node
985function getCurrentVertical(node) {
986    var current = null;
987
988    if(node != null) {
989        if(node.getLevel() == 0)
990            current = node;
991
992        else
993            current = getCurrentVertical(node.getParent());
994    }
995
996    return current;
997}
998
999//Return the hamburger menu sitemap for the given node
1000function getHamburgerMenuSitemap() {
1001    var hamburgerMenu = "";
1002    var hamburgerMenuBack = "";
1003    var hamburgerMenuBody = "";
1004    var hamburgerMenuHeaderTemplate = "<div class=\"menu_title\">{{current-vertical}}</div>";
1005
1006    if(currentNode == null) {
1007        $(".hamburger_menu").empty();
1008        
1009        return "";
1010    }
1011
1012    if(currentBackNode == null) {
1013        if(currentNode.getLevel() == 0)
1014            currentBackNode = currentNode;
1015            
1016        else if(isEven(currentNode.getLevel())) {
1017            if(currentNode.isLeaf()){
1018                currentBackNode = currentNode.getParent().getParent();
1019            }else{
1020                currentBackNode = currentNode;
1021            }
1022        }
1023        
1024        else {
1025            currentBackNode = currentNode.getParent();
1026        }
1027    }
1028
1029    hamburgerMenuBack = getHamburgerMenuBack(currentBackNode);
1030    hamburgerMenuBody = getHamburgerMenuBody(currentBackNode);
1031
1032    hamburgerMenu = hamburgerMenuHeaderTemplate.replace(new RegExp('{{current-vertical}}', 'g'), currentVertical.getLabel());
1033    hamburgerMenu += hamburgerMenuBack;
1034    hamburgerMenu += hamburgerMenuBody;
1035
1036    return hamburgerMenu;
1037}
1038
1039function updateSitemap() {
1040    $(".hamburger_menu_body .sitemap").empty().append(getHamburgerMenuSitemap());
1041}
1042
1043function getNodeById (startNode, nodeId) {
1044    var node = null;
1045
1046    if(!(startNode === undefined) && startNode != null) {
1047        if(startNode.getId() == nodeId)
1048            node = startNode;
1049    
1050        else {
1051            var nodes = startNode.getNodes();
1052    
1053            for(var i = 0; ((node == null) && (i < nodes.length)); i++)
1054                node = getNodeById(nodes[i], nodeId);
1055        }
1056    }
1057
1058    return node;
1059}
1060
1061function forward(nodeId) {
1062    currentBackNode = getNodeById(sitemap, nodeId);
1063
1064    updateSitemap();
1065}
1066
1067function back() {
1068    currentBackNode = currentBackNode.getParent().getParent();
1069
1070    updateSitemap();
1071}
1072
1073//Return the back menu for the given node
1074function getHamburgerMenuBack(node) {
1075    var back = "";
1076    var backLabel = currentBackNode.getLabel();
1077
1078    if(!(node === undefined) && node != null) {
1079
1080        if(node.getLevel() > 1) {
1081            var backTemplate = "<div class=\"back\"><div class=\"back-arrow\"><a class=\"bnl-icon-back\" href=\"javascript:back()\" title=\"Back\"></a></div><div class=\"back-label\">{{back-label}}</div></div>";
1082
1083            back = (backTemplate).replace(new RegExp('{{back-label}}', 'g'), backLabel);
1084        }
1085    }
1086
1087    return back;
1088}
1089
1090//Return the HTML for a node in the hamburger menu sitemap
1091function printNode(node, level) {
1092    var nodeString = "";
1093    
1094    if(!(node === undefined) && (node != null)) {
1095
1096    var selected="";
1097
1098    if(currentNode.getId() == node.getId() || node.isAncestor(currentNode)){
1099        selected = "selected";
1100    }
1101    
1102        //It's possible to have expandable sub-menus
1103        if(level == 0) {
1104            var nodeURL = node.getLink();
1105            var nodeLabel = node.getLabel();
1106
1107            //If the node has a URL, then there is a link to the page
1108            if((nodeURL != "" || node.isLeaf()) && selected != "selected" && (currentNode.getParent()!=node || (currentNode.getParent()==node && !currentNode.isLeaf())) ) {
1109                var nodePattern = "<li class=\"item\"><a href=\"{{node-url}}\" class=\"animate "+selected+"\" target=\"{{node-target}}\" title=\"{{node-label}}\">{{node-label}}</a></li>";
1110                var target = ((nodeURL.indexOf("http://") > -1) || (nodeURL.indexOf("https://") > -1)) ? "_blank" : "_self";
1111
1112                nodeString = ((nodePattern.replace(new RegExp('{{node-url}}', 'g'), nodeURL)).replace(new RegExp('{{node-label}}', 'g'), nodeLabel)).replace('{{node-target}}', target);
1113            }
1114
1115            //The node has an expandable sub-menu
1116            else {
1117                //var openMenu = currentNode.getId() == node.getId() || currentNode.getParent() == node;
1118                var openMenu = (selected != "") || currentNode.getParent() == node;
1119                var classString = "item dropdown";
1120                var areaExpandable = "false";
1121
1122                if(openMenu){
1123                    classString+=" current";
1124                    areaExpandable = "true";
1125                }
1126                
1127                var submenuPattern = "<li class=\"" + classString + "\">\n<a class=\"dropdown-toggle animate "+selected+"\" data-bs-toggle=\"dropdown\" role=\"button\" aria-expanded=\""+areaExpandable+"\"><span class=\"dropdown-icon dropdown-icon-less bnl-icon-less\"></span><span class=\"dropdown-icon dropdown-icon-more bnl-icon-more\"></span>{{node-label}}</a>\n<ul class=\"sub_items dropdown-menu\" role=\"menu\">\n{{sub-nodes}}\n</ul></li>";
1128                var nodeChildren = node.getNodes();
1129                var currentLevel = level + 1;
1130                var submenuBody = "";
1131
1132                if(openMenu && nodeURL != "" && (selected != "selected" || node.isAncestor(currentNode))) {
1133                    //elimina il bottone
1134                    //metti il lik ak nodo
1135                    submenuPattern = submenuPattern.replace('<a class=\"dropdown-toggle', '<a href="' + nodeURL + '" class=\"');
1136                    submenuPattern = submenuPattern.replace('data-bs-toggle=\"dropdown\"', '');
1137
1138                }
1139
1140                for(var i=0; i< nodeChildren.length; i++) {
1141                    submenuBody += printNode(nodeChildren[i], currentLevel);
1142                }
1143
1144                if(node.isLeaf())
1145                    submenuPattern = "<li class=\"item\"><a href=\"\" class=\"animate "+selected+"\" title=\"{{node-label}}\">{{node-label}}</a></li>";
1146
1147                nodeString = (submenuPattern.replace(new RegExp('{{node-label}}', 'g'), nodeLabel)).replace("{{sub-nodes}}", submenuBody);
1148            }
1149        }
1150
1151        //No submenus are allowed
1152        else {
1153            var nodePattern = "";
1154            var nodeURL = node.getLink();
1155            var nodeLabel = node.getLabel();
1156
1157            if(nodeURL != "") {
1158                var target = ((nodeURL.indexOf("http://") > -1) || (nodeURL.indexOf("https://") > -1)) ? "_blank" : "_self";
1159
1160                nodePattern = "<li class=\"sub_item\"><a href=\"{{node-url}}\" class=\"animate "+selected+"\" target=\"{{node-target}}\" title=\"{{node-label}}\">{{node-label}}</a></li>".replace("{{node-target}}", target);
1161            }
1162
1163            else {
1164                if(node.isLeaf()) {
1165                    var target = ((nodeURL.indexOf("http://") > -1) || (nodeURL.indexOf("https://") > -1)) ? "_blank" : "_self";
1166
1167                    nodePattern = "<li class=\"sub_item\"><a href=\"{{node-url}}\" class=\"animate "+selected+"\" target=\"{{node-target}}\" title=\"{{node-label}}\">{{node-label}}</a></li>".replace("{{node-target}}", target);
1168                }       
1169                else
1170                    nodePattern = ("<li class=\"sub_item\"><a href=\"javascript:forward('{{node-id}}')\" class=\"animate "+selected+"\" title=\"{{node-label}}\">{{node-label}}</a></li>").replace("{{node-id}}", node.getId());
1171            }
1172
1173            nodeString = nodePattern.replace(new RegExp('{{node-label}}', 'g'), nodeLabel).replace("{{node-url}}", nodeURL);
1174        }
1175    }
1176
1177    return nodeString;
1178}
1179
1180function isEven(number) {
1181    return (number % 2) == 0;
1182}
1183
1184function isOdd(number) {
1185    return !isEven(number);
1186}
1187
1188//Return the hamburger menu body for the given node
1189function getHamburgerMenuBody(node) {
1190    var hamburgerMenuBodyPattern = "<ul class=\"items nav\">{{items}}</ul>";
1191    hamburgerMenuBody = "";
1192    var level = 0;
1193
1194    //The "current node" is an homepage
1195    if(node.getLevel() == 0 || isEven(node.getLevel())) {
1196        var nodeChildren = node.getNodes();
1197
1198        for(var i = 0; i < nodeChildren.length; i++)
1199            hamburgerMenuBody += printNode(nodeChildren[i], 0);
1200    }
1201
1202    //The "current node" is a leaf
1203    else { //if(node.isLeaf() && isEven(node.getLevel())) {
1204        hamburgerMenuBody += printNode(node.getParent(), 0);
1205    }
1206
1207    //The "current node" is a generic one
1208    /*else {
1209        if(isEven(node.getLevel()))
1210            hamburgerMenuBody += printNode(node.getParent(), 0);
1211        else
1212            hamburgerMenuBody += printNode(node, 0);
1213    }*/
1214
1215    return hamburgerMenuBodyPattern.replace("{{items}}", hamburgerMenuBody);
1216}
1217
1218//Return the node with the given label key
1219function findNodeByLabelKey(startNode, labelKey) {
1220    var node = null;
1221
1222    if(startNode != null) {
1223        if(!(startNode.getLabelKey() === undefined) && (startNode.getLabelKey() == labelKey))
1224            node = startNode;
1225    
1226        else {
1227            var nodes = startNode.getNodes();
1228    
1229            for(var i = 0; ((node == null) && (i < nodes.length)); i++)
1230                node = findNodeByLabelKey(nodes[i], labelKey);
1231        }
1232    }
1233
1234    return node;
1235}
1236
1237//Return the node with the vertical label key
1238function getVerticalsNode() {
1239    return sitemap;
1240}
1241
1242//Return an HTML string with the footer sitemap inside
1243function getFooterSitemap() {
1244    var footerSitemap = "";
1245    var verticalNode = getVerticalsNode();
1246    var verticalHtmlTemplate = "<div class=\"collapsed\"><a class=\"vertical_label\" href=\"javascript:verticalTap('#vertical-{{vertical-index}}');\" id=\"vertical-{{vertical-index}}\">{{vertical-label}}</a><div>{{vertical-subnodes}}</div></div>";
1247    var verticalSubNodesHtmlTemplate = "<a title=\"{{subnode-label}}\" href=\"{{subnode-url}}\">{{subnode-label}}</a>";
1248
1249    if(verticalNode != null) {
1250        var verticals = verticalNode.getNodes();
1251
1252        for(var i = 0; i < verticals.length; i++) {
1253            var verticalSubnodesHtml = "";
1254            var verticalLabel = verticals[i].getLabel();
1255            var verticalSubNodes = verticals[i].getNodes();
1256
1257            footerSitemap += (verticalHtmlTemplate.replace(new RegExp('{{vertical-index}}', 'g'), i)).replace(new RegExp('{{vertical-label}}', 'g'), verticalLabel);
1258
1259            for(var k = 0; k < verticalSubNodes.length; k++) {
1260                var currentSubnode = verticalSubNodes[k];
1261
1262                if(!(currentSubnode === undefined) && (currentSubnode != null) && currentSubnode.getLink() != '') {
1263                    verticalSubnodesHtml += (verticalSubNodesHtmlTemplate.replace(new RegExp('{{subnode-label}}', 'g'), currentSubnode.getLabel())).replace(new RegExp('{{subnode-url}}', 'g'), currentSubnode.getLink());
1264                }
1265            }
1266
1267            footerSitemap = footerSitemap.replace(new RegExp('{{vertical-subnodes}}', 'g'), verticalSubnodesHtml);
1268        }
1269    }
1270
1271    return footerSitemap;
1272}
1273
1274function resetSitemap() {
1275    currentBackNode = null;
1276
1277    $('.hamburger_menu_body .sitemap').html(getHamburgerMenuSitemap());
1278}
1279function animateAccordion() {
1280    var accordionButton = $(this);
1281    var accordionContent = accordionButton.parent().parent().parent().find('.accordion-content');
1282
1283    accordionContent.toggleClass('collapsed');
1284
1285    if(accordionButton.hasClass('bnl-icon-less'))
1286    	accordionButton.removeClass('bnl-icon-less').addClass('bnl-icon-more');
1287    
1288    else
1289    	accordionButton.removeClass('bnl-icon-more').addClass('bnl-icon-less');
1290}
1291
1292function initLegalModule() {
1293	$('.legal-module .legal-header a').click(animateAccordion);
1294}
1295
1296$( document ).ready(initLegalModule);
1297function OptanonWrapper() {
1298	var bannerAcceptBtnITA04 = document.getElementById("ot-group-id-ITA04");
1299	if (bannerAcceptBtnITA04.checked) {
1300		var message = "OT";
1301		
1302		window.postMessage(message, location.origin);
1303		
1304		var frames = document.getElementsByTagName("iframe");
1305		for (var i = 0; i < frames.length; i++) {
1306			frames[i].contentWindow.postMessage(message, location.origin);
1307		}
1308	} else {
1309		if (typeof(BNLCSAoptOut) === "function") {
1310			BNLCSAoptOut();
1311		}
1312	}
1313	
1314	if(typeof processConsents == "function") {
1315		processConsents();
1316	}
1317
1318}
1319
1320
1321
1322function getOTCookie() {
1323    var ca = document.cookie.split(';');
1324    var cookieName = "OptanonConsent=";
1325    for(var i=0;i < ca.length;i++) {
1326        var c = ca[i].trim();
1327        if (c.indexOf(cookieName) == 0){
1328            c=c.replace(cookieName, "");
1329            var v = c.split("&");
1330            var value = {};
1331            for (var ii=0;ii<v.length;ii++)
1332            {
1333                var cp = v[ii].split("=");
1334                value[cp[0]] = decodeURIComponent(cp[1]);
1335            }
1336            return value;
1337        }
1338    }
1339    return null;
1340}
1341
1342//da aggiungere a optanon wrapper
1343function processConsents(){
1344	if($(".ot-footer-consents").length > 0){
1345		var cookieOT = getOTCookie();
1346		if (cookieOT && cookieOT.groups) {
1347			var groupArr = cookieOT.groups.split(",");
1348			var groups = {};
1349			for (var i=0;i<groupArr.length;i++)
1350			{
1351				var el = groupArr[i].split(":");
1352				groups[el[0]] = el[1];
1353			}
1354
1355			var cookieNecessari = groups["ITA01"] == "1";
1356			var cookieCommerciali = groups["ITA04"] == "1";
1357			var cookieMedia = groups["ITA05"] == "1";
1358			
1359			$(".ot-footer-consents span").hide();
1360			if(cookieNecessari && !cookieCommerciali && !cookieMedia){
1361				console.log("solo necessari");
1362				$(".ot-footer-consents span.cookieNecessari").show();
1363			} else if (cookieNecessari && cookieCommerciali && cookieMedia){
1364				console.log("tutti attivi");
1365				$(".ot-footer-consents span.tuttiCookie").show();
1366			} else if(cookieNecessari || cookieCommerciali || cookieMedia){
1367				console.log("personalizzati");
1368				$(".ot-footer-consents span.cookiePersonalizzati").show();
1369			}   
1370		}
1371	}
1372}
1373
1374$(document).ready(function(){
1375	processConsents();
1376});
1377/*
1378 *  jQuery OwlCarousel v1.3.3
1379 *
1380 *  Copyright (c) 2013 Bartosz Wojciechowski
1381 *  http://www.owlgraphic.com/owlcarousel/
1382 *
1383 *  Licensed under MIT
1384 *
1385 */
1386
1387/*JS Lint helpers: */
1388/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
1389/*jslint nomen: true, continue:true */
1390
1391if (typeof Object.create !== "function") {
1392    Object.create = function (obj) {
1393        function F() {}
1394        F.prototype = obj;
1395        return new F();
1396    };
1397}
1398(function ($, window, document) {
1399
1400    var Carousel = {
1401        init : function (options, el) {
1402            var base = this;
1403
1404            base.$elem = $(el);
1405            base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
1406
1407            base.userOptions = options;
1408            base.loadContent();
1409        },
1410
1411        loadContent : function () {
1412            var base = this, url;
1413
1414            function getData(data) {
1415                var i, content = "";
1416                if (typeof base.options.jsonSuccess === "function") {
1417                    base.options.jsonSuccess.apply(this, [data]);
1418                } else {
1419                    for (i in data.owl) {
1420                        if (data.owl.hasOwnProperty(i)) {
1421                            content += data.owl[i].item;
1422                        }
1423                    }
1424                    base.$elem.html(content);
1425                }
1426                base.logIn();
1427            }
1428
1429            if (typeof base.options.beforeInit === "function") {
1430                base.options.beforeInit.apply(this, [base.$elem]);
1431            }
1432
1433            if (typeof base.options.jsonPath === "string") {
1434                url = base.options.jsonPath;
1435                $.getJSON(url, getData);
1436            } else {
1437                base.logIn();
1438            }
1439        },
1440
1441        logIn : function () {
1442            var base = this;
1443
1444            base.$elem.data("owl-originalStyles", base.$elem.attr("style"));
1445            base.$elem.data("owl-originalClasses", base.$elem.attr("class"));
1446
1447            base.$elem.css({opacity: 0});
1448            base.orignalItems = base.options.items;
1449            base.checkBrowser();
1450            base.wrapperWidth = 0;
1451            base.checkVisible = null;
1452            base.setVars();
1453        },
1454
1455        setVars : function () {
1456            var base = this;
1457            if (base.$elem.children().length === 0) {return false; }
1458            base.baseClass();
1459            base.eventTypes();
1460            base.$userItems = base.$elem.children();
1461            base.itemsAmount = base.$userItems.length;
1462            base.wrapItems();
1463            base.$owlItems = base.$elem.find(".owl-item");
1464            base.$owlWrapper = base.$elem.find(".owl-wrapper");
1465            base.playDirection = "next";
1466            base.prevItem = 0;
1467            base.prevArr = [0];
1468            base.currentItem = 0;
1469            base.customEvents();
1470            base.onStartup();
1471        },
1472
1473        onStartup : function () {
1474            var base = this;
1475            base.updateItems();
1476            base.calculateAll();
1477            base.buildControls();
1478            base.updateControls();
1479            base.response();
1480            base.moveEvents();
1481            base.stopOnHover();
1482            base.owlStatus();
1483
1484            if (base.options.transitionStyle !== false) {
1485                base.transitionTypes(base.options.transitionStyle);
1486            }
1487            if (base.options.autoPlay === true) {
1488                base.options.autoPlay = 5000;
1489            }
1490            base.play();
1491
1492            base.$elem.find(".owl-wrapper").css("display", "block");
1493
1494            if (!base.$elem.is(":visible")) {
1495                base.watchVisibility();
1496            } else {
1497                base.$elem.css("opacity", 1);
1498            }
1499            base.onstartup = false;
1500            base.eachMoveUpdate();
1501            if (typeof base.options.afterInit === "function") {
1502                base.options.afterInit.apply(this, [base.$elem]);
1503            }
1504        },
1505
1506        eachMoveUpdate : function () {
1507            var base = this;
1508
1509            if (base.options.lazyLoad === true) {
1510                base.lazyLoad();
1511            }
1512            if (base.options.autoHeight === true) {
1513                base.autoHeight();
1514            }
1515            base.onVisibleItems();
1516
1517            if (typeof base.options.afterAction === "function") {
1518                base.options.afterAction.apply(this, [base.$elem]);
1519            }
1520        },
1521
1522        updateVars : function () {
1523            var base = this;
1524            if (typeof base.options.beforeUpdate === "function") {
1525                base.options.beforeUpdate.apply(this, [base.$elem]);
1526            }
1527            base.watchVisibility();
1528            base.updateItems();
1529            base.calculateAll();
1530            base.updatePosition();
1531            base.updateControls();
1532            base.eachMoveUpdate();
1533            if (typeof base.options.afterUpdate === "function") {
1534                base.options.afterUpdate.apply(this, [base.$elem]);
1535            }
1536        },
1537
1538        reload : function () {
1539            var base = this;
1540            window.setTimeout(function () {
1541                base.updateVars();
1542            }, 0);
1543        },
1544
1545        watchVisibility : function () {
1546            var base = this;
1547
1548            if (base.$elem.is(":visible") === false) {
1549                base.$elem.css({opacity: 0});
1550                window.clearInterval(base.autoPlayInterval);
1551                window.clearInterval(base.checkVisible);
1552            } else {
1553                return false;
1554            }
1555            base.checkVisible = window.setInterval(function () {
1556                if (base.$elem.is(":visible")) {
1557                    base.reload();
1558                    base.$elem.animate({opacity: 1}, 200);
1559                    window.clearInterval(base.checkVisible);
1560                }
1561            }, 500);
1562        },
1563
1564        wrapItems : function () {
1565            var base = this;
1566            base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
1567            base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
1568            base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
1569            base.$elem.css("display", "block");
1570        },
1571
1572        baseClass : function () {
1573            var base = this,
1574                hasBaseClass = base.$elem.hasClass(base.options.baseClass),
1575                hasThemeClass = base.$elem.hasClass(base.options.theme);
1576
1577            if (!hasBaseClass) {
1578                base.$elem.addClass(base.options.baseClass);
1579            }
1580
1581            if (!hasThemeClass) {
1582                base.$elem.addClass(base.options.theme);
1583            }
1584        },
1585
1586        updateItems : function () {
1587            var base = this, width, i;
1588
1589            if (base.options.responsive === false) {
1590                return false;
1591            }
1592            if (base.options.singleItem === true) {
1593                base.options.items = base.orignalItems = 1;
1594                base.options.itemsCustom = false;
1595                base.options.itemsDesktop = false;
1596                base.options.itemsDesktopSmall = false;
1597                base.options.itemsTablet = false;
1598                base.options.itemsTabletSmall = false;
1599                base.options.itemsMobile = false;
1600                return false;
1601            }
1602
1603            width = $(base.options.responsiveBaseWidth).width();
1604
1605            if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
1606                base.options.items = base.orignalItems;
1607            }
1608            if (base.options.itemsCustom !== false) {
1609                //Reorder array by screen size
1610                base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
1611
1612                for (i = 0; i < base.options.itemsCustom.length; i += 1) {
1613                    if (base.options.itemsCustom[i][0] <= width) {
1614                        base.options.items = base.options.itemsCustom[i][1];
1615                    }
1616                }
1617
1618            } else {
1619
1620                if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
1621                    base.options.items = base.options.itemsDesktop[1];
1622                }
1623
1624                if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
1625                    base.options.items = base.options.itemsDesktopSmall[1];
1626                }
1627
1628                if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
1629                    base.options.items = base.options.itemsTablet[1];
1630                }
1631
1632                if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
1633                    base.options.items = base.options.itemsTabletSmall[1];
1634                }
1635
1636                if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
1637                    base.options.items = base.options.itemsMobile[1];
1638                }
1639            }
1640
1641            //if number of items is less than declared
1642            if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
1643                base.options.items = base.itemsAmount;
1644            }
1645        },
1646
1647        response : function () {
1648            var base = this,
1649                smallDelay,
1650                lastWindowWidth;
1651
1652            if (base.options.responsive !== true) {
1653                return false;
1654            }
1655            lastWindowWidth = $(window).width();
1656
1657            base.resizer = function () {
1658                if ($(window).width() !== lastWindowWidth) {
1659                    if (base.options.autoPlay !== false) {
1660                        window.clearInterval(base.autoPlayInterval);
1661                    }
1662                    window.clearTimeout(smallDelay);
1663                    smallDelay = window.setTimeout(function () {
1664                        lastWindowWidth = $(window).width();
1665                        base.updateVars();
1666                    }, base.options.responsiveRefreshRate);
1667                }
1668            };
1669            $(window).resize(base.resizer);
1670        },
1671
1672        updatePosition : function () {
1673            var base = this;
1674            base.jumpTo(base.currentItem);
1675            if (base.options.autoPlay !== false) {
1676                base.checkAp();
1677            }
1678        },
1679
1680        appendItemsSizes : function () {
1681            var base = this,
1682                roundPages = 0,
1683                lastItem = base.itemsAmount - base.options.items;
1684
1685            base.$owlItems.each(function (index) {
1686                var $this = $(this);
1687                $this
1688                    .css({"width": base.itemWidth})
1689                    .data("owl-item", Number(index));
1690
1691                if (index % base.options.items === 0 || index === lastItem) {
1692                    if (!(index > lastItem)) {
1693                        roundPages += 1;
1694                    }
1695                }
1696                $this.data("owl-roundPages", roundPages);
1697            });
1698        },
1699
1700        appendWrapperSizes : function () {
1701            var base = this,
1702                width = base.$owlItems.length * base.itemWidth;
1703
1704            base.$owlWrapper.css({
1705                "width": width * 2,
1706                "left": 0
1707            });
1708            base.appendItemsSizes();
1709        },
1710
1711        calculateAll : function () {
1712            var base = this;
1713            base.calculateWidth();
1714            base.appendWrapperSizes();
1715            base.loops();
1716            base.max();
1717        },
1718
1719        calculateWidth : function () {
1720            var base = this;
1721            base.itemWidth = Math.round(base.$elem.width() / base.options.items);
1722        },
1723
1724        max : function () {
1725            var base = this,
1726                maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
1727            if (base.options.items > base.itemsAmount) {
1728                base.maximumItem = 0;
1729                maximum = 0;
1730                base.maximumPixels = 0;
1731            } else {
1732                base.maximumItem = base.itemsAmount - base.options.items;
1733                base.maximumPixels = maximum;
1734            }
1735            return maximum;
1736        },
1737
1738        min : function () {
1739            return 0;
1740        },
1741
1742        loops : function () {
1743            var base = this,
1744                prev = 0,
1745                elWidth = 0,
1746                i,
1747                item,
1748                roundPageNum;
1749
1750            base.positionsInArray = [0];
1751            base.pagesInArray = [];
1752
1753            for (i = 0; i < base.itemsAmount; i += 1) {
1754                elWidth += base.itemWidth;
1755                base.positionsInArray.push(-elWidth);
1756
1757                if (base.options.scrollPerPage === true) {
1758                    item = $(base.$owlItems[i]);
1759                    roundPageNum = item.data("owl-roundPages");
1760                    if (roundPageNum !== prev) {
1761                        base.pagesInArray[prev] = base.positionsInArray[i];
1762                        prev = roundPageNum;
1763                    }
1764                }
1765            }
1766        },
1767
1768        buildControls : function () {
1769            var base = this;
1770            if (base.options.navigation === true || base.options.pagination === true) {
1771                base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
1772            }
1773            if (base.options.pagination === true) {
1774                base.buildPagination();
1775            }
1776            if (base.options.navigation === true) {
1777                base.buildButtons();
1778            }
1779        },
1780
1781        buildButtons : function () {
1782            var base = this,
1783                buttonsWrapper = $("<div class=\"owl-buttons\"/>");
1784            base.owlControls.append(buttonsWrapper);
1785
1786            base.buttonPrev = $("<div/>", {
1787                "class" : "owl-prev",
1788                "html" : base.options.navigationText[0] || ""
1789            });
1790
1791            base.buttonNext = $("<div/>", {
1792                "class" : "owl-next",
1793                "html" : base.options.navigationText[1] || ""
1794            });
1795
1796            buttonsWrapper
1797                .append(base.buttonPrev)
1798                .append(base.buttonNext);
1799
1800            buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
1801                event.preventDefault();
1802            });
1803
1804            buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
1805                event.preventDefault();
1806                if ($(this).hasClass("owl-next")) {
1807                    base.next();
1808                } else {
1809                    base.prev();
1810                }
1811            });
1812        },
1813
1814        buildPagination : function () {
1815            var base = this;
1816
1817            base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
1818            base.owlControls.append(base.paginationWrapper);
1819
1820            base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
1821                event.preventDefault();
1822                if (Number($(this).data("owl-page")) !== base.currentItem) {
1823                    base.goTo(Number($(this).data("owl-page")), true);
1824                }
1825            });
1826        },
1827
1828        updatePagination : function () {
1829            var base = this,
1830                counter,
1831                lastPage,
1832                lastItem,
1833                i,
1834                paginationButton,
1835                paginationButtonInner;
1836
1837            if (base.options.pagination === false) {
1838                return false;
1839            }
1840
1841            base.paginationWrapper.html("");
1842
1843            counter = 0;
1844            lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
1845
1846            for (i = 0; i < base.itemsAmount; i += 1) {
1847                if (i % base.options.items === 0) {
1848                    counter += 1;
1849                    if (lastPage === i) {
1850                        lastItem = base.itemsAmount - base.options.items;
1851                    }
1852                    paginationButton = $("<div/>", {
1853                        "class" : "owl-page"
1854                    });
1855                    paginationButtonInner = $("<span></span>", {
1856                        "text": base.options.paginationNumbers === true ? counter : "",
1857                        "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
1858                    });
1859                    paginationButton.append(paginationButtonInner);
1860
1861                    paginationButton.data("owl-page", lastPage === i ? lastItem : i);
1862                    paginationButton.data("owl-roundPages", counter);
1863
1864                    base.paginationWrapper.append(paginationButton);
1865                }
1866            }
1867            base.checkPagination();
1868        },
1869        checkPagination : function () {
1870            var base = this;
1871            if (base.options.pagination === false) {
1872                return false;
1873            }
1874            base.paginationWrapper.find(".owl-page").each(function () {
1875                if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
1876                    base.paginationWrapper
1877                        .find(".owl-page")
1878                        .removeClass("active");
1879                    $(this).addClass("active");
1880                }
1881            });
1882        },
1883
1884        checkNavigation : function () {
1885            var base = this;
1886
1887            if (base.options.navigation === false) {
1888                return false;
1889            }
1890            if (base.options.rewindNav === false) {
1891                if (base.currentItem === 0 && base.maximumItem === 0) {
1892                    base.buttonPrev.addClass("disabled");
1893                    base.buttonNext.addClass("disabled");
1894                } else if (base.currentItem === 0 && base.maximumItem !== 0) {
1895                    base.buttonPrev.addClass("disabled");
1896                    base.buttonNext.removeClass("disabled");
1897                } else if (base.currentItem === base.maximumItem) {
1898                    base.buttonPrev.removeClass("disabled");
1899                    base.buttonNext.addClass("disabled");
1900                } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
1901                    base.buttonPrev.removeClass("disabled");
1902                    base.buttonNext.removeClass("disabled");
1903                }
1904            }
1905        },
1906
1907        updateControls : function () {
1908            var base = this;
1909            base.updatePagination();
1910            base.checkNavigation();
1911            if (base.owlControls) {
1912                if (base.options.items >= base.itemsAmount) {
1913                    base.owlControls.hide();
1914                } else {
1915                    base.owlControls.show();
1916                }
1917            }
1918        },
1919
1920        destroyControls : function () {
1921            var base = this;
1922            if (base.owlControls) {
1923                base.owlControls.remove();
1924            }
1925        },
1926
1927        next : function (speed) {
1928            var base = this;
1929
1930            if (base.isTransition) {
1931                return false;
1932            }
1933
1934            base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
1935            if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
1936                if (base.options.rewindNav === true) {
1937                    base.currentItem = 0;
1938                    speed = "rewind";
1939                } else {
1940                    base.currentItem = base.maximumItem;
1941                    return false;
1942                }
1943            }
1944            base.goTo(base.currentItem, speed);
1945        },
1946
1947        prev : function (speed) {
1948            var base = this;
1949
1950            if (base.isTransition) {
1951                return false;
1952            }
1953
1954            if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
1955                base.currentItem = 0;
1956            } else {
1957                base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
1958            }
1959            if (base.currentItem < 0) {
1960                if (base.options.rewindNav === true) {
1961                    base.currentItem = base.maximumItem;
1962                    speed = "rewind";
1963                } else {
1964                    base.currentItem = 0;
1965                    return false;
1966                }
1967            }
1968            base.goTo(base.currentItem, speed);
1969        },
1970
1971        goTo : function (position, speed, drag) {
1972            var base = this,
1973                goToPixel;
1974
1975            if (base.isTransition) {
1976                return false;
1977            }
1978            if (typeof base.options.beforeMove === "function") {
1979                base.options.beforeMove.apply(this, [base.$elem]);
1980            }
1981            if (position >= base.maximumItem) {
1982                position = base.maximumItem;
1983            } else if (position <= 0) {
1984                position = 0;
1985            }
1986
1987            base.currentItem = base.owl.currentItem = position;
1988            if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
1989                base.swapSpeed(0);
1990                if (base.browser.support3d === true) {
1991                    base.transition3d(base.positionsInArray[position]);
1992                } else {
1993                    base.css2slide(base.positionsInArray[position], 1);
1994                }
1995                base.afterGo();
1996                base.singleItemTransition();
1997                return false;
1998            }
1999            goToPixel = base.positionsInArray[position];
2000
2001            if (base.browser.support3d === true) {
2002                base.isCss3Finish = false;
2003
2004                if (speed === true) {
2005                    base.swapSpeed("paginationSpeed");
2006                    window.setTimeout(function () {
2007                        base.isCss3Finish = true;
2008                    }, base.options.paginationSpeed);
2009
2010                } else if (speed === "rewind") {
2011                    base.swapSpeed(base.options.rewindSpeed);
2012                    window.setTimeout(function () {
2013                        base.isCss3Finish = true;
2014                    }, base.options.rewindSpeed);
2015
2016                } else {
2017                    base.swapSpeed("slideSpeed");
2018                    window.setTimeout(function () {
2019                        base.isCss3Finish = true;
2020                    }, base.options.slideSpeed);
2021                }
2022                base.transition3d(goToPixel);
2023            } else {
2024                if (speed === true) {
2025                    base.css2slide(goToPixel, base.options.paginationSpeed);
2026                } else if (speed === "rewind") {
2027                    base.css2slide(goToPixel, base.options.rewindSpeed);
2028                } else {
2029                    base.css2slide(goToPixel, base.options.slideSpeed);
2030                }
2031            }
2032            base.afterGo();
2033        },
2034
2035        jumpTo : function (position) {
2036            var base = this;
2037            if (typeof base.options.beforeMove === "function") {
2038                base.options.beforeMove.apply(this, [base.$elem]);
2039            }
2040            if (position >= base.maximumItem || position === -1) {
2041                position = base.maximumItem;
2042            } else if (position <= 0) {
2043                position = 0;
2044            }
2045            base.swapSpeed(0);
2046            if (base.browser.support3d === true) {
2047                base.transition3d(base.positionsInArray[position]);
2048            } else {
2049                base.css2slide(base.positionsInArray[position], 1);
2050            }
2051            base.currentItem = base.owl.currentItem = position;
2052            base.afterGo();
2053        },
2054
2055        afterGo : function () {
2056            var base = this;
2057
2058            base.prevArr.push(base.currentItem);
2059            base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
2060            base.prevArr.shift(0);
2061
2062            if (base.prevItem !== base.currentItem) {
2063                base.checkPagination();
2064                base.checkNavigation();
2065                base.eachMoveUpdate();
2066
2067                if (base.options.autoPlay !== false) {
2068                    base.checkAp();
2069                }
2070            }
2071            if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
2072                base.options.afterMove.apply(this, [base.$elem]);
2073            }
2074        },
2075
2076        stop : function () {
2077            var base = this;
2078            base.apStatus = "stop";
2079            window.clearInterval(base.autoPlayInterval);
2080        },
2081
2082        checkAp : function () {
2083            var base = this;
2084            if (base.apStatus !== "stop") {
2085                base.play();
2086            }
2087        },
2088
2089        play : function () {
2090            var base = this;
2091            base.apStatus = "play";
2092            if (base.options.autoPlay === false) {
2093                return false;
2094            }
2095            window.clearInterval(base.autoPlayInterval);
2096            base.autoPlayInterval = window.setInterval(function () {
2097                base.next(true);
2098            }, base.options.autoPlay);
2099        },
2100
2101        swapSpeed : function (action) {
2102            var base = this;
2103            if (action === "slideSpeed") {
2104                base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
2105            } else if (action === "paginationSpeed") {
2106                base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
2107            } else if (typeof action !== "string") {
2108                base.$owlWrapper.css(base.addCssSpeed(action));
2109            }
2110        },
2111
2112        addCssSpeed : function (speed) {
2113            return {
2114                "-webkit-transition": "all " + speed + "ms ease",
2115                "-moz-transition": "all " + speed + "ms ease",
2116                "-o-transition": "all " + speed + "ms ease",
2117                "transition": "all " + speed + "ms ease"
2118            };
2119        },
2120
2121        removeTransition : function () {
2122            return {
2123                "-webkit-transition": "",
2124                "-moz-transition": "",
2125                "-o-transition": "",
2126                "transition": ""
2127            };
2128        },
2129
2130        doTranslate : function (pixels) {
2131            return {
2132                "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
2133                "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
2134                "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
2135                "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
2136                "transform": "translate3d(" + pixels + "px, 0px,0px)"
2137            };
2138        },
2139
2140        transition3d : function (value) {
2141            var base = this;
2142            base.$owlWrapper.css(base.doTranslate(value));
2143        },
2144
2145        css2move : function (value) {
2146            var base = this;
2147            base.$owlWrapper.css({"left" : value});
2148        },
2149
2150        css2slide : function (value, speed) {
2151            var base = this;
2152
2153            base.isCssFinish = false;
2154            base.$owlWrapper.stop(true, true).animate({
2155                "left" : value
2156            }, {
2157                duration : speed || base.options.slideSpeed,
2158                complete : function () {
2159                    base.isCssFinish = true;
2160                }
2161            });
2162        },
2163
2164        checkBrowser : function () {
2165            var base = this,
2166                translate3D = "translate3d(0px, 0px, 0px)",
2167                tempElem = document.createElement("div"),
2168                regex,
2169                asSupport,
2170                support3d,
2171                isTouch;
2172
2173            tempElem.style.cssText = "  -moz-transform:" + translate3D +
2174                                  "; -ms-transform:"     + translate3D +
2175                                  "; -o-transform:"      + translate3D +
2176                                  "; -webkit-transform:" + translate3D +
2177                                  "; transform:"         + translate3D;
2178            regex = /translate3d\(0px, 0px, 0px\)/g;
2179            asSupport = tempElem.style.cssText.match(regex);
2180            support3d = (asSupport !== null && asSupport.length === 1);
2181
2182            isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
2183
2184            base.browser = {
2185                "support3d" : support3d,
2186                "isTouch" : isTouch
2187            };
2188        },
2189
2190        moveEvents : function () {
2191            var base = this;
2192            if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
2193                base.gestures();
2194                base.disabledEvents();
2195            }
2196        },
2197
2198        eventTypes : function () {
2199            var base = this,
2200                types = ["s", "e", "x"];
2201
2202            base.ev_types = {};
2203
2204            if (base.options.mouseDrag === true && base.options.touchDrag === true) {
2205                types = [
2206                    "touchstart.owl mousedown.owl",
2207                    "touchmove.owl mousemove.owl",
2208                    "touchend.owl touchcancel.owl mouseup.owl"
2209                ];
2210            } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
2211                types = [
2212                    "touchstart.owl",
2213                    "touchmove.owl",
2214                    "touchend.owl touchcancel.owl"
2215                ];
2216            } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
2217                types = [
2218                    "mousedown.owl",
2219                    "mousemove.owl",
2220                    "mouseup.owl"
2221                ];
2222            }
2223
2224            base.ev_types.start = types[0];
2225            base.ev_types.move = types[1];
2226            base.ev_types.end = types[2];
2227        },
2228
2229        disabledEvents :  function () {
2230            var base = this;
2231            base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
2232            base.$elem.on("mousedown.disableTextSelect", function (e) {
2233                return $(e.target).is('input, textarea, select, option');
2234            });
2235        },
2236
2237        gestures : function () {
2238            /*jslint unparam: true*/
2239            var base = this,
2240                locals = {
2241                    offsetX : 0,
2242                    offsetY : 0,
2243                    baseElWidth : 0,
2244                    relativePos : 0,
2245                    position: null,
2246                    minSwipe : null,
2247                    maxSwipe: null,
2248                    sliding : null,
2249                    dargging: null,
2250                    targetElement : null
2251                };
2252
2253            base.isCssFinish = true;
2254
2255            function getTouches(event) {
2256                if (event.touches !== undefined) {
2257                    return {
2258                        x : event.touches[0].pageX,
2259                        y : event.touches[0].pageY
2260                    };
2261                }
2262
2263                if (event.touches === undefined) {
2264                    if (event.pageX !== undefined) {
2265                        return {
2266                            x : event.pageX,
2267                            y : event.pageY
2268                        };
2269                    }
2270                    if (event.pageX === undefined) {
2271                        return {
2272                            x : event.clientX,
2273                            y : event.clientY
2274                        };
2275                    }
2276                }
2277            }
2278
2279            function swapEvents(type) {
2280                if (type === "on") {
2281                    $(document).on(base.ev_types.move, dragMove);
2282                    $(document).on(base.ev_types.end, dragEnd);
2283                } else if (type === "off") {
2284                    $(document).off(base.ev_types.move);
2285                    $(document).off(base.ev_types.end);
2286                }
2287            }
2288
2289            function dragStart(event) {
2290                var ev = event.originalEvent || event || window.event,
2291                    position;
2292
2293                if (ev.which === 3) {
2294                    return false;
2295                }
2296                if (base.itemsAmount <= base.options.items) {
2297                    return;
2298                }
2299                if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
2300                    return false;
2301                }
2302                if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
2303                    return false;
2304                }
2305
2306                if (base.options.autoPlay !== false) {
2307                    window.clearInterval(base.autoPlayInterval);
2308                }
2309
2310                if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
2311                    base.$owlWrapper.addClass("grabbing");
2312                }
2313
2314                base.newPosX = 0;
2315                base.newRelativeX = 0;
2316
2317                $(this).css(base.removeTransition());
2318
2319                position = $(this).position();
2320                locals.relativePos = position.left;
2321
2322                locals.offsetX = getTouches(ev).x - position.left;
2323                locals.offsetY = getTouches(ev).y - position.top;
2324
2325                swapEvents("on");
2326
2327                locals.sliding = false;
2328                locals.targetElement = ev.target || ev.srcElement;
2329            }
2330
2331            function dragMove(event) {
2332                var ev = event.originalEvent || event || window.event,
2333                    minSwipe,
2334                    maxSwipe;
2335
2336                base.newPosX = getTouches(ev).x - locals.offsetX;
2337                base.newPosY = getTouches(ev).y - locals.offsetY;
2338                base.newRelativeX = base.newPosX - locals.relativePos;
2339
2340                if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
2341                    locals.dragging = true;
2342                    base.options.startDragging.apply(base, [base.$elem]);
2343                }
2344
2345                if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
2346                    if (ev.preventDefault !== undefined) {
2347                        ev.preventDefault();
2348                    } else {
2349                        ev.returnValue = false;
2350                    }
2351                    locals.sliding = true;
2352                }
2353
2354                if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
2355                    $(document).off("touchmove.owl");
2356                }
2357
2358                minSwipe = function () {
2359                    return base.newRelativeX / 5;
2360                };
2361
2362                maxSwipe = function () {
2363                    return base.maximumPixels + base.newRelativeX / 5;
2364                };
2365
2366                base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
2367                if (base.browser.support3d === true) {
2368                    base.transition3d(base.newPosX);
2369                } else {
2370                    base.css2move(base.newPosX);
2371                }
2372            }
2373
2374            function dragEnd(event) {
2375                var ev = event.originalEvent || event || window.event,
2376                    newPosition,
2377                    handlers,
2378                    owlStopEvent;
2379
2380                ev.target = ev.target || ev.srcElement;
2381
2382                locals.dragging = false;
2383
2384                if (base.browser.isTouch !== true) {
2385                    base.$owlWrapper.removeClass("grabbing");
2386                }
2387
2388                if (base.newRelativeX < 0) {
2389                    base.dragDirection = base.owl.dragDirection = "left";
2390                } else {
2391                    base.dragDirection = base.owl.dragDirection = "right";
2392                }
2393
2394                if (base.newRelativeX !== 0) {
2395                    newPosition = base.getNewPosition();
2396                    base.goTo(newPosition, false, "drag");
2397                    if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
2398                        $(ev.target).on("click.disable", function (ev) {
2399                            ev.stopImmediatePropagation();
2400                            ev.stopPropagation();
2401                            ev.preventDefault();
2402                            $(ev.target).off("click.disable");
2403                        });
2404                        handlers = $._data(ev.target, "events").click;
2405                        owlStopEvent = handlers.pop();
2406                        handlers.splice(0, 0, owlStopEvent);
2407                    }
2408                }
2409                swapEvents("off");
2410            }
2411            base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
2412        },
2413
2414        getNewPosition : function () {
2415            var base = this,
2416                newPosition = base.closestItem();
2417
2418            if (newPosition > base.maximumItem) {
2419                base.currentItem = base.maximumItem;
2420                newPosition  = base.maximumItem;
2421            } else if (base.newPosX >= 0) {
2422                newPosition = 0;
2423                base.currentItem = 0;
2424            }
2425            return newPosition;
2426        },
2427        closestItem : function () {
2428            var base = this,
2429                array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
2430                goal = base.newPosX,
2431                closest = null;
2432
2433            $.each(array, function (i, v) {
2434                if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
2435                    closest = v;
2436                    if (base.options.scrollPerPage === true) {
2437                        base.currentItem = $.inArray(closest, base.positionsInArray);
2438                    } else {
2439                        base.currentItem = i;
2440                    }
2441                } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
2442                    if (base.options.scrollPerPage === true) {
2443                        closest = array[i + 1] || array[array.length - 1];
2444                        base.currentItem = $.inArray(closest, base.positionsInArray);
2445                    } else {
2446                        closest = array[i + 1];
2447                        base.currentItem = i + 1;
2448                    }
2449                }
2450            });
2451            return base.currentItem;
2452        },
2453
2454        moveDirection : function () {
2455            var base = this,
2456                direction;
2457            if (base.newRelativeX < 0) {
2458                direction = "right";
2459                base.playDirection = "next";
2460            } else {
2461                direction = "left";
2462                base.playDirection = "prev";
2463            }
2464            return direction;
2465        },
2466
2467        customEvents : function () {
2468            /*jslint unparam: true*/
2469            var base = this;
2470            base.$elem.on("owl.next", function () {
2471                base.next();
2472            });
2473            base.$elem.on("owl.prev", function () {
2474                base.prev();
2475            });
2476            base.$elem.on("owl.play", function (event, speed) {
2477                base.options.autoPlay = speed;
2478                base.play();
2479                base.hoverStatus = "play";
2480            });
2481            base.$elem.on("owl.stop", function () {
2482                base.stop();
2483                base.hoverStatus = "stop";
2484            });
2485            base.$elem.on("owl.goTo", function (event, item) {
2486                base.goTo(item);
2487            });
2488            base.$elem.on("owl.jumpTo", function (event, item) {
2489                base.jumpTo(item);
2490            });
2491        },
2492
2493        stopOnHover : function () {
2494            var base = this;
2495            if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
2496                base.$elem.on("mouseover", function () {
2497                    base.stop();
2498                });
2499                base.$elem.on("mouseout", function () {
2500                    if (base.hoverStatus !== "stop") {
2501                        base.play();
2502                    }
2503                });
2504            }
2505        },
2506
2507        lazyLoad : function () {
2508            var base = this,
2509                i,
2510                $item,
2511                itemNumber,
2512                $lazyImg,
2513                follow;
2514
2515            if (base.options.lazyLoad === false) {
2516                return false;
2517            }
2518            for (i = 0; i < base.itemsAmount; i += 1) {
2519                $item = $(base.$owlItems[i]);
2520
2521                if ($item.data("owl-loaded") === "loaded") {
2522                    continue;
2523                }
2524
2525                itemNumber = $item.data("owl-item");
2526                $lazyImg = $item.find(".lazyOwl");
2527
2528                if (typeof $lazyImg.data("src") !== "string") {
2529                    $item.data("owl-loaded", "loaded");
2530                    continue;
2531                }
2532                if ($item.data("owl-loaded") === undefined) {
2533                    $lazyImg.hide();
2534                    $item.addClass("loading").data("owl-loaded", "checked");
2535                }
2536                if (base.options.lazyFollow === true) {
2537                    follow = itemNumber >= base.currentItem;
2538                } else {
2539                    follow = true;
2540                }
2541                if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
2542                    base.lazyPreload($item, $lazyImg);
2543                }
2544            }
2545        },
2546
2547        lazyPreload : function ($item, $lazyImg) {
2548            var base = this,
2549                iterations = 0,
2550                isBackgroundImg;
2551
2552            if ($lazyImg.prop("tagName") === "DIV") {
2553                $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
2554                isBackgroundImg = true;
2555            } else {
2556                $lazyImg[0].src = $lazyImg.data("src");
2557            }
2558
2559            function showImage() {
2560                $item.data("owl-loaded", "loaded").removeClass("loading");
2561                $lazyImg.removeAttr("data-src");
2562                if (base.options.lazyEffect === "fade") {
2563                    $lazyImg.fadeIn(400);
2564                } else {
2565                    $lazyImg.show();
2566                }
2567                if (typeof base.options.afterLazyLoad === "function") {
2568                    base.options.afterLazyLoad.apply(this, [base.$elem]);
2569                }
2570            }
2571
2572            function checkLazyImage() {
2573                iterations += 1;
2574                if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
2575                    showImage();
2576                } else if (iterations <= 100) {//if image loads in less than 10 seconds 
2577                    window.setTimeout(checkLazyImage, 100);
2578                } else {
2579                    showImage();
2580                }
2581            }
2582
2583            checkLazyImage();
2584        },
2585
2586        autoHeight : function () {
2587            var base = this,
2588                $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
2589                iterations;
2590
2591            function addHeight() {
2592                var $currentItem = $(base.$owlItems[base.currentItem]).height();
2593                base.wrapperOuter.css("height", $currentItem + "px");
2594                if (!base.wrapperOuter.hasClass("autoHeight")) {
2595                    window.setTimeout(function () {
2596                        base.wrapperOuter.addClass("autoHeight");
2597                    }, 0);
2598                }
2599            }
2600
2601            function checkImage() {
2602                iterations += 1;
2603                if (base.completeImg($currentimg.get(0))) {
2604                    addHeight();
2605                } else if (iterations <= 100) { //if image loads in less than 10 seconds 
2606                    window.setTimeout(checkImage, 100);
2607                } else {
2608                    base.wrapperOuter.css("height", ""); //Else remove height attribute
2609                }
2610            }
2611
2612            if ($currentimg.get(0) !== undefined) {
2613                iterations = 0;
2614                checkImage();
2615            } else {
2616                addHeight();
2617            }
2618        },
2619
2620        completeImg : function (img) {
2621            var naturalWidthType;
2622
2623            if (!img.complete) {
2624                return false;
2625            }
2626            naturalWidthType = typeof img.naturalWidth;
2627            if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
2628                return false;
2629            }
2630            return true;
2631        },
2632
2633        onVisibleItems : function () {
2634            var base = this,
2635                i;
2636
2637            if (base.options.addClassActive === true) {
2638                base.$owlItems.removeClass("active");
2639            }
2640            base.visibleItems = [];
2641            for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
2642                base.visibleItems.push(i);
2643
2644                if (base.options.addClassActive === true) {
2645                    $(base.$owlItems[i]).addClass("active");
2646                }
2647            }
2648            base.owl.visibleItems = base.visibleItems;
2649        },
2650
2651        transitionTypes : function (className) {
2652            var base = this;
2653            //Currently available: "fade", "backSlide", "goDown", "fadeUp"
2654            base.outClass = "owl-" + className + "-out";
2655            base.inClass = "owl-" + className + "-in";
2656        },
2657
2658        singleItemTransition : function () {
2659            var base = this,
2660                outClass = base.outClass,
2661                inClass = base.inClass,
2662                $currentItem = base.$owlItems.eq(base.currentItem),
2663                $prevItem = base.$owlItems.eq(base.prevItem),
2664                prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
2665                origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
2666                animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
2667
2668            base.isTransition = true;
2669
2670            base.$owlWrapper
2671                .addClass('owl-origin')
2672                .css({
2673                    "-webkit-transform-origin" : origin + "px",
2674                    "-moz-perspective-origin" : origin + "px",
2675                    "perspective-origin" : origin + "px"
2676                });
2677            function transStyles(prevPos) {
2678                return {
2679                    "position" : "relative",
2680                    "left" : prevPos + "px"
2681                };
2682            }
2683
2684            $prevItem
2685                .css(transStyles(prevPos, 10))
2686                .addClass(outClass)
2687                .on(animEnd, function () {
2688                    base.endPrev = true;
2689                    $prevItem.off(animEnd);
2690                    base.clearTransStyle($prevItem, outClass);
2691                });
2692
2693            $currentItem
2694                .addClass(inClass)
2695                .on(animEnd, function () {
2696                    base.endCurrent = true;
2697                    $currentItem.off(animEnd);
2698                    base.clearTransStyle($currentItem, inClass);
2699                });
2700        },
2701
2702        clearTransStyle : function (item, classToRemove) {
2703            var base = this;
2704            item.css({
2705                "position" : "",
2706                "left" : ""
2707            }).removeClass(classToRemove);
2708
2709            if (base.endPrev && base.endCurrent) {
2710                base.$owlWrapper.removeClass('owl-origin');
2711                base.endPrev = false;
2712                base.endCurrent = false;
2713                base.isTransition = false;
2714            }
2715        },
2716
2717        owlStatus : function () {
2718            var base = this;
2719            base.owl = {
2720                "userOptions"   : base.userOptions,
2721                "baseElement"   : base.$elem,
2722                "userItems"     : base.$userItems,
2723                "owlItems"      : base.$owlItems,
2724                "currentItem"   : base.currentItem,
2725                "prevItem"      : base.prevItem,
2726                "visibleItems"  : base.visibleItems,
2727                "isTouch"       : base.browser.isTouch,
2728                "browser"       : base.browser,
2729                "dragDirection" : base.dragDirection
2730            };
2731        },
2732
2733        clearEvents : function () {
2734            var base = this;
2735            base.$elem.off(".owl owl mousedown.disableTextSelect");
2736            $(document).off(".owl owl");
2737            $(window).off("resize", base.resizer);
2738        },
2739
2740        unWrap : function () {
2741            var base = this;
2742            if (base.$elem.children().length !== 0) {
2743                base.$owlWrapper.unwrap();
2744                base.$userItems.unwrap().unwrap();
2745                if (base.owlControls) {
2746                    base.owlControls.remove();
2747                }
2748            }
2749            base.clearEvents();
2750            base.$elem
2751                .attr("style", base.$elem.data("owl-originalStyles") || "")
2752                .attr("class", base.$elem.data("owl-originalClasses"));
2753        },
2754
2755        destroy : function () {
2756            var base = this;
2757            base.stop();
2758            window.clearInterval(base.checkVisible);
2759            base.unWrap();
2760            base.$elem.removeData();
2761        },
2762
2763        reinit : function (newOptions) {
2764            var base = this,
2765                options = $.extend({}, base.userOptions, newOptions);
2766            base.unWrap();
2767            base.init(options, base.$elem);
2768        },
2769
2770        addItem : function (htmlString, targetPosition) {
2771            var base = this,
2772                position;
2773
2774            if (!htmlString) {return false; }
2775
2776            if (base.$elem.children().length === 0) {
2777                base.$elem.append(htmlString);
2778                base.setVars();
2779                return false;
2780            }
2781            base.unWrap();
2782            if (targetPosition === undefined || targetPosition === -1) {
2783                position = -1;
2784            } else {
2785                position = targetPosition;
2786            }
2787            if (position >= base.$userItems.length || position === -1) {
2788                base.$userItems.eq(-1).after(htmlString);
2789            } else {
2790                base.$userItems.eq(position).before(htmlString);
2791            }
2792
2793            base.setVars();
2794        },
2795
2796        removeItem : function (targetPosition) {
2797            var base = this,
2798                position;
2799
2800            if (base.$elem.children().length === 0) {
2801                return false;
2802            }
2803            if (targetPosition === undefined || targetPosition === -1) {
2804                position = -1;
2805            } else {
2806                position = targetPosition;
2807            }
2808
2809            base.unWrap();
2810            base.$userItems.eq(position).remove();
2811            base.setVars();
2812        }
2813
2814    };
2815
2816    $.fn.owlCarousel = function (options) {
2817        return this.each(function () {
2818            if ($(this).data("owl-init") === true) {
2819                return false;
2820            }
2821            $(this).data("owl-init", true);
2822            var carousel = Object.create(Carousel);
2823            carousel.init(options, this);
2824            $.data(this, "owlCarousel", carousel);
2825        });
2826    };
2827
2828    $.fn.owlCarousel.options = {
2829
2830        items : 5,
2831        itemsCustom : false,
2832        itemsDesktop : [1199, 4],
2833        itemsDesktopSmall : [979, 3],
2834        itemsTablet : [768, 2],
2835        itemsTabletSmall : false,
2836        itemsMobile : [479, 1],
2837        singleItem : false,
2838        itemsScaleUp : false,
2839
2840        slideSpeed : 200,
2841        paginationSpeed : 800,
2842        rewindSpeed : 1000,
2843
2844        autoPlay : false,
2845        stopOnHover : false,
2846
2847        navigation : false,
2848        navigationText : ["prev", "next"],
2849        rewindNav : true,
2850        scrollPerPage : false,
2851
2852        pagination : true,
2853        paginationNumbers : false,
2854
2855        responsive : true,
2856        responsiveRefreshRate : 200,
2857        responsiveBaseWidth : window,
2858
2859        baseClass : "owl-carousel",
2860        theme : "owl-theme",
2861
2862        lazyLoad : false,
2863        lazyFollow : true,
2864        lazyEffect : "fade",
2865
2866        autoHeight : false,
2867
2868        jsonPath : false,
2869        jsonSuccess : false,
2870
2871        dragBeforeAnimFinish : true,
2872        mouseDrag : true,
2873        touchDrag : true,
2874
2875        addClassActive : false,
2876        transitionStyle : false,
2877
2878        beforeUpdate : false,
2879        afterUpdate : false,
2880        beforeInit : false,
2881        afterInit : false,
2882        beforeMove : false,
2883        afterMove : false,
2884        afterAction : false,
2885        startDragging : false,
2886        afterLazyLoad: false
2887    };
2888}(jQuery, window, document));
2889$(document).ready(function() {
2890  $(".owl-swipe").owlCarousel({
2891	itemsDesktop : [9000,3],
2892	itemsMobile : [991,1],
2893	navigation : false,
2894	autoPlay : false
2895  });
2896});
2897/* Scroll script configuration */
2898function enableNicescroll(){
2899 return $(".no-nicescroll-in-page").length == 0;
2900}
2901
2902$(document).ready(function() {
2903	if(enableNicescroll()){
2904		$("body").niceScroll({cursorborder:"",cursorcolor:"#ccc",boxzoom:false});
2905		$(".hamburger_menu_body").niceScroll({cursorborder:"",cursorcolor:"#ccc",boxzoom:false}); // First scrollable DIV
2906		
2907		//Contact Tiles
2908		if(!isSmallDevice()){
2909			$(".contacts_container .tile_dialog").niceScroll({cursorborder:"",cursorcolor:"#ccc",boxzoom:false , horizrailenabled:false });
2910		}
2911		
2912		//Lateral Contents
2913		if(!isSmallDevice()){
2914			$('.lateral_contents').niceScroll();
2915		}
2916		
2917		//Footer Body Contents
2918		if(!isSmallDevice()){
2919			$('.footer_body').niceScroll();
2920		}
2921				
2922		//Share Block Module
2923		$(".blocks-container .scrollable-content").niceScroll({cursorborder:"",cursorcolor:"#333",boxzoom:false});
2924	}
2925});
2926$(document).ready(function(){
2927
2928	var cookieInfoLink = "https://bnl.it/it/Footer/Cookie";
2929
2930	function showInfoCookie(){
2931		var valore = $.cookie("bnlPublic_enable_cookie");
2932		
2933		if(valore!='enabled'){
2934		    $("body").append(
2935			"<div id='infoCookie'>"+
2936				"<div>"+
2937
2938					"Questo sito utilizza cookie tecnici. Utilizza, inoltre, cookie di profilazione di terze parti per inviarti pubblicità in linea con le tue preferenze."+
2939					"</br>Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie  <a href=\"" + cookieInfoLink + "\"  target=\"_blank\"> clicca qui </a>"+
2940
2941
2942				"</div>"+
2943				"<div>"+
2944					"<input id=\"acceptCookieButton\" type=\"button\" value=\"ACCETTA\" class=\"coockie-accept-button\">"+
2945				"</div>"+
2946			"</div>");
2947		}
2948	 
2949		$("#acceptCookieButton").click(function(){
2950			$.cookie("bnlPublic_enable_cookie", "enabled", { expires: 20*365, path : "/",domain:".bnl.it" });
2951		    $("#infoCookie").remove();
2952		    
2953		    try{
2954		    	window.BNLCSAoptIn();
2955		    }catch(e){}
2956
2957		});
2958		
2959		$('#infoCookie a').on('click', function(){
2960			try{
2961				window.BNLCSAoptOut();
2962			}catch(e){}
2963		})
2964	}
2965
2966	
2967
2968	//showInfoCookie(); 
2969	
2970	if($( window ).width()>992 && $(".footer").css("position")=="fixed"){
2971			$("#infoCookie").css({ "margin-bottom" : $(".row.footer_header").height()+"px"});
2972		}
2973	
2974	$( window ).resize(function() {
2975		if($( window ).width()>992 && $(".footer").css("position")=="fixed"){
2976			$("#infoCookie").css({ "margin-bottom" : $(".row.footer_header").height()+"px"});
2977		}else{
2978			$("#infoCookie").css({ "margin-bottom" : "0px"});
2979		}
2980	});
2981	
2982});
2983
2984
2985$( document ).ready(function() {
2986   
2987   $('#my-iframe-scrivici').iFrameResize(
2988   {
2989		scrolling:true,
2990		interval:24,
2991		resizedCallback:function (){
2992			$(window).trigger('resize');
2993		}
2994   });
2995   
2996   $('iframe.box-iframe').iFrameResize(
2997   {
2998		scrolling:true,
2999		interval:24,
3000		resizedCallback:function (){
3001			$(window).trigger('resize');
3002		}
3003   });
3004
3005});
3006
3007$(document).ready(function(){ 
3008  $(".social-share").each(function(){
3009   initializeShareButton($(this));
3010  });
3011  $(".share-icons-container").each(function(){
3012    initializeShareModule($(this));
3013  });
3014  $(".c2a-social-share").each(function(){
3015   initializeC2aShareButton($(this));
3016  });
3017}); 
3018
3019
3020function initializeShareModule(shareModuleButton){
3021  var title = $('title').text();
3022  var sharedLink = window.location.href;
3023  shareModuleButton.hideshare({
3024      link: sharedLink,
3025      title: title,
3026      media: "",
3027      facebook: SocialSharingConfig.facebook,
3028      twitter: SocialSharingConfig.twitter,
3029      pinterest: SocialSharingConfig.pinterest,
3030      googleplus: SocialSharingConfig.googleplus,
3031      linkedin: SocialSharingConfig.linkedin
3032    });
3033}
3034
3035function initializeShareButton(socialShareButton) {
3036  var parent = socialShareButton.parents(".share-blocks-container");
3037  var sharedLink = parent.find(".c2a-box").children("a").attr("href");
3038  if(sharedLink !== undefined && sharedLink !="" && sharedLink.charAt(0)=='/'){
3039    sharedLink = window.location.protocol+"//"+window.location.host + sharedLink;
3040  }
3041  if( parent.length>0 ){
3042    socialShareButton.hideshare({
3043      link: sharedLink,
3044      title: parent.find(".textbox").children("h1").text(),
3045      media: "",
3046      facebook: SocialSharingConfig.facebook,
3047      twitter: SocialSharingConfig.twitter,
3048      pinterest: SocialSharingConfig.pinterest,
3049      googleplus: SocialSharingConfig.googleplus,
3050      linkedin: SocialSharingConfig.linkedin
3051    });
3052  }
3053}
3054
3055function initializeC2aShareButton(c2aSocialShareButton) {
3056  var parent = $(".c2a-social-share").parents(".c2a-share");
3057  var sharedLink = parent.siblings(".c2a-container").find(".c2a-wrapper")[1];
3058  sharedLink = $(sharedLink).children("a").attr("href");
3059  if(sharedLink !== undefined && sharedLink !="" && sharedLink.charAt(0)=='/'){
3060    sharedLink = window.location.protocol+"//"+window.location.host + sharedLink;
3061  }
3062  if( parent.length>0 ){
3063    c2aSocialShareButton.hideshare({
3064      link: sharedLink,
3065      title: parent.parents('.image-text-c2a-module').children('div').find('h1').text(),
3066      media: "",
3067      facebook: SocialSharingConfig.facebook,
3068      twitter: SocialSharingConfig.twitter,
3069      pinterest: SocialSharingConfig.pinterest,
3070      googleplus: SocialSharingConfig.googleplus,
3071      linkedin: SocialSharingConfig.linkedin
3072    });
3073  }
3074}
3075if( window.location.href.match(/responsabilita.*sociale/gi) != null ){
3076	//CONTACTS SETTINGS
3077	Contacts.scriviciLink= "/cconlinenew/CCONLINE/ExecuteRichiestaSegnalazioni.do?CodProv=M&Segmento=individuiefamiglie&ACTION_TO_CALL=/ToCCOnlineAction.do";
3078	Contacts.fattiRichiamareLink= "/cconlinenew/CCONLINE/ExecuteRichiestaMail.do?CodProv=M&Segmento=individuiefamiglie&ACTION_TO_CALL=/ToCCOnlineAction.do";
3079
3080}
3081var urlAnalyticScriptBody = siteSettings.cookieManager.gtmCommonBody;
3082var urlAnalyticScriptHead = siteSettings.cookieManager.gtmCommonHead;
3083
3084// HEAD
3085var analyticsScript = document.createElement('script');
3086analyticsScript.type = 'text/javascript';
3087analyticsScript.src = urlAnalyticScriptHead;
3088document.head.appendChild(analyticsScript);
3089
3090// BODY
3091var analyticsScript = document.createElement('script');
3092analyticsScript.type = 'text/javascript';
3093analyticsScript.src = urlAnalyticScriptBody;
3094var s = document.body.firstChild;
3095s.parentNode.insertBefore(analyticsScript, s);
3096
3097var urlCelebrusScript = siteSettings.cookieManager.urlCelebrusScript;
3098var celebrusScript = document.createElement('script');
3099celebrusScript.type = 'text/javascript';
3100celebrusScript.src = urlCelebrusScript;
3101document.head.appendChild(celebrusScript);
3102
3103function loadGtmCommon(){
3104	console.log("gtm-common already loaded");
3105}
3106$(document).ready(function(){	
3107	var contextRoot = window.location.pathname;
3108
3109	if(contextRoot.indexOf('/it/login') == -1){
3110		String.prototype.replaceAll = function (search, replacement) {
3111			var target = this;
3112			return target.replace(new RegExp(search, 'g'), replacement);
3113		};
3114
3115		//elimino it
3116		contextRootClean = contextRoot.substring(4,contextRoot.length);
3117		
3118		
3119		var urlSpaced = contextRootClean.replaceAll('-', ' ');
3120		var urlArray = contextRootClean.split('/');
3121
3122		var urlArraySpaced = urlSpaced.split('/'); 
3123
3124        
3125		 
3126		var bread = '';
3127		var urlBreadcrumbs = '';
3128		var minLength = urlArraySpaced.length;
3129		
3130		if(minLength >3)
3131		{
3132			 urlArray.reverse();
3133			 urlArraySpaced.reverse();
3134			 
3135			 urlArray.splice(3);
3136			 urlArraySpaced.splice(3);
3137			 
3138			 urlArray.reverse();
3139			 urlArraySpaced.reverse();
3140		 
3141		}
3142			 
3143			for (i = 0; i <= urlArraySpaced.length-1; i++) {
3144				if(i != urlArraySpaced.length-1){
3145				urlBreadcrumbs = contextRoot.split(urlArray[i]);
3146				urlBreadcrumbs[0] = urlBreadcrumbs[0].concat(urlArray[i]);
3147				}
3148				if (i != 0 && i!= urlArraySpaced.length-1)//no primo no ultimo
3149					bread = bread.concat('<div class="green-color truncate">  <a href="' + urlBreadcrumbs[0]+ '">'+ urlArraySpaced[i].toUpperCase() +' </a> &gt;</div>');
3150				else if(i == urlArraySpaced.length-1 )// ultimo elemento lenght 3
3151					bread = bread.concat('<div class="truncate">'+ urlArraySpaced[i].toUpperCase() +' </div>');
3152				else if(i == 0)//primo elemento
3153					bread = bread.concat('<div class="green-color"> <a href="' + urlBreadcrumbs[0]+ '">'+ urlArraySpaced[i].toUpperCase() +' </a> &gt; </div>');
3154				else
3155					bread = bread.concat('<div class="truncate">&gt; ' + urlArraySpaced[i].toUpperCase()+'</div>');
3156			}
3157		
3158			var $breadcrumbs='<div id="breadcrumbs">'+bread+'</div>';
3159			$('nav.nav_main_menu.container-fluid').append($breadcrumbs);
3160		}
3161});
3162//    YouTube iFrame API loading
3163 
3164if(!window["YTIframeApiLoaded"]){
3165	var iframeApiAddress = "www.youtube.com/iframe_api";
3166	var useHttps = 'Y';
3167	var tag = document.createElement('script');
3168	var scriptSrc = useHttps == "Y" ? "https://" : "http://";
3169	scriptSrc += iframeApiAddress;
3170	tag.src = scriptSrc;
3171	var firstScriptTag = document.getElementsByTagName('script')[0];
3172	firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
3173	window.YTIframeApiLoaded = true;
3174}
3175
3176if(!window["onYouTubeIframeAPIReady"] || typeof(window["onYouTubeIframeAPIReady"]) != "function"){
3177	window.onYouTubeIframeAPIReady = function(){
3178		window.YTIframeApiready = true;
3179	};
3180}
3181
3182var player=null;
3183
3184function stopVideo() {
3185	try{
3186		player.stopVideo();
3187	}
3188	catch(exc){
3189	}
3190}
3191
3192
3193(function ( $ ) {
3194	$.fn.YouTubeVideoPlayer = function( options ) {
3195		// This is the easiest way to have default options.
3196			var settings = $.extend({
3197			// These are the defaults.
3198			videoID: "",
3199			closeVideoCallback:null
3200			}, options );
3201				
3202			var videoHeight = "100%";
3203			var videoWidth = "100%";
3204			
3205			this.append("<div class=\"close-video bnl-icon-no\"></div>");
3206			this.append("<div class=\"video-player\"></div>");
3207			
3208			$(".close-video").click(function(event){
3209
3210				event.preventDefault();
3211				  
3212				$(".video-player").remove();
3213				$(this).remove();
3214				
3215				try{
3216					settings.closeVideoCallback();
3217				}
3218					catch(exc){
3219				}
3220			});
3221			
3222			//   This function creates an <iframe> (and YouTube player)
3223			//   after the API code downloads.
3224			
3225			var player = new YT.Player(this.children(".video-player").get(0), {
3226				height: videoHeight,
3227				width: videoWidth,
3228				videoId: settings.videoID,
3229				playerVars: {
3230					wmode: "transparent"
3231				},
3232				events: {
3233					'onReady': function (event) {
3234					  event.target.playVideo();
3235					},
3236					'onStateChange': function (event) {
3237							if (event.data == YT.PlayerState.PLAYING && true) {
3238							setTimeout(stopVideo, 6000);
3239						}
3240					}
3241				}
3242			});			
3243		};
3244}( jQuery ));
3245
3246
3247
3248
3249
3250var uniqID = {
3251   counter:0,
3252   get:function(prefix) {
3253       if(!prefix) {
3254           prefix = "uniqid";
3255       }
3256       var id =  prefix+""+ uniqID.counter++;
3257       if(jQuery("."+id).length == 0)
3258           return id;
3259       else
3260           return  uniqID.get();
3261   }
3262};
3263
3264
3265(function ( $ ) {
3266	$.fn.CarouselWrap = function( options ) {
3267		// This is the easiest way to have default options.
3268			var settings = $.extend({
3269			// These are the defaults.
3270				interval: 1000,
3271				slidesClass:""
3272			}, options );
3273			
3274			
3275			var countainerUniqueClass = uniqID.get();
3276			
3277			//Preparing carousel container
3278			$(this).addClass("carousel slide "+ countainerUniqueClass);
3279			$(this).append("<div class=\"carousel-inner\"></div>");
3280	
3281			//preparing slides
3282			$(settings.slidesClass).addClass("item");
3283			$(settings.slidesClass).first().addClass("active");
3284
3285
3286			//Appending slides to carousel inner
3287			$(this).children(".carousel-inner").append($(settings.slidesClass));
3288			
3289			
3290			//Appending indicators to carousel container
3291			
3292			$(this).append("<ol class=\"carousel-indicators\"></ol>");
3293
3294			$(this).children(".carousel-inner").first().children($(settings.slidesClass)).each(function( index ) {
3295			  
3296				$("."+countainerUniqueClass).children("ol.carousel-indicators").append(
3297					"<li data-target=\"."+countainerUniqueClass+"\" data-slide-to=\""+index+"\"></li>");
3298			});
3299
3300			$(this).children("ol.carousel-indicators").children("li").first().addClass("active");
3301
3302
3303			//Starting carousel
3304			$(this).carousel(
3305			{
3306			  interval: settings.interval
3307			});		
3308		};
3309}( jQuery ));
3310
3311
3312function carouselSetup($) {
3313	var indicators = '';
3314	
3315	//Move the slides and select the active element
3316	$(".carousel-item").appendTo(".carousel-inner");
3317	$(".carousel-item:first").addClass("active");
3318
3319	//Generate the indicators
3320	for(i=0; i < $(".carousel-item").length; i++)
3321		indicators += '<li class="carousel-indicator" data-target="' + "#myCarousel" + '" data-slide-to="' + i + '"></li>';
3322
3323	//Add the indicators
3324	$(".carousel-indicators").html(indicators);
3325	$(".carousel-indicator:first").addClass("active");
3326
3327	//Register the swipe events
3328	//$("#myCarousel").on( "swiperight", function() { $("#myCarousel").carousel('prev'); } );
3329	//$("#myCarousel").on( "swipeleft", function() { $("#myCarousel").carousel('next'); } );
3330
3331	$("#myCarousel").on( "swiperight", function() { $("#myCarousel").carousel('prev'); } );
3332	$("#myCarousel").on( "swipeleft", function() { $("#myCarousel").carousel('next'); } );
3333
3334	$("#myCarousel").swiperight(function() { $("#myCarousel").carousel('prev'); });
3335	$("#myCarousel").swipeleft(function() { $("#myCarousel").carousel('next'); }); 
3336
3337	//Set the timing
3338	
3339	$("#myCarousel").carousel({ interval: 5000 });
3340    $("#myCarousel").carousel('cycle');
3341}
3342
3343//$( document ).ready(carouselSetup); FIXME removed - computed in HTL
3344// Carousel Apply function
3345
3346function applyCarousel() {
3347	var garbageInitializedCarouselIds = [];
3348	var toCarouselizeIds = [];
3349	
3350	$(".carosello:not(.initialized)").each(function( index ) {
3351		var carouselContentId = $(this).attr("id");
3352		garbageInitializedCarouselIds.push(carouselContentId);
3353		toCarouselizeIds.push(carouselContentId);
3354		$(this).addClass("initialized");
3355	});
3356	
3357	$.each(toCarouselizeIds, function( index, value ) {
3358		var carouselContents = $("#"+value);
3359		
3360		carouselContents.after("<div class=\"carousel-container\"></div>");
3361		
3362		carouselContents.next(".carousel-container").CarouselWrap({
3363			interval: 5000,
3364			slidesClass:"#"+value+" .slide-container .carousel-item"
3365		});
3366		
3367		/**** Attaching video ****/
3368		carouselContents.next(".carousel-container").find(".video-module .c2a-wrapper a").click(function(event){
3369			event.preventDefault();
3370			
3371			thisObject=$(this);
3372			
3373			thisObject.parents(".carousel-container").carousel('pause');
3374			thisObject.parents(".carousel-container.carousel.slide").css('z-index','9999');
3375			$('.carousel-container .carousel-indicators').css('z-index','0');
3376			
3377			var videoCode = thisObject.attr('href').split("/").pop();
3378			
3379			var videoContainer=thisObject.parents(".video-module").children(".video-container");
3380			videoContainer.height("100%");
3381			
3382			videoContainer.YouTubeVideoPlayer({
3383				videoID:videoCode,
3384				closeVideoCallback: function() {
3385					videoContainer.height(0);
3386					thisObject.parents(".carousel-container").carousel('cycle');
3387					thisObject.parents(".carousel-container.carousel.slide").css('z-index','0');
3388					$('.carousel-container .carousel-indicators').css('z-index','15');
3389				}
3390			});
3391		});
3392		/*************************/
3393		
3394		/************ Swipe **************/
3395		carouselContents.next(".carousel-container").on( "swiperight", function() { 
3396			$(this).carousel('prev'); 
3397		});
3398		
3399		carouselContents.next(".carousel-container").on( "swipeleft", function() { 
3400			$(this).carousel('next'); 
3401		});
3402		
3403		carouselContents.next(".carousel-container").swiperight(function() { 
3404			$(this).carousel('prev'); 
3405		});
3406		
3407		carouselContents.next(".carousel-container").swipeleft(function() {
3408			$(this).carousel('next'); 
3409		}); 
3410
3411		/*************************/
3412		
3413		
3414		carouselContents.next(".carousel-container").addClass("initialized");
3415	});
3416	
3417	$.each(garbageInitializedCarouselIds, function( index, value ) {
3418		$("#"+value).remove();
3419	});
3420}
3421$( document ).ready(function() {
3422		try{
3423			applyCarousel();
3424		}catch(exc){
3425			//Do Nothing
3426		}
3427	});
3428
3429var tileCode = "<div item-id=\"8\" class=\"item tile {tile-classes}\"> <div class=\"tile_body full_tile ng-scope\"> <div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/sample_tennis1.jpg');\"></div> <div class=\"tileLogo\"></div> <div class=\"caption\"> <div class=\"title ng-binding\">Tennis</div> <div class=\"content ng-binding\"></div> </div> </div></div><div item-id=\"5\" class=\"item tile {tile-classes}tennis \"> <div class=\"tile_body full_tile ng-scope\"> <div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/sample_tennis1.jpg');\"></div> <div class=\"tileLogo\"></div> <div class=\"caption\">  <div class=\"title ng-binding\">Internazionali di Tennis vinti da Marco Scarsella</div>  <div class=\"content ng-binding\">Grande successo dell evento se l è giocata molto molto bene</div> </div> </div></div><div item-id=\"7\" class=\"item tile {tile-classes}\"> <div class=\"tile_body full_tile ng-scope\"> <div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/sample_tennis1.jpg');\"></div> <div class=\"tileLogo\"></div> 	<div class=\"caption\"> <div class=\"title ng-binding\">Tennis</div> <div class=\"content ng-binding\"></div> 	</div> </div></div><div item-id=\"6\" class=\"item tile {tile-classes}\"> <div class=\"tile_body full_tile ng-scope\"> <div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/sample_tennis1.jpg');\"></div> <div class=\"tileLogo\"></div> <div class=\"caption\"> 	<div class=\"title ng-binding\">Tennis</div> 	<div class=\"content ng-binding\"></div> </div> </div></div> <div item-id=\"4\" class=\"item tile {tile-classes}\"><div class=\"tile_body full_tile ng-scope\">	<div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/mestiere-impresa.jpg');\"></div>	<div class=\"tileLogo\"></div>	<div class=\"caption\">		<div class=\"title ng-binding\">Mestiere e Impresa</div>		<div class=\"content ng-binding\"></div>	</div></div></div><div item-id=\"3\" class=\"item tile {tile-classes}\"> <div class=\"tile_body full_tile ng-scope\"> <div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/mestiere-impresa.jpg');\"></div> <div class=\"tileLogo\"></div> 	<div class=\"caption\"> <div class=\"title ng-binding\">Mestiere e Impresa</div> <div class=\"content ng-binding\"></div> 	</div> </div></div><div item-id=\"2\" class=\"item tile {tile-classes} ng-hide\"> <div class=\"tile_body full_tile ng-scope\"> 	<div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/we-love-cinema.jpg');\"></div> 	<div class=\"tileLogo\"></div> 	<div class=\"caption\"> <div class=\"title ng-binding\">Titlolo</div> <div class=\"content ng-binding\"></div> 	</div> </div></div><div item-id=\"1\" class=\"item tile {tile-classes} ng-hide\"> <div class=\"tile_body full_tile ng-scope\"> 	<div class=\"bg\" style=\"background-image: url('/rsc/contrib/image/bnl-public/lateral-contents/we-love-cinema.jpg');\"></div> 	<div class=\"tileLogo\"></div> 	<div class=\"caption\"> <div class=\"title ng-binding\">Titlolo</div> <div class=\"content ng-binding\"></div> 	</div> </div></div>";
3430
3431function generateTiles(items, containerSize) {
3432	var tileHTML = '';
3433	var lateralContents = $('.lateral_contents');
3434	var tileSize = 'col-xl-6 col-lg-12 col-md-12 col-sm-12';
3435
3436	if(lateralContents.hasClass('col-xl-3'))
3437		tileSize = 'col-xl-12 col-lg-12 col-md-12 col-sm-12';
3438
3439	for(var i = 0; i < items.length; i++) {
3440		tileHTML = applyTileTemplate(items[i], tileSize);
3441
3442		if(i > containerSize.lg)
3443			tileHTML = tileHTML.replace(tileSize, tileSize + " d-xl-none");
3444
3445		if(i > containerSize.md)
3446			tileHTML = tileHTML.replace(tileSize, tileSize + " d-lg-none");
3447
3448		if(i > containerSize.sm)
3449			tileHTML = tileHTML.replace(tileSize, tileSize + " d-md-none");
3450
3451		document.write(tileHTML);
3452	}
3453
3454	console.log(containerSize);
3455}
3456
3457function isExternalLink(tileURL) {
3458	containsHttp = tileURL.indexOf('http:') > 0;
3459	containsHttps = tileURL.indexOf('https:') > 0;
3460
3461	return containsHttp || containsHttps;
3462}
3463
3464function applyTileTemplate(item, tileSize) {
3465	
3466	//Caption
3467	var tileHTMLCaptionTitle = "<div class=\"title\">" + item.title + "</div>";
3468	var tileHTMLCaptionDescription = "<div class=\"content\">" + item.desc + "</div>";
3469	var tileHTMLCaption = "<div class=\"caption\">" + tileHTMLCaptionTitle + tileHTMLCaptionDescription + "</div>";
3470
3471	//Logo
3472	var tileHTMLLogo = "<div class=\"tileLogo\"></div>";
3473
3474	//Background
3475	var tileHTMLBackground = "<img class=\"bg\" src=\"" + item.img + "\" alt=\"" + item.imgalt + "\">";
3476
3477	//Tile Body
3478	var tileHTMLBody = "<div class=\"tile_body full_tile\">" + tileHTMLBackground + tileHTMLLogo + tileHTMLCaption + "</div>";
3479
3480	//Tile Wrapper
3481	var externalLink = isExternalLink(item.url) ? ' target="_blank"' : '';
3482	var tileHTMLWrapper = "<a" + externalLink + " href=\"" + item.url + "\" title=\"" + item.title + "\" onclick=\"trackCode('" + item.trackingcode + "')\" class=\"item tile " + item.cat + " " + tileSize + "\">" + tileHTMLBody + "</a>";
3483
3484
3485	return tileHTMLWrapper;
3486}
3487$( document ).ready(function() {
3488	$(".video-module .c2a-wrapper a").click(function(event){
3489		event.preventDefault();
3490		if(OptanonActiveGroups && !OptanonActiveGroups.match(/[^,]+/g).includes("ITA04")){
3491			console.log("Cookies not accepted.");
3492		} else {
3493			var videoCode = $(this).attr('href').split("/").pop();
3494			
3495			var videoContainer=$(this).parents(".video-module").children(".video-container");
3496			videoContainer.height("100%");
3497			$(this).parents(".carousel-container.carousel.slide").css('z-index','9999');
3498			$(this).parents(".image-text-c2a-module.video-module").addClass('in-execution');
3499			
3500			videoContainer.YouTubeVideoPlayer(
3501			{
3502				videoID:videoCode,
3503				closeVideoCallback: function() {
3504					videoContainer.height(0);
3505					$(".carousel-container.carousel.slide").css('z-index','0');
3506					$(".image-text-c2a-module.video-module.in-execution").removeClass('in-execution');
3507				}
3508			
3509			});
3510		}
3511	});
3512});
3513
3514
3515
3516
3517$(document).ready(function() {
3518	
3519	$("#contatti-btn-new").click(function(){
3520		showContattiModal(HeaderConfig.MainMenu.dynamic.link);
3521	});
3522
3523	var screenHeight=screen.height;
3524	var screenWidth=screen.width;
3525	var windowInnerHeight = window.innerHeight;
3526	if(screenWidth<=500){
3527		document.querySelector("#contatti-modal-container .modal-content-triangle > div").addEventListener("click", function(){
3528			document.getElementById('#modal-contatti-overlay').modal('toggle');
3529		})
3530	}
3531	
3532	var userAgent = navigator.userAgent;
3533	var isMobile = userAgent.indexOf('Mobile')!=-1;
3534	var isIPhone = userAgent.indexOf('iPhone')!=-1;
3535
3536	/*Se è uno schermo piccolo */
3537	
3538	if(windowInnerHeight>=500 && windowInnerHeight<=800 && !isMobile){
3539		$("#contatti-modal-container .box-iframe").css({
3540			'height':windowInnerHeight*0.70
3541		});
3542		$("#contatti-modal-container .iframe-shadow").css({
3543			'height':windowInnerHeight*0.70
3544		});
3545	}
3546	
3547	/*Se è un mobile ma non è iPhone */
3548	
3549	else if(isMobile && !isIPhone){
3550		$("#contatti-modal-container .box-iframe").css({
3551			'height':windowInnerHeight*0.80
3552		});
3553		$("#contatti-modal-container .iframe-shadow").css({
3554			'height':windowInnerHeight*0.80
3555		});
3556	}	
3557	
3558	/*Se è un iPhone*/
3559	
3560	else if(isIPhone){
3561		$("#contatti-modal-container .box-iframe").css({
3562			'height':'1100px'
3563		});
3564		$("#contatti-modal-container .iframe-shadow").css({
3565			'height':'1100px'
3566		});
3567    }
3568});
3569
3570function linkContatti(){
3571	showContattiModal(HeaderConfig.MainMenu.dynamic.link);
3572}
3573/* 
3574*   SiteFactory Common JS
3575*/
3576if (typeof (sfCookieErrorPage) != "undefined") {
3577	if (!navigator.cookieEnabled && (window.location.href.indexOf(sfCookieErrorPage) < 0)) {
3578		sanitizeValue(sfSiteId);
3579		sanitizeValue(sfCookieErrorPage);
3580		sanitizeValue(sfAxes1);
3581		sanitizeValue(sfAxes2);
3582		sanitizeValue(sfAxes3);
3583		sanitizeValue(sfAxes4);
3584		window.location = window.location.protocol + "//" + window.location.host + "/sites/" + sfSiteId + "/" + sfCookieErrorPage + "?axes1=" + sfAxes1 + "&axes2=" + sfAxes2 + "&axes3=" + sfAxes3 + "&axes4=" + sfAxes4;
3585	}
3586}
3587
3588function sanitizeValue(value) {
3589	if (value) {
3590		var sanitizedValue = value.replace(/[<>&!\n\r\\]/g, "");
3591		return sanitizedValue;
3592	}
3593}
3594
3595var navigationConfig = {};
3596
3597
3598/* setup config for site "HOME BANKING BNL"  */ 
3599navigationConfig['bnl-private'] = {};
3600navigationConfig['bnl-private'][window.top.location.pathname] = {
3601
3602		// GESTIONE DELLA SESSIONE - INDIRIZZAMENTO ALLA HOME PAGE AREA PRIVATA
3603		"cci.wcm.session.expired":"/it/homepage",
3604
3605		// Gestione del nuovo Order Book in popup
3606		"cci.marketdata.snapshot.header.openOrderbookPopup":"/it/home/navigation/trading/md/orderbookpopup",
3607		"cci.marketdata.overview.orderBook":"/it/home/navigation/trading/md/orderbookpopup",
3608	    "cci.marketdata.txSnapshotHeader.openOrderbookPopup":"/it/home/navigation/trading/md/orderbookpopup",
3609		
3610		
3611		//***********************************************************************************************
3612		//*** Nuovi eventi inserito fino alla 3.12                                  *********************
3613		//***********************************************************************************************
3614		"cci.marketdata.bondsmarketoverview.interestRatesOverview":"/it/home/navigation/trading/md/interestratesmarketoverview",		
3615		"cci.marketdata.bondsSearch.pickSecurity":"/it/home/navigation/trading/md/snapsh
3615ot",
3616		//4.4.0 ALESSANDRO
3617		"cci.marketdata.certificatesSearch.empty":"/it/home/navigation/trading/md/searchcertificates",
3618		
3619		//Certificates Market Overview
3620		"cci.marketdata.certificatesOverview.certificatesMostTraded.show.certificates":"/it/home/navigation/trading/md/certificatestopflop",
3621		
3622		//wcCertificatesSearch 
3623		"cci.marketdata.certificatesSearch.Categories":"/it/home/navigation/trading/md/categorysearchresult", 
3624		"cci.marketdata.certificatesSearch.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3625		
3626		//wcCertificatesTopFlop 
3627		"cci.marketdata.certificatesTopFlopList.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3628		
3629		//GLOBAL MARKET OVERVIEW
3630		"cci.marketdata.overview.certificatesMostTraded.show.certificates":"/it/home/navigation/trading/md/certificatesmarketoverview",
3631		"cci.marketdata.overview.certificatesMostTraded.show.trackers":"/it/home/navigation/trading/md/trackersmarketoverview",
3632		"cci.marketdata.overview.analystOpinion.more":"/it/home/navigation/trading/md/consensus",
3633		"cci.marketdata.overview.pickScreener":"/it/home/navigation/trading/md/screeneranalysis",
3634		"cci.marketdata.overview.analysisScreener.show":"/it/home/navigation/trading/md/screenersearch",
3635		
3636		//CONSENSUS
3637		"cci.marketdata.consensus.analystOpinion":"/it/home/navigation/trading/md/analystopinion", 
3638		"cci.marketdata.consensus.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3639		
3640		//Screener Search
3641		"cci.marketdata.screenerSearch.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3642		
3643		//SNAPSHOT
3644		"cci.marketdata.snapshot.certificates":"/it/home/navigation/trading/md/searchcertificates",
3645		"cci.marketdata.snapshot.header.selectScreener":"/it/home/navigation/trading/md/screeneranalysis",
3646		
3647		//BONDS MOST TRADED 
3648		"cci.marketdata.bondsmarketoverview.bondsMostTraded.show":"/it/home/navigation/trading/md/bondsmosttraded",
3649		"cci.marketdata.bondsMostTraded.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3650
3651		
3652		//***********************************************************************************************
3653		//***********************************************************************************************
3654		//***********************************************************************************************
3655		
3656		// BondsProfile
3657		"cci.marketdata.bondsProfile.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3658		
3659		// categorySearchResult
3660		"cci.marketdata.categorySearchResult.pickSecurity.search":"/it/home/navigation/trading/md/snapshot", 
3661		"cci.marketdata.categorySearchResult.pickSecurity.historicChart":"/it/home/navigation/trading/md/historicchart", 
3662		// ALESSANDRO SEGNALAZIONE CONTI
3663		"cci.marketdata.categorySearchResult.pickSecurity.searchSecurityForWL":"/it/home/navigation/trading/md/snapshot", 
3664		"cci.marketdata.categorySearchResult.cancel.txSearch":"/it/home/navigation/trading",
3665		"cci.marketdata.categorySearchResult.pickSecurity.txSearch":"/it/home/navigation/trading/tx/ordermask", 
3666		//"cci.marketdata.categorySearchResult.pickSecurity.searchSecurityForIC":"",
3667		//"cci.marketdata.categorySearchResult.pickSecurity.certificates":"",
3668		//"cci.marketdata.categorySearchResult.pickSecurity.levproducts":"",
3669		//"cci.marketdata.categorySearchResult.cancel.txSearch":"it/home/navigation/trading",
3670		"cci.marketdata.categorySearchResult.cancel.historicChart":"/it/home/navigation/trading/md/historicchart",
3671		//"cci.marketdata.categorySearchResult.cancel.watchlistSearch":"",
3672		//"cci.marketdata.categorySearchResult.cancel.certificates":"",
3673	    //"cci.marketdata.categorySearchResult.cancel.levproducts":"",
3674				"cci.marketdata.categorySearchResult.searchSecurityForWL":"/it/home/navigation/trading/md/watchlist",
3675		"cci.marketdata.categorySearchResult.addToWatchlist":"/it/home/navigation/trading/md/watchlist",
3676		
3677		//4.4.0 ALESSANDRO
3678		"cci.marketdata.categorySearchResult.cancel.searchSecurityForIC":"/it/home/navigation/trading/md/categorysearchresult",
3679		
3680		// CertificatesMarketOverview
3681		"cci.marketdata.certificatesOverview.displayChart":"/it/home/navigation/trading/md/historicchart",
3682   		"cci.marketdata.certificatesOverview.pickSecurity":"/it/home/navigation/trading/md/snapsh
3682ot",
3683    	"cci.marketdata.certificatesOverview.certificatesTopFlop.show":"/it/home/navigation/trading/md/certificatestopflop",
3684		"cci.marketdata.certificatesOverview.mostTraded.show":"/it/home/navigation/trading/md/certificatestopflop",
3685		"cci.marketdata.certificatesOverview.mostTraded.showFilteredByCertificateType" : "/it/home/navigation/trading/md/certificatestopflop",
3686
3687
3688       //Certificates Profile
3689		"cci.marketdata.certificatesProfile.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3690		
3691		//Certificates Search
3692		//"cci.marketdata.certificatesSearch.Categories":"",
3693		//"cci.marketdata.certificatesSearch.pickSecurity":"",
3694		
3695		// Chart Analisys
3696		"cci.marketdata.chartAnalysis.show":"/it/home/navigation/trading/md/chartanalysis", 
3697    
3698    //Chart Analysis Overview
3699    	"cci.marketdata.chartAnalysisOverview.chartAnalysis.show":"/it/home/navigation/trading/md/chartanalysis",
3700   		"cci.marketdata.chartAnalysisOverview.changeFilter":"/it/home/navigation/trading/md/chartanalysisoverview",
3701			
3702		//Commoditiesmarketoverview
3703		"cci.marketdata.commoditiesmarketoverview.displayChart":"/it/home/navigation/trading/md/historicchart",
3704		"cci.marketdata.commoditiesmarketoverview.pickSecurity":"/it/home/navigation/trading/md/snapshot", 
3705	  
3706	  //Company Profile
3707		"cci.marketdata.companyProfile.switchcompanyProfileTabs":"/it/home/navigation/trading/md/companyprofile",
3708		"cci.marketdata.stocksProfile.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3709		
3710	  // CurrenciesMarketOverview
3711		"cci.marketdata.currenciesOverview.displayChart":"/it/home/navigation/trading/md/historicchart",  
3712		"cci.marketdata.currenciesOverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3713		
3714		// FundsMarketOverview
3715		"cci.marketdata.fundsmarketOverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3716		"cci.marketdata.fundsmarketOverview.topPerformerDetails.show":"/it/home/navigation/trading/md/fundstopperformer",
3717		
3718		// Funds Search
3719		"cci.marketdata.search.fundsSearch.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3720		
3721		// FundsTopPerformer
3722		"cci.marketdata.fundsTopPerformer.pickSecurity" : "/it/home/navigation/trading/md/snapshot",
3723		
3724		// FuturesOverview
3725		"cci.marketdata.futuresOverview.pickSecurity" : "/it/home/navigation/trading/md/snapshot",
3726		
3727		// GlobalMarketOverview
3728		"cci.marketdata.overview.pickSecurity":"/it/home/navigation/trading/md/snapshot", 
3729		"cci.marketdata.overview.stocksOverview":"/it/home/navigation/trading/md/stocksmarketoverview", 
3730		"cci.marketdata.overview.commoditiesOverview":"/it/home/navigation/trading/md/commoditiesmarketoverview",
3731		"cci.marketdata.overview.currenciesOverview":"/it/home/navigation/trading/md/currenciesmarketoverview",
3732		"cci.marketdata.overview.interestRatesOverview":"/it/home/navigation/trading/md/interestratesmarketoverview",
3733		"cci.marketdata.overview.stocksInternationalIndices": "/it/home/navigation/trading/md/stocksinternationalindices",
3734		"cci.marketdata.overview.showMoreNews":"/it/home/navigation/trading/md/globalnews", 
3735		"cci.marketdata.overview.watchlist.show":"/it/home/navigation/trading/md/watchlist",
3736		"cci.marketdata.overview.displayChart":"/it/home/navigation/trading/md/historicchart", 
3737		"cci.marketdata.overview.stocksTopFlop.show":"/it/home/navigation/trading/md/listni", 	   
3738		"cci.marketdata.overview.certificatesMostTraded.show":"/it/home/navigation/trading/md/certificatestopflop",
3739		"cci.marketdata.overview.worldIndices.show":"/it/home/navigation/trading/md/stocksinternationalindices",
3740		"cci.marketdata.overview.fundsTopPerformer.show":"/it/home/navigation/trading/md/fundstopperformer",
3741		"cci.marketdata.overview.chartAnalysisOverview":"/it/home/navigation/trading/md/chartanalysisoverview",
3742				
3743		"cci.marketdata.overview.chartAnalysis.show" : "/it/home/navigation/trading/md/chartanalysis",
3744		"cci.marketdata.overview.analystOpinion.show" : "/it/home/navigation/trading/md/analystopinion", 
3745		//"cci.marketdata.overview.analysisScreener.show":"/it/home/navigation/trading/md/screeneranalysis",
3746		
3747		
3748		
3749		// modifiche 14maggio
3750		
3751		"cci.marketdata.overview.leverageMostTraded.show":"/it/home/navigation/trading/md/leveragemarketoverview",
3752		//M6
3753		"cci.marketdata.overview.globalMarket": "/it/home/navigation/trading/md/stocksmarketoverview",
3754				
3755		//HistoricChart
3756		"cci.marketdata.historicChart.Categories":"/it/home/navigation/trading/md/categorysearchresult", 
3757		"cci.marketdata.historicChart.interactiveCharts.load":"/it/home/navigation/trading/md/interactivechart",
3758		"cci.marketdata.historicChart.interactiveChartApplet.load":"/it/home/navigation/trading/md/interactivechartapplet",
3759		
3760		// 4.4.0 ALESSANDRO
3761		//"cci.marketdata.instrumentComparison.empty":""
3762		
3763		//InteractiveCharts
3764		"cci.marketdata.interactiveCharts.interactiveChartApplet.load":"/it/home/navigation/trading/md/interactivechartapplet",
3765		
3766		//interestRatesMarketOverview
3767		"cci.marketdata.interestRatesMarketOverview.pickSecurity":"/it/home/navigation/trading/md/snapsh
3767ot",
3768		
3769		//LastIssuedWarrants
3770		"cci.marketdata.lastIssuedWarrants.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3771		
3772		//leverageCalculator
3773		"cci.marketdata.leverageCalculator.calculateScenerios":"/it/home/navigation/trading/md/leverageCalculator",
3774		// Leveragemarketoverview
3775		"cci.marketdata.leveragemarketoverview.displayChart":"/it/home/navigation/trading/md/historicchart",
3776		"cci.marketdata.leveragemarketoverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3777
3778		
3779		//leverageProfile
3780		"cci.marketdata.leverageProfile.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3781		//4.4.0 ALESSANDRO 
3782		//"cci.marketdata.leveragesSearch.empty":""
3783		
3784		//leveragesSearch
3785
3786		
3787		// News
3788		"cci.marketdata.news.showMoreNews" : "/it/home/navigation/trading/md/news",
3789		
3790		// Quotation
3791		"cci.marketdata.quotation.switchTabs" : "/it/home/navigation/trading/md/quotation",
3792		"cci.marketdata.quotation.changeFilter" : "/it/home/navigation/trading/md/quotation",
3793		"cci.marketdata.quotation.showMore" : "/it/home/navigation/trading/md/quotation",
3794
3795		// Screener Analysis
3796		"cci.marketdata.stocksScreenerAnalysis.showstocksScreener":"/it/home/navigation/trading/md/screeneranalysis",
3797		
3798		// Search
3799		"cci.marketdata.search.DirectHit":"/it/home/navigation/trading/md/snapshot",
3800		"cci.marketdata.search.Categories":"/it/home/navigation/trading/md/categorysearchresult",
3801		"cci.marketdata.search.empty":"/it/home/navigation/trading/md/categorysearchresult",
3802	
3803	  //securitiesNews
3804		"cci.marketdata.securitiesNews.showMoreNews":"/it/home/navigation/trading/md/securitiesNews",
3805
3806		// SmartStopsDetails
3807
3808		
3809		// Snapshot
3810		"cci.marketdata.snapshot.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3811		"cci.marketdata.snapshot.displayChart": "/it/home/navigation/trading/md/historicchart",
3812		"cci.marketdata.snapshot.analystOpinion.show":"/it/home/navigation/trading/md/analystopinion",  
3813		"cci.marketdata.snapshot.chartAnalysis.show":"/it/home/navigation/trading/md/chartanalysis",
3814		"cci.marketdata.snapshot.smartStops.show":"/it/home/navigation/trading/md/smartstopsdetails",
3815		"cci.marketdata.snapshot.showMoreNews":"/it/home/navigation/trading/md/news",	
3816        "cci.marketdata.snapshot.news.showMore":"/it/home/navigation/trading/md/news",
3817        "cci.marketdata.snapshot.stocksTopFlop.show":"/it/home/navigation/trading/md/listni",
3818		"cci.marketdata.snapshot.showbondsProfile":"/it/home/navigation/trading/md/bondsprofile",
3819		"cci.marketdata.snapshot.showfundsProfile":"/it/home/navigation/trading/md/fundsprofile",
3820		"cci.marketdata.snapshot.showtrackersProfile":"/it/home/navigation/trading/md/trackersprofile",
3821		"cci.marketdata.snapshot.showstocksProfileV7":"/it/home/navigation/trading/md/companyprofile",
3822		"cci.marketdata.snapshot.quotation.show":"/it/home/navigation/trading/md/quotation",
3823		
3824	  // Snapshot header
3825		"cci.marketdata.snapshot.header.changeExchange":"/it/home/navigation/trading/md/snapshot",
3826		"cci.marketdata.snapshot.header.showstocksScreener":"/it/home/navigation/trading/md/screeneranalysis",
3827		"cci.marketdata.snapshot.header.fastTrade.placeOrder":{ url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3828		"cci.marketdata.snapshot.header.addSecuritiesToWatchlist":"/it/home/navigation/trading/md/watchlist",
3829		
3830		// StocksIndustryIndices
3831		"cci.marketdata.stocksIndustryIndices.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3832		
3833		// StocksInternationalIndices
3834		"cci.marketdata.stocksInternationalIndices.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3835		
3836		// Stocksmarketoverview
3837		"cci.marketdata.stocksmarketoverview.displayChart": "/it/home/navigation/trading/md/historicchart",
3838		"cci.marketdata.stocksmarketoverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3839		"cci.marketdata.stocksmarketoverview.worldIndices.show":"/it/home/navigation/trading/md/stocksinternationalindices",
3840		"cci.marketdata.stocksmarketoverview.stocksTopFlop.show":"/it/home/navigation/trading/md/listni", 
3841		"cci.marketdata.stocksmarketoverview.chartAnalysis.show":"/it/home/navigation/trading/md/chartanal
3841ysis",
3842		"cci.marketdata.stocksmarketoverview.analystOpinion.show":"/it/home/navigation/trading/md/analystopinion",
3843		"cci.marketdata.stocksmarketoverview.analystOpinion.more":"/it/home/navigation/trading/md/consensus",
3844		"cci.marketdata.stocksmarketoverview.analysisScreener.show":"/it/home/navigation/trading/md/screenersearch",
3845		"cci.marketdata.stocksmarketoverview.showMoreNews":"/it/home/navigation/trading/md/globalnews",
3846		"cci.marketdata.stocksmarketoverview.chartAnalysisOverview":"/it/home/navigation/trading/md/chartanalysisoverview",
3847		"cci.marketdata.stocksmarketoverview.stocksInternationalIndices":"/it/home/navigation/trading/md/stocksinternationalindices",
3848		"cci.marketdata.stocksmarketoverview.stocksOverview": "/it/home/navigation/trading/md/stocksmarketoverview", 
3849		 "cci.marketdata.stocksmarketoverview.pickScreener": "/it/home/navigation/trading/md/screeneranalysis", 
3850		
3851		// Bonds Market Overview
3852		"cci.marketdata.bondsmarketoverview.showMoreNews":"/it/home/navigation/trading/md/globalnews",
3853		"cci.marketdata.bondsmarketoverview.displayChart": "/it/home/navigation/trading/md/historicchart",
3854		"cci.marketdata.bondsmarketoverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3855				
3856		//stocksSearch
3857		"cci.marketdata.stocksSearch.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3858		
3859		// StocksTopFlop
3860		//"cci.marketdata.stocksTopFlop.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3861		//"cci.marketdata.stocksTopFlop.displayChart":"/it/home/navigation/trading/md/historicchart",
3862		
3863		//stockList (listini)
3864		"cci.marketdata.stocksList.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3865		"cci.marketdata.stocksList.displayChart":"/it/home/navigation/trading/md/historicchart",
3866		"cci.marketdata.stocksList.addSecuritiesToWatchlist":"/it/home/navigation/trading/md/watchlist",
3867		"cci.marketdata.stocksList.openOrderbookPopup":"/it/home/navigation/trading/md/orderbookpopup",
3868		"cci.marketdata.stocksList.placeOrder":{ url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3869				
3870		// Trackersmarketoverview
3871		"cci.marketdata.trackersmarketoverview.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3872		"cci.marketdata.trackersmarketoverview.displayChart":"/it/home/navigation/trading/md/historicchart",
3873		"cci.marketdata.trackersmarketoverview.trackersTopFlop.show":"/it/home/navigation/trading/md/trackerstopflop",
3874		"cci.marketdata.trackersmarketoverview.trackersMostTraded.show":"/it/home/navigation/trading/md/trackerstopflop",
3875		
3876		//trackersSearch
3877		"cci.marketdata.search.trackersSearch.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3878		
3879		// TrackersTopFlop
3880		"cci.marketdata.trackersTopFlop.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3881		"cci.marketdata.trackersTopFlop.showMore":"/it/home/navigation/trading/md/trackerstopflop",
3882		"cci.marketdata.trackersTopFlop.none":"",
3883		
3884		// TxSnapshot
3885		"cci.marketdata.txSnapshot.displayChart":"/it/home/navigation/trading/md/historicchart",
3886		
3887		// Watchlist
3888		
3889		"cci.marketdata.watchlist.Categories":"/it/home/navigation/trading/md/categorysearchresult",
3890		"cci.marketdata.watchlist.pickSecurity":"/it/home/navigation/trading/md/snapshot",
3891		"cci.marketdata.watchlist.displayChart":"/it/home/navigation/trading/md/historicchart",
3892		"cci.marketdata.watchlist.placeOrder":"/it/home/navigation/trading/tx/ordermask",
3893		"cci.marketdata.watchlist.selectWatchlistItem":"/it/home/navigation/trading/md/watchlisteditportfolio",
3894		"cci.marketdata.watchlist.watchlistEdit":"/it/home/navigation/trading/md/watchlistedit",
3895		"cci.marketdata.watchlist.editPortfolio":"/it/home/navigation/trading/md/watchlisteditportfolio",
3896		"cci.marketdata.watchlist.alert":"",
3897		// 4.4.0 ALESSANDRO
3898		"cci.marketdata.watchlist.empty":"/it/home/navigation/trading/md/watchlist",
3899		
3900		// Watchlist Edit
3901		"cci.marketdata.watchlistEdit.cancel":"/it/home/navigation/trading/md/watchlist",
3902		"cci.marketdata.watchlistEdit.editWatchlist.jump":"/it/home/navigation/trading/md/watchlist",
3903		
3904		// Watchlist Edit Portfolio
3905		"cci.marketdata.editPortfolio.cancel":"/it/home/navigation/trading/md/watchlist", 
3906		"cci.marketdata.editPortfolio.jump":"/it/home/navigation/trading/md/watchlist",
3907		"cci.marketdata.editPortfolio.changeCurrency":"/it/home/navigation/trading/md/watchlist",
3908		
3909		/************************ Transazionali *******************************************/
3910	
3911		//accountSummary
3912		
3913		// Portfolio Detail List
3914		"cci.wcm.orderMask.quickOrder.success": { url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3915		"cci.wcm.orderMask.quickOrder.success.fund": { url: '/it/home/navigation/trading/tx/accountinformation' , messageStrategy: 'json-post'},
3916		"cci.wcm.accountSummary.realTimeRefreshed": { url: '/it/home/navigation/trading/tx/accountinformation' , messageStrategy: 'json-post'},		
3917				
3918		//orderMask
3919		"cci.wcm.orderMask.fillInOrderSuccess.success":{ url: '/it/home/navigation/trading/tx/orderpreview' , messageStrategy: 'json-post'},
3920		
3921		
3922		//"messaging.cci.wcm.orderMask.voTarifsImg.success":"",
3923		"cci.marketdata.txorder.fund":"/it/home/navigation/trading/tx/fundordermask",
3924		
3925		
3926		//orderPreview
3927		//"messaging.cci.wcm.orderMask.orderPreviewSuccess.success":"/it/home/navigation/trading/tx/orderpreview",
3928		"cci.wcm.orderMask.mifidAlertsViewSuccess.success": { url: '/it/home/navigation/trading/tx/orderconfirmation' , messageStrategy: 'json-post'},
3929		
3930		//orderConfirmation
3931		"cci.wcm.orderMask.orderConfirmation.repeatOrderInitiated": { url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3932		"cci.wcm.orderMask.orderConfirmSuccess": { url: '/it/home/navigation/trading/tx/accountinformation' , messageStrategy: 'json-post'},
3933		"cci.wcm.orderMask.orderConfirmation.myPortfolioInitiated":{ url: '/it/home/navigation/trading/tx/accountinformation' , messageStrategy: 'json-post'},
3934		"cci.wcm.orderMask.orderConfirmOrderBookInitiated":{ url: '/it/home/navigation/trading/tx/orderList' , messageStrategy: 'json-post'},
3935		"cci.wcm.fundOrderMask.cancel":{ url: '/it/home/navigation/trading/tx/accountinformation' , messageStrategy: 'json-post'},
3936		"cci.wcm.orderConfirmation.PlaceOrderInitiated": { url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3937		
3938		//orderDetailList
3939		"cci.wcm.orderDetailList.cancelOrder":{ url: '/it/home/navigation/trading/tx/cancelorder' , messageStrategy: 'json-post'},
3940		"cci.wcm.orderDetailList.orderInfoSelected":{ url: '/it/home/navigation/trading/tx/orderinfodetails' , messageStrategy: 'json-post'},
3941		"cci.wcm.orderMask.changeOrRepeatOrder":{ url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3942		
3943		//fundOrderMask
3944		"cci.wcm.fundOrderMask.fillInOrderSuccess.success":{ url: '/it/home/navigation/trading/tx/fundorderpreview' , messageStrategy: 'json-post'},
3945		
3946		//fundOrderPreview
3947		"cci.wcm.fundOrderMask.fundOrderPreview.diciSuccess":"/it/home/navigation/trading/tx/fundorderconfirmation",
3948	
3949		
3950		//placeOrder
3951		"cci.wcm.orderMask.quickOrder.success":{ url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
3952		"cci.wcm.orderMask.quickOrder.success.fund":"/it/home/navigation/trading/tx/fundordermask",
3953		"cci.marketdata.txSearch.Categories":"/it/home/navigation/trading/md/categorysearchresult",
3954		
3955		//cancelOrder
3956		"cci.wcm.cancelOrder.orderDetailList":{ url: '/it/home/navigation/trading/tx/orderList' , messageStrategy: 'json-post'},
3957		"cci.wcm.cancelOrder.cancelOrderSummary":{ url: '/it/home/navigation/trading/tx/cancelordersummary' , messageStrategy: 'json-post'},
3958		
3959		//cancelOrderSummary
3960		"cci.wcm.cancelOrderSummary.orderDetailList":{ url: '/it/home/navigation/trading/tx/orderList' , messageStrategy: 'json-post'},
3961		
3962		//* Sezione IPO */
3963		//ipoSearchResult
3964		"cci.wcm.ipoAccess.initiate":{ url: '/it/home/navigation/trading/tx/ipoordermask' , messageStrategy: 'json-post'},
3965		
3966		// BANNER MANAGEMENT
3967		"cci.wcm.ipoSearchResult.selectIPO":{ url: '/it/home/navigation/trading/tx/iposearchresult' , messageStrategy: 'json-post'},
3968					
3969		//ipoAccess
3970		"cci.wcm.ipoAccess.ipoAccessConfirmClicked":{ url: '/it/home/navigation/trading/tx/ipoorderpreview' , messageStrategy: 'json-post'},
3971		"cci.wcm.ipoAccess.ipoAccesscancelClicked":{ url: '/it/home/navigation/trading/tx/iposearchresult' , messageStrategy: 'json-post'},
3972		
3973		//ipoOrderPreview
3974		"cci.wcm.ipoOrderPerview.ipoOrderConfirm":{ url: '/it/home/navigation/trading/tx/ipoorderconfirm' , messageStrategy: 'json-post'},
3975		"cci.wcm.ipoPreview.ipoCancelClicked":{ url: '/it/home/navigation/trading/tx/iposearchresult' , messageStrategy: 'json-post'},
3976		
3977		//ipoOrderPreview
3978		"cci.wcm.ipoOrderConfirm.ipoAccessList":"iposearchresult", 
3979				
3980		
3981		// instrument menu
3982		"cci.marketdata.instrumentMenu.snapshot":"/it/home/navigation/trading/md/snapshot",
3983		"cci.marketdata.instrumentMenu.historicChart":"/it/home/navigation/trading/md/historicchart",
3984		"cci.marketdata.instrumentMenu.quotation":"/it/home/navigation/trading/md/quotation",
3985		"cci.marketdata.instrumentMenu.news":"/it/home/navigation/trading/md/news",
3986		"cci.marketdata.instrumentMenu.analystOpinion":"/it/home/navigation/trading/md/analystopinion",
3987		"cci.marketdata.instrumentMenu.screenerAnalysis":"/it/home/navigation/trading/md/screeneranalysis",
3988		"cci.marketdata.instrumentMenu.smartStopsDetails":"/it/home/navigation/trading/md/smartstopsdetails",
3989		"cci.marketdata.instrumentMenu.chartAnalysis":"/it/home/navigation/trading/md/chartanalysis",
3990		"cci.marketdata.instrumentMenu.trackersProfile":"/it/home/navigation/trading/md/trackersprofile",
3991		"cci.marketdata.instrumentMenu.leverageCalculator":"/it/home/navigation/trading/md/leverageCalculator",
3992        "cci.marketdata.instrumentMenu.stocksProfile":"/it/home/navigation/trading/md/companyprofile",
3993		"cci.marketdata.instrumentMenu.bondsProfile":"/it/home/navigation/trading/md/bondsprofile",
3994		"cci.marketdata.instrumentMenu.fundsProfile":"/it/home/navigation/trading/md/fundsprofile",
3995		"cci.marketdata.instrumentMenu.levProfile":"/it/home/navigation/trading/md/leverageprofile",
3996		"cci.marketdata.instrumentMenu.certProfile":"/it/home/navigation/trading/md/certificatesprofile",
3997		//OLD "cci.marketdata.instrumentMenu.indicesScreenerAnalysis": "/it/home/navigation/trading/md/screeneranalysis",
3998		"cci.marketdata.instrumentMenu.indicesScreenerAnalysis":"/it/home/navigation/trading/md/indicesscreeneranalysis",
3999		
4000		//clickBanner
4001		"cci.marketdata.categorySearchResultTx.pickSecurity.txSearch":{ url: '/it/home/navigation/trading/tx/ordermask' , messageStrategy: 'json-post'},
4002		
4003		"cci.marketdata.historicChart.openChartPopup": "/it/home/navigation/trading/md/historicchartfull",
4004		
4005		//INTELLIGENT ORDER
4006		"cci.wcm.orderDetailList.protectionSelected" : { url: '/it/home/navigation/trading/tx/intelligentorderdetails' , messageStrategy: 'json-post'},
4007		"cci.wcm.tpslCancel.open" : { url: '/it/home/navigation/trading/tx/cancelintelligentorder' , messageStrategy: 'json-post'}
4008
4009
4010};
4011
4012navigationConfig['hellobank-secureint'] = {};
4013navigationConfig['hellobank-secureint'][window.top.location.pathname] = {
4014
4015		// GESTIONE DELLA SESSIONE - INDIRIZZAMENTO ALLA HOME PAGE AREA PRIVATA
4016		"cci.wcm.session.expired":"/it/home",
4017
4018		// Gestione del nuovo Order Book in popup
4019		"cci.marketdata.snapshot.header.openOrderbookPopup":"/it/home/nav/il-mio-trading/md/orderbookpopup",
4020		"cci.marketdata.overview.orderBook":"/it/home/nav/il-mio-trading/md/orderbookpopup",
4021	    "cci.marketdata.txSnapshotHeader.openOrderbookPopup":"/it/home/nav/il-mio-trading/md/orderbookpopup",
4022		
4023		
4024		//***********************************************************************************************
4025		//*** Nuovi eventi inserito fino alla 3.12                                  *********************
4026		//***********************************************************************************************
4027		"cci.marketdata.bondsmarketoverview.interestRatesOverview":"/it/home/nav/il-mio-trading/md/interestratesmarketoverview",		
4028		"cci.marketdata.bondsSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4029		
4030		//Certificates Market Overview
4031		"cci.marketdata.certificatesOverview.certificatesMostTraded.show.certificates":"/it/home/nav/il-mio-trading/md/certificatestopflop",
4032		
4033		//wcCertificatesSearch 
4034		"cci.marketdata.certificatesSearch.Categories":"/it/home/nav/il-mio-trading/md/categorysearchresult", 
4035		"cci.marketdata.certificatesSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4036		//4.4.0 ALESSANDRO
4037		"cci.marketdata.certificatesSearch.empty":"/it/home/nav/il-mio-trading/md/searchcertificates",
4038		
4039		
4040		//wcCertificatesTopFlop 
4041		"cci.marketdata.certificatesTopFlopList.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4042		
4043		//GLOBAL MARKET OVERVIEW
4044		"cci.marketdata.overview.certificatesMostTraded.show.certificates":"/it/home/nav/il-mio-trading/md/certificatesmarketoverview",
4045		"cci.marketdata.overview.certificatesMostTraded.show.trackers":"/it/home/nav/il-mio-trading/md/trackersmarketoverview",
4046		"cci.marketdata.overview.analystOpinion.more":"/it/home/nav/il-mio-trading/md/consensus",
4047		"cci.marketdata.overview.pickScreener":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4048		"cci.marketdata.overview.analysisScreener.show":"/it/home/nav/il-mio-trading/md/screenersearch",
4049		
4050		//CONSENSUS
4051		"cci.marketdata.consensus.analystOpinion":"/it/home/nav/il-mio-trading/md/analystopinion", 
4052		"cci.marketdata.consensus.pickSecurity":"/it/home/nav/il-mio-trading/md/snapsh
4052ot",
4053		
4054		//Screener Search
4055		"cci.marketdata.screenerSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4056		
4057		//SNAPSHOT
4058		"cci.marketdata.snapshot.certificates":"/it/home/nav/il-mio-trading/md/searchcertificates",
4059		"cci.marketdata.snapshot.header.selectScreener":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4060		
4061		//BONDS MOST TRADED 
4062		"cci.marketdata.bondsmarketoverview.bondsMostTraded.show":"/it/home/nav/il-mio-trading/md/bondsmosttraded",
4063		"cci.marketdata.bondsMostTraded.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4064
4065		
4066		//***********************************************************************************************
4067		//***********************************************************************************************
4068		//***********************************************************************************************
4069		
4070		// BondsProfile
4071		"cci.marketdata.bondsProfile.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4072		
4073		// categorySearchResult
4074		"cci.marketdata.categorySearchResult.pickSecurity.search":"/it/home/nav/il-mio-trading/md/snapshot", 
4075		"cci.marketdata.categorySearchResult.pickSecurity.historicChart":"/it/home/nav/il-mio-trading/md/historicchart", 
4076		//"cci.marketdata.categorySearchResult.pickSecurity.searchSecurityForWL":"",
4077		"cci.marketdata.categorySearchResult.cancel.txSearch":"/it/home/nav/il-mio-trading",
4078		"cci.marketdata.categorySearchResult.pickSecurity.txSearch":"/it/home/nav/il-mio-trading/tx/ordermask", 
4079		//"cci.marketdata.categorySearchResult.pickSecurity.searchSecurityForIC":"",
4080		//"cci.marketdata.categorySearchResult.pickSecurity.certificates":"",
4081		//"cci.marketdata.categorySearchResult.pickSecurity.levproducts":"",
4082		//"cci.marketdata.categorySearchResult.cancel.txSearch":"it/home/navigation/trading",
4083		"cci.marketdata.categorySearchResult.cancel.historicChart":"/it/home/nav/il-mio-trading/md/historicchart",
4084		//"cci.marketdata.categorySearchResult.cancel.watchlistSearch":"",
4085		//"cci.marketdata.categorySearchResult.cancel.certificates":"",
4086	    //"cci.marketdata.categorySearchResult.cancel.levproducts":"",
4087		"cci.marketdata.categorySearchResult.searchSecurityForWL":"/it/home/nav/il-mio-trading/md/watchlist",
4088		"cci.marketdata.categorySearchResult.addToWatchlist":"/it/home/nav/il-mio-trading/md/watchlist",
4089		//4.4.0 ALESSANDRO
4090		"cci.marketdata.categorySearchResult.cancel.searchSecurityForIC":"/it/home/nav/il-mio-trading/md/categorysearchresult",
4091		
4092				
4093		
4094		// CertificatesMarketOverview
4095		"cci.marketdata.certificatesOverview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4096   		"cci.marketdata.certificatesOverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4097    	"cci.marketdata.certificatesOverview.certificatesTopFlop.show":"/it/home/nav/il-mio-trading/md/certificatestopflop",
4098		"cci.marketdata.certificatesOverview.mostTraded.show":"/it/home/nav/il-mio-trading/md/certificatestopflop",
4099		"cci.marketdata.certificatesOverview.mostTraded.showFilteredByCertificateType":"/it/home/nav/il-mio-trading/md/certificatestopflop",
4100
4101
4102       //Certificates Profile
4103		"cci.marketdata.certificatesProfile.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4104		
4105		//Certificates Search
4106		//"cci.marketdata.certificatesSearch.Categories":"",
4107		//"cci.marketdata.certificatesSearch.pickSecurity":"",
4108		
4109		// Chart Analisys
4110		"cci.marketdata.chartAnalysis.show":"/it/home/nav/il-mio-trading/md/chartanalysis", 
4111    
4112    //Chart Analysis Overview
4113    	"cci.marketdata.chartAnalysisOverview.chartAnalysis.show":"/it/home/nav/il-mio-trading/md/chartanalysis",
4114   		"cci.marketdata.chartAnalysisOverview.changeFilter":"/it/home/nav/il-mio-trading/md/chartanalysisoverview",
4115			
4116		//Commoditiesmarketoverview
4117		"cci.marketdata.commoditiesmarketoverview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4118		"cci.marketdata.commoditiesmarketoverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot", 
4119	  
4120	  //Company Profile
4121		"cci.marketdata.companyProfile.switchcompanyProfileTabs":"/it/home/nav/il-mio-trading/md/companyprofile",
4122		"cci.marketdata.stocksProfile.pickSecurity":"/it/home/nav/il-mio-trading/md/snapsh
4122ot",
4123		
4124	  // CurrenciesMarketOverview
4125		"cci.marketdata.currenciesOverview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",  
4126		"cci.marketdata.currenciesOverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4127		
4128		// FundsMarketOverview
4129		"cci.marketdata.fundsmarketOverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4130		"cci.marketdata.fundsmarketOverview.topPerformerDetails.show":"/it/home/nav/il-mio-trading/md/fundstopperformer",
4131		
4132		// Funds Search
4133		"cci.marketdata.search.fundsSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4134		
4135		// FundsTopPerformer
4136		"cci.marketdata.fundsTopPerformer.pickSecurity" : "/it/home/nav/il-mio-trading/md/snapshot",
4137		
4138		// FuturesOverview
4139		"cci.marketdata.futuresOverview.pickSecurity" : "/it/home/nav/il-mio-trading/md/snapshot",
4140		
4141		// GlobalMarketOverview
4142		"cci.marketdata.overview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot", 
4143		"cci.marketdata.overview.stocksOverview":"/it/home/nav/il-mio-trading/md/stocksmarketoverview", 
4144		"cci.marketdata.overview.commoditiesOverview":"/it/home/nav/il-mio-trading/md/commoditiesmarketoverview",
4145		"cci.marketdata.overview.currenciesOverview":"/it/home/nav/il-mio-trading/md/currenciesmarketoverview",
4146		"cci.marketdata.overview.interestRatesOverview":"/it/home/nav/il-mio-trading/md/interestratesmarketoverview",
4147		"cci.marketdata.overview.stocksInternationalIndices": "/it/home/nav/il-mio-trading/md/stocksinternationalindices",
4148		"cci.marketdata.overview.showMoreNews":"/it/home/nav/il-mio-trading/md/globalnews", 
4149		"cci.marketdata.overview.watchlist.show":"/it/home/nav/il-mio-trading/md/watchlist",
4150		"cci.marketdata.overview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart", 
4151		"cci.marketdata.overview.stocksTopFlop.show":"/it/home/nav/il-mio-trading/md/listini", 
4152		"cci.marketdata.overview.certificatesMostTraded.show":"/it/home/nav/il-mio-trading/md/certificatestopflop",
4153		"cci.marketdata.overview.worldIndices.show":"/it/home/nav/il-mio-trading/md/stocksinternationalindices",
4154		"cci.marketdata.overview.fundsTopPerformer.show":"/it/home/nav/il-mio-trading/md/fundstopperformer",
4155		"cci.marketdata.overview.chartAnalysisOverview":"/it/home/nav/il-mio-trading/md/chartanalysisoverview",
4156				
4157		"cci.marketdata.overview.chartAnalysis.show" : "/it/home/nav/il-mio-trading/md/chartanalysis",
4158		"cci.marketdata.overview.analystOpinion.show" : "/it/home/nav/il-mio-trading/md/analystopinion", 
4159		//"cci.marketdata.overview.analysisScreener.show":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4160		
4161		
4162		
4163		// modifiche 14maggio
4164		
4165		"cci.marketdata.overview.leverageMostTraded.show":"/it/home/nav/il-mio-trading/md/leveragemarketoverview",
4166		
4167				
4168		//HistoricChart
4169		"cci.marketdata.historicChart.Categories":"/it/home/nav/il-mio-trading/md/categorysearchresult", 
4170		"cci.marketdata.historicChart.interactiveCharts.load":"/it/home/nav/il-mio-trading/md/interactivechart",
4171		"cci.marketdata.historicChart.interactiveChartApplet.load":"/it/home/nav/il-mio-trading/md/interactivechartapplet",
4172		
4173		//InstrumentComparison
4174		// 4.4.0 ALESSANDRO
4175		//"cci.marketdata.instrumentComparison.empty":""
4176		
4177		//InteractiveCharts
4178		"cci.marketdata.interactiveCharts.interactiveChartApplet.load":"/it/home/nav/il-mio-trading/md/interactivechartapplet",
4179		
4180		//interestRatesMarketOverview
4181		"cci.marketdata.interestRatesMarketOverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4182		
4183		//LastIssuedWarrants
4184		"cci.marketdata.lastIssuedWarrants.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4185		
4186		//leverageCalculator
4187		"cci.marketdata.leverageCalculator.calculateScenerios":"/it/home/nav/il-mio-trading/md/leverageCalculator",
4188		
4189		// Leveragemarketoverview
4190		"cci.marketdata.leveragemarketoverview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4191		"cci.marketdata.leveragemarketoverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4192
4193		
4194		//leverageProfile
4195		"cci.marketdata.leverageProfile.pickSecurity":"/it/home/nav/il-mio-trading/md/snapsh
4195ot",
4196		
4197		//leveragesSearch
4198		//4.4.0 ALESSANDRO 
4199		//"cci.marketdata.leveragesSearch.empty":""
4200		
4201		// News
4202		"cci.marketdata.news.showMoreNews" : "/it/home/nav/il-mio-trading/md/news",
4203		
4204		// Quotation
4205		"cci.marketdata.quotation.switchTabs" : "/it/home/nav/il-mio-trading/md/quotation",
4206		"cci.marketdata.quotation.changeFilter" : "/it/home/nav/il-mio-trading/md/quotation",
4207		"cci.marketdata.quotation.showMore" : "/it/home/nav/il-mio-trading/md/quotation",
4208
4209		// Screener Analysis
4210		"cci.marketdata.stocksScreenerAnalysis.showstocksScreener":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4211		
4212		// Search
4213		"cci.marketdata.search.DirectHit":"/it/home/nav/il-mio-trading/md/snapshot",
4214		"cci.marketdata.search.Categories":"/it/home/nav/il-mio-trading/md/categorysearchresult",
4215		"cci.marketdata.search.empty":"/it/home/nav/il-mio-trading/md/categorysearchresult",
4216	
4217	  //securitiesNews
4218		"cci.marketdata.securitiesNews.showMoreNews":"/it/home/nav/il-mio-trading/md/securitiesNews",
4219
4220		// SmartStopsDetails
4221
4222		
4223		// Snapshot
4224		"cci.marketdata.snapshot.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4225		"cci.marketdata.snapshot.displayChart": "/it/home/nav/il-mio-trading/md/historicchart",
4226		"cci.marketdata.snapshot.analystOpinion.show":"/it/home/nav/il-mio-trading/md/analystopinion",  
4227		"cci.marketdata.snapshot.chartAnalysis.show":"/it/home/nav/il-mio-trading/md/chartanalysis",
4228		"cci.marketdata.snapshot.smartStops.show":"/it/home/nav/il-mio-trading/md/smartstopsdetails",
4229		"cci.marketdata.snapshot.showMoreNews":"/it/home/nav/il-mio-trading/md/news",
4230		"cci.marketdata.snapshot.news.showMore":"/it/home/nav/il-mio-trading/md/news",
4231		"cci.marketdata.snapshot.stocksTopFlop.show":"/it/home/nav/il-mio-trading/md/listini",
4232		"cci.marketdata.snapshot.showbondsProfile":"/it/home/nav/il-mio-trading/md/bondsprofile",
4233		"cci.marketdata.snapshot.showfundsProfile":"/it/home/nav/il-mio-trading/md/fundsprofile",
4234		"cci.marketdata.snapshot.showtrackersProfile":"/it/home/nav/il-mio-trading/md/trackersprofile",
4235		"cci.marketdata.snapshot.showstocksProfileV7":"/it/home/nav/il-mio-trading/md/companyprofile",
4236		"cci.marketdata.snapshot.quotation.show":"/it/home/nav/il-mio-trading/md/quotation",
4237		
4238	  // Snapshot header
4239		"cci.marketdata.snapshot.header.changeExchange":"/it/home/nav/il-mio-trading/md/snapshot",
4240		"cci.marketdata.snapshot.header.showstocksScreener":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4241		"cci.marketdata.snapshot.header.fastTrade.placeOrder":{ url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4242		"cci.marketdata.snapshot.header.addSecuritiesToWatchlist":"/it/home/nav/il-mio-trading/md/watchlist",
4243		
4244		// StocksIndustryIndices
4245		"cci.marketdata.stocksIndustryIndices.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4246		
4247		// StocksInternationalIndices
4248		"cci.marketdata.stocksInternationalIndices.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4249		
4250		// Stocksmarketoverview
4251		"cci.marketdata.stocksmarketoverview.displayChart": "/it/home/nav/il-mio-trading/md/historicchart",
4252		"cci.marketdata.stocksmarketoverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4253		"cci.marketdata.stocksmarketoverview.worldIndices.show":"/it/home/nav/il-mio-trading/md/stocksinternationalindices",
4254		"cci.marketdata.stocksmarketoverview.stocksTopFlop.show":"/it/home/nav/il-mio-trading/md/listini",
4255		"cci.marketdata.stocksmarketoverview.chartAnalysis.show":"/it/home/nav/il-mio-trading/md/chartanalysis",
4256		"cci.marketdata.stocksmarketoverview.analystOpinion.show":"/it/home/nav/il-mio-trading/md/analystopinion",
4257		"cci.marketdata.stocksmarketoverview.analystOpinion.more":"/it/home/nav/il-mio-trading/md/consensus",
4258		"cci.marketdata.stocksmarketoverview.analysisScreener.show":"/it/home/nav/il-mio-trading/md/screenersearch",
4259		"cci.marketdata.stocksmarketoverview.showMoreNews":"/it/home/nav/il-mio-trading/md/globalnews",
4260		"cci.marketdata.stocksmarketoverview.chartAnalysisOverview":"/it/home/nav/il-mio-trading/md/chartanalysisoverview",
4261		"cci.marketdata.stocksmarketoverview.stocksInternationalIndices":"/it/home/nav/il-mio-trading/md/stocksinternationalindices",
4262		"cci.marketdata.stocksmarketoverview.stocksOverview": "/it/home/nav/il-mio-trading/md/stocksmarketoverview",
4263	    "cci.marketdata.stocksmarketoverview.pickScreener": "/it/home/nav/il-mio-trading/md/screeneranalysis", 		
4264		
4265		// Bonds Market Overview
4266		"cci.marketdata.bondsmarketoverview.showMoreNews":"/it/home/nav/il-mio-trading/md/globalnews",
4267		"cci.marketdata.bondsmarketoverview.displayChart": "/it/home/nav/il-mio-trading/md/historicchart",
4268		"cci.marketdata.bondsmarketoverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapsh
4268ot",
4269				
4270		//stocksSearch
4271		"cci.marketdata.stocksSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4272		
4273		// StocksTopFlop
4274		//"cci.marketdata.stocksTopFlop.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4275		//"cci.marketdata.stocksTopFlop.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4276		
4277		// Listini stockList
4278		"cci.marketdata.stocksList.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4279		"cci.marketdata.stocksList.displayChart":"/it/home/nav/il-mio-trading/md/snapshot",
4280		"cci.marketdata.stocksList.addSecuritiesToWatchlist":"/it/home/nav/il-mio-trading/md/watchlist",
4281		"cci.marketdata.stocksList.openOrderbookPopup":"/it/home/nav/il-mio-trading/md/orderbookpopup",
4282		"cci.marketdata.stocksList.placeOrder":{ url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},			
4283				
4284		// Trackersmarketoverview
4285		"cci.marketdata.trackersmarketoverview.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4286		"cci.marketdata.trackersmarketoverview.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4287		"cci.marketdata.trackersmarketoverview.trackersTopFlop.show":"/it/home/nav/il-mio-trading/md/trackerstopflop",
4288		"cci.marketdata.trackersmarketoverview.trackersMostTraded.show":"/it/home/nav/il-mio-trading/md/trackerstopflop",
4289		
4290		//trackersSearch
4291		"cci.marketdata.search.trackersSearch.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4292		
4293		// TrackersTopFlop
4294		"cci.marketdata.trackersTopFlop.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4295		"cci.marketdata.trackersTopFlop.showMore":"/it/home/nav/il-mio-trading/md/trackerstopflop",
4296		"cci.marketdata.trackersTopFlop.none":"",
4297		
4298		// TxSnapshot
4299		"cci.marketdata.txSnapshot.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4300		
4301		// Watchlist
4302		
4303		"cci.marketdata.watchlist.Categories":"/it/home/nav/il-mio-trading/md/categorysearchresult",
4304		"cci.marketdata.watchlist.pickSecurity":"/it/home/nav/il-mio-trading/md/snapshot",
4305		"cci.marketdata.watchlist.displayChart":"/it/home/nav/il-mio-trading/md/historicchart",
4306		"cci.marketdata.watchlist.placeOrder":"/it/home/nav/il-mio-trading/tx/ordermask",
4307		"cci.marketdata.watchlist.selectWatchlistItem":"/it/home/nav/il-mio-trading/md/watchlisteditportfolio",
4308		"cci.marketdata.watchlist.watchlistEdit":"/it/home/nav/il-mio-trading/md/watchlistedit",
4309		"cci.marketdata.watchlist.editPortfolio":"/it/home/nav/il-mio-trading/md/watchlisteditportfolio",
4310		"cci.marketdata.watchlist.alert":"",
4311		// 4.4.0 ALESSANDRO
4312		"cci.marketdata.watchlist.empty":"/it/home/nav/il-mio-trading/md/watchlist",
4313		
4314		// Watchlist Edit
4315		"cci.marketdata.watchlistEdit.cancel":"/it/home/nav/il-mio-trading/md/watchlist",
4316		"cci.marketdata.watchlistEdit.editWatchlist.jump":"/it/home/nav/il-mio-trading/md/watchlist",
4317		
4318		// Watchlist Edit Portfolio
4319		"cci.marketdata.editPortfolio.cancel":"/it/home/nav/il-mio-trading/md/watchlist", 
4320		"cci.marketdata.editPortfolio.jump":"/it/home/nav/il-mio-trading/md/watchlist",
4321		"cci.marketdata.editPortfolio.changeCurrency":"/it/home/nav/il-mio-trading/md/watchlist",
4322		
4323		/************************ Transazionali *******************************************/
4324	
4325		//accountSummary
4326				// Portfolio Detail List
4327		"cci.wcm.orderMask.quickOrder.success": { url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4328		"cci.wcm.orderMask.quickOrder.success.fund": { url: '/it/home/nav/il-mio-trading/txo/accountinformation' , messageStrategy: 'json-post'},
4329		"cci.wcm.accountSummary.realTimeRefreshed": { url: '/it/home/nav/il-mio-trading/txo/accountinformation' , messageStrategy: 'json-post'},
4330		
4331		//orderMask
4332		"cci.wcm.orderMask.fillInOrderSuccess.success":{ url: '/it/home/nav/il-mio-trading/tx/orderpreview' , messageStrategy: 'json-post'},
4333		
4334		
4335		//"messaging.cci.wcm.orderMask.voTarifsImg.success":"",
4336		"cci.marketdata.txorder.fund":"/it/home/nav/il-mio-trading/tx/fundordermask",
4337		
4338		
4339		//orderPreview
4340		//"messaging.cci.wcm.orderMask.orderPreviewSuccess.success":"/it/home/nav/il-mio-trading/tx/orderpreview",
4341		"cci.wcm.orderMask.mifidAlertsViewSuccess.success": { url: '/it/home/nav/il-mio-trading/tx/orderconfirmation' , messageStrategy: 'json-post'},
4342		
4343		//orderConfirmation
4344		"cci.wcm.orderMask.orderConfirmation.repeatOrderInitiated": { url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4345		"cci.wcm.orderMask.orderConfirmSuccess": { url: '/it/home/nav/il-mio-trading/txo/accountinformation' , messageStrategy: 'json-post'},
4346		"cci.wcm.orderMask.orderConfirmation.myPortfolioInitiated":{ url: '/it/home/nav/il-mio-trading/txo/accountinformation' , messageStrategy: 'json-post'},
4347		"cci.wcm.orderMask.orderConfirmOrderBookInitiated":{ url: '/it/home/nav/il-mio-trading/tx/orderdetaillist' , messageStrategy: 'json-post'},
4348		"cci.wcm.fundOrderMask.cancel":{ url: '/it/home/nav/il-mio-trading/txo/accountinformation' , messageStrategy: 'json-post'},
4349		"cci.wcm.orderConfirmation.PlaceOrderInitiated": { url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4350		
4351		//orderDetailList
4352		"cci.wcm.orderDetailList.cancelOrder":{ url: '/it/home/nav/il-mio-trading/tx/cancelorder' , messageStrategy: 'json-post'},
4353		"cci.wcm.orderDetailList.orderInfoSelected":{ url: '/it/home/nav/il-mio-trading/tx/orderinfodetails' , messageStrategy: 'json-post'},
4354		"cci.wcm.orderMask.changeOrRepeatOrder":{ url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4355		
4356		//fundOrderMask
4357		"cci.wcm.fundOrderMask.fillInOrderSuccess.success":{ url: '/it/home/nav/il-mio-trading/tx/fundorderpreview' , messageStrategy: 'json-post'},
4358		
4359		//fundOrderPreview
4360		"cci.wcm.fundOrderMask.fundOrderPreview.diciSuccess":"/it/home/nav/il-mio-trading/tx/fundorderconfirmation",
4361	
4362		
4363		//placeOrder
4364		"cci.wcm.orderMask.quickOrder.success":{ url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4365		"cci.wcm.orderMask.quickOrder.success.fund":"/it/home/nav/il-mio-trading/tx/fundordermask",
4366		"cci.marketdata.txSearch.Categories":"/it/home/nav/il-mio-trading/md/categorysearchresult",
4367		
4368		//cancelOrder
4369		"cci.wcm.cancelOrder.orderDetailList":{ url: '/it/home/nav/il-mio-trading/tx/orderdetaillist' , messageStrategy: 'json-post'},
4370		"cci.wcm.cancelOrder.cancelOrderSummary":{ url: '/it/home/nav/il-mio-trading/tx/cancelordersummary' , messageStrategy: 'json-post'},
4371		
4372		//cancelOrderSummary
4373		"cci.wcm.cancelOrderSummary.orderDetailList":{ url: '/it/home/nav/il-mio-trading/tx/orderdetaillist' , messageStrategy: 'json-post'},
4374		
4375		//* Sezione IPO */
4376		//ipoSearchResult
4377		"cci.wcm.ipoAccess.initiate":{ url: '/it/home/nav/il-mio-trading/tx/ipoordermask' , messageStrategy: 'json-post'},
4378		
4379		// BANNER MANAGEMENT
4380		"cci.wcm.ipoSearchResult.selectIPO":{ url: '/it/home/nav/il-mio-trading/tx/iposearchresult' , messageStrategy: 'json-post'},		
4381		
4382		//ipoAccess
4383		"cci.wcm.ipoAccess.ipoAccessConfirmClicked":{ url: '/it/home/nav/il-mio-trading/tx/ipoorderpreview' , messageStrategy: 'json-post'},
4384		"cci.wcm.ipoAccess.ipoAccesscancelClicked":{ url: '/it/home/nav/il-mio-trading/tx/iposearchresult' , messageStrategy: 'json-post'},
4385		
4386		//ipoOrderPreview
4387		"cci.wcm.ipoOrderPerview.ipoOrderConfirm":{ url: '/it/home/nav/il-mio-trading/tx/ipoorderconfirm' , messageStrategy: 'json-post'},
4388		"cci.wcm.ipoPreview.ipoCancelClicked":{ url: '/it/home/nav/il-mio-trading/tx/iposearchresult' , messageStrategy: 'json-post'},
4389		
4390		//ipoOrderPreview
4391		"cci.wcm.ipoOrderConfirm.ipoAccessList":"iposearchresult", 
4392				
4393		
4394		// instrument menu
4395		"cci.marketdata.instrumentMenu.snapshot":"/it/home/nav/il-mio-trading/md/snapshot",
4396		"cci.marketdata.instrumentMenu.historicChart":"/it/home/nav/il-mio-trading/md/historicchart",
4397		"cci.marketdata.instrumentMenu.quotation":"/it/home/nav/il-mio-trading/md/quotation",
4398		"cci.marketdata.instrumentMenu.news":"/it/home/nav/il-mio-trading/md/news",
4399		"cci.marketdata.instrumentMenu.analystOpinion":"/it/home/nav/il-mio-trading/md/analystopinion",
4400		"cci.marketdata.instrumentMenu.screenerAnalysis":"/it/home/nav/il-mio-trading/md/screeneranalysis",
4401		"cci.marketdata.instrumentMenu.smartStopsDetails":"/it/home/nav/il-mio-trading/md/smartstopsdetails",
4402		"cci.marketdata.instrumentMenu.chartAnalysis":"/it/home/nav/il-mio-trading/md/chartanalysis",
4403		"cci.marketdata.instrumentMenu.trackersProfile":"/it/home/nav/il-mio-trading/md/trackersprofile",
4404		"cci.marketdata.instrumentMenu.leverageCalculator":"/it/home/nav/il-mio-trading/md/leverageCalculator",
4405		"cci.marketdata.instrumentMenu.stocksProfile":"/it/home/nav/il-mio-trading/md/companyprofile",
4406		"cci.marketdata.instrumentMenu.bondsProfile":"/it/home/nav/il-mio-trading/md/bondsprofile",
4407		"cci.marketdata.instrumentMenu.fundsProfile":"/it/home/nav/il-mio-trading/md/fundsprofile",
4408		"cci.marketdata.instrumentMenu.levProfile":"/it/home/nav/il-mio-trading/md/leverageprofile",
4409		"cci.marketdata.instrumentMenu.certProfile":"/it/home/nav/il-mio-trading/md/certificatesprofile",
4410		//OLD "cci.marketdata.instrumentMenu.indicesScreenerAnalysis": "/it/home/nav/il-mio-trading/md/screeneranalysis",
4411		"cci.marketdata.instrumentMenu.indicesScreenerAnalysis":"/it/home/nav/il-mio-trading/md/indicesscreeneranalysis",
4412		
4413		//clickBanner
4414		"cci.marketdata.categorySearchResultTx.pickSecurity.txSearch":{ url: '/it/home/nav/il-mio-trading/tx/ordermask' , messageStrategy: 'json-post'},
4415
4416		"cci.marketdata.historicChart.openChartPopup": "/it/home/nav/il-mio-trading/md/historicchartfull",
4417
4418
4419
4420		//INTELLIGENT ORDER
4421		"cci.wcm.orderDetailList.protectionSelected" : { url: '/it/home/nav/il-mio-trading/tx/intelligentorderdetails' , messageStrategy: 'json-post'},
4422		"cci.wcm.tpslCancel.open" : { url: '/it/home/nav/il-mio-trading/tx/cancelintelligentorder' , messageStrategy: 'json-post'}
4423};
4424
4425
4426
4427
4428/* Inject the config into wcm object */
4429try{
4430	wcm.moduleConfig({ 
4431		map: navigationConfig[sfSiteId],
4432		defaultTargetFrame: 'displayboardd',
4433		useBnppNamespace: true,
4434		crossPageMessageStrategy: 'base64-get' //'base64-get' or 'json-post' 
4435	});
4435 /* sfSiteId is a global variable put in the page by WCM */
4436}catch(exc){
4437	//Do Nothing
4438}
4439var wcmFSSOContextPath = '/fsso-pe-wrapper-war/';
4440
4441/*
4442* WCM Sitefactory Mediator
4443* Used in IA component context
4444*
4445* author i30897
4446*
4447*/
4448
4449Mediator = new function () {
4450    var debugMode = false;
4451    var registeredIa = new Array();
4452
4453    // store if IA post parameter exist
4454    this.init = function () {
4455        if (typeof console == "undefined") {
4456            debugMode = false;
4457        } else {
4458            this.logInfo("DeviceFeatures - debug mode enabled");
4459        }
4460
4461        if (typeof (sfIaParam) != "undefined" && sfIaParam.version == "undefined") {
4462            this.store(sfIaParam.topic, sfIaParam);
4463        }
4464		
4465        this.subscribeToTopic("target.ia.**", function (topic, data) {
4466            Mediator.logInfo("Mediator - Target callback start");
4467            if (topic && typeof (sfIaTargetList) != "undefined" && sfIaTargetList[sfSiteId][topic]) {
4468                Mediator.logInfo("Mediator - Target found for topic: " + topic);
4469                Mediator.sendData(topic, data, sfIaTargetList[sfSiteId][topic]);
4470            } else {
4471                Mediator.logInfo("Mediator - Target not found for topic: " + topic);
4472            }
4473        });
4474    }
4475	
4476    // subscribe to topic
4477    this.subscribeToTopic = function (topicName, callback) {
4478        this.logInfo("Mediator - subscribe to topic: " + topicName);
4479        return window.PageBus.subscribe(topicName, null, callback, null);
4480    }
4481	
4482    // subscribe to array of topic
4483    this.subscribeToListOfTopic = function (topicNames, callback) {
4484        for (var index in topicNames) {
4485            this.logInfo("Mediator - subscribe to topic: " + topicName[index]);
4486            window.PageBus.subscribe(topicNames[index], null, callback, null);
4487        }
4488    }
4489	
4490    // store parameter
4491    this.store = function (topicName, parameter) {
4492        this.logInfo("Mediator - store parameter: topic=" + topicName + " parameter=" + parameter);
4493        window.PageBus.subscribe(topicName, function (topic, message, data) {
4494            return;
4495        }, null, {
4496            PageBus: {
4497                cache: true
4498            }
4499        });
4500        window.PageBus.store(topicName, parameter);
4501    }
4502	
4503	// check if a topic stored
4504	this.checkQuery = function (topicName) {
4505		if (typeof window.PageBus.query(topicName)[0] != 'undefined'){
4506			return true;
4507		} else {
4508			return false;
4509		}
4510	}
4511	
4512    // send data to server
4513    this.sendPostData = function (topic, data, url) {
4514        this.logInfo("Mediator - send POST data: topic=" + topic + " data=" + data + " target=" + url);
4515        var form = document.createElement("form");
4516        form.setAttribute("method", "POST");
4517        form.setAttribute("action", url);
4518        form.setAttribute('enctype', 'application/json');
4519
4520        var jsonData;
4521        try {
4522            var parseData = JSON.parse(data);
4523            parseData.topic = topic;
4524            jsonData = JSON.stringify(parseData);
4525        } catch (exception) {
4526            data.topic = topic;
4527            jsonData = JSON.stringify(data);
4528        }
4529
4530        var hiddenField = document.createElement("input");
4531        hiddenField.setAttribute("type", "hidden");
4532        hiddenField.setAttribute("name", "sfIaParam");
4533        hiddenField.setAttribute("value", jsonData);
4534
4535        form.appendChild(hiddenField);
4536        document.body.appendChild(form);
4537        form.submit();
4538    }
4539	
4540    // send data to the target
4541    this.sendData = function (topic, data, url) {
4542        this.logInfo("Mediator - send data: topic=" + topic + " data=" + data + " target=" + url);
4543        var iaId = this.getIaIdFromTopic(topic);
4544        if (iaId && (typeof registeredIa[iaId] != "undefined")) {
4545            this.logInfo("Mediator - IA " + iaId + " registered in the page, start process");
4546            if (registeredIa[iaId] === true) {
4547                this.logInfo("Mediator - IA " + iaId + " must loaded");
4548                this.store(topic, data);
4549                registeredIa[iaId] = false;
4550                window.PageBus.publish("mediator.load.ia." + iaId);
4551            } else {
4552                this.logInfo("Mediator - IA " + iaId + " already loaded");
4553            }
4554        } else if (url) {
4555            this.logInfo("Mediator - IA " + iaId + " not registered in the page, go to " + url);
4556            this.sendPostData(topic, data, url);
4557        }
4558    }
4559	
4560    // regiter IA
4561    this.registerIa = function (iaId, status) {
4562        registeredIa[iaId] = status;
4563    }
4564	
4565    // get IA id from topic 
4566    this.getIaIdFromTopic = function (topic) {
4567        var iaId = topic.split(".ia.")[1];
4568        if (iaId.indexOf(".") != -1) {
4569            return iaId.substring(0, iaId.indexOf("."));
4570        }
4571        return iaId;
4572    }
4573	
4574    // enable debug mode
4575    this.enableDebugMode = function () {
4576        debugMode = true;
4577    }
4578	
4579    // log info to the console
4580    this.logInfo = function (messageLog) {
4581        if (debugMode === true) {
4582            console.log(messageLog);
4583        }
4584    }
4585
4586};
4587
4588try {
4589	Mediator.init();
4590} catch (e) {
4591	console.error(e);
4592}
4593
4594function hamburgerMenuBack() {
4595	$(".j-fourthHamburgerMenu").hide();
4596	$(".j-standardHamburgerMenu").show();
4597}
4598
4599/**
4600 * Spostata dall'HTML
4601 */
4602function setIOSChooiseAppLink() {
4603	if (isiOS()) {
4604		var link = $("#choise-app a.j-bnl-icon-yes").attr("data-ioslink");
4605		$(".choise-app a.bnl-icon-yes").attr("href", link); //Originale ma non funzionerà
4606		$(".bnl-icon-yes").closest('a').attr("href", link); //Originalev2 corretto
4607	}
4608}
4609
4610function swapLogoHeader() {
4611	var logo = "";
4612	if (window.innerWidth > 991) {
4613		logo = $(".j-head-logo").attr("data-logo-desktop");
4614	} else {
4615		logo = $(".j-head-logo").attr("data-logo-mobile");
4616	}
4617	$(".j-head-logo").css("background-image", "url('" + logo + "')");
4618}
4619
4620function swapWalletImage() {
4621	$(".j-wallet-image").each(function (i, elem) {
4622		var image = "";
4623		var $elem = $(elem);
4624		if (window.innerWidth > 560) {
4625			image = $elem.attr("data-image-desktop");
4626		} else if (window.innerWidth >= 351 && window.innerWidth <= 560) {
4627			image = $elem.attr("data-image-tablet");
4628		} else {
4629			image = $elem.attr("data-image-mobile");
4630		}
4631		$elem.css("background-image", "url('" + image + "')");
4632	});
4633}
4634
4635function initAEMLinkinModal() {
4636	setModalDataToElements();
4637	removeModalDataToForms();
4638	$("a[bnltypelink='showModal']").off("click", openAEMLinkinModal);
4639	$("a[bnltypelink='showModal']").on("click", openAEMLinkinModal);
4640	$("a[bnltypelink='showTotemPdfModal']").off("click", openAEMTotemPDFLinkinModal);
4641	$("a[bnltypelink='showTotemPdfModal']").on("click", openAEMTotemPDFLinkinModal);
4642	$("a.j-open-in-modal").off("click", openModalLinksWithoutJS);
4643	$("a.j-open-in-modal").on("click", openModalLinksWithoutJS);
4644}
4645
4646
4647function openModalLinksWithoutJS(e) {
4648	e.preventDefault();
4649	var link = $(this).attr("href");
4650	if(link){
4651		link = link.replace("javascript:showModal('", "");
4652		link = link.replace("')", "");
4653	}
4654	showModal(link);
4655}
4656
4657function setModalDataToElements(){
4658	$("a[bnltypelink='showModal']").each(function () {
4659	    if(!$(this).data("bs-toggle")){
4660	        $(this).attr("data-bs-toggle","modal");
4661	    }
4662	    if(!$(this).data("bs-target")){
4663	        $(this).attr("data-bs-target","#modal-overlay");
4664	    }
4665	});
4666}
4667
4668function removeModalDataToForms(){
4669	$("a.j-open-in-modal").each(cleanData);
4670	$("a[bnltypelink='showModal']").each(cleanData);
4671}
4672
4673function cleanData() {
4674    var link = $(this).attr("href");
4675	if(link){
4676		link = link.replace("javascript:showModal('", "");
4677		link = link.replace("')", "");
4678	}
4679    if(admittedFormPages(link)){
4680        $(this).removeAttr("data-bs-target");
4681        $(this).removeAttr("data-bs-toggle");
4682    }
4683}
4684
4685function openAEMLinkinModal(e) {
4686	e.preventDefault();
4687	var link = $(this).attr("href");
4688	showModal(link);
4689}
4690
4691function openAEMTotemPDFLinkinModal(e) {
4692	e.preventDefault();
4693	var link = $(this).attr("href");
4694	if (link != null && link.toLowerCase().indexOf("pdf") >= 0) {
4695		link = "https://docs.google.com/gview?embedded=true&url=" + siteSettings.siteProtocol + siteSettings.siteDomain + link;
4696	}
4697	showModal(link);
4698}
4699
4700function initModalFattiRichiamare() {
4701	$("a.j-contactform-button").off("click", showModalFattiRichiamare);
4702	$("a.j-contactform-button").on("click", showModalFattiRichiamare);
4703}
4704
4705function initModalPrendiAppuntamento() {
4706	$("a.j-prendiappuntamento-button").off("click", showModalPrendiAppuntamento);
4707	$("a.j-prendiappuntamento-button").on("click", showModalPrendiAppuntamento);
4708}
4709
4710function polyfillCustomEvent() {
4711	if (typeof window.CustomEvent === "function") return false; //If not IE
4712	function CustomEvent(event, params) {
4713		params = params || { bubbles: false, cancelable: false, detail: undefined };
4714		var evt = document.createEvent('CustomEvent');
4715		evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
4716		return evt;
4717	}
4718	CustomEvent.prototype = window.Event.prototype;
4719	window.CustomEvent = CustomEvent;
4720}
4721
4722function showModalFattiRichiamare(e) {
4723	e.preventDefault();
4724	var appInitEvent = new CustomEvent("initcontactform");
4725	document.dispatchEvent(appInitEvent);
4726}
4727
4728function showModalPrendiAppuntamento(e) {
4729	e.preventDefault();
4730	var appInitEvent = new CustomEvent("initprendiappuntamento");
4731	document.dispatchEvent(appInitEvent);
4732}
4733
4734function invalidHomeRedirect() {
4735	var cookie = $.cookie('redirectAvoided');
4736	if (cookie === undefined || cookie == null || cookie != "true") {
4737		$.ajax({
4738			url: "/",
4739			method: "POST",
4740			context: document.body
4741		}).done(function (data) {
4742			var today = new Date();
4743			today.setFullYear(today.getFullYear() + 1);
4744			$.cookie("redirectAvoided", "true", { expires: today, domain: siteSettings.cookieDomain, path: '/' });
4745		})
4746	}
4747}
4748
4749function resizeIframeWithSelector(selector) {
4750	var $iframeSelected = $(selector);
4751	var frameHeight = Math.max($iframeSelected[0].contentWindow.document.body.clientHeight, $iframeSelected[0].contentWindow.document.body.scrollHeight);
4752	$iframeSelected.css("height", frameHeight + "px");
4753}
4754
4755function scrollToElementWithSelector(elemetId) {
4756	$('html, body').animate({
4757		scrollTop: $(elemetId).offset().top
4758	}, 500);
4759}
4760
4761function redirectFromComponent() {
4762	var component = document.getElementsByClassName("j-redirect-component")[0];
4763	if (component != null && component != '') {
4764		var url = component.getAttribute("href");
4765		var delay = component.getAttribute("delay");
4766		var millis = delay * 1000;
4767		if (url != null && delay != null) {
4768			setTimeout(function () {
4769				window.location.href = url;
4770				return false;
4771			}, millis);
4772		}
4773	}
4774}
4775
4776$(document).ready(function () {
4777	swapLogoHeader();
4778	swapWalletImage();
4779	setIOSChooiseAppLink();
4780	initAEMLinkinModal();
4781	_dimensions();
4782	invalidHomeRedirect();
4783	polyfillCustomEvent();
4784	redirectFromComponent();
4785	initModalFattiRichiamare();
4786	initModalPrendiAppuntamento();
4787})
4788
4789$(document).ready(function controlCookie() {
4790	var cookies = $.cookie('distributorid');
4791	var today = new Date();
4792	today.setFullYear(today.getFullYear() + 1);
4793	if ((cookies === undefined && cookies == null) || (cookies != "BNL"))
4794		$.cookie("distributorid", "BNL", { expires: today, domain: siteSettings.cookieDomain, path: '/' });
4795
4796})
4797
4798$(window).resize(function () {
4799	swapLogoHeader();
4800	swapWalletImage();
4801})
4802
4803function dynamicSelfAppointmentInit(firstArgument, secondArgument, labelFirstArgument, labelSecondArgument) {
4804	var clientlibJs = "/etc.clientlibs/prendiappuntamento/clientlibs/clientlib-base.min.js";
4805	var clientlibCss = "/etc.clientlibs/prendiappuntamento/clientlibs/clientlib-base.min.css";
4806	if (!existSelfAppointmentCTA()) {
4807		buildHTMLSelfAppointmentContainer(firstArgument, secondArgument, labelFirstArgument, labelSecondArgument);
4808		downloadSelfAppointmentAppCss(clientlibCss);
4809		downloadSelfAppointmentAppJS(clientlibJs, function () {
4810			downloadSelfAppointmentAppJSCompleted();
4811		});
4812	} else {
4813		prepareHTMLSelfAppointmentContainer(firstArgument, secondArgument, labelFirstArgument, labelSecondArgument);
4814		downloadSelfAppointmentAppJSCompleted();
4815	}
4816}
4817
4818function buildHTMLSelfAppointmentContainer(firstArgument, secondArgument, labelFirstArgument, labelSecondArgument) {
4819	var dynamicSelfAppointmentConfigPage = siteSettings.dynamicSelfAppointment;
4820	var dynamicSelfAppointmentType = "modal";
4821	var dynamicSelfAppointmentTemplate = "prendiappuntamentoindividuals";
4822	var htmldynamicSelfAppContainer = $("<div id=\"modal-prendiappuntamento\" " +
4823		"data-dynamic=\"" + true + "\" " +
4824		"data-dynamic-arg-int1=\"" + firstArgument + "\" " +
4825		"data-dynamic-arg-int2=\"" + secondArgument + "\" " +
4826		"data-dynamic-arg-int-business=\"" + labelFirstArgument + " | " + labelSecondArgument + "\" " +
4827		"data-dynamic-page-path=\"" + dynamicSelfAppointmentConfigPage 
4827+ "\" " +
4828		"data-dynamic-type=\"" + dynamicSelfAppointmentType + "\" " +
4829		"data-dynamic-configuration-template=\"" + dynamicSelfAppointmentTemplate + "\" " +
4830		"style=\"margin: 0 auto; display: block; position: absolute;\"></div>");
4831	document.body.appendChild(htmldynamicSelfAppContainer[0]);
4832}
4833
4834function prepareHTMLSelfAppointmentContainer(firstArgument, secondArgument, labelFirstArgument, labelSecondArgument) {
4835	var dynamicSelfAppointmentConfigPage = siteSettings.dynamicSelfAppointment;
4836	var dynamicSelfAppointmentType = "modal";
4837	var dynamicSelfAppointmentTemplate = "prendiappuntamentoindividuals";
4838	$("#modal-prendiappuntamento").attr("data-dynamic", true);
4839	$("#modal-prendiappuntamento").attr("data-dynamic-arg-int1", firstArgument);
4840	$("#modal-prendiappuntamento").attr("data-dynamic-arg-int2", secondArgument);
4841	$("#modal-prendiappuntamento").attr("data-dynamic-arg-int-business", labelFirstArgument + " | " + labelSecondArgument);
4842	$("#modal-prendiappuntamento").attr("data-dynamic-page-path", dynamicSelfAppointmentConfigPage);
4843	$("#modal-prendiappuntamento").attr("data-dynamic-type", dynamicSelfAppointmentType);
4844	$("#modal-prendiappuntamento").attr("data-dynamic-configuration-template", dynamicSelfAppointmentTemplate);
4845}
4846
4847function downloadSelfAppointmentAppCss(clientlibCss) {
4848	var findCss = $("link[href='" + clientlibCss + "']");
4849	if (!findCss || findCss.length === 0) {
4850		var selfAppointmentCSS = document.createElement('link');
4851		selfAppointmentCSS.type = 'text/css';
4852		selfAppointmentCSS.setAttribute('rel', 'stylesheet');
4853		selfAppointmentCSS.setAttribute('href', clientlibCss);
4854		document.head.appendChild(selfAppointmentCSS);
4855
4856		var selfAppointmentCSSBase = document.createElement('base');
4857		selfAppointmentCSSBase.setAttribute('href', '/etc.clientlibs/prendiappuntamento/clientlibs/clientlib-site/resources/');
4858		document.head.appendChild(selfAppointmentCSSBase);
4859	}
4860}
4861
4862function downloadSelfAppointmentAppJS(clientlibJs, successJsLoadCompleted) {
4863	var findJs = $("script[src='" + clientlibJs + "']");
4864	if (!findJs || findJs.length === 0) {
4865		var selfAppointmentScript = document.createElement('script');
4866		selfAppointmentScript.type = 'text/javascript';
4867		selfAppointmentScript.src = clientlibJs;
4868		if (selfAppointmentScript.readyState) {  // only required for IE <9
4869			selfAppointmentScript.onreadystatechange = function () {
4870				if (selfAppointmentScript.readyState === "loaded" || selfAppointmentScript.readyState === "complete") {
4871					selfAppointmentScript.onreadystatechange = null;
4872					successJsLoadCompleted();
4873				}
4874			};
4875		} else {  //Others
4876			selfAppointmentScript.onload = function () {
4877				successJsLoadCompleted();
4878			};
4879		}
4880		document.head.appendChild(selfAppointmentScript);
4881	} else {
4882		successJsLoadCompleted();
4883	}
4884}
4885
4886function existSelfAppointmentCTA() {
4887	return $("#modal-prendiappuntamento").length > 0;
4888}
4889
4890function downloadSelfAppointmentAppJSCompleted() {
4891	(function () {
4892		if (typeof window.CustomEvent === "function") return false; //If not IE
4893		function CustomEvent(event, params) {
4894			params = params || { bubbles: false, cancelable: false, detail: undefined };
4895			var evt = document.createEvent('CustomEvent');
4896			evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
4897			return evt;
4898		}
4899		CustomEvent.prototype = window.Event.prototype;
4900		window.CustomEvent = CustomEvent;
4901	})()
4902	var appInitEvent = new CustomEvent("initprendiappuntamento");
4903	document.dispatchEvent(appInitEvent);
4904}
4905
4906function dynamicFattiRichiamareInit(labelFirstArgument, labelSecondArgument) {
4907	var clientlibJs = "/etc.clientlibs/fattirichiamare/clientlibs/clientlib-base.min.js";
4908	var clientlibCss = "/etc.clientlibs/fattirichiamare/clientlibs/clientlib-base.min.css";
4909	if (!existFattiRichiamareCTA()) {
4910		buildHTMLFattiRichiamareContainer(labelFirstArgument, labelSecondArgument);
4911		downloadFattiRichiamareAppCss(clientlibCss);
4912		downloadFattiRichiamareAppJS(clientlibJs, function () {
4913			downloadFattiRichiamareAppJSCompleted();
4914		});
4915	} else {
4916		prepareHTMLFattiRichiamareContainer(labelFirstArgument, labelSecondArgument);
4917		downloadFattiRichiamareAppJSCompleted();
4918	}
4919}
4920
4921function buildHTMLFattiRichiamareContainer(labelFirstArgument, labelSecondArgument) {
4922	var dynamicFattiRichiamareConfigPage = siteSettings.dynamicFattiRichiamare;
4923	var dynamicFattiRichiamareType = "modal";
4924	var dynamicFattiRichiamareTemplate = "contactformsindividuals";
4925	var htmldynamicFattiRichiamareContainer = $("<div id=\"modal-contactform\" " +
4926		"data-dynamic=\"" + true + "\" " +
4927		"data-dynamic-arg-int-business=\"" + labelFirstArgument + " | " + labelSecondArgument + "\" " +
4928		"data-dynamic-page-path=\"" + dynamicFattiRichiamareConfigPage + "\" " +
4929		"data-dynamic-type=\"" + dynamicFattiRichiamareType + "\" " +
4930		"data-dynamic-configuration-template=\"" + dynamicFattiRichiamareTemplate + "\" " +
4931		"style=\"margin: 0 auto; display: block; position: absolute;\"></div>");
4932	document.body.appendChild(htmldynamicFattiRichiamareContainer[0]);
4933}
4934
4935function prepareHTMLFattiRichiamareContainer(labelFirstArgument, labelSecondArgument) {
4936	var dynamicFattiRichiamareConfigPage = siteSettings.dynamicFattiRichiamare;
4937	var dynamicFattiRichiamareType = "modal";
4938	var dynamicFattiRichiamareTemplate = "contactformsindividuals";
4939	$("#modal-contactform").attr("data-dynamic", true);
4940	$("#modal-contactform").attr("data-dynamic-arg-int-business", labelFirstArgument + " | " + labelSecondArgument);
4941	$("#modal-contactform").attr("data-dynamic-page-path", dynamicFattiRichiamareConfigPage);
4942	$("#modal-contactform").attr("data-dynamic-type", dynamicFattiRichiamareType);
4943	$("#modal-contactform").attr("data-dynamic-configuration-template", dynamicFattiRichiamareTemplate);
4944}
4945
4946function downloadFattiRichiamareAppCss(clientlibCss) {
4947	var findCss = $("link[href='" + clientlibCss + "']");
4948	if (!findCss || findCss.length === 0) {
4949		var fattiRichiamareCSS = document.createElement('link');
4950		fattiRichiamareCSS.type = 'text/css';
4951		fattiRichiamareCSS.setAttribute('rel', 'stylesheet');
4952		fattiRichiamareCSS.setAttribute('href', clientlibCss);
4953		document.head.appendChild(fattiRichiamareCSS);
4954
4955		var fattiRichiamareCSSBase = document.createElement('base');
4956		fattiRichiamareCSSBase.setAttribute('href', '/etc.clientlibs/fattirichiamare/clientlibs/clientlib-site/resources/');
4957		document.head.appendChild(fattiRichiamareCSSBase);
4958	}
4959}
4960
4961function downloadFattiRichiamareAppJS(clientlibJs, successJsLoadCompleted) {
4962	var findJs = $("script[src='" + clientlibJs + "']");
4963	if (!findJs || findJs.length === 0) {
4964		var fattiRichiamareScript = document.createElement('script');
4965		fattiRichiamareScript.type = 'text/javascript';
4966		fattiRichiamareScript.src = clientlibJs;
4967		if (fattiRichiamareScript.readyState) {  // only required for IE <9
4968			fattiRichiamareScript.onreadystatechange = function () {
4969				if (fattiRichiamareScript.readyState === "loaded" || fattiRichiamareScript.readyState === "complete") {
4970					fattiRichiamareScript.onreadystatechange = null;
4971					successJsLoadCompleted();
4972				}
4973			};
4974		} else {  //Others
4975			fattiRichiamareScript.onload = function () {
4976				successJsLoadCompleted();
4977			};
4978		}
4979		document.head.appendChild(fattiRichiamareScript);
4980	} else {
4981		successJsLoadCompleted();
4982	}
4983}
4984
4985function existFattiRichiamareCTA() {
4986	return $("#modal-contactform").length > 0;
4987}
4988
4989function downloadFattiRichiamareAppJSCompleted() {
4990	(function () {
4991		if (typeof window.CustomEvent === "function") return false; //If not IE
4992		function CustomEvent(event, params) {
4993			params = params || { bubbles: false, cancelable: false, detail: undefined };
4994			var evt = document.createEvent('CustomEvent');
4995			evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
4996			return evt;
4997		}
4998		CustomEvent.prototype = window.Event.prototype;
4999		window.CustomEvent = CustomEvent;
5000	})()
5001	var appInitEvent = new CustomEvent("initcontactform");
5002	document.dispatchEvent(appInitEvent);
5003}
5004
5005function dynamicClaimsInit() {
5006	var clientlibJs = "/etc.clientlibs/claims/clientlibs/clientlib-base.min.js";
5007	var clientlibCss = "/etc.clientlibs/claims/clientlibs/clientlib-base.min.css";
5008	if (!existClaimsCTA()) {
5009		buildHTMLCLaimsContainer();
5010		downloadClaimsAppCss(clientlibCss);
5011		downloadClaimsAppJS(clientlibJs, function () {
5012			downloadClaimsAppJSCompleted();
5013		});
5014	} else {
5015		prepareHTMLClaimsContainer();
5016		downloadClaimsAppJSCompleted();
5017	}
5018}
5019
5020function buildHTMLCLaimsContainer() {
5021	var dynamicClaimsConfigPage = siteSettings.dynamicClaims;
5022	var dynamicClaimsType = "modal";
5023	var dynamicClaimsTemplate = "claimsgeneral";
5024	var htmldynamicClaimsContainer = $("<div id=\"modal-claims\" " +
5025		"data-dynamic=\"" + true + "\" " +
5026		"data-dynamic-page-path=\"" + dynamicClaimsConfigPage + "\" " +
5027		"data-dynamic-type=\"" + dynamicClaimsType + "\" " +
5028		"data-dynamic-configuration-template=\"" + dynamicClaimsTemplate + "\" " +
5029		"style=\"margin: 0 auto; display: block; position: absolute;\"></div>");
5030	document.body.appendChild(htmldynamicClaimsContainer[0]);
5031}
5032
5033function prepareHTMLClaimsContainer() {
5034	var dynamicClaimsConfigPage = siteSettings.dynamicClaims;
5035	var dynamicClaimsType = "modal";
5036	var dynamicClaimsTemplate = "claimsgeneral";
5037	$("#modal-claims").attr("data-dynamic", true);
5038	$("#modal-claims").attr("data-dynamic-page-path", dynamicClaimsConfigPage);
5039	$("#modal-claims").attr("data-dynamic-type", dynamicClaimsType);
5040	$("#modal-claims").attr("data-dynamic-configuration-template", dynamicClaimsTemplate);
5041}
5042
5043function downloadClaimsAppCss(clientlibCss) {
5044	var findCss = $("link[href='" + clientlibCss + "']");
5045	if (!findCss || findCss.length === 0) {
5046		var claimsCSS = document.createElement('link');
5047		claimsCSS.type = 'text/css';
5048		claimsCSS.setAttribute('rel', 'stylesheet');
5049		claimsCSS.setAttribute('href', clientlibCss);
5050		document.head.appendChild(claimsCSS);
5051
5052		var claimsCSSBase = document.createElement('base');
5053		claimsCSSBase.setAttribute('href', '/etc.clientlibs/claims/clientlibs/clientlib-site/resources/');
5054		document.head.appendChild(claimsCSSBase);
5055	}
5056}
5057
5058function downloadClaimsAppJS(clientlibJs, successJsLoadCompleted) {
5059	var findJs = $("script[src='" + clientlibJs + "']");
5060	if (!findJs || findJs.length === 0) {
5061		var claimsScript = document.createElement('script');
5062		claimsScript.type = 'text/javascript';
5063		claimsScript.src = clientlibJs;
5064		if (claimsScript.readyState) {  // only required for IE <9
5065			claimsScript.onreadystatechange = function () {
5066				if (claimsScript.readyState === "loaded" || claimsScript.readyState === "complete") {
5067					claimsScript.onreadystatechange = null;
5068					successJsLoadCompleted();
5069				}
5070			};
5071		} else {  //Others
5072			claimsScript.onload = function () {
5073				successJsLoadCompleted();
5074			};
5075		}
5076		document.head.appendChild(claimsScript);
5077	} else {
5078		successJsLoadCompleted();
5079	}
5080}
5081
5082function existClaimsCTA() {
5083	return $("#modal-claims").length > 0;
5084}
5085
5086function downloadClaimsAppJSCompleted() {
5087	(function () {
5088		if (typeof window.CustomEvent === "function") return false; //If not IE
5089		function CustomEvent(event, params) {
5090			params = params || { bubbles: false, cancelable: false, detail: undefined };
5091			var evt = document.createEvent('CustomEvent');
5092			evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
5093			return evt;
5094		}
5095		CustomEvent.prototype = window.Event.prototype;
5096		window.CustomEvent = CustomEvent;
5097	})()
5098	var appInitEvent = new CustomEvent("initclaims");
5099	document.dispatchEvent(appInitEvent);
5100}
5101
5102function dynamicInviaEmailInit(labelFirstArgument, labelSecondArgument) {
5103	var clientlibJs = "/etc.clientlibs/inviaemail/clientlibs/clientlib-base.min.js";
5104	var clientlibCss = "/etc.clientlibs/inviaemail/clientlibs/clientlib-base.min.css";
5105	if (!existInviaEmailCTA()) {
5106		buildHTMLInviaEmailContainer(labelFirstArgument, labelSecondArgument);
5107		downloadInviaEmailAppCss(clientlibCss);
5108		downloadInviaEmailAppJS(clientlibJs, function () {
5109			downloadInviaEmailAppJSCompleted();
5110		});
5111	} else {
5112		prepareHTMLInviaEmailContainer(labelFirstArgument, labelSecondArgument);
5113		downloadInviaEmailAppJSCompleted();
5114	}
5115}
5116
5117function buildHTMLInviaEmailContainer(labelFirstArgument, labelSecondArgument) {
5118	var dynamicInviaEmailConfigPage = siteSettings.dynamicInviaEmail;
5119	var dynamicInviaEmailType = "modal";
5120	var dynamicInviaEmailTemplate = "inviaemailindividuals";
5121	var htmldynamicInviaEmailContainer = $("<div id=\"modal-inviaemail\" " +
5122		"data-dynamic=\"" + true + "\" " +
5123		"data-dynamic-arg-int-business=\"" + labelFirstArgument + " | " + labelSecondArgument + "\" " +
5124		"data-dynamic-page-path=\"" + dynamicInviaEmailConfigPage + "\" " +
5125		"data-dynamic-type=\"" + dynamicInviaEmailType + "\" " +
5126		"data-dynamic-configuration-template=\"" + dynamicInviaEmailTemplate + "\" " +
5127		"style=\"margin: 0 auto; display: block; position: absolute;\"></div>");
5128	document.body.appendChild(htmldynamicInviaEmailContainer[0]);
5129}
5130
5131function prepareHTMLInviaEmailContainer(labelFirstArgument, labelSecondArgument) {
5132	var dynamicInviaEmailConfigPage = siteSettings.dynamicInviaEmail;
5133	var dynamicInviaEmailType = "modal";
5134	var dynamicInviaEmailTemplate = "inviaemailindividuals";
5135	$("#modal-inviaemail").attr("data-dynamic", true);
5136	$("#modal-inviaemail").attr("data-dynamic-arg-int-business", labelFirstArgument + " | " + labelSecondArgument);
5137	$("#modal-inviaemail").attr("data-dynamic-page-path", dynamicInviaEmailConfigPage);
5138	$("#modal-inviaemail").attr("data-dynamic-type", dynamicInviaEmailType);
5139	$("#modal-inviaemail").attr("data-dynamic-configuration-template", dynamicInviaEmailTemplate);
5140}
5141
5142function downloadInviaEmailAppCss(clientlibCss) {
5143	var findCss = $("link[href='" + clientlibCss + "']");
5144	if (!findCss || findCss.length === 0) {
5145		var inviaEmailCSS = document.createElement('link');
5146		inviaEmailCSS.type = 'text/css';
5147		inviaEmailCSS.setAttribute('rel', 'stylesheet');
5148		inviaEmailCSS.setAttribute('href', clientlibCss);
5149		document.head.appendChild(inviaEmailCSS);
5150
5151		var inviaEmailCSSBase = document.createElement('base');
5152		inviaEmailCSSBase.setAttribute('href', '/etc.clientlibs/inviaemail/clientlibs/clientlib-site/resources/');
5153		document.head.appendChild(inviaEmailCSSBase);
5154	}
5155}
5156
5157function downloadInviaEmailAppJS(clientlibJs, successJsLoadCompleted) {
5158	var findJs = $("script[src='" + clientlibJs + "']");
5159	if (!findJs || findJs.length === 0) {
5160		var inviaEmailScript = document.createElement('script');
5161		inviaEmailScript.type = 'text/javascript';
5162		inviaEmailScript.src = clientlibJs;
5163		if (inviaEmailScript.readyState) {  // only required for IE <9
5164			inviaEmailScript.onreadystatechange = function () {
5165				if (inviaEmailScript.readyState === "loaded" || inviaEmailScript.readyState === "complete") {
5166					inviaEmailScript.onreadystatechange = null;
5167					successJsLoadCompleted();
5168				}
5169			};
5170		} else {  //Others
5171			inviaEmailScript.onload = function () {
5172				successJsLoadCompleted();
5173			};
5174		}
5175		document.head.appendChild(inviaEmailScript);
5176	} else {
5177		successJsLoadCompleted();
5178	}
5179}
5180
5181function existInviaEmailCTA() {
5182	return $("#modal-inviaemail").length > 0;
5183}
5184
5185function downloadInviaEmailAppJSCompleted() {
5186	(function () {
5187		if (typeof window.CustomEvent === "function") return false; //If not IE
5188		function CustomEvent(event, params) {
5189			params = params || { bubbles: false, cancelable: false, detail: undefined };
5190			var evt = document.createEvent('CustomEvent');
5191			evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
5192			return evt;
5193		}
5194		CustomEvent.prototype = window.Event.prototype;
5195		window.CustomEvent = CustomEvent;
5196	})()
5197	var appInitEvent = new CustomEvent("initinviaemail");
5198	document.dispatchEvent(appInitEvent);
5199}
5200

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.