!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/js/",n(n.s=53)}([function(t,e){t.exports=function(t){function e(t){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",t)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(t):"undefined"!=typeof eval?eval.call(null,t):e("EvalError: No eval function available")}catch(t){e(t)}}},function(t,e,n){var r=n(13)("wks"),i=n(14),a=n(2).Symbol,o="function"==typeof a;(t.exports=function(t){return r[t]||(r[t]=o&&a[t]||(o?a:i)("Symbol."+t))}).store=r},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(8);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(7),i=n(21);t.exports=n(6)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=!n(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(4),i=n(34),a=n(35),o=Object.defineProperty;e.f=n(6)?Object.defineProperty:function(t,e,n){if(r(t),e=a(e,!0),r(n),i)try{return o(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){t.exports={}},function(t,e,n){var r=n(2),i=n(5),a=n(9),o=n(14)("src"),s=n(36),l=(""+s).split("toString");n(3).inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(a(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(a(n,o)||i(n,o,t[e]?""+t[e]:l.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[o]||s.call(this)})},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(3),i=n(2),a=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(19)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e,n){var r=n(22);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13)("keys"),i=n(14);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e){t.exports=!1},function(t,e,n){var r=n(8),i=n(2).document,a=r(i)&&r(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var r=n(43),i=n(16);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(7).f,i=n(9),a=n(1)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},function(t,e,n){var r=n(12),i=n(1)("toStringTag"),a="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:a?r(e):"Object"==(o=r(e))&&"function"==typeof e.callee?"Arguments":o}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(2),i=n(3),a=n(5),o=n(11),s=n(17),l=function(t,e,n){var c,u,d,p,h=t&l.F,f=t&l.G,m=t&l.S,g=t&l.P,v=t&l.B,b=f?r:m?r[e]||(r[e]={}):(r[e]||{}).prototype,y=f?i:i[e]||(i[e]={}),w=y.prototype||(y.prototype={});for(c in f&&(n=e),n)d=((u=!h&&b&&void 0!==b[c])?b:n)[c],p=v&&u?s(d,r):g&&"function"==typeof d?s(Function.call,d):d,b&&o(b,c,d,t&l.U),y[c]!=d&&a(y,c,p),g&&w[c]!=d&&(w[c]=d)};r.core=i,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},function(t,e,n){var r=n(15),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){"use strict";var r=n(19),i=n(27),a=n(11),o=n(5),s=n(10),l=n(39),c=n(24),u=n(46),d=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,f,m,g,v){l(n,e,f);var b,y,w,x=function(t){if(!p&&t in S)return S[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},_=e+" Iterator",k="values"==m,T=!1,S=t.prototype,P=S[d]||S["@@iterator"]||m&&S[m],C=P||x(m),j=m?k?x("entries"):C:void 0,$="Array"==e&&S.entries||P;if($&&(w=u($.call(new t)))!==Object.prototype&&w.next&&(c(w,_,!0),r||"function"==typeof w[d]||o(w,d,h)),k&&P&&"values"!==P.name&&(T=!0,C=function(){return P.call(this)}),r&&!v||!p&&!T&&S[d]||o(S,d,C),s[e]=C,s[_]=h,m)if(b={values:k?C:x("values"),keys:g?C:x("keys"),entries:j},v)for(y in b)y in S||a(S,y,b[y]);else i(i.P+i.F*(p||T),e,b);return b}},function(t,e,n){var r=n(42),i=n(29);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){var r=n(2).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){t.exports=!n(6)&&!n(26)(function(){return 7!=Object.defineProperty(n(20)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(8);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){t.exports=n(13)("native-function-to-string",Function.toString)},function(t,e,n){"use strict";var r=n(38)(!0);n(30)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var r=n(15),i=n(16);t.exports=function(t){return function(e,n){var a,o,s=String(i(e)),l=r(n),c=s.length;return l<0||l>=c?t?"":void 0:(a=s.charCodeAt(l))<55296||a>56319||l+1===c||(o=s.charCodeAt(l+1))<56320||o>57343?t?s.charAt(l):a:t?s.slice(l,l+2):o-56320+(a-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(40),i=n(21),a=n(24),o={};n(5)(o,n(1)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(o,{next:i(1,n)}),a(t,e+" Iterator")}},function(t,e,n){var r=n(4),i=n(41),a=n(29),o=n(18)("IE_PROTO"),s=function(){},l=function(){var t,e=n(20)("iframe"),r=a.length;for(e.style.display="none",n(32).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),l=t.F;r--;)delete l.prototype[a[r]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[o]=t):n=l(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(7),i=n(4),a=n(31);t.exports=n(6)?Object.defineProperties:function(t,e){i(t);for(var n,o=a(e),s=o.length,l=0;s>l;)r.f(t,n=o[l++],e[n]);return t}},function(t,e,n){var r=n(9),i=n(23),a=n(44)(!1),o=n(18)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),l=0,c=[];for(n in s)n!=o&&r(s,n)&&c.push(n);for(;e.length>l;)r(s,n=e[l++])&&(~a(c,n)||c.push(n));return c}},function(t,e,n){var r=n(12);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(23),i=n(28),a=n(45);t.exports=function(t){return function(e,n,o){var s,l=r(e),c=i(l.length),u=a(o,c);if(t&&n!=n){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((t||u in l)&&l[u]===n)return t||u||0;return!t&&-1}}},function(t,e,n){var r=n(15),i=Math.max,a=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):a(t,e)}},function(t,e,n){var r=n(9),i=n(33),a=n(18)("IE_PROTO"),o=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},function(t,e,n){var r=n(4);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var a=t.return;throw void 0!==a&&r(a.call(t)),e}}},function(t,e,n){var r=n(10),i=n(1)("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[i]===t)}},function(t,e,n){var r=n(25),i=n(1)("iterator"),a=n(10);t.exports=n(3).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||a[r(t)]}},function(t,e,n){var r=n(1)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){return{done:n=!0}},a[r]=function(){return o},t(a)}catch(t){}return n}},function(t,e,n){var r,i,a,o=n(17),s=n(64),l=n(32),c=n(20),u=n(2),d=u.process,p=u.setImmediate,h=u.clearImmediate,f=u.MessageChannel,m=u.Dispatch,g=0,v={},b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++g]=function(){s("function"==typeof t?t:Function(t),e)},r(g),g},h=function(t){delete v[t]},"process"==n(12)(d)?r=function(t){d.nextTick(o(b,t,1))}:m&&m.now?r=function(t){m.now(o(b,t,1))}:f?(a=(i=new f).port2,i.port1.onmessage=y,r=o(a.postMessage,a,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(t){u.postMessage(t+"","*")},u.addEventListener("message",y,!1)):r="onreadystatechange"in c("script")?function(t){l.appendChild(c("script")).onreadystatechange=function(){l.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){"use strict";var r=n(22);function i(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new i(t)}},function(t,e,n){function r(t){t.keys().forEach(t)}n(54),r(n(71)),r(n(76)),r(n(97)),r(n(202))},function(t,e,n){n(55),n(37),n(56),n(60),t.exports=n(3).Promise},function(t,e,n){"use strict";var r=n(25),i={};i[n(1)("toStringTag")]="z",i+""!="[object z]"&&n(11)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(t,e,n){for(var r=n(57),i=n(31),a=n(11),o=n(2),s=n(5),l=n(10),c=n(1),u=c("iterator"),d=c("toStringTag"),p=l.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=i(h),m=0;m<f.length;m++){var g,v=f[m],b=h[v],y=o[v],w=y&&y.prototype;if(w&&(w[u]||s(w,u,p),w[d]||s(w,d,v),l[v]=p,b))for(g in r)w[g]||a(w,g,r[g],!0)}},function(t,e,n){"use strict";var r=n(58),i=n(59),a=n(10),o=n(23);t.exports=n(30)(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(1)("unscopables"),i=Array.prototype;null==i[r]&&n(5)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r,i,a,o,s=n(19),l=n(2),c=n(17),u=n(25),d=n(27),p=n(8),h=n(22),f=n(61),m=n(62),g=n(63),v=n(51).set,b=n(65)(),y=n(52),w=n(66),x=n(67),_=n(68),k=l.TypeError,T=l.process,S=T&&T.versions,P=S&&S.v8||"",C=l.Promise,j="process"==u(T),$=function(){},E=i=y.f,I=!!function(){try{var t=C.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t($,$)};return(j||"function"==typeof PromiseRejectionEvent)&&t.then($)instanceof e&&0!==P.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),O=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},L=function(t,e){if(!t._n){t._n=!0;var n=t._c;b(function(){for(var r=t._v,i=1==t._s,a=0,o=function(e){var n,a,o,s=i?e.ok:e.fail,l=e.resolve,c=e.reject,u=e.domain;try{s?(i||(2==t._h&&R(t),t._h=1),!0===s?n=r:(u&&u.enter(),n=s(r),u&&(u.exit(),o=!0)),n===e.promise?c(k("Promise-chain cycle")):(a=O(n))?a.call(n,l,c):l(n)):c(r)}catch(t){u&&!o&&u.exit(),c(t)}};n.length>a;)o(n[a++]);t._c=[],t._n=!1,e&&!t._h&&A(t)})}},A=function(t){v.call(l,function(){var e,n,r,i=t._v,a=F(t);if(a&&(e=w(function(){j?T.emit("unhandledRejection",i,t):(n=l.onunhandledrejection)?n({promise:t,reason:i}):(r=l.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=j||F(t)?2:1),t._a=void 0,a&&e.e)throw e.v})},F=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){v.call(l,function(){var e;j?T.emit("rejectionHandled",t):(e=l.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),L(e,!0))},M=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=O(t))?b(function(){var r={_w:n,_d:!1};try{e.call(t,c(M,r,1),c(N,r,1))}catch(t){N.call(r,t)}}):(n._v=t,n._s=1,L(n,!1))}catch(t){N.call({_w:n,_d:!1},t)}}};I||(C=function(t){f(this,C,"Promise","_h"),h(t),r.call(this);try{t(c(M,this,1),c(N,this,1))}catch(t){N.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(69)(C.prototype,{then:function(t,e){var n=E(g(this,C));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=j?T.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&L(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),a=function(){var t=new r;this.promise=t,this.resolve=c(M,t,1),this.reject=c(N,t,1)},y.f=E=function(t){return t===C||t===o?new a(t):i(t)}),d(d.G+d.W+d.F*!I,{Promise:C}),n(24)(C,"Promise"),n(70)("Promise"),o=n(3).Promise,d(d.S+d.F*!I,"Promise",{reject:function(t){var e=E(this);return(0,e.reject)(t),e.promise}}),d(d.S+d.F*(s||!I),"Promise",{resolve:function(t){return _(s&&this===o?C:this,t)}}),d(d.S+d.F*!(I&&n(50)(function(t){C.all(t).catch($)})),"Promise",{all:function(t){var e=this,n=E(e),r=n.resolve,i=n.reject,a=w(function(){var n=[],a=0,o=1;m(t,!1,function(t){var s=a++,l=!1;n.push(void 0),o++,e.resolve(t).then(function(t){l||(l=!0,n[s]=t,--o||r(n))},i)}),--o||r(n)});return a.e&&i(a.v),n.promise},race:function(t){var e=this,n=E(e),r=n.reject,i=w(function(){m(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(17),i=n(47),a=n(48),o=n(4),s=n(28),l=n(49),c={},u={};(e=t.exports=function(t,e,n,d,p){var h,f,m,g,v=p?function(){return t}:l(t),b=r(n,d,e?2:1),y=0;if("function"!=typeof v)throw TypeError(t+" is not iterable!");if(a(v)){for(h=s(t.length);h>y;y++)if((g=e?b(o(f=t[y])[0],f[1]):b(t[y]))===c||g===u)return g}else for(m=v.call(t);!(f=m.next()).done;)if((g=i(m,b,f.value,e))===c||g===u)return g}).BREAK=c,e.RETURN=u},function(t,e,n){var r=n(4),i=n(22),a=n(1)("species");t.exports=function(t,e){var n,o=r(t).constructor;return void 0===o||null==(n=r(o)[a])?e:i(n)}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(2),i=n(51).set,a=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,l="process"==n(12)(o);t.exports=function(){var t,e,n,c=function(){var r,i;for(l&&(r=o.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(l)n=function(){o.nextTick(c)};else if(!a||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(c)}}else n=function(){i.call(r,c)};else{var d=!0,p=document.createTextNode("");new a(c).observe(p,{characterData:!0}),n=function(){p.data=d=!d}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(2).navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var r=n(4),i=n(8),a=n(52);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=a.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(11);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},function(t,e,n){"use strict";var r=n(2),i=n(7),a=n(6),o=n(1)("species");t.exports=function(t){var e=r[t];a&&e&&!e[o]&&i.f(e,o,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r={"./jquery-2.1.1.min.js":72,"./jquery-ui.min.js":74};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=71},function(t,e,n){n(0)(n(73)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Libraries/jquery-2.1.1.min.js")},function(t,e){t.exports='/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */\r\n!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\\\x20\\\\t\\\\r\\\\n\\\\f]",N="(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+",O=N.replace("w","w#"),P="\\\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:\'((?:\\\\\\\\.|[^\\\\\\\\\'])*)\'|\\"((?:\\\\\\\\.|[^\\\\\\\\\\"])*)\\"|("+O+"))|)"+M+"*\\\\]",Q=":("+N+")(?:\\\\(((\'((?:\\\\\\\\.|[^\\\\\\\\\'])*)\'|\\"((?:\\\\\\\\.|[^\\\\\\\\\\"])*)\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|"+P+")*)|.*)\\\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\\\]\'\\"]*?)"+M+"*\\\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\("+M+"*(even|odd|(([+-]|)(\\\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\\\d+)|))"+M+"*\\\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\("+M+"*((?:-\\\\d)?\\\\d*)"+M+"*\\\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,$=/^[^{]+\\{\\s*\\[native \\w/,_=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ab=/[+~]/,bb=/\'|\\\\/g,cb=new RegExp("\\\\\\\\([\\\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\\\$&"):b.setAttribute("id",s),s="[id=\'"+s+"\'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class=\'a\'></div><div class=\'a i\'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=\'\'><option selected=\'\'></option></select>",a.querySelectorAll("[msallowclip^=\'\']").length&&q.push("[*^$]="+M+"*(?:\'\'|\\"\\")"),a.querySelectorAll("[selected]").length||q.push("\\\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!=\'\']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"=\'$1\']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href=\'#\'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^.[^:#\\[\\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)\r\n},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\\\.)"+p.join("\\\\.(?:.*\\\\.|)")+"(\\\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\\\.)"+r.join("\\\\.(?:.*\\\\.|)")+"(\\\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,bb=/<([\\w:]+)/,cb=/<|&#?\\w+;/,db=/<(?:script|style|link)/i,eb=/checked\\s*(?:[^=]|=\\s*.checked.)/i,fb=/^$|\\/(?:java|ecma)script/i,gb=/^true\\/(.*)/,hb=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,ib={option:[1,"<select multiple=\'multiple\'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder=\'0\' width=\'0\' height=\'0\'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))\r\n},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\\t\\r\\n\\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\\/\\//,mc=/^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\\[\\]$/,yc=/\\r?\\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\\r\\n")}}):{name:b.name,value:c.replace(yc,"\\r\\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\\?(?=&|$)|\\?\\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});\r\n'},function(t,e,n){n(0)(n(75)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Libraries/jquery-ui.min.js")},function(t,e){t.exports='/*! jQuery UI - v1.11.4 - 2016-02-05\r\n* http://jqueryui.com\r\n* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js\r\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\r\n\r\n(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap=\'#"+a+"\']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method \'"+a+"\' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method \'"+a+"\'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\\w:-]*)\\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget,function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,c=/[\\+\\-]\\d+(\\.[\\d]+)?%?/,d=/^\\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style=\'display:block;position:absolute;width:50px;height:50px;overflow:hidden;\'><div style=\'height:100px;width:auto;\'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,_,b,y=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),D={};return b=s(y),y[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,_=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=c.exec(i[0]),t=c.exec(i[1]),D[this]=[e?e[0]:0,t?t[0]:0],n[this]=[d.exec(i[0])[0],d.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?_.left+=m:"center"===n.at[0]&&(_.left+=m/2),"bottom"===n.at[1]?_.top+=g:"center"===n.at[1]&&(_.top+=g/2),p=t(D.at,m,g),_.left+=p[0],_.top+=p[1],this.each(function(){var s,l,u=e(this),c=u.outerWidth(),d=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),T=c+f+i(this,"marginRight")+w.width,S=d+b+i(this,"marginBottom")+w.height,M=e.extend({},_),N=t(D.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=c:"center"===n.my[0]&&(M.left-=c/2),"bottom"===n.my[1]?M.top-=d:"center"===n.my[1]&&(M.top-=d/2),M.left+=N[0],M.top+=N[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:c,elemHeight:d,collisionPosition:s,collisionWidth:T,collisionHeight:S,offset:[p[0]+N[0],p[1]+N[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-c,s=v.top-M.top,a=s+g-d,h={target:{element:y,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:c,height:d},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};c>m&&m>r(t+i)&&(h.horizontal="center"),d>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,c=l+t.collisionWidth-o-h,d="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+d+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=d+p+f)):c>0&&(s=e.left-t.collisionPosition.marginLeft+d+p+f-h,(s>0||c>r(s))&&(e.left+=d+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,c=l+t.collisionHeight-o-h,d="top"===t.my[1],p=d?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):c>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||c>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup=\'true\']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\\-\\u2014\\u2013\\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,"\\\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()\r\n},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,"\\\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete});'},function(t,e,n){var r={"./hammer.min.js":77,"./handlebars-v4.1.2.js":79,"./jRespond.min.js":81,"./jquery.fancybox.js":83,"./jquery.flexslider.js":85,"./jquery.superslides.js":87,"./jquery.velocity.min.js":89,"./masonry.pkgd.min.js":91,"./selectize.js":93,"./viewport.js":95};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=76},function(t,e,n){n(0)(n(78)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/hammer.min.js")},function(t,e){t.exports='/*! Hammer.JS - v2.0.4 - 2014-09-28\r\n * http://hammerjs.github.io/\r\n *\r\n * Copyright (c) 2014 Jorik Tangelder;\r\n * Licensed under the MIT license */\r\n!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");'},function(t,e,n){n(0)(n(80)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/handlebars-v4.1.2.js")},function(t,e){t.exports="/**!\r\n\r\n @license\r\n handlebars v4.1.2\r\n\r\nCopyright (C) 2011-2017 by Yehuda Katz\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.\r\n\r\n*/\r\n(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory();\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"Handlebars\"] = factory();\r\n\telse\r\n\t\troot[\"Handlebars\"] = factory();\r\n})(this, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId])\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\texports: {},\r\n/******/ \t\t\tid: moduleId,\r\n/******/ \t\t\tloaded: false\r\n/******/ \t\t};\r\n\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.loaded = true;\r\n\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n\r\n\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _handlebarsRuntime = __webpack_require__(2);\r\n\r\n\tvar _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime);\r\n\r\n\t// Compiler imports\r\n\r\n\tvar _handlebarsCompilerAst = __webpack_require__(35);\r\n\r\n\tvar _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);\r\n\r\n\tvar _handlebarsCompilerBase = __webpack_require__(36);\r\n\r\n\tvar _handlebarsCompilerCompiler = __webpack_require__(41);\r\n\r\n\tvar _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);\r\n\r\n\tvar _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);\r\n\r\n\tvar _handlebarsCompilerVisitor = __webpack_require__(39);\r\n\r\n\tvar _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);\r\n\r\n\tvar _handlebarsNoConflict = __webpack_require__(34);\r\n\r\n\tvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\r\n\r\n\tvar _create = _handlebarsRuntime2['default'].create;\r\n\tfunction create() {\r\n\t  var hb = _create();\r\n\r\n\t  hb.compile = function (input, options) {\r\n\t    return _handlebarsCompilerCompiler.compile(input, options, hb);\r\n\t  };\r\n\t  hb.precompile = function (input, options) {\r\n\t    return _handlebarsCompilerCompiler.precompile(input, options, hb);\r\n\t  };\r\n\r\n\t  hb.AST = _handlebarsCompilerAst2['default'];\r\n\t  hb.Compiler = _handlebarsCompilerCompiler.Compiler;\r\n\t  hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];\r\n\t  hb.Parser = _handlebarsCompilerBase.parser;\r\n\t  hb.parse = _handlebarsCompilerBase.parse;\r\n\r\n\t  return hb;\r\n\t}\r\n\r\n\tvar inst = create();\r\n\tinst.create = create;\r\n\r\n\t_handlebarsNoConflict2['default'](inst);\r\n\r\n\tinst.Visitor = _handlebarsCompilerVisitor2['default'];\r\n\r\n\tinst['default'] = inst;\r\n\r\n\texports['default'] = inst;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\n\t\"use strict\";\r\n\r\n\texports[\"default\"] = function (obj) {\r\n\t  return obj && obj.__esModule ? obj : {\r\n\t    \"default\": obj\r\n\t  };\r\n\t};\r\n\r\n\texports.__esModule = true;\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireWildcard = __webpack_require__(3)['default'];\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _handlebarsBase = __webpack_require__(4);\r\n\r\n\tvar base = _interopRequireWildcard(_handlebarsBase);\r\n\r\n\t// Each of these augment the Handlebars object. No need to setup here.\r\n\t// (This is done to easily share code between commonjs and browse envs)\r\n\r\n\tvar _handlebarsSafeString = __webpack_require__(21);\r\n\r\n\tvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\r\n\r\n\tvar _handlebarsException = __webpack_require__(6);\r\n\r\n\tvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\r\n\r\n\tvar _handlebarsUtils = __webpack_require__(5);\r\n\r\n\tvar Utils = _interopRequireWildcard(_handlebarsUtils);\r\n\r\n\tvar _handlebarsRuntime = __webpack_require__(22);\r\n\r\n\tvar runtime = _interopRequireWildcard(_handlebarsRuntime);\r\n\r\n\tvar _handlebarsNoConflict = __webpack_require__(34);\r\n\r\n\tvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\r\n\r\n\t// For compatibility and usage outside of module systems, make the Handlebars object a namespace\r\n\tfunction create() {\r\n\t  var hb = new base.HandlebarsEnvironment();\r\n\r\n\t  Utils.extend(hb, base);\r\n\t  hb.SafeString = _handlebarsSafeString2['default'];\r\n\t  hb.Exception = _handlebarsException2['default'];\r\n\t  hb.Utils = Utils;\r\n\t  hb.escapeExpression = Utils.escapeExpression;\r\n\r\n\t  hb.VM = runtime;\r\n\t  hb.template = function (spec) {\r\n\t    return runtime.template(spec, hb);\r\n\t  };\r\n\r\n\t  return hb;\r\n\t}\r\n\r\n\tvar inst = create();\r\n\tinst.create = create;\r\n\r\n\t_handlebarsNoConflict2['default'](inst);\r\n\r\n\tinst['default'] = inst;\r\n\r\n\texports['default'] = inst;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports) {\r\n\r\n\t\"use strict\";\r\n\r\n\texports[\"default\"] = function (obj) {\r\n\t  if (obj && obj.__esModule) {\r\n\t    return obj;\r\n\t  } else {\r\n\t    var newObj = {};\r\n\r\n\t    if (obj != null) {\r\n\t      for (var key in obj) {\r\n\t        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\r\n\t      }\r\n\t    }\r\n\r\n\t    newObj[\"default\"] = obj;\r\n\t    return newObj;\r\n\t  }\r\n\t};\r\n\r\n\texports.__esModule = true;\r\n\r\n/***/ }),\r\n/* 4 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.HandlebarsEnvironment = HandlebarsEnvironment;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tvar _helpers = __webpack_require__(10);\r\n\r\n\tvar _decorators = __webpack_require__(18);\r\n\r\n\tvar _logger = __webpack_require__(20);\r\n\r\n\tvar _logger2 = _interopRequireDefault(_logger);\r\n\r\n\tvar VERSION = '4.1.2';\r\n\texports.VERSION = VERSION;\r\n\tvar COMPILER_REVISION = 7;\r\n\r\n\texports.COMPILER_REVISION = COMPILER_REVISION;\r\n\tvar REVISION_CHANGES = {\r\n\t  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\r\n\t  2: '== 1.0.0-rc.3',\r\n\t  3: '== 1.0.0-rc.4',\r\n\t  4: '== 1.x.x',\r\n\t  5: '== 2.0.0-alpha.x',\r\n\t  6: '>= 2.0.0-beta.1',\r\n\t  7: '>= 4.0.0'\r\n\t};\r\n\r\n\texports.REVISION_CHANGES = REVISION_CHANGES;\r\n\tvar objectType = '[object Object]';\r\n\r\n\tfunction HandlebarsEnvironment(helpers, partials, decorators) {\r\n\t  this.helpers = helpers || {};\r\n\t  this.partials = partials || {};\r\n\t  this.decorators = decorators || {};\r\n\r\n\t  _helpers.registerDefaultHelpers(this);\r\n\t  _decorators.registerDefaultDecorators(this);\r\n\t}\r\n\r\n\tHandlebarsEnvironment.prototype = {\r\n\t  constructor: HandlebarsEnvironment,\r\n\r\n\t  logger: _logger2['default'],\r\n\t  log: _logger2['default'].log,\r\n\r\n\t  registerHelper: function registerHelper(name, fn) {\r\n\t    if (_utils.toString.call(name) === objectType) {\r\n\t      if (fn) {\r\n\t        throw new _exception2['default']('Arg not supported with multiple helpers');\r\n\t      }\r\n\t      _utils.extend(this.helpers, name);\r\n\t    } else {\r\n\t      this.helpers[name] = fn;\r\n\t    }\r\n\t  },\r\n\t  unregisterHelper: function unregisterHelper(name) {\r\n\t    delete this.helpers[name];\r\n\t  },\r\n\r\n\t  registerPartial: function registerPartial(name, partial) {\r\n\t    if (_utils.toString.call(name) === objectType) {\r\n\t      _utils.extend(this.partials, name);\r\n\t    } else {\r\n\t      if (typeof partial === 'undefined') {\r\n\t        throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\r\n\t      }\r\n\t      this.partials[name] = partial;\r\n\t    }\r\n\t  },\r\n\t  unregisterPartial: function unregisterPartial(name) {\r\n\t    delete this.partials[name];\r\n\t  },\r\n\r\n\t  registerDecorator: function registerDecorator(name, fn) {\r\n\t    if (_utils.toString.call(name) === objectType) {\r\n\t      if (fn) {\r\n\t        throw new _exception2['default']('Arg not supported with multiple decorators');\r\n\t      }\r\n\t      _utils.extend(this.decorators, name);\r\n\t    } else {\r\n\t      this.decorators[name] = fn;\r\n\t    }\r\n\t  },\r\n\t  unregisterDecorator: function unregisterDecorator(name) {\r\n\t    delete this.decorators[name];\r\n\t  }\r\n\t};\r\n\r\n\tvar log = _logger2['default'].log;\r\n\r\n\texports.log = log;\r\n\texports.createFrame = _utils.createFrame;\r\n\texports.logger = _logger2['default'];\r\n\r\n/***/ }),\r\n/* 5 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\texports.extend = extend;\r\n\texports.indexOf = indexOf;\r\n\texports.escapeExpression = escapeExpression;\r\n\texports.isEmpty = isEmpty;\r\n\texports.createFrame = createFrame;\r\n\texports.blockParams = blockParams;\r\n\texports.appendContextPath = appendContextPath;\r\n\tvar escape = {\r\n\t  '&': '&amp;',\r\n\t  '<': '&lt;',\r\n\t  '>': '&gt;',\r\n\t  '\"': '&quot;',\r\n\t  \"'\": '&#x27;',\r\n\t  '`': '&#x60;',\r\n\t  '=': '&#x3D;'\r\n\t};\r\n\r\n\tvar badChars = /[&<>\"'`=]/g,\r\n\t    possible = /[&<>\"'`=]/;\r\n\r\n\tfunction escapeChar(chr) {\r\n\t  return escape[chr];\r\n\t}\r\n\r\n\tfunction extend(obj /* , ...source */) {\r\n\t  for (var i = 1; i < arguments.length; i++) {\r\n\t    for (var key in arguments[i]) {\r\n\t      if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\r\n\t        obj[key] = arguments[i][key];\r\n\t      }\r\n\t    }\r\n\t  }\r\n\r\n\t  return obj;\r\n\t}\r\n\r\n\tvar toString = Object.prototype.toString;\r\n\r\n\texports.toString = toString;\r\n\t// Sourced from lodash\r\n\t// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\r\n\t/* eslint-disable func-style */\r\n\tvar isFunction = function isFunction(value) {\r\n\t  return typeof value === 'function';\r\n\t};\r\n\t// fallback for older versions of Chrome and Safari\r\n\t/* istanbul ignore next */\r\n\tif (isFunction(/x/)) {\r\n\t  exports.isFunction = isFunction = function (value) {\r\n\t    return typeof value === 'function' && toString.call(value) === '[object Function]';\r\n\t  };\r\n\t}\r\n\texports.isFunction = isFunction;\r\n\r\n\t/* eslint-enable func-style */\r\n\r\n\t/* istanbul ignore next */\r\n\tvar isArray = Array.isArray || function (value) {\r\n\t  return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\r\n\t};\r\n\r\n\texports.isArray = isArray;\r\n\t// Older IE versions do not directly support indexOf so we must implement our own, sadly.\r\n\r\n\tfunction indexOf(array, value) {\r\n\t  for (var i = 0, len = array.length; i < len; i++) {\r\n\t    if (array[i] === value) {\r\n\t      return i;\r\n\t    }\r\n\t  }\r\n\t  return -1;\r\n\t}\r\n\r\n\tfunction escapeExpression(string) {\r\n\t  if (typeof string !== 'string') {\r\n\t    // don't escape SafeStrings, since they're already safe\r\n\t    if (string && string.toHTML) {\r\n\t      return string.toHTML();\r\n\t    } else if (string == null) {\r\n\t      return '';\r\n\t    } else if (!string) {\r\n\t      return string + '';\r\n\t    }\r\n\r\n\t    // Force a string conversion as this will be done by the append regardless and\r\n\t    // the regex test will do this transparently behind the scenes, causing issues if\r\n\t    // an object's to string has escaped characters in it.\r\n\t    string = '' + string;\r\n\t  }\r\n\r\n\t  if (!possible.test(string)) {\r\n\t    return string;\r\n\t  }\r\n\t  return string.replace(badChars, escapeChar);\r\n\t}\r\n\r\n\tfunction isEmpty(value) {\r\n\t  if (!value && value !== 0) {\r\n\t    return true;\r\n\t  } else if (isArray(value) && value.length === 0) {\r\n\t    return true;\r\n\t  } else {\r\n\t    return false;\r\n\t  }\r\n\t}\r\n\r\n\tfunction createFrame(object) {\r\n\t  var frame = extend({}, object);\r\n\t  frame._parent = object;\r\n\t  return frame;\r\n\t}\r\n\r\n\tfunction blockParams(params, ids) {\r\n\t  params.path = ids;\r\n\t  return params;\r\n\t}\r\n\r\n\tfunction appendContextPath(contextPath, id) {\r\n\t  return (contextPath ? contextPath + '.' : '') + id;\r\n\t}\r\n\r\n/***/ }),\r\n/* 6 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _Object$defineProperty = __webpack_require__(7)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\r\n\r\n\tfunction Exception(message, node) {\r\n\t  var loc = node && node.loc,\r\n\t      line = undefined,\r\n\t      column = undefined;\r\n\t  if (loc) {\r\n\t    line = loc.start.line;\r\n\t    column = loc.start.column;\r\n\r\n\t    message += ' - ' + line + ':' + column;\r\n\t  }\r\n\r\n\t  var tmp = Error.prototype.constructor.call(this, message);\r\n\r\n\t  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\r\n\t  for (var idx = 0; idx < errorProps.length; idx++) {\r\n\t    this[errorProps[idx]] = tmp[errorProps[idx]];\r\n\t  }\r\n\r\n\t  /* istanbul ignore else */\r\n\t  if (Error.captureStackTrace) {\r\n\t    Error.captureStackTrace(this, Exception);\r\n\t  }\r\n\r\n\t  try {\r\n\t    if (loc) {\r\n\t      this.lineNumber = line;\r\n\r\n\t      // Work around issue under safari where we can't directly set the column value\r\n\t      /* istanbul ignore next */\r\n\t      if (_Object$defineProperty) {\r\n\t        Object.defineProperty(this, 'column', {\r\n\t          value: column,\r\n\t          enumerable: true\r\n\t        });\r\n\t      } else {\r\n\t        this.column = column;\r\n\t      }\r\n\t    }\r\n\t  } catch (nop) {\r\n\t    /* Ignore if the browser is very particular */\r\n\t  }\r\n\t}\r\n\r\n\tException.prototype = new Error();\r\n\r\n\texports['default'] = Exception;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 7 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\tmodule.exports = { \"default\": __webpack_require__(8), __esModule: true };\r\n\r\n/***/ }),\r\n/* 8 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\tvar $ = __webpack_require__(9);\r\n\tmodule.exports = function defineProperty(it, key, desc){\r\n\t  return $.setDesc(it, key, desc);\r\n\t};\r\n\r\n/***/ }),\r\n/* 9 */\r\n/***/ (function(module, exports) {\r\n\r\n\tvar $Object = Object;\r\n\tmodule.exports = {\r\n\t  create:     $Object.create,\r\n\t  getProto:   $Object.getPrototypeOf,\r\n\t  isEnum:     {}.propertyIsEnumerable,\r\n\t  getDesc:    $Object.getOwnPropertyDescriptor,\r\n\t  setDesc:    $Object.defineProperty,\r\n\t  setDescs:   $Object.defineProperties,\r\n\t  getKeys:    $Object.keys,\r\n\t  getNames:   $Object.getOwnPropertyNames,\r\n\t  getSymbols: $Object.getOwnPropertySymbols,\r\n\t  each:       [].forEach\r\n\t};\r\n\r\n/***/ }),\r\n/* 10 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.registerDefaultHelpers = registerDefaultHelpers;\r\n\r\n\tvar _helpersBlockHelperMissing = __webpack_require__(11);\r\n\r\n\tvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\r\n\r\n\tvar _helpersEach = __webpack_require__(12);\r\n\r\n\tvar _helpersEach2 = _interopRequireDefault(_helpersEach);\r\n\r\n\tvar _helpersHelperMissing = __webpack_require__(13);\r\n\r\n\tvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\r\n\r\n\tvar _helpersIf = __webpack_require__(14);\r\n\r\n\tvar _helpersIf2 = _interopRequireDefault(_helpersIf);\r\n\r\n\tvar _helpersLog = __webpack_require__(15);\r\n\r\n\tvar _helpersLog2 = _interopRequireDefault(_helpersLog);\r\n\r\n\tvar _helpersLookup = __webpack_require__(16);\r\n\r\n\tvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\r\n\r\n\tvar _helpersWith = __webpack_require__(17);\r\n\r\n\tvar _helpersWith2 = _interopRequireDefault(_helpersWith);\r\n\r\n\tfunction registerDefaultHelpers(instance) {\r\n\t  _helpersBlockHelperMissing2['default'](instance);\r\n\t  _helpersEach2['default'](instance);\r\n\t  _helpersHelperMissing2['default'](instance);\r\n\t  _helpersIf2['default'](instance);\r\n\t  _helpersLog2['default'](instance);\r\n\t  _helpersLookup2['default'](instance);\r\n\t  _helpersWith2['default'](instance);\r\n\t}\r\n\r\n/***/ }),\r\n/* 11 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('blockHelperMissing', function (context, options) {\r\n\t    var inverse = options.inverse,\r\n\t        fn = options.fn;\r\n\r\n\t    if (context === true) {\r\n\t      return fn(this);\r\n\t    } else if (context === false || context == null) {\r\n\t      return inverse(this);\r\n\t    } else if (_utils.isArray(context)) {\r\n\t      if (context.length > 0) {\r\n\t        if (options.ids) {\r\n\t          options.ids = [options.name];\r\n\t        }\r\n\r\n\t        return instance.helpers.each(context, options);\r\n\t      } else {\r\n\t        return inverse(this);\r\n\t      }\r\n\t    } else {\r\n\t      if (options.data && options.ids) {\r\n\t        var data = _utils.createFrame(options.data);\r\n\t        data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\r\n\t        options = { data: data };\r\n\t      }\r\n\r\n\t      return fn(context, options);\r\n\t    }\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 12 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('each', function (context, options) {\r\n\t    if (!options) {\r\n\t      throw new _exception2['default']('Must pass iterator to #each');\r\n\t    }\r\n\r\n\t    var fn = options.fn,\r\n\t        inverse = options.inverse,\r\n\t        i = 0,\r\n\t        ret = '',\r\n\t        data = undefined,\r\n\t        contextPath = undefined;\r\n\r\n\t    if (options.data && options.ids) {\r\n\t      contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\r\n\t    }\r\n\r\n\t    if (_utils.isFunction(context)) {\r\n\t      context = context.call(this);\r\n\t    }\r\n\r\n\t    if (options.data) {\r\n\t      data = _utils.createFrame(options.data);\r\n\t    }\r\n\r\n\t    function execIteration(field, index, last) {\r\n\t      if (data) {\r\n\t        data.key = field;\r\n\t        data.index = index;\r\n\t        data.first = index === 0;\r\n\t        data.last = !!last;\r\n\r\n\t        if (contextPath) {\r\n\t          data.contextPath = contextPath + field;\r\n\t        }\r\n\t      }\r\n\r\n\t      ret = ret + fn(context[field], {\r\n\t        data: data,\r\n\t        blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\r\n\t      });\r\n\t    }\r\n\r\n\t    if (context && typeof context === 'object') {\r\n\t      if (_utils.isArray(context)) {\r\n\t        for (var j = context.length; i < j; i++) {\r\n\t          if (i in context) {\r\n\t            execIteration(i, i, i === context.length - 1);\r\n\t          }\r\n\t        }\r\n\t      } else {\r\n\t        var priorKey = undefined;\r\n\r\n\t        for (var key in context) {\r\n\t          if (context.hasOwnProperty(key)) {\r\n\t            // We're running the iterations one step out of sync so we can detect\r\n\t            // the last iteration without have to scan the object twice and create\r\n\t            // an itermediate keys array.\r\n\t            if (priorKey !== undefined) {\r\n\t              execIteration(priorKey, i - 1);\r\n\t            }\r\n\t            priorKey = key;\r\n\t            i++;\r\n\t          }\r\n\t        }\r\n\t        if (priorKey !== undefined) {\r\n\t          execIteration(priorKey, i - 1, true);\r\n\t        }\r\n\t      }\r\n\t    }\r\n\r\n\t    if (i === 0) {\r\n\t      ret = inverse(this);\r\n\t    }\r\n\r\n\t    return ret;\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 13 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('helperMissing', function () /* [args, ]options */{\r\n\t    if (arguments.length === 1) {\r\n\t      // A missing field in a {{foo}} construct.\r\n\t      return undefined;\r\n\t    } else {\r\n\t      // Someone is actually trying to call something, blow up.\r\n\t      throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\r\n\t    }\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 14 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('if', function (conditional, options) {\r\n\t    if (_utils.isFunction(conditional)) {\r\n\t      conditional = conditional.call(this);\r\n\t    }\r\n\r\n\t    // Default behavior is to render the positive path if the value is truthy and not empty.\r\n\t    // The `includeZero` option may be set to treat the condtional as purely not empty based on the\r\n\t    // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\r\n\t    if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\r\n\t      return options.inverse(this);\r\n\t    } else {\r\n\t      return options.fn(this);\r\n\t    }\r\n\t  });\r\n\r\n\t  instance.registerHelper('unless', function (conditional, options) {\r\n\t    return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 15 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('log', function () /* message, options */{\r\n\t    var args = [undefined],\r\n\t        options = arguments[arguments.length - 1];\r\n\t    for (var i = 0; i < arguments.length - 1; i++) {\r\n\t      args.push(arguments[i]);\r\n\t    }\r\n\r\n\t    var level = 1;\r\n\t    if (options.hash.level != null) {\r\n\t      level = options.hash.level;\r\n\t    } else if (options.data && options.data.level != null) {\r\n\t      level = options.data.level;\r\n\t    }\r\n\t    args[0] = level;\r\n\r\n\t    instance.log.apply(instance, args);\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 16 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('lookup', function (obj, field) {\r\n\t    if (!obj) {\r\n\t      return obj;\r\n\t    }\r\n\t    if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {\r\n\t      return undefined;\r\n\t    }\r\n\t    return obj[field];\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 17 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerHelper('with', function (context, options) {\r\n\t    if (_utils.isFunction(context)) {\r\n\t      context = context.call(this);\r\n\t    }\r\n\r\n\t    var fn = options.fn;\r\n\r\n\t    if (!_utils.isEmpty(context)) {\r\n\t      var data = options.data;\r\n\t      if (options.data && options.ids) {\r\n\t        data = _utils.createFrame(options.data);\r\n\t        data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\r\n\t      }\r\n\r\n\t      return fn(context, {\r\n\t        data: data,\r\n\t        blockParams: _utils.blockParams([context], [data && data.contextPath])\r\n\t      });\r\n\t    } else {\r\n\t      return options.inverse(this);\r\n\t    }\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 18 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.registerDefaultDecorators = registerDefaultDecorators;\r\n\r\n\tvar _decoratorsInline = __webpack_require__(19);\r\n\r\n\tvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\r\n\r\n\tfunction registerDefaultDecorators(instance) {\r\n\t  _decoratorsInline2['default'](instance);\r\n\t}\r\n\r\n/***/ }),\r\n/* 19 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\texports['default'] = function (instance) {\r\n\t  instance.registerDecorator('inline', function (fn, props, container, options) {\r\n\t    var ret = fn;\r\n\t    if (!props.partials) {\r\n\t      props.partials = {};\r\n\t      ret = function (context, options) {\r\n\t        // Create a new partials stack frame prior to exec.\r\n\t        var original = container.partials;\r\n\t        container.partials = _utils.extend({}, original, props.partials);\r\n\t        var ret = fn(context, options);\r\n\t        container.partials = original;\r\n\t        return ret;\r\n\t      };\r\n\t    }\r\n\r\n\t    props.partials[options.args[0]] = options.fn;\r\n\r\n\t    return ret;\r\n\t  });\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 20 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar logger = {\r\n\t  methodMap: ['debug', 'info', 'warn', 'error'],\r\n\t  level: 'info',\r\n\r\n\t  // Maps a given level value to the `methodMap` indexes above.\r\n\t  lookupLevel: function lookupLevel(level) {\r\n\t    if (typeof level === 'string') {\r\n\t      var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\r\n\t      if (levelMap >= 0) {\r\n\t        level = levelMap;\r\n\t      } else {\r\n\t        level = parseInt(level, 10);\r\n\t      }\r\n\t    }\r\n\r\n\t    return level;\r\n\t  },\r\n\r\n\t  // Can be overridden in the host environment\r\n\t  log: function log(level) {\r\n\t    level = logger.lookupLevel(level);\r\n\r\n\t    if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\r\n\t      var method = logger.methodMap[level];\r\n\t      if (!console[method]) {\r\n\t        // eslint-disable-line no-console\r\n\t        method = 'log';\r\n\t      }\r\n\r\n\t      for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n\t        message[_key - 1] = arguments[_key];\r\n\t      }\r\n\r\n\t      console[method].apply(console, message); // eslint-disable-line no-console\r\n\t    }\r\n\t  }\r\n\t};\r\n\r\n\texports['default'] = logger;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 21 */\r\n/***/ (function(module, exports) {\r\n\r\n\t// Build out our basic SafeString type\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\tfunction SafeString(string) {\r\n\t  this.string = string;\r\n\t}\r\n\r\n\tSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\r\n\t  return '' + this.string;\r\n\t};\r\n\r\n\texports['default'] = SafeString;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 22 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _Object$seal = __webpack_require__(23)['default'];\r\n\r\n\tvar _interopRequireWildcard = __webpack_require__(3)['default'];\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.checkRevision = checkRevision;\r\n\texports.template = template;\r\n\texports.wrapProgram = wrapProgram;\r\n\texports.resolvePartial = resolvePartial;\r\n\texports.invokePartial = invokePartial;\r\n\texports.noop = noop;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar Utils = _interopRequireWildcard(_utils);\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tvar _base = __webpack_require__(4);\r\n\r\n\tfunction checkRevision(compilerInfo) {\r\n\t  var compilerRevision = compilerInfo && compilerInfo[0] || 1,\r\n\t      currentRevision = _base.COMPILER_REVISION;\r\n\r\n\t  if (compilerRevision !== currentRevision) {\r\n\t    if (compilerRevision < currentRevision) {\r\n\t      var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\r\n\t          compilerVersions = _base.REVISION_CHANGES[compilerRevision];\r\n\t      throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\r\n\t    } else {\r\n\t      // Use the embedded version info since the runtime doesn't know about this revision yet\r\n\t      throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\r\n\t    }\r\n\t  }\r\n\t}\r\n\r\n\tfunction template(templateSpec, env) {\r\n\t  /* istanbul ignore next */\r\n\t  if (!env) {\r\n\t    throw new _exception2['default']('No environment passed to template');\r\n\t  }\r\n\t  if (!templateSpec || !templateSpec.main) {\r\n\t    throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\r\n\t  }\r\n\r\n\t  templateSpec.main.decorator = templateSpec.main_d;\r\n\r\n\t  // Note: Using env.VM references rather than local var references throughout this section to allow\r\n\t  // for external users to override these as psuedo-supported APIs.\r\n\t  env.VM.checkRevision(templateSpec.compiler);\r\n\r\n\t  function invokePartialWrapper(partial, context, options) {\r\n\t    if (options.hash) {\r\n\t      context = Utils.extend({}, context, options.hash);\r\n\t      if (options.ids) {\r\n\t        options.ids[0] = true;\r\n\t      }\r\n\t    }\r\n\r\n\t    partial = env.VM.resolvePartial.call(this, partial, context, options);\r\n\t    var result = env.VM.invokePartial.call(this, partial, context, options);\r\n\r\n\t    if (result == null && env.compile) {\r\n\t      options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\r\n\t      result = options.partials[options.name](context, options);\r\n\t    }\r\n\t    if (result != null) {\r\n\t      if (options.indent) {\r\n\t        var lines = result.split('\\n');\r\n\t        for (var i = 0, l = lines.length; i < l; i++) {\r\n\t          if (!lines[i] && i + 1 === l) {\r\n\t            break;\r\n\t          }\r\n\r\n\t          lines[i] = options.indent + lines[i];\r\n\t        }\r\n\t        result = lines.join('\\n');\r\n\t      }\r\n\t      return result;\r\n\t    } else {\r\n\t      throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\r\n\t    }\r\n\t  }\r\n\r\n\t  // Just add water\r\n\t  var container = {\r\n\t    strict: function strict(obj, name) {\r\n\t      if (!(name in obj)) {\r\n\t        throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\r\n\t      }\r\n\t      return obj[name];\r\n\t    },\r\n\t    lookup: function lookup(depths, name) {\r\n\t      var len = depths.length;\r\n\t      for (var i = 0; i < len; i++) {\r\n\t        if (depths[i] && depths[i][name] != null) {\r\n\t          return depths[i][name];\r\n\t        }\r\n\t      }\r\n\t    },\r\n\t    lambda: function lambda(current, context) {\r\n\t      return typeof current === 'function' ? current.call(context) : current;\r\n\t    },\r\n\r\n\t    escapeExpression: Utils.escapeExpression,\r\n\t    invokePartial: invokePartialWrapper,\r\n\r\n\t    fn: function fn(i) {\r\n\t      var ret = templateSpec[i];\r\n\t      ret.decorator = templateSpec[i + '_d'];\r\n\t      return ret;\r\n\t    },\r\n\r\n\t    programs: [],\r\n\t    program: function program(i, data, declaredBlockParams, blockParams, depths) {\r\n\t      var programWrapper = this.programs[i],\r\n\t          fn = this.fn(i);\r\n\t      if (data || depths || blockParams || declaredBlockParams) {\r\n\t        programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\r\n\t      } else if (!programWrapper) {\r\n\t        programWrapper = this.programs[i] = wrapProgram(this, i, fn);\r\n\t      }\r\n\t      return programWrapper;\r\n\t    },\r\n\r\n\t    data: function data(value, depth) {\r\n\t      while (value && depth--) {\r\n\t        value = value._parent;\r\n\t      }\r\n\t      return value;\r\n\t    },\r\n\t    merge: function merge(param, common) {\r\n\t      var obj = param || common;\r\n\r\n\t      if (param && common && param !== common) {\r\n\t        obj = Utils.extend({}, common, param);\r\n\t      }\r\n\r\n\t      return obj;\r\n\t    },\r\n\t    // An empty object to use as replacement for null-contexts\r\n\t    nullContext: _Object$seal({}),\r\n\r\n\t    noop: env.VM.noop,\r\n\t    compilerInfo: templateSpec.compiler\r\n\t  };\r\n\r\n\t  function ret(context) {\r\n\t    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n\t    var data = options.data;\r\n\r\n\t    ret._setup(options);\r\n\t    if (!options.partial && templateSpec.useData) {\r\n\t      data = initData(context, data);\r\n\t    }\r\n\t    var depths = undefined,\r\n\t        blockParams = templateSpec.useBlockParams ? [] : undefined;\r\n\t    if (templateSpec.useDepths) {\r\n\t      if (options.depths) {\r\n\t        depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\r\n\t      } else {\r\n\t        depths = [context];\r\n\t      }\r\n\t    }\r\n\r\n\t    function main(context /*, options*/) {\r\n\t      return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\r\n\t    }\r\n\t    main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\r\n\t    return main(context, options);\r\n\t  }\r\n\t  ret.isTop = true;\r\n\r\n\t  ret._setup = function (options) {\r\n\t    if (!options.partial) {\r\n\t      container.helpers = container.merge(options.helpers, env.helpers);\r\n\r\n\t      if (templateSpec.usePartial) {\r\n\t        container.partials = container.merge(options.partials, env.partials);\r\n\t      }\r\n\t      if (templateSpec.usePartial || templateSpec.useDecorators) {\r\n\t        container.decorators = container.merge(options.decorators, env.decorators);\r\n\t      }\r\n\t    } else {\r\n\t      container.helpers = options.helpers;\r\n\t      container.partials = options.partials;\r\n\t      container.decorators = options.decorators;\r\n\t    }\r\n\t  };\r\n\r\n\t  ret._child = function (i, data, blockParams, depths) {\r\n\t    if (templateSpec.useBlockParams && !blockParams) {\r\n\t      throw new _exception2['default']('must pass block params');\r\n\t    }\r\n\t    if (templateSpec.useDepths && !depths) {\r\n\t      throw new _exception2['default']('must pass parent depths');\r\n\t    }\r\n\r\n\t    return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\r\n\t  };\r\n\t  return ret;\r\n\t}\r\n\r\n\tfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\r\n\t  function prog(context) {\r\n\t    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n\t    var currentDepths = depths;\r\n\t    if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\r\n\t      currentDepths = [context].concat(depths);\r\n\t    }\r\n\r\n\t    return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\r\n\t  }\r\n\r\n\t  prog = executeDecorators(fn, prog, container, depths, data, blockParams);\r\n\r\n\t  prog.program = i;\r\n\t  prog.depth = depths ? depths.length : 0;\r\n\t  prog.blockParams = declaredBlockParams || 0;\r\n\t  return prog;\r\n\t}\r\n\r\n\tfunction resolvePartial(partial, context, options) {\r\n\t  if (!partial) {\r\n\t    if (options.name === '@partial-block') {\r\n\t      partial = options.data['partial-block'];\r\n\t    } else {\r\n\t      partial = options.partials[options.name];\r\n\t    }\r\n\t  } else if (!partial.call && !options.name) {\r\n\t    // This is a dynamic partial that returned a string\r\n\t    options.name = partial;\r\n\t    partial = options.partials[partial];\r\n\t  }\r\n\t  return partial;\r\n\t}\r\n\r\n\tfunction invokePartial(partial, context, options) {\r\n\t  // Use the current closure context to save the partial-block if this partial\r\n\t  var currentPartialBlock = options.data && options.data['partial-block'];\r\n\t  options.partial = true;\r\n\t  if (options.ids) {\r\n\t    options.data.contextPath = options.ids[0] || options.data.contextPath;\r\n\t  }\r\n\r\n\t  var partialBlock = undefined;\r\n\t  if (options.fn && options.fn !== noop) {\r\n\t    (function () {\r\n\t      options.data = _base.createFrame(options.data);\r\n\t      // Wrapper function to get access to currentPartialBlock from the closure\r\n\t      var fn = options.fn;\r\n\t      partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\r\n\t        var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n\t        // Restore the partial-block from the closure for the execution of the block\r\n\t        // i.e. the part inside the block of the partial call.\r\n\t        options.data = _base.createFrame(options.data);\r\n\t        options.data['partial-block'] = currentPartialBlock;\r\n\t        return fn(context, options);\r\n\t      };\r\n\t      if (fn.partials) {\r\n\t        options.partials = Utils.extend({}, options.partials, fn.partials);\r\n\t      }\r\n\t    })();\r\n\t  }\r\n\r\n\t  if (partial === undefined && partialBlock) {\r\n\t    partial = partialBlock;\r\n\t  }\r\n\r\n\t  if (partial === undefined) {\r\n\t    throw new _exception2['default']('The partial ' + options.name + ' could not be found');\r\n\t  } else if (partial instanceof Function) {\r\n\t    return partial(context, options);\r\n\t  }\r\n\t}\r\n\r\n\tfunction noop() {\r\n\t  return '';\r\n\t}\r\n\r\n\tfunction initData(context, data) {\r\n\t  if (!data || !('root' in data)) {\r\n\t    data = data ? _base.createFrame(data) : {};\r\n\t    data.root = context;\r\n\t  }\r\n\t  return data;\r\n\t}\r\n\r\n\tfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\r\n\t  if (fn.decorator) {\r\n\t    var props = {};\r\n\t    prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\r\n\t    Utils.extend(prog, props);\r\n\t  }\r\n\t  return prog;\r\n\t}\r\n\r\n/***/ }),\r\n/* 23 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\tmodule.exports = { \"default\": __webpack_require__(24), __esModule: true };\r\n\r\n/***/ }),\r\n/* 24 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t__webpack_require__(25);\r\n\tmodule.exports = __webpack_require__(30).Object.seal;\r\n\r\n/***/ }),\r\n/* 25 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t// 19.1.2.17 Object.seal(O)\r\n\tvar isObject = __webpack_require__(26);\r\n\r\n\t__webpack_require__(27)('seal', function($seal){\r\n\t  return function seal(it){\r\n\t    return $seal && isObject(it) ? $seal(it) : it;\r\n\t  };\r\n\t});\r\n\r\n/***/ }),\r\n/* 26 */\r\n/***/ (function(module, exports) {\r\n\r\n\tmodule.exports = function(it){\r\n\t  return typeof it === 'object' ? it !== null : typeof it === 'function';\r\n\t};\r\n\r\n/***/ }),\r\n/* 27 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t// most Object methods by ES6 should accept primitives\r\n\tvar $export = __webpack_require__(28)\r\n\t  , core    = __webpack_require__(30)\r\n\t  , fails   = __webpack_require__(33);\r\n\tmodule.exports = function(KEY, exec){\r\n\t  var fn  = (core.Object || {})[KEY] || Object[KEY]\r\n\t    , exp = {};\r\n\t  exp[KEY] = exec(fn);\r\n\t  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\r\n\t};\r\n\r\n/***/ }),\r\n/* 28 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\tvar global    = __webpack_require__(29)\r\n\t  , core      = __webpack_require__(30)\r\n\t  , ctx       = __webpack_require__(31)\r\n\t  , PROTOTYPE = 'prototype';\r\n\r\n\tvar $export = function(type, name, source){\r\n\t  var IS_FORCED = type & $export.F\r\n\t    , IS_GLOBAL = type & $export.G\r\n\t    , IS_STATIC = type & $export.S\r\n\t    , IS_PROTO  = type & $export.P\r\n\t    , IS_BIND   = type & $export.B\r\n\t    , IS_WRAP   = type & $export.W\r\n\t    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\r\n\t    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\r\n\t    , key, own, out;\r\n\t  if(IS_GLOBAL)source = name;\r\n\t  for(key in source){\r\n\t    // contains in native\r\n\t    own = !IS_FORCED && target && key in target;\r\n\t    if(own && key in exports)continue;\r\n\t    // export native or passed\r\n\t    out = own ? target[key] : source[key];\r\n\t    // prevent global pollution for namespaces\r\n\t    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\r\n\t    // bind timers to global for call from export context\r\n\t    : IS_BIND && own ? ctx(out, global)\r\n\t    // wrap global constructors for prevent change them in library\r\n\t    : IS_WRAP && target[key] == out ? (function(C){\r\n\t      var F = function(param){\r\n\t        return this instanceof C ? new C(param) : C(param);\r\n\t      };\r\n\t      F[PROTOTYPE] = C[PROTOTYPE];\r\n\t      return F;\r\n\t    // make static versions for prototype methods\r\n\t    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\r\n\t    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\r\n\t  }\r\n\t};\r\n\t// type bitmap\r\n\t$export.F = 1;  // forced\r\n\t$export.G = 2;  // global\r\n\t$export.S = 4;  // static\r\n\t$export.P = 8;  // proto\r\n\t$export.B = 16; // bind\r\n\t$export.W = 32; // wrap\r\n\tmodule.exports = $export;\r\n\r\n/***/ }),\r\n/* 29 */\r\n/***/ (function(module, exports) {\r\n\r\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\r\n\t  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\r\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\r\n\r\n/***/ }),\r\n/* 30 */\r\n/***/ (function(module, exports) {\r\n\r\n\tvar core = module.exports = {version: '1.2.6'};\r\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\r\n\r\n/***/ }),\r\n/* 31 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t// optional / simple context binding\r\n\tvar aFunction = __webpack_require__(32);\r\n\tmodule.exports = function(fn, that, length){\r\n\t  aFunction(fn);\r\n\t  if(that === undefined)return fn;\r\n\t  switch(length){\r\n\t    case 1: return function(a){\r\n\t      return fn.call(that, a);\r\n\t    };\r\n\t    case 2: return function(a, b){\r\n\t      return fn.call(that, a, b);\r\n\t    };\r\n\t    case 3: return function(a, b, c){\r\n\t      return fn.call(that, a, b, c);\r\n\t    };\r\n\t  }\r\n\t  return function(/* ...args */){\r\n\t    return fn.apply(that, arguments);\r\n\t  };\r\n\t};\r\n\r\n/***/ }),\r\n/* 32 */\r\n/***/ (function(module, exports) {\r\n\r\n\tmodule.exports = function(it){\r\n\t  if(typeof it != 'function')throw TypeError(it + ' is not a function!');\r\n\t  return it;\r\n\t};\r\n\r\n/***/ }),\r\n/* 33 */\r\n/***/ (function(module, exports) {\r\n\r\n\tmodule.exports = function(exec){\r\n\t  try {\r\n\t    return !!exec();\r\n\t  } catch(e){\r\n\t    return true;\r\n\t  }\r\n\t};\r\n\r\n/***/ }),\r\n/* 34 */\r\n/***/ (function(module, exports) {\r\n\r\n\t/* WEBPACK VAR INJECTION */(function(global) {/* global window */\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\texports['default'] = function (Handlebars) {\r\n\t  /* istanbul ignore next */\r\n\t  var root = typeof global !== 'undefined' ? global : window,\r\n\t      $Handlebars = root.Handlebars;\r\n\t  /* istanbul ignore next */\r\n\t  Handlebars.noConflict = function () {\r\n\t    if (root.Handlebars === Handlebars) {\r\n\t      root.Handlebars = $Handlebars;\r\n\t    }\r\n\t    return Handlebars;\r\n\t  };\r\n\t};\r\n\r\n\tmodule.exports = exports['default'];\r\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\r\n\r\n/***/ }),\r\n/* 35 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\tvar AST = {\r\n\t  // Public API used to evaluate derived attributes regarding AST nodes\r\n\t  helpers: {\r\n\t    // a mustache is definitely a helper if:\r\n\t    // * it is an eligible helper, and\r\n\t    // * it has at least one parameter or hash segment\r\n\t    helperExpression: function helperExpression(node) {\r\n\t      return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);\r\n\t    },\r\n\r\n\t    scopedId: function scopedId(path) {\r\n\t      return (/^\\.|this\\b/.test(path.original)\r\n\t      );\r\n\t    },\r\n\r\n\t    // an ID is simple if it only has one part, and that part is not\r\n\t    // `..` or `this`.\r\n\t    simpleId: function simpleId(path) {\r\n\t      return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;\r\n\t    }\r\n\t  }\r\n\t};\r\n\r\n\t// Must be exported as an object rather than the root of the module as the jison lexer\r\n\t// must modify the object to operate properly.\r\n\texports['default'] = AST;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 36 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\tvar _interopRequireWildcard = __webpack_require__(3)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.parse = parse;\r\n\r\n\tvar _parser = __webpack_require__(37);\r\n\r\n\tvar _parser2 = _interopRequireDefault(_parser);\r\n\r\n\tvar _whitespaceControl = __webpack_require__(38);\r\n\r\n\tvar _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);\r\n\r\n\tvar _helpers = __webpack_require__(40);\r\n\r\n\tvar Helpers = _interopRequireWildcard(_helpers);\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\texports.parser = _parser2['default'];\r\n\r\n\tvar yy = {};\r\n\t_utils.extend(yy, Helpers);\r\n\r\n\tfunction parse(input, options) {\r\n\t  // Just return if an already-compiled AST was passed in.\r\n\t  if (input.type === 'Program') {\r\n\t    return input;\r\n\t  }\r\n\r\n\t  _parser2['default'].yy = yy;\r\n\r\n\t  // Altering the shared object here, but this is ok as parser is a sync operation\r\n\t  yy.locInfo = function (locInfo) {\r\n\t    return new yy.SourceLocation(options && options.srcName, locInfo);\r\n\t  };\r\n\r\n\t  var strip = new _whitespaceControl2['default'](options);\r\n\t  return strip.accept(_parser2['default'].parse(input));\r\n\t}\r\n\r\n/***/ }),\r\n/* 37 */\r\n/***/ (function(module, exports) {\r\n\r\n\t// File ignored in coverage tests via setting in .istanbul.yml\r\n\t/* Jison generated parser */\r\n\t\"use strict\";\r\n\r\n\texports.__esModule = true;\r\n\tvar handlebars = (function () {\r\n\t    var parser = { trace: function trace() {},\r\n\t        yy: {},\r\n\t        symbols_: { \"error\": 2, \"root\": 3, \"program\": 4, \"EOF\": 5, \"program_repetition0\": 6, \"statement\": 7, \"mustache\": 8, \"block\": 9, \"rawBlock\": 10, \"partial\": 11, \"partialBlock\": 12, \"content\": 13, \"COMMENT\": 14, \"CONTENT\": 15, \"openRawBlock\": 16, \"rawBlock_repetition_plus0\": 17, \"END_RAW_BLOCK\": 18, \"OPEN_RAW_BLOCK\": 19, \"helperName\": 20, \"openRawBlock_repetition0\": 21, \"openRawBlock_option0\": 22, \"CLOSE_RAW_BLOCK\": 23, \"openBlock\": 24, \"block_option0\": 25, \"closeBlock\": 26, \"openInverse\": 27, \"block_option1\": 28, \"OPEN_BLOCK\": 29, \"openBlock_repetition0\": 30, \"openBlock_option0\": 31, \"openBlock_option1\": 32, \"CLOSE\": 33, \"OPEN_INVERSE\": 34, \"openInverse_repetition0\": 35, \"openInverse_option0\": 36, \"openInverse_option1\": 37, \"openInverseChain\": 38, \"OPEN_INVERSE_CHAIN\": 39, \"openInverseChain_repetition0\": 40, \"openInverseChain_option0\": 41, \"openInverseChain_option1\": 42, \"inverseAndProgram\": 43, \"INVERSE\": 44, \"inverseChain\": 45, \"inverseChain_option0\": 46, \"OPEN_ENDBLOCK\": 47, \"OPEN\": 48, \"mustache_repetition0\": 49, \"mustache_option0\": 50, \"OPEN_UNESCAPED\": 51, \"mustache_repetition1\": 52, \"mustache_option1\": 53, \"CLOSE_UNESCAPED\": 54, \"OPEN_PARTIAL\": 55, \"partialName\": 56, \"partial_repetition0\": 57, \"partial_option0\": 58, \"openPartialBlock\": 59, \"OPEN_PARTIAL_BLOCK\": 60, \"openPartialBlock_repetition0\": 61, \"openPartialBlock_option0\": 62, \"param\": 63, \"sexpr\": 64, \"OPEN_SEXPR\": 65, \"sexpr_repetition0\": 66, \"sexpr_option0\": 67, \"CLOSE_SEXPR\": 68, \"hash\": 69, \"hash_repetition_plus0\": 70, \"hashSegment\": 71, \"ID\": 72, \"EQUALS\": 73, \"blockParams\": 74, \"OPEN_BLOCK_PARAMS\": 75, \"blockParams_repetition_plus0\": 76, \"CLOSE_BLOCK_PARAMS\": 77, \"path\": 78, \"dataName\": 79, \"STRING\": 80, \"NUMBER\": 81, \"BOOLEAN\": 82, \"UNDEFINED\": 83, \"NULL\": 84, \"DATA\": 85, \"pathSegments\": 86, \"SEP\": 87, \"$accept\": 0, \"$end\": 1 },\r\n\t        terminals_: { 2: \"error\", 5: \"EOF\", 14: \"COMMENT\", 15: \"CONTENT\", 18: \"END_RAW_BLOCK\", 19: \"OPEN_RAW_BLOCK\", 23: \"CLOSE_RAW_BLOCK\", 29: \"OPEN_BLOCK\", 33: \"CLOSE\", 34: \"OPEN_INVERSE\", 39: \"OPEN_INVERSE_CHAIN\", 44: \"INVERSE\", 47: \"OPEN_ENDBLOCK\", 48: \"OPEN\", 51: \"OPEN_UNESCAPED\", 54: \"CLOSE_UNESCAPED\", 55: \"OPEN_PARTIAL\", 60: \"OPEN_PARTIAL_BLOCK\", 65: \"OPEN_SEXPR\", 68: \"CLOSE_SEXPR\", 72: \"ID\", 73: \"EQUALS\", 75: \"OPEN_BLOCK_PARAMS\", 77: \"CLOSE_BLOCK_PARAMS\", 80: \"STRING\", 81: \"NUMBER\", 82: \"BOOLEAN\", 83: \"UNDEFINED\", 84: \"NULL\", 85: \"DATA\", 87: \"SEP\" },\r\n\t        productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],\r\n\t        performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\r\n\r\n\t            var $0 = $$.length - 1;\r\n\t            switch (yystate) {\r\n\t                case 1:\r\n\t                    return $$[$0 - 1];\r\n\t                    break;\r\n\t                case 2:\r\n\t                    this.$ = yy.prepareProgram($$[$0]);\r\n\t                    break;\r\n\t                case 3:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 4:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 5:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 6:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 7:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 8:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 9:\r\n\t                    this.$ = {\r\n\t                        type: 'CommentStatement',\r\n\t                        value: yy.stripComment($$[$0]),\r\n\t                        strip: yy.stripFlags($$[$0], $$[$0]),\r\n\t                        loc: yy.locInfo(this._$)\r\n\t                    };\r\n\r\n\t                    break;\r\n\t                case 10:\r\n\t                    this.$ = {\r\n\t                        type: 'ContentStatement',\r\n\t                        original: $$[$0],\r\n\t                        value: $$[$0],\r\n\t                        loc: yy.locInfo(this._$)\r\n\t                    };\r\n\r\n\t                    break;\r\n\t                case 11:\r\n\t                    this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\r\n\t                    break;\r\n\t                case 12:\r\n\t                    this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] };\r\n\t                    break;\r\n\t                case 13:\r\n\t                    this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);\r\n\t                    break;\r\n\t                case 14:\r\n\t                    this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);\r\n\t                    break;\r\n\t                case 15:\r\n\t                    this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };\r\n\t                    break;\r\n\t                case 16:\r\n\t                    this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };\r\n\t                    break;\r\n\t                case 17:\r\n\t                    this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };\r\n\t                    break;\r\n\t                case 18:\r\n\t                    this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };\r\n\t                    break;\r\n\t                case 19:\r\n\t                    var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),\r\n\t                        program = yy.prepareProgram([inverse], $$[$0 - 1].loc);\r\n\t                    program.chained = true;\r\n\r\n\t                    this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };\r\n\r\n\t                    break;\r\n\t                case 20:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 21:\r\n\t                    this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };\r\n\t                    break;\r\n\t                case 22:\r\n\t                    this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\r\n\t                    break;\r\n\t                case 23:\r\n\t                    this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\r\n\t                    break;\r\n\t                case 24:\r\n\t                    this.$ = {\r\n\t                        type: 'PartialStatement',\r\n\t                        name: $$[$0 - 3],\r\n\t                        params: $$[$0 - 2],\r\n\t                        hash: $$[$0 - 1],\r\n\t                        indent: '',\r\n\t                        strip: yy.stripFlags($$[$0 - 4], $$[$0]),\r\n\t                        loc: yy.locInfo(this._$)\r\n\t                    };\r\n\r\n\t                    break;\r\n\t                case 25:\r\n\t                    this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\r\n\t                    break;\r\n\t                case 26:\r\n\t                    this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };\r\n\t                    break;\r\n\t                case 27:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 28:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 29:\r\n\t                    this.$ = {\r\n\t                        type: 'SubExpression',\r\n\t                        path: $$[$0 - 3],\r\n\t                        params: $$[$0 - 2],\r\n\t                        hash: $$[$0 - 1],\r\n\t                        loc: yy.locInfo(this._$)\r\n\t                    };\r\n\r\n\t                    break;\r\n\t                case 30:\r\n\t                    this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 31:\r\n\t                    this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 32:\r\n\t                    this.$ = yy.id($$[$0 - 1]);\r\n\t                    break;\r\n\t                case 33:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 34:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 35:\r\n\t                    this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 36:\r\n\t                    this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 37:\r\n\t                    this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 38:\r\n\t                    this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 39:\r\n\t                    this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };\r\n\t                    break;\r\n\t                case 40:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 41:\r\n\t                    this.$ = $$[$0];\r\n\t                    break;\r\n\t                case 42:\r\n\t                    this.$ = yy.preparePath(true, $$[$0], this._$);\r\n\t                    break;\r\n\t                case 43:\r\n\t                    this.$ = yy.preparePath(false, $$[$0], this._$);\r\n\t                    break;\r\n\t                case 44:\r\n\t                    $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2];\r\n\t                    break;\r\n\t                case 45:\r\n\t                    this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];\r\n\t                    break;\r\n\t                case 46:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 47:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 48:\r\n\t                    this.$ = [$$[$0]];\r\n\t                    break;\r\n\t                case 49:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 50:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 51:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 58:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 59:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 64:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 65:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 70:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 71:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 78:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 79:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 82:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 83:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 86:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 87:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 90:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 91:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 94:\r\n\t                    this.$ = [];\r\n\t                    break;\r\n\t                case 95:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 98:\r\n\t                    this.$ = [$$[$0]];\r\n\t                    break;\r\n\t                case 99:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t                case 100:\r\n\t                    this.$ = [$$[$0]];\r\n\t                    break;\r\n\t                case 101:\r\n\t                    $$[$0 - 1].push($$[$0]);\r\n\t                    break;\r\n\t            }\r\n\t        },\r\n\t        table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],\r\n\t        defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },\r\n\t        parseError: function parseError(str, hash) {\r\n\t            throw new Error(str);\r\n\t        },\r\n\t        parse: function parse(input) {\r\n\t            var self = this,\r\n\t                stack = [0],\r\n\t                vstack = [null],\r\n\t                lstack = [],\r\n\t                table = this.table,\r\n\t                yytext = \"\",\r\n\t                yylineno = 0,\r\n\t                yyleng = 0,\r\n\t                recovering = 0,\r\n\t                TERROR = 2,\r\n\t                EOF = 1;\r\n\t            this.lexer.setInput(input);\r\n\t            this.lexer.yy = this.yy;\r\n\t            this.yy.lexer = this.lexer;\r\n\t            this.yy.parser = this;\r\n\t            if (typeof this.lexer.yylloc == \"undefined\") this.lexer.yylloc = {};\r\n\t            var yyloc = this.lexer.yylloc;\r\n\t            lstack.push(yyloc);\r\n\t            var ranges = this.lexer.options && this.lexer.options.ranges;\r\n\t            if (typeof this.yy.parseError === \"function\") this.parseError = this.yy.parseError;\r\n\t            function popStack(n) {\r\n\t                stack.length = stack.length - 2 * n;\r\n\t                vstack.length = vstack.length - n;\r\n\t                lstack.length = lstack.length - n;\r\n\t            }\r\n\t            function lex() {\r\n\t                var token;\r\n\t                token = self.lexer.lex() || 1;\r\n\t                if (typeof token !== \"number\") {\r\n\t                    token = self.symbols_[token] || token;\r\n\t                }\r\n\t                return token;\r\n\t            }\r\n\t            var symbol,\r\n\t                preErrorSymbol,\r\n\t                state,\r\n\t                action,\r\n\t                a,\r\n\t                r,\r\n\t                yyval = {},\r\n\t                p,\r\n\t                len,\r\n\t                newState,\r\n\t                expected;\r\n\t            while (true) {\r\n\t                state = stack[stack.length - 1];\r\n\t                if (this.defaultActions[state]) {\r\n\t                    action = this.defaultActions[state];\r\n\t                } else {\r\n\t                    if (symbol === null || typeof symbol == \"undefined\") {\r\n\t                        symbol = lex();\r\n\t                    }\r\n\t                    action = table[state] && table[state][symbol];\r\n\t                }\r\n\t                if (typeof action === \"undefined\" || !action.length || !action[0]) {\r\n\t                    var errStr = \"\";\r\n\t                    if (!recovering) {\r\n\t                        expected = [];\r\n\t                        for (p in table[state]) if (this.terminals_[p] && p > 2) {\r\n\t                            expected.push(\"'\" + this.terminals_[p] + \"'\");\r\n\t                        }\r\n\t                        if (this.lexer.showPosition) {\r\n\t                            errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\r\n\t                        } else {\r\n\t                            errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1 ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\r\n\t                        }\r\n\t                        this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });\r\n\t                    }\r\n\t                }\r\n\t                if (action[0] instanceof Array && action.length > 1) {\r\n\t                    throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\r\n\t                }\r\n\t                switch (action[0]) {\r\n\t                    case 1:\r\n\t                        stack.push(symbol);\r\n\t                        vstack.push(this.lexer.yytext);\r\n\t                        lstack.push(this.lexer.yylloc);\r\n\t                        stack.push(action[1]);\r\n\t                        symbol = null;\r\n\t                        if (!preErrorSymbol) {\r\n\t                            yyleng = this.lexer.yyleng;\r\n\t                            yytext = this.lexer.yytext;\r\n\t                            yylineno = this.lexer.yylineno;\r\n\t                            yyloc = this.lexer.yylloc;\r\n\t                            if (recovering > 0) recovering--;\r\n\t                        } else {\r\n\t                            symbol = preErrorSymbol;\r\n\t                            preErrorSymbol = null;\r\n\t                        }\r\n\t                        break;\r\n\t                    case 2:\r\n\t                        len = this.productions_[action[1]][1];\r\n\t                        yyval.$ = vstack[vstack.length - len];\r\n\t                        yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };\r\n\t                        if (ranges) {\r\n\t                            yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\r\n\t                        }\r\n\t                        r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\r\n\t                        if (typeof r !== \"undefined\") {\r\n\t                            return r;\r\n\t                        }\r\n\t                        if (len) {\r\n\t                            stack = stack.slice(0, -1 * len * 2);\r\n\t                            vstack = vstack.slice(0, -1 * len);\r\n\t                            lstack = lstack.slice(0, -1 * len);\r\n\t                        }\r\n\t                        stack.push(this.productions_[action[1]][0]);\r\n\t                        vstack.push(yyval.$);\r\n\t                        lstack.push(yyval._$);\r\n\t                        newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\r\n\t                        stack.push(newState);\r\n\t                        break;\r\n\t                    case 3:\r\n\t                        return true;\r\n\t                }\r\n\t            }\r\n\t            return true;\r\n\t        }\r\n\t    };\r\n\t    /* Jison generated lexer */\r\n\t    var lexer = (function () {\r\n\t        var lexer = { EOF: 1,\r\n\t            parseError: function parseError(str, hash) {\r\n\t                if (this.yy.parser) {\r\n\t                    this.yy.parser.parseError(str, hash);\r\n\t                } else {\r\n\t                    throw new Error(str);\r\n\t                }\r\n\t            },\r\n\t            setInput: function setInput(input) {\r\n\t                this._input = input;\r\n\t                this._more = this._less = this.done = false;\r\n\t                this.yylineno = this.yyleng = 0;\r\n\t                this.yytext = this.matched = this.match = '';\r\n\t                this.conditionStack = ['INITIAL'];\r\n\t                this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };\r\n\t                if (this.options.ranges) this.yylloc.range = [0, 0];\r\n\t                this.offset = 0;\r\n\t                return this;\r\n\t            },\r\n\t            input: function input() {\r\n\t                var ch = this._input[0];\r\n\t                this.yytext += ch;\r\n\t                this.yyleng++;\r\n\t                this.offset++;\r\n\t                this.match += ch;\r\n\t                this.matched += ch;\r\n\t                var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\r\n\t                if (lines) {\r\n\t                    this.yylineno++;\r\n\t                    this.yylloc.last_line++;\r\n\t                } else {\r\n\t                    this.yylloc.last_column++;\r\n\t                }\r\n\t                if (this.options.ranges) this.yylloc.range[1]++;\r\n\r\n\t                this._input = this._input.slice(1);\r\n\t                return ch;\r\n\t            },\r\n\t            unput: function unput(ch) {\r\n\t                var len = ch.length;\r\n\t                var lines = ch.split(/(?:\\r\\n?|\\n)/g);\r\n\r\n\t                this._input = ch + this._input;\r\n\t                this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);\r\n\t                //this.yyleng -= len;\r\n\t                this.offset -= len;\r\n\t                var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\r\n\t                this.match = this.match.substr(0, this.match.length - 1);\r\n\t                this.matched = this.matched.substr(0, this.matched.length - 1);\r\n\r\n\t                if (lines.length - 1) this.yylineno -= lines.length - 1;\r\n\t                var r = this.yylloc.range;\r\n\r\n\t                this.yylloc = { first_line: this.yylloc.first_line,\r\n\t                    last_line: this.yylineno + 1,\r\n\t                    first_column: this.yylloc.first_column,\r\n\t                    last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\r\n\t                };\r\n\r\n\t                if (this.options.ranges) {\r\n\t                    this.yylloc.range = [r[0], r[0] + this.yyleng - len];\r\n\t                }\r\n\t                return this;\r\n\t            },\r\n\t            more: function more() {\r\n\t                this._more = true;\r\n\t                return this;\r\n\t            },\r\n\t            less: function less(n) {\r\n\t                this.unput(this.match.slice(n));\r\n\t            },\r\n\t            pastInput: function pastInput() {\r\n\t                var past = this.matched.substr(0, this.matched.length - this.match.length);\r\n\t                return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, \"\");\r\n\t            },\r\n\t            upcomingInput: function upcomingInput() {\r\n\t                var next = this.match;\r\n\t                if (next.length < 20) {\r\n\t                    next += this._input.substr(0, 20 - next.length);\r\n\t                }\r\n\t                return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\r\n\t            },\r\n\t            showPosition: function showPosition() {\r\n\t                var pre = this.pastInput();\r\n\t                var c = new Array(pre.length + 1).join(\"-\");\r\n\t                return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\r\n\t            },\r\n\t            next: function next() {\r\n\t                if (this.done) {\r\n\t                    return this.EOF;\r\n\t                }\r\n\t                if (!this._input) this.done = true;\r\n\r\n\t                var token, match, tempMatch, index, col, lines;\r\n\t                if (!this._more) {\r\n\t                    this.yytext = '';\r\n\t                    this.match = '';\r\n\t                }\r\n\t                var rules = this._currentRules();\r\n\t                for (var i = 0; i < rules.length; i++) {\r\n\t                    tempMatch = this._input.match(this.rules[rules[i]]);\r\n\t                    if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\r\n\t                        match = tempMatch;\r\n\t                        index = i;\r\n\t                        if (!this.options.flex) break;\r\n\t                    }\r\n\t                }\r\n\t                if (match) {\r\n\t                    lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\r\n\t                    if (lines) this.yylineno += lines.length;\r\n\t                    this.yylloc = { first_line: this.yylloc.last_line,\r\n\t                        last_line: this.yylineno + 1,\r\n\t                        first_column: this.yylloc.last_column,\r\n\t                        last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length };\r\n\t                    this.yytext += match[0];\r\n\t                    this.match += match[0];\r\n\t                    this.matches = match;\r\n\t                    this.yyleng = this.yytext.length;\r\n\t                    if (this.options.ranges) {\r\n\t                        this.yylloc.range = [this.offset, this.offset += this.yyleng];\r\n\t                    }\r\n\t                    this._more = false;\r\n\t                    this._input = this._input.slice(match[0].length);\r\n\t                    this.matched += match[0];\r\n\t                    token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);\r\n\t                    if (this.done && this._input) this.done = false;\r\n\t                    if (token) return token;else return;\r\n\t                }\r\n\t                if (this._input === \"\") {\r\n\t                    return this.EOF;\r\n\t                } else {\r\n\t                    return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), { text: \"\", token: null, line: this.yylineno });\r\n\t                }\r\n\t            },\r\n\t            lex: function lex() {\r\n\t                var r = this.next();\r\n\t                if (typeof r !== 'undefined') {\r\n\t                    return r;\r\n\t                } else {\r\n\t                    return this.lex();\r\n\t                }\r\n\t            },\r\n\t            begin: function begin(condition) {\r\n\t                this.conditionStack.push(condition);\r\n\t            },\r\n\t            popState: function popState() {\r\n\t                return this.conditionStack.pop();\r\n\t            },\r\n\t            _currentRules: function _currentRules() {\r\n\t                return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\r\n\t            },\r\n\t            topState: function topState() {\r\n\t                return this.conditionStack[this.conditionStack.length - 2];\r\n\t            },\r\n\t            pushState: function begin(condition) {\r\n\t                this.begin(condition);\r\n\t            } };\r\n\t        lexer.options = {};\r\n\t        lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\r\n\r\n\t            function strip(start, end) {\r\n\t                return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);\r\n\t            }\r\n\r\n\t            var YYSTATE = YY_START;\r\n\t            switch ($avoiding_name_collisions) {\r\n\t                case 0:\r\n\t                    if (yy_.yytext.slice(-2) === \"\\\\\\\\\") {\r\n\t                        strip(0, 1);\r\n\t                        this.begin(\"mu\");\r\n\t                    } else if (yy_.yytext.slice(-1) === \"\\\\\") {\r\n\t                        strip(0, 1);\r\n\t                        this.begin(\"emu\");\r\n\t                    } else {\r\n\t                        this.begin(\"mu\");\r\n\t                    }\r\n\t                    if (yy_.yytext) return 15;\r\n\r\n\t                    break;\r\n\t                case 1:\r\n\t                    return 15;\r\n\t                    break;\r\n\t                case 2:\r\n\t                    this.popState();\r\n\t                    return 15;\r\n\r\n\t                    break;\r\n\t                case 3:\r\n\t                    this.begin('raw');return 15;\r\n\t                    break;\r\n\t                case 4:\r\n\t                    this.popState();\r\n\t                    // Should be using `this.topState()` below, but it currently\r\n\t                    // returns the second top instead of the first top. Opened an\r\n\t                    // issue about it at https://github.com/zaach/jison/issues/291\r\n\t                    if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {\r\n\t                        return 15;\r\n\t                    } else {\r\n\t                        strip(5, 9);\r\n\t                        return 'END_RAW_BLOCK';\r\n\t                    }\r\n\r\n\t                    break;\r\n\t                case 5:\r\n\t                    return 15;\r\n\t                    break;\r\n\t                case 6:\r\n\t                    this.popState();\r\n\t                    return 14;\r\n\r\n\t                    break;\r\n\t                case 7:\r\n\t                    return 65;\r\n\t                    break;\r\n\t                case 8:\r\n\t                    return 68;\r\n\t                    break;\r\n\t                case 9:\r\n\t                    return 19;\r\n\t                    break;\r\n\t                case 10:\r\n\t                    this.popState();\r\n\t                    this.begin('raw');\r\n\t                    return 23;\r\n\r\n\t                    break;\r\n\t                case 11:\r\n\t                    return 55;\r\n\t                    break;\r\n\t                case 12:\r\n\t                    return 60;\r\n\t                    break;\r\n\t                case 13:\r\n\t                    return 29;\r\n\t                    break;\r\n\t                case 14:\r\n\t                    return 47;\r\n\t                    break;\r\n\t                case 15:\r\n\t                    this.popState();return 44;\r\n\t                    break;\r\n\t                case 16:\r\n\t                    this.popState();return 44;\r\n\t                    break;\r\n\t                case 17:\r\n\t                    return 34;\r\n\t                    break;\r\n\t                case 18:\r\n\t                    return 39;\r\n\t                    break;\r\n\t                case 19:\r\n\t                    return 51;\r\n\t                    break;\r\n\t                case 20:\r\n\t                    return 48;\r\n\t                    break;\r\n\t                case 21:\r\n\t                    this.unput(yy_.yytext);\r\n\t                    this.popState();\r\n\t                    this.begin('com');\r\n\r\n\t                    break;\r\n\t                case 22:\r\n\t                    this.popState();\r\n\t                    return 14;\r\n\r\n\t                    break;\r\n\t                case 23:\r\n\t                    return 48;\r\n\t                    break;\r\n\t                case 24:\r\n\t                    return 73;\r\n\t                    break;\r\n\t                case 25:\r\n\t                    return 72;\r\n\t                    break;\r\n\t                case 26:\r\n\t                    return 72;\r\n\t                    break;\r\n\t                case 27:\r\n\t                    return 87;\r\n\t                    break;\r\n\t                case 28:\r\n\t                    // ignore whitespace\r\n\t                    break;\r\n\t                case 29:\r\n\t                    this.popState();return 54;\r\n\t                    break;\r\n\t                case 30:\r\n\t                    this.popState();return 33;\r\n\t                    break;\r\n\t                case 31:\r\n\t                    yy_.yytext = strip(1, 2).replace(/\\\\\"/g, '\"');return 80;\r\n\t                    break;\r\n\t                case 32:\r\n\t                    yy_.yytext = strip(1, 2).replace(/\\\\'/g, \"'\");return 80;\r\n\t                    break;\r\n\t                case 33:\r\n\t                    return 85;\r\n\t                    break;\r\n\t                case 34:\r\n\t                    return 82;\r\n\t                    break;\r\n\t                case 35:\r\n\t                    return 82;\r\n\t                    break;\r\n\t                case 36:\r\n\t                    return 83;\r\n\t                    break;\r\n\t                case 37:\r\n\t                    return 84;\r\n\t                    break;\r\n\t                case 38:\r\n\t                    return 81;\r\n\t                    break;\r\n\t                case 39:\r\n\t                    return 75;\r\n\t                    break;\r\n\t                case 40:\r\n\t                    return 77;\r\n\t                    break;\r\n\t                case 41:\r\n\t                    return 72;\r\n\t                    break;\r\n\t                case 42:\r\n\t                    yy_.yytext = yy_.yytext.replace(/\\\\([\\\\\\]])/g, '$1');return 72;\r\n\t                    break;\r\n\t                case 43:\r\n\t                    return 'INVALID';\r\n\t                    break;\r\n\t                case 44:\r\n\t                    return 5;\r\n\t                    break;\r\n\t            }\r\n\t        };\r\n\t        lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/, /^(?:[^\\x00]+)/, /^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/, /^(?:\\{\\{\\{\\{(?=[^\\/]))/, /^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/, /^(?:[^\\x00]*?(?=(\\{\\{\\{\\{)))/, /^(?:[\\s\\S]*?--(~)?\\}\\})/, /^(?:\\()/, /^(?:\\))/, /^(?:\\{\\{\\{\\{)/, /^(?:\\}\\}\\}\\})/, /^(?:\\{\\{(~)?>)/, /^(?:\\{\\{(~)?#>)/, /^(?:\\{\\{(~)?#\\*?)/, /^(?:\\{\\{(~)?\\/)/, /^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\^)/, /^(?:\\{\\{(~)?\\s*else\\b)/, /^(?:\\{\\{(~)?\\{)/, /^(?:\\{\\{(~)?&)/, /^(?:\\{\\{(~)?!--)/, /^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/, /^(?:\\{\\{(~)?\\*?)/, /^(?:=)/, /^(?:\\.\\.)/, /^(?:\\.(?=([=~}\\s\\/.)|])))/, /^(?:[\\/.])/, /^(?:\\s+)/, /^(?:\\}(~)?\\}\\})/, /^(?:(~)?\\}\\})/, /^(?:\"(\\\\[\"]|[^\"])*\")/, /^(?:'(\\\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\\s)])))/, /^(?:false(?=([~}\\s)])))/, /^(?:undefined(?=([~}\\s)])))/, /^(?:null(?=([~}\\s)])))/, /^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/, /^(?:as\\s+\\|)/, /^(?:\\|)/, /^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/, /^(?:\\[(\\\\\\]|[^\\]])*\\])/, /^(?:.)/, /^(?:$)/];\r\n\t        lexer.conditions = { \"mu\": { \"rules\": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], \"inclusive\": false }, \"emu\": { \"rules\": [2], \"inclusive\": false }, \"com\": { \"rules\": [6], \"inclusive\": false }, \"raw\": { \"rules\": [3, 4, 5], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 44], \"inclusive\": true } };\r\n\t        return lexer;\r\n\t    })();\r\n\t    parser.lexer = lexer;\r\n\t    function Parser() {\r\n\t        this.yy = {};\r\n\t    }Parser.prototype = parser;parser.Parser = Parser;\r\n\t    return new Parser();\r\n\t})();exports[\"default\"] = handlebars;\r\n\tmodule.exports = exports[\"default\"];\r\n\r\n/***/ }),\r\n/* 38 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _visitor = __webpack_require__(39);\r\n\r\n\tvar _visitor2 = _interopRequireDefault(_visitor);\r\n\r\n\tfunction WhitespaceControl() {\r\n\t  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n\r\n\t  this.options = options;\r\n\t}\r\n\tWhitespaceControl.prototype = new _visitor2['default']();\r\n\r\n\tWhitespaceControl.prototype.Program = function (program) {\r\n\t  var doStandalone = !this.options.ignoreStandalone;\r\n\r\n\t  var isRoot = !this.isRootSeen;\r\n\t  this.isRootSeen = true;\r\n\r\n\t  var body = program.body;\r\n\t  for (var i = 0, l = body.length; i < l; i++) {\r\n\t    var current = body[i],\r\n\t        strip = this.accept(current);\r\n\r\n\t    if (!strip) {\r\n\t      continue;\r\n\t    }\r\n\r\n\t    var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),\r\n\t        _isNextWhitespace = isNextWhitespace(body, i, isRoot),\r\n\t        openStandalone = strip.openStandalone && _isPrevWhitespace,\r\n\t        closeStandalone = strip.closeStandalone && _isNextWhitespace,\r\n\t        inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;\r\n\r\n\t    if (strip.close) {\r\n\t      omitRight(body, i, true);\r\n\t    }\r\n\t    if (strip.open) {\r\n\t      omitLeft(body, i, true);\r\n\t    }\r\n\r\n\t    if (doStandalone && inlineStandalone) {\r\n\t      omitRight(body, i);\r\n\r\n\t      if (omitLeft(body, i)) {\r\n\t        // If we are on a standalone node, save the indent info for partials\r\n\t        if (current.type === 'PartialStatement') {\r\n\t          // Pull out the whitespace from the final line\r\n\t          current.indent = /([ \\t]+$)/.exec(body[i - 1].original)[1];\r\n\t        }\r\n\t      }\r\n\t    }\r\n\t    if (doStandalone && openStandalone) {\r\n\t      omitRight((current.program || current.inverse).body);\r\n\r\n\t      // Strip out the previous content node if it's whitespace only\r\n\t      omitLeft(body, i);\r\n\t    }\r\n\t    if (doStandalone && closeStandalone) {\r\n\t      // Always strip the next node\r\n\t      omitRight(body, i);\r\n\r\n\t      omitLeft((current.inverse || current.program).body);\r\n\t    }\r\n\t  }\r\n\r\n\t  return program;\r\n\t};\r\n\r\n\tWhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {\r\n\t  this.accept(block.program);\r\n\t  this.accept(block.inverse);\r\n\r\n\t  // Find the inverse program that is involed with whitespace stripping.\r\n\t  var program = block.program || block.inverse,\r\n\t      inverse = block.program && block.inverse,\r\n\t      firstInverse = inverse,\r\n\t      lastInverse = inverse;\r\n\r\n\t  if (inverse && inverse.chained) {\r\n\t    firstInverse = inverse.body[0].program;\r\n\r\n\t    // Walk the inverse chain to find the last inverse that is actually in the chain.\r\n\t    while (lastInverse.chained) {\r\n\t      lastInverse = lastInverse.body[lastInverse.body.length - 1].program;\r\n\t    }\r\n\t  }\r\n\r\n\t  var strip = {\r\n\t    open: block.openStrip.open,\r\n\t    close: block.closeStrip.close,\r\n\r\n\t    // Determine the standalone candiacy. Basically flag our content as being possibly standalone\r\n\t    // so our parent can determine if we actually are standalone\r\n\t    openStandalone: isNextWhitespace(program.body),\r\n\t    closeStandalone: isPrevWhitespace((firstInverse || program).body)\r\n\t  };\r\n\r\n\t  if (block.openStrip.close) {\r\n\t    omitRight(program.body, null, true);\r\n\t  }\r\n\r\n\t  if (inverse) {\r\n\t    var inverseStrip = block.inverseStrip;\r\n\r\n\t    if (inverseStrip.open) {\r\n\t      omitLeft(program.body, null, true);\r\n\t    }\r\n\r\n\t    if (inverseStrip.close) {\r\n\t      omitRight(firstInverse.body, null, true);\r\n\t    }\r\n\t    if (block.closeStrip.open) {\r\n\t      omitLeft(lastInverse.body, null, true);\r\n\t    }\r\n\r\n\t    // Find standalone else statments\r\n\t    if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {\r\n\t      omitLeft(program.body);\r\n\t      omitRight(firstInverse.body);\r\n\t    }\r\n\t  } else if (block.closeStrip.open) {\r\n\t    omitLeft(program.body, null, true);\r\n\t  }\r\n\r\n\t  return strip;\r\n\t};\r\n\r\n\tWhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {\r\n\t  return mustache.strip;\r\n\t};\r\n\r\n\tWhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {\r\n\t  /* istanbul ignore next */\r\n\t  var strip = node.strip || {};\r\n\t  return {\r\n\t    inlineStandalone: true,\r\n\t    open: strip.open,\r\n\t    close: strip.close\r\n\t  };\r\n\t};\r\n\r\n\tfunction isPrevWhitespace(body, i, isRoot) {\r\n\t  if (i === undefined) {\r\n\t    i = body.length;\r\n\t  }\r\n\r\n\t  // Nodes that end with newlines are considered whitespace (but are special\r\n\t  // cased for strip operations)\r\n\t  var prev = body[i - 1],\r\n\t      sibling = body[i - 2];\r\n\t  if (!prev) {\r\n\t    return isRoot;\r\n\t  }\r\n\r\n\t  if (prev.type === 'ContentStatement') {\r\n\t    return (sibling || !isRoot ? /\\r?\\n\\s*?$/ : /(^|\\r?\\n)\\s*?$/).test(prev.original);\r\n\t  }\r\n\t}\r\n\tfunction isNextWhitespace(body, i, isRoot) {\r\n\t  if (i === undefined) {\r\n\t    i = -1;\r\n\t  }\r\n\r\n\t  var next = body[i + 1],\r\n\t      sibling = body[i + 2];\r\n\t  if (!next) {\r\n\t    return isRoot;\r\n\t  }\r\n\r\n\t  if (next.type === 'ContentStatement') {\r\n\t    return (sibling || !isRoot ? /^\\s*?\\r?\\n/ : /^\\s*?(\\r?\\n|$)/).test(next.original);\r\n\t  }\r\n\t}\r\n\r\n\t// Marks the node to the right of the position as omitted.\r\n\t// I.e. {{foo}}' ' will mark the ' ' node as omitted.\r\n\t//\r\n\t// If i is undefined, then the first child will be marked as such.\r\n\t//\r\n\t// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\r\n\t// content is met.\r\n\tfunction omitRight(body, i, multiple) {\r\n\t  var current = body[i == null ? 0 : i + 1];\r\n\t  if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {\r\n\t    return;\r\n\t  }\r\n\r\n\t  var original = current.value;\r\n\t  current.value = current.value.replace(multiple ? /^\\s+/ : /^[ \\t]*\\r?\\n?/, '');\r\n\t  current.rightStripped = current.value !== original;\r\n\t}\r\n\r\n\t// Marks the node to the left of the position as omitted.\r\n\t// I.e. ' '{{foo}} will mark the ' ' node as omitted.\r\n\t//\r\n\t// If i is undefined then the last child will be marked as such.\r\n\t//\r\n\t// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\r\n\t// content is met.\r\n\tfunction omitLeft(body, i, multiple) {\r\n\t  var current = body[i == null ? body.length - 1 : i - 1];\r\n\t  if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {\r\n\t    return;\r\n\t  }\r\n\r\n\t  // We omit the last node if it's whitespace only and not preceeded by a non-content node.\r\n\t  var original = current.value;\r\n\t  current.value = current.value.replace(multiple ? /\\s+$/ : /[ \\t]+$/, '');\r\n\t  current.leftStripped = current.value !== original;\r\n\t  return current.leftStripped;\r\n\t}\r\n\r\n\texports['default'] = WhitespaceControl;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 39 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tfunction Visitor() {\r\n\t  this.parents = [];\r\n\t}\r\n\r\n\tVisitor.prototype = {\r\n\t  constructor: Visitor,\r\n\t  mutating: false,\r\n\r\n\t  // Visits a given value. If mutating, will replace the value if necessary.\r\n\t  acceptKey: function acceptKey(node, name) {\r\n\t    var value = this.accept(node[name]);\r\n\t    if (this.mutating) {\r\n\t      // Hacky sanity check: This may have a few false positives for type for the helper\r\n\t      // methods but will generally do the right thing without a lot of overhead.\r\n\t      if (value && !Visitor.prototype[value.type]) {\r\n\t        throw new _exception2['default']('Unexpected node type \"' + value.type + '\" found when accepting ' + name + ' on ' + node.type);\r\n\t      }\r\n\t      node[name] = value;\r\n\t    }\r\n\t  },\r\n\r\n\t  // Performs an accept operation with added sanity check to ensure\r\n\t  // required keys are not removed.\r\n\t  acceptRequired: function acceptRequired(node, name) {\r\n\t    this.acceptKey(node, name);\r\n\r\n\t    if (!node[name]) {\r\n\t      throw new _exception2['default'](node.type + ' requires ' + name);\r\n\t    }\r\n\t  },\r\n\r\n\t  // Traverses a given array. If mutating, empty respnses will be removed\r\n\t  // for child elements.\r\n\t  acceptArray: function acceptArray(array) {\r\n\t    for (var i = 0, l = array.length; i < l; i++) {\r\n\t      this.acceptKey(array, i);\r\n\r\n\t      if (!array[i]) {\r\n\t        array.splice(i, 1);\r\n\t        i--;\r\n\t        l--;\r\n\t      }\r\n\t    }\r\n\t  },\r\n\r\n\t  accept: function accept(object) {\r\n\t    if (!object) {\r\n\t      return;\r\n\t    }\r\n\r\n\t    /* istanbul ignore next: Sanity code */\r\n\t    if (!this[object.type]) {\r\n\t      throw new _exception2['default']('Unknown type: ' + object.type, object);\r\n\t    }\r\n\r\n\t    if (this.current) {\r\n\t      this.parents.unshift(this.current);\r\n\t    }\r\n\t    this.current = object;\r\n\r\n\t    var ret = this[object.type](object);\r\n\r\n\t    this.current = this.parents.shift();\r\n\r\n\t    if (!this.mutating || ret) {\r\n\t      return ret;\r\n\t    } else if (ret !== false) {\r\n\t      return object;\r\n\t    }\r\n\t  },\r\n\r\n\t  Program: function Program(program) {\r\n\t    this.acceptArray(program.body);\r\n\t  },\r\n\r\n\t  MustacheStatement: visitSubExpression,\r\n\t  Decorator: visitSubExpression,\r\n\r\n\t  BlockStatement: visitBlock,\r\n\t  DecoratorBlock: visitBlock,\r\n\r\n\t  PartialStatement: visitPartial,\r\n\t  PartialBlockStatement: function PartialBlockStatement(partial) {\r\n\t    visitPartial.call(this, partial);\r\n\r\n\t    this.acceptKey(partial, 'program');\r\n\t  },\r\n\r\n\t  ContentStatement: function ContentStatement() /* content */{},\r\n\t  CommentStatement: function CommentStatement() /* comment */{},\r\n\r\n\t  SubExpression: visitSubExpression,\r\n\r\n\t  PathExpression: function PathExpression() /* path */{},\r\n\r\n\t  StringLiteral: function StringLiteral() /* string */{},\r\n\t  NumberLiteral: function NumberLiteral() /* number */{},\r\n\t  BooleanLiteral: function BooleanLiteral() /* bool */{},\r\n\t  UndefinedLiteral: function UndefinedLiteral() /* literal */{},\r\n\t  NullLiteral: function NullLiteral() /* literal */{},\r\n\r\n\t  Hash: function Hash(hash) {\r\n\t    this.acceptArray(hash.pairs);\r\n\t  },\r\n\t  HashPair: function HashPair(pair) {\r\n\t    this.acceptRequired(pair, 'value');\r\n\t  }\r\n\t};\r\n\r\n\tfunction visitSubExpression(mustache) {\r\n\t  this.acceptRequired(mustache, 'path');\r\n\t  this.acceptArray(mustache.params);\r\n\t  this.acceptKey(mustache, 'hash');\r\n\t}\r\n\tfunction visitBlock(block) {\r\n\t  visitSubExpression.call(this, block);\r\n\r\n\t  this.acceptKey(block, 'program');\r\n\t  this.acceptKey(block, 'inverse');\r\n\t}\r\n\tfunction visitPartial(partial) {\r\n\t  this.acceptRequired(partial, 'name');\r\n\t  this.acceptArray(partial.params);\r\n\t  this.acceptKey(partial, 'hash');\r\n\t}\r\n\r\n\texports['default'] = Visitor;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 40 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.SourceLocation = SourceLocation;\r\n\texports.id = id;\r\n\texports.stripFlags = stripFlags;\r\n\texports.stripComment = stripComment;\r\n\texports.preparePath = preparePath;\r\n\texports.prepareMustache = prepareMustache;\r\n\texports.prepareRawBlock = prepareRawBlock;\r\n\texports.prepareBlock = prepareBlock;\r\n\texports.prepareProgram = prepareProgram;\r\n\texports.preparePartialBlock = preparePartialBlock;\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tfunction validateClose(open, close) {\r\n\t  close = close.path ? close.path.original : close;\r\n\r\n\t  if (open.path.original !== close) {\r\n\t    var errorNode = { loc: open.path.loc };\r\n\r\n\t    throw new _exception2['default'](open.path.original + \" doesn't match \" + close, errorNode);\r\n\t  }\r\n\t}\r\n\r\n\tfunction SourceLocation(source, locInfo) {\r\n\t  this.source = source;\r\n\t  this.start = {\r\n\t    line: locInfo.first_line,\r\n\t    column: locInfo.first_column\r\n\t  };\r\n\t  this.end = {\r\n\t    line: locInfo.last_line,\r\n\t    column: locInfo.last_column\r\n\t  };\r\n\t}\r\n\r\n\tfunction id(token) {\r\n\t  if (/^\\[.*\\]$/.test(token)) {\r\n\t    return token.substring(1, token.length - 1);\r\n\t  } else {\r\n\t    return token;\r\n\t  }\r\n\t}\r\n\r\n\tfunction stripFlags(open, close) {\r\n\t  return {\r\n\t    open: open.charAt(2) === '~',\r\n\t    close: close.charAt(close.length - 3) === '~'\r\n\t  };\r\n\t}\r\n\r\n\tfunction stripComment(comment) {\r\n\t  return comment.replace(/^\\{\\{~?!-?-?/, '').replace(/-?-?~?\\}\\}$/, '');\r\n\t}\r\n\r\n\tfunction preparePath(data, parts, loc) {\r\n\t  loc = this.locInfo(loc);\r\n\r\n\t  var original = data ? '@' : '',\r\n\t      dig = [],\r\n\t      depth = 0;\r\n\r\n\t  for (var i = 0, l = parts.length; i < l; i++) {\r\n\t    var part = parts[i].part,\r\n\r\n\t    // If we have [] syntax then we do not treat path references as operators,\r\n\t    // i.e. foo.[this] resolves to approximately context.foo['this']\r\n\t    isLiteral = parts[i].original !== part;\r\n\t    original += (parts[i].separator || '') + part;\r\n\r\n\t    if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {\r\n\t      if (dig.length > 0) {\r\n\t        throw new _exception2['default']('Invalid path: ' + original, { loc: loc });\r\n\t      } else if (part === '..') {\r\n\t        depth++;\r\n\t      }\r\n\t    } else {\r\n\t      dig.push(part);\r\n\t    }\r\n\t  }\r\n\r\n\t  return {\r\n\t    type: 'PathExpression',\r\n\t    data: data,\r\n\t    depth: depth,\r\n\t    parts: dig,\r\n\t    original: original,\r\n\t    loc: loc\r\n\t  };\r\n\t}\r\n\r\n\tfunction prepareMustache(path, params, hash, open, strip, locInfo) {\r\n\t  // Must use charAt to support IE pre-10\r\n\t  var escapeFlag = open.charAt(3) || open.charAt(2),\r\n\t      escaped = escapeFlag !== '{' && escapeFlag !== '&';\r\n\r\n\t  var decorator = /\\*/.test(open);\r\n\t  return {\r\n\t    type: decorator ? 'Decorator' : 'MustacheStatement',\r\n\t    path: path,\r\n\t    params: params,\r\n\t    hash: hash,\r\n\t    escaped: escaped,\r\n\t    strip: strip,\r\n\t    loc: this.locInfo(locInfo)\r\n\t  };\r\n\t}\r\n\r\n\tfunction prepareRawBlock(openRawBlock, contents, close, locInfo) {\r\n\t  validateClose(openRawBlock, close);\r\n\r\n\t  locInfo = this.locInfo(locInfo);\r\n\t  var program = {\r\n\t    type: 'Program',\r\n\t    body: contents,\r\n\t    strip: {},\r\n\t    loc: locInfo\r\n\t  };\r\n\r\n\t  return {\r\n\t    type: 'BlockStatement',\r\n\t    path: openRawBlock.path,\r\n\t    params: openRawBlock.params,\r\n\t    hash: openRawBlock.hash,\r\n\t    program: program,\r\n\t    openStrip: {},\r\n\t    inverseStrip: {},\r\n\t    closeStrip: {},\r\n\t    loc: locInfo\r\n\t  };\r\n\t}\r\n\r\n\tfunction prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {\r\n\t  if (close && close.path) {\r\n\t    validateClose(openBlock, close);\r\n\t  }\r\n\r\n\t  var decorator = /\\*/.test(openBlock.open);\r\n\r\n\t  program.blockParams = openBlock.blockParams;\r\n\r\n\t  var inverse = undefined,\r\n\t      inverseStrip = undefined;\r\n\r\n\t  if (inverseAndProgram) {\r\n\t    if (decorator) {\r\n\t      throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);\r\n\t    }\r\n\r\n\t    if (inverseAndProgram.chain) {\r\n\t      inverseAndProgram.program.body[0].closeStrip = close.strip;\r\n\t    }\r\n\r\n\t    inverseStrip = inverseAndProgram.strip;\r\n\t    inverse = inverseAndProgram.program;\r\n\t  }\r\n\r\n\t  if (inverted) {\r\n\t    inverted = inverse;\r\n\t    inverse = program;\r\n\t    program = inverted;\r\n\t  }\r\n\r\n\t  return {\r\n\t    type: decorator ? 'DecoratorBlock' : 'BlockStatement',\r\n\t    path: openBlock.path,\r\n\t    params: openBlock.params,\r\n\t    hash: openBlock.hash,\r\n\t    program: program,\r\n\t    inverse: inverse,\r\n\t    openStrip: openBlock.strip,\r\n\t    inverseStrip: inverseStrip,\r\n\t    closeStrip: close && close.strip,\r\n\t    loc: this.locInfo(locInfo)\r\n\t  };\r\n\t}\r\n\r\n\tfunction prepareProgram(statements, loc) {\r\n\t  if (!loc && statements.length) {\r\n\t    var firstLoc = statements[0].loc,\r\n\t        lastLoc = statements[statements.length - 1].loc;\r\n\r\n\t    /* istanbul ignore else */\r\n\t    if (firstLoc && lastLoc) {\r\n\t      loc = {\r\n\t        source: firstLoc.source,\r\n\t        start: {\r\n\t          line: firstLoc.start.line,\r\n\t          column: firstLoc.start.column\r\n\t        },\r\n\t        end: {\r\n\t          line: lastLoc.end.line,\r\n\t          column: lastLoc.end.column\r\n\t        }\r\n\t      };\r\n\t    }\r\n\t  }\r\n\r\n\t  return {\r\n\t    type: 'Program',\r\n\t    body: statements,\r\n\t    strip: {},\r\n\t    loc: loc\r\n\t  };\r\n\t}\r\n\r\n\tfunction preparePartialBlock(open, program, close, locInfo) {\r\n\t  validateClose(open, close);\r\n\r\n\t  return {\r\n\t    type: 'PartialBlockStatement',\r\n\t    name: open.path,\r\n\t    params: open.params,\r\n\t    hash: open.hash,\r\n\t    program: program,\r\n\t    openStrip: open.strip,\r\n\t    closeStrip: close && close.strip,\r\n\t    loc: this.locInfo(locInfo)\r\n\t  };\r\n\t}\r\n\r\n/***/ }),\r\n/* 41 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t/* eslint-disable new-cap */\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\texports.Compiler = Compiler;\r\n\texports.precompile = precompile;\r\n\texports.compile = compile;\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar _ast = __webpack_require__(35);\r\n\r\n\tvar _ast2 = _interopRequireDefault(_ast);\r\n\r\n\tvar slice = [].slice;\r\n\r\n\tfunction Compiler() {}\r\n\r\n\t// the foundHelper register will disambiguate helper lookup from finding a\r\n\t// function in a context. This is necessary for mustache compatibility, which\r\n\t// requires that context functions in blocks are evaluated by blockHelperMissing,\r\n\t// and then proceed as if the resulting value was provided to blockHelperMissing.\r\n\r\n\tCompiler.prototype = {\r\n\t  compiler: Compiler,\r\n\r\n\t  equals: function equals(other) {\r\n\t    var len = this.opcodes.length;\r\n\t    if (other.opcodes.length !== len) {\r\n\t      return false;\r\n\t    }\r\n\r\n\t    for (var i = 0; i < len; i++) {\r\n\t      var opcode = this.opcodes[i],\r\n\t          otherOpcode = other.opcodes[i];\r\n\t      if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {\r\n\t        return false;\r\n\t      }\r\n\t    }\r\n\r\n\t    // We know that length is the same between the two arrays because they are directly tied\r\n\t    // to the opcode behavior above.\r\n\t    len = this.children.length;\r\n\t    for (var i = 0; i < len; i++) {\r\n\t      if (!this.children[i].equals(other.children[i])) {\r\n\t        return false;\r\n\t      }\r\n\t    }\r\n\r\n\t    return true;\r\n\t  },\r\n\r\n\t  guid: 0,\r\n\r\n\t  compile: function compile(program, options) {\r\n\t    this.sourceNode = [];\r\n\t    this.opcodes = [];\r\n\t    this.children = [];\r\n\t    this.options = options;\r\n\t    this.stringParams = options.stringParams;\r\n\t    this.trackIds = options.trackIds;\r\n\r\n\t    options.blockParams = options.blockParams || [];\r\n\r\n\t    // These changes will propagate to the other compiler components\r\n\t    var knownHelpers = options.knownHelpers;\r\n\t    options.knownHelpers = {\r\n\t      'helperMissing': true,\r\n\t      'blockHelperMissing': true,\r\n\t      'each': true,\r\n\t      'if': true,\r\n\t      'unless': true,\r\n\t      'with': true,\r\n\t      'log': true,\r\n\t      'lookup': true\r\n\t    };\r\n\t    if (knownHelpers) {\r\n\t      // the next line should use \"Object.keys\", but the code has been like this a long time and changing it, might\r\n\t      // cause backwards-compatibility issues... It's an old library...\r\n\t      // eslint-disable-next-line guard-for-in\r\n\t      for (var _name in knownHelpers) {\r\n\t        this.options.knownHelpers[_name] = knownHelpers[_name];\r\n\t      }\r\n\t    }\r\n\r\n\t    return this.accept(program);\r\n\t  },\r\n\r\n\t  compileProgram: function compileProgram(program) {\r\n\t    var childCompiler = new this.compiler(),\r\n\t        // eslint-disable-line new-cap\r\n\t    result = childCompiler.compile(program, this.options),\r\n\t        guid = this.guid++;\r\n\r\n\t    this.usePartial = this.usePartial || result.usePartial;\r\n\r\n\t    this.children[guid] = result;\r\n\t    this.useDepths = this.useDepths || result.useDepths;\r\n\r\n\t    return guid;\r\n\t  },\r\n\r\n\t  accept: function accept(node) {\r\n\t    /* istanbul ignore next: Sanity code */\r\n\t    if (!this[node.type]) {\r\n\t      throw new _exception2['default']('Unknown type: ' + node.type, node);\r\n\t    }\r\n\r\n\t    this.sourceNode.unshift(node);\r\n\t    var ret = this[node.type](node);\r\n\t    this.sourceNode.shift();\r\n\t    return ret;\r\n\t  },\r\n\r\n\t  Program: function Program(program) {\r\n\t    this.options.blockParams.unshift(program.blockParams);\r\n\r\n\t    var body = program.body,\r\n\t        bodyLength = body.length;\r\n\t    for (var i = 0; i < bodyLength; i++) {\r\n\t      this.accept(body[i]);\r\n\t    }\r\n\r\n\t    this.options.blockParams.shift();\r\n\r\n\t    this.isSimple = bodyLength === 1;\r\n\t    this.blockParams = program.blockParams ? program.blockParams.length : 0;\r\n\r\n\t    return this;\r\n\t  },\r\n\r\n\t  BlockStatement: function BlockStatement(block) {\r\n\t    transformLiteralToPath(block);\r\n\r\n\t    var program = block.program,\r\n\t        inverse = block.inverse;\r\n\r\n\t    program = program && this.compileProgram(program);\r\n\t    inverse = inverse && this.compileProgram(inverse);\r\n\r\n\t    var type = this.classifySexpr(block);\r\n\r\n\t    if (type === 'helper') {\r\n\t      this.helperSexpr(block, program, inverse);\r\n\t    } else if (type === 'simple') {\r\n\t      this.simpleSexpr(block);\r\n\r\n\t      // now that the simple mustache is resolved, we need to\r\n\t      // evaluate it by executing `blockHelperMissing`\r\n\t      this.opcode('pushProgram', program);\r\n\t      this.opcode('pushProgram', inverse);\r\n\t      this.opcode('emptyHash');\r\n\t      this.opcode('blockValue', block.path.original);\r\n\t    } else {\r\n\t      this.ambiguousSexpr(block, program, inverse);\r\n\r\n\t      // now that the simple mustache is resolved, we need to\r\n\t      // evaluate it by executing `blockHelperMissing`\r\n\t      this.opcode('pushProgram', program);\r\n\t      this.opcode('pushProgram', inverse);\r\n\t      this.opcode('emptyHash');\r\n\t      this.opcode('ambiguousBlockValue');\r\n\t    }\r\n\r\n\t    this.opcode('append');\r\n\t  },\r\n\r\n\t  DecoratorBlock: function DecoratorBlock(decorator) {\r\n\t    var program = decorator.program && this.compileProgram(decorator.program);\r\n\t    var params = this.setupFullMustacheParams(decorator, program, undefined),\r\n\t        path = decorator.path;\r\n\r\n\t    this.useDecorators = true;\r\n\t    this.opcode('registerDecorator', params.length, path.original);\r\n\t  },\r\n\r\n\t  PartialStatement: function PartialStatement(partial) {\r\n\t    this.usePartial = true;\r\n\r\n\t    var program = partial.program;\r\n\t    if (program) {\r\n\t      program = this.compileProgram(partial.program);\r\n\t    }\r\n\r\n\t    var params = partial.params;\r\n\t    if (params.length > 1) {\r\n\t      throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);\r\n\t    } else if (!params.length) {\r\n\t      if (this.options.explicitPartialContext) {\r\n\t        this.opcode('pushLiteral', 'undefined');\r\n\t      } else {\r\n\t        params.push({ type: 'PathExpression', parts: [], depth: 0 });\r\n\t      }\r\n\t    }\r\n\r\n\t    var partialName = partial.name.original,\r\n\t        isDynamic = partial.name.type === 'SubExpression';\r\n\t    if (isDynamic) {\r\n\t      this.accept(partial.name);\r\n\t    }\r\n\r\n\t    this.setupFullMustacheParams(partial, program, undefined, true);\r\n\r\n\t    var indent = partial.indent || '';\r\n\t    if (this.options.preventIndent && indent) {\r\n\t      this.opcode('appendContent', indent);\r\n\t      indent = '';\r\n\t    }\r\n\r\n\t    this.opcode('invokePartial', isDynamic, partialName, indent);\r\n\t    this.opcode('append');\r\n\t  },\r\n\t  PartialBlockStatement: function PartialBlockStatement(partialBlock) {\r\n\t    this.PartialStatement(partialBlock);\r\n\t  },\r\n\r\n\t  MustacheStatement: function MustacheStatement(mustache) {\r\n\t    this.SubExpression(mustache);\r\n\r\n\t    if (mustache.escaped && !this.options.noEscape) {\r\n\t      this.opcode('appendEscaped');\r\n\t    } else {\r\n\t      this.opcode('append');\r\n\t    }\r\n\t  },\r\n\t  Decorator: function Decorator(decorator) {\r\n\t    this.DecoratorBlock(decorator);\r\n\t  },\r\n\r\n\t  ContentStatement: function ContentStatement(content) {\r\n\t    if (content.value) {\r\n\t      this.opcode('appendContent', content.value);\r\n\t    }\r\n\t  },\r\n\r\n\t  CommentStatement: function CommentStatement() {},\r\n\r\n\t  SubExpression: function SubExpression(sexpr) {\r\n\t    transformLiteralToPath(sexpr);\r\n\t    var type = this.classifySexpr(sexpr);\r\n\r\n\t    if (type === 'simple') {\r\n\t      this.simpleSexpr(sexpr);\r\n\t    } else if (type === 'helper') {\r\n\t      this.helperSexpr(sexpr);\r\n\t    } else {\r\n\t      this.ambiguousSexpr(sexpr);\r\n\t    }\r\n\t  },\r\n\t  ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {\r\n\t    var path = sexpr.path,\r\n\t        name = path.parts[0],\r\n\t        isBlock = program != null || inverse != null;\r\n\r\n\t    this.opcode('getContext', path.depth);\r\n\r\n\t    this.opcode('pushProgram', program);\r\n\t    this.opcode('pushProgram', inverse);\r\n\r\n\t    path.strict = true;\r\n\t    this.accept(path);\r\n\r\n\t    this.opcode('invokeAmbiguous', name, isBlock);\r\n\t  },\r\n\r\n\t  simpleSexpr: function simpleSexpr(sexpr) {\r\n\t    var path = sexpr.path;\r\n\t    path.strict = true;\r\n\t    this.accept(path);\r\n\t    this.opcode('resolvePossibleLambda');\r\n\t  },\r\n\r\n\t  helperSexpr: function helperSexpr(sexpr, program, inverse) {\r\n\t    var params = this.setupFullMustacheParams(sexpr, program, inverse),\r\n\t        path = sexpr.path,\r\n\t        name = path.parts[0];\r\n\r\n\t    if (this.options.knownHelpers[name]) {\r\n\t      this.opcode('invokeKnownHelper', params.length, name);\r\n\t    } else if (this.options.knownHelpersOnly) {\r\n\t      throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);\r\n\t    } else {\r\n\t      path.strict = true;\r\n\t      path.falsy = true;\r\n\r\n\t      this.accept(path);\r\n\t      this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));\r\n\t    }\r\n\t  },\r\n\r\n\t  PathExpression: function PathExpression(path) {\r\n\t    this.addDepth(path.depth);\r\n\t    this.opcode('getContext', path.depth);\r\n\r\n\t    var name = path.parts[0],\r\n\t        scoped = _ast2['default'].helpers.scopedId(path),\r\n\t        blockParamId = !path.depth && !scoped && this.blockParamIndex(name);\r\n\r\n\t    if (blockParamId) {\r\n\t      this.opcode('lookupBlockParam', blockParamId, path.parts);\r\n\t    } else if (!name) {\r\n\t      // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`\r\n\t      this.opcode('pushContext');\r\n\t    } else if (path.data) {\r\n\t      this.options.data = true;\r\n\t      this.opcode('lookupData', path.depth, path.parts, path.strict);\r\n\t    } else {\r\n\t      this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);\r\n\t    }\r\n\t  },\r\n\r\n\t  StringLiteral: function StringLiteral(string) {\r\n\t    this.opcode('pushString', string.value);\r\n\t  },\r\n\r\n\t  NumberLiteral: function NumberLiteral(number) {\r\n\t    this.opcode('pushLiteral', number.value);\r\n\t  },\r\n\r\n\t  BooleanLiteral: function BooleanLiteral(bool) {\r\n\t    this.opcode('pushLiteral', bool.value);\r\n\t  },\r\n\r\n\t  UndefinedLiteral: function UndefinedLiteral() {\r\n\t    this.opcode('pushLiteral', 'undefined');\r\n\t  },\r\n\r\n\t  NullLiteral: function NullLiteral() {\r\n\t    this.opcode('pushLiteral', 'null');\r\n\t  },\r\n\r\n\t  Hash: function Hash(hash) {\r\n\t    var pairs = hash.pairs,\r\n\t        i = 0,\r\n\t        l = pairs.length;\r\n\r\n\t    this.opcode('pushHash');\r\n\r\n\t    for (; i < l; i++) {\r\n\t      this.pushParam(pairs[i].value);\r\n\t    }\r\n\t    while (i--) {\r\n\t      this.opcode('assignToHash', pairs[i].key);\r\n\t    }\r\n\t    this.opcode('popHash');\r\n\t  },\r\n\r\n\t  // HELPERS\r\n\t  opcode: function opcode(name) {\r\n\t    this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc });\r\n\t  },\r\n\r\n\t  addDepth: function addDepth(depth) {\r\n\t    if (!depth) {\r\n\t      return;\r\n\t    }\r\n\r\n\t    this.useDepths = true;\r\n\t  },\r\n\r\n\t  classifySexpr: function classifySexpr(sexpr) {\r\n\t    var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);\r\n\r\n\t    var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]);\r\n\r\n\t    // a mustache is an eligible helper if:\r\n\t    // * its id is simple (a single part, not `this` or `..`)\r\n\t    var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr);\r\n\r\n\t    // if a mustache is an eligible helper but not a definite\r\n\t    // helper, it is ambiguous, and will be resolved in a later\r\n\t    // pass or at runtime.\r\n\t    var isEligible = !isBlockParam && (isHelper || isSimple);\r\n\r\n\t    // if ambiguous, we can possibly resolve the ambiguity now\r\n\t    // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.\r\n\t    if (isEligible && !isHelper) {\r\n\t      var _name2 = sexpr.path.parts[0],\r\n\t          options = this.options;\r\n\r\n\t      if (options.knownHelpers[_name2]) {\r\n\t        isHelper = true;\r\n\t      } else if (options.knownHelpersOnly) {\r\n\t        isEligible = false;\r\n\t      }\r\n\t    }\r\n\r\n\t    if (isHelper) {\r\n\t      return 'helper';\r\n\t    } else if (isEligible) {\r\n\t      return 'ambiguous';\r\n\t    } else {\r\n\t      return 'simple';\r\n\t    }\r\n\t  },\r\n\r\n\t  pushParams: function pushParams(params) {\r\n\t    for (var i = 0, l = params.length; i < l; i++) {\r\n\t      this.pushParam(params[i]);\r\n\t    }\r\n\t  },\r\n\r\n\t  pushParam: function pushParam(val) {\r\n\t    var value = val.value != null ? val.value : val.original || '';\r\n\r\n\t    if (this.stringParams) {\r\n\t      if (value.replace) {\r\n\t        value = value.replace(/^(\\.?\\.\\/)*/g, '').replace(/\\//g, '.');\r\n\t      }\r\n\r\n\t      if (val.depth) {\r\n\t        this.addDepth(val.depth);\r\n\t      }\r\n\t      this.opcode('getContext', val.depth || 0);\r\n\t      this.opcode('pushStringParam', value, val.type);\r\n\r\n\t      if (val.type === 'SubExpression') {\r\n\t        // SubExpressions get evaluated and passed in\r\n\t        // in string params mode.\r\n\t        this.accept(val);\r\n\t      }\r\n\t    } else {\r\n\t      if (this.trackIds) {\r\n\t        var blockParamIndex = undefined;\r\n\t        if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {\r\n\t          blockParamIndex = this.blockParamIndex(val.parts[0]);\r\n\t        }\r\n\t        if (blockParamIndex) {\r\n\t          var blockParamChild = val.parts.slice(1).join('.');\r\n\t          this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);\r\n\t        } else {\r\n\t          value = val.original || value;\r\n\t          if (value.replace) {\r\n\t            value = value.replace(/^this(?:\\.|$)/, '').replace(/^\\.\\//, '').replace(/^\\.$/, '');\r\n\t          }\r\n\r\n\t          this.opcode('pushId', val.type, value);\r\n\t        }\r\n\t      }\r\n\t      this.accept(val);\r\n\t    }\r\n\t  },\r\n\r\n\t  setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {\r\n\t    var params = sexpr.params;\r\n\t    this.pushParams(params);\r\n\r\n\t    this.opcode('pushProgram', program);\r\n\t    this.opcode('pushProgram', inverse);\r\n\r\n\t    if (sexpr.hash) {\r\n\t      this.accept(sexpr.hash);\r\n\t    } else {\r\n\t      this.opcode('emptyHash', omitEmpty);\r\n\t    }\r\n\r\n\t    return params;\r\n\t  },\r\n\r\n\t  blockParamIndex: function blockParamIndex(name) {\r\n\t    for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {\r\n\t      var blockParams = this.options.blockParams[depth],\r\n\t          param = blockParams && _utils.indexOf(blockParams, name);\r\n\t      if (blockParams && param >= 0) {\r\n\t        return [depth, param];\r\n\t      }\r\n\t    }\r\n\t  }\r\n\t};\r\n\r\n\tfunction precompile(input, options, env) {\r\n\t  if (input == null || typeof input !== 'string' && input.type !== 'Program') {\r\n\t    throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);\r\n\t  }\r\n\r\n\t  options = options || {};\r\n\t  if (!('data' in options)) {\r\n\t    options.data = true;\r\n\t  }\r\n\t  if (options.compat) {\r\n\t    options.useDepths = true;\r\n\t  }\r\n\r\n\t  var ast = env.parse(input, options),\r\n\t      environment = new env.Compiler().compile(ast, options);\r\n\t  return new env.JavaScriptCompiler().compile(environment, options);\r\n\t}\r\n\r\n\tfunction compile(input, options, env) {\r\n\t  if (options === undefined) options = {};\r\n\r\n\t  if (input == null || typeof input !== 'string' && input.type !== 'Program') {\r\n\t    throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);\r\n\t  }\r\n\r\n\t  options = _utils.extend({}, options);\r\n\t  if (!('data' in options)) {\r\n\t    options.data = true;\r\n\t  }\r\n\t  if (options.compat) {\r\n\t    options.useDepths = true;\r\n\t  }\r\n\r\n\t  var compiled = undefined;\r\n\r\n\t  function compileInput() {\r\n\t    var ast = env.parse(input, options),\r\n\t        environment = new env.Compiler().compile(ast, options),\r\n\t        templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);\r\n\t    return env.template(templateSpec);\r\n\t  }\r\n\r\n\t  // Template is only compiled on first use and cached after that point.\r\n\t  function ret(context, execOptions) {\r\n\t    if (!compiled) {\r\n\t      compiled = compileInput();\r\n\t    }\r\n\t    return compiled.call(this, context, execOptions);\r\n\t  }\r\n\t  ret._setup = function (setupOptions) {\r\n\t    if (!compiled) {\r\n\t      compiled = compileInput();\r\n\t    }\r\n\t    return compiled._setup(setupOptions);\r\n\t  };\r\n\t  ret._child = function (i, data, blockParams, depths) {\r\n\t    if (!compiled) {\r\n\t      compiled = compileInput();\r\n\t    }\r\n\t    return compiled._child(i, data, blockParams, depths);\r\n\t  };\r\n\t  return ret;\r\n\t}\r\n\r\n\tfunction argEquals(a, b) {\r\n\t  if (a === b) {\r\n\t    return true;\r\n\t  }\r\n\r\n\t  if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {\r\n\t    for (var i = 0; i < a.length; i++) {\r\n\t      if (!argEquals(a[i], b[i])) {\r\n\t        return false;\r\n\t      }\r\n\t    }\r\n\t    return true;\r\n\t  }\r\n\t}\r\n\r\n\tfunction transformLiteralToPath(sexpr) {\r\n\t  if (!sexpr.path.parts) {\r\n\t    var literal = sexpr.path;\r\n\t    // Casting to string here to make false and 0 literal values play nicely with the rest\r\n\t    // of the system.\r\n\t    sexpr.path = {\r\n\t      type: 'PathExpression',\r\n\t      data: false,\r\n\t      depth: 0,\r\n\t      parts: [literal.original + ''],\r\n\t      original: literal.original + '',\r\n\t      loc: literal.loc\r\n\t    };\r\n\t  }\r\n\t}\r\n\r\n/***/ }),\r\n/* 42 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _base = __webpack_require__(4);\r\n\r\n\tvar _exception = __webpack_require__(6);\r\n\r\n\tvar _exception2 = _interopRequireDefault(_exception);\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar _codeGen = __webpack_require__(43);\r\n\r\n\tvar _codeGen2 = _interopRequireDefault(_codeGen);\r\n\r\n\tfunction Literal(value) {\r\n\t  this.value = value;\r\n\t}\r\n\r\n\tfunction JavaScriptCompiler() {}\r\n\r\n\tJavaScriptCompiler.prototype = {\r\n\t  // PUBLIC API: You can override these methods in a subclass to provide\r\n\t  // alternative compiled forms for name lookup and buffering semantics\r\n\t  nameLookup: function nameLookup(parent, name /* , type*/) {\r\n\t    if (name === 'constructor') {\r\n\t      return ['(', parent, '.propertyIsEnumerable(\\'constructor\\') ? ', parent, '.constructor : undefined', ')'];\r\n\t    }\r\n\t    if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {\r\n\t      return [parent, '.', name];\r\n\t    } else {\r\n\t      return [parent, '[', JSON.stringify(name), ']'];\r\n\t    }\r\n\t  },\r\n\t  depthedLookup: function depthedLookup(name) {\r\n\t    return [this.aliasable('container.lookup'), '(depths, \"', name, '\")'];\r\n\t  },\r\n\r\n\t  compilerInfo: function compilerInfo() {\r\n\t    var revision = _base.COMPILER_REVISION,\r\n\t        versions = _base.REVISION_CHANGES[revision];\r\n\t    return [revision, versions];\r\n\t  },\r\n\r\n\t  appendToBuffer: function appendToBuffer(source, location, explicit) {\r\n\t    // Force a source as this simplifies the merge logic.\r\n\t    if (!_utils.isArray(source)) {\r\n\t      source = [source];\r\n\t    }\r\n\t    source = this.source.wrap(source, location);\r\n\r\n\t    if (this.environment.isSimple) {\r\n\t      return ['return ', source, ';'];\r\n\t    } else if (explicit) {\r\n\t      // This is a case where the buffer operation occurs as a child of another\r\n\t      // construct, generally braces. We have to explicitly output these buffer\r\n\t      // operations to ensure that the emitted code goes in the correct location.\r\n\t      return ['buffer += ', source, ';'];\r\n\t    } else {\r\n\t      source.appendToBuffer = true;\r\n\t      return source;\r\n\t    }\r\n\t  },\r\n\r\n\t  initializeBuffer: function initializeBuffer() {\r\n\t    return this.quotedString('');\r\n\t  },\r\n\t  // END PUBLIC API\r\n\r\n\t  compile: function compile(environment, options, context, asObject) {\r\n\t    this.environment = environment;\r\n\t    this.options = options;\r\n\t    this.stringParams = this.options.stringParams;\r\n\t    this.trackIds = this.options.trackIds;\r\n\t    this.precompile = !asObject;\r\n\r\n\t    this.name = this.environment.name;\r\n\t    this.isChild = !!context;\r\n\t    this.context = context || {\r\n\t      decorators: [],\r\n\t      programs: [],\r\n\t      environments: []\r\n\t    };\r\n\r\n\t    this.preamble();\r\n\r\n\t    this.stackSlot = 0;\r\n\t    this.stackVars = [];\r\n\t    this.aliases = {};\r\n\t    this.registers = { list: [] };\r\n\t    this.hashes = [];\r\n\t    this.compileStack = [];\r\n\t    this.inlineStack = [];\r\n\t    this.blockParams = [];\r\n\r\n\t    this.compileChildren(environment, options);\r\n\r\n\t    this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;\r\n\t    this.useBlockParams = this.useBlockParams || environment.useBlockParams;\r\n\r\n\t    var opcodes = environment.opcodes,\r\n\t        opcode = undefined,\r\n\t        firstLoc = undefined,\r\n\t        i = undefined,\r\n\t        l = undefined;\r\n\r\n\t    for (i = 0, l = opcodes.length; i < l; i++) {\r\n\t      opcode = opcodes[i];\r\n\r\n\t      this.source.currentLocation = opcode.loc;\r\n\t      firstLoc = firstLoc || opcode.loc;\r\n\t      this[opcode.opcode].apply(this, opcode.args);\r\n\t    }\r\n\r\n\t    // Flush any trailing content that might be pending.\r\n\t    this.source.currentLocation = firstLoc;\r\n\t    this.pushSource('');\r\n\r\n\t    /* istanbul ignore next */\r\n\t    if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {\r\n\t      throw new _exception2['default']('Compile completed with content left on stack');\r\n\t    }\r\n\r\n\t    if (!this.decorators.isEmpty()) {\r\n\t      this.useDecorators = true;\r\n\r\n\t      this.decorators.prepend('var decorators = container.decorators;\\n');\r\n\t      this.decorators.push('return fn;');\r\n\r\n\t      if (asObject) {\r\n\t        this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);\r\n\t      } else {\r\n\t        this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\\n');\r\n\t        this.decorators.push('}\\n');\r\n\t        this.decorators = this.decorators.merge();\r\n\t      }\r\n\t    } else {\r\n\t      this.decorators = undefined;\r\n\t    }\r\n\r\n\t    var fn = this.createFunctionContext(asObject);\r\n\t    if (!this.isChild) {\r\n\t      var ret = {\r\n\t        compiler: this.compilerInfo(),\r\n\t        main: fn\r\n\t      };\r\n\r\n\t      if (this.decorators) {\r\n\t        ret.main_d = this.decorators; // eslint-disable-line camelcase\r\n\t        ret.useDecorators = true;\r\n\t      }\r\n\r\n\t      var _context = this.context;\r\n\t      var programs = _context.programs;\r\n\t      var decorators = _context.decorators;\r\n\r\n\t      for (i = 0, l = programs.length; i < l; i++) {\r\n\t        if (programs[i]) {\r\n\t          ret[i] = programs[i];\r\n\t          if (decorators[i]) {\r\n\t            ret[i + '_d'] = decorators[i];\r\n\t            ret.useDecorators = true;\r\n\t          }\r\n\t        }\r\n\t      }\r\n\r\n\t      if (this.environment.usePartial) {\r\n\t        ret.usePartial = true;\r\n\t      }\r\n\t      if (this.options.data) {\r\n\t        ret.useData = true;\r\n\t      }\r\n\t      if (this.useDepths) {\r\n\t        ret.useDepths = true;\r\n\t      }\r\n\t      if (this.useBlockParams) {\r\n\t        ret.useBlockParams = true;\r\n\t      }\r\n\t      if (this.options.compat) {\r\n\t        ret.compat = true;\r\n\t      }\r\n\r\n\t      if (!asObject) {\r\n\t        ret.compiler = JSON.stringify(ret.compiler);\r\n\r\n\t        this.source.currentLocation = { start: { line: 1, column: 0 } };\r\n\t        ret = this.objectLiteral(ret);\r\n\r\n\t        if (options.srcName) {\r\n\t          ret = ret.toStringWithSourceMap({ file: options.destName });\r\n\t          ret.map = ret.map && ret.map.toString();\r\n\t        } else {\r\n\t          ret = ret.toString();\r\n\t        }\r\n\t      } else {\r\n\t        ret.compilerOptions = this.options;\r\n\t      }\r\n\r\n\t      return ret;\r\n\t    } else {\r\n\t      return fn;\r\n\t    }\r\n\t  },\r\n\r\n\t  preamble: function preamble() {\r\n\t    // track the last context pushed into place to allow skipping the\r\n\t    // getContext opcode when it would be a noop\r\n\t    this.lastContext = 0;\r\n\t    this.source = new _codeGen2['default'](this.options.srcName);\r\n\t    this.decorators = new _codeGen2['default'](this.options.srcName);\r\n\t  },\r\n\r\n\t  createFunctionContext: function createFunctionContext(asObject) {\r\n\t    var varDeclarations = '';\r\n\r\n\t    var locals = this.stackVars.concat(this.registers.list);\r\n\t    if (locals.length > 0) {\r\n\t      varDeclarations += ', ' + locals.join(', ');\r\n\t    }\r\n\r\n\t    // Generate minimizer alias mappings\r\n\t    //\r\n\t    // When using true SourceNodes, this will update all references to the given alias\r\n\t    // as the source nodes are reused in situ. For the non-source node compilation mode,\r\n\t    // aliases will not be used, but this case is already being run on the client and\r\n\t    // we aren't concern about minimizing the template size.\r\n\t    var aliasCount = 0;\r\n\t    for (var alias in this.aliases) {\r\n\t      // eslint-disable-line guard-for-in\r\n\t      var node = this.aliases[alias];\r\n\r\n\t      if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) {\r\n\t        varDeclarations += ', alias' + ++aliasCount + '=' + alias;\r\n\t        node.children[0] = 'alias' + aliasCount;\r\n\t      }\r\n\t    }\r\n\r\n\t    var params = ['container', 'depth0', 'helpers', 'partials', 'data'];\r\n\r\n\t    if (this.useBlockParams || this.useDepths) {\r\n\t      params.push('blockParams');\r\n\t    }\r\n\t    if (this.useDepths) {\r\n\t      params.push('depths');\r\n\t    }\r\n\r\n\t    // Perform a second pass over the output to merge content when possible\r\n\t    var source = this.mergeSource(varDeclarations);\r\n\r\n\t    if (asObject) {\r\n\t      params.push(source);\r\n\r\n\t      return Function.apply(this, params);\r\n\t    } else {\r\n\t      return this.source.wrap(['function(', params.join(','), ') {\\n  ', source, '}']);\r\n\t    }\r\n\t  },\r\n\t  mergeSource: function mergeSource(varDeclarations) {\r\n\t    var isSimple = this.environment.isSimple,\r\n\t        appendOnly = !this.forceBuffer,\r\n\t        appendFirst = undefined,\r\n\t        sourceSeen = undefined,\r\n\t        bufferStart = undefined,\r\n\t        bufferEnd = undefined;\r\n\t    this.source.each(function (line) {\r\n\t      if (line.appendToBuffer) {\r\n\t        if (bufferStart) {\r\n\t          line.prepend('  + ');\r\n\t        } else {\r\n\t          bufferStart = line;\r\n\t        }\r\n\t        bufferEnd = line;\r\n\t      } else {\r\n\t        if (bufferStart) {\r\n\t          if (!sourceSeen) {\r\n\t            appendFirst = true;\r\n\t          } else {\r\n\t            bufferStart.prepend('buffer += ');\r\n\t          }\r\n\t          bufferEnd.add(';');\r\n\t          bufferStart = bufferEnd = undefined;\r\n\t        }\r\n\r\n\t        sourceSeen = true;\r\n\t        if (!isSimple) {\r\n\t          appendOnly = false;\r\n\t        }\r\n\t      }\r\n\t    });\r\n\r\n\t    if (appendOnly) {\r\n\t      if (bufferStart) {\r\n\t        bufferStart.prepend('return ');\r\n\t        bufferEnd.add(';');\r\n\t      } else if (!sourceSeen) {\r\n\t        this.source.push('return \"\";');\r\n\t      }\r\n\t    } else {\r\n\t      varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());\r\n\r\n\t      if (bufferStart) {\r\n\t        bufferStart.prepend('return buffer + ');\r\n\t        bufferEnd.add(';');\r\n\t      } else {\r\n\t        this.source.push('return buffer;');\r\n\t      }\r\n\t    }\r\n\r\n\t    if (varDeclarations) {\r\n\t      this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\\n'));\r\n\t    }\r\n\r\n\t    return this.source.merge();\r\n\t  },\r\n\r\n\t  // [blockValue]\r\n\t  //\r\n\t  // On stack, before: hash, inverse, program, value\r\n\t  // On stack, after: return value of blockHelperMissing\r\n\t  //\r\n\t  // The purpose of this opcode is to take a block of the form\r\n\t  // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and\r\n\t  // replace it on the stack with the result of properly\r\n\t  // invoking blockHelperMissing.\r\n\t  blockValue: function blockValue(name) {\r\n\t    var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),\r\n\t        params = [this.contextName(0)];\r\n\t    this.setupHelperArgs(name, 0, params);\r\n\r\n\t    var blockName = this.popStack();\r\n\t    params.splice(1, 0, blockName);\r\n\r\n\t    this.push(this.source.functionCall(blockHelperMissing, 'call', params));\r\n\t  },\r\n\r\n\t  // [ambiguousBlockValue]\r\n\t  //\r\n\t  // On stack, before: hash, inverse, program, value\r\n\t  // Compiler value, before: lastHelper=value of last found helper, if any\r\n\t  // On stack, after, if no lastHelper: same as [blockValue]\r\n\t  // On stack, after, if lastHelper: value\r\n\t  ambiguousBlockValue: function ambiguousBlockValue() {\r\n\t    // We're being a bit cheeky and reusing the options value from the prior exec\r\n\t    var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),\r\n\t        params = [this.contextName(0)];\r\n\t    this.setupHelperArgs('', 0, params, true);\r\n\r\n\t    this.flushInline();\r\n\r\n\t    var current = this.topStack();\r\n\t    params.splice(1, 0, current);\r\n\r\n\t    this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);\r\n\t  },\r\n\r\n\t  // [appendContent]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: ...\r\n\t  //\r\n\t  // Appends the string value of `content` to the current buffer\r\n\t  appendContent: function appendContent(content) {\r\n\t    if (this.pendingContent) {\r\n\t      content = this.pendingContent + content;\r\n\t    } else {\r\n\t      this.pendingLocation = this.source.currentLocation;\r\n\t    }\r\n\r\n\t    this.pendingContent = content;\r\n\t  },\r\n\r\n\t  // [append]\r\n\t  //\r\n\t  // On stack, before: value, ...\r\n\t  // On stack, after: ...\r\n\t  //\r\n\t  // Coerces `value` to a String and appends it to the current buffer.\r\n\t  //\r\n\t  // If `value` is truthy, or 0, it is coerced into a string and appended\r\n\t  // Otherwise, the empty string is appended\r\n\t  append: function append() {\r\n\t    if (this.isInline()) {\r\n\t      this.replaceStack(function (current) {\r\n\t        return [' != null ? ', current, ' : \"\"'];\r\n\t      });\r\n\r\n\t      this.pushSource(this.appendToBuffer(this.popStack()));\r\n\t    } else {\r\n\t      var local = this.popStack();\r\n\t      this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);\r\n\t      if (this.environment.isSimple) {\r\n\t        this.pushSource(['else { ', this.appendToBuffer(\"''\", undefined, true), ' }']);\r\n\t      }\r\n\t    }\r\n\t  },\r\n\r\n\t  // [appendEscaped]\r\n\t  //\r\n\t  // On stack, before: value, ...\r\n\t  // On stack, after: ...\r\n\t  //\r\n\t  // Escape `value` and append it to the buffer\r\n\t  appendEscaped: function appendEscaped() {\r\n\t    this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));\r\n\t  },\r\n\r\n\t  // [getContext]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: ...\r\n\t  // Compiler value, after: lastContext=depth\r\n\t  //\r\n\t  // Set the value of the `lastContext` compiler value to the depth\r\n\t  getContext: function getContext(depth) {\r\n\t    this.lastContext = depth;\r\n\t  },\r\n\r\n\t  // [pushContext]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: currentContext, ...\r\n\t  //\r\n\t  // Pushes the value of the current context onto the stack.\r\n\t  pushContext: function pushContext() {\r\n\t    this.pushStackLiteral(this.contextName(this.lastContext));\r\n\t  },\r\n\r\n\t  // [lookupOnContext]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: currentContext[name], ...\r\n\t  //\r\n\t  // Looks up the value of `name` on the current context and pushes\r\n\t  // it onto the stack.\r\n\t  lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {\r\n\t    var i = 0;\r\n\r\n\t    if (!scoped && this.options.compat && !this.lastContext) {\r\n\t      // The depthed query is expected to handle the undefined logic for the root level that\r\n\t      // is implemented below, so we evaluate that directly in compat mode\r\n\t      this.push(this.depthedLookup(parts[i++]));\r\n\t    } else {\r\n\t      this.pushContext();\r\n\t    }\r\n\r\n\t    this.resolvePath('context', parts, i, falsy, strict);\r\n\t  },\r\n\r\n\t  // [lookupBlockParam]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: blockParam[name], ...\r\n\t  //\r\n\t  // Looks up the value of `parts` on the given block param and pushes\r\n\t  // it onto the stack.\r\n\t  lookupBlockParam: function lookupBlockParam(blockParamId, parts) {\r\n\t    this.useBlockParams = true;\r\n\r\n\t    this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);\r\n\t    this.resolvePath('context', parts, 1);\r\n\t  },\r\n\r\n\t  // [lookupData]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: data, ...\r\n\t  //\r\n\t  // Push the data lookup operator\r\n\t  lookupData: function lookupData(depth, parts, strict) {\r\n\t    if (!depth) {\r\n\t      this.pushStackLiteral('data');\r\n\t    } else {\r\n\t      this.pushStackLiteral('container.data(data, ' + depth + ')');\r\n\t    }\r\n\r\n\t    this.resolvePath('data', parts, 0, true, strict);\r\n\t  },\r\n\r\n\t  resolvePath: function resolvePath(type, parts, i, falsy, strict) {\r\n\t    // istanbul ignore next\r\n\r\n\t    var _this = this;\r\n\r\n\t    if (this.options.strict || this.options.assumeObjects) {\r\n\t      this.push(strictLookup(this.options.strict && strict, this, parts, type));\r\n\t      return;\r\n\t    }\r\n\r\n\t    var len = parts.length;\r\n\t    for (; i < len; i++) {\r\n\t      /* eslint-disable no-loop-func */\r\n\t      this.replaceStack(function (current) {\r\n\t        var lookup = _this.nameLookup(current, parts[i], type);\r\n\t        // We want to ensure that zero and false are handled properly if the context (falsy flag)\r\n\t        // needs to have the special handling for these values.\r\n\t        if (!falsy) {\r\n\t          return [' != null ? ', lookup, ' : ', current];\r\n\t        } else {\r\n\t          // Otherwise we can use generic falsy handling\r\n\t          return [' && ', lookup];\r\n\t        }\r\n\t      });\r\n\t      /* eslint-enable no-loop-func */\r\n\t    }\r\n\t  },\r\n\r\n\t  // [resolvePossibleLambda]\r\n\t  //\r\n\t  // On stack, before: value, ...\r\n\t  // On stack, after: resolved value, ...\r\n\t  //\r\n\t  // If the `value` is a lambda, replace it on the stack by\r\n\t  // the return value of the lambda\r\n\t  resolvePossibleLambda: function resolvePossibleLambda() {\r\n\t    this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);\r\n\t  },\r\n\r\n\t  // [pushStringParam]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: string, currentContext, ...\r\n\t  //\r\n\t  // This opcode is designed for use in string mode, which\r\n\t  // provides the string value of a parameter along with its\r\n\t  // depth rather than resolving it immediately.\r\n\t  pushStringParam: function pushStringParam(string, type) {\r\n\t    this.pushContext();\r\n\t    this.pushString(type);\r\n\r\n\t    // If it's a subexpression, the string result\r\n\t    // will be pushed after this opcode.\r\n\t    if (type !== 'SubExpression') {\r\n\t      if (typeof string === 'string') {\r\n\t        this.pushString(string);\r\n\t      } else {\r\n\t        this.pushStackLiteral(string);\r\n\t      }\r\n\t    }\r\n\t  },\r\n\r\n\t  emptyHash: function emptyHash(omitEmpty) {\r\n\t    if (this.trackIds) {\r\n\t      this.push('{}'); // hashIds\r\n\t    }\r\n\t    if (this.stringParams) {\r\n\t      this.push('{}'); // hashContexts\r\n\t      this.push('{}'); // hashTypes\r\n\t    }\r\n\t    this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');\r\n\t  },\r\n\t  pushHash: function pushHash() {\r\n\t    if (this.hash) {\r\n\t      this.hashes.push(this.hash);\r\n\t    }\r\n\t    this.hash = { values: [], types: [], contexts: [], ids: [] };\r\n\t  },\r\n\t  popHash: function popHash() {\r\n\t    var hash = this.hash;\r\n\t    this.hash = this.hashes.pop();\r\n\r\n\t    if (this.trackIds) {\r\n\t      this.push(this.objectLiteral(hash.ids));\r\n\t    }\r\n\t    if (this.stringParams) {\r\n\t      this.push(this.objectLiteral(hash.contexts));\r\n\t      this.push(this.objectLiteral(hash.types));\r\n\t    }\r\n\r\n\t    this.push(this.objectLiteral(hash.values));\r\n\t  },\r\n\r\n\t  // [pushString]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: quotedString(string), ...\r\n\t  //\r\n\t  // Push a quoted version of `string` onto the stack\r\n\t  pushString: function pushString(string) {\r\n\t    this.pushStackLiteral(this.quotedString(string));\r\n\t  },\r\n\r\n\t  // [pushLiteral]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: value, ...\r\n\t  //\r\n\t  // Pushes a value onto the stack. This operation prevents\r\n\t  // the compiler from creating a temporary variable to hold\r\n\t  // it.\r\n\t  pushLiteral: function pushLiteral(value) {\r\n\t    this.pushStackLiteral(value);\r\n\t  },\r\n\r\n\t  // [pushProgram]\r\n\t  //\r\n\t  // On stack, before: ...\r\n\t  // On stack, after: program(guid), ...\r\n\t  //\r\n\t  // Push a program expression onto the stack. This takes\r\n\t  // a compile-time guid and converts it into a runtime-accessible\r\n\t  // expression.\r\n\t  pushProgram: function pushProgram(guid) {\r\n\t    if (guid != null) {\r\n\t      this.pushStackLiteral(this.programExpression(guid));\r\n\t    } else {\r\n\t      this.pushStackLiteral(null);\r\n\t    }\r\n\t  },\r\n\r\n\t  // [registerDecorator]\r\n\t  //\r\n\t  // On stack, before: hash, program, params..., ...\r\n\t  // On stack, after: ...\r\n\t  //\r\n\t  // Pops off the decorator's parameters, invokes the decorator,\r\n\t  // and inserts the decorator into the decorators list.\r\n\t  registerDecorator: function registerDecorator(paramSize, name) {\r\n\t    var foundDecorator = this.nameLookup('decorators', name, 'decorator'),\r\n\t        options = this.setupHelperArgs(name, paramSize);\r\n\r\n\t    this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);\r\n\t  },\r\n\r\n\t  // [invokeHelper]\r\n\t  //\r\n\t  // On stack, before: hash, inverse, program, params..., ...\r\n\t  // On stack, after: result of helper invocation\r\n\t  //\r\n\t  // Pops off the helper's parameters, invokes the helper,\r\n\t  // and pushes the helper's return value onto the stack.\r\n\t  //\r\n\t  // If the helper is not found, `helperMissing` is called.\r\n\t  invokeHelper: function invokeHelper(paramSize, name, isSimple) {\r\n\t    var nonHelper = this.popStack(),\r\n\t        helper = this.setupHelper(paramSize, name),\r\n\t        simple = isSimple ? [helper.name, ' || '] : '';\r\n\r\n\t    var lookup = ['('].concat(simple, nonHelper);\r\n\t    if (!this.options.strict) {\r\n\t      lookup.push(' || ', this.aliasable('helpers.helperMissing'));\r\n\t    }\r\n\t    lookup.push(')');\r\n\r\n\t    this.push(this.source.functionCall(lookup, 'call', helper.callParams));\r\n\t  },\r\n\r\n\t  // [invokeKnownHelper]\r\n\t  //\r\n\t  // On stack, before: hash, inverse, program, params..., ...\r\n\t  // On stack, after: result of helper invocation\r\n\t  //\r\n\t  // This operation is used when the helper is known to exist,\r\n\t  // so a `helperMissing` fallback is not required.\r\n\t  invokeKnownHelper: function invokeKnownHelper(paramSize, name) {\r\n\t    var helper = this.setupHelper(paramSize, name);\r\n\t    this.push(this.source.functionCall(helper.name, 'call', helper.callParams));\r\n\t  },\r\n\r\n\t  // [invokeAmbiguous]\r\n\t  //\r\n\t  // On stack, before: hash, inverse, program, params..., ...\r\n\t  // On stack, after: result of disambiguation\r\n\t  //\r\n\t  // This operation is used when an expression like `{{foo}}`\r\n\t  // is provided, but we don't know at compile-time whether it\r\n\t  // is a helper or a path.\r\n\t  //\r\n\t  // This operation emits more code than the other options,\r\n\t  // and can be avoided by passing the `knownHelpers` and\r\n\t  // `knownHelpersOnly` flags at compile-time.\r\n\t  invokeAmbiguous: function invokeAmbiguous(name, helperCall) {\r\n\t    this.useRegister('helper');\r\n\r\n\t    var nonHelper = this.popStack();\r\n\r\n\t    this.emptyHash();\r\n\t    var helper = this.setupHelper(0, name, helperCall);\r\n\r\n\t    var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');\r\n\r\n\t    var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];\r\n\t    if (!this.options.strict) {\r\n\t      lookup[0] = '(helper = ';\r\n\t      lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));\r\n\t    }\r\n\r\n\t    this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('\"function\"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);\r\n\t  },\r\n\r\n\t  // [invokePartial]\r\n\t  //\r\n\t  // On stack, before: context, ...\r\n\t  // On stack after: result of partial invocation\r\n\t  //\r\n\t  // This operation pops off a context, invokes a partial with that context,\r\n\t  // and pushes the result of the invocation back.\r\n\t  invokePartial: function invokePartial(isDynamic, name, indent) {\r\n\t    var params = [],\r\n\t        options = this.setupParams(name, 1, params);\r\n\r\n\t    if (isDynamic) {\r\n\t      name = this.popStack();\r\n\t      delete options.name;\r\n\t    }\r\n\r\n\t    if (indent) {\r\n\t      options.indent = JSON.stringify(indent);\r\n\t    }\r\n\t    options.helpers = 'helpers';\r\n\t    options.partials = 'partials';\r\n\t    options.decorators = 'container.decorators';\r\n\r\n\t    if (!isDynamic) {\r\n\t      params.unshift(this.nameLookup('partials', name, 'partial'));\r\n\t    } else {\r\n\t      params.unshift(name);\r\n\t    }\r\n\r\n\t    if (this.options.compat) {\r\n\t      options.depths = 'depths';\r\n\t    }\r\n\t    options = this.objectLiteral(options);\r\n\t    params.push(options);\r\n\r\n\t    this.push(this.source.functionCall('container.invokePartial', '', params));\r\n\t  },\r\n\r\n\t  // [assignToHash]\r\n\t  //\r\n\t  // On stack, before: value, ..., hash, ...\r\n\t  // On stack, after: ..., hash, ...\r\n\t  //\r\n\t  // Pops a value off the stack and assigns it to the current hash\r\n\t  assignToHash: function assignToHash(key) {\r\n\t    var value = this.popStack(),\r\n\t        context = undefined,\r\n\t        type = undefined,\r\n\t        id = undefined;\r\n\r\n\t    if (this.trackIds) {\r\n\t      id = this.popStack();\r\n\t    }\r\n\t    if (this.stringParams) {\r\n\t      type = this.popStack();\r\n\t      context = this.popStack();\r\n\t    }\r\n\r\n\t    var hash = this.hash;\r\n\t    if (context) {\r\n\t      hash.contexts[key] = context;\r\n\t    }\r\n\t    if (type) {\r\n\t      hash.types[key] = type;\r\n\t    }\r\n\t    if (id) {\r\n\t      hash.ids[key] = id;\r\n\t    }\r\n\t    hash.values[key] = value;\r\n\t  },\r\n\r\n\t  pushId: function pushId(type, name, child) {\r\n\t    if (type === 'BlockParam') {\r\n\t      this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));\r\n\t    } else if (type === 'PathExpression') {\r\n\t      this.pushString(name);\r\n\t    } else if (type === 'SubExpression') {\r\n\t      this.pushStackLiteral('true');\r\n\t    } else {\r\n\t      this.pushStackLiteral('null');\r\n\t    }\r\n\t  },\r\n\r\n\t  // HELPERS\r\n\r\n\t  compiler: JavaScriptCompiler,\r\n\r\n\t  compileChildren: function compileChildren(environment, options) {\r\n\t    var children = environment.children,\r\n\t        child = undefined,\r\n\t        compiler = undefined;\r\n\r\n\t    for (var i = 0, l = children.length; i < l; i++) {\r\n\t      child = children[i];\r\n\t      compiler = new this.compiler(); // eslint-disable-line new-cap\r\n\r\n\t      var existing = this.matchExistingProgram(child);\r\n\r\n\t      if (existing == null) {\r\n\t        this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children\r\n\t        var index = this.context.programs.length;\r\n\t        child.index = index;\r\n\t        child.name = 'program' + index;\r\n\t        this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);\r\n\t        this.context.decorators[index] = compiler.decorators;\r\n\t        this.context.environments[index] = child;\r\n\r\n\t        this.useDepths = this.useDepths || compiler.useDepths;\r\n\t        this.useBlockParams = this.useBlockParams || compiler.useBlockParams;\r\n\t        child.useDepths = this.useDepths;\r\n\t        child.useBlockParams = this.useBlockParams;\r\n\t      } else {\r\n\t        child.index = existing.index;\r\n\t        child.name = 'program' + existing.index;\r\n\r\n\t        this.useDepths = this.useDepths || existing.useDepths;\r\n\t        this.useBlockParams = this.useBlockParams || existing.useBlockParams;\r\n\t      }\r\n\t    }\r\n\t  },\r\n\t  matchExistingProgram: function matchExistingProgram(child) {\r\n\t    for (var i = 0, len = this.context.environments.length; i < len; i++) {\r\n\t      var environment = this.context.environments[i];\r\n\t      if (environment && environment.equals(child)) {\r\n\t        return environment;\r\n\t      }\r\n\t    }\r\n\t  },\r\n\r\n\t  programExpression: function programExpression(guid) {\r\n\t    var child = this.environment.children[guid],\r\n\t        programParams = [child.index, 'data', child.blockParams];\r\n\r\n\t    if (this.useBlockParams || this.useDepths) {\r\n\t      programParams.push('blockParams');\r\n\t    }\r\n\t    if (this.useDepths) {\r\n\t      programParams.push('depths');\r\n\t    }\r\n\r\n\t    return 'container.program(' + programParams.join(', ') + ')';\r\n\t  },\r\n\r\n\t  useRegister: function useRegister(name) {\r\n\t    if (!this.registers[name]) {\r\n\t      this.registers[name] = true;\r\n\t      this.registers.list.push(name);\r\n\t    }\r\n\t  },\r\n\r\n\t  push: function push(expr) {\r\n\t    if (!(expr instanceof Literal)) {\r\n\t      expr = this.source.wrap(expr);\r\n\t    }\r\n\r\n\t    this.inlineStack.push(expr);\r\n\t    return expr;\r\n\t  },\r\n\r\n\t  pushStackLiteral: function pushStackLiteral(item) {\r\n\t    this.push(new Literal(item));\r\n\t  },\r\n\r\n\t  pushSource: function pushSource(source) {\r\n\t    if (this.pendingContent) {\r\n\t      this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));\r\n\t      this.pendingContent = undefined;\r\n\t    }\r\n\r\n\t    if (source) {\r\n\t      this.source.push(source);\r\n\t    }\r\n\t  },\r\n\r\n\t  replaceStack: function replaceStack(callback) {\r\n\t    var prefix = ['('],\r\n\t        stack = undefined,\r\n\t        createdStack = undefined,\r\n\t        usedLiteral = undefined;\r\n\r\n\t    /* istanbul ignore next */\r\n\t    if (!this.isInline()) {\r\n\t      throw new _exception2['default']('replaceStack on non-inline');\r\n\t    }\r\n\r\n\t    // We want to merge the inline statement into the replacement statement via ','\r\n\t    var top = this.popStack(true);\r\n\r\n\t    if (top instanceof Literal) {\r\n\t      // Literals do not need to be inlined\r\n\t      stack = [top.value];\r\n\t      prefix = ['(', stack];\r\n\t      usedLiteral = true;\r\n\t    } else {\r\n\t      // Get or create the current stack name for use by the inline\r\n\t      createdStack = true;\r\n\t      var _name = this.incrStack();\r\n\r\n\t      prefix = ['((', this.push(_name), ' = ', top, ')'];\r\n\t      stack = this.topStack();\r\n\t    }\r\n\r\n\t    var item = callback.call(this, stack);\r\n\r\n\t    if (!usedLiteral) {\r\n\t      this.popStack();\r\n\t    }\r\n\t    if (createdStack) {\r\n\t      this.stackSlot--;\r\n\t    }\r\n\t    this.push(prefix.concat(item, ')'));\r\n\t  },\r\n\r\n\t  incrStack: function incrStack() {\r\n\t    this.stackSlot++;\r\n\t    if (this.stackSlot > this.stackVars.length) {\r\n\t      this.stackVars.push('stack' + this.stackSlot);\r\n\t    }\r\n\t    return this.topStackName();\r\n\t  },\r\n\t  topStackName: function topStackName() {\r\n\t    return 'stack' + this.stackSlot;\r\n\t  },\r\n\t  flushInline: function flushInline() {\r\n\t    var inlineStack = this.inlineStack;\r\n\t    this.inlineStack = [];\r\n\t    for (var i = 0, len = inlineStack.length; i < len; i++) {\r\n\t      var entry = inlineStack[i];\r\n\t      /* istanbul ignore if */\r\n\t      if (entry instanceof Literal) {\r\n\t        this.compileStack.push(entry);\r\n\t      } else {\r\n\t        var stack = this.incrStack();\r\n\t        this.pushSource([stack, ' = ', entry, ';']);\r\n\t        this.compileStack.push(stack);\r\n\t      }\r\n\t    }\r\n\t  },\r\n\t  isInline: function isInline() {\r\n\t    return this.inlineStack.length;\r\n\t  },\r\n\r\n\t  popStack: function popStack(wrapped) {\r\n\t    var inline = this.isInline(),\r\n\t        item = (inline ? this.inlineStack : this.compileStack).pop();\r\n\r\n\t    if (!wrapped && item instanceof Literal) {\r\n\t      return item.value;\r\n\t    } else {\r\n\t      if (!inline) {\r\n\t        /* istanbul ignore next */\r\n\t        if (!this.stackSlot) {\r\n\t          throw new _exception2['default']('Invalid stack pop');\r\n\t        }\r\n\t        this.stackSlot--;\r\n\t      }\r\n\t      return item;\r\n\t    }\r\n\t  },\r\n\r\n\t  topStack: function topStack() {\r\n\t    var stack = this.isInline() ? this.inlineStack : this.compileStack,\r\n\t        item = stack[stack.length - 1];\r\n\r\n\t    /* istanbul ignore if */\r\n\t    if (item instanceof Literal) {\r\n\t      return item.value;\r\n\t    } else {\r\n\t      return item;\r\n\t    }\r\n\t  },\r\n\r\n\t  contextName: function contextName(context) {\r\n\t    if (this.useDepths && context) {\r\n\t      return 'depths[' + context + ']';\r\n\t    } else {\r\n\t      return 'depth' + context;\r\n\t    }\r\n\t  },\r\n\r\n\t  quotedString: function quotedString(str) {\r\n\t    return this.source.quotedString(str);\r\n\t  },\r\n\r\n\t  objectLiteral: function objectLiteral(obj) {\r\n\t    return this.source.objectLiteral(obj);\r\n\t  },\r\n\r\n\t  aliasable: function aliasable(name) {\r\n\t    var ret = this.aliases[name];\r\n\t    if (ret) {\r\n\t      ret.referenceCount++;\r\n\t      return ret;\r\n\t    }\r\n\r\n\t    ret = this.aliases[name] = this.source.wrap(name);\r\n\t    ret.aliasable = true;\r\n\t    ret.referenceCount = 1;\r\n\r\n\t    return ret;\r\n\t  },\r\n\r\n\t  setupHelper: function setupHelper(paramSize, name, blockHelper) {\r\n\t    var params = [],\r\n\t        paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);\r\n\t    var foundHelper = this.nameLookup('helpers', name, 'helper'),\r\n\t        callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');\r\n\r\n\t    return {\r\n\t      params: params,\r\n\t      paramsInit: paramsInit,\r\n\t      name: foundHelper,\r\n\t      callParams: [callContext].concat(params)\r\n\t    };\r\n\t  },\r\n\r\n\t  setupParams: function setupParams(helper, paramSize, params) {\r\n\t    var options = {},\r\n\t        contexts = [],\r\n\t        types = [],\r\n\t        ids = [],\r\n\t        objectArgs = !params,\r\n\t        param = undefined;\r\n\r\n\t    if (objectArgs) {\r\n\t      params = [];\r\n\t    }\r\n\r\n\t    options.name = this.quotedString(helper);\r\n\t    options.hash = this.popStack();\r\n\r\n\t    if (this.trackIds) {\r\n\t      options.hashIds = this.popStack();\r\n\t    }\r\n\t    if (this.stringParams) {\r\n\t      options.hashTypes = this.popStack();\r\n\t      options.hashContexts = this.popStack();\r\n\t    }\r\n\r\n\t    var inverse = this.popStack(),\r\n\t        program = this.popStack();\r\n\r\n\t    // Avoid setting fn and inverse if neither are set. This allows\r\n\t    // helpers to do a check for `if (options.fn)`\r\n\t    if (program || inverse) {\r\n\t      options.fn = program || 'container.noop';\r\n\t      options.inverse = inverse || 'container.noop';\r\n\t    }\r\n\r\n\t    // The parameters go on to the stack in order (making sure that they are evaluated in order)\r\n\t    // so we need to pop them off the stack in reverse order\r\n\t    var i = paramSize;\r\n\t    while (i--) {\r\n\t      param = this.popStack();\r\n\t      params[i] = param;\r\n\r\n\t      if (this.trackIds) {\r\n\t        ids[i] = this.popStack();\r\n\t      }\r\n\t      if (this.stringParams) {\r\n\t        types[i] = this.popStack();\r\n\t        contexts[i] = this.popStack();\r\n\t      }\r\n\t    }\r\n\r\n\t    if (objectArgs) {\r\n\t      options.args = this.source.generateArray(params);\r\n\t    }\r\n\r\n\t    if (this.trackIds) {\r\n\t      options.ids = this.source.generateArray(ids);\r\n\t    }\r\n\t    if (this.stringParams) {\r\n\t      options.types = this.source.generateArray(types);\r\n\t      options.contexts = this.source.generateArray(contexts);\r\n\t    }\r\n\r\n\t    if (this.options.data) {\r\n\t      options.data = 'data';\r\n\t    }\r\n\t    if (this.useBlockParams) {\r\n\t      options.blockParams = 'blockParams';\r\n\t    }\r\n\t    return options;\r\n\t  },\r\n\r\n\t  setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {\r\n\t    var options = this.setupParams(helper, paramSize, params);\r\n\t    options = this.objectLiteral(options);\r\n\t    if (useRegister) {\r\n\t      this.useRegister('options');\r\n\t      params.push('options');\r\n\t      return ['options=', options];\r\n\t    } else if (params) {\r\n\t      params.push(options);\r\n\t      return '';\r\n\t    } else {\r\n\t      return options;\r\n\t    }\r\n\t  }\r\n\t};\r\n\r\n\t(function () {\r\n\t  var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');\r\n\r\n\t  var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};\r\n\r\n\t  for (var i = 0, l = reservedWords.length; i < l; i++) {\r\n\t    compilerWords[reservedWords[i]] = true;\r\n\t  }\r\n\t})();\r\n\r\n\tJavaScriptCompiler.isValidJavaScriptVariableName = function (name) {\r\n\t  return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);\r\n\t};\r\n\r\n\tfunction strictLookup(requireTerminal, compiler, parts, type) {\r\n\t  var stack = compiler.popStack(),\r\n\t      i = 0,\r\n\t      len = parts.length;\r\n\t  if (requireTerminal) {\r\n\t    len--;\r\n\t  }\r\n\r\n\t  for (; i < len; i++) {\r\n\t    stack = compiler.nameLookup(stack, parts[i], type);\r\n\t  }\r\n\r\n\t  if (requireTerminal) {\r\n\t    return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')'];\r\n\t  } else {\r\n\t    return stack;\r\n\t  }\r\n\t}\r\n\r\n\texports['default'] = JavaScriptCompiler;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ }),\r\n/* 43 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t/* global define */\r\n\t'use strict';\r\n\r\n\texports.__esModule = true;\r\n\r\n\tvar _utils = __webpack_require__(5);\r\n\r\n\tvar SourceNode = undefined;\r\n\r\n\ttry {\r\n\t  /* istanbul ignore next */\r\n\t  if (false) {\r\n\t    // We don't support this in AMD environments. For these environments, we asusme that\r\n\t    // they are running on the browser and thus have no need for the source-map library.\r\n\t    var SourceMap = require('source-map');\r\n\t    SourceNode = SourceMap.SourceNode;\r\n\t  }\r\n\t} catch (err) {}\r\n\t/* NOP */\r\n\r\n\t/* istanbul ignore if: tested but not covered in istanbul due to dist build  */\r\n\tif (!SourceNode) {\r\n\t  SourceNode = function (line, column, srcFile, chunks) {\r\n\t    this.src = '';\r\n\t    if (chunks) {\r\n\t      this.add(chunks);\r\n\t    }\r\n\t  };\r\n\t  /* istanbul ignore next */\r\n\t  SourceNode.prototype = {\r\n\t    add: function add(chunks) {\r\n\t      if (_utils.isArray(chunks)) {\r\n\t        chunks = chunks.join('');\r\n\t      }\r\n\t      this.src += chunks;\r\n\t    },\r\n\t    prepend: function prepend(chunks) {\r\n\t      if (_utils.isArray(chunks)) {\r\n\t        chunks = chunks.join('');\r\n\t      }\r\n\t      this.src = chunks + this.src;\r\n\t    },\r\n\t    toStringWithSourceMap: function toStringWithSourceMap() {\r\n\t      return { code: this.toString() };\r\n\t    },\r\n\t    toString: function toString() {\r\n\t      return this.src;\r\n\t    }\r\n\t  };\r\n\t}\r\n\r\n\tfunction castChunk(chunk, codeGen, loc) {\r\n\t  if (_utils.isArray(chunk)) {\r\n\t    var ret = [];\r\n\r\n\t    for (var i = 0, len = chunk.length; i < len; i++) {\r\n\t      ret.push(codeGen.wrap(chunk[i], loc));\r\n\t    }\r\n\t    return ret;\r\n\t  } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {\r\n\t    // Handle primitives that the SourceNode will throw up on\r\n\t    return chunk + '';\r\n\t  }\r\n\t  return chunk;\r\n\t}\r\n\r\n\tfunction CodeGen(srcFile) {\r\n\t  this.srcFile = srcFile;\r\n\t  this.source = [];\r\n\t}\r\n\r\n\tCodeGen.prototype = {\r\n\t  isEmpty: function isEmpty() {\r\n\t    return !this.source.length;\r\n\t  },\r\n\t  prepend: function prepend(source, loc) {\r\n\t    this.source.unshift(this.wrap(source, loc));\r\n\t  },\r\n\t  push: function push(source, loc) {\r\n\t    this.source.push(this.wrap(source, loc));\r\n\t  },\r\n\r\n\t  merge: function merge() {\r\n\t    var source = this.empty();\r\n\t    this.each(function (line) {\r\n\t      source.add(['  ', line, '\\n']);\r\n\t    });\r\n\t    return source;\r\n\t  },\r\n\r\n\t  each: function each(iter) {\r\n\t    for (var i = 0, len = this.source.length; i < len; i++) {\r\n\t      iter(this.source[i]);\r\n\t    }\r\n\t  },\r\n\r\n\t  empty: function empty() {\r\n\t    var loc = this.currentLocation || { start: {} };\r\n\t    return new SourceNode(loc.start.line, loc.start.column, this.srcFile);\r\n\t  },\r\n\t  wrap: function wrap(chunk) {\r\n\t    var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1];\r\n\r\n\t    if (chunk instanceof SourceNode) {\r\n\t      return chunk;\r\n\t    }\r\n\r\n\t    chunk = castChunk(chunk, this, loc);\r\n\r\n\t    return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);\r\n\t  },\r\n\r\n\t  functionCall: function functionCall(fn, type, params) {\r\n\t    params = this.generateList(params);\r\n\t    return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);\r\n\t  },\r\n\r\n\t  quotedString: function quotedString(str) {\r\n\t    return '\"' + (str + '').replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\u2028/g, '\\\\u2028') // Per Ecma-262 7.3 + 7.8.4\r\n\t    .replace(/\\u2029/g, '\\\\u2029') + '\"';\r\n\t  },\r\n\r\n\t  objectLiteral: function objectLiteral(obj) {\r\n\t    var pairs = [];\r\n\r\n\t    for (var key in obj) {\r\n\t      if (obj.hasOwnProperty(key)) {\r\n\t        var value = castChunk(obj[key], this);\r\n\t        if (value !== 'undefined') {\r\n\t          pairs.push([this.quotedString(key), ':', value]);\r\n\t        }\r\n\t      }\r\n\t    }\r\n\r\n\t    var ret = this.generateList(pairs);\r\n\t    ret.prepend('{');\r\n\t    ret.add('}');\r\n\t    return ret;\r\n\t  },\r\n\r\n\t  generateList: function generateList(entries) {\r\n\t    var ret = this.empty();\r\n\r\n\t    for (var i = 0, len = entries.length; i < len; i++) {\r\n\t      if (i) {\r\n\t        ret.add(',');\r\n\t      }\r\n\r\n\t      ret.add(castChunk(entries[i], this));\r\n\t    }\r\n\r\n\t    return ret;\r\n\t  },\r\n\r\n\t  generateArray: function generateArray(entries) {\r\n\t    var ret = this.generateList(entries);\r\n\t    ret.prepend('[');\r\n\t    ret.add(']');\r\n\r\n\t    return ret;\r\n\t  }\r\n\t};\r\n\r\n\texports['default'] = CodeGen;\r\n\tmodule.exports = exports['default'];\r\n\r\n/***/ })\r\n/******/ ])\r\n});\r\n;"},function(t,e,n){n(0)(n(82)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/jRespond.min.js")},function(t,e){t.exports='/*! jRespond.js v 0.10 | Author: Jeremy Fields [jeremy.fields@viget.com], 2013 | License: MIT */\r\n!function(a,b,c){"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=c:(a[b]=c,"function"==typeof define&&define.amd&&define(b,[],function(){return c}))}(this,"jRespond",function(a,b,c){"use strict";return function(a){var b=[],d=[],e=a,f="",g="",i=0,j=100,k=500,l=k,m=function(){var a=0;return a="number"!=typeof window.innerWidth?0!==document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth:window.innerWidth},n=function(a){if(a.length===c)o(a);else for(var b=0;b<a.length;b++)o(a[b])},o=function(a){var e=a.breakpoint,h=a.enter||c;b.push(a),d.push(!1),r(e)&&(h!==c&&h.call(null,{entering:f,exiting:g}),d[b.length-1]=!0)},p=function(){for(var a=[],e=[],h=0;h<b.length;h++){var i=b[h].breakpoint,j=b[h].enter||c,k=b[h].exit||c;"*"===i?(j!==c&&a.push(j),k!==c&&e.push(k)):r(i)?(j===c||d[h]||a.push(j),d[h]=!0):(k!==c&&d[h]&&e.push(k),d[h]=!1)}for(var l={entering:f,exiting:g},m=0;m<e.length;m++)e[m].call(null,l);for(var n=0;n<a.length;n++)a[n].call(null,l)},q=function(a){for(var b=!1,c=0;c<e.length;c++)if(a>=e[c].enter&&a<=e[c].exit){b=!0;break}b&&f!==e[c].label?(g=f,f=e[c].label,p()):b||""===f||(f="",p())},r=function(a){if("object"==typeof a){if(a.join().indexOf(f)>=0)return!0}else{if("*"===a)return!0;if("string"==typeof a&&f===a)return!0}},s=function(){var a=m();a!==i?(l=j,q(a)):l=k,i=a,setTimeout(s,l)};return s(),{addFunc:function(a){n(a)},getBreakpoint:function(){return f}}}}(this,this.document));'},function(t,e,n){n(0)(n(84)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/jquery.fancybox.js")},function(t,e){t.exports="/*!\r\n * fancyBox - jQuery Plugin\r\n * version: 2.1.5 (Fri, 14 Jun 2013)\r\n * @requires jQuery v1.6 or later\r\n *\r\n * Examples at http://fancyapps.com/fancybox/\r\n * License: www.fancyapps.com/fancybox/#license\r\n *\r\n * Copyright 2012 Janis Skarnelis - janis@fancyapps.com\r\n *\r\n */\r\n\r\n(function (window, document, $, undefined) {\r\n\t\"use strict\";\r\n\r\n\tvar H = $(\"html\"),\r\n\t\tW = $(window),\r\n\t\tD = $(document),\r\n\t\tF = $.fancybox = function () {\r\n\t\t\tF.open.apply( this, arguments );\r\n\t\t},\r\n\t\tIE =  navigator.userAgent.match(/msie/i),\r\n\t\tdidUpdate\t= null,\r\n\t\tisTouch\t\t= document.createTouch !== undefined,\r\n\r\n\t\tisQuery\t= function(obj) {\r\n\t\t\treturn obj && obj.hasOwnProperty && obj instanceof $;\r\n\t\t},\r\n\t\tisString = function(str) {\r\n\t\t\treturn str && $.type(str) === \"string\";\r\n\t\t},\r\n\t\tisPercentage = function(str) {\r\n\t\t\treturn isString(str) && str.indexOf('%') > 0;\r\n\t\t},\r\n\t\tisScrollable = function(el) {\r\n\t\t\treturn (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));\r\n\t\t},\r\n\t\tgetScalar = function(orig, dim) {\r\n\t\t\tvar value = parseInt(orig, 10) || 0;\r\n\r\n\t\t\tif (dim && isPercentage(orig)) {\r\n\t\t\t\tvalue = F.getViewport()[ dim ] / 100 * value;\r\n\t\t\t}\r\n\r\n\t\t\treturn Math.ceil(value);\r\n\t\t},\r\n\t\tgetValue = function(value, dim) {\r\n\t\t\treturn getScalar(value, dim) + 'px';\r\n\t\t};\r\n\r\n\t$.extend(F, {\r\n\t\t// The current version of fancyBox\r\n\t\tversion: '2.1.5',\r\n\r\n\t\tdefaults: {\r\n\t\t\tpadding : 15,\r\n\t\t\tmargin  : 20,\r\n\r\n\t\t\twidth     : 800,\r\n\t\t\theight    : 600,\r\n\t\t\tminWidth  : 100,\r\n\t\t\tminHeight : 100,\r\n\t\t\tmaxWidth  : 9999,\r\n\t\t\tmaxHeight : 9999,\r\n\t\t\tpixelRatio: 1, // Set to 2 for retina display support\r\n\r\n\t\t\tautoSize   : true,\r\n\t\t\tautoHeight : false,\r\n\t\t\tautoWidth  : false,\r\n\r\n\t\t\tautoResize  : true,\r\n\t\t\tautoCenter  : !isTouch,\r\n\t\t\tfitToView   : true,\r\n\t\t\taspectRatio : false,\r\n\t\t\ttopRatio    : 0.5,\r\n\t\t\tleftRatio   : 0.5,\r\n\r\n\t\t\tscrolling : 'auto', // 'auto', 'yes' or 'no'\r\n\t\t\twrapCSS   : '',\r\n\r\n\t\t\tarrows     : true,\r\n\t\t\tcloseBtn   : true,\r\n\t\t\tcloseClick : false,\r\n\t\t\tnextClick  : false,\r\n\t\t\tmouseWheel : true,\r\n\t\t\tautoPlay   : false,\r\n\t\t\tplaySpeed  : 3000,\r\n\t\t\tpreload    : 3,\r\n\t\t\tmodal      : false,\r\n\t\t\tloop       : true,\r\n\r\n\t\t\tajax  : {\r\n\t\t\t\tdataType : 'html',\r\n\t\t\t\theaders  : { 'X-fancyBox': true }\r\n\t\t\t},\r\n\t\t\tiframe : {\r\n\t\t\t\tscrolling : 'auto',\r\n\t\t\t\tpreload   : true\r\n\t\t\t},\r\n\t\t\tswf : {\r\n\t\t\t\twmode: 'transparent',\r\n\t\t\t\tallowfullscreen   : 'true',\r\n\t\t\t\tallowscriptaccess : 'always'\r\n\t\t\t},\r\n\r\n\t\t\tkeys  : {\r\n\t\t\t\tnext : {\r\n\t\t\t\t\t13 : 'left', // enter\r\n\t\t\t\t\t34 : 'up',   // page down\r\n\t\t\t\t\t39 : 'left', // right arrow\r\n\t\t\t\t\t40 : 'up'    // down arrow\r\n\t\t\t\t},\r\n\t\t\t\tprev : {\r\n\t\t\t\t\t8  : 'right',  // backspace\r\n\t\t\t\t\t33 : 'down',   // page up\r\n\t\t\t\t\t37 : 'right',  // left arrow\r\n\t\t\t\t\t38 : 'down'    // up arrow\r\n\t\t\t\t},\r\n\t\t\t\tclose  : [27], // escape key\r\n\t\t\t\tplay   : [32], // space - start/stop slideshow\r\n\t\t\t\ttoggle : [70]  // letter \"f\" - toggle fullscreen\r\n\t\t\t},\r\n\r\n\t\t\tdirection : {\r\n\t\t\t\tnext : 'left',\r\n\t\t\t\tprev : 'right'\r\n\t\t\t},\r\n\r\n\t\t\tscrollOutside  : true,\r\n\r\n\t\t\t// Override some properties\r\n\t\t\tindex   : 0,\r\n\t\t\ttype    : null,\r\n\t\t\thref    : null,\r\n\t\t\tcontent : null,\r\n\t\t\ttitle   : null,\r\n\r\n\t\t\t// HTML templates\r\n\t\t\ttpl: {\r\n\t\t\t\twrap     : '<div class=\"fancybox-wrap\" tabIndex=\"-1\"><div class=\"fancybox-skin\"><div class=\"fancybox-outer\"><div class=\"fancybox-inner\"></div></div></div></div>',\r\n\t\t\t\timage    : '<img class=\"fancybox-image\" src=\"{href}\" alt=\"\" />',\r\n\t\t\t\tiframe   : '<iframe id=\"fancybox-frame{rnd}\" name=\"fancybox-frame{rnd}\" class=\"fancybox-iframe\" frameborder=\"0\" vspace=\"0\" hspace=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency=\"true\"' : '') + '></iframe>',\r\n\t\t\t\terror    : '<p class=\"fancybox-error\">The requested content cannot be loaded.<br/>Please try again later.</p>',\r\n\t\t\t\tcloseBtn : '<a title=\"Close\" class=\"fancybox-item fancybox-close\" href=\"javascript:;\"></a>',\r\n\t\t\t\tnext     : '<a title=\"Next\" class=\"fancybox-nav fancybox-next\" href=\"javascript:;\"><span></span></a>',\r\n\t\t\t\tprev     : '<a title=\"Previous\" class=\"fancybox-nav fancybox-prev\" href=\"javascript:;\"><span></span></a>'\r\n\t\t\t},\r\n\r\n\t\t\t// Properties for each animation type\r\n\t\t\t// Opening fancyBox\r\n\t\t\topenEffect  : 'fade', // 'elastic', 'fade' or 'none'\r\n\t\t\topenSpeed   : 250,\r\n\t\t\topenEasing  : 'swing',\r\n\t\t\topenOpacity : true,\r\n\t\t\topenMethod  : 'zoomIn',\r\n\r\n\t\t\t// Closing fancyBox\r\n\t\t\tcloseEffect  : 'fade', // 'elastic', 'fade' or 'none'\r\n\t\t\tcloseSpeed   : 250,\r\n\t\t\tcloseEasing  : 'swing',\r\n\t\t\tcloseOpacity : true,\r\n\t\t\tcloseMethod  : 'zoomOut',\r\n\r\n\t\t\t// Changing next gallery item\r\n\t\t\tnextEffect : 'elastic', // 'elastic', 'fade' or 'none'\r\n\t\t\tnextSpeed  : 250,\r\n\t\t\tnextEasing : 'swing',\r\n\t\t\tnextMethod : 'changeIn',\r\n\r\n\t\t\t// Changing previous gallery item\r\n\t\t\tprevEffect : 'elastic', // 'elastic', 'fade' or 'none'\r\n\t\t\tprevSpeed  : 250,\r\n\t\t\tprevEasing : 'swing',\r\n\t\t\tprevMethod : 'changeOut',\r\n\r\n\t\t\t// Enable default helpers\r\n\t\t\thelpers : {\r\n\t\t\t\toverlay : true,\r\n\t\t\t\ttitle   : true\r\n\t\t\t},\r\n\r\n\t\t\t// Callbacks\r\n\t\t\tonCancel     : $.noop, // If canceling\r\n\t\t\tbeforeLoad   : $.noop, // Before loading\r\n\t\t\tafterLoad    : $.noop, // After loading\r\n\t\t\tbeforeShow   : $.noop, // Before changing in current item\r\n\t\t\tafterShow    : $.noop, // After opening\r\n\t\t\tbeforeChange : $.noop, // Before changing gallery item\r\n\t\t\tbeforeClose  : $.noop, // Before closing\r\n\t\t\tafterClose   : $.noop  // After closing\r\n\t\t},\r\n\r\n\t\t//Current state\r\n\t\tgroup    : {}, // Selected group\r\n\t\topts     : {}, // Group options\r\n\t\tprevious : null,  // Previous element\r\n\t\tcoming   : null,  // Element being loaded\r\n\t\tcurrent  : null,  // Currently loaded element\r\n\t\tisActive : false, // Is activated\r\n\t\tisOpen   : false, // Is currently open\r\n\t\tisOpened : false, // Have been fully opened at least once\r\n\r\n\t\twrap  : null,\r\n\t\tskin  : null,\r\n\t\touter : null,\r\n\t\tinner : null,\r\n\r\n\t\tplayer : {\r\n\t\t\ttimer    : null,\r\n\t\t\tisActive : false\r\n\t\t},\r\n\r\n\t\t// Loaders\r\n\t\tajaxLoad   : null,\r\n\t\timgPreload : null,\r\n\r\n\t\t// Some collections\r\n\t\ttransitions : {},\r\n\t\thelpers     : {},\r\n\r\n\t\t/*\r\n\t\t *\tStatic methods\r\n\t\t */\r\n\r\n\t\topen: function (group, opts) {\r\n\t\t\tif (!group) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$.isPlainObject(opts)) {\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\r\n\t\t\t// Close if already active\r\n\t\t\tif (false === F.close(true)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Normalize group\r\n\t\t\tif (!$.isArray(group)) {\r\n\t\t\t\tgroup = isQuery(group) ? $(group).get() : [group];\r\n\t\t\t}\r\n\r\n\t\t\t// Recheck if the type of each element is `object` and set content type (image, ajax, etc)\r\n\t\t\t$.each(group, function(i, element) {\r\n\t\t\t\tvar obj = {},\r\n\t\t\t\t\thref,\r\n\t\t\t\t\ttitle,\r\n\t\t\t\t\tcontent,\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\trez,\r\n\t\t\t\t\threfParts,\r\n\t\t\t\t\tselector;\r\n\r\n\t\t\t\tif ($.type(element) === \"object\") {\r\n\t\t\t\t\t// Check if is DOM element\r\n\t\t\t\t\tif (element.nodeType) {\r\n\t\t\t\t\t\telement = $(element);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (isQuery(element)) {\r\n\t\t\t\t\t\tobj = {\r\n\t\t\t\t\t\t\thref    : element.data('fancybox-href') || element.attr('href'),\r\n\t\t\t\t\t\t\ttitle   : element.data('fancybox-title') || element.attr('title'),\r\n\t\t\t\t\t\t\tisDom   : true,\r\n\t\t\t\t\t\t\telement : element\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif ($.metadata) {\r\n\t\t\t\t\t\t\t$.extend(true, obj, element.metadata());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tobj = element;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\thref  = opts.href  || obj.href || (isString(element) ? element : null);\r\n\t\t\t\ttitle = opts.title !== undefined ? opts.title : obj.title || '';\r\n\r\n\t\t\t\tcontent = opts.content || obj.content;\r\n\t\t\t\ttype    = content ? 'html' : (opts.type  || obj.type);\r\n\r\n\t\t\t\tif (!type && obj.isDom) {\r\n\t\t\t\t\ttype = element.data('fancybox-type');\r\n\r\n\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\trez  = element.prop('class').match(/fancybox\\.(\\w+)/);\r\n\t\t\t\t\t\ttype = rez ? rez[1] : null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isString(href)) {\r\n\t\t\t\t\t// Try to guess the content type\r\n\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\tif (F.isImage(href)) {\r\n\t\t\t\t\t\t\ttype = 'image';\r\n\r\n\t\t\t\t\t\t} else if (F.isSWF(href)) {\r\n\t\t\t\t\t\t\ttype = 'swf';\r\n\r\n\t\t\t\t\t\t} else if (href.charAt(0) === '#') {\r\n\t\t\t\t\t\t\ttype = 'inline';\r\n\r\n\t\t\t\t\t\t} else if (isString(element)) {\r\n\t\t\t\t\t\t\ttype    = 'html';\r\n\t\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Split url into two pieces with source url and content selector, e.g,\r\n\t\t\t\t\t// \"/mypage.html #my_id\" will load \"/mypage.html\" and display element having id \"my_id\"\r\n\t\t\t\t\tif (type === 'ajax') {\r\n\t\t\t\t\t\threfParts = href.split(/\\s+/, 2);\r\n\t\t\t\t\t\thref      = hrefParts.shift();\r\n\t\t\t\t\t\tselector  = hrefParts.shift();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!content) {\r\n\t\t\t\t\tif (type === 'inline') {\r\n\t\t\t\t\t\tif (href) {\r\n\t\t\t\t\t\t\tcontent = $( isString(href) ? href.replace(/.*(?=#[^\\s]+$)/, '') : href ); //strip for ie7\r\n\r\n\t\t\t\t\t\t} else if (obj.isDom) {\r\n\t\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else if (type === 'html') {\r\n\t\t\t\t\t\tcontent = href;\r\n\r\n\t\t\t\t\t} else if (!type && !href && obj.isDom) {\r\n\t\t\t\t\t\ttype    = 'inline';\r\n\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$.extend(obj, {\r\n\t\t\t\t\thref     : href,\r\n\t\t\t\t\ttype     : type,\r\n\t\t\t\t\tcontent  : content,\r\n\t\t\t\t\ttitle    : title,\r\n\t\t\t\t\tselector : selector\r\n\t\t\t\t});\r\n\r\n\t\t\t\tgroup[ i ] = obj;\r\n\t\t\t});\r\n\r\n\t\t\t// Extend the defaults\r\n\t\t\tF.opts = $.extend(true, {}, F.defaults, opts);\r\n\r\n\t\t\t// All options are merged recursive except keys\r\n\t\t\tif (opts.keys !== undefined) {\r\n\t\t\t\tF.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;\r\n\t\t\t}\r\n\r\n\t\t\tF.group = group;\r\n\r\n\t\t\treturn F._start(F.opts.index);\r\n\t\t},\r\n\r\n\t\t// Cancel image loading or abort ajax request\r\n\t\tcancel: function () {\r\n\t\t\tvar coming = F.coming;\r\n\r\n\t\t\tif (!coming || false === F.trigger('onCancel')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tF.hideLoading();\r\n\r\n\t\t\tif (F.ajaxLoad) {\r\n\t\t\t\tF.ajaxLoad.abort();\r\n\t\t\t}\r\n\r\n\t\t\tF.ajaxLoad = null;\r\n\r\n\t\t\tif (F.imgPreload) {\r\n\t\t\t\tF.imgPreload.onload = F.imgPreload.onerror = null;\r\n\t\t\t}\r\n\r\n\t\t\tif (coming.wrap) {\r\n\t\t\t\tcoming.wrap.stop(true, true).trigger('onReset').remove();\r\n\t\t\t}\r\n\r\n\t\t\tF.coming = null;\r\n\r\n\t\t\t// If the first item has been canceled, then clear everything\r\n\t\t\tif (!F.current) {\r\n\t\t\t\tF._afterZoomOut( coming );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Start closing animation if is open; remove immediately if opening/closing\r\n\t\tclose: function (event) {\r\n\t\t\tF.cancel();\r\n\r\n\t\t\tif (false === F.trigger('beforeClose')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tF.unbindEvents();\r\n\r\n\t\t\tif (!F.isActive) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!F.isOpen || event === true) {\r\n\t\t\t\t$('.fancybox-wrap').stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t\tF._afterZoomOut();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tF.isOpen = F.isOpened = false;\r\n\t\t\t\tF.isClosing = true;\r\n\r\n\t\t\t\t$('.fancybox-item, .fancybox-nav').remove();\r\n\r\n\t\t\t\tF.wrap.stop(true, true).removeClass('fancybox-opened');\r\n\r\n\t\t\t\tF.transitions[ F.current.closeMethod ]();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Manage slideshow:\r\n\t\t//   $.fancybox.play(); - toggle slideshow\r\n\t\t//   $.fancybox.play( true ); - start\r\n\t\t//   $.fancybox.play( false ); - stop\r\n\t\tplay: function ( action ) {\r\n\t\t\tvar clear = function () {\r\n\t\t\t\t\tclearTimeout(F.player.timer);\r\n\t\t\t\t},\r\n\t\t\t\tset = function () {\r\n\t\t\t\t\tclear();\r\n\r\n\t\t\t\t\tif (F.current && F.player.isActive) {\r\n\t\t\t\t\t\tF.player.timer = setTimeout(F.next, F.current.playSpeed);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tstop = function () {\r\n\t\t\t\t\tclear();\r\n\r\n\t\t\t\t\tD.unbind('.player');\r\n\r\n\t\t\t\t\tF.player.isActive = false;\r\n\r\n\t\t\t\t\tF.trigger('onPlayEnd');\r\n\t\t\t\t},\r\n\t\t\t\tstart = function () {\r\n\t\t\t\t\tif (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {\r\n\t\t\t\t\t\tF.player.isActive = true;\r\n\r\n\t\t\t\t\t\tD.bind({\r\n\t\t\t\t\t\t\t'onCancel.player beforeClose.player' : stop,\r\n\t\t\t\t\t\t\t'onUpdate.player'   : set,\r\n\t\t\t\t\t\t\t'beforeLoad.player' : clear\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tset();\r\n\r\n\t\t\t\t\t\tF.trigger('onPlayStart');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\tif (action === true || (!F.player.isActive && action !== false)) {\r\n\t\t\t\tstart();\r\n\t\t\t} else {\r\n\t\t\t\tstop();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Navigate to next gallery item\r\n\t\tnext: function ( direction ) {\r\n\t\t\tvar current = F.current;\r\n\r\n\t\t\tif (current) {\r\n\t\t\t\tif (!isString(direction)) {\r\n\t\t\t\t\tdirection = current.direction.next;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tF.jumpto(current.index + 1, direction, 'next');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Navigate to previous gallery item\r\n\t\tprev: function ( direction ) {\r\n\t\t\tvar current = F.current;\r\n\r\n\t\t\tif (current) {\r\n\t\t\t\tif (!isString(direction)) {\r\n\t\t\t\t\tdirection = current.direction.prev;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tF.jumpto(current.index - 1, direction, 'prev');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Navigate to gallery item by index\r\n\t\tjumpto: function ( index, direction, router ) {\r\n\t\t\tvar current = F.current;\r\n\r\n\t\t\tif (!current) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tindex = getScalar(index);\r\n\r\n\t\t\tF.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];\r\n\t\t\tF.router    = router || 'jumpto';\r\n\r\n\t\t\tif (current.loop) {\r\n\t\t\t\tif (index < 0) {\r\n\t\t\t\t\tindex = current.group.length + (index % current.group.length);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex = index % current.group.length;\r\n\t\t\t}\r\n\r\n\t\t\tif (current.group[ index ] !== undefined) {\r\n\t\t\t\tF.cancel();\r\n\r\n\t\t\t\tF._start(index);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Center inside viewport and toggle position type to fixed or absolute if needed\r\n\t\treposition: function (e, onlyAbsolute) {\r\n\t\t\tvar current = F.current,\r\n\t\t\t\twrap    = current ? current.wrap : null,\r\n\t\t\t\tpos;\r\n\r\n\t\t\tif (wrap) {\r\n\t\t\t\tpos = F._getPosition(onlyAbsolute);\r\n\r\n\t\t\t\tif (e && e.type === 'scroll') {\r\n\t\t\t\t\tdelete pos.position;\r\n\r\n\t\t\t\t\twrap.stop(true, true).animate(pos, 200);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\twrap.css(pos);\r\n\r\n\t\t\t\t\tcurrent.pos = $.extend({}, current.dim, pos);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tupdate: function (e) {\r\n\t\t\tvar type = (e && e.type),\r\n\t\t\t\tanyway = !type || type === 'orientationchange';\r\n\r\n\t\t\tif (anyway) {\r\n\t\t\t\tclearTimeout(didUpdate);\r\n\r\n\t\t\t\tdidUpdate = null;\r\n\t\t\t}\r\n\r\n\t\t\tif (!F.isOpen || didUpdate) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdidUpdate = setTimeout(function() {\r\n\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\tif (!current || F.isClosing) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tF.wrap.removeClass('fancybox-tmp');\r\n\r\n\t\t\t\tif (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {\r\n\t\t\t\t\tF._setDimension();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!(type === 'scroll' && current.canShrink)) {\r\n\t\t\t\t\tF.reposition(e);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tF.trigger('onUpdate');\r\n\r\n\t\t\t\tdidUpdate = null;\r\n\r\n\t\t\t}, (anyway && !isTouch ? 0 : 300));\r\n\t\t},\r\n\r\n\t\t// Shrink content to fit inside viewport or restore if resized\r\n\t\ttoggle: function ( action ) {\r\n\t\t\tif (F.isOpen) {\r\n\t\t\t\tF.current.fitToView = $.type(action) === \"boolean\" ? action : !F.current.fitToView;\r\n\r\n\t\t\t\t// Help browser to restore document dimensions\r\n\t\t\t\tif (isTouch) {\r\n\t\t\t\t\tF.wrap.removeAttr('style').addClass('fancybox-tmp');\r\n\r\n\t\t\t\t\tF.trigger('onUpdate');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tF.update();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thideLoading: function () {\r\n\t\t\tD.unbind('.loading');\r\n\r\n\t\t\t$('#fancybox-loading').remove();\r\n\t\t},\r\n\r\n\t\tshowLoading: function () {\r\n\t\t\tvar el, viewport;\r\n\r\n\t\t\tF.hideLoading();\r\n\r\n\t\t\tel = $('<div id=\"fancybox-loading\"><div></div></div>').click(F.cancel).appendTo('body');\r\n\r\n\t\t\t// If user will press the escape-button, the request will be canceled\r\n\t\t\tD.bind('keydown.loading', function(e) {\r\n\t\t\t\tif ((e.which || e.keyCode) === 27) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tF.cancel();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (!F.defaults.fixed) {\r\n\t\t\t\tviewport = F.getViewport();\r\n\r\n\t\t\t\tel.css({\r\n\t\t\t\t\tposition : 'absolute',\r\n\t\t\t\t\ttop  : (viewport.h * 0.5) + viewport.y,\r\n\t\t\t\t\tleft : (viewport.w * 0.5) + viewport.x\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetViewport: function () {\r\n\t\t\tvar locked = (F.current && F.current.locked) || false,\r\n\t\t\t\trez    = {\r\n\t\t\t\t\tx: W.scrollLeft(),\r\n\t\t\t\t\ty: W.scrollTop()\r\n\t\t\t\t};\r\n\r\n\t\t\tif (locked) {\r\n\t\t\t\trez.w = locked[0].clientWidth;\r\n\t\t\t\trez.h = locked[0].clientHeight;\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// See http://bugs.jquery.com/ticket/6724\r\n\t\t\t\trez.w = isTouch && window.innerWidth  ? window.innerWidth  : W.width();\r\n\t\t\t\trez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();\r\n\t\t\t}\r\n\r\n\t\t\treturn rez;\r\n\t\t},\r\n\r\n\t\t// Unbind the keyboard / clicking actions\r\n\t\tunbindEvents: function () {\r\n\t\t\tif (F.wrap && isQuery(F.wrap)) {\r\n\t\t\t\tF.wrap.unbind('.fb');\r\n\t\t\t}\r\n\r\n\t\t\tD.unbind('.fb');\r\n\t\t\tW.unbind('.fb');\r\n\t\t},\r\n\r\n\t\tbindEvents: function () {\r\n\t\t\tvar current = F.current,\r\n\t\t\t\tkeys;\r\n\r\n\t\t\tif (!current) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Changing document height on iOS devices triggers a 'resize' event,\r\n\t\t\t// that can change document height... repeating infinitely\r\n\t\t\tW.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);\r\n\r\n\t\t\tkeys = current.keys;\r\n\r\n\t\t\tif (keys) {\r\n\t\t\t\tD.bind('keydown.fb', function (e) {\r\n\t\t\t\t\tvar code   = e.which || e.keyCode,\r\n\t\t\t\t\t\ttarget = e.target || e.srcElement;\r\n\r\n\t\t\t\t\t// Skip esc key if loading, because showLoading will cancel preloading\r\n\t\t\t\t\tif (code === 27 && F.coming) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Ignore key combinations and key events within form elements\r\n\t\t\t\t\tif (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {\r\n\t\t\t\t\t\t$.each(keys, function(i, val) {\r\n\t\t\t\t\t\t\tif (current.group.length > 1 && val[ code ] !== undefined) {\r\n\t\t\t\t\t\t\t\tF[ i ]( val[ code ] );\r\n\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($.inArray(code, val) > -1) {\r\n\t\t\t\t\t\t\t\tF[ i ] ();\r\n\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($.fn.mousewheel && current.mouseWheel) {\r\n\t\t\t\tF.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {\r\n\t\t\t\t\tvar target = e.target || null,\r\n\t\t\t\t\t\tparent = $(target),\r\n\t\t\t\t\t\tcanScroll = false;\r\n\r\n\t\t\t\t\twhile (parent.length) {\r\n\t\t\t\t\t\tif (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcanScroll = isScrollable( parent[0] );\r\n\t\t\t\t\t\tparent    = $(parent).parent();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (delta !== 0 && !canScroll) {\r\n\t\t\t\t\t\tif (F.group.length > 1 && !current.canShrink) {\r\n\t\t\t\t\t\t\tif (deltaY > 0 || deltaX > 0) {\r\n\t\t\t\t\t\t\t\tF.prev( deltaY > 0 ? 'down' : 'left' );\r\n\r\n\t\t\t\t\t\t\t} else if (deltaY < 0 || deltaX < 0) {\r\n\t\t\t\t\t\t\t\tF.next( deltaY < 0 ? 'up' : 'right' );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttrigger: function (event, o) {\r\n\t\t\tvar ret, obj = o || F.coming || F.current;\r\n\r\n\t\t\tif (!obj) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ($.isFunction( obj[event] )) {\r\n\t\t\t\tret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));\r\n\t\t\t}\r\n\r\n\t\t\tif (ret === false) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (obj.helpers) {\r\n\t\t\t\t$.each(obj.helpers, function (helper, opts) {\r\n\t\t\t\t\tif (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {\r\n\t\t\t\t\t\tF.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tD.trigger(event);\r\n\t\t},\r\n\r\n\t\tisImage: function (str) {\r\n\t\t\treturn isString(str) && str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\r\n\t\t},\r\n\r\n\t\tisSWF: function (str) {\r\n\t\t\treturn isString(str) && str.match(/\\.(swf)((\\?|#).*)?$/i);\r\n\t\t},\r\n\r\n\t\t_start: function (index) {\r\n\t\t\tvar coming = {},\r\n\t\t\t\tobj,\r\n\t\t\t\thref,\r\n\t\t\t\ttype,\r\n\t\t\t\tmargin,\r\n\t\t\t\tpadding;\r\n\r\n\t\t\tindex = getScalar( index );\r\n\t\t\tobj   = F.group[ index ] || null;\r\n\r\n\t\t\tif (!obj) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tcoming = $.extend(true, {}, F.opts, obj);\r\n\r\n\t\t\t// Convert margin and padding properties to array - top, right, bottom, left\r\n\t\t\tmargin  = coming.margin;\r\n\t\t\tpadding = coming.padding;\r\n\r\n\t\t\tif ($.type(margin) === 'number') {\r\n\t\t\t\tcoming.margin = [margin, margin, margin, margin];\r\n\t\t\t}\r\n\r\n\t\t\tif ($.type(padding) === 'number') {\r\n\t\t\t\tcoming.padding = [padding, padding, padding, padding];\r\n\t\t\t}\r\n\r\n\t\t\t// 'modal' propery is just a shortcut\r\n\t\t\tif (coming.modal) {\r\n\t\t\t\t$.extend(true, coming, {\r\n\t\t\t\t\tcloseBtn   : false,\r\n\t\t\t\t\tcloseClick : false,\r\n\t\t\t\t\tnextClick  : false,\r\n\t\t\t\t\tarrows     : false,\r\n\t\t\t\t\tmouseWheel : false,\r\n\t\t\t\t\tkeys       : null,\r\n\t\t\t\t\thelpers: {\r\n\t\t\t\t\t\toverlay : {\r\n\t\t\t\t\t\t\tcloseClick : false\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// 'autoSize' property is a shortcut, too\r\n\t\t\tif (coming.autoSize) {\r\n\t\t\t\tcoming.autoWidth = coming.autoHeight = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (coming.width === 'auto') {\r\n\t\t\t\tcoming.autoWidth = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (coming.height === 'auto') {\r\n\t\t\t\tcoming.autoHeight = true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t * Add reference to the group, so it`s possible to access from callbacks, example:\r\n\t\t\t * afterLoad : function() {\r\n\t\t\t *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');\r\n\t\t\t * }\r\n\t\t\t */\r\n\r\n\t\t\tcoming.group  = F.group;\r\n\t\t\tcoming.index  = index;\r\n\r\n\t\t\t// Give a chance for callback or helpers to update coming item (type, title, etc)\r\n\t\t\tF.coming = coming;\r\n\r\n\t\t\tif (false === F.trigger('beforeLoad')) {\r\n\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttype = coming.type;\r\n\t\t\thref = coming.href;\r\n\r\n\t\t\tif (!type) {\r\n\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t//If we can not determine content type then drop silently or display next/prev item if looping through gallery\r\n\t\t\t\tif (F.current && F.router && F.router !== 'jumpto') {\r\n\t\t\t\t\tF.current.index = index;\r\n\r\n\t\t\t\t\treturn F[ F.router ]( F.direction );\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tF.isActive = true;\r\n\r\n\t\t\tif (type === 'image' || type === 'swf') {\r\n\t\t\t\tcoming.autoHeight = coming.autoWidth = false;\r\n\t\t\t\tcoming.scrolling  = 'visible';\r\n\t\t\t}\r\n\r\n\t\t\tif (type === 'image') {\r\n\t\t\t\tcoming.aspectRatio = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (type === 'iframe' && isTouch) {\r\n\t\t\t\tcoming.scrolling = 'scroll';\r\n\t\t\t}\r\n\r\n\t\t\t// Build the neccessary markup\r\n\t\t\tcoming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );\r\n\r\n\t\t\t$.extend(coming, {\r\n\t\t\t\tskin  : $('.fancybox-skin',  coming.wrap),\r\n\t\t\t\touter : $('.fancybox-outer', coming.wrap),\r\n\t\t\t\tinner : $('.fancybox-inner', coming.wrap)\r\n\t\t\t});\r\n\r\n\t\t\t$.each([\"Top\", \"Right\", \"Bottom\", \"Left\"], function(i, v) {\r\n\t\t\t\tcoming.skin.css('padding' + v, getValue(coming.padding[ i ]));\r\n\t\t\t});\r\n\r\n\t\t\tF.trigger('onReady');\r\n\r\n\t\t\t// Check before try to load; 'inline' and 'html' types need content, others - href\r\n\t\t\tif (type === 'inline' || type === 'html') {\r\n\t\t\t\tif (!coming.content || !coming.content.length) {\r\n\t\t\t\t\treturn F._error( 'content' );\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (!href) {\r\n\t\t\t\treturn F._error( 'href' );\r\n\t\t\t}\r\n\r\n\t\t\tif (type === 'image') {\r\n\t\t\t\tF._loadImage();\r\n\r\n\t\t\t} else if (type === 'ajax') {\r\n\t\t\t\tF._loadAjax();\r\n\r\n\t\t\t} else if (type === 'iframe') {\r\n\t\t\t\tF._loadIframe();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tF._afterLoad();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_error: function ( type ) {\r\n\t\t\t$.extend(F.coming, {\r\n\t\t\t\ttype       : 'html',\r\n\t\t\t\tautoWidth  : true,\r\n\t\t\t\tautoHeight : true,\r\n\t\t\t\tminWidth   : 0,\r\n\t\t\t\tminHeight  : 0,\r\n\t\t\t\tscrolling  : 'no',\r\n\t\t\t\thasError   : type,\r\n\t\t\t\tcontent    : F.coming.tpl.error\r\n\t\t\t});\r\n\r\n\t\t\tF._afterLoad();\r\n\t\t},\r\n\r\n\t\t_loadImage: function () {\r\n\t\t\t// Reset preload image so it is later possible to check \"complete\" property\r\n\t\t\tvar img = F.imgPreload = new Image();\r\n\r\n\t\t\timg.onload = function () {\r\n\t\t\t\tthis.onload = this.onerror = null;\r\n\r\n\t\t\t\tF.coming.width  = this.width / F.opts.pixelRatio;\r\n\t\t\t\tF.coming.height = this.height / F.opts.pixelRatio;\r\n\r\n\t\t\t\tF._afterLoad();\r\n\t\t\t};\r\n\r\n\t\t\timg.onerror = function () {\r\n\t\t\t\tthis.onload = this.onerror = null;\r\n\r\n\t\t\t\tF._error( 'image' );\r\n\t\t\t};\r\n\r\n\t\t\timg.src = F.coming.href;\r\n\r\n\t\t\tif (img.complete !== true) {\r\n\t\t\t\tF.showLoading();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_loadAjax: function () {\r\n\t\t\tvar coming = F.coming;\r\n\r\n\t\t\tF.showLoading();\r\n\r\n\t\t\tF.ajaxLoad = $.ajax($.extend({}, coming.ajax, {\r\n\t\t\t\turl: coming.href,\r\n\t\t\t\terror: function (jqXHR, textStatus) {\r\n\t\t\t\t\tif (F.coming && textStatus !== 'abort') {\r\n\t\t\t\t\t\tF._error( 'ajax', jqXHR );\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tF.hideLoading();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function (data, textStatus) {\r\n\t\t\t\t\tif (textStatus === 'success') {\r\n\t\t\t\t\t\tcoming.content = data;\r\n\r\n\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t},\r\n\r\n\t\t_loadIframe: function() {\r\n\t\t\tvar coming = F.coming,\r\n\t\t\t\tiframe = $(coming.tpl.iframe.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n\t\t\t\t\t.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)\r\n\t\t\t\t\t.attr('src', coming.href);\r\n\r\n\t\t\t// This helps IE\r\n\t\t\t$(coming.wrap).bind('onReset', function () {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t});\r\n\r\n\t\t\tif (coming.iframe.preload) {\r\n\t\t\t\tF.showLoading();\r\n\r\n\t\t\t\tiframe.one('load', function() {\r\n\t\t\t\t\t$(this).data('ready', 1);\r\n\r\n\t\t\t\t\t// iOS will lose scrolling if we resize\r\n\t\t\t\t\tif (!isTouch) {\r\n\t\t\t\t\t\t$(this).bind('load.fb', F.update);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Without this trick:\r\n\t\t\t\t\t//   - iframe won't scroll on iOS devices\r\n\t\t\t\t\t//   - IE7 sometimes displays empty iframe\r\n\t\t\t\t\t$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();\r\n\r\n\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tcoming.content = iframe.appendTo( coming.inner );\r\n\r\n\t\t\tif (!coming.iframe.preload) {\r\n\t\t\t\tF._afterLoad();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_preloadImages: function() {\r\n\t\t\tvar group   = F.group,\r\n\t\t\t\tcurrent = F.current,\r\n\t\t\t\tlen     = group.length,\r\n\t\t\t\tcnt     = current.preload ? Math.min(current.preload, len - 1) : 0,\r\n\t\t\t\titem,\r\n\t\t\t\ti;\r\n\r\n\t\t\tfor (i = 1; i <= cnt; i += 1) {\r\n\t\t\t\titem = group[ (current.index + i ) % len ];\r\n\r\n\t\t\t\tif (item.type === 'image' && item.href) {\r\n\t\t\t\t\tnew Image().src = item.href;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_afterLoad: function () {\r\n\t\t\tvar coming   = F.coming,\r\n\t\t\t\tprevious = F.current,\r\n\t\t\t\tplaceholder = 'fancybox-placeholder',\r\n\t\t\t\tcurrent,\r\n\t\t\t\tcontent,\r\n\t\t\t\ttype,\r\n\t\t\t\tscrolling,\r\n\t\t\t\thref,\r\n\t\t\t\tembed;\r\n\r\n\t\t\tF.hideLoading();\r\n\r\n\t\t\tif (!coming || F.isActive === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (false === F.trigger('afterLoad', coming, previous)) {\r\n\t\t\t\tcoming.wrap.stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (previous) {\r\n\t\t\t\tF.trigger('beforeChange', previous);\r\n\r\n\t\t\t\tprevious.wrap.stop(true).removeClass('fancybox-opened')\r\n\t\t\t\t\t.find('.fancybox-item, .fancybox-nav')\r\n\t\t\t\t\t.remove();\r\n\t\t\t}\r\n\r\n\t\t\tF.unbindEvents();\r\n\r\n\t\t\tcurrent   = coming;\r\n\t\t\tcontent   = coming.content;\r\n\t\t\ttype      = coming.type;\r\n\t\t\tscrolling = coming.scrolling;\r\n\r\n\t\t\t$.extend(F, {\r\n\t\t\t\twrap  : current.wrap,\r\n\t\t\t\tskin  : current.skin,\r\n\t\t\t\touter : current.outer,\r\n\t\t\t\tinner : current.inner,\r\n\t\t\t\tcurrent  : current,\r\n\t\t\t\tprevious : previous\r\n\t\t\t});\r\n\r\n\t\t\thref = current.href;\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'inline':\r\n\t\t\t\tcase 'ajax':\r\n\t\t\t\tcase 'html':\r\n\t\t\t\t\tif (current.selector) {\r\n\t\t\t\t\t\tcontent = $('<div>').html(content).find(current.selector);\r\n\r\n\t\t\t\t\t} else if (isQuery(content)) {\r\n\t\t\t\t\t\tif (!content.data(placeholder)) {\r\n\t\t\t\t\t\t\tcontent.data(placeholder, $('<div class=\"' + placeholder + '\"></div>').insertAfter( content ).hide() );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcontent = content.show().detach();\r\n\r\n\t\t\t\t\t\tcurrent.wrap.bind('onReset', function () {\r\n\t\t\t\t\t\t\tif ($(this).find(content).length) {\r\n\t\t\t\t\t\t\t\tcontent.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'image':\r\n\t\t\t\t\tcontent = current.tpl.image.replace('{href}', href);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'swf':\r\n\t\t\t\t\tcontent = '<object id=\"fancybox-swf\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"><param name=\"movie\" value=\"' + href + '\"></param>';\r\n\t\t\t\t\tembed   = '';\r\n\r\n\t\t\t\t\t$.each(current.swf, function(name, val) {\r\n\t\t\t\t\t\tcontent += '<param name=\"' + name + '\" value=\"' + val + '\"></param>';\r\n\t\t\t\t\t\tembed   += ' ' + name + '=\"' + val + '\"';\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tcontent += '<embed src=\"' + href + '\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\"' + embed + '></embed></object>';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (!(isQuery(content) && content.parent().is(current.inner))) {\r\n\t\t\t\tcurrent.inner.append( content );\r\n\t\t\t}\r\n\r\n\t\t\t// Give a chance for helpers or callbacks to update elements\r\n\t\t\tF.trigger('beforeShow');\r\n\r\n\t\t\t// Set scrolling before calculating dimensions\r\n\t\t\tcurrent.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));\r\n\r\n\t\t\t// Set initial dimensions and start position\r\n\t\t\tF._setDimension();\r\n\r\n\t\t\tF.reposition();\r\n\r\n\t\t\tF.isOpen = false;\r\n\t\t\tF.coming = null;\r\n\r\n\t\t\tF.bindEvents();\r\n\r\n\t\t\tif (!F.isOpened) {\r\n\t\t\t\t$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t} else if (previous.prevMethod) {\r\n\t\t\t\tF.transitions[ previous.prevMethod ]();\r\n\t\t\t}\r\n\r\n\t\t\tF.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();\r\n\r\n\t\t\tF._preloadImages();\r\n\t\t},\r\n\r\n\t\t_setDimension: function () {\r\n\t\t\tvar viewport   = F.getViewport(),\r\n\t\t\t\tsteps      = 0,\r\n\t\t\t\tcanShrink  = false,\r\n\t\t\t\tcanExpand  = false,\r\n\t\t\t\twrap       = F.wrap,\r\n\t\t\t\tskin       = F.skin,\r\n\t\t\t\tinner      = F.inner,\r\n\t\t\t\tcurrent    = F.current,\r\n\t\t\t\twidth      = current.width,\r\n\t\t\t\theight     = current.height,\r\n\t\t\t\tminWidth   = current.minWidth,\r\n\t\t\t\tminHeight  = current.minHeight,\r\n\t\t\t\tmaxWidth   = current.maxWidth,\r\n\t\t\t\tmaxHeight  = current.maxHeight,\r\n\t\t\t\tscrolling  = current.scrolling,\r\n\t\t\t\tscrollOut  = current.scrollOutside ? current.scrollbarWidth : 0,\r\n\t\t\t\tmargin     = current.margin,\r\n\t\t\t\twMargin    = getScalar(margin[1] + margin[3]),\r\n\t\t\t\thMargin    = getScalar(margin[0] + margin[2]),\r\n\t\t\t\twPadding,\r\n\t\t\t\thPadding,\r\n\t\t\t\twSpace,\r\n\t\t\t\thSpace,\r\n\t\t\t\torigWidth,\r\n\t\t\t\torigHeight,\r\n\t\t\t\torigMaxWidth,\r\n\t\t\t\torigMaxHeight,\r\n\t\t\t\tratio,\r\n\t\t\t\twidth_,\r\n\t\t\t\theight_,\r\n\t\t\t\tmaxWidth_,\r\n\t\t\t\tmaxHeight_,\r\n\t\t\t\tiframe,\r\n\t\t\t\tbody;\r\n\r\n\t\t\t// Reset dimensions so we could re-check actual size\r\n\t\t\twrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');\r\n\r\n\t\t\twPadding = getScalar(skin.outerWidth(true)  - skin.width());\r\n\t\t\thPadding = getScalar(skin.outerHeight(true) - skin.height());\r\n\r\n\t\t\t// Any space between content and viewport (margin, padding, border, title)\r\n\t\t\twSpace = wMargin + wPadding;\r\n\t\t\thSpace = hMargin + hPadding;\r\n\r\n\t\t\torigWidth  = isPercentage(width)  ? (viewport.w - wSpace) * getScalar(width)  / 100 : width;\r\n\t\t\torigHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;\r\n\r\n\t\t\tif (current.type === 'iframe') {\r\n\t\t\t\tiframe = current.content;\r\n\r\n\t\t\t\tif (current.autoHeight && iframe.data('ready') === 1) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tif (iframe[0].contentWindow.document.location) {\r\n\t\t\t\t\t\t\tinner.width( origWidth ).height(9999);\r\n\r\n\t\t\t\t\t\t\tbody = iframe.contents().find('body');\r\n\r\n\t\t\t\t\t\t\tif (scrollOut) {\r\n\t\t\t\t\t\t\t\tbody.css('overflow-x', 'hidden');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\torigHeight = body.outerHeight(true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} catch (e) {}\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (current.autoWidth || current.autoHeight) {\r\n\t\t\t\tinner.addClass( 'fancybox-tmp' );\r\n\r\n\t\t\t\t// Set width or height in case we need to calculate only one dimension\r\n\t\t\t\tif (!current.autoWidth) {\r\n\t\t\t\t\tinner.width( origWidth );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!current.autoHeight) {\r\n\t\t\t\t\tinner.height( origHeight );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (current.autoWidth) {\r\n\t\t\t\t\torigWidth = inner.width();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (current.autoHeight) {\r\n\t\t\t\t\torigHeight = inner.height();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinner.removeClass( 'fancybox-tmp' );\r\n\t\t\t}\r\n\r\n\t\t\twidth  = getScalar( origWidth );\r\n\t\t\theight = getScalar( origHeight );\r\n\r\n\t\t\tratio  = origWidth / origHeight;\r\n\r\n\t\t\t// Calculations for the content\r\n\t\t\tminWidth  = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);\r\n\t\t\tmaxWidth  = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);\r\n\r\n\t\t\tminHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);\r\n\t\t\tmaxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);\r\n\r\n\t\t\t// These will be used to determine if wrap can fit in the viewport\r\n\t\t\torigMaxWidth  = maxWidth;\r\n\t\t\torigMaxHeight = maxHeight;\r\n\r\n\t\t\tif (current.fitToView) {\r\n\t\t\t\tmaxWidth  = Math.min(viewport.w - wSpace, maxWidth);\r\n\t\t\t\tmaxHeight = Math.min(viewport.h - hSpace, maxHeight);\r\n\t\t\t}\r\n\r\n\t\t\tmaxWidth_  = viewport.w - wMargin;\r\n\t\t\tmaxHeight_ = viewport.h - hMargin;\r\n\r\n\t\t\tif (current.aspectRatio) {\r\n\t\t\t\tif (width > maxWidth) {\r\n\t\t\t\t\twidth  = maxWidth;\r\n\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (height > maxHeight) {\r\n\t\t\t\t\theight = maxHeight;\r\n\t\t\t\t\twidth  = getScalar(height * ratio);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (width < minWidth) {\r\n\t\t\t\t\twidth  = minWidth;\r\n\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (height < minHeight) {\r\n\t\t\t\t\theight = minHeight;\r\n\t\t\t\t\twidth  = getScalar(height * ratio);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\twidth = Math.max(minWidth, Math.min(width, maxWidth));\r\n\r\n\t\t\t\tif (current.autoHeight && current.type !== 'iframe') {\r\n\t\t\t\t\tinner.width( width );\r\n\r\n\t\t\t\t\theight = inner.height();\r\n\t\t\t\t}\r\n\r\n\t\t\t\theight = Math.max(minHeight, Math.min(height, maxHeight));\r\n\t\t\t}\r\n\r\n\t\t\t// Try to fit inside viewport (including the title)\r\n\t\t\tif (current.fitToView) {\r\n\t\t\t\tinner.width( width ).height( height );\r\n\r\n\t\t\t\twrap.width( width + wPadding );\r\n\r\n\t\t\t\t// Real wrap dimensions\r\n\t\t\t\twidth_  = wrap.width();\r\n\t\t\t\theight_ = wrap.height();\r\n\r\n\t\t\t\tif (current.aspectRatio) {\r\n\t\t\t\t\twhile ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {\r\n\t\t\t\t\t\tif (steps++ > 19) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\theight = Math.max(minHeight, Math.min(maxHeight, height - 10));\r\n\t\t\t\t\t\twidth  = getScalar(height * ratio);\r\n\r\n\t\t\t\t\t\tif (width < minWidth) {\r\n\t\t\t\t\t\t\twidth  = minWidth;\r\n\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (width > maxWidth) {\r\n\t\t\t\t\t\t\twidth  = maxWidth;\r\n\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tinner.width( width ).height( height );\r\n\r\n\t\t\t\t\t\twrap.width( width + wPadding );\r\n\r\n\t\t\t\t\t\twidth_  = wrap.width();\r\n\t\t\t\t\t\theight_ = wrap.height();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidth  = Math.max(minWidth,  Math.min(width,  width  - (width_  - maxWidth_)));\r\n\t\t\t\t\theight = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {\r\n\t\t\t\twidth += scrollOut;\r\n\t\t\t}\r\n\r\n\t\t\tinner.width( width ).height( height );\r\n\r\n\t\t\twrap.width( width + wPadding );\r\n\r\n\t\t\twidth_  = wrap.width();\r\n\t\t\theight_ = wrap.height();\r\n\r\n\t\t\tcanShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;\r\n\t\t\tcanExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));\r\n\r\n\t\t\t$.extend(current, {\r\n\t\t\t\tdim : {\r\n\t\t\t\t\twidth\t: getValue( width_ ),\r\n\t\t\t\t\theight\t: getValue( height_ )\r\n\t\t\t\t},\r\n\t\t\t\torigWidth  : origWidth,\r\n\t\t\t\torigHeight : origHeight,\r\n\t\t\t\tcanShrink  : canShrink,\r\n\t\t\t\tcanExpand  : canExpand,\r\n\t\t\t\twPadding   : wPadding,\r\n\t\t\t\thPadding   : hPadding,\r\n\t\t\t\twrapSpace  : height_ - skin.outerHeight(true),\r\n\t\t\t\tskinSpace  : skin.height() - height\r\n\t\t\t});\r\n\r\n\t\t\tif (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {\r\n\t\t\t\tinner.height('auto');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_getPosition: function (onlyAbsolute) {\r\n\t\t\tvar current  = F.current,\r\n\t\t\t\tviewport = F.getViewport(),\r\n\t\t\t\tmargin   = current.margin,\r\n\t\t\t\twidth    = F.wrap.width()  + margin[1] + margin[3],\r\n\t\t\t\theight   = F.wrap.height() + margin[0] + margin[2],\r\n\t\t\t\trez      = {\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\ttop  : margin[0],\r\n\t\t\t\t\tleft : margin[3]\r\n\t\t\t\t};\r\n\r\n\t\t\tif (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {\r\n\t\t\t\trez.position = 'fixed';\r\n\r\n\t\t\t} else if (!current.locked) {\r\n\t\t\t\trez.top  += viewport.y;\r\n\t\t\t\trez.left += viewport.x;\r\n\t\t\t}\r\n\r\n\t\t\trez.top  = getValue(Math.max(rez.top,  rez.top  + ((viewport.h - height) * current.topRatio)));\r\n\t\t\trez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width)  * current.leftRatio)));\r\n\r\n\t\t\treturn rez;\r\n\t\t},\r\n\r\n\t\t_afterZoomIn: function () {\r\n\t\t\tvar current = F.current;\r\n\r\n\t\t\tif (!current) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tF.isOpen = F.isOpened = true;\r\n\r\n\t\t\tF.wrap.css('overflow', 'visible').addClass('fancybox-opened');\r\n\r\n\t\t\tF.update();\r\n\r\n\t\t\t// Assign a click event\r\n\t\t\tif ( current.closeClick || (current.nextClick && F.group.length > 1) ) {\r\n\t\t\t\tF.inner.css('cursor', 'pointer').bind('click.fb', function(e) {\r\n\t\t\t\t\tif (!$(e.target).is('a') && !$(e.target).parent().is('a')) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tF[ current.closeClick ? 'close' : 'next' ]();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Create a close button\r\n\t\t\tif (current.closeBtn) {\r\n\t\t\t\t$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tF.close();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Create navigation arrows\r\n\t\t\tif (current.arrows && F.group.length > 1) {\r\n\t\t\t\tif (current.loop || current.index > 0) {\r\n\t\t\t\t\t$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (current.loop || current.index < F.group.length - 1) {\r\n\t\t\t\t\t$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tF.trigger('afterShow');\r\n\r\n\t\t\t// Stop the slideshow if this is the last item\r\n\t\t\tif (!current.loop && current.index === current.group.length - 1) {\r\n\t\t\t\tF.play( false );\r\n\r\n\t\t\t} else if (F.opts.autoPlay && !F.player.isActive) {\r\n\t\t\t\tF.opts.autoPlay = false;\r\n\r\n\t\t\t\tF.play();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_afterZoomOut: function ( obj ) {\r\n\t\t\tobj = obj || F.current;\r\n\r\n\t\t\t$('.fancybox-wrap').trigger('onReset').remove();\r\n\r\n\t\t\t$.extend(F, {\r\n\t\t\t\tgroup  : {},\r\n\t\t\t\topts   : {},\r\n\t\t\t\trouter : false,\r\n\t\t\t\tcurrent   : null,\r\n\t\t\t\tisActive  : false,\r\n\t\t\t\tisOpened  : false,\r\n\t\t\t\tisOpen    : false,\r\n\t\t\t\tisClosing : false,\r\n\t\t\t\twrap   : null,\r\n\t\t\t\tskin   : null,\r\n\t\t\t\touter  : null,\r\n\t\t\t\tinner  : null\r\n\t\t\t});\r\n\r\n\t\t\tF.trigger('afterClose', obj);\r\n\t\t}\r\n\t});\r\n\r\n\t/*\r\n\t *\tDefault transitions\r\n\t */\r\n\r\n\tF.transitions = {\r\n\t\tgetOrigPosition: function () {\r\n\t\t\tvar current  = F.current,\r\n\t\t\t\telement  = current.element,\r\n\t\t\t\torig     = current.orig,\r\n\t\t\t\tpos      = {},\r\n\t\t\t\twidth    = 50,\r\n\t\t\t\theight   = 50,\r\n\t\t\t\thPadding = current.hPadding,\r\n\t\t\t\twPadding = current.wPadding,\r\n\t\t\t\tviewport = F.getViewport();\r\n\r\n\t\t\tif (!orig && current.isDom && element.is(':visible')) {\r\n\t\t\t\torig = element.find('img:first');\r\n\r\n\t\t\t\tif (!orig.length) {\r\n\t\t\t\t\torig = element;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (isQuery(orig)) {\r\n\t\t\t\tpos = orig.offset();\r\n\r\n\t\t\t\tif (orig.is('img')) {\r\n\t\t\t\t\twidth  = orig.outerWidth();\r\n\t\t\t\t\theight = orig.outerHeight();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tpos.top  = viewport.y + (viewport.h - height) * current.topRatio;\r\n\t\t\t\tpos.left = viewport.x + (viewport.w - width)  * current.leftRatio;\r\n\t\t\t}\r\n\r\n\t\t\tif (F.wrap.css('position') === 'fixed' || current.locked) {\r\n\t\t\t\tpos.top  -= viewport.y;\r\n\t\t\t\tpos.left -= viewport.x;\r\n\t\t\t}\r\n\r\n\t\t\tpos = {\r\n\t\t\t\ttop     : getValue(pos.top  - hPadding * current.topRatio),\r\n\t\t\t\tleft    : getValue(pos.left - wPadding * current.leftRatio),\r\n\t\t\t\twidth   : getValue(width  + wPadding),\r\n\t\t\t\theight  : getValue(height + hPadding)\r\n\t\t\t};\r\n\r\n\t\t\treturn pos;\r\n\t\t},\r\n\r\n\t\tstep: function (now, fx) {\r\n\t\t\tvar ratio,\r\n\t\t\t\tpadding,\r\n\t\t\t\tvalue,\r\n\t\t\t\tprop       = fx.prop,\r\n\t\t\t\tcurrent    = F.current,\r\n\t\t\t\twrapSpace  = current.wrapSpace,\r\n\t\t\t\tskinSpace  = current.skinSpace;\r\n\r\n\t\t\tif (prop === 'width' || prop === 'height') {\r\n\t\t\t\tratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);\r\n\r\n\t\t\t\tif (F.isClosing) {\r\n\t\t\t\t\tratio = 1 - ratio;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpadding = prop === 'width' ? current.wPadding : current.hPadding;\r\n\t\t\t\tvalue   = now - padding;\r\n\r\n\t\t\t\tF.skin[ prop ](  getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) ) );\r\n\t\t\t\tF.inner[ prop ]( getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tzoomIn: function () {\r\n\t\t\tvar current  = F.current,\r\n\t\t\t\tstartPos = current.pos,\r\n\t\t\t\teffect   = current.openEffect,\r\n\t\t\t\telastic  = effect === 'elastic',\r\n\t\t\t\tendPos   = $.extend({opacity : 1}, startPos);\r\n\r\n\t\t\t// Remove \"position\" property that breaks older IE\r\n\t\t\tdelete endPos.position;\r\n\r\n\t\t\tif (elastic) {\r\n\t\t\t\tstartPos = this.getOrigPosition();\r\n\r\n\t\t\t\tif (current.openOpacity) {\r\n\t\t\t\t\tstartPos.opacity = 0.1;\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (effect === 'fade') {\r\n\t\t\t\tstartPos.opacity = 0.1;\r\n\t\t\t}\r\n\r\n\t\t\tF.wrap.css(startPos).animate(endPos, {\r\n\t\t\t\tduration : effect === 'none' ? 0 : current.openSpeed,\r\n\t\t\t\teasing   : current.openEasing,\r\n\t\t\t\tstep     : elastic ? this.step : null,\r\n\t\t\t\tcomplete : F._afterZoomIn\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tzoomOut: function () {\r\n\t\t\tvar current  = F.current,\r\n\t\t\t\teffect   = current.closeEffect,\r\n\t\t\t\telastic  = effect === 'elastic',\r\n\t\t\t\tendPos   = {opacity : 0.1};\r\n\r\n\t\t\tif (elastic) {\r\n\t\t\t\tendPos = this.getOrigPosition();\r\n\r\n\t\t\t\tif (current.closeOpacity) {\r\n\t\t\t\t\tendPos.opacity = 0.1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tF.wrap.animate(endPos, {\r\n\t\t\t\tduration : effect === 'none' ? 0 : current.closeSpeed,\r\n\t\t\t\teasing   : current.closeEasing,\r\n\t\t\t\tstep     : elastic ? this.step : null,\r\n\t\t\t\tcomplete : F._afterZoomOut\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tchangeIn: function () {\r\n\t\t\tvar current   = F.current,\r\n\t\t\t\teffect    = current.nextEffect,\r\n\t\t\t\tstartPos  = current.pos,\r\n\t\t\t\tendPos    = { opacity : 1 },\r\n\t\t\t\tdirection = F.direction,\r\n\t\t\t\tdistance  = 200,\r\n\t\t\t\tfield;\r\n\r\n\t\t\tstartPos.opacity = 0.1;\r\n\r\n\t\t\tif (effect === 'elastic') {\r\n\t\t\t\tfield = direction === 'down' || direction === 'up' ? 'top' : 'left';\r\n\r\n\t\t\t\tif (direction === 'down' || direction === 'right') {\r\n\t\t\t\t\tstartPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);\r\n\t\t\t\t\tendPos[ field ]   = '+=' + distance + 'px';\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstartPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);\r\n\t\t\t\t\tendPos[ field ]   = '-=' + distance + 'px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Workaround for http://bugs.jquery.com/ticket/12273\r\n\t\t\tif (effect === 'none') {\r\n\t\t\t\tF._afterZoomIn();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tF.wrap.css(startPos).animate(endPos, {\r\n\t\t\t\t\tduration : current.nextSpeed,\r\n\t\t\t\t\teasing   : current.nextEasing,\r\n\t\t\t\t\tcomplete : F._afterZoomIn\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tchangeOut: function () {\r\n\t\t\tvar previous  = F.previous,\r\n\t\t\t\teffect    = previous.prevEffect,\r\n\t\t\t\tendPos    = { opacity : 0.1 },\r\n\t\t\t\tdirection = F.direction,\r\n\t\t\t\tdistance  = 200;\r\n\r\n\t\t\tif (effect === 'elastic') {\r\n\t\t\t\tendPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tprevious.wrap.animate(endPos, {\r\n\t\t\t\tduration : effect === 'none' ? 0 : previous.prevSpeed,\r\n\t\t\t\teasing   : previous.prevEasing,\r\n\t\t\t\tcomplete : function () {\r\n\t\t\t\t\t$(this).trigger('onReset').remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/*\r\n\t *\tOverlay helper\r\n\t */\r\n\r\n\tF.helpers.overlay = {\r\n\t\tdefaults : {\r\n\t\t\tcloseClick : true,      // if true, fancyBox will be closed when user clicks on the overlay\r\n\t\t\tspeedOut   : 200,       // duration of fadeOut animation\r\n\t\t\tshowEarly  : true,      // indicates if should be opened immediately or wait until the content is ready\r\n\t\t\tcss        : {},        // custom CSS properties\r\n\t\t\tlocked     : !isTouch,  // if true, the content will be locked into overlay\r\n\t\t\tfixed      : true       // if false, the overlay CSS position property will not be set to \"fixed\"\r\n\t\t},\r\n\r\n\t\toverlay : null,      // current handle\r\n\t\tfixed   : false,     // indicates if the overlay has position \"fixed\"\r\n\t\tel      : $('html'), // element that contains \"the lock\"\r\n\r\n\t\t// Public methods\r\n\t\tcreate : function(opts) {\r\n\t\t\topts = $.extend({}, this.defaults, opts);\r\n\r\n\t\t\tif (this.overlay) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\r\n\t\t\tthis.overlay = $('<div class=\"fancybox-overlay\"></div>').appendTo( F.coming ? F.coming.parent : opts.parent );\r\n\t\t\tthis.fixed   = false;\r\n\r\n\t\t\tif (opts.fixed && F.defaults.fixed) {\r\n\t\t\t\tthis.overlay.addClass('fancybox-overlay-fixed');\r\n\r\n\t\t\t\tthis.fixed = true;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\topen : function(opts) {\r\n\t\t\tvar that = this;\r\n\r\n\t\t\topts = $.extend({}, this.defaults, opts);\r\n\r\n\t\t\tif (this.overlay) {\r\n\t\t\t\tthis.overlay.unbind('.overlay').width('auto').height('auto');\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.create(opts);\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.fixed) {\r\n\t\t\t\tW.bind('resize.overlay', $.proxy( this.update, this) );\r\n\r\n\t\t\t\tthis.update();\r\n\t\t\t}\r\n\r\n\t\t\t// ========================================================\r\n\t\t\t// | Disabled to make sure that closeClick is enforced... |\r\n\t\t\t// ========================================================\r\n\t\t\t//\r\n\t\t\t// if (opts.closeClick) {\r\n\t\t\t// \tthis.overlay.bind('click.overlay', function(e) {\r\n\t\t\t// \t\tif ($(e.target).hasClass('fancybox-overlay')) {\r\n\t\t\t// \t\t\tif (F.isActive) {\r\n\t\t\t// \t\t\t\tF.close();\r\n\t\t\t// \t\t\t} else {\r\n\t\t\t// \t\t\t\tthat.close();\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t\treturn false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t});\r\n\t\t\t// }\r\n\r\n\t\t\tthis.overlay.css( opts.css ).show();\r\n\t\t},\r\n\r\n\t\tclose : function() {\r\n\t\t\tvar scrollV, scrollH;\r\n\r\n\t\t\tW.unbind('resize.overlay');\r\n\r\n\t\t\tif (this.el.hasClass('fancybox-lock')) {\r\n\t\t\t\t$('.fancybox-margin').removeClass('fancybox-margin');\r\n\r\n\t\t\t\tscrollV = W.scrollTop();\r\n\t\t\t\tscrollH = W.scrollLeft();\r\n\r\n\t\t\t\tthis.el.removeClass('fancybox-lock');\r\n\r\n\t\t\t\tW.scrollTop( scrollV ).scrollLeft( scrollH );\r\n\t\t\t}\r\n\r\n\t\t\t$('.fancybox-overlay').remove().hide();\r\n\r\n\t\t\t$.extend(this, {\r\n\t\t\t\toverlay : null,\r\n\t\t\t\tfixed   : false\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t// Private, callbacks\r\n\r\n\t\tupdate : function () {\r\n\t\t\tvar width = '100%', offsetWidth;\r\n\r\n\t\t\t// Reset width/height so it will not mess\r\n\t\t\tthis.overlay.width(width).height('100%');\r\n\r\n\t\t\t// jQuery does not return reliable result for IE\r\n\t\t\tif (IE) {\r\n\t\t\t\toffsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);\r\n\r\n\t\t\t\tif (D.width() > offsetWidth) {\r\n\t\t\t\t\twidth = D.width();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (D.width() > W.width()) {\r\n\t\t\t\twidth = D.width();\r\n\t\t\t}\r\n\r\n\t\t\tthis.overlay.width(width).height(D.height());\r\n\t\t},\r\n\r\n\t\t// This is where we can manipulate DOM, because later it would cause iframes to reload\r\n\t\tonReady : function (opts, obj) {\r\n\t\t\tvar overlay = this.overlay;\r\n\r\n\t\t\t$('.fancybox-overlay').stop(true, true);\r\n\r\n\t\t\tif (!overlay) {\r\n\t\t\t\tthis.create(opts);\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.locked && this.fixed && obj.fixed) {\r\n\t\t\t\tif (!overlay) {\r\n\t\t\t\t\tthis.margin = D.height() > W.height() ? $('html').css('margin-right').replace(\"px\", \"\") : false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobj.locked = this.overlay.append( obj.wrap );\r\n\t\t\t\tobj.fixed  = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.showEarly === true) {\r\n\t\t\t\tthis.beforeShow.apply(this, arguments);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbeforeShow : function(opts, obj) {\r\n\t\t\tvar scrollV, scrollH;\r\n\r\n\t\t\tif (obj.locked) {\r\n\t\t\t\tif (this.margin !== false) {\r\n\t\t\t\t\t$('*').filter(function(){\r\n\t\t\t\t\t\treturn ($(this).css('position') === 'fixed' && !$(this).hasClass(\"fancybox-overlay\") && !$(this).hasClass(\"fancybox-wrap\") );\r\n\t\t\t\t\t}).addClass('fancybox-margin');\r\n\r\n\t\t\t\t\tthis.el.addClass('fancybox-margin');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscrollV = W.scrollTop();\r\n\t\t\t\tscrollH = W.scrollLeft();\r\n\r\n\t\t\t\tthis.el.addClass('fancybox-lock');\r\n\r\n\t\t\t\tW.scrollTop( scrollV ).scrollLeft( scrollH );\r\n\t\t\t}\r\n\r\n\t\t\tthis.open(opts);\r\n\t\t},\r\n\r\n\t\tonUpdate : function() {\r\n\t\t\tif (!this.fixed) {\r\n\t\t\t\tthis.update();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tafterClose: function (opts) {\r\n\t\t\t// Remove overlay if exists and fancyBox is not opening\r\n\t\t\t// (e.g., it is not being open using afterClose callback)\r\n\t\t\t//if (this.overlay && !F.isActive) {\r\n\t\t\tif (this.overlay && !F.coming) {\r\n\t\t\t\tthis.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/*\r\n\t *\tTitle helper\r\n\t */\r\n\r\n\tF.helpers.title = {\r\n\t\tdefaults : {\r\n\t\t\ttype     : 'float', // 'float', 'inside', 'outside' or 'over',\r\n\t\t\tposition : 'bottom' // 'top' or 'bottom'\r\n\t\t},\r\n\r\n\t\tbeforeShow: function (opts) {\r\n\t\t\tvar current = F.current,\r\n\t\t\t\ttext    = current.title,\r\n\t\t\t\ttype    = opts.type,\r\n\t\t\t\ttitle,\r\n\t\t\t\ttarget;\r\n\r\n\t\t\tif ($.isFunction(text)) {\r\n\t\t\t\ttext = text.call(current.element, current);\r\n\t\t\t}\r\n\r\n\t\t\tif (!isString(text) || $.trim(text) === '') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttitle = $('<div class=\"fancybox-title fancybox-title-' + type + '-wrap\">' + text + '</div>');\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'inside':\r\n\t\t\t\t\ttarget = F.skin;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'outside':\r\n\t\t\t\t\ttarget = F.wrap;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'over':\r\n\t\t\t\t\ttarget = F.inner;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault: // 'float'\r\n\t\t\t\t\ttarget = F.skin;\r\n\r\n\t\t\t\t\ttitle.appendTo('body');\r\n\r\n\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\ttitle.width( title.width() );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttitle.wrapInner('<span class=\"child\"></span>');\r\n\r\n\t\t\t\t\t//Increase bottom margin so this title will also fit into viewport\r\n\t\t\t\t\tF.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\ttitle[ (opts.position === 'top' ? 'prependTo'  : 'appendTo') ](target);\r\n\t\t}\r\n\t};\r\n\r\n\t// jQuery plugin initialization\r\n\t$.fn.fancybox = function (options) {\r\n\t\tvar index,\r\n\t\t\tthat     = $(this),\r\n\t\t\tselector = this.selector || '',\r\n\t\t\trun      = function(e) {\r\n\t\t\t\tvar what = $(this).blur(), idx = index, relType, relVal;\r\n\r\n\t\t\t\tif (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {\r\n\t\t\t\t\trelType = options.groupAttr || 'data-fancybox-group';\r\n\t\t\t\t\trelVal  = what.attr(relType);\r\n\r\n\t\t\t\t\tif (!relVal) {\r\n\t\t\t\t\t\trelType = 'rel';\r\n\t\t\t\t\t\trelVal  = what.get(0)[ relType ];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (relVal && relVal !== '' && relVal !== 'nofollow') {\r\n\t\t\t\t\t\twhat = selector.length ? $(selector) : that;\r\n\t\t\t\t\t\twhat = what.filter('[' + relType + '=\"' + relVal + '\"]');\r\n\t\t\t\t\t\tidx  = what.index(this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toptions.index = idx;\r\n\r\n\t\t\t\t\t// Stop an event from bubbling if everything is fine\r\n\t\t\t\t\tif (F.open(what, options) !== false) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\toptions = options || {};\r\n\t\tindex   = options.index || 0;\r\n\r\n\t\tif (!selector || options.live === false) {\r\n\t\t\tthat.unbind('click.fb-start').bind('click.fb-start', run);\r\n\r\n\t\t} else {\r\n\t\t\tD.undelegate(selector, 'click.fb-start').delegate(selector + \":not('.fancybox-item, .fancybox-nav')\", 'click.fb-start', run);\r\n\t\t}\r\n\r\n\t\tthis.filter('[data-fancybox-start=1]').trigger('click');\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t// Tests that need a body at doc ready\r\n\tD.ready(function() {\r\n\t\tvar w1, w2;\r\n\r\n\t\tif ( $.scrollbarWidth === undefined ) {\r\n\t\t\t// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth\r\n\t\t\t$.scrollbarWidth = function() {\r\n\t\t\t\tvar parent = $('<div style=\"width:50px;height:50px;overflow:auto\"><div/></div>').appendTo('body'),\r\n\t\t\t\t\tchild  = parent.children(),\r\n\t\t\t\t\twidth  = child.innerWidth() - child.height( 99 ).innerWidth();\r\n\r\n\t\t\t\tparent.remove();\r\n\r\n\t\t\t\treturn width;\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif ( $.support.fixedPosition === undefined ) {\r\n\t\t\t$.support.fixedPosition = (function() {\r\n\t\t\t\tvar elem  = $('<div style=\"position:fixed;top:20px;\"></div>').appendTo('body'),\r\n\t\t\t\t\tfixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );\r\n\r\n\t\t\t\telem.remove();\r\n\r\n\t\t\t\treturn fixed;\r\n\t\t\t}());\r\n\t\t}\r\n\r\n\t\t$.extend(F.defaults, {\r\n\t\t\tscrollbarWidth : $.scrollbarWidth(),\r\n\t\t\tfixed  : $.support.fixedPosition,\r\n\t\t\tparent : $('body')\r\n\t\t});\r\n\r\n\t\t//Get real width of page scroll-bar\r\n\t\tw1 = $(window).width();\r\n\r\n\t\tH.addClass('fancybox-lock-test');\r\n\r\n\t\tw2 = $(window).width();\r\n\r\n\t\tH.removeClass('fancybox-lock-test');\r\n\r\n\t\t$(\"<style type='text/css'>.fancybox-margin{margin-right:\" + (w2 - w1) + \"px;}</style>\").appendTo(\"head\");\r\n\t});\r\n\r\n}(window, document, jQuery));"},function(t,e,n){n(0)(n(86)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/jquery.flexslider.js")},function(t,e){t.exports='/*\r\n * jQuery FlexSlider v2.2.2\r\n * Copyright 2012 WooThemes\r\n * Contributing Author: Tyler Smith\r\n */\r\n;\r\n(function ($) {\r\n\r\n  //FlexSlider: Object Instance\r\n  $.flexslider = function(el, options) {\r\n    var slider = $(el);\r\n\r\n    // making variables public\r\n    slider.vars = $.extend({}, $.flexslider.defaults, options);\r\n\r\n    var namespace = slider.vars.namespace,\r\n        msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,\r\n        touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,\r\n        // depricating this idea, as devices are being released with both of these events\r\n        //eventType = (touch) ? "touchend" : "click",\r\n        eventType = "click touchend MSPointerUp keyup",\r\n        watchedEvent = "",\r\n        watchedEventClearTimer,\r\n        vertical = slider.vars.direction === "vertical",\r\n        reverse = slider.vars.reverse,\r\n        carousel = (slider.vars.itemWidth > 0),\r\n        fade = slider.vars.animation === "fade",\r\n        asNav = slider.vars.asNavFor !== "",\r\n        methods = {},\r\n        focused = true;\r\n\r\n    // Store a reference to the slider object\r\n    $.data(el, "flexslider", slider);\r\n\r\n    // Private slider methods\r\n    methods = {\r\n      init: function() {\r\n        slider.animating = false;\r\n        // Get current slide and make sure it is a number\r\n        slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );\r\n        if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;\r\n        slider.animatingTo = slider.currentSlide;\r\n        slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);\r\n        slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(\' \'));\r\n        slider.slides = $(slider.vars.selector, slider);\r\n        slider.container = $(slider.containerSelector, slider);\r\n        slider.count = slider.slides.length;\r\n        // SYNC:\r\n        slider.syncExists = $(slider.vars.sync).length > 0;\r\n        // SLIDE:\r\n        if (slider.vars.animation === "slide") slider.vars.animation = "swing";\r\n        slider.prop = (vertical) ? "top" : "marginLeft";\r\n        slider.args = {};\r\n        // SLIDESHOW:\r\n        slider.manualPause = false;\r\n        slider.stopped = false;\r\n        //PAUSE WHEN INVISIBLE\r\n        slider.started = false;\r\n        slider.startTimeout = null;\r\n        // TOUCH/USECSS:\r\n        slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {\r\n          var obj = document.createElement(\'div\'),\r\n              props = [\'perspectiveProperty\', \'WebkitPerspective\', \'MozPerspective\', \'OPerspective\', \'msPerspective\'];\r\n          for (var i in props) {\r\n            if ( obj.style[ props[i] ] !== undefined ) {\r\n              slider.pfx = props[i].replace(\'Perspective\',\'\').toLowerCase();\r\n              slider.prop = "-" + slider.pfx + "-transform";\r\n              return true;\r\n            }\r\n          }\r\n          return false;\r\n        }());\r\n        slider.ensureAnimationEnd = \'\';\r\n        // CONTROLSCONTAINER:\r\n        if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);\r\n        // MANUAL:\r\n        if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);\r\n\r\n        // RANDOMIZE:\r\n        if (slider.vars.randomize) {\r\n          slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });\r\n          slider.container.empty().append(slider.slides);\r\n        }\r\n\r\n        slider.doMath();\r\n\r\n        // INIT\r\n        slider.setup("init");\r\n\r\n        // CONTROLNAV:\r\n        if (slider.vars.controlNav) methods.controlNav.setup();\r\n\r\n        // DIRECTIONNAV:\r\n        if (slider.vars.directionNav) methods.directionNav.setup();\r\n\r\n        // KEYBOARD:\r\n        if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {\r\n          $(document).bind(\'keyup\', function(event) {\r\n            var keycode = event.keyCode;\r\n            if (!slider.animating && (keycode === 39 || keycode === 37)) {\r\n              var target = (keycode === 39) ? slider.getTarget(\'next\') :\r\n                           (keycode === 37) ? slider.getTarget(\'prev\') : false;\r\n              slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n            }\r\n          });\r\n        }\r\n        // MOUSEWHEEL:\r\n        if (slider.vars.mousewheel) {\r\n          slider.bind(\'mousewheel\', function(event, delta, deltaX, deltaY) {\r\n            event.preventDefault();\r\n            var target = (delta < 0) ? slider.getTarget(\'next\') : slider.getTarget(\'prev\');\r\n            slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n          });\r\n        }\r\n\r\n        // PAUSEPLAY\r\n        if (slider.vars.pausePlay) methods.pausePlay.setup();\r\n\r\n        //PAUSE WHEN INVISIBLE\r\n        if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();\r\n\r\n        // SLIDSESHOW\r\n        if (slider.vars.slideshow) {\r\n          if (slider.vars.pauseOnHover) {\r\n            slider.hover(function() {\r\n              if (!slider.manualPlay && !slider.manualPause) slider.pause();\r\n            }, function() {\r\n              if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();\r\n            });\r\n          }\r\n          // initialize animation\r\n          //If we\'re visible, or we don\'t use PageVisibility API\r\n          if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {\r\n            (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();\r\n          }\r\n        }\r\n\r\n        // ASNAV:\r\n        if (asNav) methods.asNav.setup();\r\n\r\n        // TOUCH\r\n        if (touch && slider.vars.touch) methods.touch();\r\n\r\n        // FADE&&SMOOTHHEIGHT || SLIDE:\r\n        if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind("resize orientationchange focus", methods.resize);\r\n\r\n        slider.find("img").attr("draggable", "false");\r\n\r\n        // API: start() Callback\r\n        setTimeout(function(){\r\n          slider.vars.start(slider);\r\n        }, 200);\r\n      },\r\n      asNav: {\r\n        setup: function() {\r\n          slider.asNav = true;\r\n          slider.animatingTo = Math.floor(slider.currentSlide/slider.move);\r\n          slider.currentItem = slider.currentSlide;\r\n          slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");\r\n          if(!msGesture){\r\n              slider.slides.on(eventType, function(e){\r\n                e.preventDefault();\r\n                var $slide = $(this),\r\n                    target = $slide.index();\r\n                var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container\r\n                if( posFromLeft <= 0 && $slide.hasClass( namespace + \'active-slide\' ) ) {\r\n                  slider.flexAnimate(slider.getTarget("prev"), true);\r\n                } else if (!$(slider.vars.asNavFor).data(\'flexslider\').animating && !$slide.hasClass(namespace + "active-slide")) {\r\n                  slider.direction = (slider.currentItem < target) ? "next" : "prev";\r\n                  slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\r\n                }\r\n              });\r\n          }else{\r\n              el._slider = slider;\r\n              slider.slides.each(function (){\r\n                  var that = this;\r\n                  that._gesture = new MSGesture();\r\n                  that._gesture.target = that;\r\n                  that.addEventListener("MSPointerDown", function (e){\r\n                      e.preventDefault();\r\n                      if(e.currentTarget._gesture)\r\n                          e.currentTarget._gesture.addPointer(e.pointerId);\r\n                  }, false);\r\n                  that.addEventListener("MSGestureTap", function (e){\r\n                      e.preventDefault();\r\n                      var $slide = $(this),\r\n                          target = $slide.index();\r\n                      if (!$(slider.vars.asNavFor).data(\'flexslider\').animating && !$slide.hasClass(\'active\')) {\r\n                          slider.direction = (slider.currentItem < target) ? "next" : "prev";\r\n                          slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\r\n                      }\r\n                  });\r\n              });\r\n          }\r\n        }\r\n      },\r\n      controlNav: {\r\n        setup: function() {\r\n          if (!slider.manualControls) {\r\n            methods.controlNav.setupPaging();\r\n          } else { // MANUALCONTROLS:\r\n            methods.controlNav.setupManual();\r\n          }\r\n        },\r\n        setupPaging: function() {\r\n          var type = (slider.vars.controlNav === "thumbnails") ? \'control-thumbs\' : \'control-paging\',\r\n              j = 1,\r\n              item,\r\n              slide;\r\n\r\n          slider.controlNavScaffold = $(\'<ol class="\'+ namespace + \'control-nav \' + namespace + type + \'"></ol>\');\r\n\r\n          if (slider.pagingCount > 1) {\r\n            for (var i = 0; i < slider.pagingCount; i++) {\r\n              slide = slider.slides.eq(i);\r\n              item = (slider.vars.controlNav === "thumbnails") ? \'<img src="\' + slide.attr( \'data-thumb\' ) + \'"/>\' : \'<a>\' + j + \'</a>\';\r\n              if ( \'thumbnails\' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {\r\n                var captn = slide.attr( \'data-thumbcaption\' );\r\n                if ( \'\' != captn && undefined != captn ) item += \'<span class="\' + namespace + \'caption">\' + captn + \'</span>\';\r\n              }\r\n              slider.controlNavScaffold.append(\'<li>\' + item + \'</li>\');\r\n              j++;\r\n            }\r\n          }\r\n\r\n          // CONTROLSCONTAINER:\r\n          (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);\r\n          methods.controlNav.set();\r\n\r\n          methods.controlNav.active();\r\n\r\n          slider.controlNavScaffold.delegate(\'a, img\', eventType, function(event) {\r\n            event.preventDefault();\r\n\r\n            if (watchedEvent === "" || watchedEvent === event.type) {\r\n              var $this = $(this),\r\n                  target = slider.controlNav.index($this);\r\n\r\n              if (!$this.hasClass(namespace + \'active\')) {\r\n                slider.direction = (target > slider.currentSlide) ? "next" : "prev";\r\n                slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n              }\r\n            }\r\n\r\n            // setup flags to prevent event duplication\r\n            if (watchedEvent === "") {\r\n              watchedEvent = event.type;\r\n            }\r\n            methods.setToClearWatchedEvent();\r\n\r\n          });\r\n        },\r\n        setupManual: function() {\r\n          slider.controlNav = slider.manualControls;\r\n          methods.controlNav.active();\r\n\r\n          slider.controlNav.bind(eventType, function(event) {\r\n            event.preventDefault();\r\n\r\n            if (watchedEvent === "" || watchedEvent === event.type) {\r\n              var $this = $(this),\r\n                  target = slider.controlNav.index($this);\r\n\r\n              if (!$this.hasClass(namespace + \'active\')) {\r\n                (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";\r\n                slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n              }\r\n            }\r\n\r\n            // setup flags to prevent event duplication\r\n            if (watchedEvent === "") {\r\n              watchedEvent = event.type;\r\n            }\r\n            methods.setToClearWatchedEvent();\r\n          });\r\n        },\r\n        set: function() {\r\n          var selector = (slider.vars.controlNav === "thumbnails") ? \'img\' : \'a\';\r\n          slider.controlNav = $(\'.\' + namespace + \'control-nav li \' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);\r\n        },\r\n        active: function() {\r\n          slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");\r\n        },\r\n        update: function(action, pos) {\r\n          if (slider.pagingCount > 1 && action === "add") {\r\n            slider.controlNavScaffold.append($(\'<li><a>\' + slider.count + \'</a></li>\'));\r\n          } else if (slider.pagingCount === 1) {\r\n            slider.controlNavScaffold.find(\'li\').remove();\r\n          } else {\r\n            slider.controlNav.eq(pos).closest(\'li\').remove();\r\n          }\r\n          methods.controlNav.set();\r\n          (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();\r\n        }\r\n      },\r\n      directionNav: {\r\n        setup: function() {\r\n          var directionNavScaffold = $(\'<ul class="\' + namespace + \'direction-nav"><li><a class="\' + namespace + \'prev" href="#">\' + slider.vars.prevText + \'</a></li><li><a class="\' + namespace + \'next" href="#">\' + slider.vars.nextText + \'</a></li></ul>\');\r\n\r\n          // CONTROLSCONTAINER:\r\n          if (slider.controlsContainer) {\r\n            $(slider.controlsContainer).append(directionNavScaffold);\r\n            slider.directionNav = $(\'.\' + namespace + \'direction-nav li a\', slider.controlsContainer);\r\n          } else {\r\n            slider.append(directionNavScaffold);\r\n            slider.directionNav = $(\'.\' + namespace + \'direction-nav li a\', slider);\r\n          }\r\n\r\n          methods.directionNav.update();\r\n\r\n          slider.directionNav.bind(eventType, function(event) {\r\n            event.preventDefault();\r\n            var target;\r\n\r\n            if (watchedEvent === "" || watchedEvent === event.type) {\r\n              target = ($(this).hasClass(namespace + \'next\')) ? slider.getTarget(\'next\') : slider.getTarget(\'prev\');\r\n              slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n            }\r\n\r\n            // setup flags to prevent event duplication\r\n            if (watchedEvent === "") {\r\n              watchedEvent = event.type;\r\n            }\r\n            methods.setToClearWatchedEvent();\r\n          });\r\n        },\r\n        update: function() {\r\n          var disabledClass = namespace + \'disabled\';\r\n          if (slider.pagingCount === 1) {\r\n            slider.directionNav.addClass(disabledClass).attr(\'tabindex\', \'-1\');\r\n          } else if (!slider.vars.animationLoop) {\r\n            if (slider.animatingTo === 0) {\r\n              slider.directionNav.removeClass(disabledClass).filter(\'.\' + namespace + "prev").addClass(disabledClass).attr(\'tabindex\', \'-1\');\r\n            } else if (slider.animatingTo === slider.last) {\r\n              slider.directionNav.removeClass(disabledClass).filter(\'.\' + namespace + "next").addClass(disabledClass).attr(\'tabindex\', \'-1\');\r\n            } else {\r\n              slider.directionNav.removeClass(disabledClass).removeAttr(\'tabindex\');\r\n            }\r\n          } else {\r\n            slider.directionNav.removeClass(disabledClass).removeAttr(\'tabindex\');\r\n          }\r\n        }\r\n      },\r\n      pausePlay: {\r\n        setup: function() {\r\n          var pausePlayScaffold = $(\'<div class="\' + namespace + \'pauseplay"><a></a></div>\');\r\n\r\n          // CONTROLSCONTAINER:\r\n          if (slider.controlsContainer) {\r\n            slider.controlsContainer.append(pausePlayScaffold);\r\n            slider.pausePlay = $(\'.\' + namespace + \'pauseplay a\', slider.controlsContainer);\r\n          } else {\r\n            slider.append(pausePlayScaffold);\r\n            slider.pausePlay = $(\'.\' + namespace + \'pauseplay a\', slider);\r\n          }\r\n\r\n          methods.pausePlay.update((slider.vars.slideshow) ? namespace + \'pause\' : namespace + \'play\');\r\n\r\n          slider.pausePlay.bind(eventType, function(event) {\r\n            event.preventDefault();\r\n\r\n            if (watchedEvent === "" || watchedEvent === event.type) {\r\n              if ($(this).hasClass(namespace + \'pause\')) {\r\n                slider.manualPause = true;\r\n                slider.manualPlay = false;\r\n                slider.pause();\r\n              } else {\r\n                slider.manualPause = false;\r\n                slider.manualPlay = true;\r\n                slider.play();\r\n              }\r\n            }\r\n\r\n            // setup flags to prevent event duplication\r\n            if (watchedEvent === "") {\r\n              watchedEvent = event.type;\r\n            }\r\n            methods.setToClearWatchedEvent();\r\n          });\r\n        },\r\n        update: function(state) {\r\n          (state === "play") ? slider.pausePlay.removeClass(namespace + \'pause\').addClass(namespace + \'play\').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + \'play\').addClass(namespace + \'pause\').html(slider.vars.pauseText);\r\n        }\r\n      },\r\n      touch: function() {\r\n        var startX,\r\n          startY,\r\n          offset,\r\n          cwidth,\r\n          dx,\r\n          startT,\r\n          scrolling = false,\r\n          localX = 0,\r\n          localY = 0,\r\n          accDx = 0;\r\n\r\n        if(!msGesture){\r\n            el.addEventListener(\'touchstart\', onTouchStart, false);\r\n\r\n            function onTouchStart(e) {\r\n              if (slider.animating) {\r\n                e.preventDefault();\r\n              } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {\r\n                slider.pause();\r\n                // CAROUSEL:\r\n                cwidth = (vertical) ? slider.h : slider. w;\r\n                startT = Number(new Date());\r\n                // CAROUSEL:\r\n\r\n                // Local vars for X and Y points.\r\n                localX = e.touches[0].pageX;\r\n                localY = e.touches[0].pageY;\r\n\r\n                offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\r\n                         (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\r\n                         (carousel && slider.currentSlide === slider.last) ? slider.limit :\r\n                         (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\r\n                         (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\r\n                startX = (vertical) ? localY : localX;\r\n                startY = (vertical) ? localX : localY;\r\n\r\n                el.addEventListener(\'touchmove\', onTouchMove, false);\r\n                el.addEventListener(\'touchend\', onTouchEnd, false);\r\n              }\r\n            }\r\n\r\n            function onTouchMove(e) {\r\n              // Local vars for X and Y points.\r\n\r\n              localX = e.touches[0].pageX;\r\n              localY = e.touches[0].pageY;\r\n\r\n              dx = (vertical) ? startX - localY : startX - localX;\r\n              scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));\r\n\r\n              var fxms = 500;\r\n\r\n              if ( ! scrolling || Number( new Date() ) - startT > fxms ) {\r\n                e.preventDefault();\r\n                if (!fade && slider.transitions) {\r\n                  if (!slider.vars.animationLoop) {\r\n                    dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);\r\n                  }\r\n                  slider.setProps(offset + dx, "setTouch");\r\n                }\r\n              }\r\n            }\r\n\r\n            function onTouchEnd(e) {\r\n              // finish the touch by undoing the touch session\r\n              el.removeEventListener(\'touchmove\', onTouchMove, false);\r\n\r\n              if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\r\n                var updateDx = (reverse) ? -dx : dx,\r\n                    target = (updateDx > 0) ? slider.getTarget(\'next\') : slider.getTarget(\'prev\');\r\n\r\n                if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {\r\n                  slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n                } else {\r\n                  if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);\r\n                }\r\n              }\r\n              el.removeEventListener(\'touchend\', onTouchEnd, false);\r\n\r\n              startX = null;\r\n              startY = null;\r\n              dx = null;\r\n              offset = null;\r\n            }\r\n        }else{\r\n            el.style.msTouchAction = "none";\r\n            el._gesture = new MSGesture();\r\n            el._gesture.target = el;\r\n            el.addEventListener("MSPointerDown", onMSPointerDown, false);\r\n            el._slider = slider;\r\n            el.addEventListener("MSGestureChange", onMSGestureChange, false);\r\n            el.addEventListener("MSGestureEnd", onMSGestureEnd, false);\r\n\r\n            function onMSPointerDown(e){\r\n                e.stopPropagation();\r\n                if (slider.animating) {\r\n                    e.preventDefault();\r\n                }else{\r\n                    slider.pause();\r\n                    el._gesture.addPointer(e.pointerId);\r\n                    accDx = 0;\r\n                    cwidth = (vertical) ? slider.h : slider. w;\r\n                    startT = Number(new Date());\r\n                    // CAROUSEL:\r\n\r\n                    offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\r\n                        (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\r\n                            (carousel && slider.currentSlide === slider.last) ? slider.limit :\r\n                                (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\r\n                                    (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\r\n                }\r\n            }\r\n\r\n            function onMSGestureChange(e) {\r\n                e.stopPropagation();\r\n                var slider = e.target._slider;\r\n                if(!slider){\r\n                    return;\r\n                }\r\n                var transX = -e.translationX,\r\n                    transY = -e.translationY;\r\n\r\n                //Accumulate translations.\r\n                accDx = accDx + ((vertical) ? transY : transX);\r\n                dx = accDx;\r\n                scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));\r\n\r\n                if(e.detail === e.MSGESTURE_FLAG_INERTIA){\r\n                    setImmediate(function (){\r\n                        el._gesture.stop();\r\n                    });\r\n\r\n                    return;\r\n                }\r\n\r\n                if (!scrolling || Number(new Date()) - startT > 500) {\r\n                    e.preventDefault();\r\n                    if (!fade && slider.transitions) {\r\n                        if (!slider.vars.animationLoop) {\r\n                            dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);\r\n                        }\r\n                        slider.setProps(offset + dx, "setTouch");\r\n                    }\r\n                }\r\n            }\r\n\r\n            function onMSGestureEnd(e) {\r\n                e.stopPropagation();\r\n                var slider = e.target._slider;\r\n                if(!slider){\r\n                    return;\r\n                }\r\n                if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\r\n                    var updateDx = (reverse) ? -dx : dx,\r\n                        target = (updateDx > 0) ? slider.getTarget(\'next\') : slider.getTarget(\'prev\');\r\n\r\n                    if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {\r\n                        slider.flexAnimate(target, slider.vars.pauseOnAction);\r\n                    } else {\r\n                        if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);\r\n                    }\r\n                }\r\n\r\n                startX = null;\r\n                startY = null;\r\n                dx = null;\r\n                offset = null;\r\n                accDx = 0;\r\n            }\r\n        }\r\n      },\r\n      resize: function() {\r\n        if (!slider.animating && slider.is(\':visible\')) {\r\n          if (!carousel) slider.doMath();\r\n\r\n          if (fade) {\r\n            // SMOOTH HEIGHT:\r\n            methods.smoothHeight();\r\n          } else if (carousel) { //CAROUSEL:\r\n            slider.slides.width(slider.computedW);\r\n            slider.update(slider.pagingCount);\r\n            slider.setProps();\r\n          }\r\n          else if (vertical) { //VERTICAL:\r\n            slider.viewport.height(slider.h);\r\n            slider.setProps(slider.h, "setTotal");\r\n          } else {\r\n            // SMOOTH HEIGHT:\r\n            if (slider.vars.smoothHeight) methods.smoothHeight();\r\n            slider.newSlides.width(slider.computedW);\r\n            slider.setProps(slider.computedW, "setTotal");\r\n          }\r\n        }\r\n      },\r\n      smoothHeight: function(dur) {\r\n        if (!vertical || fade) {\r\n          var $obj = (fade) ? slider : slider.viewport;\r\n          (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());\r\n        }\r\n      },\r\n      sync: function(action) {\r\n        var $obj = $(slider.vars.sync).data("flexslider"),\r\n            target = slider.animatingTo;\r\n\r\n        switch (action) {\r\n          case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;\r\n          case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;\r\n          case "pause": $obj.pause(); break;\r\n        }\r\n      },\r\n      uniqueID: function($clone) {\r\n        // Append _clone to current level and children elements with id attributes\r\n        $clone.filter( \'[id]\' ).add($clone.find( \'[id]\' )).each(function() {\r\n          var $this = $(this);\r\n          $this.attr( \'id\', $this.attr( \'id\' ) + \'_clone\' );\r\n        });\r\n        return $clone;\r\n      },\r\n      pauseInvisible: {\r\n        visProp: null,\r\n        init: function() {\r\n          var prefixes = [\'webkit\',\'moz\',\'ms\',\'o\'];\r\n\r\n          if (\'hidden\' in document) return \'hidden\';\r\n          for (var i = 0; i < prefixes.length; i++) {\r\n            if ((prefixes[i] + \'Hidden\') in document)\r\n            methods.pauseInvisible.visProp = prefixes[i] + \'Hidden\';\r\n          }\r\n          if (methods.pauseInvisible.visProp) {\r\n            var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,\'\') + \'visibilitychange\';\r\n            document.addEventListener(evtname, function() {\r\n              if (methods.pauseInvisible.isHidden()) {\r\n                if(slider.startTimeout) clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible\r\n                else slider.pause(); //Or just pause\r\n              }\r\n              else {\r\n                if(slider.started) slider.play(); //Initiated before, just play\r\n                else (slider.vars.initDelay > 0) ? setTimeout(slider.play, slider.vars.initDelay) : slider.play(); //Didn\'t init before: simply init or wait for it\r\n              }\r\n            });\r\n          }\r\n        },\r\n        isHidden: function() {\r\n          return document[methods.pauseInvisible.visProp] || false;\r\n        }\r\n      },\r\n      setToClearWatchedEvent: function() {\r\n        clearTimeout(watchedEventClearTimer);\r\n        watchedEventClearTimer = setTimeout(function() {\r\n          watchedEvent = "";\r\n        }, 3000);\r\n      }\r\n    };\r\n\r\n    // public methods\r\n    slider.flexAnimate = function(target, pause, override, withSync, fromNav) {\r\n      if (!slider.vars.animationLoop && target !== slider.currentSlide) {\r\n        slider.direction = (target > slider.currentSlide) ? "next" : "prev";\r\n      }\r\n\r\n      if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";\r\n\r\n      if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {\r\n        if (asNav && withSync) {\r\n          var master = $(slider.vars.asNavFor).data(\'flexslider\');\r\n          slider.atEnd = target === 0 || target === slider.count - 1;\r\n          master.flexAnimate(target, true, false, true, fromNav);\r\n          slider.direction = (slider.currentItem < target) ? "next" : "prev";\r\n          master.direction = slider.direction;\r\n\r\n          if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {\r\n            slider.currentItem = target;\r\n            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");\r\n            target = Math.floor(target/slider.visible);\r\n          } else {\r\n            slider.currentItem = target;\r\n            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");\r\n            return false;\r\n          }\r\n        }\r\n\r\n        slider.animating = true;\r\n        slider.animatingTo = target;\r\n\r\n        // SLIDESHOW:\r\n        if (pause) slider.pause();\r\n\r\n        // API: before() animation Callback\r\n        slider.vars.before(slider);\r\n\r\n        // SYNC:\r\n        if (slider.syncExists && !fromNav) methods.sync("animate");\r\n\r\n        // CONTROLNAV\r\n        if (slider.vars.controlNav) methods.controlNav.active();\r\n\r\n        // !CAROUSEL:\r\n        // CANDIDATE: slide active class (for add/remove slide)\r\n        if (!carousel) slider.slides.removeClass(namespace + \'active-slide\').eq(target).addClass(namespace + \'active-slide\');\r\n\r\n        // INFINITE LOOP:\r\n        // CANDIDATE: atEnd\r\n        slider.atEnd = target === 0 || target === slider.last;\r\n\r\n        // DIRECTIONNAV:\r\n        if (slider.vars.directionNav) methods.directionNav.update();\r\n\r\n        if (target === slider.last) {\r\n          // API: end() of cycle Callback\r\n          slider.vars.end(slider);\r\n          // SLIDESHOW && !INFINITE LOOP:\r\n          if (!slider.vars.animationLoop) slider.pause();\r\n        }\r\n\r\n        // SLIDE:\r\n        if (!fade) {\r\n          var dimension = (vertical) ? slider.slides.filter(\':first\').height() : slider.computedW,\r\n              margin, slideString, calcNext;\r\n\r\n          // INFINITE LOOP / REVERSE:\r\n          if (carousel) {\r\n            //margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;\r\n            margin = slider.vars.itemMargin;\r\n            calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;\r\n            slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;\r\n          } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {\r\n            slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;\r\n          } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {\r\n            slideString = (reverse) ? 0 : (slider.count + 1) * dimension;\r\n          } else {\r\n            slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;\r\n          }\r\n          slider.setProps(slideString, "", slider.vars.animationSpeed);\r\n          if (slider.transitions) {\r\n            if (!slider.vars.animationLoop || !slider.atEnd) {\r\n              slider.animating = false;\r\n              slider.currentSlide = slider.animatingTo;\r\n            }\r\n            \r\n            // Unbind previous transitionEnd events and re-bind new transitionEnd event\r\n            slider.container.unbind("webkitTransitionEnd transitionend");\r\n            slider.container.bind("webkitTransitionEnd transitionend", function() {\r\n              clearTimeout(slider.ensureAnimationEnd);\r\n              slider.wrapup(dimension);\r\n            });\r\n\r\n            // Insurance for the ever-so-fickle transitionEnd event\r\n            clearTimeout(slider.ensureAnimationEnd);\r\n            slider.ensureAnimationEnd = setTimeout(function() {\r\n              slider.wrapup(dimension);\r\n            }, slider.vars.animationSpeed + 100);\r\n\r\n          } else {\r\n            slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){\r\n              slider.wrapup(dimension);\r\n            });\r\n          }\r\n        } else { // FADE:\r\n          if (!touch) {\r\n            //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);\r\n            //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\r\n\r\n            slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);\r\n            slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\r\n\r\n          } else {\r\n            slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });\r\n            slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });\r\n            slider.wrapup(dimension);\r\n          }\r\n        }\r\n        // SMOOTH HEIGHT:\r\n        if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);\r\n      }\r\n    };\r\n    slider.wrapup = function(dimension) {\r\n      // SLIDE:\r\n      if (!fade && !carousel) {\r\n        if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {\r\n          slider.setProps(dimension, "jumpEnd");\r\n        } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {\r\n          slider.setProps(dimension, "jumpStart");\r\n        }\r\n      }\r\n      slider.animating = false;\r\n      slider.currentSlide = slider.animatingTo;\r\n      // API: after() animation Callback\r\n      slider.vars.after(slider);\r\n    };\r\n\r\n    // SLIDESHOW:\r\n    slider.animateSlides = function() {\r\n      if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget("next"));\r\n    };\r\n    // SLIDESHOW:\r\n    slider.pause = function() {\r\n      clearInterval(slider.animatedSlides);\r\n      slider.animatedSlides = null;\r\n      slider.playing = false;\r\n      // PAUSEPLAY:\r\n      if (slider.vars.pausePlay) methods.pausePlay.update("play");\r\n      // SYNC:\r\n      if (slider.syncExists) methods.sync("pause");\r\n    };\r\n    // SLIDESHOW:\r\n    slider.play = function() {\r\n      if (slider.playing) clearInterval(slider.animatedSlides);\r\n      slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);\r\n      slider.started = slider.playing = true;\r\n      // PAUSEPLAY:\r\n      if (slider.vars.pausePlay) methods.pausePlay.update("pause");\r\n      // SYNC:\r\n      if (slider.syncExists) methods.sync("play");\r\n    };\r\n    // STOP:\r\n    slider.stop = function () {\r\n      slider.pause();\r\n      slider.stopped = true;\r\n    };\r\n    slider.canAdvance = function(target, fromNav) {\r\n      // ASNAV:\r\n      var last = (asNav) ? slider.pagingCount - 1 : slider.last;\r\n      return (fromNav) ? true :\r\n             (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :\r\n             (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :\r\n             (target === slider.currentSlide && !asNav) ? false :\r\n             (slider.vars.animationLoop) ? true :\r\n             (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :\r\n             (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :\r\n             true;\r\n    };\r\n    slider.getTarget = function(dir) {\r\n      slider.direction = dir;\r\n      if (dir === "next") {\r\n        return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;\r\n      } else {\r\n        return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;\r\n      }\r\n    };\r\n\r\n    // SLIDE:\r\n    slider.setProps = function(pos, special, dur) {\r\n      var target = (function() {\r\n        var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,\r\n            posCalc = (function() {\r\n              if (carousel) {\r\n                return (special === "setTouch") ? pos :\r\n                       (reverse && slider.animatingTo === slider.last) ? 0 :\r\n                       (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\r\n                       (slider.animatingTo === slider.last) ? slider.limit : posCheck;\r\n              } else {\r\n                switch (special) {\r\n                  case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;\r\n                  case "setTouch": return (reverse) ? pos : pos;\r\n                  case "jumpEnd": return (reverse) ? pos : slider.count * pos;\r\n                  case "jumpStart": return (reverse) ? slider.count * pos : pos;\r\n                  default: return pos;\r\n                }\r\n              }\r\n            }());\r\n\r\n            return (posCalc * -1) + "px";\r\n          }());\r\n\r\n      if (slider.transitions) {\r\n        target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";\r\n        dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";\r\n        slider.container.css("-" + slider.pfx + "-transition-duration", dur);\r\n         slider.container.css("transition-duration", dur);\r\n      }\r\n\r\n      slider.args[slider.prop] = target;\r\n      if (slider.transitions || dur === undefined) slider.container.css(slider.args);\r\n\r\n      slider.container.css(\'transform\',target);\r\n    };\r\n\r\n    slider.setup = function(type) {\r\n      // SLIDE:\r\n      if (!fade) {\r\n        var sliderOffset, arr;\r\n\r\n        if (type === "init") {\r\n          slider.viewport = $(\'<div class="\' + namespace + \'viewport"></div>\').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);\r\n          // INFINITE LOOP:\r\n          slider.cloneCount = 0;\r\n          slider.cloneOffset = 0;\r\n          // REVERSE:\r\n          if (reverse) {\r\n            arr = $.makeArray(slider.slides).reverse();\r\n            slider.slides = $(arr);\r\n            slider.container.empty().append(slider.slides);\r\n          }\r\n        }\r\n        // INFINITE LOOP && !CAROUSEL:\r\n        if (slider.vars.animationLoop && !carousel) {\r\n          slider.cloneCount = 2;\r\n          slider.cloneOffset = 1;\r\n          // clear out old clones\r\n          if (type !== "init") slider.container.find(\'.clone\').remove();\r\n          slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass(\'clone\')).attr(\'aria-hidden\', \'true\'))\r\n                          .prepend(methods.uniqueID(slider.slides.last().clone().addClass(\'clone\')).attr(\'aria-hidden\', \'true\'));\r\n        }\r\n        slider.newSlides = $(slider.vars.selector, slider);\r\n\r\n        sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;\r\n        // VERTICAL:\r\n        if (vertical && !carousel) {\r\n          slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");\r\n          setTimeout(function(){\r\n            slider.newSlides.css({"display": "block"});\r\n            slider.doMath();\r\n            slider.viewport.height(slider.h);\r\n            slider.setProps(sliderOffset * slider.h, "init");\r\n          }, (type === "init") ? 100 : 0);\r\n        } else {\r\n          slider.container.width((slider.count + slider.cloneCount) * 200 + "%");\r\n          slider.setProps(sliderOffset * slider.computedW, "init");\r\n          setTimeout(function(){\r\n            slider.doMath();\r\n            slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});\r\n            // SMOOTH HEIGHT:\r\n            if (slider.vars.smoothHeight) methods.smoothHeight();\r\n          }, (type === "init") ? 100 : 0);\r\n        }\r\n      } else { // FADE:\r\n        slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});\r\n        if (type === "init") {\r\n          if (!touch) {\r\n            //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);\r\n            if (slider.vars.fadeFirstSlide == false) {\r\n              slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1});\r\n            } else {\r\n              slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);\r\n            }\r\n          } else {\r\n            slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});\r\n          }\r\n        }\r\n        // SMOOTH HEIGHT:\r\n        if (slider.vars.smoothHeight) methods.smoothHeight();\r\n      }\r\n      // !CAROUSEL:\r\n      // CANDIDATE: active slide\r\n      if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");\r\n\r\n      //FlexSlider: init() Callback\r\n      slider.vars.init(slider);\r\n    };\r\n\r\n    slider.doMath = function() {\r\n      var slide = slider.slides.first(),\r\n          slideMargin = slider.vars.itemMargin,\r\n          minItems = slider.vars.minItems,\r\n          maxItems = slider.vars.maxItems;\r\n\r\n      slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();\r\n      slider.h = slide.height();\r\n      slider.boxPadding = slide.outerWidth() - slide.width();\r\n\r\n      // CAROUSEL:\r\n      if (carousel) {\r\n        slider.itemT = slider.vars.itemWidth + slideMargin;\r\n        slider.minW = (minItems) ? minItems * slider.itemT : slider.w;\r\n        slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;\r\n        slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :\r\n                       (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :\r\n                       (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;\r\n\r\n        slider.visible = Math.floor(slider.w/(slider.itemW));\r\n        slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;\r\n        slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);\r\n        slider.last =  slider.pagingCount - 1;\r\n        slider.limit = (slider.pagingCount === 1) ? 0 :\r\n                       (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;\r\n      } else {\r\n        slider.itemW = slider.w;\r\n        slider.pagingCount = slider.count;\r\n        slider.last = slider.count - 1;\r\n      }\r\n      slider.computedW = slider.itemW - slider.boxPadding;\r\n    };\r\n\r\n    slider.update = function(pos, action) {\r\n      slider.doMath();\r\n\r\n      // update currentSlide and slider.animatingTo if necessary\r\n      if (!carousel) {\r\n        if (pos < slider.currentSlide) {\r\n          slider.currentSlide += 1;\r\n        } else if (pos <= slider.currentSlide && pos !== 0) {\r\n          slider.currentSlide -= 1;\r\n        }\r\n        slider.animatingTo = slider.currentSlide;\r\n      }\r\n\r\n      // update controlNav\r\n      if (slider.vars.controlNav && !slider.manualControls) {\r\n        if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {\r\n          methods.controlNav.update("add");\r\n        } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {\r\n          if (carousel && slider.currentSlide > slider.last) {\r\n            slider.currentSlide -= 1;\r\n            slider.animatingTo -= 1;\r\n          }\r\n          methods.controlNav.update("remove", slider.last);\r\n        }\r\n      }\r\n      // update directionNav\r\n      if (slider.vars.directionNav) methods.directionNav.update();\r\n\r\n    };\r\n\r\n    slider.addSlide = function(obj, pos) {\r\n      var $obj = $(obj);\r\n\r\n      slider.count += 1;\r\n      slider.last = slider.count - 1;\r\n\r\n      // append new slide\r\n      if (vertical && reverse) {\r\n        (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);\r\n      } else {\r\n        (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);\r\n      }\r\n\r\n      // update currentSlide, animatingTo, controlNav, and directionNav\r\n      slider.update(pos, "add");\r\n\r\n      // update slider.slides\r\n      slider.slides = $(slider.vars.selector + \':not(.clone)\', slider);\r\n      // re-setup the slider to accomdate new slide\r\n      slider.setup();\r\n\r\n      //FlexSlider: added() Callback\r\n      slider.vars.added(slider);\r\n    };\r\n    slider.removeSlide = function(obj) {\r\n      var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;\r\n\r\n      // update count\r\n      slider.count -= 1;\r\n      slider.last = slider.count - 1;\r\n\r\n      // remove slide\r\n      if (isNaN(obj)) {\r\n        $(obj, slider.slides).remove();\r\n      } else {\r\n        (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();\r\n      }\r\n\r\n      // update currentSlide, animatingTo, controlNav, and directionNav\r\n      slider.doMath();\r\n      slider.update(pos, "remove");\r\n\r\n      // update slider.slides\r\n      slider.slides = $(slider.vars.selector + \':not(.clone)\', slider);\r\n      // re-setup the slider to accomdate new slide\r\n      slider.setup();\r\n\r\n      // FlexSlider: removed() Callback\r\n      slider.vars.removed(slider);\r\n    };\r\n\r\n    //FlexSlider: Initialize\r\n    methods.init();\r\n  };\r\n\r\n  // Ensure the slider isn\'t focussed if the window loses focus.\r\n  $( window ).blur( function ( e ) {\r\n    focused = false;\r\n  }).focus( function ( e ) {\r\n    focused = true;\r\n  });\r\n\r\n  //FlexSlider: Default Settings\r\n  $.flexslider.defaults = {\r\n    namespace: "flex-",             //{NEW} String: Prefix string attached to the class of every element generated by the plugin\r\n    selector: ".slides > li",       //{NEW} Selector: Must match a simple pattern. \'{container} > {slide}\' -- Ignore pattern at your own peril\r\n    animation: "fade",              //String: Select your animation type, "fade" or "slide"\r\n    easing: "swing",                //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!\r\n    direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"\r\n    reverse: false,                 //{NEW} Boolean: Reverse the animation direction\r\n    animationLoop: true,            //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end\r\n    smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode\r\n    startAt: 0,                     //Integer: The slide that the slider should start on. Array notation (0 = first slide)\r\n    slideshow: true,                //Boolean: Animate slider automatically\r\n    slideshowSpeed: 7000,           //Integer: Set the speed of the slideshow cycling, in milliseconds\r\n    animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds\r\n    initDelay: 0,                   //{NEW} Integer: Set an initialization delay, in milliseconds\r\n    randomize: false,               //Boolean: Randomize slide order\r\n    fadeFirstSlide: true,           //Boolean: Fade in the first slide when animation type is "fade"\r\n    thumbCaptions: false,           //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.\r\n\r\n    // Usability features\r\n    pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.\r\n    pauseOnHover: false,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering\r\n    pauseInvisible: true,   \t\t//{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.\r\n    useCSS: true,                   //{NEW} Boolean: Slider will use CSS3 transitions if available\r\n    touch: true,                    //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices\r\n    video: false,                   //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches\r\n\r\n    // Primary Controls\r\n    controlNav: true,               //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage\r\n    directionNav: true,             //Boolean: Create navigation for previous/next navigation? (true/false)\r\n    prevText: "Previous",           //String: Set the text for the "previous" directionNav item\r\n    nextText: "Next",               //String: Set the text for the "next" directionNav item\r\n\r\n    // Secondary Navigation\r\n    keyboard: true,                 //Boolean: Allow slider navigating via keyboard left/right keys\r\n    multipleKeyboard: false,        //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.\r\n    mousewheel: false,              //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel\r\n    pausePlay: false,               //Boolean: Create pause/play dynamic element\r\n    pauseText: "Pause",             //String: Set the text for the "pause" pausePlay item\r\n    playText: "Play",               //String: Set the text for the "play" pausePlay item\r\n\r\n    // Special properties\r\n    controlsContainer: "",          //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.\r\n    manualControls: "",             //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.\r\n    sync: "",                       //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.\r\n    asNavFor: "",                   //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider\r\n\r\n    // Carousel Options\r\n    itemWidth: 0,                   //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.\r\n    itemMargin: 0,                  //{NEW} Integer: Margin between carousel items.\r\n    minItems: 1,                    //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.\r\n    maxItems: 0,                    //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.\r\n    move: 0,                        //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.\r\n    allowOneSlide: true,           //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide\r\n\r\n    // Callback API\r\n    start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide\r\n    before: function(){},           //Callback: function(slider) - Fires asynchronously with each slider animation\r\n    after: function(){},            //Callback: function(slider) - Fires after each slider animation completes\r\n    end: function(){},              //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)\r\n    added: function(){},            //{NEW} Callback: function(slider) - Fires after a slide is added\r\n    removed: function(){},           //{NEW} Callback: function(slider) - Fires after a slide is removed\r\n    init: function() {}             //{NEW} Callback: function(slider) - Fires after the slider is initially setup\r\n  };\r\n\r\n  //FlexSlider: Plugin Function\r\n  $.fn.flexslider = function(options) {\r\n    if (options === undefined) options = {};\r\n\r\n    if (typeof options === "object") {\r\n      return this.each(function() {\r\n        var $this = $(this),\r\n            selector = (options.selector) ? options.selector : ".slides > li",\r\n            $slides = $this.find(selector);\r\n\r\n      if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {\r\n          $slides.fadeIn(400);\r\n          if (options.start) options.start($this);\r\n        } else if ($this.data(\'flexslider\') === undefined) {\r\n          new $.flexslider(this, options);\r\n        }\r\n      });\r\n    } else {\r\n      // Helper strings to quickly perform functions on the slider\r\n      var $slider = $(this).data(\'flexslider\');\r\n      switch (options) {\r\n        case "play": $slider.play(); break;\r\n        case "pause": $slider.pause(); break;\r\n        case "stop": $slider.stop(); break;\r\n        case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;\r\n        case "prev":\r\n        case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;\r\n        default: if (typeof options === "number") $slider.flexAnimate(options, true);\r\n      }\r\n    }\r\n  };\r\n})(jQuery);\r\n'},function(t,e,n){n(0)(n(88)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/jquery.superslides.js")},function(t,e){t.exports="/*! Superslides - v0.6.2 - 2013-07-10\r\n* https://github.com/nicinabox/superslides\r\n* Copyright (c) 2013 Nic Aitch; Licensed MIT */\r\n(function (window, $) {\r\n\r\n  var Superslides, plugin = 'superslides';\r\n\r\n  Superslides = function (el, options) {\r\n    this.options = $.extend({\r\n      play: false,\r\n      height:0,\r\n      animation_speed: 600,\r\n      animation_easing: 'swing',\r\n      animation: 'slide',\r\n      inherit_width_from: window,\r\n      inherit_height_from: window,\r\n      pagination: true,\r\n      hashchange: false,\r\n      scrollable: true,\r\n      elements: {\r\n        preserve: '.preserve',\r\n        nav: '.slides-navigation',\r\n        container: '.slides-container',\r\n        pagination: '.slides-pagination'\r\n      }\r\n    }, options);\r\n\r\n    \r\n    var that = this,\r\n        $control = $('<div>', { \"class\": 'slides-control' }),\r\n        multiplier = 1;\r\n\r\n    this.$el = $(el);\r\n    this.$container = this.$el.find(this.options.elements.container);\r\n\r\n    // Private Methods\r\n    var initialize = function () {\r\n      multiplier = that._findMultiplier();\r\n\r\n      that.$el.on('click', that.options.elements.nav + \" a\", function (e) {\r\n        e.preventDefault();\r\n\r\n        that.stop();\r\n        if ($(this).hasClass('next')) {\r\n          that.animate('next', function () {\r\n            that.start();\r\n          });\r\n        } else {\r\n          that.animate('prev', function () {\r\n            that.start();\r\n          });\r\n        }\r\n      });\r\n\r\n      $(document).on('keyup', function (e) {\r\n        if (e.keyCode === 37) {\r\n          that.animate('prev');\r\n        }\r\n        if (e.keyCode === 39) {\r\n          that.animate('next');\r\n        }\r\n      });\r\n\r\n      $(window).on('resize', function () {\r\n        setTimeout(function () {\r\n          var $children = that.$container.children();\r\n\r\n          that.width = that._findWidth();\r\n          that.height = that._findHeight();\r\n\r\n          $children.css({\r\n            width: that.width,\r\n            left: that.width\r\n          });\r\n\r\n          that.css.containers();\r\n          that.css.images();\r\n        }, 10);\r\n      });\r\n\r\n      $(window).on('hashchange', function () {\r\n        var hash = that._parseHash(), index;\r\n\r\n        if (hash && !isNaN(hash)) {\r\n          // Minus 1 here because we don't want the url\r\n          // to be zero-indexed\r\n          index = that._upcomingSlide(hash - 1);\r\n\r\n        } else {\r\n          index = that._upcomingSlide(hash);\r\n        }\r\n\r\n        if (index >= 0 && index !== that.current) {\r\n          that.animate(index);\r\n        }\r\n      });\r\n\r\n      that.pagination._events();\r\n\r\n      that.start();\r\n      return that;\r\n    };\r\n\r\n    var css = {\r\n      containers: function () {\r\n        if (that.init) {\r\n          that.$el.css({\r\n            height: that.height\r\n          });\r\n\r\n          that.$control.css({\r\n            width: that.width * multiplier,\r\n            left: -that.width\r\n          });\r\n\r\n          that.$container.css({\r\n\r\n          });\r\n        } else {\r\n          $('body').css({\r\n            margin: 0\r\n          });\r\n\r\n          that.$el.css({\r\n            position: 'relative',\r\n            overflow: 'hidden',\r\n            width: '100%',\r\n            height: that.height\r\n          });\r\n\r\n          that.$control.css({\r\n            position: 'relative',\r\n            transform: 'translate3d(0)',\r\n            height: '100%',\r\n            width: that.width * multiplier,\r\n            left: -that.width\r\n          });\r\n\r\n          that.$container.css({\r\n            display: 'none',\r\n            margin: '0',\r\n            padding: '0',\r\n            listStyle: 'none',\r\n            position: 'relative',\r\n            height: '100%'\r\n          });\r\n        }\r\n\r\n        if (that.size() === 1) {\r\n          that.$el.find(that.options.elements.nav).hide();\r\n        }\r\n      },\r\n      images: function () {\r\n        var $images = that.$container.find('img')\r\n                                     .not(that.options.elements.preserve)\r\n\r\n        $images.removeAttr('width').removeAttr('height')\r\n          .css({\r\n            \"-webkit-backface-visibility\": 'hidden',\r\n            \"-ms-interpolation-mode\": 'bicubic',\r\n            \"position\": 'absolute',\r\n            \"left\": '0',\r\n            \"top\": '0',\r\n            \"z-index\": '-1',\r\n            \"max-width\": 'none'\r\n          });\r\n\r\n        $images.each(function () {\r\n          var image_aspect_ratio = that.image._aspectRatio(this),\r\n              image = this;\r\n\r\n          if (!$.data(this, 'processed')) {\r\n            var img = new Image();\r\n            img.onload = function () {\r\n              that.image._scale(image, image_aspect_ratio);\r\n              that.image._center(image, image_aspect_ratio);\r\n              $.data(image, 'processed', true);\r\n            };\r\n            img.src = this.src;\r\n\r\n          } else {\r\n            that.image._scale(image, image_aspect_ratio);\r\n            that.image._center(image, image_aspect_ratio);\r\n          }\r\n        });\r\n      },\r\n      children: function () {\r\n        var $children = that.$container.children();\r\n\r\n        if ($children.is('img')) {\r\n          $children.each(function () {\r\n            if ($(this).is('img')) {\r\n              $(this).wrap('<div>');\r\n\r\n              // move id attribute\r\n              var id = $(this).attr('id');\r\n              $(this).removeAttr('id');\r\n              $(this).parent().attr('id', id);\r\n            }\r\n          });\r\n\r\n          $children = that.$container.children();\r\n        }\r\n\r\n        if (!that.init) {\r\n          $children.css({\r\n            display: 'none',\r\n            left: that.width * 2\r\n          });\r\n        }\r\n\r\n        $children.css({\r\n          position: 'absolute',\r\n          overflow: 'hidden',\r\n          height: '100%',\r\n          width: that.width,\r\n          top: 0,\r\n          zIndex: 0\r\n        });\r\n\r\n      }\r\n    }\r\n\r\n    var fx = {\r\n      slide: function (orientation, complete) {\r\n        var $children = that.$container.children(),\r\n            $target = $children.eq(orientation.upcoming_slide);\r\n\r\n        $target.css({\r\n          left: orientation.upcoming_position,\r\n          display: 'block'\r\n        });\r\n\r\n        that.$control.animate({\r\n          left: orientation.offset\r\n        },\r\n        that.options.animation_speed,\r\n        that.options.animation_easing,\r\n        function () {\r\n          if (that.size() > 1) {\r\n            that.$control.css({\r\n              left: -that.width\r\n            });\r\n\r\n            $children.eq(orientation.upcoming_slide).css({\r\n              left: that.width,\r\n              zIndex: 2\r\n            });\r\n\r\n            if (orientation.outgoing_slide >= 0) {\r\n              $children.eq(orientation.outgoing_slide).css({\r\n                left: that.width,\r\n                display: 'none',\r\n                zIndex: 0\r\n              });\r\n            }\r\n          }\r\n\r\n          complete();\r\n        });\r\n      },\r\n      fade: function (orientation, complete) {\r\n        var that = this,\r\n            $children = that.$container.children(),\r\n            $outgoing = $children.eq(orientation.outgoing_slide),\r\n            $target = $children.eq(orientation.upcoming_slide);\r\n\r\n        $target.css({\r\n          left: this.width,\r\n          opacity: 1,\r\n          display: 'block'\r\n        });\r\n\r\n        if (orientation.outgoing_slide >= 0) {\r\n          $outgoing.animate({\r\n            opacity: 0\r\n          },\r\n          that.options.animation_speed,\r\n          that.options.animation_easing,\r\n          function () {\r\n            if (that.size() > 1) {\r\n              $children.eq(orientation.upcoming_slide).css({\r\n                zIndex: 2\r\n              });\r\n\r\n              if (orientation.outgoing_slide >= 0) {\r\n                $children.eq(orientation.outgoing_slide).css({\r\n                  opacity: 1,\r\n                  display: 'none',\r\n                  zIndex: 0\r\n                });\r\n              }\r\n            }\r\n\r\n            complete();\r\n          });\r\n        } else {\r\n          $target.css({\r\n            zIndex: 2\r\n          });\r\n          complete();\r\n        }\r\n      }\r\n    };\r\n\r\n    fx = $.extend(fx, $.fn.superslides.fx);\r\n\r\n    var image = {\r\n      _centerY: function (image) {\r\n        var $img = $(image);\r\n\r\n        $img.css({\r\n          top: (that.height - $img.height()) / 2\r\n        });\r\n      },\r\n      _centerX: function (image) {\r\n        var $img = $(image);\r\n\r\n        $img.css({\r\n          left: (that.width - $img.width()) / 2\r\n        });\r\n      },\r\n      _center: function (image) {\r\n        that.image._centerX(image);\r\n        that.image._centerY(image);\r\n      },\r\n      _aspectRatio: function (image) {\r\n        if (!image.naturalHeight && !image.naturalWidth) {\r\n          var img = new Image();\r\n          img.src = image.src;\r\n          image.naturalHeight = img.height;\r\n          image.naturalWidth = img.width;\r\n        }\r\n\r\n        return image.naturalHeight / image.naturalWidth;\r\n      },\r\n      _scale: function (image, image_aspect_ratio) {\r\n        image_aspect_ratio = image_aspect_ratio || that.image._aspectRatio(image);\r\n\r\n        var container_aspect_ratio = that.height / that.width,\r\n            $img = $(image);\r\n\r\n        if (container_aspect_ratio > image_aspect_ratio) {\r\n          $img.css({\r\n            height: that.height,\r\n            width: that.height / image_aspect_ratio\r\n          });\r\n\r\n        } else {\r\n          $img.css({\r\n            height: that.width * image_aspect_ratio,\r\n            width: that.width\r\n          });\r\n        }\r\n      }\r\n    };\r\n\r\n    var pagination = {\r\n      _setCurrent: function (i) {\r\n        if (!that.$pagination) { return; }\r\n\r\n        var $pagination_children = that.$pagination.children();\r\n\r\n        $pagination_children.removeClass('current');\r\n        $pagination_children.eq(i)\r\n          .addClass('current');\r\n      },\r\n      _addItem: function (i) {\r\n        var slide_number = i + 1,\r\n            href = slide_number,\r\n            $slide = that.$container.children().eq(i),\r\n            slide_id = $slide.attr('id');\r\n\r\n        if (slide_id) {\r\n          href = slide_id;\r\n        }\r\n\r\n        var $item = $(\"<a>\", {\r\n          'href': \"#\" + href,\r\n          'text': href\r\n        });\r\n\r\n        $item.appendTo(that.$pagination);\r\n      },\r\n      _setup: function () {\r\n        if (!that.options.pagination || that.size() === 1) { return; }\r\n\r\n        var $pagination = $(\"<nav>\", {\r\n          'class': that.options.elements.pagination.replace(/^\\./, '')\r\n        });\r\n\r\n        that.$pagination = $pagination.appendTo(that.$el);\r\n\r\n        for (var i = 0; i < that.size() ; i++) {\r\n          that.pagination._addItem(i);\r\n        }\r\n      },\r\n      _events: function () {\r\n        that.$el.on('click', that.options.elements.pagination + ' a', function (e) {\r\n          e.preventDefault();\r\n\r\n          var hash = that._parseHash(this.hash),\r\n              index = that._upcomingSlide(hash - 1);\r\n\r\n          if (index !== that.current) {\r\n            that.animate(index, function () {\r\n              that.start();\r\n            });\r\n          }\r\n        });\r\n      }\r\n    };\r\n\r\n    this.css = css;\r\n    this.image = image;\r\n    this.pagination = pagination;\r\n    this.fx = fx;\r\n    this.animation = this.fx[this.options.animation];\r\n\r\n    this.$control = this.$container.wrap($control).parent('.slides-control');\r\n\r\n    that._findPositions();\r\n    that.width = that._findWidth();\r\n    that.height = that._findHeight();\r\n\r\n    this.css.children();\r\n    this.css.containers();\r\n    this.css.images();\r\n    this.pagination._setup();\r\n\r\n    return initialize();\r\n  };\r\n\r\n  Superslides.prototype = {\r\n    _findWidth: function () {\r\n      return $(this.options.inherit_width_from).width();\r\n    },\r\n    _findHeight: function () {\r\n      return $(this.options.inherit_height_from).height() - this.options.height; //HSJ: Change height of visible content below module \r\n    },\r\n\r\n    _findMultiplier: function () {\r\n      return this.size() === 1 ? 1 : 3;\r\n    },\r\n\r\n    _upcomingSlide: function (direction) {\r\n      if ((/next/).test(direction)) {\r\n        return this._nextInDom();\r\n\r\n      } else if ((/prev/).test(direction)) {\r\n        return this._prevInDom();\r\n\r\n      } else if ((/\\d/).test(direction)) {\r\n        return +direction;\r\n\r\n      } else if (direction && (/\\w/).test(direction)) {\r\n        var index = this._findSlideById(direction);\r\n        if (index >= 0) {\r\n          return index;\r\n        } else {\r\n          return 0;\r\n        }\r\n\r\n      } else {\r\n        return 0;\r\n      }\r\n    },\r\n\r\n    _findSlideById: function (id) {\r\n      return this.$container.find('#' + id).index();\r\n    },\r\n\r\n    _findPositions: function (current, thisRef) {\r\n      thisRef = thisRef || this;\r\n\r\n      if (current === undefined) {\r\n        current = -1;\r\n      }\r\n\r\n      thisRef.current = current;\r\n      thisRef.next = thisRef._nextInDom();\r\n      thisRef.prev = thisRef._prevInDom();\r\n    },\r\n\r\n    _nextInDom: function () {\r\n      var index = this.current + 1;\r\n\r\n      if (index === this.size()) {\r\n        index = 0;\r\n      }\r\n\r\n      return index;\r\n    },\r\n\r\n    _prevInDom: function () {\r\n      var index = this.current - 1;\r\n\r\n      if (index < 0) {\r\n        index = this.size() - 1;\r\n      }\r\n\r\n      return index;\r\n    },\r\n\r\n    _parseHash: function (hash) {\r\n      hash = hash || window.location.hash;\r\n      hash = hash.replace(/^#/, '');\r\n\r\n      if (hash && !isNaN(+hash)) {\r\n        hash = +hash;\r\n      }\r\n\r\n      return hash;\r\n    },\r\n\r\n    size: function () {\r\n      return this.$container.children().length;\r\n    },\r\n\r\n    destroy: function () {\r\n      return this.$el.removeData();\r\n    },\r\n\r\n    update: function () {\r\n      this.css.children();\r\n      this.css.containers();\r\n      this.css.images();\r\n\r\n      this.pagination._addItem(this.size())\r\n\r\n      this._findPositions(this.current);\r\n      this.$el.trigger('updated.slides');\r\n    },\r\n\r\n    stop: function () {\r\n      clearInterval(this.play_id);\r\n      delete this.play_id;\r\n\r\n      this.$el.trigger('stopped.slides');\r\n    },\r\n\r\n    start: function () {\r\n      var that = this;\r\n\r\n      if (that.options.hashchange) {\r\n        $(window).trigger('hashchange');\r\n      } else {\r\n        this.animate();\r\n      }\r\n\r\n      if (this.options.play) {\r\n        if (this.play_id) {\r\n          this.stop();\r\n        }\r\n\r\n        this.play_id = setInterval(function () {\r\n          that.animate();\r\n        }, this.options.play);\r\n      }\r\n\r\n      this.$el.trigger('started.slides');\r\n    },\r\n\r\n    animate: function (direction, userCallback) {\r\n      var that = this,\r\n          orientation = {};\r\n\r\n      if (this.animating) {\r\n        return;\r\n      }\r\n\r\n      this.animating = true;\r\n\r\n      if (direction === undefined) {\r\n        direction = 'next';\r\n      }\r\n\r\n      orientation.upcoming_slide = this._upcomingSlide(direction);\r\n\r\n      if (orientation.upcoming_slide >= this.size()) {\r\n        return;\r\n      }\r\n\r\n      orientation.outgoing_slide = this.current;\r\n      orientation.upcoming_position = this.width * 2;\r\n      orientation.offset = -orientation.upcoming_position;\r\n\r\n      if (direction === 'prev' || direction < orientation.outgoing_slide) {\r\n        orientation.upcoming_position = 0;\r\n        orientation.offset = 0;\r\n      }\r\n\r\n      if (that.size() > 1) {\r\n        that.pagination._setCurrent(orientation.upcoming_slide);\r\n      }\r\n\r\n      if (that.options.hashchange) {\r\n        var hash = orientation.upcoming_slide + 1,\r\n            id = that.$container.children(':eq(' + orientation.upcoming_slide + ')').attr('id');\r\n\r\n        if (id) {\r\n          window.location.hash = id;\r\n        } else {\r\n          window.location.hash = hash;\r\n        }\r\n      }\r\n\r\n      that.$el.trigger('animating.slides', [orientation]);\r\n\r\n      that.animation(orientation, function () {\r\n        that._findPositions(orientation.upcoming_slide, that);\r\n\r\n        if (typeof userCallback === 'function') {\r\n          userCallback();\r\n        }\r\n\r\n        that.animating = false;\r\n        that.$el.trigger('animated.slides');\r\n\r\n        if (!that.init) {\r\n          that.$el.trigger('init.slides');\r\n          that.init = true;\r\n          that.$container.fadeIn('fast');\r\n        }\r\n      });\r\n    }\r\n  };\r\n\r\n  // jQuery plugin definition\r\n\r\n  $.fn[plugin] = function (option, args) {\r\n    var result = [];\r\n\r\n    this.each(function () {\r\n      var $this, data, options;\r\n\r\n      $this = $(this);\r\n      data = $this.data(plugin);\r\n      options = typeof option === 'object' && option;\r\n\r\n      if (!data) {\r\n        result = $this.data(plugin, (data = new Superslides(this, options)));\r\n      }\r\n\r\n      if (typeof option === \"string\") {\r\n        result = data[option];\r\n        if (typeof result === 'function') {\r\n          return result = result.call(data, args);\r\n        }\r\n      }\r\n    });\r\n\r\n    return result;\r\n  };\r\n\r\n  $.fn[plugin].fx = {};\r\n\r\n  \r\n\r\n})(this, jQuery);\r\n"},function(t,e,n){n(0)(n(90)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/jquery.velocity.min.js")},function(t,e){t.exports='/*!\r\n* Velocity.js: Accelerated JavaScript animation.\r\n* @version 0.2.1\r\n* @docs http://velocityjs.org\r\n* @license Copyright 2014 Julian Shapiro. MIT License: http://en.wikipedia.org/wiki/MIT_License\r\n*/\r\n!function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){var b=q.data(a,k);return null===b?d:b}function g(a){return function(b){return Math.round(b*a)*(1/a)}}function h(a,b){var c=a;return p.isString(a)?r.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?g.apply(null,a):p.isArray(a)&&2===a.length?t.apply(null,a.concat([b])):p.isArray(a)&&4===a.length?s.apply(null,a):!1,c===!1&&(c=r.Easings[r.defaults.easing]?r.defaults.easing:m),c}function i(a){if(a)for(var b=(new Date).getTime(),c=0,e=r.State.calls.length;e>c;c++)if(r.State.calls[c]){var g=r.State.calls[c],h=g[0],k=g[2],l=g[3];l||(l=r.State.calls[c][3]=b-16);for(var m=Math.min((b-l)/k.duration,1),n=0,q=h.length;q>n;n++){var s=h[n],t=s.element;if(f(t)){var v=!1;k.display&&"none"!==k.display&&u.setPropertyValue(t,"display",k.display);for(var w in s)if("element"!==w){var x,y=s[w],z=p.isString(y.easing)?r.Easings[y.easing]:y.easing;if(x=1===m?y.endValue:y.startValue+(y.endValue-y.startValue)*z(m),y.currentValue=x,u.Hooks.registered[w]){var A=u.Hooks.getRoot(w),B=f(t).rootPropertyValueCache[A];B&&(y.rootPropertyValue=B)}var C=u.setPropertyValue(t,w,y.currentValue+(0===parseFloat(x)?"":y.unitType),y.rootPropertyValue,y.scrollData);u.Hooks.registered[w]&&(f(t).rootPropertyValueCache[A]=u.Normalizations.registered[A]?u.Normalizations.registered[A]("extract",null,C[1]):C[1]),"transform"===C[0]&&(v=!0)}k.mobileHA&&f(t).transformCache.translate3d===d&&(f(t).transformCache.translate3d="(0px, 0px, 0px)",v=!0),v&&u.flushTransformCache(t)}}k.display&&"none"!==k.display&&(r.State.calls[c][2].display=!1),k.progress&&k.progress.call(g[1],g[1],m,Math.max(0,l+k.duration-b),l),1===m&&j(c)}r.State.isTicking&&o(i)}function j(a,b){if(!r.State.calls[a])return!1;for(var c=r.State.calls[a][0],e=r.State.calls[a][1],g=r.State.calls[a][2],h=!1,i=0,j=c.length;j>i;i++){var k=c[i].element;if(b||"none"!==g.display||g.loop||u.setPropertyValue(k,"display",g.display),(q.queue(k)[1]===d||!/\\.velocityQueueEntryFlag/i.test(q.queue(k)[1]))&&f(k)){f(k).isAnimating=!1,f(k).rootPropertyValueCache={};var l,m=["transformPerspective","translateZ","rotateX","rotateY"],n=!1;for(var o in m)l=m[o],/^\\(0[^.]/.test(f(k).transformCache[l])&&(n=!0,delete f(k).transformCache[l]);g.mobileHA&&(n=!0,delete f(k).transformCache.translate3d),n&&u.flushTransformCache(k)}b||!g.complete||g.loop||i!==j-1||g.complete.call(e,e),g.queue!==!1&&q.dequeue(k,g.queue)}r.State.calls[a]=!1;for(var p=0,s=r.State.calls.length;s>p;p++)if(r.State.calls[p]!==!1){h=!0;break}h===!1&&(r.State.isTicking=!1,delete r.State.calls,r.State.calls=[])}var k="velocity",l=400,m="swing",n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="\x3c!--[if IE "+a+"]><span></span><![endif]--\x3e",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=b.requestAnimationFrame||function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNodeList:function(a){return"object"==typeof a&&/^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))}},q=b.jQuery||a.Velocity&&a.Velocity.Utilities;if(!q)throw new Error("Velocity: Either jQuery or Velocity\'s jQuery shim must first be loaded.");if(a.Velocity!==d&&!a.Velocity.Utilities)throw new Error("Velocity: Namespace is occupied.");if(7>=n){if(b.jQuery)return void(b.jQuery.fn.velocity=b.jQuery.fn.animate);throw new Error("Velocity: For IE<=7, Velocity falls back to jQuery, which must first be loaded.")}if(8===n&&!b.jQuery)throw new Error("Velocity: For IE8, Velocity requires jQuery to be loaded. (Velocity\'s jQuery shim does not work with IE8.)");var r=a.Velocity=a.velocity={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\\.3\\.[3-7]/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:b.jQuery?{}:q,Sequences:{},Easings:{},defaults:{queue:"",duration:l,easing:m,begin:null,complete:null,progress:null,display:null,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},animate:function(){},mock:!1,debug:!1};b.pageYOffset!==d?(r.State.scrollAnchor=b,r.State.scrollPropertyLeft="pageXOffset",r.State.scrollPropertyTop="pageYOffset"):(r.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,r.State.scrollPropertyLeft="scrollLeft",r.State.scrollPropertyTop="scrollTop");var s=function(){function a(a,b){return 1-3*b+3*a}function b(a,b){return 3*b-6*a}function c(a){return 3*a}function d(d,e,f){return((a(e,f)*d+b(e,f))*d+c(e))*d}function e(d,e,f){return 3*a(e,f)*d*d+2*b(e,f)*d+c(e)}return function(a,b,c,f){function g(b){for(var f=b,g=0;8>g;++g){var h=e(f,a,c);if(0===h)return f;var i=d(f,a,c)-b;f-=i/h}return f}if(4!==arguments.length)return!1;for(var h=0;4>h;++h)if("number"!=typeof arguments[h]||isNaN(arguments[h])||!isFinite(arguments[h]))return!1;return a=Math.min(a,1),c=Math.min(c,1),a=Math.max(a,0),c=Math.max(c,0),function(e){return a===b&&c===f?e:d(g(e),b,f)}}}(),t=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||600,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;;)if(h=c(h||i,g),j.push(1+h.x),k+=16,!(Math.abs(h.x)>l&&Math.abs(h.v)>l))break;return f?function(a){return j[a*(j.length-1)|0]}:k}}();!function(){r.Easings.linear=function(a){return a},r.Easings.swing=function(a){return.5-Math.cos(a*Math.PI)/2},r.Easings.ease=s(.25,.1,.25,1),r.Easings["ease-in"]=s(.42,0,1,1),r.Easings["ease-out"]=s(0,0,.58,1),r.Easings["ease-in-out"]=s(.42,0,.58,1);var a={};q.each(["Quad","Cubic","Quart","Quint","Expo"],function(b,c){a[c]=function(a){return Math.pow(a,b+2)}}),q.extend(a,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return 0===a||1===a?a:-Math.pow(2,8*(a-1))*Math.sin((80*(a-1)-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){for(var b,c=4;a<((b=Math.pow(2,--c))-1)/11;);return 1/Math.pow(4,3-c)-7.5625*Math.pow((3*b-2)/22-a,2)}}),q.each(a,function(a,b){r.Easings["easeIn"+a]=b,r.Easings["easeOut"+a]=function(a){return 1-b(1-a)},r.Easings["easeInOut"+a]=function(a){return.5>a?b(2*a)/2:1-b(-2*a+2)/2}}),r.Easings.spring=function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}}();var u=r.CSS={RegEx:{valueUnwrap:/^[A-z]+\\((.*)\\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/gi},Hooks:{templates:{color:["Red Green Blue Alpha","255 255 255 1"],backgroundColor:["Red Green Blue Alpha","255 255 255 1"],borderColor:["Red Green Blue Alpha","255 255 255 1"],borderTopColor:["Red Green Blue Alpha","255 255 255 1"],borderRightColor:["Red Green Blue Alpha","255 255 255 1"],borderBottomColor:["Red Green Blue Alpha","255 255 255 1"],borderLeftColor:["Red Green Blue Alpha","255 255 255 1"],outlineColor:["Red Green Blue Alpha","255 255 255 1"],textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0%"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){var a,b,c;if(n)for(a in u.Hooks.templates){b=u.Hooks.templates[a],c=b[0].split(" ");var d=b[1].match(u.RegEx.valueSplit);"Color"===c[0]&&(c.push(c.shift()),d.push(d.shift()),u.Hooks.templates[a]=[c.join(" "),d.join(" ")])}for(a in u.Hooks.templates){b=u.Hooks.templates[a],c=b[0].split(" ");for(var e in c){var f=a+c[e],g=e;u.Hooks.registered[f]=[a,g]}}},getRoot:function(a){var b=u.Hooks.registered[a];return b?b[0]:a},cleanRootPropertyValue:function(a,b){return u.RegEx.valueUnwrap.test(b)&&(b=b.match(u.Hooks.RegEx.valueUnwrap)[1]),u.Values.isCSSNullValue(b)&&(b=u.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=u.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=u.Hooks.cleanRootPropertyValue(d,b),b.toString().match(u.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=u.Hooks.registered[a];if(d){var e,f,g=d[0],h=d[1];return c=u.Hooks.cleanRootPropertyValue(g,c),e=c.toString().match(u.RegEx.valueSplit),e[h]=b,f=e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return u.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(u.RegEx.valueUnwrap),d=d?d[1].replace(/,(\\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},opacity:function(a,b,c){if(8>=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\\(opacity=(.*)\\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){function a(a){var b,c=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,d=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?"rgb("+(parseInt(b[1],16)+" "+parseInt(b[2],16)+" "+parseInt(b[3],16))+")":"rgb(0 0 0)"}var b=["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"];9>=n||r.State.isGingerbread||(b=b.concat(["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]));for(var c=0,e=b.length;e>c;c++)!function(){var a=b[c];u.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return"transform";case"extract":return f(c).transformCache[a]===d?/^scale/i.test(a)?1:0:f(c).transformCache[a].replace(/[()]/g,"");case"inject":var g=!1;switch(a.substr(0,a.length-1)){case"translate":g=!/(%|px|em|rem|\\d)$/i.test(e);break;case"scal":case"scale":r.State.isAndroid&&f(c).transformCache[a]===d&&(e=1),g=!/(\\d)$/i.test(e);break;case"skew":g=!/(deg|\\d)$/i.test(e);break;case"rotate":g=!/(deg|\\d)$/i.test(e)}return g||(f(c).transformCache[a]="("+e+")"),f(c).transformCache[a]}}}();for(var g=["color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],c=0,h=g.length;h>c;c++)!function(){var b=g[c];u.Normalizations.registered[b]=function(c,e,f){switch(c){case"name":return b;case"extract":var g;if(u.RegEx.wrappedValueAlreadyExtracted.test(f))g=f;else{var h,i={aqua:"rgb(0, 255, 255);",black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",fuchsia:"rgb(255, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",lime:"rgb(0, 255, 0)",maroon:"rgb(128, 0, 0)",navy:"rgb(0, 0, 128)",olive:"rgb(128, 128, 0)",purple:"rgb(128, 0, 128)",red:"rgb(255, 0, 0)",silver:"rgb(192, 192, 192)",teal:"rgb(0, 128, 128)",white:"rgb(255, 255, 255)",yellow:"rgb(255, 255, 0)"};/^[A-z]+$/i.test(f)?h=i[f]!==d?i[f]:i.black:/^#([A-f\\d]{3}){1,2}$/i.test(f)?h=a(f):/^rgba?\\(/i.test(f)||(h=i.black),g=(h||f).toString().match(u.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g," ")}return 8>=n||3!==g.split(" ").length||(g+=" 1"),g;case"inject":return 8>=n?4===f.split(" ").length&&(f=f.split(/\\s+/).slice(0,3).join(" ")):3===f.split(" ").length&&(f+=" 1"),(8>=n?"rgb":"rgba")+"("+f.replace(/\\s+/g,",").replace(/\\.(\\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\\w)/g,function(a,b){return b.toUpperCase()})},prefixCheck:function(a){if(r.State.prefixMatches[a])return[r.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\\w/,function(a){return a.toUpperCase()}),p.isString(r.State.prefixElement.style[e]))return r.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|opacity|alpha|fillOpacity|flexGrow|flexHeight|zIndex|fontWeight)$)|color/i.test(a)?"":"px"},getDisplayType:function(a){var b=a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":"block"}},getPropertyValue:function(a,c,e,g){function h(a,c){var e=0;if(8>=n)e=q.css(a,c);else{if(!g){if("height"===c&&"border-box"!==u.getPropertyValue(a,"boxSizing").toString().toLowerCase())return a.offsetHeight-(parseFloat(u.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(u.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(u.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(u.getPropertyValue(a,"paddingBottom"))||0);if("width"===c&&"border-box"!==u.getPropertyValue(a,"boxSizing").toString().toLowerCase())return a.offsetWidth-(parseFloat(u.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(u.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(u.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(u.getPropertyValue(a,"paddingRight"))||0)}var i;i=f(a)===d?b.getComputedStyle(a,null):f(a).computedStyle?f(a).computedStyle:f(a).computedStyle=b.getComputedStyle(a,null),n&&"borderColor"===c&&(c="borderTopColor"),e=9===n&&"filter"===c?i.getPropertyValue(c):i[c],(""===e||null===e)&&(e=a.style[c])}if("auto"===e&&/^(top|right|bottom|left)$/i.test(c)){var j=h(a,"position");("fixed"===j||"absolute"===j&&/top|left/i.test(c))&&(e=q(a).position()[c]+"px")}return e}var i;if(u.Hooks.registered[c]){var j=c,k=u.Hooks.getRoot(j);e===d&&(e=u.getPropertyValue(a,u.Names.prefixCheck(k)[0])),u.Normalizations.registered[k]&&(e=u.Normalizations.registered[k]("extract",a,e)),i=u.Hooks.extractValue(j,e)}else if(u.Normalizations.registered[c]){var l,m;l=u.Normalizations.registered[c]("name",a),"transform"!==l&&(m=h(a,u.Names.prefixCheck(l)[0]),u.Values.isCSSNullValue(m)&&u.Hooks.templates[c]&&(m=u.Hooks.templates[c][1])),i=u.Normalizations.registered[c]("extract",a,m)}return/^[\\d-]/.test(i)||(i=h(a,u.Names.prefixCheck(c)[0])),u.Values.isCSSNullValue(i)&&(i=0),r.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,g){var h=c;if("scroll"===c)g.container?g.container["scroll"+g.direction]=d:"Left"===g.direction?b.scrollTo(d,g.alternateValue):b.scrollTo(g.alternateValue,d);else if(u.Normalizations.registered[c]&&"transform"===u.Normalizations.registered[c]("name",a))u.Normalizations.registered[c]("inject",a,d),h="transform",d=f(a).transformCache[c];else{if(u.Hooks.registered[c]){var i=c,j=u.Hooks.getRoot(c);e=e||u.getPropertyValue(a,j),d=u.Hooks.injectValue(i,d,e),c=j}if(u.Normalizations.registered[c]&&(d=u.Normalizations.registered[c]("inject",a,d),c=u.Normalizations.registered[c]("name",a)),h=u.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){console.log("Error setting ["+h+"] to ["+d+"]")}else a.style[h]=d;r.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){var b,c,d,e="";for(b in f(a).transformCache)c=f(a).transformCache[b],"transformPerspective"!==b?(9===n&&"rotateZ"===b&&(b="rotate"),e+=b+c+" "):d=c;d&&(e="perspective"+d+" "+e),u.setPropertyValue(a,"transform",e)}};u.Hooks.register(),u.Normalizations.register(),r.animate=function(){function a(){return g||o}function b(){function a(){function a(a){var c=d,e=d,f=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\\d-]/.test(a[1])||p.isFunction(a[1])?f=a[1]:(p.isString(a[1])||p.isArray(a[1]))&&(e=h(a[1],g.duration),a[2]&&(f=a[2]))):c=a,e=e||g.easing,p.isFunction(c)&&(c=c.call(b,x,w)),p.isFunction(f)&&(f=f.call(b,x,w)),[c||0,e,f]}function k(a,b){var c,d;return d=(b||0).toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=u.Values.getUnitType(a)),[d,c]}function l(){var a={parent:b.parentNode,position:u.getPropertyValue(b,"position"),fontSize:u.getPropertyValue(b,"fontSize")},d=a.position===E.lastPosition&&a.parent===E.lastParent,e=a.fontSize===E.lastFontSize&&a.parent===E.lastParent;E.lastParent=a.parent,E.lastPosition=a.position,E.lastFontSize=a.fontSize,null===E.remToPxRatio&&(E.remToPxRatio=parseFloat(u.getPropertyValue(c.body,"fontSize"))||16);var f={overflowX:null,overflowY:null,boxSizing:null,width:null,minWidth:null,maxWidth:null,height:null,minHeight:null,maxHeight:null,paddingLeft:null},g={},h=10;if(g.remToPxRatio=E.remToPxRatio,n)var i=/^auto$/i.test(b.currentStyle.width),j=/^auto$/i.test(b.currentStyle.height);d&&e||(f.overflowX=u.getPropertyValue(b,"overflowX"),f.overflowY=u.getPropertyValue(b,"overflowY"),f.boxSizing=u.getPropertyValue(b,"boxSizing"),f.width=u.getPropertyValue(b,"width",null,!0),f.minWidth=u.getPropertyValue(b,"minWidth"),f.maxWidth=u.getPropertyValue(b,"maxWidth")||"none",f.height=u.getPropertyValue(b,"height",null,!0),f.minHeight=u.getPropertyValue(b,"minHeight"),f.maxHeight=u.getPropertyValue(b,"maxHeight")||"none",f.paddingLeft=u.getPropertyValue(b,"paddingLeft")),d?(g.percentToPxRatioWidth=E.lastPercentToPxWidth,g.percentToPxRatioHeight=E.lastPercentToPxHeight):(u.setPropertyValue(b,"overflowX","hidden"),u.setPropertyValue(b,"overflowY","hidden"),u.setPropertyValue(b,"boxSizing","content-box"),u.setPropertyValue(b,"width",h+"%"),u.setPropertyValue(b,"minWidth",h+"%"),u.setPropertyValue(b,"maxWidth",h+"%"),u.setPropertyValue(b,"height",h+"%"),u.setPropertyValue(b,"minHeight",h+"%"),u.setPropertyValue(b,"maxHeight",h+"%")),e?g.emToPxRatio=E.lastEmToPx:u.setPropertyValue(b,"paddingLeft",h+"em"),d||(g.percentToPxRatioWidth=E.lastPercentToPxWidth=(parseFloat(u.getPropertyValue(b,"width",null,!0))||1)/h,g.percentToPxRatioHeight=E.lastPercentToPxHeight=(parseFloat(u.getPropertyValue(b,"height",null,!0))||1)/h),e||(g.emToPxRatio=E.lastEmToPx=(parseFloat(u.getPropertyValue(b,"paddingLeft"))||1)/h);for(var k in f)null!==f[k]&&u.setPropertyValue(b,k,f[k]);return n?(i&&u.setPropertyValue(b,"width","auto"),j&&u.setPropertyValue(b,"height","auto")):(u.setPropertyValue(b,"height","auto"),f.height!==u.getPropertyValue(b,"height",null,!0)&&u.setPropertyValue(b,"height",f.height),u.setPropertyValue(b,"width","auto"),f.width!==u.getPropertyValue(b,"width",null,!0)&&u.setPropertyValue(b,"width",f.width)),r.debug>=1&&console.log("Unit ratios: "+JSON.stringify(g),b),g}if(g.begin&&0===x&&g.begin.call(o,o),"scroll"===A){var m,v,y,z=/^x$/i.test(g.axis)?"Left":"Top",B=parseFloat(g.offset)||0;g.container?g.container.jquery||g.container.nodeType?(g.container=g.container[0]||g.container,m=g.container["scroll"+z],y=m+q(b).position()[z.toLowerCase()]+B):g.container=null:(m=r.State.scrollAnchor[r.State["scrollProperty"+z]],v=r.State.scrollAnchor[r.State["scrollProperty"+("Left"===z?"Top":"Left")]],y=q(b).offset()[z.toLowerCase()]+B),j={scroll:{rootPropertyValue:!1,startValue:m,currentValue:m,endValue:y,unitType:"",easing:g.easing,scrollData:{container:g.container,direction:z,alternateValue:v}},element:b}}else if("reverse"===A){if(!f(b).tweensContainer)return void q.dequeue(b,g.queue);"none"===f(b).opts.display&&(f(b).opts.display="block"),f(b).opts.loop=!1,f(b).opts.begin=null,f(b).opts.complete=null,t.easing||delete g.easing,t.duration||delete g.duration,g=q.extend({},f(b).opts,g);var C=q.extend(!0,{},f(b).tweensContainer);for(var D in C)if("element"!==D){var G=C[D].startValue;C[D].startValue=C[D].currentValue=C[D].endValue,C[D].endValue=G,t&&(C[D].easing=g.easing)}j=C}else if("start"===A){var C;f(b).tweensContainer&&f(b).isAnimating===!0&&(C=f(b).tweensContainer);for(var H in s){var I=a(s[H]),J=I[0],K=I[1],L=I[2];H=u.Names.camelCase(H);var M=u.Hooks.getRoot(H),N=!1;if(u.Names.prefixCheck(M)[1]!==!1||u.Normalizations.registered[M]!==d){g.display&&"none"!==g.display&&/opacity|filter/.test(H)&&!L&&0!==J&&(L=0),g._cacheValues&&C&&C[H]?(L===d&&(L=C[H].endValue+C[H].unitType),N=f(b).rootPropertyValueCache[M]):u.Hooks.registered[H]?L===d?(N=u.getPropertyValue(b,M),L=u.getPropertyValue(b,H,N)):N=u.Hooks.templates[M][1]:L===d&&(L=u.getPropertyValue(b,H));var O,P,Q,R;O=k(H,L),L=O[0],Q=O[1],O=k(H,J),J=O[0].replace(/^([+-\\/*])=/,function(a,b){return R=b,""}),P=O[1],L=parseFloat(L)||0,J=parseFloat(J)||0;var S;if("%"===P&&(/^(fontSize|lineHeight)$/.test(H)?(J/=100,P="em"):/^scale/.test(H)?(J/=100,P=""):/(Red|Green|Blue)$/i.test(H)&&(J=J/100*255,P="")),/[\\/*]/.test(R))P=Q;else if(Q!==P&&0!==L)if(0===J)P=Q;else{S=S||l();var T=/margin|padding|left|right|width|text|word|letter/i.test(H)||/X$/.test(H)?"x":"y";switch(Q){case"%":L*="x"===T?S.percentToPxRatioWidth:S.percentToPxRatioHeight;break;case"em":L*=S.emToPxRatio;break;case"rem":L*=S.remToPxRatio;break;case"px":}switch(P){case"%":L*=1/("x"===T?S.percentToPxRatioWidth:S.percentToPxRatioHeight);break;case"em":L*=1/S.emToPxRatio;break;case"rem":L*=1/S.remToPxRatio;break;case"px":}}switch(R){case"+":J=L+J;break;case"-":J=L-J;break;case"*":J=L*J;break;case"/":J=L/J}j[H]={rootPropertyValue:N,startValue:L,currentValue:L,endValue:J,unitType:P,easing:K},r.debug&&console.log("tweensContainer ("+H+"): "+JSON.stringify(j[H]),b)}else r.debug&&console.log("Skipping ["+M+"] due to a lack of browser support.")}j.element=b}j.element&&(F.push(j),f(b).tweensContainer=j,f(b).opts=g,f(b).isAnimating=!0,x===w-1?(r.State.calls.length>1e4&&(r.State.calls=e(r.State.calls)),r.State.calls.push([F,o,g]),r.State.isTicking===!1&&(r.State.isTicking=!0,i())):x++)}var b=this,g=q.extend({},r.defaults,t),j={};if(f(b)===d&&q.data(b,k,{isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}}),/^\\d/.test(g.delay)&&g.queue!==!1&&q.queue(b,g.queue,function(a){r.velocityQueueEntryFlag=!0,setTimeout(a,parseFloat(g.delay))}),r.mock===!0)g.duration=1;else switch(g.duration.toString().toLowerCase()){case"fast":g.duration=200;break;case"normal":g.duration=l;break;case"slow":g.duration=600;break;default:g.duration=parseFloat(g.duration)||1}g.easing=h(g.easing,g.duration),g.begin&&!p.isFunction(g.begin)&&(g.begin=null),g.progress&&!p.isFunction(g.progress)&&(g.progress=null),g.complete&&!p.isFunction(g.complete)&&(g.complete=null),g.display&&(g.display=g.display.toString().toLowerCase()),g.mobileHA=g.mobileHA&&r.State.isMobile&&!r.State.isGingerbread,g.queue===!1?g.delay?setTimeout(a,g.delay):a():q.queue(b,g.queue,function(b){r.velocityQueueEntryFlag=!0,a(b)}),""!==g.queue&&"fx"!==g.queue||"inprogress"===q.queue(b)[0]||q.dequeue(b)}var g,m,o,s,t,v=arguments[0]&&(q.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||p.isString(arguments[0].properties));if(p.isWrapped(this)?(m=0,o=this,g=this):(m=1,o=v?arguments[0].elements:arguments[0]),o=p.isWrapped(o)?[].slice.call(o):o){v?(s=arguments[0].properties,t=arguments[0].options):(s=arguments[m],t=arguments[m+1]);var w=p.isArray(o)||p.isNodeList(o)?o.length:1,x=0;if("stop"!==s&&!q.isPlainObject(t)){var y=m+1;t={};for(var z=y;z<arguments.length;z++)!p.isArray(arguments[z])&&/^\\d/.test(arguments[z])?t.duration=parseFloat(arguments[z]):p.isString(arguments[z])||p.isArray(arguments[z])&&(1===arguments[z].length||2===arguments[z].length||4===arguments[z].length)?t.easing=arguments[z]:p.isFunction(arguments[z])&&(t.complete=arguments[z])}var A;switch(s){case"scroll":A="scroll";break;case"reverse":A="reverse";break;case"stop":var B=[];return q.each(r.State.calls,function(a,b){b!==!1&&q.each(b[1].nodeType?[b[1]]:b[1],function(b,c){q.each(o.nodeType?[o]:o,function(b,d){d===c&&(f(d)&&q.each(f(d).tweensContainer,function(a,b){b.endValue=b.currentValue}),(t===!0||p.isString(t))&&q.queue(d,p.isString(t)?t:"",[]),B.push(a))})})}),q.each(B,function(a,b){j(b,!0)}),a();default:if(!q.isPlainObject(s)||q.isEmptyObject(s)){if(p.isString(s)&&r.Sequences[s]){var C=o,D=t.duration;return t.backwards===!0&&(o=(o.jquery?[].slice.call(o):o).reverse()),q.each(o,function(a,b){parseFloat(t.stagger)&&(t.delay=parseFloat(t.stagger)*a),t.drag&&(t.duration=parseFloat(D)||(/^(callout|transition)/.test(s)?1e3:l),t.duration=Math.max(t.duration*(t.backwards?1-a/w:(a+1)/w),.75*t.duration,200)),r.Sequences[s].call(b,b,t||{},a,w)}),g||C}return console.log("First argument was not a property map, a known action, or a registered sequence. Aborting."),a()}A="start"}var E={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPxRatio:null},F=[];q.each(o.nodeType?[o]:o,function(a,c){c.nodeType&&b.call(c)});var G,H=q.extend({},r.defaults,t);if(H.loop=parseInt(H.loop),G=2*H.loop-1,H.loop)for(var I=0;G>I;I++){var J={delay:H.delay};H.complete&&I===G-1&&(J.complete=H.complete),r.animate(o,"reverse",J)}return a()}};var v=b.jQuery||b.Zepto;v&&(v.fn.velocity=r.animate,v.fn.velocity.defaults=r.defaults),"undefined"!=typeof define&&define.amd?define(function(){return r}):"undefined"!=typeof module&&module.exports&&(module.exports=r),q.each(["Down","Up"],function(a,b){r.Sequences["slide"+b]=function(a,c){var d=q.extend({},c),e={height:null,marginTop:null,marginBottom:null,paddingTop:null,paddingBottom:null,overflow:null,overflowX:null,overflowY:null},f=d.begin,g=d.complete,h=!1;null!==d.display&&(d.display="Down"===b?d.display||r.CSS.Values.getDisplayType(a):d.display||"none"),d.begin=function(){function c(){a.style.display="block",e.height=r.CSS.getPropertyValue(a,"height"),a.style.height="auto",r.CSS.getPropertyValue(a,"height")===e.height&&(h=!0),r.CSS.setPropertyValue(a,"height",e.height+"px")}if("Down"===b){e.overflow=[r.CSS.getPropertyValue(a,"overflow"),0],e.overflowX=[r.CSS.getPropertyValue(a,"overflowX"),0],e.overflowY=[r.CSS.getPropertyValue(a,"overflowY"),0],a.style.overflow="hidden",a.style.overflowX="visible",a.style.overflowY="hidden",c();for(var d in e)/^overflow/.test(d)||(e[d]=[r.CSS.getPropertyValue(a,d),0]);a.style.display="none"}else{c();for(var d in e)e[d]=[0,r.CSS.getPropertyValue(a,d)];a.style.overflow="hidden",a.style.overflowX="visible",a.style.overflowY="hidden"}f&&f.call(a,a)},d.complete=function(a){var c="Down"===b?0:1;h===!0?e.height[c]="auto":e.height[c]+="px";for(var d in e)a.style[d]=e[d][c];g&&g.call(a,a)},r.animate(a,e,d)}}),q.each(["In","Out"],function(a,b){r.Sequences["fade"+b]=function(a,c,d,e){var f=q.extend({},c),g={opacity:"In"===b?1:0};d!==e-1&&(f.complete=f.begin=null),null!==f.display&&(f.display="In"===b?r.CSS.Values.getDisplayType(a):"none"),r.animate(this,g,f)}})}(window.jQuery||window.Zepto||window,window,document);'},function(t,e,n){n(0)(n(92)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/masonry.pkgd.min.js")},function(t,e){t.exports='/*!\r\n * Masonry PACKAGED v4.2.0\r\n * Cascading grid layout library\r\n * http://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\r\n\r\n!function (t, e) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery) }(window, function (t, e) { "use strict"; function i(i, r, a) { function h(t, e, n) { var o, r = "$()." + i + \'("\' + e + \'")\'; return t.each(function (t, h) { var u = a.data(h, i); if (!u) return void s(i + " not initialized. Cannot call methods, i.e. " + r); var d = u[e]; if (!d || "_" == e.charAt(0)) return void s(r + " is not a valid method"); var l = d.apply(u, n); o = void 0 === o ? l : o }), void 0 !== o ? o : t } function u(t, e) { t.each(function (t, n) { var o = a.data(n, i); o ? (o.option(e), o._init()) : (o = new r(n, e), a.data(n, i, o)) }) } a = a || e || t.jQuery, a && (r.prototype.option || (r.prototype.option = function (t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) }), a.fn[i] = function (t) { if ("string" == typeof t) { var e = o.call(arguments, 1); return h(this, t, e) } return u(this, t), this }, n(a)) } function n(t) { !t || t && t.bridget || (t.bridget = i) } var o = Array.prototype.slice, r = t.console, s = "undefined" == typeof r ? function () { } : function (t) { r.error(t) }; return n(e || t.jQuery), i }), function (t, e) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() }("undefined" != typeof window ? window : this, function () { function t() { } var e = t.prototype; return e.on = function (t, e) { if (t && e) { var i = this._events = this._events || {}, n = i[t] = i[t] || []; return -1 == n.indexOf(e) && n.push(e), this } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; return n[e] = !0, this } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = i.indexOf(e); return -1 != n && i.splice(n, 1), this } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = 0, o = i[n]; e = e || []; for (var r = this._onceEvents && this._onceEvents[t]; o;) { var s = r && r[o]; s && (this.off(t, o), delete r[o]), o.apply(this, e), n += s ? 0 : 1, o = i[n] } return this } }, t }), function (t, e) { "use strict"; "function" == typeof define && define.amd ? define("get-size/get-size", [], function () { return e() }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function () { "use strict"; function t(t) { var e = parseFloat(t), i = -1 == t.indexOf("%") && !isNaN(e); return i && e } function e() { } function i() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; u > e; e++) { var i = h[e]; t[i] = 0 } return t } function n(t) { var e = getComputedStyle(t); return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e } function o() { if (!d) { d = !0; var e = document.createElement("div"); e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box"; var i = document.body || document.documentElement; i.appendChild(e); var o = n(e); r.isBoxSizeOuter = s = 200 == t(o.width), i.removeChild(e) } } function r(e) { if (o(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) { var r = n(e); if ("none" == r.display) return i(); var a = {}; a.width = e.offsetWidth, a.height = e.offsetHeight; for (var d = a.isBorderBox = "border-box" == r.boxSizing, l = 0; u > l; l++) { var c = h[l], f = r[c], m = parseFloat(f); a[c] = isNaN(m) ? 0 : m } var p = a.paddingLeft + a.paddingRight, g = a.paddingTop + a.paddingBottom, y = a.marginLeft + a.marginRight, v = a.marginTop + a.marginBottom, _ = a.borderLeftWidth + a.borderRightWidth, z = a.borderTopWidth + a.borderBottomWidth, E = d && s, b = t(r.width); b !== !1 && (a.width = b + (E ? 0 : p + _)); var x = t(r.height); return x !== !1 && (a.height = x + (E ? 0 : g + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (g + z), a.outerWidth = a.width + y, a.outerHeight = a.height + v, a } } var s, a = "undefined" == typeof console ? e : function (t) { console.error(t) }, h = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], u = h.length, d = !1; return r }), function (t, e) { "use strict"; "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e() }(window, function () { "use strict"; var t = function () { var t = window.Element.prototype; if (t.matches) return "matches"; if (t.matchesSelector) return "matchesSelector"; for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) { var n = e[i], o = n + "MatchesSelector"; if (t[o]) return o } }(); return function (e, i) { return e[t](i) } }), function (t, e) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector) }(window, function (t, e) { var i = {}; i.extend = function (t, e) { for (var i in e) t[i] = e[i]; return t }, i.modulo = function (t, e) { return (t % e + e) % e }, i.makeArray = function (t) { var e = []; if (Array.isArray(t)) e = t; else if (t && "object" == typeof t && "number" == typeof t.length) for (var i = 0; i < t.length; i++) e.push(t[i]); else e.push(t); return e }, i.removeFrom = function (t, e) { var i = t.indexOf(e); -1 != i && t.splice(i, 1) }, i.getParent = function (t, i) { for (; t != document.body;) if (t = t.parentNode, e(t, i)) return t }, i.getQueryElement = function (t) { return "string" == typeof t ? document.querySelector(t) : t }, i.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, i.filterFindElements = function (t, n) { t = i.makeArray(t); var o = []; return t.forEach(function (t) { if (t instanceof HTMLElement) { if (!n) return void o.push(t); e(t, n) && o.push(t); for (var i = t.querySelectorAll(n), r = 0; r < i.length; r++) o.push(i[r]) } }), o }, i.debounceMethod = function (t, e, i) { var n = t.prototype[e], o = e + "Timeout"; t.prototype[e] = function () { var t = this[o]; t && clearTimeout(t); var e = arguments, r = this; this[o] = setTimeout(function () { n.apply(r, e), delete r[o] }, i || 100) } }, i.docReady = function (t) { var e = document.readyState; "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t) }, i.toDashed = function (t) { return t.replace(/(.)([A-Z])/g, function (t, e, i) { return e + "-" + i }).toLowerCase() }; var n = t.console; return i.htmlInit = function (e, o) { i.docReady(function () { var r = i.toDashed(o), s = "data-" + r, a = document.querySelectorAll("[" + s + "]"), h = document.querySelectorAll(".js-" + r), u = i.makeArray(a).concat(i.makeArray(h)), d = s + "-options", l = t.jQuery; u.forEach(function (t) { var i, r = t.getAttribute(s) || t.getAttribute(d); try { i = r && JSON.parse(r) } catch (a) { return void (n && n.error("Error parsing " + s + " on " + t.className + ": " + a)) } var h = new e(t, i); l && l.data(t, o, h) }) }) }, i }), function (t, e) { "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize)) }(window, function (t, e) { "use strict"; function i(t) { for (var e in t) return !1; return e = null, !0 } function n(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } function o(t) { return t.replace(/([A-Z])/g, function (t) { return "-" + t.toLowerCase() }) } var r = document.documentElement.style, s = "string" == typeof r.transition ? "transition" : "WebkitTransition", a = "string" == typeof r.transform ? "transform" : "WebkitTransform", h = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" }[s], u = { transform: a, transition: s, transitionDuration: s + "Duration", transitionProperty: s + "Property", transitionDelay: s + "Delay" }, d = n.prototype = Object.create(t.prototype); d.constructor = n, d._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, d.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, d.getSize = function () { this.size = e(this.element) }, d.css = function (t) { var e = this.element.style; for (var i in t) { var n = u[i] || i; e[n] = t[i] } }, d.getPosition = function () { var t = getComputedStyle(this.element), e = this.layout._getOption("originLeft"), i = this.layout._getOption("originTop"), n = t[e ? "left" : "right"], o = t[i ? "top" : "bottom"], r = this.layout.size, s = -1 != n.indexOf("%") ? parseFloat(n) / 100 * r.width : parseInt(n, 10), a = -1 != o.indexOf("%") ? parseFloat(o) / 100 * r.height : parseInt(o, 10); s = isNaN(s) ? 0 : s, a = isNaN(a) ? 0 : a, s -= e ? r.paddingLeft : r.paddingRight, a -= i ? r.paddingTop : r.paddingBottom, this.position.x = s, this.position.y = a }, d.layoutPosition = function () { var t = this.layout.size, e = {}, i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), o = i ? "paddingLeft" : "paddingRight", r = i ? "left" : "right", s = i ? "right" : "left", a = this.position.x + t[o]; e[r] = this.getXValue(a), e[s] = ""; var h = n ? "paddingTop" : "paddingBottom", u = n ? "top" : "bottom", d = n ? "bottom" : "top", l = this.position.y + t[h]; e[u] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this]) }, d.getXValue = function (t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px" }, d.getYValue = function (t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px" }, d._transitionTo = function (t, e) { this.getPosition(); var i = this.position.x, n = this.position.y, o = parseInt(t, 10), r = parseInt(e, 10), s = o === this.position.x && r === this.position.y; if (this.setPosition(t, e), s && !this.isTransitioning) return void this.layoutPosition(); var a = t - i, h = e - n, u = {}; u.transform = this.getTranslate(a, h), this.transition({ to: u, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) }, d.getTranslate = function (t, e) { var i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"); return t = i ? t : -t, e = n ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)" }, d.goTo = function (t, e) { this.setPosition(t, e), this.layoutPosition() }, d.moveTo = d._transitionTo, d.setPosition = function (t, e) { this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10) }, d._nonTransition = function (t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this) }, d.transition = function (t) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t); var e = this._transn; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var n = this.element.offsetHeight; n = null } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 }; var l = "opacity," + o(a); d.enableTransition = function () { if (!this.isTransitioning) { var t = this.layout.options.transitionDuration; t = "number" == typeof t ? t + "ms" : t, this.css({ transitionProperty: l, transitionDuration: t, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(h, this, !1) } }, d.onwebkitTransitionEnd = function (t) { this.ontransitionend(t) }, d.onotransitionend = function (t) { this.ontransitionend(t) }; var c = { "-webkit-transform": "transform" }; d.ontransitionend = function (t) { if (t.target === this.element) { var e = this._transn, n = c[t.propertyName] || t.propertyName; if (delete e.ingProperties[n], i(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[n]), n in e.onEnd) { var o = e.onEnd[n]; o.call(this), delete e.onEnd[n] } this.emitEvent("transitionEnd", [this]) } }, d.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(h, this, !1), this.isTransitioning = !1 }, d._removeStyles = function (t) { var e = {}; for (var i in t) e[i] = ""; this.css(e) }; var f = { transitionProperty: "", transitionDuration: "", transitionDelay: "" }; return d.removeTransitionStyles = function () { this.css(f) }, d.stagger = function (t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms" }, d.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, d.remove = function () { return s && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function () { this.removeElem() }), void this.hide()) : void this.removeElem() }, d.reveal = function () { delete this.isHidden, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("visibleStyle"); e[i] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e }) }, d.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent("reveal") }, d.getHideRevealTransitionEndProperty = function (t) { var e = this.layout.options[t]; if (e.opacity) return "opacity"; for (var i in e) return i }, d.hide = function () { this.isHidden = !0, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("hiddenStyle"); e[i] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e }) }, d.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, d.destroy = function () { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, n }), function (t, e) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function (i, n, o, r) { return e(t, i, n, o, r) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item) }(window, function (t, e, i, n, o) { "use strict"; function r(t, e) { var i = n.getQueryElement(t); if (!i) return void (h && h.error("Bad element for " + this.constructor.namespace + ": " + (i || t))); this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e); var o = ++l; this.element.outlayerGUID = o, c[o] = this, this._create(); var r = this._getOption("initLayout"); r && this.layout() } function s(t) { function e() { t.apply(this, arguments) } return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e } function a(t) { if ("number" == typeof t) return t; var e = t.match(/(^\\d*\\.?\\d*)(\\w*)/), i = e && e[1], n = e && e[2]; if (!i.length) return 0; i = parseFloat(i); var o = m[n] || 1; return i * o } var h = t.console, u = t.jQuery, d = function () { }, l = 0, c = {}; r.namespace = "outlayer", r.Item = o, r.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }; var f = r.prototype; n.extend(f, e.prototype), f.option = function (t) { n.extend(this.options, t) }, f._getOption = function (t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t] }, r.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, f._create = function () { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle); var t = this._getOption("resize"); t && this.bindResize() }, f.reloadItems = function () { this.items = this._itemize(this.element.children) }, f._itemize = function (t) { for (var e = this._filterFindItemElements(t), i = this.constructor.Item, n = [], o = 0; o < e.length; o++) { var r = e[o], s = new i(r, this); n.push(s) } return n }, f._filterFindItemElements = function (t) { return n.filterFindElements(t, this.options.itemSelector) }, f.getItemElements = function () { return this.items.map(function (t) { return t.element }) }, f.layout = function () { this._resetLayout(), this._manageStamps(); var t = this._getOption("layoutInstant"), e = void 0 !== t ? t : !this._isLayoutInited; this.layoutItems(this.items, e), this._isLayoutInited = !0 }, f._init = f.layout, f._resetLayout = function () { this.getSize() }, f.getSize = function () { this.size = i(this.element) }, f._getMeasurement = function (t, e) { var n, o = this.options[t]; o ? ("string" == typeof o ? n = this.element.querySelector(o) : o instanceof HTMLElement && (n = o), this[t] = n ? i(n)[e] : o) : this[t] = 0 }, f.layoutItems = function (t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, f._getItemsForLayout = function (t) { return t.filter(function (t) { return !t.isIgnored }) }, f._layoutItems = function (t, e) { if (this._emitCompleteOnItems("layout", t), t && t.length) { var i = []; t.forEach(function (t) { var n = this._getItemLayoutPosition(t); n.item = t, n.isInstant = e || t.isLayoutInstant, i.push(n) }, this), this._processLayoutQueue(i) } }, f._getItemLayoutPosition = function () { return { x: 0, y: 0 } }, f._processLayoutQueue = function (t) { this.updateStagger(), t.forEach(function (t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e) }, this) }, f.updateStagger = function () { var t = this.options.stagger; return null === t || void 0 === t ? void (this.stagger = 0) : (this.stagger = a(t), this.stagger) }, f._positionItem = function (t, e, i, n, o) { n ? t.goTo(e, i) : (t.stagger(o * this.stagger), t.moveTo(e, i)) }, f._postLayout = function () { this.resizeContainer() }, f.resizeContainer = function () { var t = this._getOption("resizeContainer"); if (t) { var e = this._getContainerSize(); e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1)) } }, f._getContainerSize = d, f._setContainerMeasure = function (t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px" } }, f._emitCompleteOnItems = function (t, e) { function i() { o.dispatchEvent(t + "Complete", null, [e]) } function n() { s++, s == r && i() } var o = this, r = e.length; if (!e || !r) return void i(); var s = 0; e.forEach(function (e) { e.once(t, n) }) }, f.dispatchEvent = function (t, e, i) { var n = e ? [e].concat(i) : i; if (this.emitEvent(t, n), u) if (this.$element = this.$element || u(this.element), e) { var o = u.Event(e); o.type = t, this.$element.trigger(o, i) } else this.$element.trigger(t, i) }, f.ignore = function (t) { var e = this.getItem(t); e && (e.isIgnored = !0) }, f.unignore = function (t) { var e = this.getItem(t); e && delete e.isIgnored }, f.stamp = function (t) { t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)) }, f.unstamp = function (t) { t = this._find(t), t && t.forEach(function (t) { n.removeFrom(this.stamps, t), this.unignore(t) }, this) }, f._find = function (t) { return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0 }, f._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, f._getBoundingRect = function () { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } }, f._manageStamp = d, f._getElementOffset = function (t) { var e = t.getBoundingClientRect(), n = this._boundingRect, o = i(t), r = { left: e.left - n.left - o.marginLeft, top: e.top - n.top - o.marginTop, right: n.right - e.right - o.marginRight, bottom: n.bottom - e.bottom - o.marginBottom }; return r }, f.handleEvent = n.handleEvent, f.bindResize = function () { t.addEventListener("resize", this), this.isResizeBound = !0 }, f.unbindResize = function () { t.removeEventListener("resize", this), this.isResizeBound = !1 }, f.onresize = function () { this.resize() }, n.debounceMethod(r, "onresize", 100), f.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout() }, f.needsResizeLayout = function () { var t = i(this.element), e = this.size && t; return e && t.innerWidth !== this.size.innerWidth }, f.addItems = function (t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e }, f.appended = function (t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)) }, f.prepended = function (t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i) } }, f.reveal = function (t) { if (this._emitCompleteOnItems("reveal", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.reveal() }) } }, f.hide = function (t) { if (this._emitCompleteOnItems("hide", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.hide() }) } }, f.revealItemElements = function (t) { var e = this.getItems(t); this.reveal(e) }, f.hideItemElements = function (t) { var e = this.getItems(t); this.hide(e) }, f.getItem = function (t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i } }, f.getItems = function (t) { t = n.makeArray(t); var e = []; return t.forEach(function (t) { var i = this.getItem(t); i && e.push(i) }, this), e }, f.remove = function (t) { var e = this.getItems(t); this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function (t) { t.remove(), n.removeFrom(this.items, t) }, this) }, f.destroy = function () { var t = this.element.style; t.height = "", t.position = "", t.width = "", this.items.forEach(function (t) { t.destroy() }), this.unbindResize(); var e = this.element.outlayerGUID; delete c[e], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace) }, r.data = function (t) { t = n.getQueryElement(t); var e = t && t.outlayerGUID; return e && c[e] }, r.create = function (t, e) { var i = s(r); return i.defaults = n.extend({}, r.defaults), n.extend(i.defaults, e), i.compatOptions = n.extend({}, r.compatOptions), i.namespace = t, i.data = r.data, i.Item = s(o), n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i }; var m = { ms: 1, s: 1e3 }; return r.Item = o, r }), function (t, e) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize) }(window, function (t, e) { var i = t.create("masonry"); i.compatOptions.fitWidth = "isFitWidth"; var n = i.prototype; return n._resetLayout = function () { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = []; for (var t = 0; t < this.cols; t++) this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0 }, n.measureColumns = function () { if (this.getContainerWidth(), !this.columnWidth) { var t = this.items[0], i = t && t.element; this.columnWidth = i && e(i).outerWidth || this.containerWidth } var n = this.columnWidth += this.gutter, o = this.containerWidth + this.gutter, r = o / n, s = n - o % n, a = s && 1 > s ? "round" : "floor"; r = Math[a](r), this.cols = Math.max(r, 1) }, n.getContainerWidth = function () { var t = this._getOption("fitWidth"), i = t ? this.element.parentNode : this.element, n = e(i); this.containerWidth = n && n.innerWidth }, n._getItemLayoutPosition = function (t) { t.getSize(); var e = t.size.outerWidth % this.columnWidth, i = e && 1 > e ? "round" : "ceil", n = Math[i](t.size.outerWidth / this.columnWidth); n = Math.min(n, this.cols); for (var o = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", r = this[o](n, t), s = { x: this.columnWidth * r.col, y: r.y }, a = r.y + t.size.outerHeight, h = n + r.col, u = r.col; h > u; u++) this.colYs[u] = a; return s }, n._getTopColPosition = function (t) { var e = this._getTopColGroup(t), i = Math.min.apply(Math, e); return { col: e.indexOf(i), y: i } }, n._getTopColGroup = function (t) { if (2 > t) return this.colYs; for (var e = [], i = this.cols + 1 - t, n = 0; i > n; n++) e[n] = this._getColGroupY(n, t); return e }, n._getColGroupY = function (t, e) { if (2 > e) return this.colYs[t]; var i = this.colYs.slice(t, t + e); return Math.max.apply(Math, i) }, n._getHorizontalColPosition = function (t, e) { var i = this.horizontalColIndex % this.cols, n = t > 1 && i + t > this.cols; i = n ? 0 : i; var o = e.size.outerWidth && e.size.outerHeight; return this.horizontalColIndex = o ? i + t : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, t) } }, n._manageStamp = function (t) { var i = e(t), n = this._getElementOffset(t), o = this._getOption("originLeft"), r = o ? n.left : n.right, s = r + i.outerWidth, a = Math.floor(r / this.columnWidth); a = Math.max(0, a); var h = Math.floor(s / this.columnWidth); h -= s % this.columnWidth ? 0 : 1, h = Math.min(this.cols - 1, h); for (var u = this._getOption("originTop"), d = (u ? n.top : n.bottom) + i.outerHeight, l = a; h >= l; l++) this.colYs[l] = Math.max(d, this.colYs[l]) }, n._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t }, n._getContainerFitWidth = function () { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++; return (this.cols - t) * this.columnWidth - this.gutter }, n.needsResizeLayout = function () { var t = this.containerWidth; return this.getContainerWidth(), t != this.containerWidth }, i });'},function(t,e,n){n(0)(n(94)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/selectize.js")},function(t,e){t.exports="/**\r\n * sifter.js\r\n * Copyright (c) 2013 Brian Reavis & contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\r\n * file except in compliance with the License. You may obtain a copy of the License at:\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under\r\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\r\n * ANY KIND, either express or implied. See the License for the specific language\r\n * governing permissions and limitations under the License.\r\n *\r\n * @author Brian Reavis <brian@thirdroute.com>\r\n */\r\n\r\n(function(root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine('sifter', factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\tmodule.exports = factory();\r\n\t} else {\r\n\t\troot.Sifter = factory();\r\n\t}\r\n}(this, function() {\r\n\r\n\t/**\r\n\t * Textually searches arrays and hashes of objects\r\n\t * by property (or multiple properties). Designed\r\n\t * specifically for autocomplete.\r\n\t *\r\n\t * @constructor\r\n\t * @param {array|object} items\r\n\t * @param {object} items\r\n\t */\r\n\tvar Sifter = function(items, settings) {\r\n\t\tthis.items = items;\r\n\t\tthis.settings = settings || {diacritics: true};\r\n\t};\r\n\r\n\t/**\r\n\t * Splits a search string into an array of individual\r\n\t * regexps to be used to match results.\r\n\t *\r\n\t * @param {string} query\r\n\t * @returns {array}\r\n\t */\r\n\tSifter.prototype.tokenize = function(query) {\r\n\t\tquery = trim(String(query || '').toLowerCase());\r\n\t\tif (!query || !query.length) return [];\r\n\r\n\t\tvar i, n, regex, letter;\r\n\t\tvar tokens = [];\r\n\t\tvar words = query.split(/ +/);\r\n\r\n\t\tfor (i = 0, n = words.length; i < n; i++) {\r\n\t\t\tregex = escape_regex(words[i]);\r\n\t\t\tif (this.settings.diacritics) {\r\n\t\t\t\tfor (letter in DIACRITICS) {\r\n\t\t\t\t\tif (DIACRITICS.hasOwnProperty(letter)) {\r\n\t\t\t\t\t\tregex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttokens.push({\r\n\t\t\t\tstring : words[i],\r\n\t\t\t\tregex  : new RegExp(regex, 'i')\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn tokens;\r\n\t};\r\n\r\n\t/**\r\n\t * Iterates over arrays and hashes.\r\n\t *\r\n\t * ```\r\n\t * this.iterator(this.items, function(item, id) {\r\n\t *    // invoked for each item\r\n\t * });\r\n\t * ```\r\n\t *\r\n\t * @param {array|object} object\r\n\t */\r\n\tSifter.prototype.iterator = function(object, callback) {\r\n\t\tvar iterator;\r\n\t\tif (is_array(object)) {\r\n\t\t\titerator = Array.prototype.forEach || function(callback) {\r\n\t\t\t\tfor (var i = 0, n = this.length; i < n; i++) {\r\n\t\t\t\t\tcallback(this[i], i, this);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\titerator = function(callback) {\r\n\t\t\t\tfor (var key in this) {\r\n\t\t\t\t\tif (this.hasOwnProperty(key)) {\r\n\t\t\t\t\t\tcallback(this[key], key, this);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\titerator.apply(object, [callback]);\r\n\t};\r\n\r\n\t/**\r\n\t * Returns a function to be used to score individual results.\r\n\t *\r\n\t * Good matches will have a higher score than poor matches.\r\n\t * If an item is not a match, 0 will be returned by the function.\r\n\t *\r\n\t * @param {object|string} search\r\n\t * @param {object} options (optional)\r\n\t * @returns {function}\r\n\t */\r\n\tSifter.prototype.getScoreFunction = function(search, options) {\r\n\t\tvar self, fields, tokens, token_count;\r\n\r\n\t\tself        = this;\r\n\t\tsearch      = self.prepareSearch(search, options);\r\n\t\ttokens      = search.tokens;\r\n\t\tfields      = search.options.fields;\r\n\t\ttoken_count = tokens.length;\r\n\r\n\t\t/**\r\n\t\t * Calculates how close of a match the\r\n\t\t * given value is against a search token.\r\n\t\t *\r\n\t\t * @param {mixed} value\r\n\t\t * @param {object} token\r\n\t\t * @return {number}\r\n\t\t */\r\n\t\tvar scoreValue = function(value, token) {\r\n\t\t\tvar score, pos;\r\n\r\n\t\t\tif (!value) return 0;\r\n\t\t\tvalue = String(value || '');\r\n\t\t\tpos = value.search(token.regex);\r\n\t\t\tif (pos === -1) return 0;\r\n\t\t\tscore = token.string.length / value.length;\r\n\t\t\tif (pos === 0) score += 0.5;\r\n\t\t\treturn score;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Calculates the score of an object\r\n\t\t * against the search query.\r\n\t\t *\r\n\t\t * @param {object} token\r\n\t\t * @param {object} data\r\n\t\t * @return {number}\r\n\t\t */\r\n\t\tvar scoreObject = (function() {\r\n\t\t\tvar field_count = fields.length;\r\n\t\t\tif (!field_count) {\r\n\t\t\t\treturn function() { return 0; };\r\n\t\t\t}\r\n\t\t\tif (field_count === 1) {\r\n\t\t\t\treturn function(token, data) {\r\n\t\t\t\t\treturn scoreValue(data[fields[0]], token);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn function(token, data) {\r\n\t\t\t\tfor (var i = 0, sum = 0; i < field_count; i++) {\r\n\t\t\t\t\tsum += scoreValue(data[fields[i]], token);\r\n\t\t\t\t}\r\n\t\t\t\treturn sum / field_count;\r\n\t\t\t};\r\n\t\t})();\r\n\r\n\t\tif (!token_count) {\r\n\t\t\treturn function() { return 0; };\r\n\t\t}\r\n\t\tif (token_count === 1) {\r\n\t\t\treturn function(data) {\r\n\t\t\t\treturn scoreObject(tokens[0], data);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (search.options.conjunction === 'and') {\r\n\t\t\treturn function(data) {\r\n\t\t\t\tvar score;\r\n\t\t\t\tfor (var i = 0, sum = 0; i < token_count; i++) {\r\n\t\t\t\t\tscore = scoreObject(tokens[i], data);\r\n\t\t\t\t\tif (score <= 0) return 0;\r\n\t\t\t\t\tsum += score;\r\n\t\t\t\t}\r\n\t\t\t\treturn sum / token_count;\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn function(data) {\r\n\t\t\t\tfor (var i = 0, sum = 0; i < token_count; i++) {\r\n\t\t\t\t\tsum += scoreObject(tokens[i], data);\r\n\t\t\t\t}\r\n\t\t\t\treturn sum / token_count;\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Returns a function that can be used to compare two\r\n\t * results, for sorting purposes. If no sorting should\r\n\t * be performed, `null` will be returned.\r\n\t *\r\n\t * @param {string|object} search\r\n\t * @param {object} options\r\n\t * @return function(a,b)\r\n\t */\r\n\tSifter.prototype.getSortFunction = function(search, options) {\r\n\t\tvar i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;\r\n\r\n\t\tself   = this;\r\n\t\tsearch = self.prepareSearch(search, options);\r\n\t\tsort   = (!search.query && options.sort_empty) || options.sort;\r\n\r\n\t\t/**\r\n\t\t * Fetches the specified sort field value\r\n\t\t * from a search result item.\r\n\t\t *\r\n\t\t * @param  {string} name\r\n\t\t * @param  {object} result\r\n\t\t * @return {mixed}\r\n\t\t */\r\n\t\tget_field  = function(name, result) {\r\n\t\t\tif (name === '$score') return result.score;\r\n\t\t\treturn self.items[result.id][name];\r\n\t\t};\r\n\r\n\t\t// parse options\r\n\t\tfields = [];\r\n\t\tif (sort) {\r\n\t\t\tfor (i = 0, n = sort.length; i < n; i++) {\r\n\t\t\t\tif (search.query || sort[i].field !== '$score') {\r\n\t\t\t\t\tfields.push(sort[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the \"$score\" field is implied to be the primary\r\n\t\t// sort field, unless it's manually specified\r\n\t\tif (search.query) {\r\n\t\t\timplicit_score = true;\r\n\t\t\tfor (i = 0, n = fields.length; i < n; i++) {\r\n\t\t\t\tif (fields[i].field === '$score') {\r\n\t\t\t\t\timplicit_score = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (implicit_score) {\r\n\t\t\t\tfields.unshift({field: '$score', direction: 'desc'});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfor (i = 0, n = fields.length; i < n; i++) {\r\n\t\t\t\tif (fields[i].field === '$score') {\r\n\t\t\t\t\tfields.splice(i, 1);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tmultipliers = [];\r\n\t\tfor (i = 0, n = fields.length; i < n; i++) {\r\n\t\t\tmultipliers.push(fields[i].direction === 'desc' ? -1 : 1);\r\n\t\t}\r\n\r\n\t\t// build function\r\n\t\tfields_count = fields.length;\r\n\t\tif (!fields_count) {\r\n\t\t\treturn null;\r\n\t\t} else if (fields_count === 1) {\r\n\t\t\tfield = fields[0].field;\r\n\t\t\tmultiplier = multipliers[0];\r\n\t\t\treturn function(a, b) {\r\n\t\t\t\treturn multiplier * cmp(\r\n\t\t\t\t\tget_field(field, a),\r\n\t\t\t\t\tget_field(field, b)\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn function(a, b) {\r\n\t\t\t\tvar i, result, a_value, b_value, field;\r\n\t\t\t\tfor (i = 0; i < fields_count; i++) {\r\n\t\t\t\t\tfield = fields[i].field;\r\n\t\t\t\t\tresult = multipliers[i] * cmp(\r\n\t\t\t\t\t\tget_field(field, a),\r\n\t\t\t\t\t\tget_field(field, b)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (result) return result;\r\n\t\t\t\t}\r\n\t\t\t\treturn 0;\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Parses a search query and returns an object\r\n\t * with tokens and fields ready to be populated\r\n\t * with results.\r\n\t *\r\n\t * @param {string} query\r\n\t * @param {object} options\r\n\t * @returns {object}\r\n\t */\r\n\tSifter.prototype.prepareSearch = function(query, options) {\r\n\t\tif (typeof query === 'object') return query;\r\n\r\n\t\toptions = extend({}, options);\r\n\r\n\t\tvar option_fields     = options.fields;\r\n\t\tvar option_sort       = options.sort;\r\n\t\tvar option_sort_empty = options.sort_empty;\r\n\r\n\t\tif (option_fields && !is_array(option_fields)) options.fields = [option_fields];\r\n\t\tif (option_sort && !is_array(option_sort)) options.sort = [option_sort];\r\n\t\tif (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];\r\n\r\n\t\treturn {\r\n\t\t\toptions : options,\r\n\t\t\tquery   : String(query || '').toLowerCase(),\r\n\t\t\ttokens  : this.tokenize(query),\r\n\t\t\ttotal   : 0,\r\n\t\t\titems   : []\r\n\t\t};\r\n\t};\r\n\r\n\t/**\r\n\t * Searches through all items and returns a sorted array of matches.\r\n\t *\r\n\t * The `options` parameter can contain:\r\n\t *\r\n\t *   - fields {string|array}\r\n\t *   - sort {array}\r\n\t *   - score {function}\r\n\t *   - filter {bool}\r\n\t *   - limit {integer}\r\n\t *\r\n\t * Returns an object containing:\r\n\t *\r\n\t *   - options {object}\r\n\t *   - query {string}\r\n\t *   - tokens {array}\r\n\t *   - total {int}\r\n\t *   - items {array}\r\n\t *\r\n\t * @param {string} query\r\n\t * @param {object} options\r\n\t * @returns {object}\r\n\t */\r\n\tSifter.prototype.search = function(query, options) {\r\n\t\tvar self = this, value, score, search, calculateScore;\r\n\t\tvar fn_sort;\r\n\t\tvar fn_score;\r\n\r\n\t\tsearch  = this.prepareSearch(query, options);\r\n\t\toptions = search.options;\r\n\t\tquery   = search.query;\r\n\r\n\t\t// generate result scoring function\r\n\t\tfn_score = options.score || self.getScoreFunction(search);\r\n\r\n\t\t// perform search and sort\r\n\t\tif (query.length) {\r\n\t\t\tself.iterator(self.items, function(item, id) {\r\n\t\t\t\tscore = fn_score(item);\r\n\t\t\t\tif (options.filter === false || score > 0) {\r\n\t\t\t\t\tsearch.items.push({'score': score, 'id': id});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tself.iterator(self.items, function(item, id) {\r\n\t\t\t\tsearch.items.push({'score': 1, 'id': id});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfn_sort = self.getSortFunction(search, options);\r\n\t\tif (fn_sort) search.items.sort(fn_sort);\r\n\r\n\t\t// apply limits\r\n\t\tsearch.total = search.items.length;\r\n\t\tif (typeof options.limit === 'number') {\r\n\t\t\tsearch.items = search.items.slice(0, options.limit);\r\n\t\t}\r\n\r\n\t\treturn search;\r\n\t};\r\n\r\n\t// utilities\r\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n\r\n\tvar cmp = function(a, b) {\r\n\t\tif (typeof a === 'number' && typeof b === 'number') {\r\n\t\t\treturn a > b ? 1 : (a < b ? -1 : 0);\r\n\t\t}\r\n\t\ta = String(a || '').toLowerCase();\r\n\t\tb = String(b || '').toLowerCase();\r\n\t\tif (a > b) return 1;\r\n\t\tif (b > a) return -1;\r\n\t\treturn 0;\r\n\t};\r\n\r\n\tvar extend = function(a, b) {\r\n\t\tvar i, n, k, object;\r\n\t\tfor (i = 1, n = arguments.length; i < n; i++) {\r\n\t\t\tobject = arguments[i];\r\n\t\t\tif (!object) continue;\r\n\t\t\tfor (k in object) {\r\n\t\t\t\tif (object.hasOwnProperty(k)) {\r\n\t\t\t\t\ta[k] = object[k];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn a;\r\n\t};\r\n\r\n\tvar trim = function(str) {\r\n\t\treturn (str + '').replace(/^\\s+|\\s+$|/g, '');\r\n\t};\r\n\r\n\tvar escape_regex = function(str) {\r\n\t\treturn (str + '').replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\r\n\t};\r\n\r\n\tvar is_array = Array.isArray || ($ && $.isArray) || function(object) {\r\n\t\treturn Object.prototype.toString.call(object) === '[object Array]';\r\n\t};\r\n\r\n\tvar DIACRITICS = {\r\n\t\t'a': '[aÀÁÂÃÄÅàáâãäåĀā]',\r\n\t\t'c': '[cÇçćĆčČ]',\r\n\t\t'd': '[dđĐďĎ]',\r\n\t\t'e': '[eÈÉÊËèéêëěĚĒē]',\r\n\t\t'i': '[iÌÍÎÏìíîïĪī]',\r\n\t\t'n': '[nÑñňŇ]',\r\n\t\t'o': '[oÒÓÔÕÕÖØòóôõöøŌō]',\r\n\t\t'r': '[rřŘ]',\r\n\t\t's': '[sŠš]',\r\n\t\t't': '[tťŤ]',\r\n\t\t'u': '[uÙÚÛÜùúûüůŮŪū]',\r\n\t\t'y': '[yŸÿýÝ]',\r\n\t\t'z': '[zŽž]'\r\n\t};\r\n\r\n\t// export\r\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n\r\n\treturn Sifter;\r\n}));\r\n\r\n\r\n\r\n/**\r\n * microplugin.js\r\n * Copyright (c) 2013 Brian Reavis & contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\r\n * file except in compliance with the License. You may obtain a copy of the License at:\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under\r\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\r\n * ANY KIND, either express or implied. See the License for the specific language\r\n * governing permissions and limitations under the License.\r\n *\r\n * @author Brian Reavis <brian@thirdroute.com>\r\n */\r\n\r\n(function(root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine('microplugin', factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\tmodule.exports = factory();\r\n\t} else {\r\n\t\troot.MicroPlugin = factory();\r\n\t}\r\n}(this, function() {\r\n\tvar MicroPlugin = {};\r\n\r\n\tMicroPlugin.mixin = function(Interface) {\r\n\t\tInterface.plugins = {};\r\n\r\n\t\t/**\r\n\t\t * Initializes the listed plugins (with options).\r\n\t\t * Acceptable formats:\r\n\t\t *\r\n\t\t * List (without options):\r\n\t\t *   ['a', 'b', 'c']\r\n\t\t *\r\n\t\t * List (with options):\r\n\t\t *   [{'name': 'a', options: {}}, {'name': 'b', options: {}}]\r\n\t\t *\r\n\t\t * Hash (with options):\r\n\t\t *   {'a': { ... }, 'b': { ... }, 'c': { ... }}\r\n\t\t *\r\n\t\t * @param {mixed} plugins\r\n\t\t */\r\n\t\tInterface.prototype.initializePlugins = function(plugins) {\r\n\t\t\tvar i, n, key;\r\n\t\t\tvar self  = this;\r\n\t\t\tvar queue = [];\r\n\r\n\t\t\tself.plugins = {\r\n\t\t\t\tnames     : [],\r\n\t\t\t\tsettings  : {},\r\n\t\t\t\trequested : {},\r\n\t\t\t\tloaded    : {}\r\n\t\t\t};\r\n\r\n\t\t\tif (utils.isArray(plugins)) {\r\n\t\t\t\tfor (i = 0, n = plugins.length; i < n; i++) {\r\n\t\t\t\t\tif (typeof plugins[i] === 'string') {\r\n\t\t\t\t\t\tqueue.push(plugins[i]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.plugins.settings[plugins[i].name] = plugins[i].options;\r\n\t\t\t\t\t\tqueue.push(plugins[i].name);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (plugins) {\r\n\t\t\t\tfor (key in plugins) {\r\n\t\t\t\t\tif (plugins.hasOwnProperty(key)) {\r\n\t\t\t\t\t\tself.plugins.settings[key] = plugins[key];\r\n\t\t\t\t\t\tqueue.push(key);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\twhile (queue.length) {\r\n\t\t\t\tself.require(queue.shift());\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tInterface.prototype.loadPlugin = function(name) {\r\n\t\t\tvar self    = this;\r\n\t\t\tvar plugins = self.plugins;\r\n\t\t\tvar plugin  = Interface.plugins[name];\r\n\r\n\t\t\tif (!Interface.plugins.hasOwnProperty(name)) {\r\n\t\t\t\tthrow new Error('Unable to find \"' +  name + '\" plugin');\r\n\t\t\t}\r\n\r\n\t\t\tplugins.requested[name] = true;\r\n\t\t\tplugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\r\n\t\t\tplugins.names.push(name);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Initializes a plugin.\r\n\t\t *\r\n\t\t * @param {string} name\r\n\t\t */\r\n\t\tInterface.prototype.require = function(name) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar plugins = self.plugins;\r\n\r\n\t\t\tif (!self.plugins.loaded.hasOwnProperty(name)) {\r\n\t\t\t\tif (plugins.requested[name]) {\r\n\t\t\t\t\tthrow new Error('Plugin has circular dependency (\"' + name + '\")');\r\n\t\t\t\t}\r\n\t\t\t\tself.loadPlugin(name);\r\n\t\t\t}\r\n\r\n\t\t\treturn plugins.loaded[name];\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Registers a plugin.\r\n\t\t *\r\n\t\t * @param {string} name\r\n\t\t * @param {function} fn\r\n\t\t */\r\n\t\tInterface.define = function(name, fn) {\r\n\t\t\tInterface.plugins[name] = {\r\n\t\t\t\t'name' : name,\r\n\t\t\t\t'fn'   : fn\r\n\t\t\t};\r\n\t\t};\r\n\t};\r\n\r\n\tvar utils = {\r\n\t\tisArray: Array.isArray || function(vArg) {\r\n\t\t\treturn Object.prototype.toString.call(vArg) === '[object Array]';\r\n\t\t}\r\n\t};\r\n\r\n\treturn MicroPlugin;\r\n}));\r\n\r\n/**\r\n * selectize.js (v0.11.2)\r\n * Copyright (c) 2013 Brian Reavis & contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\r\n * file except in compliance with the License. You may obtain a copy of the License at:\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under\r\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\r\n * ANY KIND, either express or implied. See the License for the specific language\r\n * governing permissions and limitations under the License.\r\n *\r\n * @author Brian Reavis <brian@thirdroute.com>\r\n */\r\n\r\n/*jshint curly:false */\r\n/*jshint browser:true */\r\n\r\n(function(root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine('selectize', ['jquery','sifter','microplugin'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\tmodule.exports = factory(require('jquery'), require('sifter'), require('microplugin'));\r\n\t} else {\r\n\t\troot.Selectize = factory(root.jQuery, root.Sifter, root.MicroPlugin);\r\n\t}\r\n}(this, function($, Sifter, MicroPlugin) {\r\n\t'use strict';\r\n\r\n\tvar highlight = function($element, pattern) {\r\n\t\tif (typeof pattern === 'string' && !pattern.length) return;\r\n\t\tvar regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;\r\n\t\r\n\t\tvar highlight = function(node) {\r\n\t\t\tvar skip = 0;\r\n\t\t\tif (node.nodeType === 3) {\r\n\t\t\t\tvar pos = node.data.search(regex);\r\n\t\t\t\tif (pos >= 0 && node.data.length > 0) {\r\n\t\t\t\t\tvar match = node.data.match(regex);\r\n\t\t\t\t\tvar spannode = document.createElement('span');\r\n\t\t\t\t\tspannode.className = 'highlight';\r\n\t\t\t\t\tvar middlebit = node.splitText(pos);\r\n\t\t\t\t\tvar endbit = middlebit.splitText(match[0].length);\r\n\t\t\t\t\tvar middleclone = middlebit.cloneNode(true);\r\n\t\t\t\t\tspannode.appendChild(middleclone);\r\n\t\t\t\t\tmiddlebit.parentNode.replaceChild(spannode, middlebit);\r\n\t\t\t\t\tskip = 1;\r\n\t\t\t\t}\r\n\t\t\t} else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {\r\n\t\t\t\tfor (var i = 0; i < node.childNodes.length; ++i) {\r\n\t\t\t\t\ti += highlight(node.childNodes[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn skip;\r\n\t\t};\r\n\t\r\n\t\treturn $element.each(function() {\r\n\t\t\thighlight(this);\r\n\t\t});\r\n\t};\r\n\t\r\n\tvar MicroEvent = function() {};\r\n\tMicroEvent.prototype = {\r\n\t\ton: function(event, fct){\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tthis._events[event] = this._events[event] || [];\r\n\t\t\tthis._events[event].push(fct);\r\n\t\t},\r\n\t\toff: function(event, fct){\r\n\t\t\tvar n = arguments.length;\r\n\t\t\tif (n === 0) return delete this._events;\r\n\t\t\tif (n === 1) return delete this._events[event];\r\n\t\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tif (event in this._events === false) return;\r\n\t\t\tthis._events[event].splice(this._events[event].indexOf(fct), 1);\r\n\t\t},\r\n\t\ttrigger: function(event /* , args... */){\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tif (event in this._events === false) return;\r\n\t\t\tfor (var i = 0; i < this._events[event].length; i++){\r\n\t\t\t\tthis._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\t/**\r\n\t * Mixin will delegate all MicroEvent.js function in the destination object.\r\n\t *\r\n\t * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent\r\n\t *\r\n\t * @param {object} the object which will support MicroEvent\r\n\t */\r\n\tMicroEvent.mixin = function(destObject){\r\n\t\tvar props = ['on', 'off', 'trigger'];\r\n\t\tfor (var i = 0; i < props.length; i++){\r\n\t\t\tdestObject.prototype[props[i]] = MicroEvent.prototype[props[i]];\r\n\t\t}\r\n\t};\r\n\t\r\n\tvar IS_MAC        = /Mac/.test(navigator.userAgent);\r\n\t\r\n\tvar KEY_A         = 65;\r\n\tvar KEY_COMMA     = 188;\r\n\tvar KEY_RETURN    = 13;\r\n\tvar KEY_ESC       = 27;\r\n\tvar KEY_LEFT      = 37;\r\n\tvar KEY_UP        = 38;\r\n\tvar KEY_P         = 80;\r\n\tvar KEY_RIGHT     = 39;\r\n\tvar KEY_DOWN      = 40;\r\n\tvar KEY_N         = 78;\r\n\tvar KEY_BACKSPACE = 8;\r\n\tvar KEY_DELETE    = 46;\r\n\tvar KEY_SHIFT     = 16;\r\n\tvar KEY_CMD       = IS_MAC ? 91 : 17;\r\n\tvar KEY_CTRL      = IS_MAC ? 18 : 17;\r\n\tvar KEY_TAB       = 9;\r\n\t\r\n\tvar TAG_SELECT    = 1;\r\n\tvar TAG_INPUT     = 2;\r\n\t\r\n\t\r\n\tvar isset = function(object) {\r\n\t\treturn typeof object !== 'undefined';\r\n\t};\r\n\t\r\n\t/**\r\n\t * Converts a scalar to its best string representation\r\n\t * for hash keys and HTML attribute values.\r\n\t *\r\n\t * Transformations:\r\n\t *   'str'     -> 'str'\r\n\t *   null      -> ''\r\n\t *   undefined -> ''\r\n\t *   true      -> '1'\r\n\t *   false     -> '0'\r\n\t *   0         -> '0'\r\n\t *   1         -> '1'\r\n\t *\r\n\t * @param {string} value\r\n\t * @returns {string|null}\r\n\t */\r\n\tvar hash_key = function(value) {\r\n\t\tif (typeof value === 'undefined' || value === null) return null;\r\n\t\tif (typeof value === 'boolean') return value ? '1' : '0';\r\n\t\treturn value + '';\r\n\t};\r\n\t\r\n\t/**\r\n\t * Escapes a string for use within HTML.\r\n\t *\r\n\t * @param {string} str\r\n\t * @returns {string}\r\n\t */\r\n\tvar escape_html = function(str) {\r\n\t\treturn (str + '')\r\n\t\t\t.replace(/&/g, '&amp;')\r\n\t\t\t.replace(/</g, '&lt;')\r\n\t\t\t.replace(/>/g, '&gt;')\r\n\t\t\t.replace(/\"/g, '&quot;');\r\n\t};\r\n\t\r\n\t/**\r\n\t * Escapes \"$\" characters in replacement strings.\r\n\t *\r\n\t * @param {string} str\r\n\t * @returns {string}\r\n\t */\r\n\tvar escape_replace = function(str) {\r\n\t\treturn (str + '').replace(/\\$/g, '$$$$');\r\n\t};\r\n\t\r\n\tvar hook = {};\r\n\t\r\n\t/**\r\n\t * Wraps `method` on `self` so that `fn`\r\n\t * is invoked before the original method.\r\n\t *\r\n\t * @param {object} self\r\n\t * @param {string} method\r\n\t * @param {function} fn\r\n\t */\r\n\thook.before = function(self, method, fn) {\r\n\t\tvar original = self[method];\r\n\t\tself[method] = function() {\r\n\t\t\tfn.apply(self, arguments);\r\n\t\t\treturn original.apply(self, arguments);\r\n\t\t};\r\n\t};\r\n\t\r\n\t/**\r\n\t * Wraps `method` on `self` so that `fn`\r\n\t * is invoked after the original method.\r\n\t *\r\n\t * @param {object} self\r\n\t * @param {string} method\r\n\t * @param {function} fn\r\n\t */\r\n\thook.after = function(self, method, fn) {\r\n\t\tvar original = self[method];\r\n\t\tself[method] = function() {\r\n\t\t\tvar result = original.apply(self, arguments);\r\n\t\t\tfn.apply(self, arguments);\r\n\t\t\treturn result;\r\n\t\t};\r\n\t};\r\n\t\r\n\t/**\r\n\t * Builds a hash table out of an array of\r\n\t * objects, using the specified `key` within\r\n\t * each object.\r\n\t *\r\n\t * @param {string} key\r\n\t * @param {mixed} objects\r\n\t */\r\n\tvar build_hash_table = function(key, objects) {\r\n\t\tif (!$.isArray(objects)) return objects;\r\n\t\tvar i, n, table = {};\r\n\t\tfor (i = 0, n = objects.length; i < n; i++) {\r\n\t\t\tif (objects[i].hasOwnProperty(key)) {\r\n\t\t\t\ttable[objects[i][key]] = objects[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn table;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Wraps `fn` so that it can only be invoked once.\r\n\t *\r\n\t * @param {function} fn\r\n\t * @returns {function}\r\n\t */\r\n\tvar once = function(fn) {\r\n\t\tvar called = false;\r\n\t\treturn function() {\r\n\t\t\tif (called) return;\r\n\t\t\tcalled = true;\r\n\t\t\tfn.apply(this, arguments);\r\n\t\t};\r\n\t};\r\n\t\r\n\t/**\r\n\t * Wraps `fn` so that it can only be called once\r\n\t * every `delay` milliseconds (invoked on the falling edge).\r\n\t *\r\n\t * @param {function} fn\r\n\t * @param {int} delay\r\n\t * @returns {function}\r\n\t */\r\n\tvar debounce = function(fn, delay) {\r\n\t\tvar timeout;\r\n\t\treturn function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar args = arguments;\r\n\t\t\twindow.clearTimeout(timeout);\r\n\t\t\ttimeout = window.setTimeout(function() {\r\n\t\t\t\tfn.apply(self, args);\r\n\t\t\t}, delay);\r\n\t\t};\r\n\t};\r\n\t\r\n\t/**\r\n\t * Debounce all fired events types listed in `types`\r\n\t * while executing the provided `fn`.\r\n\t *\r\n\t * @param {object} self\r\n\t * @param {array} types\r\n\t * @param {function} fn\r\n\t */\r\n\tvar debounce_events = function(self, types, fn) {\r\n\t\tvar type;\r\n\t\tvar trigger = self.trigger;\r\n\t\tvar event_args = {};\r\n\t\r\n\t\t// override trigger method\r\n\t\tself.trigger = function() {\r\n\t\t\tvar type = arguments[0];\r\n\t\t\tif (types.indexOf(type) !== -1) {\r\n\t\t\t\tevent_args[type] = arguments;\r\n\t\t\t} else {\r\n\t\t\t\treturn trigger.apply(self, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\t// invoke provided function\r\n\t\tfn.apply(self, []);\r\n\t\tself.trigger = trigger;\r\n\t\r\n\t\t// trigger queued events\r\n\t\tfor (type in event_args) {\r\n\t\t\tif (event_args.hasOwnProperty(type)) {\r\n\t\t\t\ttrigger.apply(self, event_args[type]);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\t/**\r\n\t * A workaround for http://bugs.jquery.com/ticket/6696\r\n\t *\r\n\t * @param {object} $parent - Parent element to listen on.\r\n\t * @param {string} event - Event name.\r\n\t * @param {string} selector - Descendant selector to filter by.\r\n\t * @param {function} fn - Event handler.\r\n\t */\r\n\tvar watchChildEvent = function($parent, event, selector, fn) {\r\n\t\t$parent.on(event, selector, function(e) {\r\n\t\t\tvar child = e.target;\r\n\t\t\twhile (child && child.parentNode !== $parent[0]) {\r\n\t\t\t\tchild = child.parentNode;\r\n\t\t\t}\r\n\t\t\te.currentTarget = child;\r\n\t\t\treturn fn.apply(this, [e]);\r\n\t\t});\r\n\t};\r\n\t\r\n\t/**\r\n\t * Determines the current selection within a text input control.\r\n\t * Returns an object containing:\r\n\t *   - start\r\n\t *   - length\r\n\t *\r\n\t * @param {object} input\r\n\t * @returns {object}\r\n\t */\r\n\tvar getSelection = function(input) {\r\n\t\tvar result = {};\r\n\t\tif ('selectionStart' in input) {\r\n\t\t\tresult.start = input.selectionStart;\r\n\t\t\tresult.length = input.selectionEnd - result.start;\r\n\t\t} else if (document.selection) {\r\n\t\t\tinput.focus();\r\n\t\t\tvar sel = document.selection.createRange();\r\n\t\t\tvar selLen = document.selection.createRange().text.length;\r\n\t\t\tsel.moveStart('character', -input.value.length);\r\n\t\t\tresult.start = sel.text.length - selLen;\r\n\t\t\tresult.length = selLen;\r\n\t\t}\r\n\t\treturn result;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Copies CSS properties from one element to another.\r\n\t *\r\n\t * @param {object} $from\r\n\t * @param {object} $to\r\n\t * @param {array} properties\r\n\t */\r\n\tvar transferStyles = function($from, $to, properties) {\r\n\t\tvar i, n, styles = {};\r\n\t\tif (properties) {\r\n\t\t\tfor (i = 0, n = properties.length; i < n; i++) {\r\n\t\t\t\tstyles[properties[i]] = $from.css(properties[i]);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstyles = $from.css();\r\n\t\t}\r\n\t\t$to.css(styles);\r\n\t};\r\n\t\r\n\t/**\r\n\t * Measures the width of a string within a\r\n\t * parent element (in pixels).\r\n\t *\r\n\t * @param {string} str\r\n\t * @param {object} $parent\r\n\t * @returns {int}\r\n\t */\r\n\tvar measureString = function(str, $parent) {\r\n\t\tif (!str) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\r\n\t\tvar $test = $('<test>').css({\r\n\t\t\tposition: 'absolute',\r\n\t\t\ttop: -99999,\r\n\t\t\tleft: -99999,\r\n\t\t\twidth: 'auto',\r\n\t\t\tpadding: 0,\r\n\t\t\twhiteSpace: 'pre'\r\n\t\t}).text(str).appendTo('body');\r\n\t\r\n\t\ttransferStyles($parent, $test, [\r\n\t\t\t'letterSpacing',\r\n\t\t\t'fontSize',\r\n\t\t\t'fontFamily',\r\n\t\t\t'fontWeight',\r\n\t\t\t'textTransform'\r\n\t\t]);\r\n\t\r\n\t\tvar width = $test.width();\r\n\t\t$test.remove();\r\n\t\r\n\t\treturn width;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Sets up an input to grow horizontally as the user\r\n\t * types. If the value is changed manually, you can\r\n\t * trigger the \"update\" handler to resize:\r\n\t *\r\n\t * $input.trigger('update');\r\n\t *\r\n\t * @param {object} $input\r\n\t */\r\n\tvar autoGrow = function($input) {\r\n\t\tvar currentWidth = null;\r\n\t\r\n\t\tvar update = function(e, options) {\r\n\t\t\tvar value, keyCode, printable, placeholder, width;\r\n\t\t\tvar shift, character, selection;\r\n\t\t\te = e || window.event || {};\r\n\t\t\toptions = options || {};\r\n\t\r\n\t\t\tif (e.metaKey || e.altKey) return;\r\n\t\t\tif (!options.force && $input.data('grow') === false) return;\r\n\t\r\n\t\t\tvalue = $input.val();\r\n\t\t\tif (e.type && e.type.toLowerCase() === 'keydown') {\r\n\t\t\t\tkeyCode = e.keyCode;\r\n\t\t\t\tprintable = (\r\n\t\t\t\t\t(keyCode >= 97 && keyCode <= 122) || // a-z\r\n\t\t\t\t\t(keyCode >= 65 && keyCode <= 90)  || // A-Z\r\n\t\t\t\t\t(keyCode >= 48 && keyCode <= 57)  || // 0-9\r\n\t\t\t\t\tkeyCode === 32 // space\r\n\t\t\t\t);\r\n\t\r\n\t\t\t\tif (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {\r\n\t\t\t\t\tselection = getSelection($input[0]);\r\n\t\t\t\t\tif (selection.length) {\r\n\t\t\t\t\t\tvalue = value.substring(0, selection.start) + value.substring(selection.start + selection.length);\r\n\t\t\t\t\t} else if (keyCode === KEY_BACKSPACE && selection.start) {\r\n\t\t\t\t\t\tvalue = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);\r\n\t\t\t\t\t} else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {\r\n\t\t\t\t\t\tvalue = value.substring(0, selection.start) + value.substring(selection.start + 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (printable) {\r\n\t\t\t\t\tshift = e.shiftKey;\r\n\t\t\t\t\tcharacter = String.fromCharCode(e.keyCode);\r\n\t\t\t\t\tif (shift) character = character.toUpperCase();\r\n\t\t\t\t\telse character = character.toLowerCase();\r\n\t\t\t\t\tvalue += character;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\tplaceholder = $input.attr('placeholder');\r\n\t\t\tif (!value && placeholder) {\r\n\t\t\t\tvalue = placeholder;\r\n\t\t\t}\r\n\t\r\n\t\t\twidth = measureString(value, $input) + 4;\r\n\t\t\tif (width !== currentWidth) {\r\n\t\t\t\tcurrentWidth = width;\r\n\t\t\t\t$input.width(width);\r\n\t\t\t\t$input.triggerHandler('resize');\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\t$input.on('keydown keyup update blur', update);\r\n\t\tupdate();\r\n\t};\r\n\t\r\n\tvar Selectize = function($input, settings) {\r\n\t\tvar key, i, n, dir, input, self = this;\r\n\t\tinput = $input[0];\r\n\t\tinput.selectize = self;\r\n\t\r\n\t\t// detect rtl environment\r\n\t\tvar computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\r\n\t\tdir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;\r\n\t\tdir = dir || $input.parents('[dir]:first').attr('dir') || '';\r\n\t\r\n\t\t// setup default state\r\n\t\t$.extend(self, {\r\n\t\t\tsettings         : settings,\r\n\t\t\t$input           : $input,\r\n\t\t\ttagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,\r\n\t\t\trtl              : /rtl/i.test(dir),\r\n\t\r\n\t\t\teventNS          : '.selectize' + (++Selectize.count),\r\n\t\t\thighlightedValue : null,\r\n\t\t\tisOpen           : false,\r\n\t\t\tisDisabled       : false,\r\n\t\t\tisRequired       : $input.is('[required]'),\r\n\t\t\tisInvalid        : false,\r\n\t\t\tisLocked         : false,\r\n\t\t\tisFocused        : false,\r\n\t\t\tisInputHidden    : false,\r\n\t\t\tisSetup          : false,\r\n\t\t\tisShiftDown      : false,\r\n\t\t\tisCmdDown        : false,\r\n\t\t\tisCtrlDown       : false,\r\n\t\t\tignoreFocus      : false,\r\n\t\t\tignoreBlur       : false,\r\n\t\t\tignoreHover      : false,\r\n\t\t\thasOptions       : false,\r\n\t\t\tcurrentResults   : null,\r\n\t\t\tlastValue        : '',\r\n\t\t\tcaretPos         : 0,\r\n\t\t\tloading          : 0,\r\n\t\t\tloadedSearches   : {},\r\n\t\r\n\t\t\t$activeOption    : null,\r\n\t\t\t$activeItems     : [],\r\n\t\r\n\t\t\toptgroups        : {},\r\n\t\t\toptions          : {},\r\n\t\t\tuserOptions      : {},\r\n\t\t\titems            : [],\r\n\t\t\trenderCache      : {},\r\n\t\t\tonSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\r\n\t\t});\r\n\t\r\n\t\t// search system\r\n\t\tself.sifter = new Sifter(this.options, {diacritics: settings.diacritics});\r\n\t\r\n\t\t// build options table\r\n\t\t$.extend(self.options, build_hash_table(settings.valueField, settings.options));\r\n\t\tdelete self.settings.options;\r\n\t\r\n\t\t// build optgroup table\r\n\t\t$.extend(self.optgroups, build_hash_table(settings.optgroupValueField, settings.optgroups));\r\n\t\tdelete self.settings.optgroups;\r\n\t\r\n\t\t// option-dependent defaults\r\n\t\tself.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');\r\n\t\tif (typeof self.settings.hideSelected !== 'boolean') {\r\n\t\t\tself.settings.hideSelected = self.settings.mode === 'multi';\r\n\t\t}\r\n\t\r\n\t\tself.initializePlugins(self.settings.plugins);\r\n\t\tself.setupCallbacks();\r\n\t\tself.setupTemplates();\r\n\t\tself.setup();\r\n\t};\r\n\t\r\n\t// mixins\r\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n\t\r\n\tMicroEvent.mixin(Selectize);\r\n\tMicroPlugin.mixin(Selectize);\r\n\t\r\n\t// methods\r\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n\t\r\n\t$.extend(Selectize.prototype, {\r\n\t\r\n\t\t/**\r\n\t\t * Creates all elements and sets up event bindings.\r\n\t\t */\r\n\t\tsetup: function() {\r\n\t\t\tvar self      = this;\r\n\t\t\tvar settings  = self.settings;\r\n\t\t\tvar eventNS   = self.eventNS;\r\n\t\t\tvar $window   = $(window);\r\n\t\t\tvar $document = $(document);\r\n\t\t\tvar $input    = self.$input;\r\n\t\r\n\t\t\tvar $wrapper;\r\n\t\t\tvar $control;\r\n\t\t\tvar $control_input;\r\n\t\t\tvar $dropdown;\r\n\t\t\tvar $dropdown_content;\r\n\t\t\tvar $dropdown_parent;\r\n\t\t\tvar inputMode;\r\n\t\t\tvar timeout_blur;\r\n\t\t\tvar timeout_focus;\r\n\t\t\tvar tab_index;\r\n\t\t\tvar classes;\r\n\t\t\tvar classes_plugins;\r\n\t\r\n\t\t\tinputMode         = self.settings.mode;\r\n\t\t\ttab_index         = $input.attr('tabindex') || '';\r\n\t\t\tclasses           = $input.attr('class') || '';\r\n\t\r\n\t\t\t$wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes).addClass(inputMode);\r\n\t\t\t$control          = $('<div>').addClass(settings.inputClass).addClass('items').appendTo($wrapper);\r\n\t\t\t$control_input    = $('<input type=\"text\" autocomplete=\"off\" />').appendTo($control).attr('tabindex', tab_index);\r\n\t\t\t$dropdown_parent  = $(settings.dropdownParent || $wrapper);\r\n\t\t\t$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent);\r\n\t\t\t$dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);\r\n\t\r\n\t\t\tif(self.settings.copyClassesToDropdown) {\r\n\t\t\t\t$dropdown.addClass(classes);\r\n\t\t\t}\r\n\t\r\n\t\t\t$wrapper.css({\r\n\t\t\t\twidth: $input[0].style.width\r\n\t\t\t});\r\n\t\r\n\t\t\tif (self.plugins.names.length) {\r\n\t\t\t\tclasses_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\r\n\t\t\t\t$wrapper.addClass(classes_plugins);\r\n\t\t\t\t$dropdown.addClass(classes_plugins);\r\n\t\t\t}\r\n\t\r\n\t\t\tif ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {\r\n\t\t\t\t$input.attr('multiple', 'multiple');\r\n\t\t\t}\r\n\t\r\n\t\t\tif (self.settings.placeholder) {\r\n\t\t\t\t$control_input.attr('placeholder', settings.placeholder);\r\n\t\t\t}\r\n\t\r\n\t\t\tif ($input.attr('autocorrect')) {\r\n\t\t\t\t$control_input.attr('autocorrect', $input.attr('autocorrect'));\r\n\t\t\t}\r\n\t\r\n\t\t\tif ($input.attr('autocapitalize')) {\r\n\t\t\t\t$control_input.attr('autocapitalize', $input.attr('autocapitalize'));\r\n\t\t\t}\r\n\t\r\n\t\t\tself.$wrapper          = $wrapper;\r\n\t\t\tself.$control          = $control;\r\n\t\t\tself.$control_input    = $control_input;\r\n\t\t\tself.$dropdown         = $dropdown;\r\n\t\t\tself.$dropdown_content = $dropdown_content;\r\n\t\r\n\t\t\t$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });\r\n\t\t\t$dropdown.on('mousedown', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });\r\n\t\t\twatchChildEvent($control, 'mousedown', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });\r\n\t\t\tautoGrow($control_input);\r\n\t\r\n\t\t\t$control.on({\r\n\t\t\t\tmousedown : function() { return self.onMouseDown.apply(self, arguments); },\r\n\t\t\t\tclick     : function() { return self.onClick.apply(self, arguments); }\r\n\t\t\t});\r\n\t\r\n\t\t\t$control_input.on({\r\n\t\t\t\tmousedown : function(e) { e.stopPropagation(); },\r\n\t\t\t\tkeydown   : function() { return self.onKeyDown.apply(self, arguments); },\r\n\t\t\t\tkeyup     : function() { return self.onKeyUp.apply(self, arguments); },\r\n\t\t\t\tkeypress  : function() { return self.onKeyPress.apply(self, arguments); },\r\n\t\t\t\tresize    : function() { self.positionDropdown.apply(self, []); },\r\n\t\t\t\tblur      : function() { return self.onBlur.apply(self, arguments); },\r\n\t\t\t\tfocus     : function() { self.ignoreBlur = false; return self.onFocus.apply(self, arguments); },\r\n\t\t\t\tpaste     : function() { return self.onPaste.apply(self, arguments); }\r\n\t\t\t});\r\n\t\r\n\t\t\t$document.on('keydown' + eventNS, function(e) {\r\n\t\t\t\tself.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];\r\n\t\t\t\tself.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];\r\n\t\t\t\tself.isShiftDown = e.shiftKey;\r\n\t\t\t});\r\n\t\r\n\t\t\t$document.on('keyup' + eventNS, function(e) {\r\n\t\t\t\tif (e.keyCode === KEY_CTRL) self.isCtrlDown = false;\r\n\t\t\t\tif (e.keyCode === KEY_SHIFT) self.isShiftDown = false;\r\n\t\t\t\tif (e.keyCode === KEY_CMD) self.isCmdDown = false;\r\n\t\t\t});\r\n\t\r\n\t\t\t$document.on('mousedown' + eventNS, function(e) {\r\n\t\t\t\tif (self.isFocused) {\r\n\t\t\t\t\t// prevent events on the dropdown scrollbar from causing the control to blur\r\n\t\t\t\t\tif (e.target === self.$dropdown[0] || e.target.parentNode === self.$dropdown[0]) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// blur on click outside\r\n\t\t\t\t\tif (!self.$control.has(e.target).length && e.target !== self.$control[0]) {\r\n\t\t\t\t\t\tself.blur();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\r\n\t\t\t$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {\r\n\t\t\t\tif (self.isOpen) {\r\n\t\t\t\t\tself.positionDropdown.apply(self, arguments);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$window.on('mousemove' + eventNS, function() {\r\n\t\t\t\tself.ignoreHover = false;\r\n\t\t\t});\r\n\t\r\n\t\t\t// store original children and tab index so that they can be\r\n\t\t\t// restored when the destroy() method is called.\r\n\t\t\tthis.revertSettings = {\r\n\t\t\t\t$children : $input.children().detach(),\r\n\t\t\t\ttabindex  : $input.attr('tabindex')\r\n\t\t\t};\r\n\t\r\n\t\t\t$input.attr('tabindex', -1).hide().after(self.$wrapper);\r\n\t\r\n\t\t\tif ($.isArray(settings.items)) {\r\n\t\t\t\tself.setValue(settings.items);\r\n\t\t\t\tdelete settings.items;\r\n\t\t\t}\r\n\t\r\n\t\t\t// feature detect for the validation API\r\n\t\t\tif ($input[0].validity) {\r\n\t\t\t\t$input.on('invalid' + eventNS, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tself.isInvalid = true;\r\n\t\t\t\t\tself.refreshState();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\r\n\t\t\tself.updateOriginalInput();\r\n\t\t\tself.refreshItems();\r\n\t\t\tself.refreshState();\r\n\t\t\tself.updatePlaceholder();\r\n\t\t\tself.isSetup = true;\r\n\t\r\n\t\t\tif ($input.is(':disabled')) {\r\n\t\t\t\tself.disable();\r\n\t\t\t}\r\n\t\r\n\t\t\tself.on('change', this.onChange);\r\n\t\r\n\t\t\t$input.data('selectize', self);\r\n\t\t\t$input.addClass('selectized');\r\n\t\t\tself.trigger('initialize');\r\n\t\r\n\t\t\t// preload options\r\n\t\t\tif (settings.preload === true) {\r\n\t\t\t\tself.onSearchChange('');\r\n\t\t\t}\r\n\t\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Sets up default rendering functions.\r\n\t\t */\r\n\t\tsetupTemplates: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar field_label = self.settings.labelField;\r\n\t\t\tvar field_optgroup = self.settings.optgroupLabelField;\r\n\t\r\n\t\t\tvar templates = {\r\n\t\t\t\t'optgroup': function(data) {\r\n\t\t\t\t\treturn '<div class=\"optgroup\">' + data.html + '</div>';\r\n\t\t\t\t},\r\n\t\t\t\t'optgroup_header': function(data, escape) {\r\n\t\t\t\t\treturn '<div class=\"optgroup-header\">' + escape(data[field_optgroup]) + '</div>';\r\n\t\t\t\t},\r\n\t\t\t\t'option': function(data, escape) {\r\n\t\t\t\t\treturn '<div class=\"option\">' + escape(data[field_label]) + '</div>';\r\n\t\t\t\t},\r\n\t\t\t\t'item': function(data, escape) {\r\n\t\t\t\t\treturn '<div class=\"item\">' + escape(data[field_label]) + '</div>';\r\n\t\t\t\t},\r\n\t\t\t\t'option_create': function(data, escape) {\r\n\t\t\t\t\treturn '<div class=\"create\">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>';\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\r\n\t\t\tself.settings.render = $.extend({}, templates, self.settings.render);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Maps fired events to callbacks provided\r\n\t\t * in the settings used when creating the control.\r\n\t\t */\r\n\t\tsetupCallbacks: function() {\r\n\t\t\tvar key, fn, callbacks = {\r\n\t\t\t\t'initialize'     : 'onInitialize',\r\n\t\t\t\t'change'         : 'onChange',\r\n\t\t\t\t'item_add'       : 'onItemAdd',\r\n\t\t\t\t'item_remove'    : 'onItemRemove',\r\n\t\t\t\t'clear'          : 'onClear',\r\n\t\t\t\t'option_add'     : 'onOptionAdd',\r\n\t\t\t\t'option_remove'  : 'onOptionRemove',\r\n\t\t\t\t'option_clear'   : 'onOptionClear',\r\n\t\t\t\t'dropdown_open'  : 'onDropdownOpen',\r\n\t\t\t\t'dropdown_close' : 'onDropdownClose',\r\n\t\t\t\t'type'           : 'onType',\r\n\t\t\t\t'load'           : 'onLoad'\r\n\t\t\t};\r\n\t\r\n\t\t\tfor (key in callbacks) {\r\n\t\t\t\tif (callbacks.hasOwnProperty(key)) {\r\n\t\t\t\t\tfn = this.settings[callbacks[key]];\r\n\t\t\t\t\tif (fn) this.on(key, fn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the main control element\r\n\t\t * has a click event.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tonClick: function(e) {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\t// necessary for mobile webkit devices (manual focus triggering\r\n\t\t\t// is ignored unless invoked within a click event)\r\n\t\t\tif (!self.isFocused) {\r\n\t\t\t\tself.focus();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the main control element\r\n\t\t * has a mouse down event.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tonMouseDown: function(e) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar defaultPrevented = e.isDefaultPrevented();\r\n\t\t\tvar $target = $(e.target);\r\n\t\r\n\t\t\tif (self.isFocused) {\r\n\t\t\t\t// retain focus by preventing native handling. if the\r\n\t\t\t\t// event target is the input it should not be modified.\r\n\t\t\t\t// otherwise, text selection within the input won't work.\r\n\t\t\t\tif (e.target !== self.$control_input[0]) {\r\n\t\t\t\t\tif (self.settings.mode === 'single') {\r\n\t\t\t\t\t\t// toggle dropdown\r\n\t\t\t\t\t\tself.isOpen ? self.close() : self.open();\r\n\t\t\t\t\t} else if (!defaultPrevented) {\r\n\t\t\t\t\t\tself.setActiveItem(null);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// give control focus\r\n\t\t\t\tif (!defaultPrevented) {\r\n\t\t\t\t\twindow.setTimeout(function() {\r\n\t\t\t\t\t\tself.focus();\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the value of the control has been changed.\r\n\t\t * This should propagate the event to the original DOM\r\n\t\t * input / select element.\r\n\t\t */\r\n\t\tonChange: function() {\r\n\t\t\tthis.$input.trigger('change');\r\n\t\t},\r\n\t\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> paste.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonPaste: function(e) {\r\n\t\t\tvar self = this;\r\n\t\t\tif (self.isFull() || self.isInputHidden || self.isLocked) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> keypress.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonKeyPress: function(e) {\r\n\t\t\tif (this.isLocked) return e && e.preventDefault();\r\n\t\t\tvar character = String.fromCharCode(e.keyCode || e.which);\r\n\t\t\tif (this.settings.create && character === this.settings.delimiter) {\r\n\t\t\t\tthis.createItem();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> keydown.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonKeyDown: function(e) {\r\n\t\t\tvar isInput = e.target === this.$control_input[0];\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.isLocked) {\r\n\t\t\t\tif (e.keyCode !== KEY_TAB) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\tswitch (e.keyCode) {\r\n\t\t\t\tcase KEY_A:\r\n\t\t\t\t\tif (self.isCmdDown) {\r\n\t\t\t\t\t\tself.selectAll();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KEY_ESC:\r\n\t\t\t\t\tself.close();\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_N:\r\n\t\t\t\t\tif (!e.ctrlKey || e.altKey) break;\r\n\t\t\t\tcase KEY_DOWN:\r\n\t\t\t\t\tif (!self.isOpen && self.hasOptions) {\r\n\t\t\t\t\t\tself.open();\r\n\t\t\t\t\t} else if (self.$activeOption) {\r\n\t\t\t\t\t\tself.ignoreHover = true;\r\n\t\t\t\t\t\tvar $next = self.getAdjacentOption(self.$activeOption, 1);\r\n\t\t\t\t\t\tif ($next.length) self.setActiveOption($next, true, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_P:\r\n\t\t\t\t\tif (!e.ctrlKey || e.altKey) break;\r\n\t\t\t\tcase KEY_UP:\r\n\t\t\t\t\tif (self.$activeOption) {\r\n\t\t\t\t\t\tself.ignoreHover = true;\r\n\t\t\t\t\t\tvar $prev = self.getAdjacentOption(self.$activeOption, -1);\r\n\t\t\t\t\t\tif ($prev.length) self.setActiveOption($prev, true, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_RETURN:\r\n\t\t\t\t\tif (self.isOpen && self.$activeOption) {\r\n\t\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\r\n\t\t\t\t\t}\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_LEFT:\r\n\t\t\t\t\tself.advanceSelection(-1, e);\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_RIGHT:\r\n\t\t\t\t\tself.advanceSelection(1, e);\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_TAB:\r\n\t\t\t\t\tif (self.settings.selectOnTab && self.isOpen && self.$activeOption) {\r\n\t\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (self.settings.create && self.createItem()) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase KEY_BACKSPACE:\r\n\t\t\t\tcase KEY_DELETE:\r\n\t\t\t\t\tself.deleteSelection(e);\r\n\t\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\tif ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> keyup.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonKeyUp: function(e) {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.isLocked) return e && e.preventDefault();\r\n\t\t\tvar value = self.$control_input.val() || '';\r\n\t\t\tif (self.lastValue !== value) {\r\n\t\t\t\tself.lastValue = value;\r\n\t\t\t\tself.onSearchChange(value);\r\n\t\t\t\tself.refreshOptions();\r\n\t\t\t\tself.trigger('type', value);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Invokes the user-provide option provider / loader.\r\n\t\t *\r\n\t\t * Note: this function is debounced in the Selectize\r\n\t\t * constructor (by `settings.loadDelay` milliseconds)\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\tonSearchChange: function(value) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar fn = self.settings.load;\r\n\t\t\tif (!fn) return;\r\n\t\t\tif (self.loadedSearches.hasOwnProperty(value)) return;\r\n\t\t\tself.loadedSearches[value] = true;\r\n\t\t\tself.load(function(callback) {\r\n\t\t\t\tfn.apply(self, [value, callback]);\r\n\t\t\t});\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> focus.\r\n\t\t *\r\n\t\t * @param {object} e (optional)\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonFocus: function(e) {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tself.isFocused = true;\r\n\t\t\tif (self.isDisabled) {\r\n\t\t\t\tself.blur();\r\n\t\t\t\te && e.preventDefault();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\r\n\t\t\tif (self.ignoreFocus) return;\r\n\t\t\tif (self.settings.preload === 'focus') self.onSearchChange('');\r\n\t\r\n\t\t\tif (!self.$activeItems.length) {\r\n\t\t\t\tself.showInput();\r\n\t\t\t\tself.setActiveItem(null);\r\n\t\t\t\tself.refreshOptions(!!self.settings.openOnFocus);\r\n\t\t\t}\r\n\t\r\n\t\t\tself.refreshState();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered on <input> blur.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonBlur: function(e) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.isFocused = false;\r\n\t\t\tif (self.ignoreFocus) return;\r\n\t\r\n\t\t\t// necessary to prevent IE closing the dropdown when the scrollbar is clicked\r\n\t\t\tif (!self.ignoreBlur && document.activeElement === self.$dropdown_content[0]) {\r\n\t\t\t\tself.ignoreBlur = true;\r\n\t\t\t\tself.onFocus(e);\r\n\t\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\tif (self.settings.create && self.settings.createOnBlur) {\r\n\t\t\t\tself.createItem(false);\r\n\t\t\t}\r\n\t\r\n\t\t\tself.close();\r\n\t\t\tself.setTextboxValue('');\r\n\t\t\tself.setActiveItem(null);\r\n\t\t\tself.setActiveOption(null);\r\n\t\t\tself.setCaret(self.items.length);\r\n\t\t\tself.refreshState();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the user rolls over\r\n\t\t * an option in the autocomplete dropdown menu.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonOptionHover: function(e) {\r\n\t\t\tif (this.ignoreHover) return;\r\n\t\t\tthis.setActiveOption(e.currentTarget, false);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the user clicks on an option\r\n\t\t * in the autocomplete dropdown menu.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonOptionSelect: function(e) {\r\n\t\t\tvar value, $target, $option, self = this;\r\n\t\r\n\t\t\tif (e.preventDefault) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\t\r\n\t\t\t$target = $(e.currentTarget);\r\n\t\t\tif ($target.hasClass('create')) {\r\n\t\t\t\tself.createItem();\r\n\t\t\t} else {\r\n\t\t\t\tvalue = $target.attr('data-value');\r\n\t\t\t\tif (typeof value !== 'undefined') {\r\n\t\t\t\t\tself.lastQuery = null;\r\n\t\t\t\t\tself.setTextboxValue('');\r\n\t\t\t\t\tself.addItem(value);\r\n\t\t\t\t\tif (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {\r\n\t\t\t\t\t\tself.setActiveOption(self.getOption(value));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Triggered when the user clicks on an item\r\n\t\t * that has been selected.\r\n\t\t *\r\n\t\t * @param {object} e\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tonItemSelect: function(e) {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.isLocked) return;\r\n\t\t\tif (self.settings.mode === 'multi') {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.setActiveItem(e.currentTarget, e);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Invokes the provided method that provides\r\n\t\t * results to a callback---which are then added\r\n\t\t * as options to the control.\r\n\t\t *\r\n\t\t * @param {function} fn\r\n\t\t */\r\n\t\tload: function(fn) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar $wrapper = self.$wrapper.addClass('loading');\r\n\t\r\n\t\t\tself.loading++;\r\n\t\t\tfn.apply(self, [function(results) {\r\n\t\t\t\tself.loading = Math.max(self.loading - 1, 0);\r\n\t\t\t\tif (results && results.length) {\r\n\t\t\t\t\tself.addOption(results);\r\n\t\t\t\t\tself.refreshOptions(self.isFocused && !self.isInputHidden);\r\n\t\t\t\t}\r\n\t\t\t\tif (!self.loading) {\r\n\t\t\t\t\t$wrapper.removeClass('loading');\r\n\t\t\t\t}\r\n\t\t\t\tself.trigger('load', results);\r\n\t\t\t}]);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Sets the input field of the control to the specified value.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\tsetTextboxValue: function(value) {\r\n\t\t\tvar $input = this.$control_input;\r\n\t\t\tvar changed = $input.val() !== value;\r\n\t\t\tif (changed) {\r\n\t\t\t\t$input.val(value).triggerHandler('update');\r\n\t\t\t\tthis.lastValue = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns the value of the control. If multiple items\r\n\t\t * can be selected (e.g. <select multiple>), this returns\r\n\t\t * an array. If only one item can be selected, this\r\n\t\t * returns a string.\r\n\t\t *\r\n\t\t * @returns {mixed}\r\n\t\t */\r\n\t\tgetValue: function() {\r\n\t\t\tif (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {\r\n\t\t\t\treturn this.items;\r\n\t\t\t} else {\r\n\t\t\t\treturn this.items.join(this.settings.delimiter);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Resets the selected items to the given value.\r\n\t\t *\r\n\t\t * @param {mixed} value\r\n\t\t */\r\n\t\tsetValue: function(value) {\r\n\t\t\tdebounce_events(this, ['change'], function() {\r\n\t\t\t\tthis.clear();\r\n\t\t\t\tthis.addItems(value);\r\n\t\t\t});\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Sets the selected item.\r\n\t\t *\r\n\t\t * @param {object} $item\r\n\t\t * @param {object} e (optional)\r\n\t\t */\r\n\t\tsetActiveItem: function($item, e) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar eventName;\r\n\t\t\tvar i, idx, begin, end, item, swap;\r\n\t\t\tvar $last;\r\n\t\r\n\t\t\tif (self.settings.mode === 'single') return;\r\n\t\t\t$item = $($item);\r\n\t\r\n\t\t\t// clear the active selection\r\n\t\t\tif (!$item.length) {\r\n\t\t\t\t$(self.$activeItems).removeClass('active');\r\n\t\t\t\tself.$activeItems = [];\r\n\t\t\t\tif (self.isFocused) {\r\n\t\t\t\t\tself.showInput();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\t// modify selection\r\n\t\t\teventName = e && e.type.toLowerCase();\r\n\t\r\n\t\t\tif (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {\r\n\t\t\t\t$last = self.$control.children('.active:last');\r\n\t\t\t\tbegin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);\r\n\t\t\t\tend   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);\r\n\t\t\t\tif (begin > end) {\r\n\t\t\t\t\tswap  = begin;\r\n\t\t\t\t\tbegin = end;\r\n\t\t\t\t\tend   = swap;\r\n\t\t\t\t}\r\n\t\t\t\tfor (i = begin; i <= end; i++) {\r\n\t\t\t\t\titem = self.$control[0].childNodes[i];\r\n\t\t\t\t\tif (self.$activeItems.indexOf(item) === -1) {\r\n\t\t\t\t\t\t$(item).addClass('active');\r\n\t\t\t\t\t\tself.$activeItems.push(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\te.preventDefault();\r\n\t\t\t} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {\r\n\t\t\t\tif ($item.hasClass('active')) {\r\n\t\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\r\n\t\t\t\t\tself.$activeItems.splice(idx, 1);\r\n\t\t\t\t\t$item.removeClass('active');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.$activeItems.push($item.addClass('active')[0]);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$(self.$activeItems).removeClass('active');\r\n\t\t\t\tself.$activeItems = [$item.addClass('active')[0]];\r\n\t\t\t}\r\n\t\r\n\t\t\t// ensure control has focus\r\n\t\t\tself.hideInput();\r\n\t\t\tif (!this.isFocused) {\r\n\t\t\t\tself.focus();\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Sets the selected item in the dropdown menu\r\n\t\t * of available options.\r\n\t\t *\r\n\t\t * @param {object} $object\r\n\t\t * @param {boolean} scroll\r\n\t\t * @param {boolean} animate\r\n\t\t */\r\n\t\tsetActiveOption: function($option, scroll, animate) {\r\n\t\t\tvar height_menu, height_item, y;\r\n\t\t\tvar scroll_top, scroll_bottom;\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.$activeOption) self.$activeOption.removeClass('active');\r\n\t\t\tself.$activeOption = null;\r\n\t\r\n\t\t\t$option = $($option);\r\n\t\t\tif (!$option.length) return;\r\n\t\r\n\t\t\tself.$activeOption = $option.addClass('active');\r\n\t\r\n\t\t\tif (scroll || !isset(scroll)) {\r\n\t\r\n\t\t\t\theight_menu   = self.$dropdown_content.height();\r\n\t\t\t\theight_item   = self.$activeOption.outerHeight(true);\r\n\t\t\t\tscroll        = self.$dropdown_content.scrollTop() || 0;\r\n\t\t\t\ty             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;\r\n\t\t\t\tscroll_top    = y;\r\n\t\t\t\tscroll_bottom = y - height_menu + height_item;\r\n\t\r\n\t\t\t\tif (y + height_item > height_menu + scroll) {\r\n\t\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);\r\n\t\t\t\t} else if (y < scroll) {\r\n\t\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Selects all items (CTRL + A).\r\n\t\t */\r\n\t\tselectAll: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tif (self.settings.mode === 'single') return;\r\n\t\r\n\t\t\tself.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));\r\n\t\t\tif (self.$activeItems.length) {\r\n\t\t\t\tself.hideInput();\r\n\t\t\t\tself.close();\r\n\t\t\t}\r\n\t\t\tself.focus();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Hides the input element out of view, while\r\n\t\t * retaining its focus.\r\n\t\t */\r\n\t\thideInput: function() {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tself.setTextboxValue('');\r\n\t\t\tself.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : -10000});\r\n\t\t\tself.isInputHidden = true;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Restores input visibility.\r\n\t\t */\r\n\t\tshowInput: function() {\r\n\t\t\tthis.$control_input.css({opacity: 1, position: 'relative', left: 0});\r\n\t\t\tthis.isInputHidden = false;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Gives the control focus. If \"trigger\" is falsy,\r\n\t\t * focus handlers won't be fired--causing the focus\r\n\t\t * to happen silently in the background.\r\n\t\t *\r\n\t\t * @param {boolean} trigger\r\n\t\t */\r\n\t\tfocus: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tif (self.isDisabled) return;\r\n\t\r\n\t\t\tself.ignoreFocus = true;\r\n\t\t\tself.$control_input[0].focus();\r\n\t\t\twindow.setTimeout(function() {\r\n\t\t\t\tself.ignoreFocus = false;\r\n\t\t\t\tself.onFocus();\r\n\t\t\t}, 0);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Forces the control out of focus.\r\n\t\t */\r\n\t\tblur: function() {\r\n\t\t\tthis.$control_input.trigger('blur');\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns a function that scores an object\r\n\t\t * to show how good of a match it is to the\r\n\t\t * provided query.\r\n\t\t *\r\n\t\t * @param {string} query\r\n\t\t * @param {object} options\r\n\t\t * @return {function}\r\n\t\t */\r\n\t\tgetScoreFunction: function(query) {\r\n\t\t\treturn this.sifter.getScoreFunction(query, this.getSearchOptions());\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns search options for sifter (the system\r\n\t\t * for scoring and sorting results).\r\n\t\t *\r\n\t\t * @see https://github.com/brianreavis/sifter.js\r\n\t\t * @return {object}\r\n\t\t */\r\n\t\tgetSearchOptions: function() {\r\n\t\t\tvar settings = this.settings;\r\n\t\t\tvar sort = settings.sortField;\r\n\t\t\tif (typeof sort === 'string') {\r\n\t\t\t\tsort = {field: sort};\r\n\t\t\t}\r\n\t\r\n\t\t\treturn {\r\n\t\t\t\tfields      : settings.searchField,\r\n\t\t\t\tconjunction : settings.searchConjunction,\r\n\t\t\t\tsort        : sort\r\n\t\t\t};\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Searches through available options and returns\r\n\t\t * a sorted array of matches.\r\n\t\t *\r\n\t\t * Returns an object containing:\r\n\t\t *\r\n\t\t *   - query {string}\r\n\t\t *   - tokens {array}\r\n\t\t *   - total {int}\r\n\t\t *   - items {array}\r\n\t\t *\r\n\t\t * @param {string} query\r\n\t\t * @returns {object}\r\n\t\t */\r\n\t\tsearch: function(query) {\r\n\t\t\tvar i, value, score, result, calculateScore;\r\n\t\t\tvar self     = this;\r\n\t\t\tvar settings = self.settings;\r\n\t\t\tvar options  = this.getSearchOptions();\r\n\t\r\n\t\t\t// validate user-provided result scoring function\r\n\t\t\tif (settings.score) {\r\n\t\t\t\tcalculateScore = self.settings.score.apply(this, [query]);\r\n\t\t\t\tif (typeof calculateScore !== 'function') {\r\n\t\t\t\t\tthrow new Error('Selectize \"score\" setting must be a function that returns a function');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// perform search\r\n\t\t\tif (query !== self.lastQuery) {\r\n\t\t\t\tself.lastQuery = query;\r\n\t\t\t\tresult = self.sifter.search(query, $.extend(options, {score: calculateScore}));\r\n\t\t\t\tself.currentResults = result;\r\n\t\t\t} else {\r\n\t\t\t\tresult = $.extend(true, {}, self.currentResults);\r\n\t\t\t}\r\n\t\r\n\t\t\t// filter out selected items\r\n\t\t\tif (settings.hideSelected) {\r\n\t\t\t\tfor (i = result.items.length - 1; i >= 0; i--) {\r\n\t\t\t\t\tif (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {\r\n\t\t\t\t\t\tresult.items.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Refreshes the list of available options shown\r\n\t\t * in the autocomplete dropdown menu.\r\n\t\t *\r\n\t\t * @param {boolean} triggerDropdown\r\n\t\t */\r\n\t\trefreshOptions: function(triggerDropdown) {\r\n\t\t\tvar i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;\r\n\t\t\tvar $active, $active_before, $create;\r\n\t\r\n\t\t\tif (typeof triggerDropdown === 'undefined') {\r\n\t\t\t\ttriggerDropdown = true;\r\n\t\t\t}\r\n\t\r\n\t\t\tvar self              = this;\r\n\t\t\tvar query             = $.trim(self.$control_input.val());\r\n\t\t\tvar results           = self.search(query);\r\n\t\t\tvar $dropdown_content = self.$dropdown_content;\r\n\t\t\tvar active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));\r\n\t\r\n\t\t\t// build markup\r\n\t\t\tn = results.items.length;\r\n\t\t\tif (typeof self.settings.maxOptions === 'number') {\r\n\t\t\t\tn = Math.min(n, self.settings.maxOptions);\r\n\t\t\t}\r\n\t\r\n\t\t\t// render and group available options individually\r\n\t\t\tgroups = {};\r\n\t\r\n\t\t\tif (self.settings.optgroupOrder) {\r\n\t\t\t\tgroups_order = self.settings.optgroupOrder;\r\n\t\t\t\tfor (i = 0; i < groups_order.length; i++) {\r\n\t\t\t\t\tgroups[groups_order[i]] = [];\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tgroups_order = [];\r\n\t\t\t}\r\n\t\r\n\t\t\tfor (i = 0; i < n; i++) {\r\n\t\t\t\toption      = self.options[results.items[i].id];\r\n\t\t\t\toption_html = self.render('option', option);\r\n\t\t\t\toptgroup    = option[self.settings.optgroupField] || '';\r\n\t\t\t\toptgroups   = $.isArray(optgroup) ? optgroup : [optgroup];\r\n\t\r\n\t\t\t\tfor (j = 0, k = optgroups && optgroups.length; j < k; j++) {\r\n\t\t\t\t\toptgroup = optgroups[j];\r\n\t\t\t\t\tif (!self.optgroups.hasOwnProperty(optgroup)) {\r\n\t\t\t\t\t\toptgroup = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!groups.hasOwnProperty(optgroup)) {\r\n\t\t\t\t\t\tgroups[optgroup] = [];\r\n\t\t\t\t\t\tgroups_order.push(optgroup);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgroups[optgroup].push(option_html);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// render optgroup headers & join groups\r\n\t\t\thtml = [];\r\n\t\t\tfor (i = 0, n = groups_order.length; i < n; i++) {\r\n\t\t\t\toptgroup = groups_order[i];\r\n\t\t\t\tif (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].length) {\r\n\t\t\t\t\t// render the optgroup header and options within it,\r\n\t\t\t\t\t// then pass it to the wrapper template\r\n\t\t\t\t\thtml_children = self.render('optgroup_header', self.optgroups[optgroup]) || '';\r\n\t\t\t\t\thtml_children += groups[optgroup].join('');\r\n\t\t\t\t\thtml.push(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {\r\n\t\t\t\t\t\thtml: html_children\r\n\t\t\t\t\t})));\r\n\t\t\t\t} else {\r\n\t\t\t\t\thtml.push(groups[optgroup].join(''));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t$dropdown_content.html(html.join(''));\r\n\t\r\n\t\t\t// highlight matching terms inline\r\n\t\t\tif (self.settings.highlight && results.query.length && results.tokens.length) {\r\n\t\t\t\tfor (i = 0, n = results.tokens.length; i < n; i++) {\r\n\t\t\t\t\thighlight($dropdown_content, results.tokens[i].regex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// add \"selected\" class to selected options\r\n\t\t\tif (!self.settings.hideSelected) {\r\n\t\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\r\n\t\t\t\t\tself.getOption(self.items[i]).addClass('selected');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// add create option\r\n\t\t\thas_create_option = self.canCreate(query);\r\n\t\t\tif (has_create_option) {\r\n\t\t\t\t$dropdown_content.prepend(self.render('option_create', {input: query}));\r\n\t\t\t\t$create = $($dropdown_content[0].childNodes[0]);\r\n\t\t\t}\r\n\t\r\n\t\t\t// activate\r\n\t\t\tself.hasOptions = results.items.length > 0 || has_create_option;\r\n\t\t\tif (self.hasOptions) {\r\n\t\t\t\tif (results.items.length > 0) {\r\n\t\t\t\t\t$active_before = active_before && self.getOption(active_before);\r\n\t\t\t\t\tif ($active_before && $active_before.length) {\r\n\t\t\t\t\t\t$active = $active_before;\r\n\t\t\t\t\t} else if (self.settings.mode === 'single' && self.items.length) {\r\n\t\t\t\t\t\t$active = self.getOption(self.items[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!$active || !$active.length) {\r\n\t\t\t\t\t\tif ($create && !self.settings.addPrecedence) {\r\n\t\t\t\t\t\t\t$active = self.getAdjacentOption($create, 1);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$active = $dropdown_content.find('[data-selectable]:first');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$active = $create;\r\n\t\t\t\t}\r\n\t\t\t\tself.setActiveOption($active);\r\n\t\t\t\tif (triggerDropdown && !self.isOpen) { self.open(); }\r\n\t\t\t} else {\r\n\t\t\t\tself.setActiveOption(null);\r\n\t\t\t\tif (triggerDropdown && self.isOpen) { self.close(); }\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Adds an available option. If it already exists,\r\n\t\t * nothing will happen. Note: this does not refresh\r\n\t\t * the options list dropdown (use `refreshOptions`\r\n\t\t * for that).\r\n\t\t *\r\n\t\t * Usage:\r\n\t\t *\r\n\t\t *   this.addOption(data)\r\n\t\t *\r\n\t\t * @param {object} data\r\n\t\t */\r\n\t\taddOption: function(data) {\r\n\t\t\tvar i, n, optgroup, value, self = this;\r\n\t\r\n\t\t\tif ($.isArray(data)) {\r\n\t\t\t\tfor (i = 0, n = data.length; i < n; i++) {\r\n\t\t\t\t\tself.addOption(data[i]);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\tvalue = hash_key(data[self.settings.valueField]);\r\n\t\t\tif (typeof value !== 'string' || self.options.hasOwnProperty(value)) return;\r\n\t\r\n\t\t\tself.userOptions[value] = true;\r\n\t\t\tself.options[value] = data;\r\n\t\t\tself.lastQuery = null;\r\n\t\t\tself.trigger('option_add', value, data);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Registers a new optgroup for options\r\n\t\t * to be bucketed into.\r\n\t\t *\r\n\t\t * @param {string} id\r\n\t\t * @param {object} data\r\n\t\t */\r\n\t\taddOptionGroup: function(id, data) {\r\n\t\t\tthis.optgroups[id] = data;\r\n\t\t\tthis.trigger('optgroup_add', id, data);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Updates an option available for selection. If\r\n\t\t * it is visible in the selected items or options\r\n\t\t * dropdown, it will be re-rendered automatically.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t * @param {object} data\r\n\t\t */\r\n\t\tupdateOption: function(value, data) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar $item, $item_new;\r\n\t\t\tvar value_new, index_item, cache_items, cache_options;\r\n\t\r\n\t\t\tvalue     = hash_key(value);\r\n\t\t\tvalue_new = hash_key(data[self.settings.valueField]);\r\n\t\r\n\t\t\t// sanity checks\r\n\t\t\tif (value === null) return;\r\n\t\t\tif (!self.options.hasOwnProperty(value)) return;\r\n\t\t\tif (typeof value_new !== 'string') throw new Error('Value must be set in option data');\r\n\t\r\n\t\t\t// update references\r\n\t\t\tif (value_new !== value) {\r\n\t\t\t\tdelete self.options[value];\r\n\t\t\t\tindex_item = self.items.indexOf(value);\r\n\t\t\t\tif (index_item !== -1) {\r\n\t\t\t\t\tself.items.splice(index_item, 1, value_new);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tself.options[value_new] = data;\r\n\t\r\n\t\t\t// invalidate render cache\r\n\t\t\tcache_items = self.renderCache['item'];\r\n\t\t\tcache_options = self.renderCache['option'];\r\n\t\r\n\t\t\tif (cache_items) {\r\n\t\t\t\tdelete cache_items[value];\r\n\t\t\t\tdelete cache_items[value_new];\r\n\t\t\t}\r\n\t\t\tif (cache_options) {\r\n\t\t\t\tdelete cache_options[value];\r\n\t\t\t\tdelete cache_options[value_new];\r\n\t\t\t}\r\n\t\r\n\t\t\t// update the item if it's selected\r\n\t\t\tif (self.items.indexOf(value_new) !== -1) {\r\n\t\t\t\t$item = self.getItem(value);\r\n\t\t\t\t$item_new = $(self.render('item', data));\r\n\t\t\t\tif ($item.hasClass('active')) $item_new.addClass('active');\r\n\t\t\t\t$item.replaceWith($item_new);\r\n\t\t\t}\r\n\t\r\n\t\t\t//invalidate last query because we might have updated the sortField\r\n\t\t\tself.lastQuery = null;\r\n\t\r\n\t\t\t// update dropdown contents\r\n\t\t\tif (self.isOpen) {\r\n\t\t\t\tself.refreshOptions(false);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Removes a single option.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\tremoveOption: function(value) {\r\n\t\t\tvar self = this;\r\n\t\t\tvalue = hash_key(value);\r\n\t\r\n\t\t\tvar cache_items = self.renderCache['item'];\r\n\t\t\tvar cache_options = self.renderCache['option'];\r\n\t\t\tif (cache_items) delete cache_items[value];\r\n\t\t\tif (cache_options) delete cache_options[value];\r\n\t\r\n\t\t\tdelete self.userOptions[value];\r\n\t\t\tdelete self.options[value];\r\n\t\t\tself.lastQuery = null;\r\n\t\t\tself.trigger('option_remove', value);\r\n\t\t\tself.removeItem(value);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Clears all options.\r\n\t\t */\r\n\t\tclearOptions: function() {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tself.loadedSearches = {};\r\n\t\t\tself.userOptions = {};\r\n\t\t\tself.renderCache = {};\r\n\t\t\tself.options = self.sifter.items = {};\r\n\t\t\tself.lastQuery = null;\r\n\t\t\tself.trigger('option_clear');\r\n\t\t\tself.clear();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns the jQuery element of the option\r\n\t\t * matching the given value.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t * @returns {object}\r\n\t\t */\r\n\t\tgetOption: function(value) {\r\n\t\t\treturn this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns the jQuery element of the next or\r\n\t\t * previous selectable option.\r\n\t\t *\r\n\t\t * @param {object} $option\r\n\t\t * @param {int} direction  can be 1 for next or -1 for previous\r\n\t\t * @return {object}\r\n\t\t */\r\n\t\tgetAdjacentOption: function($option, direction) {\r\n\t\t\tvar $options = this.$dropdown.find('[data-selectable]');\r\n\t\t\tvar index    = $options.index($option) + direction;\r\n\t\r\n\t\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Finds the first element with a \"data-value\" attribute\r\n\t\t * that matches the given value.\r\n\t\t *\r\n\t\t * @param {mixed} value\r\n\t\t * @param {object} $els\r\n\t\t * @return {object}\r\n\t\t */\r\n\t\tgetElementWithValue: function(value, $els) {\r\n\t\t\tvalue = hash_key(value);\r\n\t\r\n\t\t\tif (typeof value !== 'undefined' && value !== null) {\r\n\t\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\r\n\t\t\t\t\tif ($els[i].getAttribute('data-value') === value) {\r\n\t\t\t\t\t\treturn $($els[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\treturn $();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Returns the jQuery element of the item\r\n\t\t * matching the given value.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t * @returns {object}\r\n\t\t */\r\n\t\tgetItem: function(value) {\r\n\t\t\treturn this.getElementWithValue(value, this.$control.children());\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * \"Selects\" multiple items at once. Adds them to the list\r\n\t\t * at the current caret position.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\taddItems: function(values) {\r\n\t\t\tvar items = $.isArray(values) ? values : [values];\r\n\t\t\tfor (var i = 0, n = items.length; i < n; i++) {\r\n\t\t\t\tthis.isPending = (i < n - 1);\r\n\t\t\t\tthis.addItem(items[i]);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * \"Selects\" an item. Adds it to the list\r\n\t\t * at the current caret position.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\taddItem: function(value) {\r\n\t\t\tdebounce_events(this, ['change'], function() {\r\n\t\t\t\tvar $item, $option, $options;\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tvar inputMode = self.settings.mode;\r\n\t\t\t\tvar i, active, value_next, wasFull;\r\n\t\t\t\tvalue = hash_key(value);\r\n\t\r\n\t\t\t\tif (self.items.indexOf(value) !== -1) {\r\n\t\t\t\t\tif (inputMode === 'single') self.close();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif (!self.options.hasOwnProperty(value)) return;\r\n\t\t\t\tif (inputMode === 'single') self.clear();\r\n\t\t\t\tif (inputMode === 'multi' && self.isFull()) return;\r\n\t\r\n\t\t\t\t$item = $(self.render('item', self.options[value]));\r\n\t\t\t\twasFull = self.isFull();\r\n\t\t\t\tself.items.splice(self.caretPos, 0, value);\r\n\t\t\t\tself.insertAtCaret($item);\r\n\t\t\t\tif (!self.isPending || (!wasFull && self.isFull())) {\r\n\t\t\t\t\tself.refreshState();\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif (self.isSetup) {\r\n\t\t\t\t\t$options = self.$dropdown_content.find('[data-selectable]');\r\n\t\r\n\t\t\t\t\t// update menu / remove the option (if this is not one item being added as part of series)\r\n\t\t\t\t\tif (!self.isPending) {\r\n\t\t\t\t\t\t$option = self.getOption(value);\r\n\t\t\t\t\t\tvalue_next = self.getAdjacentOption($option, 1).attr('data-value');\r\n\t\t\t\t\t\tself.refreshOptions(self.isFocused && inputMode !== 'single');\r\n\t\t\t\t\t\tif (value_next) {\r\n\t\t\t\t\t\t\tself.setActiveOption(self.getOption(value_next));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t// hide the menu if the maximum number of items have been selected or no options are left\r\n\t\t\t\t\tif (!$options.length || self.isFull()) {\r\n\t\t\t\t\t\tself.close();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.positionDropdown();\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tself.updatePlaceholder();\r\n\t\t\t\t\tself.trigger('item_add', value, $item);\r\n\t\t\t\t\tself.updateOriginalInput();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Removes the selected item matching\r\n\t\t * the provided value.\r\n\t\t *\r\n\t\t * @param {string} value\r\n\t\t */\r\n\t\tremoveItem: function(value) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar $item, i, idx;\r\n\t\r\n\t\t\t$item = (typeof value === 'object') ? value : self.getItem(value);\r\n\t\t\tvalue = hash_key($item.attr('data-value'));\r\n\t\t\ti = self.items.indexOf(value);\r\n\t\r\n\t\t\tif (i !== -1) {\r\n\t\t\t\t$item.remove();\r\n\t\t\t\tif ($item.hasClass('active')) {\r\n\t\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\r\n\t\t\t\t\tself.$activeItems.splice(idx, 1);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tself.items.splice(i, 1);\r\n\t\t\t\tself.lastQuery = null;\r\n\t\t\t\tif (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\r\n\t\t\t\t\tself.removeOption(value);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif (i < self.caretPos) {\r\n\t\t\t\t\tself.setCaret(self.caretPos - 1);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tself.refreshState();\r\n\t\t\t\tself.updatePlaceholder();\r\n\t\t\t\tself.updateOriginalInput();\r\n\t\t\t\tself.positionDropdown();\r\n\t\t\t\tself.trigger('item_remove', value);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Invokes the `create` method provided in the\r\n\t\t * selectize options that should provide the data\r\n\t\t * for the new item, given the user input.\r\n\t\t *\r\n\t\t * Once this completes, it will be added\r\n\t\t * to the item list.\r\n\t\t *\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tcreateItem: function(triggerDropdown) {\r\n\t\t\tvar self  = this;\r\n\t\t\tvar input = $.trim(self.$control_input.val() || '');\r\n\t\t\tvar caret = self.caretPos;\r\n\t\t\tif (!self.canCreate(input)) return false;\r\n\t\t\tself.lock();\r\n\t\r\n\t\t\tif (typeof triggerDropdown === 'undefined') {\r\n\t\t\t\ttriggerDropdown = true;\r\n\t\t\t}\r\n\t\r\n\t\t\tvar setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {\r\n\t\t\t\tvar data = {};\r\n\t\t\t\tdata[self.settings.labelField] = input;\r\n\t\t\t\tdata[self.settings.valueField] = input;\r\n\t\t\t\treturn data;\r\n\t\t\t};\r\n\t\r\n\t\t\tvar create = once(function(data) {\r\n\t\t\t\tself.unlock();\r\n\t\r\n\t\t\t\tif (!data || typeof data !== 'object') return;\r\n\t\t\t\tvar value = hash_key(data[self.settings.valueField]);\r\n\t\t\t\tif (typeof value !== 'string') return;\r\n\t\r\n\t\t\t\tself.setTextboxValue('');\r\n\t\t\t\tself.addOption(data);\r\n\t\t\t\tself.setCaret(caret);\r\n\t\t\t\tself.addItem(value);\r\n\t\t\t\tself.refreshOptions(triggerDropdown && self.settings.mode !== 'single');\r\n\t\t\t});\r\n\t\r\n\t\t\tvar output = setup.apply(this, [input, create]);\r\n\t\t\tif (typeof output !== 'undefined') {\r\n\t\t\t\tcreate(output);\r\n\t\t\t}\r\n\t\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Re-renders the selected item lists.\r\n\t\t */\r\n\t\trefreshItems: function() {\r\n\t\t\tthis.lastQuery = null;\r\n\t\r\n\t\t\tif (this.isSetup) {\r\n\t\t\t\tfor (var i = 0; i < this.items.length; i++) {\r\n\t\t\t\t\tthis.addItem(this.items);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\tthis.refreshState();\r\n\t\t\tthis.updateOriginalInput();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Updates all state-dependent attributes\r\n\t\t * and CSS classes.\r\n\t\t */\r\n\t\trefreshState: function() {\r\n\t\t\tvar invalid, self = this;\r\n\t\t\tif (self.isRequired) {\r\n\t\t\t\tif (self.items.length) self.isInvalid = false;\r\n\t\t\t\tself.$control_input.prop('required', invalid);\r\n\t\t\t}\r\n\t\t\tself.refreshClasses();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Updates all state-dependent CSS classes.\r\n\t\t */\r\n\t\trefreshClasses: function() {\r\n\t\t\tvar self     = this;\r\n\t\t\tvar isFull   = self.isFull();\r\n\t\t\tvar isLocked = self.isLocked;\r\n\t\r\n\t\t\tself.$wrapper\r\n\t\t\t\t.toggleClass('rtl', self.rtl);\r\n\t\r\n\t\t\tself.$control\r\n\t\t\t\t.toggleClass('focus', self.isFocused)\r\n\t\t\t\t.toggleClass('disabled', self.isDisabled)\r\n\t\t\t\t.toggleClass('required', self.isRequired)\r\n\t\t\t\t.toggleClass('invalid', self.isInvalid)\r\n\t\t\t\t.toggleClass('locked', isLocked)\r\n\t\t\t\t.toggleClass('full', isFull).toggleClass('not-full', !isFull)\r\n\t\t\t\t.toggleClass('input-active', self.isFocused && !self.isInputHidden)\r\n\t\t\t\t.toggleClass('dropdown-active', self.isOpen)\r\n\t\t\t\t.toggleClass('has-options', !$.isEmptyObject(self.options))\r\n\t\t\t\t.toggleClass('has-items', self.items.length > 0);\r\n\t\r\n\t\t\tself.$control_input.data('grow', !isFull && !isLocked);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Determines whether or not more items can be added\r\n\t\t * to the control without exceeding the user-defined maximum.\r\n\t\t *\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tisFull: function() {\r\n\t\t\treturn this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Refreshes the original <select> or <input>\r\n\t\t * element to reflect the current state.\r\n\t\t */\r\n\t\tupdateOriginalInput: function() {\r\n\t\t\tvar i, n, options, self = this;\r\n\t\r\n\t\t\tif (self.tagType === TAG_SELECT) {\r\n\t\t\t\toptions = [];\r\n\t\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\r\n\t\t\t\t\toptions.push('<option value=\"' + escape_html(self.items[i]) + '\" selected=\"selected\"></option>');\r\n\t\t\t\t}\r\n\t\t\t\tif (!options.length && !this.$input.attr('multiple')) {\r\n\t\t\t\t\toptions.push('<option value=\"\" selected=\"selected\"></option>');\r\n\t\t\t\t}\r\n\t\t\t\tself.$input.html(options.join(''));\r\n\t\t\t} else {\r\n\t\t\t\tself.$input.val(self.getValue());\r\n\t\t\t\tself.$input.attr('value',self.$input.val());\r\n\t\t\t}\r\n\t\r\n\t\t\tif (self.isSetup) {\r\n\t\t\t\tself.trigger('change', self.$input.val());\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Shows/hide the input placeholder depending\r\n\t\t * on if there items in the list already.\r\n\t\t */\r\n\t\tupdatePlaceholder: function() {\r\n\t\t\tif (!this.settings.placeholder) return;\r\n\t\t\tvar $input = this.$control_input;\r\n\t\r\n\t\t\tif (this.items.length) {\r\n\t\t\t\t$input.removeAttr('placeholder');\r\n\t\t\t} else {\r\n\t\t\t\t$input.attr('placeholder', this.settings.placeholder);\r\n\t\t\t}\r\n\t\t\t$input.triggerHandler('update', {force: true});\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Shows the autocomplete dropdown containing\r\n\t\t * the available options.\r\n\t\t */\r\n\t\topen: function() {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.isLocked || self.isOpen || (self.settings.mode === 'multi' && self.isFull())) return;\r\n\t\t\tself.focus();\r\n\t\t\tself.isOpen = true;\r\n\t\t\tself.refreshState();\r\n\t\t\tself.$dropdown.css({visibility: 'hidden', display: 'block'});\r\n\t\t\tself.positionDropdown();\r\n\t\t\tself.$dropdown.css({visibility: 'visible'});\r\n\t\t\tself.trigger('dropdown_open', self.$dropdown);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Closes the autocomplete dropdown menu.\r\n\t\t */\r\n\t\tclose: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar trigger = self.isOpen;\r\n\t\r\n\t\t\tif (self.settings.mode === 'single' && self.items.length) {\r\n\t\t\t\tself.hideInput();\r\n\t\t\t}\r\n\t\r\n\t\t\tself.isOpen = false;\r\n\t\t\tself.$dropdown.hide();\r\n\t\t\tself.setActiveOption(null);\r\n\t\t\tself.refreshState();\r\n\t\r\n\t\t\tif (trigger) self.trigger('dropdown_close', self.$dropdown);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Calculates and applies the appropriate\r\n\t\t * position of the dropdown.\r\n\t\t */\r\n\t\tpositionDropdown: function() {\r\n\t\t\tvar $control = this.$control;\r\n\t\t\tvar offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\r\n\t\t\toffset.top += $control.outerHeight(true);\r\n\t\r\n\t\t\tthis.$dropdown.css({\r\n\t\t\t\twidth : $control.outerWidth(),\r\n\t\t\t\ttop   : offset.top,\r\n\t\t\t\tleft  : offset.left\r\n\t\t\t});\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Resets / clears all selected items\r\n\t\t * from the control.\r\n\t\t */\r\n\t\tclear: function() {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (!self.items.length) return;\r\n\t\t\tself.$control.children(':not(input)').remove();\r\n\t\t\tself.items = [];\r\n\t\t\tself.lastQuery = null;\r\n\t\t\tself.setCaret(0);\r\n\t\t\tself.setActiveItem(null);\r\n\t\t\tself.updatePlaceholder();\r\n\t\t\tself.updateOriginalInput();\r\n\t\t\tself.refreshState();\r\n\t\t\tself.showInput();\r\n\t\t\tself.trigger('clear');\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * A helper method for inserting an element\r\n\t\t * at the current caret position.\r\n\t\t *\r\n\t\t * @param {object} $el\r\n\t\t */\r\n\t\tinsertAtCaret: function($el) {\r\n\t\t\tvar caret = Math.min(this.caretPos, this.items.length);\r\n\t\t\tif (caret === 0) {\r\n\t\t\t\tthis.$control.prepend($el);\r\n\t\t\t} else {\r\n\t\t\t\t$(this.$control[0].childNodes[caret]).before($el);\r\n\t\t\t}\r\n\t\t\tthis.setCaret(caret + 1);\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Removes the current selected item(s).\r\n\t\t *\r\n\t\t * @param {object} e (optional)\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\t\tdeleteSelection: function(e) {\r\n\t\t\tvar i, n, direction, selection, values, caret, option_select, $option_select, $tail;\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tdirection = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;\r\n\t\t\tselection = getSelection(self.$control_input[0]);\r\n\t\r\n\t\t\tif (self.$activeOption && !self.settings.hideSelected) {\r\n\t\t\t\toption_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');\r\n\t\t\t}\r\n\t\r\n\t\t\t// determine items that will be removed\r\n\t\t\tvalues = [];\r\n\t\r\n\t\t\tif (self.$activeItems.length) {\r\n\t\t\t\t$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));\r\n\t\t\t\tcaret = self.$control.children(':not(input)').index($tail);\r\n\t\t\t\tif (direction > 0) { caret++; }\r\n\t\r\n\t\t\t\tfor (i = 0, n = self.$activeItems.length; i < n; i++) {\r\n\t\t\t\t\tvalues.push($(self.$activeItems[i]).attr('data-value'));\r\n\t\t\t\t}\r\n\t\t\t\tif (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\r\n\t\t\t\tif (direction < 0 && selection.start === 0 && selection.length === 0) {\r\n\t\t\t\t\tvalues.push(self.items[self.caretPos - 1]);\r\n\t\t\t\t} else if (direction > 0 && selection.start === self.$control_input.val().length) {\r\n\t\t\t\t\tvalues.push(self.items[self.caretPos]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// allow the callback to abort\r\n\t\t\tif (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\r\n\t\t\t// perform removal\r\n\t\t\tif (typeof caret !== 'undefined') {\r\n\t\t\t\tself.setCaret(caret);\r\n\t\t\t}\r\n\t\t\twhile (values.length) {\r\n\t\t\t\tself.removeItem(values.pop());\r\n\t\t\t}\r\n\t\r\n\t\t\tself.showInput();\r\n\t\t\tself.positionDropdown();\r\n\t\t\tself.refreshOptions(true);\r\n\t\r\n\t\t\t// select previous option\r\n\t\t\tif (option_select) {\r\n\t\t\t\t$option_select = self.getOption(option_select);\r\n\t\t\t\tif ($option_select.length) {\r\n\t\t\t\t\tself.setActiveOption($option_select);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Selects the previous / next item (depending\r\n\t\t * on the `direction` argument).\r\n\t\t *\r\n\t\t * > 0 - right\r\n\t\t * < 0 - left\r\n\t\t *\r\n\t\t * @param {int} direction\r\n\t\t * @param {object} e (optional)\r\n\t\t */\r\n\t\tadvanceSelection: function(direction, e) {\r\n\t\t\tvar tail, selection, idx, valueLength, cursorAtEdge, $tail;\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (direction === 0) return;\r\n\t\t\tif (self.rtl) direction *= -1;\r\n\t\r\n\t\t\ttail = direction > 0 ? 'last' : 'first';\r\n\t\t\tselection = getSelection(self.$control_input[0]);\r\n\t\r\n\t\t\tif (self.isFocused && !self.isInputHidden) {\r\n\t\t\t\tvalueLength = self.$control_input.val().length;\r\n\t\t\t\tcursorAtEdge = direction < 0\r\n\t\t\t\t\t? selection.start === 0 && selection.length === 0\r\n\t\t\t\t\t: selection.start === valueLength;\r\n\t\r\n\t\t\t\tif (cursorAtEdge && !valueLength) {\r\n\t\t\t\t\tself.advanceCaret(direction, e);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$tail = self.$control.children('.active:' + tail);\r\n\t\t\t\tif ($tail.length) {\r\n\t\t\t\t\tidx = self.$control.children(':not(input)').index($tail);\r\n\t\t\t\t\tself.setActiveItem(null);\r\n\t\t\t\t\tself.setCaret(direction > 0 ? idx + 1 : idx);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Moves the caret left / right.\r\n\t\t *\r\n\t\t * @param {int} direction\r\n\t\t * @param {object} e (optional)\r\n\t\t */\r\n\t\tadvanceCaret: function(direction, e) {\r\n\t\t\tvar self = this, fn, $adj;\r\n\t\r\n\t\t\tif (direction === 0) return;\r\n\t\r\n\t\t\tfn = direction > 0 ? 'next' : 'prev';\r\n\t\t\tif (self.isShiftDown) {\r\n\t\t\t\t$adj = self.$control_input[fn]();\r\n\t\t\t\tif ($adj.length) {\r\n\t\t\t\t\tself.hideInput();\r\n\t\t\t\t\tself.setActiveItem($adj);\r\n\t\t\t\t\te && e.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tself.setCaret(self.caretPos + direction);\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Moves the caret to the specified index.\r\n\t\t *\r\n\t\t * @param {int} i\r\n\t\t */\r\n\t\tsetCaret: function(i) {\r\n\t\t\tvar self = this;\r\n\t\r\n\t\t\tif (self.settings.mode === 'single') {\r\n\t\t\t\ti = self.items.length;\r\n\t\t\t} else {\r\n\t\t\t\ti = Math.max(0, Math.min(self.items.length, i));\r\n\t\t\t}\r\n\t\r\n\t\t\tif(!self.isPending) {\r\n\t\t\t\t// the input must be moved by leaving it in place and moving the\r\n\t\t\t\t// siblings, due to the fact that focus cannot be restored once lost\r\n\t\t\t\t// on mobile webkit devices\r\n\t\t\t\tvar j, n, fn, $children, $child;\r\n\t\t\t\t$children = self.$control.children(':not(input)');\r\n\t\t\t\tfor (j = 0, n = $children.length; j < n; j++) {\r\n\t\t\t\t\t$child = $($children[j]).detach();\r\n\t\t\t\t\tif (j <  i) {\r\n\t\t\t\t\t\tself.$control_input.before($child);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.$control.append($child);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\tself.caretPos = i;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Disables user input on the control. Used while\r\n\t\t * items are being asynchronously created.\r\n\t\t */\r\n\t\tlock: function() {\r\n\t\t\tthis.close();\r\n\t\t\tthis.isLocked = true;\r\n\t\t\tthis.refreshState();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Re-enables user input on the control.\r\n\t\t */\r\n\t\tunlock: function() {\r\n\t\t\tthis.isLocked = false;\r\n\t\t\tthis.refreshState();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Disables user input on the control completely.\r\n\t\t * While disabled, it cannot receive focus.\r\n\t\t */\r\n\t\tdisable: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$input.prop('disabled', true);\r\n\t\t\tself.isDisabled = true;\r\n\t\t\tself.lock();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Enables the control so that it can respond\r\n\t\t * to focus and user input.\r\n\t\t */\r\n\t\tenable: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$input.prop('disabled', false);\r\n\t\t\tself.isDisabled = false;\r\n\t\t\tself.unlock();\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Completely destroys the control and\r\n\t\t * unbinds all event listeners so that it can\r\n\t\t * be garbage collected.\r\n\t\t */\r\n\t\tdestroy: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar eventNS = self.eventNS;\r\n\t\t\tvar revertSettings = self.revertSettings;\r\n\t\r\n\t\t\tself.trigger('destroy');\r\n\t\t\tself.off();\r\n\t\t\tself.$wrapper.remove();\r\n\t\t\tself.$dropdown.remove();\r\n\t\r\n\t\t\tself.$input\r\n\t\t\t\t.html('')\r\n\t\t\t\t.append(revertSettings.$children)\r\n\t\t\t\t.removeAttr('tabindex')\r\n\t\t\t\t.removeClass('selectized')\r\n\t\t\t\t.attr({tabindex: revertSettings.tabindex})\r\n\t\t\t\t.show();\r\n\t\r\n\t\t\tself.$control_input.removeData('grow');\r\n\t\t\tself.$input.removeData('selectize');\r\n\t\r\n\t\t\t$(window).off(eventNS);\r\n\t\t\t$(document).off(eventNS);\r\n\t\t\t$(document.body).off(eventNS);\r\n\t\r\n\t\t\tdelete self.$input[0].selectize;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * A helper method for rendering \"item\" and\r\n\t\t * \"option\" templates, given the data.\r\n\t\t *\r\n\t\t * @param {string} templateName\r\n\t\t * @param {object} data\r\n\t\t * @returns {string}\r\n\t\t */\r\n\t\trender: function(templateName, data) {\r\n\t\t\tvar value, id, label;\r\n\t\t\tvar html = '';\r\n\t\t\tvar cache = false;\r\n\t\t\tvar self = this;\r\n\t\t\tvar regex_tag = /^[\\t ]*<([a-z][a-z0-9\\-_]*(?:\\:[a-z][a-z0-9\\-_]*)?)/i;\r\n\t\r\n\t\t\tif (templateName === 'option' || templateName === 'item') {\r\n\t\t\t\tvalue = hash_key(data[self.settings.valueField]);\r\n\t\t\t\tcache = !!value;\r\n\t\t\t}\r\n\t\r\n\t\t\t// pull markup from cache if it exists\r\n\t\t\tif (cache) {\r\n\t\t\t\tif (!isset(self.renderCache[templateName])) {\r\n\t\t\t\t\tself.renderCache[templateName] = {};\r\n\t\t\t\t}\r\n\t\t\t\tif (self.renderCache[templateName].hasOwnProperty(value)) {\r\n\t\t\t\t\treturn self.renderCache[templateName][value];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\t// render markup\r\n\t\t\thtml = self.settings.render[templateName].apply(this, [data, escape_html]);\r\n\t\r\n\t\t\t// add mandatory attributes\r\n\t\t\tif (templateName === 'option' || templateName === 'option_create') {\r\n\t\t\t\thtml = html.replace(regex_tag, '<$1 data-selectable');\r\n\t\t\t}\r\n\t\t\tif (templateName === 'optgroup') {\r\n\t\t\t\tid = data[self.settings.optgroupValueField] || '';\r\n\t\t\t\thtml = html.replace(regex_tag, '<$1 data-group=\"' + escape_replace(escape_html(id)) + '\"');\r\n\t\t\t}\r\n\t\t\tif (templateName === 'option' || templateName === 'item') {\r\n\t\t\t\thtml = html.replace(regex_tag, '<$1 data-value=\"' + escape_replace(escape_html(value || '')) + '\"');\r\n\t\t\t}\r\n\t\r\n\t\t\t// update cache\r\n\t\t\tif (cache) {\r\n\t\t\t\tself.renderCache[templateName][value] = html;\r\n\t\t\t}\r\n\t\r\n\t\t\treturn html;\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Clears the render cache for a template. If\r\n\t\t * no template is given, clears all render\r\n\t\t * caches.\r\n\t\t *\r\n\t\t * @param {string} templateName\r\n\t\t */\r\n\t\tclearCache: function(templateName) {\r\n\t\t\tvar self = this;\r\n\t\t\tif (typeof templateName === 'undefined') {\r\n\t\t\t\tself.renderCache = {};\r\n\t\t\t} else {\r\n\t\t\t\tdelete self.renderCache[templateName];\r\n\t\t\t}\r\n\t\t},\r\n\t\r\n\t\t/**\r\n\t\t * Determines whether or not to display the\r\n\t\t * create item prompt, given a user input.\r\n\t\t *\r\n\t\t * @param {string} input\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tcanCreate: function(input) {\r\n\t\t\tvar self = this;\r\n\t\t\tif (!self.settings.create) return false;\r\n\t\t\tvar filter = self.settings.createFilter;\r\n\t\t\treturn input.length\r\n\t\t\t\t&& (typeof filter !== 'function' || filter.apply(self, [input]))\r\n\t\t\t\t&& (typeof filter !== 'string' || new RegExp(filter).test(input))\r\n\t\t\t\t&& (!(filter instanceof RegExp) || filter.test(input));\r\n\t\t}\r\n\t\r\n\t});\r\n\t\r\n\t\r\n\tSelectize.count = 0;\r\n\tSelectize.defaults = {\r\n\t\tplugins: [],\r\n\t\tdelimiter: ',',\r\n\t\tpersist: true,\r\n\t\tdiacritics: true,\r\n\t\tcreate: false,\r\n\t\tcreateOnBlur: false,\r\n\t\tcreateFilter: null,\r\n\t\thighlight: true,\r\n\t\topenOnFocus: true,\r\n\t\tmaxOptions: 1000,\r\n\t\tmaxItems: null,\r\n\t\thideSelected: null,\r\n\t\taddPrecedence: false,\r\n\t\tselectOnTab: false,\r\n\t\tpreload: false,\r\n\t\tallowEmptyOption: false,\r\n\t\r\n\t\tscrollDuration: 60,\r\n\t\tloadThrottle: 300,\r\n\t\r\n\t\tdataAttr: 'data-data',\r\n\t\toptgroupField: 'optgroup',\r\n\t\tvalueField: 'value',\r\n\t\tlabelField: 'text',\r\n\t\toptgroupLabelField: 'label',\r\n\t\toptgroupValueField: 'value',\r\n\t\toptgroupOrder: null,\r\n\t\r\n\t\tsortField: '$order',\r\n\t\tsearchField: ['text'],\r\n\t\tsearchConjunction: 'and',\r\n\t\r\n\t\tmode: null,\r\n\t\twrapperClass: 'selectize-control',\r\n\t\tinputClass: 'selectize-input',\r\n\t\tdropdownClass: 'selectize-dropdown',\r\n\t\tdropdownContentClass: 'selectize-dropdown-content',\r\n\t\r\n\t\tdropdownParent: null,\r\n\t\r\n\t\tcopyClassesToDropdown: true,\r\n\t\r\n\t\t/*\r\n\t\tload            : null, // function(query, callback) { ... }\r\n\t\tscore           : null, // function(search) { ... }\r\n\t\tonInitialize    : null, // function() { ... }\r\n\t\tonChange        : null, // function(value) { ... }\r\n\t\tonItemAdd       : null, // function(value, $item) { ... }\r\n\t\tonItemRemove    : null, // function(value) { ... }\r\n\t\tonClear         : null, // function() { ... }\r\n\t\tonOptionAdd     : null, // function(value, data) { ... }\r\n\t\tonOptionRemove  : null, // function(value) { ... }\r\n\t\tonOptionClear   : null, // function() { ... }\r\n\t\tonDropdownOpen  : null, // function($dropdown) { ... }\r\n\t\tonDropdownClose : null, // function($dropdown) { ... }\r\n\t\tonType          : null, // function(str) { ... }\r\n\t\tonDelete        : null, // function(values) { ... }\r\n\t\t*/\r\n\t\r\n\t\trender: {\r\n\t\t\t/*\r\n\t\t\titem: null,\r\n\t\t\toptgroup: null,\r\n\t\t\toptgroup_header: null,\r\n\t\t\toption: null,\r\n\t\t\toption_create: null\r\n\t\t\t*/\r\n\t\t}\r\n\t};\r\n\t\r\n\t\r\n\t$.fn.selectize = function(settings_user) {\r\n\t\tvar defaults             = $.fn.selectize.defaults;\r\n\t\tvar settings             = $.extend({}, defaults, settings_user);\r\n\t\tvar attr_data            = settings.dataAttr;\r\n\t\tvar field_label          = settings.labelField;\r\n\t\tvar field_value          = settings.valueField;\r\n\t\tvar field_optgroup       = settings.optgroupField;\r\n\t\tvar field_optgroup_label = settings.optgroupLabelField;\r\n\t\tvar field_optgroup_value = settings.optgroupValueField;\r\n\t\r\n\t\t/**\r\n\t\t * Initializes selectize from a <input type=\"text\"> element.\r\n\t\t *\r\n\t\t * @param {object} $input\r\n\t\t * @param {object} settings_element\r\n\t\t */\r\n\t\tvar init_textbox = function($input, settings_element) {\r\n\t\t\tvar i, n, values, option, value = $.trim($input.val() || '');\r\n\t\t\tif (!settings.allowEmptyOption && !value.length) return;\r\n\t\r\n\t\t\tvalues = value.split(settings.delimiter);\r\n\t\t\tfor (i = 0, n = values.length; i < n; i++) {\r\n\t\t\t\toption = {};\r\n\t\t\t\toption[field_label] = values[i];\r\n\t\t\t\toption[field_value] = values[i];\r\n\t\r\n\t\t\t\tsettings_element.options[values[i]] = option;\r\n\t\t\t}\r\n\t\r\n\t\t\tsettings_element.items = values;\r\n\t\t};\r\n\t\r\n\t\t/**\r\n\t\t * Initializes selectize from a <select> element.\r\n\t\t *\r\n\t\t * @param {object} $input\r\n\t\t * @param {object} settings_element\r\n\t\t */\r\n\t\tvar init_select = function($input, settings_element) {\r\n\t\t\tvar i, n, tagName, $children, order = 0;\r\n\t\t\tvar options = settings_element.options;\r\n\t\r\n\t\t\tvar readData = function($el) {\r\n\t\t\t\tvar data = attr_data && $el.attr(attr_data);\r\n\t\t\t\tif (typeof data === 'string' && data.length) {\r\n\t\t\t\t\treturn JSON.parse(data);\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t};\r\n\t\r\n\t\t\tvar addOption = function($option, group) {\r\n\t\t\t\tvar value, option;\r\n\t\r\n\t\t\t\t$option = $($option);\r\n\t\r\n\t\t\t\tvalue = $option.attr('value') || '';\r\n\t\t\t\tif (!value.length && !settings.allowEmptyOption) return;\r\n\t\r\n\t\t\t\t// if the option already exists, it's probably been\r\n\t\t\t\t// duplicated in another optgroup. in this case, push\r\n\t\t\t\t// the current group to the \"optgroup\" property on the\r\n\t\t\t\t// existing option so that it's rendered in both places.\r\n\t\t\t\tif (options.hasOwnProperty(value)) {\r\n\t\t\t\t\tif (group) {\r\n\t\t\t\t\t\tif (!options[value].optgroup) {\r\n\t\t\t\t\t\t\toptions[value].optgroup = group;\r\n\t\t\t\t\t\t} else if (!$.isArray(options[value].optgroup)) {\r\n\t\t\t\t\t\t\toptions[value].optgroup = [options[value].optgroup, group];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\toptions[value].optgroup.push(group);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\toption                 = readData($option) || {};\r\n\t\t\t\toption[field_label]    = option[field_label] || $option.text();\r\n\t\t\t\toption[field_value]    = option[field_value] || value;\r\n\t\t\t\toption[field_optgroup] = option[field_optgroup] || group;\r\n\t\r\n\t\t\t\toption.$order = ++order;\r\n\t\t\t\toptions[value] = option;\r\n\t\r\n\t\t\t\tif ($option.is(':selected')) {\r\n\t\t\t\t\tsettings_element.items.push(value);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\r\n\t\t\tvar addGroup = function($optgroup) {\r\n\t\t\t\tvar i, n, id, optgroup, $options;\r\n\t\r\n\t\t\t\t$optgroup = $($optgroup);\r\n\t\t\t\tid = $optgroup.attr('label');\r\n\t\r\n\t\t\t\tif (id) {\r\n\t\t\t\t\toptgroup = readData($optgroup) || {};\r\n\t\t\t\t\toptgroup[field_optgroup_label] = id;\r\n\t\t\t\t\toptgroup[field_optgroup_value] = id;\r\n\t\t\t\t\tsettings_element.optgroups[id] = optgroup;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t$options = $('option', $optgroup);\r\n\t\t\t\tfor (i = 0, n = $options.length; i < n; i++) {\r\n\t\t\t\t\taddOption($options[i], id);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\r\n\t\t\tsettings_element.maxItems = $input.attr('multiple') ? null : 1;\r\n\t\r\n\t\t\t$children = $input.children();\r\n\t\t\tfor (i = 0, n = $children.length; i < n; i++) {\r\n\t\t\t\ttagName = $children[i].tagName.toLowerCase();\r\n\t\t\t\tif (tagName === 'optgroup') {\r\n\t\t\t\t\taddGroup($children[i]);\r\n\t\t\t\t} else if (tagName === 'option') {\r\n\t\t\t\t\taddOption($children[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\treturn this.each(function() {\r\n\t\t\tif (this.selectize) return;\r\n\t\r\n\t\t\tvar instance;\r\n\t\t\tvar $input = $(this);\r\n\t\t\tvar tag_name = this.tagName.toLowerCase();\r\n\t\t\tvar placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');\r\n\t\t\tif (!placeholder && !settings.allowEmptyOption) {\r\n\t\t\t\tplaceholder = $input.children('option[value=\"\"]').text();\r\n\t\t\t}\r\n\t\r\n\t\t\tvar settings_element = {\r\n\t\t\t\t'placeholder' : placeholder,\r\n\t\t\t\t'options'     : {},\r\n\t\t\t\t'optgroups'   : {},\r\n\t\t\t\t'items'       : []\r\n\t\t\t};\r\n\t\r\n\t\t\tif (tag_name === 'select') {\r\n\t\t\t\tinit_select($input, settings_element);\r\n\t\t\t} else {\r\n\t\t\t\tinit_textbox($input, settings_element);\r\n\t\t\t}\r\n\t\r\n\t\t\tinstance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));\r\n\t\t});\r\n\t};\r\n\t\r\n\t$.fn.selectize.defaults = Selectize.defaults;\r\n\t\r\n\t\r\n\tSelectize.define('drag_drop', function(options) {\r\n\t\tif (!$.fn.sortable) throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');\r\n\t\tif (this.settings.mode !== 'multi') return;\r\n\t\tvar self = this;\r\n\t\r\n\t\tself.lock = (function() {\r\n\t\t\tvar original = self.lock;\r\n\t\t\treturn function() {\r\n\t\t\t\tvar sortable = self.$control.data('sortable');\r\n\t\t\t\tif (sortable) sortable.disable();\r\n\t\t\t\treturn original.apply(self, arguments);\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t\tself.unlock = (function() {\r\n\t\t\tvar original = self.unlock;\r\n\t\t\treturn function() {\r\n\t\t\t\tvar sortable = self.$control.data('sortable');\r\n\t\t\t\tif (sortable) sortable.enable();\r\n\t\t\t\treturn original.apply(self, arguments);\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t\tself.setup = (function() {\r\n\t\t\tvar original = self.setup;\r\n\t\t\treturn function() {\r\n\t\t\t\toriginal.apply(this, arguments);\r\n\t\r\n\t\t\t\tvar $control = self.$control.sortable({\r\n\t\t\t\t\titems: '[data-value]',\r\n\t\t\t\t\tforcePlaceholderSize: true,\r\n\t\t\t\t\tdisabled: self.isLocked,\r\n\t\t\t\t\tstart: function(e, ui) {\r\n\t\t\t\t\t\tui.placeholder.css('width', ui.helper.css('width'));\r\n\t\t\t\t\t\t$control.css({overflow: 'visible'});\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstop: function() {\r\n\t\t\t\t\t\t$control.css({overflow: 'hidden'});\r\n\t\t\t\t\t\tvar active = self.$activeItems ? self.$activeItems.slice() : null;\r\n\t\t\t\t\t\tvar values = [];\r\n\t\t\t\t\t\t$control.children('[data-value]').each(function() {\r\n\t\t\t\t\t\t\tvalues.push($(this).attr('data-value'));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tself.setValue(values);\r\n\t\t\t\t\t\tself.setActiveItem(active);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t});\r\n\t\r\n\tSelectize.define('dropdown_header', function(options) {\r\n\t\tvar self = this;\r\n\t\r\n\t\toptions = $.extend({\r\n\t\t\ttitle         : 'Untitled',\r\n\t\t\theaderClass   : 'selectize-dropdown-header',\r\n\t\t\ttitleRowClass : 'selectize-dropdown-header-title',\r\n\t\t\tlabelClass    : 'selectize-dropdown-header-label',\r\n\t\t\tcloseClass    : 'selectize-dropdown-header-close',\r\n\t\r\n\t\t\thtml: function(data) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t'<div class=\"' + data.headerClass + '\">' +\r\n\t\t\t\t\t\t'<div class=\"' + data.titleRowClass + '\">' +\r\n\t\t\t\t\t\t\t'<span class=\"' + data.labelClass + '\">' + data.title + '</span>' +\r\n\t\t\t\t\t\t\t'<a href=\"javascript:void(0)\" class=\"' + data.closeClass + '\">&times;</a>' +\r\n\t\t\t\t\t\t'</div>' +\r\n\t\t\t\t\t'</div>'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}, options);\r\n\t\r\n\t\tself.setup = (function() {\r\n\t\t\tvar original = self.setup;\r\n\t\t\treturn function() {\r\n\t\t\t\toriginal.apply(self, arguments);\r\n\t\t\t\tself.$dropdown_header = $(options.html(options));\r\n\t\t\t\tself.$dropdown.prepend(self.$dropdown_header);\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t});\r\n\t\r\n\tSelectize.define('optgroup_columns', function(options) {\r\n\t\tvar self = this;\r\n\t\r\n\t\toptions = $.extend({\r\n\t\t\tequalizeWidth  : true,\r\n\t\t\tequalizeHeight : true\r\n\t\t}, options);\r\n\t\r\n\t\tthis.getAdjacentOption = function($option, direction) {\r\n\t\t\tvar $options = $option.closest('[data-group]').find('[data-selectable]');\r\n\t\t\tvar index    = $options.index($option) + direction;\r\n\t\r\n\t\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\r\n\t\t};\r\n\t\r\n\t\tthis.onKeyDown = (function() {\r\n\t\t\tvar original = self.onKeyDown;\r\n\t\t\treturn function(e) {\r\n\t\t\t\tvar index, $option, $options, $optgroup;\r\n\t\r\n\t\t\t\tif (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {\r\n\t\t\t\t\tself.ignoreHover = true;\r\n\t\t\t\t\t$optgroup = this.$activeOption.closest('[data-group]');\r\n\t\t\t\t\tindex = $optgroup.find('[data-selectable]').index(this.$activeOption);\r\n\t\r\n\t\t\t\t\tif(e.keyCode === KEY_LEFT) {\r\n\t\t\t\t\t\t$optgroup = $optgroup.prev('[data-group]');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$optgroup = $optgroup.next('[data-group]');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t$options = $optgroup.find('[data-selectable]');\r\n\t\t\t\t\t$option  = $options.eq(Math.min($options.length - 1, index));\r\n\t\t\t\t\tif ($option.length) {\r\n\t\t\t\t\t\tthis.setActiveOption($option);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn original.apply(this, arguments);\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t\tvar getScrollbarWidth = function() {\r\n\t\t\tvar div;\r\n\t\t\tvar width = getScrollbarWidth.width;\r\n\t\t\tvar doc = document;\r\n\t\r\n\t\t\tif (typeof width === 'undefined') {\r\n\t\t\t\tdiv = doc.createElement('div');\r\n\t\t\t\tdiv.innerHTML = '<div style=\"width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;\"><div style=\"width:1px;height:100px;\"></div></div>';\r\n\t\t\t\tdiv = div.firstChild;\r\n\t\t\t\tdoc.body.appendChild(div);\r\n\t\t\t\twidth = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;\r\n\t\t\t\tdoc.body.removeChild(div);\r\n\t\t\t}\r\n\t\t\treturn width;\r\n\t\t};\r\n\t\r\n\t\tvar equalizeSizes = function() {\r\n\t\t\tvar i, n, height_max, width, width_last, width_parent, $optgroups;\r\n\t\r\n\t\t\t$optgroups = $('[data-group]', self.$dropdown_content);\r\n\t\t\tn = $optgroups.length;\r\n\t\t\tif (!n || !self.$dropdown_content.width()) return;\r\n\t\r\n\t\t\tif (options.equalizeHeight) {\r\n\t\t\t\theight_max = 0;\r\n\t\t\t\tfor (i = 0; i < n; i++) {\r\n\t\t\t\t\theight_max = Math.max(height_max, $optgroups.eq(i).height());\r\n\t\t\t\t}\r\n\t\t\t\t$optgroups.css({height: height_max});\r\n\t\t\t}\r\n\t\r\n\t\t\tif (options.equalizeWidth) {\r\n\t\t\t\twidth_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();\r\n\t\t\t\twidth = Math.round(width_parent / n);\r\n\t\t\t\t$optgroups.css({width: width});\r\n\t\t\t\tif (n > 1) {\r\n\t\t\t\t\twidth_last = width_parent - width * (n - 1);\r\n\t\t\t\t\t$optgroups.eq(n - 1).css({width: width_last});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tif (options.equalizeHeight || options.equalizeWidth) {\r\n\t\t\thook.after(this, 'positionDropdown', equalizeSizes);\r\n\t\t\thook.after(this, 'refreshOptions', equalizeSizes);\r\n\t\t}\r\n\t\r\n\t\r\n\t});\r\n\t\r\n\tSelectize.define('remove_button', function(options) {\r\n\t\tif (this.settings.mode === 'single') return;\r\n\t\r\n\t\toptions = $.extend({\r\n\t\t\tlabel     : '&times;',\r\n\t\t\ttitle     : 'Remove',\r\n\t\t\tclassName : 'remove',\r\n\t\t\tappend    : true\r\n\t\t}, options);\r\n\t\r\n\t\tvar self = this;\r\n\t\tvar html = '<a href=\"javascript:void(0)\" class=\"' + options.className + '\" tabindex=\"-1\" title=\"' + escape_html(options.title) + '\">' + options.label + '</a>';\r\n\t\r\n\t\t/**\r\n\t\t * Appends an element as a child (with raw HTML).\r\n\t\t *\r\n\t\t * @param {string} html_container\r\n\t\t * @param {string} html_element\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tvar append = function(html_container, html_element) {\r\n\t\t\tvar pos = html_container.search(/(<\\/[^>]+>\\s*)$/);\r\n\t\t\treturn html_container.substring(0, pos) + html_element + html_container.substring(pos);\r\n\t\t};\r\n\t\r\n\t\tthis.setup = (function() {\r\n\t\t\tvar original = self.setup;\r\n\t\t\treturn function() {\r\n\t\t\t\t// override the item rendering method to add the button to each\r\n\t\t\t\tif (options.append) {\r\n\t\t\t\t\tvar render_item = self.settings.render.item;\r\n\t\t\t\t\tself.settings.render.item = function(data) {\r\n\t\t\t\t\t\treturn append(render_item.apply(this, arguments), html);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\toriginal.apply(this, arguments);\r\n\t\r\n\t\t\t\t// add event listener\r\n\t\t\t\tthis.$control.on('click', '.' + options.className, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tif (self.isLocked) return;\r\n\t\r\n\t\t\t\t\tvar $item = $(e.currentTarget).parent();\r\n\t\t\t\t\tself.setActiveItem($item);\r\n\t\t\t\t\tif (self.deleteSelection()) {\r\n\t\t\t\t\t\tself.setCaret(self.items.length);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t};\r\n\t\t})();\r\n\t\r\n\t});\r\n\t\r\n\tSelectize.define('restore_on_backspace', function(options) {\r\n\t\tvar self = this;\r\n\t\r\n\t\toptions.text = options.text || function(option) {\r\n\t\t\treturn option[this.settings.labelField];\r\n\t\t};\r\n\t\r\n\t\tthis.onKeyDown = (function(e) {\r\n\t\t\tvar original = self.onKeyDown;\r\n\t\t\treturn function(e) {\r\n\t\t\t\tvar index, option;\r\n\t\t\t\tif (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {\r\n\t\t\t\t\tindex = this.caretPos - 1;\r\n\t\t\t\t\tif (index >= 0 && index < this.items.length) {\r\n\t\t\t\t\t\toption = this.options[this.items[index]];\r\n\t\t\t\t\t\tif (this.deleteSelection(e)) {\r\n\t\t\t\t\t\t\tthis.setTextboxValue(options.text.apply(this, [option]));\r\n\t\t\t\t\t\t\tthis.refreshOptions(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn original.apply(this, arguments);\r\n\t\t\t};\r\n\t\t})();\r\n\t});\r\n\r\n\treturn Selectize;\r\n}));"},function(t,e,n){n(0)(n(96)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Plugins/viewport.js")},function(t,e){t.exports='/*\r\n * Viewport - jQuery selectors for finding elements in viewport\r\n *\r\n * Copyright (c) 2008-2009 Mika Tuupola\r\n *\r\n * Licensed under the MIT license:\r\n *   http://www.opensource.org/licenses/mit-license.php\r\n *\r\n * Project home:\r\n *  http://www.appelsiini.net/projects/viewport\r\n *\r\n */\r\n(function ($) {\r\n\r\n  $.belowthefold = function (element, settings) {\r\n    var fold = $(window).height() + $(window).scrollTop();\r\n    return fold <= $(element).offset().top - settings.threshold;\r\n  };\r\n\r\n  $.abovethetop = function (element, settings) {\r\n    var top = $(window).scrollTop();\r\n    return top >= $(element).offset().top + $(element).height() - settings.threshold;\r\n  };\r\n\r\n  $.rightofscreen = function (element, settings) {\r\n    var fold = $(window).width() + $(window).scrollLeft();\r\n    return fold <= $(element).offset().left - settings.threshold;\r\n  };\r\n\r\n  $.leftofscreen = function (element, settings) {\r\n    var left = $(window).scrollLeft();\r\n    return left >= $(element).offset().left + $(element).width() - settings.threshold;\r\n  };\r\n\r\n  $.inviewport = function (element, settings) {\r\n    return !$.rightofscreen(element, settings) && !$.leftofscreen(element, settings) && !$.belowthefold(element, settings) && !$.abovethetop(element, settings);\r\n  };\r\n\r\n  $.extend($.expr[\':\'], {\r\n    "below-the-fold": function (a, i, m) {\r\n      return $.belowthefold(a, { threshold: 0 });\r\n    },\r\n    "above-the-top": function (a, i, m) {\r\n      return $.abovethetop(a, { threshold: 0 });\r\n    },\r\n    "left-of-screen": function (a, i, m) {\r\n      return $.leftofscreen(a, { threshold: 0 });\r\n    },\r\n    "right-of-screen": function (a, i, m) {\r\n      return $.rightofscreen(a, { threshold: 0 });\r\n    },\r\n    "in-viewport": function (a, i, m) {\r\n      return $.inviewport(a, { threshold: 0 });\r\n    }\r\n  });\r\n\r\n\r\n})(jQuery);\r\n'},function(t,e,n){var r={"./_jRespondTrigger.js":98,"./accordion.js":100,"./anchorscroll.js":102,"./article.js":104,"./browser-support-popup.js":106,"./campaign-module-full-size.js":108,"./categoryPageScrollToId.js":110,"./cookie.js":112,"./dam-gallery-masonry.js":114,"./dam-gallery-slider.js":116,"./device-info.js":118,"./dropdown.js":120,"./expert-search-container.js":122,"./facet-filters.js":124,"./facet-search.js":126,"./favorites.js":128,"./filtering-search.js":130,"./filters.js":132,"./footer.js":134,"./form-wizard.js":136,"./form.js":138,"./full-size-video.js":140,"./gallery.js":142,"./google-tag-manager.js":144,"./header.js":146,"./image-module.js":148,"./latest-viewed.js":150,"./links.js":152,"./loader.js":154,"./logo.js":156,"./media-list.js":158,"./mobile-filter.js":160,"./modal.js":162,"./navigation-module.js":164,"./primary-navigation.js":166,"./profile.js":168,"./querystring.js":170,"./related.js":172,"./search-global.js":174,"./slides-arrow.js":176,"./store.js":178,"./tabs.js":180,"./taxonomy.js":182,"./three-part-video.js":184,"./tmh.js":186,"./to-top.js":188,"./two-column.js":190,"./view-more.js":192,"./vimeo-embed.js":194,"./vok-list-to-filter.js":196,"./vok.js":198,"./youtube-embed.js":200};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=97},function(t,e,n){n(0)(n(99)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/_jRespondTrigger.js")},function(t,e){t.exports=" /*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n// call jRespond and add breakpoints\r\nvar jRes = jRespond([\r\n    {\r\n      label: 'handheld',\r\n      enter: 0,\r\n      exit: 767\r\n    },\r\n    {\r\n      label: 'tablet',\r\n      enter: 768,\r\n      exit: 991\r\n    },\r\n    {\r\n      label: 'desktop',\r\n      enter: 992,\r\n      exit: 1199\r\n    }, \r\n    {\r\n      label: 'huge',\r\n      enter: 1200,\r\n      exit: 10000000\r\n    }\r\n]);"},function(t,e,n){n(0)(n(101)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/accordion.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n    if (!jQuery('body').hasClass('pageedit')) {\r\n        PT.Accordion.standardAccordion();\r\n        PT.Accordion.removeEmptyManchet();\r\n        PT.Accordion.queryStringAccordion();\r\n    }\r\n});\r\n/*\r\n===================================\r\nPT.Accordion\r\n===================================\r\n*/\r\nPT.Accordion = {\r\n    standardAccordion: function () {\r\n        //jQuery('.js-expand > .content').hide();\r\n\r\n        jQuery('.js-expand .title').on('click', function (event) {\r\n            console.log(\"test\");\r\n            event.preventDefault();\r\n            var item = jQuery(this);\r\n            var content = item.parent().find('.content').first();\r\n            var isOpen = item.parent().hasClass('open') ? true : false;\r\n            var viewport = jQuery('html, body');\r\n\r\n            if (!isOpen) {\r\n                var headerHeight = jQuery('.top-header').outerHeight();\r\n\r\n                content.velocity('slideDown', {\r\n                    complete: function () {\r\n                        viewport.delay(200).animate({ scrollTop: item.offset().top - headerHeight }, 400);\r\n                    }\r\n                });\r\n\r\n                PT.Accordion.closeAll(item);\r\n\r\n            } else {\r\n                content.velocity('slideUp', 200);\r\n            }\r\n            item.parent().toggleClass('open');\r\n        });\r\n        //http://julian.com/research/velocity/\r\n    },\r\n    removeEmptyManchet: function () {\r\n        jQuery('.accordion-item').each(function () {\r\n            var intro = jQuery(this).find(\".intro\").not('.cfu');\r\n            if (intro.length) {\r\n                if (intro.html().trim().length <= 0) {\r\n                    intro.parent().remove();\r\n                }\r\n            }\r\n        });\r\n    },\r\n    closeAll: function (current) {\r\n        var opened = jQuery('.js-expand.open').not(current);\r\n        opened.removeClass('open').find('.content').first().velocity('slideUp', 200);\r\n    },\r\n    queryStringAccordion: function () {\r\n        var openAccordionItem = decodeURIComponent(PT.Accordion.getQueryString()['accordion']);\r\n        if (openAccordionItem != 'undefined') {\r\n            jQuery('.accordion-item .title').filter(function () {\r\n                return jQuery.trim(jQuery(this).text().toUpperCase()) === jQuery.trim(openAccordionItem.toUpperCase());\r\n            }).click();\r\n        }\r\n    },\r\n    getQueryString: function () {\r\n        var vars = [], hash;\r\n        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n        for (var i = 0; i < hashes.length; i++) {\r\n            hash = hashes[i].split('=');\r\n            vars.push(hash[0]);\r\n            vars[hash[0]] = hash[1];\r\n        }\r\n        return vars;\r\n    }\r\n};"},function(t,e,n){n(0)(n(103)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/anchorscroll.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  PT.Anchorscroll.init();\r\n});\r\n/*\r\n===================================\r\nPT.Anchorscroll\r\n===================================\r\n*/\r\nPT.Anchorscroll = {\r\n    settings: {\r\n        scrollSpeed: 500\r\n    },\r\n\r\n    init: function() {\r\n        jQuery(\'a[href*="#"]\').click(function(event) {\r\n            // Figure out element to scroll to\r\n            var targetId = $(this).attr("href").split("#")[1];\r\n\r\n            var target = jQuery("[name=\'" + targetId + "\']");\r\n            \r\n            if (window.innerWidth <= 1050) { \r\n                var offsetHeight = jQuery(".top-header").height();\r\n            } else {\r\n                var offsetHeight = 0;\r\n            }\r\n\r\n            // Does a scroll target exist?\r\n            if (target.length) {\r\n                // Only prevent default if animation is actually gonna happen\r\n                event.preventDefault();\r\n\r\n                $(\'html, body\').animate({\r\n                    scrollTop: target.offset().top - offsetHeight - 25\r\n                }, PT.Anchorscroll.settings.scrollSpeed)\r\n            }\r\n        })\r\n    }\r\n};'},function(t,e,n){n(0)(n(105)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/article.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery(\'body\').hasClass(\'pageedit\')) {\r\n    \r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.Article\r\n===================================\r\n*/\r\nPT.Article = {\r\n\r\n  MobileHeader: function () {\r\n    \r\n    jQuery(".article").each(function () {\r\n      //var h1 = jQuery(this).find(".article-header");\r\n      var h2 = jQuery(this).find("h2");\r\n      var content = jQuery(this).find(".article-content");\r\n      //h1.prependTo(content);\r\n      h2.prependTo(content);\r\n    });\r\n  },\r\n  DesktopHeader: function() {\r\n    jQuery(".article").each(function () {\r\n      //var h1 = jQuery(this).find(".article-header");;\r\n      var h2 = jQuery(this).find("h2");\r\n      var content = jQuery(this).find(".article-content");\r\n      //h1.prependTo(jQuery(this));\r\n      h2.prependTo(jQuery(this));\r\n    });\r\n  }\r\n};\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: [\'tablet\', \'desktop\', \'huge\'],\r\n      enter: function () {\r\n        PT.Article.DesktopHeader();\r\n      }\r\n    },\r\n    {\r\n      breakpoint: \'handheld\',\r\n      enter: function () {\r\n        PT.Article.MobileHeader();\r\n      },\r\n      exit: function () {\r\n        \r\n      }\r\n    }\r\n]);\r\n\r\n\r\n\r\n\r\n'},function(t,e,n){n(0)(n(107)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/browser-support-popup.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nwindow.onload = function () {\r\n  if (!document.body.className.match(/(?:^|\\s)pageedit(?!\\S)/)) {\r\n    PT.BrowserSupportPopup.Setup();\r\n  }\r\n}\r\n\r\n/*\r\n===================================\r\nPT.BrowserSupportPopup\r\n===================================\r\n*/\r\nPT.BrowserSupportPopup = {\r\n\r\n  /*\r\n  ===================================\r\n  Variables\r\n  ===================================\r\n  */\r\n  Variables: {\r\n    browserPopup: document.getElementById('js-browser-support-popup'),\r\n    topCloseButton: document.getElementById('js-browser-support-popup-close-top'),\r\n    bottomCloseButton: document.getElementById('js-browser-support-popup-close-bottom')\r\n  },\r\n\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Setup: function () {\r\n    if (PT.BrowserSupportPopup.Variables.browserPopup != null) {\r\n\r\n      if (!PT.BrowserSupportPopup.GetCookie('browsernotify')) {\r\n\r\n        PT.BrowserSupportPopup.Variables.browserPopup.className = PT.BrowserSupportPopup.Variables.browserPopup.className + ' notify';\r\n\r\n        if (PT.BrowserSupportPopup.Variables.topCloseButton.addEventListener) {\r\n          \r\n          PT.BrowserSupportPopup.Variables.topCloseButton.addEventListener('click', function () { PT.BrowserSupportPopup.PopupHide(); });\r\n          PT.BrowserSupportPopup.Variables.bottomCloseButton.addEventListener('click', function () { PT.BrowserSupportPopup.PopupHide(); });\r\n\r\n        } else {\r\n      \r\n          PT.BrowserSupportPopup.Variables.topCloseButton.attachEvent('onclick', function () { PT.BrowserSupportPopup.PopupHide(); });\r\n          PT.BrowserSupportPopup.Variables.bottomCloseButton.attachEvent('onclick', function () { PT.BrowserSupportPopup.PopupHide(); });\r\n\r\n        }\r\n\r\n      }\r\n    }\r\n  },\r\n\r\n  /*\r\n  ===================================\r\n  Set Cookie\r\n  ===================================\r\n  */\r\n  SetCookie: function (expireDays) {\r\n    var exdate = new Date();\r\n    exdate.setDate(exdate.getDate() + expireDays);\r\n    document.cookie = 'browsernotify=seen; expires=' + exdate.toUTCString() + '; path=/';\r\n  },\r\n\r\n  /*\r\n  ===================================\r\n  Get Cookie\r\n  ===================================\r\n  */\r\n  GetCookie: function (name) {\r\n    var nameEQ = name + \"=\";\r\n    var ca = document.cookie.split(';');\r\n    for (var i = 0; i < ca.length; i++) {\r\n      var c = ca[i];\r\n      while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n    }\r\n    return null;\r\n  },\r\n\r\n  /*\r\n  ===================================\r\n  Popup Hide\r\n  ===================================\r\n  */\r\n  PopupHide: function () {\r\n    PT.BrowserSupportPopup.Variables.browserPopup.className = PT.BrowserSupportPopup.Variables.browserPopup.className.replace(/(?:^|\\s)notify(?!\\S)/g, '');\r\n    PT.BrowserSupportPopup.SetCookie(30);\r\n  }\r\n};\r\n"},function(t,e,n){n(0)(n(109)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/campaign-module-full-size.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  //PT.CampaignModule.superslideInit();\r\n  PT.CampaignModule.checkIfExists();\r\n\r\n});\r\n/*\r\n===================================\r\nPT.CampaignModule\r\n===================================\r\n*/\r\nPT.CampaignModule = {\r\n\r\n  variables: {\r\n    moduleContainer: jQuery('.campaign-module'),\r\n    campaignModuleContainer: jQuery('.campaign-module .container'),\r\n    slides: jQuery('.campaign-module #slides'),\r\n    slideContainer: jQuery('.slide-container'),\r\n    slideBottomSpace: jQuery('.campaign-module').data('height'),\r\n    smallBrowserHeight: 640\r\n  },\r\n\r\n  superslideInit: function () {\r\n    if (!jQuery('.pageedit')[0] && jQuery('.campaign-module').length) {\r\n\r\n      if (!PT.CampaignModule.variables.slides.hasClass('js-initiated')) {\r\n        PT.CampaignModule.variables.slides.addClass('js-initiated');\r\n        // PT.CampaignModule.variables.moduleContainer.removeAttr('style');\r\n\r\n        PT.CampaignModule.variables.slides.superslides({\r\n          inherit_height_from: \".campaign-module\",\r\n          animation_speed: 500\r\n        });\r\n\r\n        PT.CampaignModule.placeContent();\r\n      }\r\n    }\r\n  },\r\n\r\n  mobileSlideInit: function () {\r\n\r\n    var campaignmodule = jQuery(\".campaign-module\");\r\n\r\n    if (!jQuery('.pageedit')[0]) {\r\n      if (!PT.CampaignModule.variables.slides.hasClass('js-initiated')) {\r\n        PT.CampaignModule.variables.slides.addClass('js-initiated');\r\n        PT.CampaignModule.variables.moduleContainer.removeAttr('style');\r\n\r\n        PT.CampaignModule.variables.slideContainer.each(function () {\r\n          var mobileImage = jQuery(this).data(\"image-mobile\");\r\n          if (mobileImage.length) {\r\n            jQuery(this).find(\".theImage\").prop(\"src\", mobileImage);\r\n          }\r\n          var showText = jQuery(this).data(\"text-showmobile\");\r\n          var container = jQuery(this).find(\".container\");\r\n          if (showText === \"False\") {\r\n            container.addClass('hide-text');\r\n          }\r\n          //var containerHeight = container.height();\r\n          //container.attr(\"data-height\", containerHeight);\r\n          //container.css('bottom', -containerHeight);\r\n        });\r\n\r\n\r\n        var firstHeight = jQuery(\".slide-container .container\").first().data(\"height\");\r\n        \r\n        //campaignmodule.css('margin-bottom', firstHeight);\r\n        //jQuery(\".slide-container .container\").first().css('bottom', -firstHeight);\r\n        var slideNo = 0;\r\n\r\n        //var extraHeight = 0;\r\n        //jQuery(\".slide-container .container\").each(function () {\r\n        //  extraHeight = extraHeight > jQuery(this).height() ? extraHeight : jQuery(this).height();\r\n        //});\r\n        //campaignmodule.css('margin-bottom', extraHeight);\r\n\r\n        \r\n\r\n        jQuery(document).on('animating.slides', function () {\r\n          if (slideNo > 0) {\r\n            var slide = jQuery(\".slide-container\")[PT.CampaignModule.variables.slides.superslides('next')];\r\n            var slideHeight = jQuery(slide).find(\".container\").data(\"height\");\r\n            campaignmodule.animate({ marginBottom: slideHeight }, 500);\r\n          }\r\n        });\r\n\r\n        jQuery(document).on('animated.slides', function () {\r\n          slideNo++;\r\n        });\r\n\r\n        PT.CampaignModule.variables.slides.superslides({\r\n          animation_speed: 500,\r\n          //inherit_width_from: \".campaign-module\",\r\n          inherit_height_from: \".campaign-module\"\r\n        });\r\n      }\r\n    }\r\n  },\r\n\r\n  checkIfExists: function () {\r\n    if (PT.CampaignModule.variables.moduleContainer[0]) {\r\n      jQuery('.identity-module').addClass('js-absolute');\r\n      PT.CampaignModule.swipeInit();\r\n    }\r\n  },\r\n\r\n  placeContent: function () {\r\n    if (this.variables.campaignModuleContainer.length > 0) {\r\n      var identityHeight = jQuery('.identity-module').height();\r\n      identityHeight = 200; //Magic number\r\n      if (jQuery('.primary-navigation').hasClass('has-children')) {\r\n        this.variables.campaignModuleContainer.css('top', identityHeight + jQuery('.primary-navigation').height());\r\n      }\r\n    }\r\n  },\r\n\r\n  swipeInit: function () {\r\n    if (PT.CampaignModule.variables.slides.get(0) !== undefined) {\r\n      var campaignSwipe = new Hammer(PT.CampaignModule.variables.slides.get(0)); // Can't pass a jQuery wrapped element, therefore .get(0) - NHA\r\n      if (PT.CampaignModule.variables.slideContainer.length > 1) {\r\n        campaignSwipe.on('swipeleft', function (e) {\r\n          e.preventDefault();\r\n          PT.CampaignModule.variables.slides.superslides('animate', 'next');\r\n        });\r\n\r\n        campaignSwipe.on('swiperight', function (e) {\r\n          e.preventDefault();\r\n          PT.CampaignModule.variables.slides.superslides('animate', 'prev');\r\n        });\r\n      }\r\n    }\r\n  },\r\n  setModuleHeight: function (breakpoint) {\r\n    if (this.variables.campaignModuleContainer.length > 0) {\r\n      if (breakpoint === \"desktop\") {\r\n        if (PT.CampaignModule.variables.smallBrowserHeight > jQuery(window).height()) {\r\n          var height = jQuery('.campaign-module .container').height() + jQuery('.campaign-module .container').position().top;\r\n          var moduleHeight = 0;\r\n          if (height > jQuery(window).height()) {\r\n            moduleHeight = height - jQuery(window).height();\r\n          }\r\n          \r\n          PT.CampaignModule.variables.moduleContainer.css(\"height\", jQuery(window).height() - moduleHeight)\r\n        }\r\n        else {\r\n          PT.CampaignModule.variables.moduleContainer.css(\"height\", jQuery(window).height() - PT.CampaignModule.variables.slideBottomSpace)\r\n        }\r\n      } else if (breakpoint === \"mobile\") {\r\n        PT.CampaignModule.variables.moduleContainer.css(\"height\", \"\");\r\n      }\r\n    }\r\n  }\r\n\r\n};\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: ['tablet', 'desktop', 'huge'],\r\n      enter: function () {\r\n        PT.CampaignModule.setModuleHeight('desktop');\r\n        PT.CampaignModule.superslideInit();\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'handheld',\r\n      enter: function () {\r\n        PT.CampaignModule.setModuleHeight('mobile');\r\n        PT.CampaignModule.mobileSlideInit();\r\n      },\r\n      exit: function () {\r\n        //PT.CampaignModule.superslideInit();\r\n      }\r\n    }\r\n]);\r\n\r\n"},function(t,e,n){n(0)(n(111)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/categoryPageScrollToId.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.CategoryPageScrollToID\r\n===================================\r\n*/\r\nPT.CategoryPageScrollToID = {\r\n  scroll: function () {\r\n    var categoryId = getParameterByName("categoryId");\r\n    var topHeaderHeight = document.querySelector(".top-header .primary-navigation").clientHeight;\r\n\r\n    if (categoryId !== null) {\r\n      $(\'html, body\').animate({\r\n        scrollTop: ($("a[name=\\"" + categoryId + "\\"]").offset().top - topHeaderHeight)\r\n      }, 650);\r\n    }\r\n  }\r\n};\r\n\r\nfunction getParameterByName(name, url) {\r\n  if (!url) url = window.location.href;\r\n  name = name.replace(/[\\[\\]]/g, "\\\\$&");\r\n  var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),\r\n      results = regex.exec(url);\r\n  if (!results) return null;\r\n  if (!results[2]) return \'\';\r\n  return decodeURIComponent(results[2].replace(/\\+/g, " "));\r\n}\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nif (document.getElementById("expert-list") !== null) {\r\n  PT.CategoryPageScrollToID.scroll();\r\n}\r\n\r\n\r\n\r\n'},function(t,e,n){n(0)(n(113)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/cookie.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.Cookie\r\n===================================\r\n*/\r\n\r\nPT.Cookie = {\r\n\tproperties: {\r\n\t\tfavoritesName: "favorites",\r\n\t\thistoryName: "history"\r\n\t},\r\n\r\n\tadd: function (name, value) {\r\n\t\tvalue = typeof value !== "undefined" ? value : "";\r\n\r\n\t\tvar preData = this.get(name),\r\n\t\t\tcookieValue = value,\r\n\t\t\texpiration = "";\r\n\r\n\t\t// DO not reapply content to array if already there\r\n\t\tif (preData.indexOf(cookieValue.toString()) === -1) {\r\n\t\t\tif (preData.length) {\r\n\t\t\t\tcookieValue += "|" + preData.join("|");\r\n\t\t\t}\r\n\r\n\t\t\t// Save Cookie\r\n\t\t\tthis.__saveCookie(name, cookieValue);\r\n\t\t}\r\n\t},\r\n\r\n\tget: function (name) {\r\n\t\treturn this.__getCookieValue(name);\r\n\t},\r\n\r\n\tremove: function (name, value) {\r\n\t\tif (typeof value === "undefined") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar cookie = this.__getCookieValue(name);\r\n\r\n\t\t// Generate new array, with newly missing value\r\n\t\tvar index = cookie.indexOf(value.toString());\r\n\t\tif (index !== -1) {\r\n\t\t\tcookie.splice(index, 1);\r\n\r\n\t\t\t// Save Cookie\r\n\t\t\tthis.__saveCookie(name, cookie.join("|"));\r\n\t\t}\r\n\t},\r\n\tremoveAll: function(name) {\r\n\t\tthis.__saveCookie(name, "");\r\n\t},\r\n\r\n\r\n\r\n\t//\r\n\t// Private methods\r\n\t__getCookieValue: function (name) {\r\n\t\tvar namePart = name + "=";\r\n\t\tvar allCookies = document.cookie.split(";");\r\n\r\n\t\tvar i = 0,\r\n\t\t\t  allCookiesLength = allCookies.length;\r\n\r\n\t\tfor (; i < allCookiesLength; i++) {\r\n\t\t\tvar cookie = allCookies[i].replace(/ +/g, ""); // Take into account that a cookie can have a space in front of the name.\r\n\r\n\t\t\tif (cookie.indexOf(namePart) === 0) {\r\n\t\t\t\tvar value = cookie.replace(namePart, "");\r\n\t\t\t\tvalue = typeof value !== "undefined" ? value : "";\r\n\r\n\t\t\t\treturn value.split("|");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t},\r\n\r\n\t__saveCookie: function (name, value) {\r\n\t\tvar exdate = new Date();\r\n\t\texdate.setDate(exdate.getDate() + 356);\r\n\t\texpiration = "expires=" + exdate.toUTCString() + ";";\r\n\r\n\t\tdocument.cookie = name + "=" + value + ";path=/;" + expiration;\r\n\t}\r\n};'},function(t,e,n){n(0)(n(115)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/dam-gallery-masonry.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tif (!jQuery('body').hasClass('pageedit')) {\r\n\t\tPT.DamGalleryMasonry.Masonry();\r\n\t}\r\n});\r\n/*\r\n===================================\r\nPT.DamGallery Masonry based on the plugin: Masonry.js (https://masonry.desandro.com)\r\n===================================\r\n*/\r\nPT.DamGalleryMasonry = {\r\n\r\n\tMasonry: function () {\r\n\r\n\t\tvar masonryGrid = $('.js-masonry-grid');\r\n\r\n\t\tmasonryGrid.masonry({\r\n\t\t\titemSelector: '.js-masonry-grid-item',\r\n\t\t\tcolumnWidth: '.js-masonry-grid-sizer' \r\n\t\t\t, percentPosition: true\r\n\t\t\t, gutter: 0\r\n        });\r\n\r\n\t\tmasonryGrid.masonry();\r\n\r\n\t}\r\n};\r\n"},function(t,e,n){n(0)(n(117)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/dam-gallery-slider.js")},function(t,e){t.exports="/*\n===================================\nPentia (PT) Namespace\n===================================\n*/\nvar PT = PT || {};\n\n/*\n===================================\nInitialize\n===================================\n*/\njQuery(document).ready(function () {\n\tif (!jQuery('body').hasClass('pageedit')) {\n\t\tPT.DamGallerySlider.Slider();\n\t\tPT.DamGallerySlider.bindings();\n\t}\n});\n/*\n===================================\nPT.DamGallery Slider based on the plugin: FlexSlider\n===================================\n*/\nPT.DamGallerySlider = {\n\n\tbindings: function () {\n\t\t\n\t\t$('.js-simple-dam-gallery-item').on('click', this.initSlider);\n\n\t\t$('.js-play-button', '.js-masonry-grid').on('click', this.playVideo);\n\n\t\t$('.js-dam-gallery-slider')\n\t\t\t.on('click', '.js-dam-gallery-slider-close-button', this.closeSlider)\n\t\t\t.on('click', '.js-dam-gallery-slider-close-button, .flex-next, .flex-prev', this.pauseVideoPlayers);\n\t},\n\n\tinitSlider: function (event) {\n\t\n\t\tvar sliderContainer = $(event.target).parent().find('.js-dam-gallery-slider'),\n\t\t\t\tslider = sliderContainer.find('.slider'),\n\t\t\t\tcarousel = sliderContainer.find('.carousel');\n\n\t\tslider.flexslider({\n\t\t\tanimation: \"slide\",\n\t\t\tcontrolNav: false,\n\t\t\tanimationLoop: false,\n\t\t\tslideshow: false,\n\t\t\tprevText: \"\",\n\t\t\tnextText: \"\",\n\t\t\tsync: carousel,\n\t\t\tstart: PT.DamGallerySlider.openSlider(sliderContainer)\n\t\t});\n\t\t\n\t\tif (!sliderContainer.data('single')) {\n\t\t\tcarousel.flexslider({\n\t\t\t\tanimation: \"slide\",\n\t\t\t\tcontrolNav: false,\n\t\t\t\tanimationLoop: false,\n\t\t\t\tslideshow: false,\n\t\t\t\tprevText: \"\",\n\t\t\t\tnextText: \"\",\n\t\t\t\titemWidth: 120,\n\t\t\t\titemMargin: 1,\n\t\t\t\tasNavFor: slider\n\t\t\t});\n\t\t}\n\t},\n\n\topenSlider: function (sliderContainer) {\n\t\t$('body').addClass('is-hidden-scroll-bar');\n\t\tsliderContainer.addClass('is-visible-slider is-fade-slider-in');\n\t\t\n\t\t// If the slider is of the type single, ie. only showing one item, and not a gallery\n\t\tif (sliderContainer.data('single')) {\n\t\t\tthis.playVideo(sliderContainer);\n\t\t}\n\t\t\n\t},\n\n\tcloseSlider: function () {\n\t\tvar sliderContainer = $(this).parent().parent();\n\t\t\n\t\t$('body.' + 'is-hidden-scroll-bar').removeClass('is-hidden-scroll-bar');\n\n\t\tsliderContainer.removeClass('is-fade-slider-in');\n\t\tsetTimeout(function () {\n\t\t\tsliderContainer.removeClass('is-visible-slider');\n\t\t}, 700);\n\t}, \n\t\n\tpauseVideoPlayers: function () {\n\n\t\t// DAM Videos\n\t\t$('video').each(function() {\n\t\t\t$(this).get(0).pause();\n\t\t});\n\n\t\t// Vimeo Videos (requires the Vimeo API)\n\t\tvar vimeoIframe = $('.js-vimeo-embed-target iframe')[0];\n\t\tvar vimeoPlayer = new Vimeo.Player(vimeoIframe);\n\n\t\t$(vimeoIframe).each(function() {\n\t\t\tvimeoPlayer.pause();\n\t\t});\n\n\t\t// YouTube Videos (We depend on GA is loading the YouTube Iframe API)\n\t\tvar youtubeIframe =  $('.js-youtube-embed-target iframe')[0];\n\t\tvar player = PT.YoutubeEmbed.players[youtubeIframe.id];\n\t\t\n\t\tif (player) {\n\t\t\tplayer.pauseVideo();\n\t\t}\n\n\t},\n\n\tplayVideo: function (container) {\t\t\n\t\tsetTimeout(function () {\n\t\t\tcontainer.find('.flex-active-slide video').each(function() {\n\t\t\t\t$(this).get(0).play();\n\t\t\t});\n\t\t}, 500);\n\t},\n\n\tSlider: function () {\n\n\t\t$('.js-dam-gallery-slider').each(function (index) {\n\t\t\tvar _this = $(this),\n\t\t\t\t\tsliderItem = _this.find('.slider'),\n\t\t\t\t\tcarousel = _this.find('.carousel'),\n\t\t\t\t\tHiddenScrollBar = 'is-hidden-scroll-bar',\n\t\t\t\t\tFadeSliderIn = 'is-fade-slider-in',\n\t\t\t\t\tVisibleSlider = 'is-visible-slider',\n\t\t\t\t\tsliderId = 'slider-' + index,\n\t\t\t\t\tcarouselId = 'carousel-' + index\n\t\t\t\n\t\t\tsliderItem.attr('id', sliderId);\n\t\t\tcarousel.attr('id', carouselId);\n\n\t\t\t$('#slider-' + index).flexslider({\n\t\t\t\tanimation: \"slide\",\n\t\t\t\tcontrolNav: false,\n\t\t\t\tanimationLoop: false,\n\t\t\t\tslideshow: false,\n\t\t\t\tprevText: \"\",\n\t\t\t\tnextText: \"\",\n\t\t\t\tsync: \"#carousel-\" + index,\n\t\t\t\tstart: function(slider) {\n\t\t\t\t\t_this.prev('.dam-gallery-masonry').find('a.js-masonry-grid-item').click(function() {\n\t\t\t\t\t\t$('body').addClass(HiddenScrollBar);\n\t\t\t\t\t\t_this\n\t\t\t\t\t\t\t.addClass(VisibleSlider)\n\t\t\t\t\t\t\t.addClass(FadeSliderIn);\n\t\t\t\t\t\tvar slideTo = $(this).attr(\"rel\"); // Grab rel value.\n\t\t\t\t\t\tvar slideToInt = parseInt(slideTo); // Make sure the value is an integer.\n\t\t\t\t\t\tif (slider.currentSlide != slideToInt) {\n\t\t\t\t\t\t\tslider.flexAnimate(slideToInt)// Move to the correct slide (Unless current slide).\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t,video: true\n\t\t\t});\n\n\t\t\t$('#carousel-' + index).flexslider({\n\t\t\t\tanimation: \"slide\",\n\t\t\t\tcontrolNav: false,\n\t\t\t\tanimationLoop: false,\n\t\t\t\tslideshow: false,\n\t\t\t\tprevText: \"\",\n\t\t\t\tnextText: \"\",\n\t\t\t\titemWidth: 120,\n\t\t\t\titemMargin: 1,\n\t\t\t\tasNavFor: '#slider-' + index\n\t\t\t});\n\n\t\t});\n\t}\n};\n"},function(t,e,n){n(0)(n(119)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/device-info.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.DeviceInfo.initialize();\r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.DeviceInfo\r\n===================================\r\n*/\r\nPT.DeviceInfo = {\r\n\tinitialize: function () {\r\n\t\tthis.iOSCheck();\r\n\t},\r\n\r\n\tiOSCheck: function () {\r\n\t\tvar iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n\r\n    if (iOS) {\r\n      jQuery('body').addClass('ios');\r\n    }\r\n\t}\r\n};"},function(t,e,n){n(0)(n(121)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/dropdown.js")},function(t,e){t.exports="/*\n===================================\nPentia (PT) Namespace\n===================================\n*/\nvar PT = PT || {};\n\n/*\n===================================\nInitialize\n===================================\n*/\njQuery(document).ready(function () {\n\tPT.Dropdown.init();\n});\n\n/*\n===================================\nPT.Dropdown\n===================================\n*/\nPT.Dropdown = {\n\n  init: function () {\n\tthis.dropdowns = jQuery('.js-dropdown');\n\n\tthis.dropdowns.each(function () {\n\t\tvar content = jQuery(this).find('.js-dropdown-content');\n\t\tvar icon = jQuery(this).find('.js-dropdown-icon');\n\t\tvar selected = jQuery(this).find('.selected');\n\n\t\tselected.unbind();\n\n\t\tjQuery(this).on('click', function (e) {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\tselected.on('click', function () {\n\t\t\tif (!jQuery(this).parent().hasClass('is-active')) {\n\t\t\t\tPT.Dropdown.closeAll();\n\t\t\t\tPT.Dropdown.toggle(content, icon);\n\t\t\t} else {\n\t\t\t\tPT.Dropdown.toggle(content, icon);\n\t\t\t}\n\t\t});\n\n\t\ticon.on('click', function () {\n\t\t\tif (!jQuery(this).parent().hasClass('is-active')) {\n\t\t\t\tPT.Dropdown.closeAll();\n\t\t\t\tPT.Dropdown.toggle(content, icon);\n\t\t\t} else {\n\t\t\t\tPT.Dropdown.toggle(content, icon);\n\t\t\t}\n\t\t});\n\n\t\tif (jQuery(this).data('type') === 'basic') {\n\t\t\tcontent.find('.js-dropdown-item').each(function () {\n\t\t\t\tjQuery(this).on('click', function () {\n\t\t\t\t\tPT.Dropdown.select(jQuery(this), selected);\n\t\t\t\t\tPT.Dropdown.toggle(content, icon);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n\n\t// Close dropdown if click event is outside\n\tjQuery(document).on('click', function (e) {\n\t\tthis.closeAll();\n\t}.bind(this));\n  },\n\n\ttoggle: function (elem, icon) {\n\t\telem.toggle();\n\t\telem.parent().toggleClass('is-active');\n\t\ticon.toggleClass('icons_arrow-up ');\n\t},\n\n\tcloseAll: function () {\n\t\tvar content = jQuery('.js-dropdown-content');\n\t\tvar icon = jQuery('.js-dropdown-icon');\n\n\t\tcontent.hide();\n\t\tcontent.parent().removeClass('is-active');\n\t\ticon.removeClass('icons_arrow-up ');\n\t},\n\n\tselect: function (elem, selected) {\n\t\tvar value = elem.data('value');\n\t\tvar text = elem.data('text');\n\n\t\tselected.text(text);\n\t}\n\n};"},function(t,e,n){n(0)(n(123)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/expert-search-container.js")},function(t,e){t.exports="/* global ExpertSearchData */\r\n\r\n\r\n/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  //PT.ExpertSearchModule.superslideInit();\r\n  if (document.getElementById(\"expert-search-container\") !== null) {\r\n    PT.ExpertSearchModule.init();\r\n  }\r\n});\r\n\r\n/*\r\n===================================\r\nPT.ExpertSearchModule\r\n===================================\r\n*/\r\nPT.ExpertSearchModule = {\r\n  variables: {\r\n    data: []\r\n  },\r\n  \r\n  init: function() {\r\n    PT.ExpertSearchModule.disableFormSubmit();\r\n    PT.ExpertSearchModule.scrollToInput();\r\n    PT.ExpertSearchModule.refactorExpertData();\r\n    PT.ExpertSearchModule.autocomplete();\r\n  },\r\n\r\n  disableFormSubmit: function () {\r\n    jQuery('.js-expert-search').on('keydown', function (event) {\r\n      return event.keyCode != 13;\r\n    });\r\n  },\r\n\r\n  scrollToInput: function () {\r\n    jQuery('#eq').on('keypress', function (e) {\r\n      \r\n    });\r\n\r\n    var headerHeight = jQuery('.top-header').outerHeight();\r\n\r\n    jQuery('.js-expert-search').on('focus', function () {\r\n      if(jQuery(window).innerWidth() < 1024) {\r\n        jQuery('html, body').animate({\r\n            scrollTop: (jQuery(this).offset().top - headerHeight)\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  autocomplete: function () {\r\n    var termTemplate = '<span class=\"ui-autocomplete-term\">%s</span>';\r\n    var len = 0;\r\n\r\n    jQuery('.js-expert-search').catcomplete({\r\n      delay: 0,\r\n      minLength: 1,\r\n      appendTo : '#expert-search-container__results',\r\n      source: PT.ExpertSearchModule.variables.data,\r\n      select: function (event, ui) {\r\n        window.location.href = ui.item.url;\r\n      },\r\n      response: function (event, ui) {\r\n        len = ui.content.length;\r\n      },\r\n      open: function (event, ui) {\r\n        var result = '';\r\n        \r\n        if (len > 1) {\r\n          result = 'Resultater';\r\n        } else {\r\n          result = 'Resultat';\r\n        }\r\n\r\n        jQuery('.ui-autocomplete').prepend('<li class=\"result-count\">' + len + ' ' + result + '</li>');\r\n      },\r\n      change: function (event, ui) {\r\n        if(jQuery(this).val() != '') {\r\n          jQuery('.ui-autocomplete').addClass('blur');\r\n        }\r\n      },\r\n      search: function (event, ui) {\r\n        jQuery('.ui-autocomplete').removeClass('blur');\r\n      },\r\n      close: function (event, ui) {\r\n        jQuery('.ui-autocomplete').removeClass('blur');\r\n      },\r\n      highlightClass: 'ui-autocomplete-highlight'\r\n    });\r\n  },\r\n\r\n  // Refactor data to better match jQuery UI Autocomplete requirements\r\n  refactorExpertData: function () {\r\n\r\n    // Categories\r\n    for (var category in ExpertSearchData['categories']) {\r\n      for (var subcategory in ExpertSearchData['categories'][category].specialityCategories) {\r\n        PT.ExpertSearchModule.variables.data.push({\r\n          label: ExpertSearchData['categories'][category].specialityCategories[subcategory].title,\r\n          url: ExpertSearchData['categories'][category].specialityCategories[subcategory].urlPage,\r\n          category: ExpertSearchData['categories'][category].title,\r\n          categoryUrl: ExpertSearchData['categories'][category].urlPage\r\n        });\r\n      }\r\n    }\r\n\r\n    // Experts\r\n    for (var expert in ExpertSearchData['experts']) {\r\n      PT.ExpertSearchModule.variables.data.push({\r\n        label: ExpertSearchData['experts'][expert].fullname,\r\n        url: ExpertSearchData['experts'][expert].urlProfile,\r\n        category: 'Ekspert',\r\n        categoryUrl: ''\r\n      });\r\n    }\r\n  }\r\n};\r\n\r\n// Custom jQuery UI Autocomplete functionality\r\njQuery.widget('custom.catcomplete', jQuery.ui.autocomplete, {\r\n  _create: function () {\r\n    this._super();\r\n    this.widget().menu('option', 'items', '> :not(.search-autocomplete__category)');\r\n  },\r\n  _renderMenu: function (ul, items) {\r\n    var that = this;\r\n    var currentCategory = \"\";\r\n\r\n    jQuery.each(items, function (index, item) {\r\n      var li;\r\n\r\n      if (item.category != currentCategory) {\r\n        //ul.append('<li class=\"search-autocomplete__category\"><a href=\"' + item.categoryUrl + '\">' + item.category + '</a></li>');\r\n        ul.append('<li class=\"search-autocomplete__category\">' + item.category + '</li>');\r\n        currentCategory = item.category;\r\n      }\r\n\r\n      li = that._renderItemData(ul, item);\r\n\r\n      if (item.category) {\r\n        li.attr('aria-label', item.category + ' : ' + item.label);\r\n      }\r\n    });\r\n  },\r\n  _renderItem: function (ul, item) {\r\n    var label = item.label\r\n    var regexp = new RegExp('(' + this.term + ')', 'gi');\r\n    var classString = this.options.highlightClass ? ' class=\"' + this.options.highlightClass + '\"' : '';\r\n\r\n    if(this.term != '') {\r\n        label = item.label.replace(regexp, '<span' + classString + '>$1</span>');\r\n    }\r\n\r\n    return $('<li>' + label + '</li>').appendTo(ul);\r\n  }\r\n});"},function(t,e,n){n(0)(n(125)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/facet-filters.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.FacetFilters.init();\r\n});\r\n/*\r\n===================================\r\nPT.FacetFilters\r\n===================================\r\n*/\r\nPT.FacetFilters = {\r\n  // Properties\r\n  properties: {\r\n    predefined: false,\r\n    showsearchbox: true,\r\n    autosearch: false,\r\n    querystrings: null\r\n  },\r\n\r\n  // Elements\r\n\telements: {\r\n    facets: jQuery('.js-facet'),\r\n    tagContainer: jQuery('.js-facet-tag-container'),\r\n    facetCounter: jQuery('.js-mobile-filter-counter'),\r\n    dropDownFacetCounter: jQuery('.js-dropwn-filter-counter')\r\n  },\r\n\r\n  init: function () {\r\n    this.properties.querystrings = PT.Querystring.getAll();\r\n\r\n      var facettedSearch = jQuery('#FacettedSearch');\r\n\r\n    // If autosearch is enabled\r\n    if (facettedSearch.data('autosearch') === 'True') {\r\n      PT.FacetSearch.properties.autosearch = true;\r\n    }\r\n\r\n    // If there are predefined facets\r\n    if (jQuery('#FacettedSearch').data('haspredefinedsearch') === 'True') {\r\n      this.properties.predefined = true;\r\n    }\r\n\r\n    if (facettedSearch.data('showsearchbox') === 'True') {\r\n      // Update all facets on load\r\n      this.updateFacets();\r\n    } else if (facettedSearch.data('showsearchbox') === 'False') {\r\n      PT.FacetSearch.properties.showSearchBox = false;\r\n\r\n      if (PT.FacetSearch.properties.autosearch) {\r\n        PT.FacetSearch.search({preventScroll: true});\r\n      }\r\n    }\r\n\r\n    // Update facets once a facet has been selected\r\n    this.elements.facets.on('change', function (event) {\r\n      this.updateFacets(event.target);\r\n    }.bind(this));\r\n\r\n    // Remove facet tags\r\n    this.elements.tagContainer.on('click', '.js-facet-tag', this.clearFacet);\r\n\r\n    this.elements.tagContainer.on('click', '.js-facet-tag-clear', function () {\r\n      this.clearFacets();\r\n    }.bind(this));\r\n  },\r\n\r\n\t// Get all selected facets, and group them accordingly to facet group\r\n  getFacets: function () {\r\n    var checkedFacets = [];\r\n\r\n    this.elements.facets.each(function () {\r\n      var group = jQuery(this).data('group');\r\n\r\n      // If the group does not already exist, create it and the selected facet\r\n      if (!(group in checkedFacets)) {\r\n        checkedFacets[group] = [];\r\n      }\r\n\r\n      if (jQuery(this).prop('checked')) {\r\n        checkedFacets[group].push(jQuery(this).attr('id'));\r\n      }\r\n    });\r\n    \r\n    return checkedFacets;\r\n  },\r\n\r\n  // Clear all facets\r\n  clearFacets: function () {\r\n    var notFixedElements = this.elements.facets.not(\".js-facet-fixed\");\r\n\r\n    // Uncheck all facets (which aren't fixed)\r\n    notFixedElements.prop('checked', false);\r\n\r\n    // Update facets\r\n    this.updateFacets(notFixedElements.eq(0), true);\r\n\r\n    // Clear search bar\r\n    PT.FacetSearch.elements.searchBar.val('');\r\n  },\r\n\r\n  // Clear facet tag and checkbox\r\n  clearFacet: function () {\r\n    var element = PT.FacetFilters.elements.facets.filter('#' + jQuery(this).data('id'));\r\n\r\n    // Uncheck facet\r\n    element.prop('checked', false);\r\n\r\n    // Update facets\r\n    PT.FacetFilters.updateFacets(element, true);\r\n  },\r\n\r\n  // Update (disable / enable) all facets once a facet has been selected.\r\n  updateFacets: function (element, search) {\r\n    var parameters = this.getFacets();\r\n    var totalCheckedFacets = 0;\r\n    var parent = jQuery(element).parents('.js-dropdown-content').eq(0)[0];\r\n\r\n    // Clear facet counters on dropdowns\r\n    this.elements.dropDownFacetCounter.text('');\r\n\r\n    (function () {\r\n      for (var group in parameters) {\r\n        var length = parameters[group].length;\r\n\r\n        // Count the total amount of selected facets\r\n        totalCheckedFacets += length;\r\n\r\n        // If there are selected any facets from the group, update the counter on the specific dropdown\r\n        if (length > 0) {\r\n          jQuery('.js-dropdown[data-group=' + group + ']').find('.js-dropwn-filter-counter').text('(' + length +')');\r\n        }\r\n      }\r\n    })();\r\n\r\n    // Set the number of facets selected on the mobile filter button\r\n    if (totalCheckedFacets > 0) {\r\n      this.elements.facetCounter.text('(' + totalCheckedFacets +')');\r\n    } else {\r\n      this.elements.facetCounter.text('');\r\n    }\r\n\r\n    parameters.searchString = PT.FacetSearch.elements.searchBar.val();\r\n    parameters.req = jQuery('#FacettedSearch').data('onlyrequisitioned');\r\n    var directionFromView = jQuery('#FacettedSearch').data('directions');\r\n    var educationFromView = jQuery('#FacettedSearch').data('educations');\r\n      if (directionFromView != \"\") {\r\n          parameters.d = directionFromView;\r\n      }\r\n      if (educationFromView != \"\") {\r\n          parameters.ud = educationFromView;\r\n      }\r\n\r\n    jQuery.when(PT.Store.search('facet', parameters, false)).then(function (result) {\r\n\r\n      //Update facets\r\n      this.updateFacetElements(result);\r\n\r\n      if (typeof element === 'undefined') {\r\n        if (this.properties.querystrings !== null) {\r\n          PT.FacetSearch.properties.queryStringSearch = true;\r\n          this.selectFacets(this.properties.querystrings);\r\n        } else if (PT.FacetSearch.properties.autosearch) {\r\n          PT.FacetSearch.search({preventScroll: true});\r\n        }\r\n      } else if (search) {\r\n        PT.FacetSearch.search();\r\n      }else if (search === false) {\r\n        PT.FacetSearch.search({preventScroll: true});\r\n      }\r\n\r\n    }.bind(this));\r\n  },\r\n\r\n  //Update facets based on search string\r\n  updateFacetsOnSearch: function (searchString) {\r\n    var parameters = this.getFacets();\r\n\r\n    parameters.searchString = searchString;\r\n    parameters.req = jQuery('#FacettedSearch').data('onlyrequisitioned');\r\n    parameters.ud = jQuery('#FacettedSearch').data('educations');\r\n    parameters.d = jQuery('#FacettedSearch').data('directions');\r\n\r\n    jQuery.when(PT.Store.search('facet', parameters, false)).then(function (result) {\r\n\r\n      // Update facets\r\n      this.updateFacetElements(result);\r\n\r\n    }.bind(this));\r\n  },\r\n\r\n  // Disable / enable / remove facets\r\n  updateFacetElements: function (result) {\r\n    (function () {\r\n        var h = 0,\r\n            resultLength = result.length;\r\n\r\n        for (; h < resultLength; h++) {\r\n          var i = 0,\r\n              length = result[h].Categories.length,\r\n              group = jQuery('.js-facet-search-menu[data-group=\"' + result[h].Name + '\"]');\r\n\r\n          for (; i < length; i++) {\r\n            var j = 0,\r\n                facetLength = result[h].Categories[i].Facets.length;\r\n\r\n            for (; j < facetLength; j++) {\r\n              var facet = result[h].Categories[i].Facets[j],\r\n                  facetElement = group.find('#' + facet.Id),\r\n                  facetGroup = null;\r\n\r\n              if (facet.NumberOfResults === 0) {\r\n                if (typeof element === 'undefined' && this.properties.predefined) {\r\n                  facetGroup = facetElement.parents('.js-facet-search-menu').eq(0);\r\n                  facetElement.parents('.js-dropdown-item').eq(0).hide();\r\n                } else {\r\n                  facetElement.prop('disabled', true);\r\n                  facetElement.parent().addClass('disabled');\r\n                }\r\n              } else {\r\n                facetElement.prop('disabled', false);\r\n                facetElement.parents('.js-dropdown-item').eq(0).show();\r\n                facetElement.parent().removeClass('disabled');\r\n              }\r\n\r\n              if (j === facetLength - 1 && facetGroup !== null) {\r\n                if (facetGroup.find('.js-dropdown-item').length === 0) {\r\n                  facetGroup.hide();\r\n                  this.elements.facets = jQuery('.js-facet');\r\n                } else {\r\n                  facetGroup.show();\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }.bind(this))();\r\n  },\r\n\r\n  selectFacets: function (querystrings) {\r\n    var firstElement = null;\r\n\r\n    (function () {\r\n      var first = true;\r\n\r\n      for (var key in querystrings) {\r\n        if (key === 'search') {\r\n          PT.FacetSearch.elements.searchBar.val(querystrings[key]);\r\n        } else {\r\n          var ids = querystrings[key].split(','),\r\n            i = 0,\r\n            length = ids.length;\r\n        \r\n          for (; i < length; i++) {\r\n            if (first) {\r\n              firstElement = this.elements.facets.filter('#' + ids[i]);\r\n              first = false;\r\n            }\r\n            //skip anything that cant be an id, no special chars\r\n            const pattern = /^[a-zA-Z0-9]+$/;\r\n            const result = pattern.test(ids[i]);\r\n            if(result){\r\n\r\n              this.elements.facets.filter('#' + ids[i]).prop('checked', true);\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }.bind(this))();\r\n\r\n    // firstElement.triggerHandler('change');\r\n    //the bool specify if we should scroll to facit module, do not scroll if url only containts educationType\r\n    var scroll = false;\r\n\r\n    var educationFilterTypes = $('div').map(function(){\r\n      return $(this).data('group');\r\n      }).get();\r\n    \r\n    for (index = 0; index < educationFilterTypes.length; ++index) {\r\n      if(educationFilterTypes[index] in querystrings){\r\n        scroll = true;\r\n      } \r\n  }\r\n    this.updateFacets(firstElement, scroll);\r\n  },\r\n\r\n\t// Create the HTML needed for facet tag filters\r\n  createTag: function (id, title) {\r\n    var tag = document.createElement('button');\r\n    var close = document.createElement('span');\r\n\r\n    tag.className = 'tag js-facet-tag ov-facetsearch__tag';\r\n    tag.setAttribute('data-id', id);\r\n    tag.setAttribute('type', 'button');\r\n    tag.textContent = title;\r\n\r\n    close.className = 'icons_close';\r\n    tag.appendChild(close);\r\n\r\n    return tag;\r\n  }\r\n};"},function(t,e,n){n(0)(n(127)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/facet-search.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  PT.FacetSearch.init();\r\n});\r\n/*\r\n===================================\r\nPT.FacetSearch\r\n===================================\r\n*/\r\nPT.FacetSearch = {\r\n\r\n  // ExcludesFacets\r\n  excludedFacets: [\r\n    'pi_x',\r\n    'et_x',\r\n    'th_x'\r\n  ],\r\n\r\n  // Properties\r\n  properties: {\r\n    maxAmountOfCards: 6,\r\n    searchDelay: 700,\r\n    isSearching: false,\r\n    autosearch: false,\r\n    showSearchBox: true,\r\n    querystrings: null,\r\n    queryStringSearch: false,\r\n    useGoogleTagManager: jQuery('#FacettedSearch').data('use-google-tag-manager')\r\n  },\r\n\r\n  // Timers\r\n  searchDelay: \"\",\r\n\r\n  // Caching elements needed for later use\r\n  elements: {\r\n    searchBar: jQuery('.js-facet-search-bar'),\r\n    searchBarBtn: jQuery('.js-facet-search-btn'),\r\n    headline: jQuery('.js-facet-result-headline'),\r\n    container: jQuery('.js-facet-result-container'),\r\n    noResultContainer: jQuery('.js-facet-no-result'),\r\n    parentContainer: jQuery('.js-facet-no-result').parent(),\r\n    searchResultContainer: jQuery('.js-search-results')\r\n  },\r\n\r\n  // Initialize and set bindings\r\n  init: function () {\r\n    // Search\r\n    this.elements.searchBar.on('keypress', function (event) {\r\n\r\n      // Check if the enter key is hit\r\n      if (event.which === 13 || event.keyCode === 13) {\r\n        event.preventDefault();\r\n        this.search();\r\n      }\r\n    }.bind(this));\r\n\r\n    // Search\r\n    this.elements.searchBarBtn.on('click', function (e) {\r\n      e.preventDefault();\r\n\r\n      if (!this.properties.isSearching) {\r\n        this.properties.isSearching = true;\r\n        \r\n        // Start search\r\n        this.search();\r\n      }\r\n    }.bind(this));\r\n  },\r\n\r\n  // Clear search results\r\n  clearSearch: function () {\r\n    // Empty tag and result container before doing anything\r\n    PT.FacetFilters.elements.tagContainer.html('');\r\n    this.elements.container.html('');\r\n    this.elements.container.next('.js-viewmore').remove();\r\n    this.elements.noResultContainer.html('');\r\n    this.elements.headline.html('');\r\n  },\r\n\r\n  // Search\r\n  search: function (preventScroll) {\r\n\r\n    if (!preventScroll) {\r\n      jQuery('html, body').animate({scrollTop: jQuery(this.elements.searchResultContainer).offset().top - 50}, 500);\r\n    }\r\n\r\n    // Close all open dropdowns\r\n    PT.Dropdown.closeAll();\r\n\r\n    // Close all open mobile filters\r\n    PT.MobileFilter.close();\r\n\r\n    // Clear previous search result\r\n    this.clearSearch();\r\n\r\n    // Add loader element\r\n    this.elements.container[0].appendChild(PT.Loader.create(210));\r\n    \r\n    var searchStart = null;\r\n\r\n    if (typeof performance.now !== 'undefined') {\r\n      searchStart = performance.now();\r\n    }\r\n\r\n    var parameters = PT.FacetFilters.getFacets();\r\n        \r\n    if (this.properties.showSearchBox && typeof window.history.replaceState !== \"undefined\") {\r\n      var currentUrl = window.location,\r\n          newUrl = currentUrl.pathname,\r\n          querystringArray = PT.Querystring.getAll(),\r\n          querystring = '';\r\n\r\n      if (this.properties.queryStringSearch && querystringArray !== null && typeof querystringArray['view'] !== 'undefined') {\r\n        this.properties.maxAmountOfCards = querystringArray['view'];\r\n        this.properties.queryStringSearch = false;\r\n      }\r\n\r\n      if (this.elements.searchBar.val() !== '') {\r\n        if (querystring === '') {\r\n          querystring += '?search=' + this.elements.searchBar.val();\r\n        } else {\r\n          querystring += '&search=' + this.elements.searchBar.val();\r\n        }\r\n      }\r\n\r\n      (function () {\r\n        for (var group in parameters) {\r\n          if (parameters[group].length > 0) {\r\n\r\n            if (querystring === '') {\r\n              querystring += '?' + group + '=';\r\n            } else {\r\n              querystring += '&' + group + '=';\r\n            }\r\n            \r\n            var i = 0,\r\n                length = parameters[group].length;\r\n\r\n            for (; i < length; i++) {\r\n              querystring += parameters[group][i];\r\n\r\n              if (i !== length - 1) {\r\n                querystring += ',';\r\n              }\r\n            }\r\n          }\r\n        }\r\n      })();\r\n\r\n      // Set new url based on querystring input\r\n      newUrl += querystring;\r\n\r\n      if (currentUrl.hash !== '') {\r\n        newUrl += currentUrl.hash;\r\n      }\r\n    \r\n      // Replace state with new url\r\n      if(!querystringArray || !querystringArray[\"sc_mode\"]){\r\n\r\n        window.history.replaceState({}, null, newUrl);\r\n      }\r\n    }\r\n    \r\n    // Get excluded parameters\r\n    var excludedFacetsObj = jQuery('#FacettedSearch').data('excludedfacets');\r\n\r\n    if (excludedFacetsObj) {    \r\n      PT.FacetSearch.excludedFacets.forEach(function (facet) {\r\n          var facetObj = excludedFacetsObj.filter(function(obj) {\r\n            return obj.ParameterName === facet;\r\n          });\r\n\r\n          var facetValue = facetObj.length != 0 ? facetObj[0].Values : [];\r\n          parameters[facet] = facetValue;\r\n      });\r\n    }\r\n    \r\n    // Set properties\r\n    parameters.page = 0;\r\n    parameters.pageSize = '';\r\n    parameters.searchString = this.elements.searchBar.val();\r\n    parameters.sortOption = 'desc';\r\n    parameters.getFacets = false;\r\n    parameters.req = jQuery('#FacettedSearch').data('onlyrequisitioned');\r\n    parameters.ud = jQuery('#FacettedSearch').data('educations');\r\n    parameters.d = jQuery('#FacettedSearch').data('directions');\r\n\r\n    jQuery.when(PT.Store.search('search', parameters, false)).then(function (result) {\r\n\r\n      // Update facets based on search string\r\n      PT.FacetFilters.updateFacetsOnSearch(parameters.searchString);\r\n\r\n      if (searchStart !== null) {\r\n        var delay = 0;\r\n        var searchTime = (typeof performance.now !== 'undefined') ? (performance.now() - searchStart) : 0;\r\n\r\n        // If the search hasn't taken more than X ms, then set the delay minus the already elapsed time. The delay and elapsed time should equal 700ms\r\n        if (searchTime < this.properties.searchDelay) {\r\n          delay = this.properties.searchDelay - searchTime;\r\n        }\r\n      }\r\n\r\n      // Delay the result to give the illusion that something is happening, also giving the illusion of performance\r\n      clearTimeout(this.searchDelay);\r\n      this.searchDelay = setTimeout(function () {\r\n        this.clearSearch();\r\n\r\n        var facets = PT.FacetFilters.elements.facets.not(\".js-facet-fixed\").filter(':checked');\r\n\r\n        var facetLength = facets.length;\r\n        var totalSearchResultsLength = result.TotalSearchResults;\r\n        var headline = parameters.searchString;\r\n\r\n        if (totalSearchResultsLength > 0) {\r\n          this.elements.parentContainer.removeClass('wrapper--nospace');\r\n\r\n          // Only update the result headline if searchbox is visible\r\n          if(this.properties.showSearchBox) {\r\n            var ResultText = document.createElement('h3');\r\n            ResultText.className = \"headline-regular a-heading--h2 ov_filtering_result_headline\";\r\n            // Update result headline\r\n            if (jQuery.trim(headline).length > 0) {\r\n               \r\n              ResultText.innerHTML = headline + ' (' + totalSearchResultsLength + ')';\r\n              this.elements.headline[0].appendChild(ResultText);\r\n            } else {\r\n              ResultText.innerHTML = facetSearchTexts.results + ' (' + totalSearchResultsLength + ')';\r\n              this.elements.headline[0].appendChild(ResultText);\r\n            }\r\n          }\r\n\r\n          var favorites = PT.Cookie.get('favorites');\r\n\r\n          (function () {\r\n            var i = 0;\r\n\r\n            var useGoogleTagManagerTracking = PT.FacetSearch.properties.useGoogleTagManager;\r\n\r\n            for (; i < totalSearchResultsLength; i++) {\r\n              var favorite = false;\r\n              if (favorites.indexOf(result.Results[i].ItemId) !== -1) {\r\n                favorite = true;\r\n              }\r\n\r\n              var hidden = false;\r\n              if (i > this.properties.maxAmountOfCards - 1) {\r\n                hidden = true;\r\n              }\r\n\r\n              var card = this.createCard(result.Results[i].ItemId, result.Results[i].TypeLabel, result.Results[i].Title, result.Results[i].Teaser, result.Results[i].Url, favorite, hidden, useGoogleTagManagerTracking);\r\n              this.elements.container[0].appendChild(card);\r\n            }\r\n          }.bind(this))();\r\n\r\n          // Readd eventlistners\r\n          PT.Favorites.bindCardHearts();\r\n\r\n          // Add \"view more\" button if there are more than X results\r\n          if (totalSearchResultsLength > this.properties.maxAmountOfCards) {\r\n            var viewmore = this.createViewMore('facetContainer', facetSearchTexts.viewMore);\r\n\r\n            this.elements.container[0].parentNode.appendChild(viewmore);\r\n            \r\n            PT.ViewMore.init();\r\n          }\r\n\r\n          this.properties.maxAmountOfCards = 6;\r\n\r\n        } else {\r\n          // No results\r\n\r\n          var noResultText = document.createElement('p');\r\n          \r\n          if (parameters['searchString'] === '') {\r\n            noResultText.textContent = facetSearchTexts.noResults;\r\n          } else {\r\n            noResultText.textContent = facetSearchTexts.noResultSearchString1 + ' \"' + parameters['searchString'] + '\" ' + facetSearchTexts.noResultSearchString2;\r\n          }\r\n\r\n          this.elements.parentContainer.addClass('wrapper--nospace');\r\n          this.elements.noResultContainer[0].appendChild(noResultText);\r\n          this.elements.noResultContainer[0].insertAdjacentHTML('beforeend', facetSearchTexts.noResultMotivation);\r\n          this.elements.headline[0].innerHTML = '';\r\n        }\r\n\r\n        // Create tags if there are any facets selected, and autosearch is NOT enabled\r\n        if (facetLength > 0) {\r\n          // Create and add facet tags\r\n          (function () {\r\n            var i = 0;\r\n\r\n            for (; i < facetLength; i++) {\r\n              var tag = PT.FacetFilters.createTag(facets[i].getAttribute('id'), facets[i].getAttribute('data-title'));\r\n              PT.FacetFilters.elements.tagContainer[0].appendChild(tag);\r\n            }\r\n          })();\r\n        }\r\n\r\n        if (facetLength > 0 || this.elements.searchBar.val() !== '') {\r\n          // Create the \"clear all\"\" tag\r\n          var clearTag = PT.FacetFilters.createTag(null, facetSearchTexts.clearAll);\r\n\r\n          clearTag.className = clearTag.className.replace('js-facet-tag', '');\r\n          clearTag.className += ' tag--alternate js-facet-tag-clear';\r\n\r\n          PT.FacetFilters.elements.tagContainer[0].appendChild(clearTag);\r\n        }\r\n\r\n        // Reset isSearching\r\n        this.properties.isSearching = false;\r\n\r\n      }.bind(this), delay);\r\n    }.bind(this));\r\n  },\r\n\r\n  // Create the HTML needed for the search result items\r\n  createCard: function (id, type, title, teaser, url, favorite, hidden, useGoogleTagManagerTracking) {\r\n    var card = document.createElement('a');\r\n    var typeElem = document.createElement('span');\r\n    var titleElem = document.createElement('h3');\r\n    var teaserElem = document.createElement('p');\r\n    var linkElem = document.createElement('div');\r\n    var favoriteElem = document.createElement('div');\r\n\r\n    card.className = 'cards_standard cards_standard--grey col-md-4 ov-facetsearch__card';\r\n      card.setAttribute('data-id', id);\r\n      card.setAttribute(\"href\", url);\r\n      card.setAttribute(\"style\", \"cursor:pointer !important;\");\r\n\r\n    if (hidden) {\r\n      card.className += ' cards_standard--hidden';\r\n    }\r\n\r\n    typeElem.className = 'cards_standard__manchet a-label u-top-margin--xxs u-bottom-margin--sm';\r\n    typeElem.textContent = type;\r\n    card.appendChild(typeElem);\r\n\r\n    titleElem.className = 'cards_standard__headline a-heading--h3';\r\n    titleElem.textContent = title;\r\n    card.appendChild(titleElem);\r\n\r\n    teaserElem.className = 'cards_standard__text a-paragraph';\r\n    teaserElem.textContent = teaser;\r\n    card.appendChild(teaserElem);\r\n\r\n    linkElem.className = 'a-link ov-facetsearch__link';\r\n    linkElem.innerHTML = '<span class=\"a-link__text\">Gå til side<span class=\"a-icon a-link__icon\"><svg class=\"a-icon__asset\"><use xlink:href=\"#icon-arrow-right\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"></use></svg></span></span>';\r\n    card.appendChild(linkElem);\r\n\r\n    favoriteElem.className = 'cards_standard__heart';\r\n\r\n    favoriteElem.setAttribute('data-gtm-enabled', useGoogleTagManagerTracking);\r\n    favoriteElem.setAttribute('data-gtm-event-label', url);    \r\n    favoriteElem.setAttribute('data-gtm-event-category', 'favorit');\r\n\r\n    if (favorite) {\r\n      favoriteElem.setAttribute('data-gtm-event-action', 'fjern');\r\n    } else {\r\n      favoriteElem.setAttribute('data-gtm-event-action', 'tilføj');\r\n    }\r\n    favoriteElem.setAttribute('data-gtm-event-label', url);\r\n    \r\n    favoriteElem.innerHTML = '<svg viewBox=\"0 0 34 34\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' +\r\n                                  '<g stroke=\"black\" stroke-width=\"2\" fill=\"none\" fill-rule=\"evenodd\">' +\r\n                                      '<g transform=\"translate(1.000000, 1.000000)\">' +\r\n                                          '<path d=\"M16.103229,31.8126275 L16.1036441,32 L16,31.9061258 L15.8963559,32 L15.896771,31.8126275 L8.05176183e-16,17.4143428 L0,4.6535888 L7.51819194,0 L16,6.56218405 L24.4818081,0 L32,4.6535888 L32,17.4143428 L16.103229,31.8126275 Z\"></path>' +\r\n                                      '</g>' +\r\n                                  '</g>' + \r\n                              '</svg>';\r\n\r\n    // If the item has been added to favorites\r\n    if (favorite) {\r\n      favoriteElem.className += \" cards_standard__heart--selected\";\r\n\r\n      var gElement = favoriteElem.querySelector(\"svg > g\");\r\n      var secondGElement = favoriteElem.querySelector(\"svg > g > g\");\r\n      gElement.setAttribute(\"class\", \"useTheme-fill\");\r\n      secondGElement.setAttribute(\"class\", \"useTheme-stroke\");\r\n    }\r\n\r\n    card.appendChild(favoriteElem);\r\n\r\n    return card;\r\n  },\r\n\r\n  createViewMore: function (id, text) {\r\n    var viewmoreRow = document.createElement('div');\r\n    var viewmoreContainer = document.createElement('div');\r\n    var viewmoreLabel = document.createElement('div');\r\n    var viewmoreIcon = document.createElement('span');\r\n\r\n    viewmoreRow.className = 'row js-viewmore';\r\n\r\n    viewmoreContainer.className = 'cards_view-more col-md-12 ov-facetsearch__view-more';\r\n    viewmoreContainer.setAttribute('data-component', 'view-more');\r\n    viewmoreContainer.setAttribute('data-baseclass', 'cards_standard');\r\n    viewmoreContainer.setAttribute('data-expandcontainer', id);\r\n\r\n    viewmoreLabel.className = 'cards_view-more__label';\r\n      viewmoreLabel.innerHTML = '<p class=\"a-link a-link--view-more o-link-list__item-link \"><span class=\"a-link__text\">' + text + '</span><span class=\"a-icon a-link__icon\"><svg class=\"a-icon__asset\"><use xlink:href=\"#icon-arrow-right\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"></use></svg></span></p>' \r\n\r\n    viewmoreContainer.appendChild(viewmoreLabel);\r\n\r\n    viewmoreRow.appendChild(viewmoreContainer);\r\n\r\n    return viewmoreRow;\r\n  }\r\n};"},function(t,e,n){n(0)(n(129)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/favorites.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.Favorites.init();\r\n});\r\n\r\n\r\n/*\r\n===================================\r\nPT.Favorites\r\n===================================\r\n*/\r\nPT.Favorites = {\r\n\r\n\t// Timers\r\n\theartAnimated: "",\r\n\r\n\t// Properties\r\n\tproperties: {\r\n\t\tmobileHeartTimeout: 2000,\r\n\t\tselectedClass: ""\r\n\t},\r\n\r\n\t// Init, methods and events\r\n\tinit: function () {\r\n\t\tthis.generateMobileIcon();\r\n\t\tthis.bindings();\r\n\t},\r\n\r\n\tgenerateMobileIcon: function () {\r\n\t\tvar favoritesNav = jQuery(".favorites_nav");\r\n\r\n\t\tif (favoritesNav.parent().parent().parent().hasClass("active")) {\r\n\t\t\tvar favoriteMobile = "<div class=\\"favorites_mobile\\">\\n    <div class=\\"favorites_mobile__heart backgroundColor-70\\">\\n        <svg viewBox=\\"0 0 34 34\\" version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\">\\n            <g stroke=\\"black\\" stroke-width=\\"2\\" fill-rule=\\"evenodd\\">\\n                <g transform=\\"translate(1.000000, 1.000000)\\" fill=\\"transparent\\" class=\\"\\">\\n                    <path d=\\"M16.103229,31.8126275 L16.1036441,32 L16,31.9061258 L15.8963559,32 L15.896771,31.8126275 L8.05176183e-16,17.4143428 L0,4.6535888 L7.51819194,0 L16,6.56218405 L24.4818081,0 L32,4.6535888 L32,17.4143428 L16.103229,31.8126275 Z\\"></path>\\n                </g>\\n            </g>\\n        </svg>\\n    </div>\\n    <div class=\\"favorites_mobile__label backgroundColor-90\\">\\n        <span class=\\"base\\">Se mine favoritter</span>\\n        <span class=\\"changed\\">Tilf\\xF8jet til favoritter</span>\\n    </div>\\n</div>";\r\n\t\t\tjQuery("body").append(favoriteMobile);\r\n\t\t}\r\n\t\telse if (favoritesNav.parent().hasClass("showasicon") || favoritesNav.parent().hasClass(" showasicon")) {\r\n\t\t\tvar favoriteMobile = "<div class=\\"favorites_mobile\\">\\n    <div class=\\"favorites_mobile__heart backgroundColor-70\\">\\n        <svg viewBox=\\"0 0 34 34\\" version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\">\\n            <g stroke=\\"black\\" stroke-width=\\"2\\" fill-rule=\\"evenodd\\">\\n                <g transform=\\"translate(1.000000, 1.000000)\\" fill=\\"transparent\\" class=\\"\\">\\n                    <path d=\\"M16.103229,31.8126275 L16.1036441,32 L16,31.9061258 L15.8963559,32 L15.896771,31.8126275 L8.05176183e-16,17.4143428 L0,4.6535888 L7.51819194,0 L16,6.56218405 L24.4818081,0 L32,4.6535888 L32,17.4143428 L16.103229,31.8126275 Z\\"></path>\\n                </g>\\n            </g>\\n        </svg>\\n    </div>\\n    <div class=\\"favorites_mobile__label backgroundColor-90\\">\\n        <span class=\\"base\\">Se mine favoritter</span>\\n        <span class=\\"changed\\">Tilf\\xF8jet til favoritter</span>\\n    </div>\\n</div>";\r\n\t\t\tjQuery("body").append(favoriteMobile);\r\n\t\t}\r\n\t},\r\n\r\n\tbindings: function () {\r\n\t\tthis.bindFavoriteComponent();\r\n\t\tthis.bindCardHearts();\r\n\t\tthis.bindMobileHeartLink();\r\n\t\tthis.bindFavoritesDelete();\r\n\t},\r\n\r\n\tbindFavoritesDelete: function () {\r\n\t\t// Clear single\r\n\t\tvar closeButtons = jQuery(".favorite-list .cards_standard__close");\r\n\r\n\t\tcloseButtons.on("click", function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar favoriteElement = jQuery(this).parent(),\r\n\t\t\t\tfavoriteElementId = favoriteElement.attr("data-id");\r\n\r\n\t\t\t// Remove from cookie\r\n\t\t\tPT.Cookie.remove(PT.Cookie.properties.favoritesName, favoriteElementId);\r\n\r\n\t\t\t// Remove hidden class from single next element on the list\r\n\t\t\tfavoriteElement.parent().find(".cards_standard--hidden:lt(1)").removeClass("cards_standard--hidden");\r\n\r\n\t\t\t// Remove element\r\n\t\t\tfavoriteElement.remove();\r\n\t\t});\r\n\t},\r\n\r\n\tbindMobileHeartLink: function () {\r\n\t\tjQuery(".favorites_mobile").on("click", function () {\r\n\t\t\tvar link = jQuery(".favorites_nav > a")[0];\r\n\t\t\tlink.click();\r\n\t\t});\r\n\t},\r\n\r\n\tbindFavoriteComponent: function () {\r\n\r\n\t\tvar _this = this,\r\n\t\t\tmodules = jQuery(".favorites_button");\r\n\r\n\t\tmodules.on("click", function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tmodules.each(function (index, item) {\r\n\t\t\t\tvar module = jQuery(this),\r\n\t\t\t\t\tmoduleId = module.attr("data-id");\r\n\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\t_this.__toggleWrapAndSvgClasses(module, moduleId, true);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t_this.__toggleWrapAndSvgClasses(module, moduleId);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t},\r\n\r\n\tbindCardHearts: function () {\r\n\r\n\t\tvar _this = this,\r\n\t\t\thearts = jQuery(".cards_standard__heart");\r\n\r\n\t\t// Add new\r\n\t\thearts.on("click", function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar heart = jQuery(this),\r\n\t\t\t\theartId = heart.parent().attr("data-id");\r\n\r\n\t\t\t_this.__toggleWrapAndSvgClasses(heart, heartId, true);\r\n\t\t});\r\n\t},\r\n\r\n\t// Internal\r\n\t/**\r\n\t * Toggle state of favourite\r\n\t * \r\n\t * @param {dom node} element The element\r\n\t * @param {string} saveId The unique value for the favourite\r\n\t * @param {bool} doTrack Indicate if we should track (using PT.GoogleTagManager) the action\r\n\t */\r\n\t__toggleWrapAndSvgClasses: function (element, saveId, doTrack) {\r\n\t\t// Add or remove class\r\n\t\telement.toggleClass("cards_standard__heart--selected");\r\n\r\n\t\tif (PT.GoogleTagManager) {\r\n\t\t\t// Google Tag Manager Tracking - using PT.GoogleTagManager to grab config from data attributes on the element\r\n\t\t\tvar gtmConfig = PT.GoogleTagManager.buildTrackingObject(element);\r\n\t\t\tgtmConfig.eventCategory = \'favorit\';\r\n\t\t\tgtmConfig.eventAction = \'tilføj\';\r\n\t\t}\r\n\r\n\t\tvar favoriteLabel = element.find("div.favorites_button__label");\r\n\r\n\t\tif (element.hasClass("cards_standard__heart--selected")) {\r\n\t\t\t// Set Remove Text\r\n\t\t\tfavoriteLabel.text(favoriteLabel.data(\'actionremove\'))\r\n\r\n\t\t\t// Add fill to svg\r\n\t\t\telement.find("svg > g").attr("class", "useTheme-stroke");\r\n\t\t\telement.find("svg > g > g").attr("class", "useTheme-fill");\r\n\r\n\t\t\t// Tilføj til Cookie\r\n\t\t\tPT.Cookie.add(PT.Cookie.properties.favoritesName, saveId);\r\n\r\n\t\t\t// Mobile handling\r\n\t\t\tthis.__toggleHearts();\r\n\t\t} else {\r\n\t\t\t// Set Add Text\r\n\t\t\tfavoriteLabel.text(favoriteLabel.data(\'actionadd\'))\r\n\r\n\t\t\t// Remove fill to svg\r\n\t\t\telement.find("svg > g").attr("class", "");\r\n\t\t\telement.find("svg > g > g").attr("class", "");\r\n\r\n\t\t\t// Fjern fra cookie\r\n\t\t\tPT.Cookie.remove(PT.Cookie.properties.favoritesName, saveId);\r\n\r\n\t\t\tif (PT.GoogleTagManager) {\r\n\t\t\t\t// We are removing, so update object for PT.GoogleTagManager\r\n\t\t\t\tgtmConfig.eventAction = \'fjern\';\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (PT.GoogleTagManager && element.data(\'gtm-enabled\') == \'True\' && doTrack) {\r\n\t\t\t// Perform tracking \r\n\t\t\tPT.GoogleTagManager.track(gtmConfig);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t__toggleHearts: function () {\r\n\t\tvar favoritesMobile = jQuery(".favorites_mobile");\r\n\t\tvar favoritesNav = jQuery(".favorites_nav");\r\n\t\t// Reset timout, if any\r\n\t\tclearTimeout(this.heartAnimated);\r\n\r\n\t\t// Set selected class\r\n\t\tfavoritesMobile.addClass("favorites_mobile--selected");\r\n\t\tfavoritesNav.addClass("favorites_nav--selected");\r\n\r\n\t\t// Set timeout for removing selected class\r\n\t\tthis.heartAnimated = setTimeout(function () {\r\n\t\t\tfavoritesMobile.removeClass("favorites_mobile--selected");\r\n\t\t\tfavoritesNav.removeClass("favorites_nav--selected");\r\n\t\t}, this.properties.mobileHeartTimeout);\r\n\t}\r\n\r\n};'},function(t,e,n){n(0)(n(131)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/filtering-search.js")},function(t,e){t.exports="/*\n===================================\nPentia (PT) Namespace\n===================================\n*/\nvar PT = PT || {};\n\n/*\n===================================\nInitialize\n===================================\n*/\n\njQuery(document).ready(function () {\n    var modules = Array.from(jQuery('.js-filtering-module'));\n    \n    modules.forEach(function(filterModule) {\n        new PT.FilteringSearch(filterModule)\n    });\n});\n\n/*\n===================================\nPT.FilteringSearch\n===================================\n*/\n\nPT.FilteringSearch = function(filterModule) {\n\n    this.element = jQuery(filterModule);\n\n    this.options = {\n        pageNum: 1,\n        numPostsFirstPage: 3,\n        numPostsSecondsPage: 25,\n        numPostsThirdPage: 9999,\n        currentPosts: 0\n    },\n    // Properties\n    this.properties = {\n      maxAmountOfCards: 6,\n      searchDelay: 700,\n      isSearching: false,\n      autosearch: false,\n      showSearchBox: true,\n      querystrings: null,\n      queryStringSearch: false,\n      initWithQueryParams: false,\n    },\n\n    this.elements = {\n        searchField: this.element.find('.js-filtering-search-field'),\n        searchBtn: this.element.find('.js-filtering-search-button'),\n        facetWrapper: this.element.find('.js-filtering-wrapper'),\n        resultWrapper: this.element.find('.js-filtering-result-wrapper'),\n        resultCardWrapper: this.element.find('.js-filtering-result-container'),\n        searchMoreWrapper: this.element.find('.js-filtering-show-more'),\n        facetWrapperTemplate: this.element.find(\".js-facet-wrapper-template\"),\n        resultTemplate: this.element.find(\".js-filtering-result-template\"),\n        resultCardTemplate: this.element.find(\".js-filtering-result-card-template\"),\n        showMoreTemplate: this.element.find(\".js-filtering-show-more-template\"),\n        showRestTemplate: this.element.find('.js-filtering-show-rest-template'),\n        mobileFacetBtn: this.element.find(\".js-mobile-filter-open\"),\n        topWrapper: this.element.find('.js-filtering-top-wrapper'),\n        facets: this.element.find('.js-filtering-facet-checkbox'),\n        loader: jQuery('')\n    }\n\n    this.init();\n}\n\nPT.FilteringSearch.prototype.init = function() {\n    this.properties.querystrings = this.getAllQuerystrings();\n    if(this.properties.querystrings){\n        this.properties.initWithQueryParams = true;\n    }\n    this.parameters = this.element.data();\n\n    this.addHelpers();\n    this.bindingHandlers();\n\n    if (this.parameters.autoSearch === 'False') {\n        this.searchFacets();\n    } else {\n        this.search();\n    }\n}\n\n\nPT.FilteringSearch.prototype.addHelpers = function() {\n    Handlebars.registerHelper('reverse', function(index) {\n        return index % 6 >= 3;\n    });\n}\n\nPT.FilteringSearch.prototype.bindingHandlers = function() {\n    this.elements.searchField.on('keypress', function (event) {\n        // Check if the enter key is hit\n        if (event.which === 13 || event.keyCode === 13) {\n            this.clearSearch();\n            this.search();\n        }\n    }.bind(this));\n    \n    this.elements.searchBtn.on('click', function() {\n        PT.MobileFilter.close();\n        this.clearSearch();\n        this.search();\n    }.bind(this));\n}\n\nPT.FilteringSearch.prototype.updateFacets = function(facets) {\n\n    if (facets.length != 0) {\n        this.elements.mobileFacetBtn.removeClass('hide');\n    }\n\n    this.elements.topWrapper.addClass('row margin-bottom--md');\n\n    // Facets are appended, so clear the wrapper to begin with\n    this.elements.facetWrapper.empty()\n\n    jQuery.each(facets, function(index, facet) {\n        var template = Handlebars.compile(this.elements.facetWrapperTemplate.html());\n        var facetHtml = template(facet);\n        this.elements.facetWrapper.append(facetHtml);\n    }.bind(this));\n\n    // Append event listeners to newly created elements\n    PT.Dropdown.init();\n    \n    this.element.find('.js-filtering-use-facet-button').on('click', function () {\n        this.UpdateURLOnSelectedFacets();\n        this.clearSearch();\n        this.search();\n    }.bind(this));\n    \n    this.element.find('.js-filtering-facet-checkbox').on('click', function(event) {\n        var id = $(event.currentTarget).data('id');\n        this.updateSelectedTaxonomy(id);\n    }.bind(this));\n}\n\nPT.FilteringSearch.prototype.updateSelectedTaxonomy = function(id) {\n    var selectedFacetValues = this.element.data('selected-taxonomy');\n    var index = selectedFacetValues.indexOf(id);\n\n    // If id exist then remove. Otherwise add the id\n    if (index != -1) {\n        Array.prototype.splice.call(selectedFacetValues, index, 1);\n    } else {\n        selectedFacetValues.push(id);\n    }\n\n    this.element.data('selected-taxonomy', selectedFacetValues)\n},\n\nPT.FilteringSearch.prototype.updateResult = function(result) {\n    var showRemoveAllFacets = this.element.data('selected-taxonomy');\n\n    if (showRemoveAllFacets && showRemoveAllFacets.length) {\n        result['ShowRemoveAllFacets'] = true;\n    }\n\n    result['SearchString'] = this.elements.searchField.val();\n    var template = Handlebars.compile(this.elements.resultTemplate.html());\n    var resultHtml = template(result);\n    this.elements.resultWrapper.append(resultHtml);\n\n    this.element.find('.js-remove-facet').on('click', function(event) {\n        var id = jQuery(event.currentTarget).data('id');\n        this.updateSelectedTaxonomy(id);\n        this.UpdateURLOnSelectedFacets(id);\n        this.clearSearch();\n        this.search();\n    }.bind(this));\n\n    this.element.find('.js-clear-facets').on('click', function() {\n        this.element.data('selected-taxonomy', []);\n        // Replace state with new url\n        window.history.replaceState(null, null, window.location.pathname);\n        this.clearSearch();\n        this.search();\n    }.bind(this));\n},\n\nPT.FilteringSearch.prototype.renderResult = function(searchResults) {\n    var showDate = this.parameters.showDate;\n    var showLabel = this.parameters.showLabel;\n    jQuery.each(searchResults, function(index, result) {\n        result.ShowDate = showDate === 'True';\n        result.ShowLabel = showLabel === 'True';\n        result.CurrentPosts = this.options.currentPosts++;\n        var template = Handlebars.compile(this.elements.resultCardTemplate.html());\n        var cardHtml = template(result);\n        this.elements.resultCardWrapper.append(cardHtml);\n    }.bind(this));\n}\n\nPT.FilteringSearch.prototype.renderShowMore = function(totalSearchResults) {\n\n    var remainingPosts = totalSearchResults - this.options.currentPosts;\n    var secondPageNum = this.options.numPostsSecondsPage\n\n    var showRemaining;\n\n    var data = {\n        ShowMoreNum: secondPageNum\n    }\n\n    if (this.options.pageNum === 1 && remainingPosts < secondPageNum) {\n        data.ShowMoreNum =  remainingPosts;\n        showRemaining = true;\n    }\n\n    if (this.options.pageNum === 2) {\n        data.ShowMoreNum = totalSearchResults - this.options.currentPosts;\n        showRemaining = true;\n    }\n\n    var template = !showRemaining ? 'showMoreTemplate' : 'showRestTemplate';\n\n    var handlebarsTemplate = Handlebars.compile(this.elements[template].html());\n\n    var showMoreHtml = jQuery(handlebarsTemplate(data));\n\n    this.elements.searchMoreWrapper.append(showMoreHtml);\n\n    showMoreHtml.on('click', function() {\n        this.search();\n        jQuery(this).remove();\n    }.bind(this));\n}\n\nPT.FilteringSearch.prototype.clearSearch = function() {\n    PT.Dropdown.closeAll();\n    this.elements.resultWrapper.empty();\n    this.elements.resultCardWrapper.empty();\n\n    this.parameters.startPost = 0;\n    this.options.pageNum = 1;\n    this.options.currentPosts = 0;\n}\n\nPT.FilteringSearch.prototype.searchFacets = function() {\n    jQuery.when(PT.Store.filtering(\"search\", this.parameters, false)).then(function(result) {\n        this.updateFacets(result['FacetCategories']);\n    }.bind(this));\n}\n\n//Get all selected facets, and group them accordingly to facet group\nPT.FilteringSearch.prototype.getFacets = function (removedId) {\n    var checkedFacets = [];\n    var facests = $('.js-filtering-facet-checkbox');\n    facests.each(function () {\n        var group = jQuery(this).closest(\"div.m-dropdown\").attr('data-group');\n\n        // If the group does not already exist, create it and the selected facet\n        if (!(group in checkedFacets)) {\n            checkedFacets[group] = [];\n        }\n\n        if (jQuery(this).prop('checked') && (!removedId || !this.id.includes(removedId))) {\n            checkedFacets[group].push(jQuery(this).data('title'));\n        }\n    });\n\n    return checkedFacets;\n}\n\nPT.FilteringSearch.prototype.search = function () {\n\n    this.elements.loader = PT.Loader.create(210);\n    this.elements.resultCardWrapper.append(this.elements.loader);\n\n    this.parameters.searchString = this.elements.searchField.val();\n    this.parameters.startPost = this.options.currentPosts + 1;\n    this.parameters.count = this.parameters.numberToShow;\n    \n    if (this.options.pageNum === 2) {\n        this.parameters.count = this.options.numPostsSecondsPage;\n    }\n\n    if (this.options.pageNum === 3) {\n        this.parameters.count = this.options.numPostsThirdPage;\n    }\n    \n    PT.Store.filtering('search', this.parameters, false).then(function(result) {\n\n        var querystringArray = this.getAllQuerystrings();\n        // Clear loader and show more\n        this.elements.resultWrapper.empty();\n        this.elements.searchMoreWrapper.empty();\n        this.elements.loader.parentNode.removeChild(this.elements.loader);\n\n        this.updateFacets(result['FacetCategories']);\n        //We only want to do this on init with query params to not do two searches after init.\n        if (querystringArray != null && this.properties.initWithQueryParams ) {\n            this.properties.initWithQueryParams = false;\n            if(!this.parameters['selected-taxonomy'] || !this.parameters['selectedTaxonomy']){\n                this.parameters['selected-taxonomy'] = [];\n            }\n            for (var key in querystringArray) {\n                if (key === 'search') {\n            \n                } else {\n                    var ids = querystringArray[key].split(','),\n                        i = 0,\n                        length = ids.length;\n                    for (; i < length; i++) {\n                        var facetParrent = result['FacetCategories'].find(x => x.Name == decodeURIComponent(key));\n                        if(facetParrent){\n                            var facetElem = facetParrent.FacetValues.find(x => x.EncodedName == ids[i]);\n                            if(facetElem){\n                                var index = this.parameters['selected-taxonomy'].indexOf(facetElem.Id);\n\n                                // If id not exist add it\n                                if (index === -1) {\n                                  this.updateSelectedTaxonomy(facetElem.Id);  \n                                } \n                            }\n                        }\n                    }\n                }\n            }\n            //We do a second search to search on url params, we dont know the id's of facets before return of first search\n            PT.Store.filtering('search', this.parameters, false).then(function(result2) {\n                this.updateFacets(result2['FacetCategories']);\n                this.updateResult(result2);\n\n                // If there is any results, then append the result cards\n                if (result2.TotalSearchResults != 0) {\n                    this.renderResult(result2['SearchResults']);\n                }\n    \n                // If there are more results than currently showing, then render 'show-more' button\n                if (result2.TotalSearchResults > this.options.currentPosts) {\n                    this.renderShowMore(result2['TotalSearchResults']);\n                    this.options.pageNum++;\n                }\n            }.bind(this));\n        }\n        else {\n\n            this.updateResult(result);\n\n            // If there is any results, then append the result cards\n            if (result.TotalSearchResults != 0) {\n                this.renderResult(result['SearchResults']);\n            }\n\n            // If there are more results than currently showing, then render 'show-more' button\n            if (result.TotalSearchResults > this.options.currentPosts) {\n                this.renderShowMore(result['TotalSearchResults']);\n                this.options.pageNum++\n            }\n        }\n    }.bind(this));\n\n}\nPT.FilteringSearch.prototype.getAllQuerystrings = function () {\n    var hash = window.location.hash.substr(1);\n\n    var vars = [],\n        hashes = hash.split('&'),\n        length = hashes.length;\n\n    if (hashes[0] == '' && length == 1) {\n        return null;\n    } else {\n        (function () {\n            var i = 0;\n\n            for (; i < length; i++) {\n                var hash = hashes[i].split('=');\n                vars[hash[0]] = hash[1];\n            }\n        })();\n\n        return vars;\n    }\n}\nPT.FilteringSearch.prototype.UpdateURLOnSelectedFacets = function(removedId){\n            //Change url\n            var parameters = PT.FilteringSearch.prototype.getFacets(removedId);\n            if (this.properties.showSearchBox && typeof window.history.replaceState !== \"undefined\") {\n                var currentUrl = window.location,\n                    newUrl = currentUrl.pathname,\n                    //querystringArray = PT.Querystring.getAll(),\n                    querystringArray = this.properties.querystrings,\n                    querystring = '';\n    \n                if (this.properties.queryStringSearch && querystringArray !== null && typeof querystringArray['view'] !== 'undefined') {\n                    this.properties.maxAmountOfCards = querystringArray['view'];\n                    this.properties.queryStringSearch = false;\n                }\n    \n                if (this.elements.searchField.val() !== '') {\n                    if (querystring === '') {\n                        querystring += '#search=' + this.elements.searchField.val();\n                    } else {\n                        querystring += '&search=' + this.elements.searchField.val();\n                    }\n                }\n    \n                (function () {\n                    for (var group in parameters) {\n                        if (parameters[group].length > 0) {\n    \n                            if (querystring === '') {\n                                querystring += '#' + group + '=';\n                            } else {\n                                querystring += '&' + group + '=';\n                            }\n    \n                            var i = 0,\n                                length = parameters[group].length;\n    \n                            for (; i < length; i++) {\n                                querystring += parameters[group][i];\n    \n                                if (i !== length - 1) {\n                                    querystring += ',';\n                                }\n                            }\n                        }\n                    }\n                })();\n    \n                // Set new url based on querystring input\n                newUrl += querystring;\n    \n                if (currentUrl.hash == '') {\n                    newUrl += currentUrl.hash;\n                }\n    \n                // Replace state with new url\n                window.history.replaceState({}, null, newUrl);\n            }\n}"},function(t,e,n){n(0)(n(133)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/filters.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  //if (!jQuery(\'body\').hasClass(\'pageedit\')) {  \r\n  PT.Filters.DropDown();\r\n  PT.Filters.PopulateForm();\r\n\r\n  PT.Filters.Search();\r\n  PT.Filters.ClearFilters();\r\n  PT.Filters.GoToSearch();\r\n  //}\r\n});\r\n/*\r\n===================================\r\nPT.Filters\r\n===================================\r\n*/\r\nPT.Filters = {\r\n  Variables: {\r\n    vokSearchBtn: jQuery(".vok-module .filter-searchbtn"),\r\n    vokSearchBox: jQuery(".vok-module .filter-searchbox"),\r\n    eduSearchBtn: jQuery(".education-module .filter-searchbtn")\r\n  },\r\n\r\n  GoToSearch: function() {\r\n    if (jQuery.getUrlVar(\'eq\')) {\r\n      \r\n    }\r\n  },\r\n\r\n  Search: function () {\r\n\r\n    //VOK\r\n    if (jQuery(".vok-module").length) {\r\n      PT.Filters.Variables.vokSearchBtn.click(function (e) {\r\n        e.preventDefault();\r\n        var url = PT.Filters.RedirectTo();\r\n        window.location = url;\r\n\r\n      });\r\n\r\n      PT.Filters.Variables.vokSearchBox.on(\'keypress\', function (event) {\r\n        var key = event.which;\r\n        if (key == 13) {\r\n          event.preventDefault();\r\n          var url = PT.Filters.RedirectTo();\r\n          window.location = url;\r\n        }\r\n      });\r\n      jQuery(\'.js-search-postback\').click(function (event) {\r\n        event.preventDefault();\r\n        var url = PT.Filters.RedirectTo();\r\n        window.location = url;\r\n      });\r\n    } else {\r\n\r\n      PT.Filters.Variables.eduSearchBtn.click(function (e) {\r\n        e.preventDefault();\r\n        window.location = window.location.href = \'?eq=\' + jQuery(\'.filter-searchbox\').val() + "#filter-module";\r\n      });\r\n      jQuery(\'.filter-searchbox\').on(\'keypress\', function (event) {\r\n        var key = event.which;\r\n        var val = jQuery(this).val();\r\n        if (key == 13) {\r\n          event.preventDefault();\r\n          window.location = window.location.href = \'?eq=\' + val + "#filter-module";\r\n        }\r\n      });\r\n    }\r\n  },\r\n\r\n  RedirectTo: function () {\r\n    var url = \'?\';\r\n    var params = {\r\n      f: jQuery("ul[data-filter=\'filter-f\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-f\']").find(\'.selected\').data("id") : "",\r\n      s: jQuery("ul[data-filter=\'filter-s\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-s\']").find(\'.selected\').data("id") : "",\r\n      e: jQuery("ul[data-filter=\'filter-e\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-e\']").find(\'.selected\').data("id") : "",\r\n      u: jQuery("ul[data-filter=\'filter-u\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-u\']").find(\'.selected\').data("id") : "",\r\n      l: jQuery("ul[data-filter=\'filter-l\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-l\']").find(\'.selected\').data("id") : "",\r\n      m: jQuery("ul[data-filter=\'filter-m\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-m\']").find(\'.selected\').data("id") : "",\r\n      org: jQuery("ul[data-filter=\'filter-org\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-org\']").find(\'.selected\').data("id") : "",\r\n      location: jQuery("ul[data-filter=\'filter-location\']").find(\'.selected\').data("id") != undefined ? jQuery("ul[data-filter=\'filter-location\']").find(\'.selected\').data("id") : "",\r\n      q: PT.Filters.Variables.vokSearchBox.val()\r\n    }\r\n\r\n    for (var key in params) {\r\n      if (params.hasOwnProperty(key) && params[key]) {\r\n        url += key + \'=\' + params[key] + \'&\'\r\n      }\r\n    }\r\n    url = url.replace(/&+$/, "");\r\n    return url + \'#filter-module\';\r\n  },\r\n\r\n  PopulateForm: function () {\r\n    var f = jQuery.getUrlVar(\'f\');\r\n    var s = jQuery.getUrlVar(\'s\');\r\n    var e = jQuery.getUrlVar(\'e\');\r\n    var u = jQuery.getUrlVar(\'u\');\r\n    var q = jQuery.getUrlVar(\'q\');\r\n    var l = jQuery.getUrlVar(\'l\');\r\n    var m = jQuery.getUrlVar(\'m\');\r\n\r\n    if (f != undefined) {\r\n      jQuery("ul[data-filter=\'filter-f\']").find("li[data-id=\'" + decodeURIComponent(f) + "\']").find("a").click();\r\n    }\r\n    if (s != undefined) {\r\n      jQuery("ul[data-filter=\'filter-s\']").find("li[data-id=\'" + decodeURIComponent(s) + "\']").find("a").click();\r\n    }\r\n    if (e != undefined) {\r\n      jQuery("ul[data-filter=\'filter-e\']").find("li[data-id=\'" + decodeURIComponent(e) + "\']").find("a").click();\r\n    }\r\n    if (u != undefined) {\r\n      jQuery("ul[data-filter=\'filter-u\']").find("li[data-id=\'" + decodeURIComponent(u) + "\']").find("a").click();\r\n    }\r\n    if (q != undefined) {\r\n      PT.Filters.Variables.vokSearchBox.val(decodeURIComponent(q));\r\n    }\r\n    if (l != undefined) {\r\n        jQuery("ul[data-filter=\'filter-l\']").find("li[data-id=\'" + decodeURIComponent(l) + "\']").find("a").click();\r\n    }\r\n    if (m != undefined) {\r\n        jQuery("ul[data-filter=\'filter-m\']").find("li[data-id=\'" + decodeURIComponent(m) + "\']").find("a").click();\r\n    }\r\n  },\r\n\r\n  Select: function (filter, selected, icon) {\r\n\r\n    filter.find("a").click(function (e) {\r\n      if (!jQuery(this).hasClass(\'js-postback\')) {\r\n        e.preventDefault();\r\n      }\r\n      filter.find("li").removeClass(\'selected\');\r\n      jQuery(this).parent().addClass("selected");\r\n      selected.text(jQuery(this).text());\r\n      filter.hide();\r\n      icon.removeClass("icon-arrow-up");\r\n    });\r\n\r\n  },\r\n\r\n  DropDown: function () {\r\n\r\n    //VOK\r\n    if (jQuery(".vok-module .js-select").length) {\r\n      jQuery(".js-select").each(function () {\r\n        var selected = jQuery(this).find("span.selected");\r\n        var filter = jQuery("ul[data-filter=\'" + selected.data("filter") + "\']");\r\n        var icon = jQuery(this).find("[class*=\'icon\']");\r\n\r\n        PT.Filters.Select(filter, selected, icon);\r\n\r\n\r\n        var selectedfilter = filter.find("li.selected");\r\n        selected.click(function (e) {\r\n          PT.Filters.Toggle(filter, icon);\r\n        });\r\n        icon.click(function (e) {\r\n          PT.Filters.Toggle(filter, icon);\r\n        });\r\n\r\n        if (selectedfilter.length) {\r\n          selected.text(selectedfilter.find(\'a\').text());\r\n        }\r\n      });\r\n    }\r\n    else {\r\n      jQuery(".js-select").each(function () {\r\n        jQuery(this).find("select").hide();\r\n\r\n        var selected = jQuery(this).find(".selected");\r\n        var filter = jQuery(this).find(".js-filter");\r\n\r\n        var selectedfilter = jQuery(this).find(".js-filter li.selected");\r\n        var icon = jQuery(this).find("[class*=\'icon\']");\r\n\r\n        selected.css(\'display\', \'block\').show();\r\n\r\n        selected.click(function () {\r\n          PT.Filters.Toggle(filter, icon);\r\n        });\r\n\r\n        icon.click(function () {\r\n          PT.Filters.Toggle(filter, icon);\r\n        });\r\n\r\n        if (selectedfilter.length) {\r\n          selected.text(selectedfilter.find(\'a\').text());\r\n        }\r\n      });\r\n    }\r\n\r\n    jQuery(\'li a\', \'.select-filter.js-filter\').each(function () {\r\n      var url = jQuery(this).attr(\'href\');\r\n      url += \'#filter-module\';\r\n      jQuery(this).attr(\'href\', url);\r\n    });\r\n  },\r\n\r\n  Toggle: function (filter, icon) {\r\n    filter.toggle();\r\n    if (filter.is(":visible")) {\r\n      icon.addClass("icon-arrow-up");\r\n    }\r\n    else {\r\n      icon.removeClass("icon-arrow-up");\r\n    }\r\n  },\r\n\r\n  ClearFilters: function () {\r\n    jQuery(".js-search-clear-filters").click(function (e) {\r\n      e.preventDefault();\r\n\r\n      // Specific for VOK filter\r\n      if (jQuery(this).closest(\'.vok-module\').length) {\r\n        //sessionStorage.clear();\r\n        sessionStorage.removeItem(PT.VOK.Variables.sessionStorageItem);\r\n        sessionStorage.removeItem(PT.VOK.Variables.sessionStorageTab);\r\n      }\r\n\r\n      var url = window.location.pathname;\r\n      window.location = url + \'#filter-module\';\r\n\r\n    });\r\n  }\r\n};\r\njQuery(window).load(function () {\r\n\r\n  if (!PT.VOK.IsSessionStored()) {\r\n    // Remove the # from the hash, as different browsers may or may not include it\r\n    var hash = location.hash.replace(\'#\', \'\');\r\n\r\n    if (hash != \'\') {\r\n      // Clear the hash in the URL\r\n      // location.hash = \'\';   // delete front "//" if you want to change the address bar\r\n      //jQuery(\'html, body\').animate({ scrollTop: jQuery(\'#\' + hash).offset.top - 120 }, 0);\r\n\r\n    }\r\n  }\r\n});\r\njQuery.extend({\r\n  getUrlVars: function () {\r\n    var vars = [], hash;\r\n    var hashes = window.location.href.slice(window.location.href.indexOf(\'?\') + 1).split(\'&\');\r\n    for (var i = 0; i < hashes.length; i++) {\r\n      hash = hashes[i].split(\'=\');\r\n      vars.push(hash[0]);\r\n      vars[hash[0]] = (hash[1]) ? hash[1].split(\'#\')[0] : hash[1];\r\n    }\r\n    return vars;\r\n  },\r\n  getUrlVar: function (name) {\r\n    return jQuery.getUrlVars()[name];\r\n  }\r\n});'},function(t,e,n){n(0)(n(135)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/footer.js")},function(t,e){t.exports='/*\n===================================\nPentia (PT) Namespace\n===================================\n*/\nvar PT = PT || {};\n\n/*\n===================================\nInitialize\n===================================\n*/\njQuery(document).ready(function () {\n  if (!jQuery(\'body\').hasClass(\'pageedit\')) {\n    PT.Footer.Format();\n    \n  }\n    PT.Footer.AdjustHeight();\n});\n/*\n===================================\nPT.Footer\n===================================\n*/\nPT.Footer = {\n\n    Format: function () {\n    jQuery(".footer-element").each(function (event) {\n        if (jQuery(this).find("img").length) {\n        jQuery(this).addClass("footer-img");\n        }\n    });\n    },\n\n    AdjustHeight: function () {\n\n        var heights = $(".footer-group").map(function () {\n            return $(this).height();\n        }).get();\n        var maxHeight = Math.max.apply(null, heights);\n\n        jQuery(\'#FooterBackground\').height(maxHeight);\n    }\n};'},function(t,e,n){n(0)(n(137)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/form-wizard.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n/*\r\n===================================\r\nPT.FormWizard\r\n===================================\r\n*/\r\nPT.FormWizard = {\r\n  /*\r\n  ===================================\r\n  Variables\r\n  ===================================\r\n  */\r\n  Variables: {\r\n    formsteps: null,\r\n    btnNext: null,\r\n    btnPrev: null,\r\n    progressbar: null\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Setup: function () {\r\n    var fancyWidth = null;\r\n    var fancyHeight = null;\r\n    var fancyMargin = null;\r\n    \r\n    switch (jRes.getBreakpoint()) {\r\n      case 'handheld':\r\n        fancyWidth = '100%';\r\n        fancyHeight = '100%';\r\n        fancyMargin = 0;\r\n        break;\r\n      case 'tablet':\r\n        fancyWidth = '100%';\r\n        fancyHeight = '100%';\r\n        fancyMargin = 0;\r\n        break;\r\n      case 'desktop':\r\n        fancyWidth = '70%';\r\n        fancyHeight = '90%';\r\n        fancyMargin = 20;\r\n        break;\r\n      case 'huge':\r\n        fancyWidth = '70%';\r\n        fancyHeight = '90%';\r\n        fancyMargin = 20;\r\n        break;\r\n      default:\r\n    }\r\n    var fancyboxoptions = {\r\n      maxWidth: 930,\r\n      //maxHeight: 600,\r\n      fitToView: false,\r\n      width: fancyWidth,\r\n      height: fancyHeight,\r\n      margin: fancyMargin,\r\n      wrapCSS: 'fancy-form',\r\n      padding: 0,\r\n      autoSize: false,\r\n      closeClick: false,\r\n      openEffect: 'none',\r\n      closeEffect: 'none',\r\n      iframe: {\r\n        scrolling: 'auto',\r\n        preload: true\r\n      },\r\n      afterShow: function () {\r\n        var ieVersion = /*@cc_on (function() {switch(@_jscript_version) {case 1.0: return 3; case 3.0: return 4; case 5.0: return 5; case 5.1: return 5; case 5.5: return 5.5; case 5.6: return 6; case 5.7: return 7; case 5.8: return 8; case 9: return 9; case 10: return 10;}})() || @*/ 0;\r\n        if (ieVersion === 9) {\r\n          //Force iframe in ie9 to fill box\r\n          jQuery(this.inner).find('iframe').css('width', this.inner.width() - 15);\r\n          jQuery(this.inner).find('iframe').css('height', this.inner.height());\r\n        }\r\n      }\r\n    }\r\n    $(\".fancybox-iframe\").fancybox(fancyboxoptions);\r\n\r\n    //PT.FormWizard.Variables.formsteps = jQuery('.form-wizard__content__fieldset');\r\n    //PT.FormWizard.Variables.btnNext = jQuery('.form-wizard__content__fieldset__next');\r\n    //PT.FormWizard.Variables.btnPrev = jQuery('.form-wizard__content__fieldset__prev');\r\n    //PT.FormWizard.Variables.progressbar = jQuery('.form-wizard__content__progress');\r\n\r\n    //PT.FormWizard.Variables.btnNext.bind('click', function (e) {\r\n    //  PT.FormWizard.Next(e, this)\r\n    //});\r\n\r\n    //PT.FormWizard.Variables.btnPrev.bind('click', function (e) {\r\n    //  PT.FormWizard.Prev(e, this)\r\n    //});\r\n\r\n    //PT.FormWizard.SetupProgress();\r\n\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup progress\r\n  ===================================\r\n  */\r\n  SetupProgress: function () {\r\n    jQuery(PT.FormWizard.Variables.formsteps).each(function (index) {\r\n      jQuery(this).data('index', index)\r\n      var li = jQuery('<li/>').data('index', index).text(jQuery('legend', this).text()).appendTo(PT.FormWizard.Variables.progressbar);\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Track progress\r\n  ===================================\r\n  */\r\n  TrackProgress: function () {\r\n    var visible = PT.FormWizard.Variables.formsteps.filter('[aria-hidden=\"false\"]').data('index');\r\n    PT.FormWizard.Variables.progressbar.children('li').filter('data-index')\r\n  },\r\n  /*\r\n  ===================================\r\n  Next\r\n  ===================================\r\n  */\r\n  Next: function (e, elem) {\r\n    e.preventDefault();\r\n    if (jQuery(elem).closest('fieldset').next('fieldset').length) {\r\n      jQuery(elem).closest('fieldset').attr('aria-hidden', 'true').next('fieldset').attr('aria-hidden', 'false');\r\n    }\r\n  },\r\n\r\n  /*\r\n  ===================================\r\n  Prev\r\n  ===================================\r\n  */\r\n  Prev: function (e, elem) {\r\n    e.preventDefault();\r\n    if (jQuery(elem).closest('fieldset').prev('fieldset').length) {\r\n      jQuery(elem).closest('fieldset').attr('aria-hidden', 'true').prev('fieldset').attr('aria-hidden', 'false');\r\n    }\r\n  },\r\n  /*\r\n  ===================================\r\n  Reset\r\n  ===================================\r\n  */\r\n  Reset: function () {\r\n\r\n  }\r\n};\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.FormWizard.Setup();\r\n  }\r\n});"},function(t,e,n){n(0)(n(139)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/form.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  //if (!jQuery('body').hasClass('pageedit')) {\r\n\r\n  PT.Form.applySimple();\r\n  PT.Form.MoveLabels();\r\n  PT.Form.MoveHints();\r\n  PT.Form.selectStyling();\r\n  PT.Form.Search();\r\n  //}\r\n});\r\n/*\r\n===================================\r\nPT.Form\r\n===================================\r\n*/\r\nPT.Form = {\r\n\r\n  MoveLabels: function () {\r\n\r\n    jQuery('.simple-form label').each(function () {\r\n      var lbl = jQuery(this);\r\n      var input = lbl.prop(\"for\");\r\n      jQuery(\"#\" + input).prop(\"placeholder\", lbl.text());\r\n      lbl.hide();\r\n    });\r\n  },\r\n\r\n  MoveHints: function () {\r\n    jQuery('.scfMultipleLineTextUsefulInfo').each(function () {\r\n      jQuery(this).prev('textarea').attr(\"placeholder\", jQuery(this).text());\r\n      jQuery(this).hide();\r\n    });\r\n    jQuery('[class*=\"UsefulInfo\"]').each(function () {\r\n      if (jQuery(this).text()) {\r\n\r\n        jQuery(this).prev('input[type=\"text\"]').attr(\"placeholder\", jQuery(this).text());\r\n        jQuery(this).hide();\r\n      }\r\n\r\n    });\r\n  },\r\n\r\n  applySimple: function () {\r\n    jQuery('input[type=\"submit\"]').each(function () {\r\n      var btn = jQuery(this);\r\n      var form = btn.parents(\".scfForm\");\r\n      if (form.find('.simple-form').length) {\r\n        form.addClass('simple-form');\r\n      }\r\n    });\r\n  },\r\n\r\n  selectStyling: function () {\r\n    $('.scfDropList').selectize();\r\n\r\n  },\r\n\r\n  Search: function () {\r\n    var searchbox = jQuery(\"#q\");\r\n    var location = jQuery('#l');\r\n    searchbox.keydown(function (e) {\r\n     \r\n      if (e.keyCode === 13) {\r\n        e.preventDefault();\r\n        var query = \"?q=\" + encodeURIComponent(searchbox.val()) + \"&l=\" + location.val();\r\n        window.location = window.location.href.split('?')[0] + query;\r\n      }\r\n    });\r\n  }\r\n};"},function(t,e,n){n(0)(n(141)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/full-size-video.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.FullSizeVideo\r\n===================================\r\n*/\r\nPT.FullSizeVideo = {\r\n  variables: {\r\n    player: undefined,\r\n    isIphone: /iPhone|iPod/.test(navigator.userAgent),\r\n    isIpad: /iPad/.test(navigator.userAgent),\r\n    isIOS: /iPad|iPhone|iPod/.test(navigator.userAgent)\r\n  },\r\n  \r\n  Init: function () {\r\n    if(document.getElementById("full-screen-video") !== null) {\r\n      jQuery(\'.identity-module\').addClass(\'js-absolute\');\r\n    }\r\n  },\r\n\r\n  videoId: function () {\r\n    if (document.getElementById("full-screen-video") !== null) {\r\n      return document.getElementById("full-screen-video").getAttribute("data-yt-id");\r\n    }\r\n    else {\r\n      return ""\r\n    }\r\n  },\r\n\r\n  ToggleTitle: function (add) {\r\n    if (add)\r\n      $(".above-content").hide()\r\n    else\r\n      $(".above-content").show()\r\n\r\n    $(".full-screen-video__image-overlay__left-bar").toggleClass("full-screen-video__image-overlay__left-bar--video-playing", add);\r\n  },\r\n\r\n  ToggleOverlayImage: function (add) {\r\n    $(".full-screen-video__image-overlay").toggleClass("full-screen-video__image-overlay--video-playing", add);\r\n  },\r\n\r\n  Player: {\r\n    Dimensions: {\r\n      "width": 640,\r\n      "height": 390\r\n    },\r\n\r\n    Play: function (e) {\r\n        e.preventDefault();\r\n\r\n      if (window.innerWidth >= 768) {\r\n        // Hide left bar\r\n        PT.FullSizeVideo.ToggleTitle(true);\r\n      }\r\n\r\n      // Start video\r\n      PT.FullSizeVideo.variables.player.playVideo();\r\n\r\n      // Handling for iOS devices\r\n      if (!PT.FullSizeVideo.variables.isIOS) {\r\n        // Toogle presentation\r\n        PT.FullSizeVideo.ToggleOverlayImage(true);\r\n        \r\n        // Hide play button\r\n\r\n          $(\'.js-full-screen-play-button\').css({\r\n              visibility: "hidden",\r\n              display: "none"\r\n          });\r\n\r\n       /*\r\n        var play_button = $(document.getElementById("full-screen-video")).find(".play-button");\r\n        play_button.css({\r\n          visibility:"hidden",\r\n          display:"none"\r\n        });\r\n        */\r\n      }\r\n    },\r\n\r\n    Stop: function () {\r\n      // Hide left bar\r\n      PT.FullSizeVideo.ToggleTitle(false);\r\n\r\n      // Seek back to 0 second\r\n      PT.FullSizeVideo.variables.player.seekTo(0);\r\n\r\n      // Stop video\r\n      PT.FullSizeVideo.variables.player.stopVideo();\r\n\r\n      \r\n      // Handling for iOS devices\r\n      if (!PT.FullSizeVideo.variables.isIOS) {\r\n        // Toogle presentation\r\n        PT.FullSizeVideo.ToggleOverlayImage(false);\r\n\r\n        // Show play button\r\n        var play_button = $(document.getElementById("full-screen-video")).find(".play-button");\r\n        // play_button.css({\r\n        //   visibility:"visible",\r\n        //   display:"block"\r\n        // });\r\n        play_button.attr("style", "");\r\n      }\r\n    },\r\n\r\n    OnPlayerReady: function(e) {\r\n      var play_button = $(document.getElementById("full-screen-video")).find(".play-button");\r\n      play_button.on("click", PT.FullSizeVideo.Player.Play);\r\n    },\r\n\r\n    OnPlayerStateChange: function (e) {\r\n      if (e.data !== YT.PlayerState.UNSTARTED) {\r\n        if (e.data === YT.PlayerState.ENDED) {\r\n          PT.FullSizeVideo.Player.Stop();\r\n        }\r\n      }\r\n      if (e.data === YT.PlayerState.PLAYING) {\r\n        if (PT.FullSizeVideo.variables.isIpad) {\r\n          // Hide iPad bar\r\n          document.getElementById("full-screen-video-ipad-bar").style.display = "none";\r\n          $(".above-content").hide();\r\n        }\r\n      }\r\n      if (e.data === YT.PlayerState.CUED) {\r\n        if (PT.FullSizeVideo.variables.isIpad) {\r\n          // Show iPad bar\r\n          document.getElementById("full-screen-video-ipad-bar").style.display = "block";\r\n          $(".above-content").show();\r\n        }\r\n      }\r\n    }\r\n  }\r\n};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nPT.FullSizeVideo.Init();\r\n\r\n\r\n/*\r\n  Youtube er ikke min ven, dette bliver kørt uden for namespace opbygningen\r\n*/\r\nif ($("#full-screen-video").length)\r\n{\r\n    // Inject the JavaScript YouTube API, IF it is not already included on the page\r\n    // The script full-size-video.js, also has functionality to inject the YouTube API, this is why we create a check here before injecting/duplicating it\r\n    var scripts = document.getElementsByTagName("script");\r\n    var scriptsAlreadyExists = false;\r\n\r\n    for (var i = 0; i < scripts.length; i++) {\r\n\r\n        if (scripts[i].getAttribute(\'src\') == \'https://www.youtube.com/iframe_api\') {\r\n\r\n            scriptsAlreadyExists = true;\r\n        }\r\n    }\r\n\r\n    if (!scriptsAlreadyExists) {\r\n\r\n        var tag = document.createElement(\'script\');\r\n        var firstScriptTag = document.getElementsByTagName(\'script\')[0];\r\n\r\n        tag.src = "https://www.youtube.com/iframe_api";\r\n        tag.async = true;\r\n\r\n        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); \r\n    }\r\n\r\n\r\n\r\n\r\n  function onYouTubePlayerAPIReady() {\r\n    PT.FullSizeVideo.variables.player = new YT.Player(\'ytplayer\', {\r\n      height: PT.FullSizeVideo.Player.Dimensions.height,\r\n      width: PT.FullSizeVideo.Player.Dimensions.width,\r\n      videoId: PT.FullSizeVideo.videoId(),\r\n      controls: 0,\r\n      showinfo: 0,\r\n      autohide: 1,\r\n      playerVars: {\r\n          \'showinfo\': 0\r\n      },\r\n      enablejsapi: 1,\r\n      events: {\r\n        \'onReady\': PT.FullSizeVideo.Player.OnPlayerReady,\r\n        \'onStateChange\': PT.FullSizeVideo.Player.OnPlayerStateChange\r\n      }\r\n    });\r\n    \r\n    // Hvis iOS : http://stackoverflow.com/questions/9038625/detect-if-device-is-ios\r\n    if (PT.FullSizeVideo.variables.isIOS) {\r\n      PT.FullSizeVideo.ToggleOverlayImage(true);\r\n      \r\n      if (PT.FullSizeVideo.variables.isIpad) {\r\n        // Opret iPad-bar (cloneNode, så vi undgår duplikeret kode i vores usercontrol)\r\n        var leftBar = document.getElementById("leftbar-content").cloneNode(true);\r\n        document.getElementById("full-screen-video-ipad-bar").appendChild(leftBar);\r\n      }\r\n    }\r\n    else {\r\n      var play_button = $(document.getElementById("full-screen-video")).find(".play-button");\r\n      // play_button.css({\r\n      //   visibility:"visible",\r\n      //   display:"block"\r\n      // });\r\n      play_button.attr("style", "");\r\n    }\r\n  }\r\n}'},function(t,e,n){n(0)(n(143)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/gallery.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    //PT.Gallery.Thumbs();\r\n    //PT.Gallery.YoutubeFrames();\r\n    //PT.Gallery.Flexslider();\r\n    //PT.Gallery.MoveCredits();\r\n\r\n    PT.Gallery.FancyBoxThumbs();\r\n    PT.Gallery.FancyBoxYoutubeFrames();\r\n    PT.Gallery.jRes();\r\n  }\r\n\r\n});\r\n/*\r\n===================================\r\nPT.Gallery\r\n===================================\r\n*/\r\nPT.Gallery = {\r\n\r\n  FancyBoxThumbs: function () {\r\n    jQuery('.fancybox .gallery-image').each(function () {\r\n      var imgSrc = jQuery(this).attr('src');\r\n      jQuery(this).closest('a').attr('href', imgSrc);\r\n    });\r\n  },\r\n\r\n  FancyBoxYoutubeFrames: function () {\r\n\r\n    jQuery('.fancybox iframe').each(function () {\r\n      \r\n      var href = jQuery(this).prop('src');\r\n      var n = href.lastIndexOf('/');\r\n      var videoId = href.substring(n + 1);\r\n\r\n      if (videoId.indexOf('?') > -1) {\r\n        videoId = videoId.substring(0, videoId.lastIndexOf(\"?\"));\r\n      }\r\n      //var url = 'http://img.youtube.com/vi/' + videoId + '/hqdefault.jpg';\r\n      \r\n      jQuery(this).closest('a').attr('href', href);\r\n      jQuery(this).closest('a').addClass('fancybox.iframe');\r\n      \r\n      //jQuery(this).closest('a').append(\"<img src='\"+url + \"'/>\");\r\n      jQuery(this).detach();\r\n    });\r\n\r\n\r\n  },\r\n\r\n  FancyBox: function (width) {\r\n    jQuery('.fancybox-thumb').fancybox({\r\n      padding: 0,\r\n      maxWidth\t: 800,\r\n      maxHeight\t: 600,\r\n      fitToView\t: true,\r\n      width\t\t: width,\r\n      height\t\t: '70%',\r\n      autoSize\t: false,\r\n      closeClick\t: false,\r\n      openEffect\t: 'none',\r\n      closeEffect\t: 'none',\r\n      type        : 'image',\r\n      beforeLoad: function () {\r\n        var el = $(this.element).next('.text');\r\n        if (el.length) {\r\n          this.title = el.html();\r\n        }\r\n\r\n      },\r\n      onUpdate: function () {\r\n        var fancyboxWrap = jQuery('.fancybox-wrap');\r\n        var gallerySwipe = new Hammer(fancyboxWrap.get(0)); // Can't pass a jQuery wrapped element, therefore .get(0) - NHA\r\n        gallerySwipe.on('swipeleft', function () {\r\n          jQuery.fancybox.next();\r\n        });\r\n        gallerySwipe.on('swiperight', function () {\r\n          jQuery.fancybox.prev();\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  //Thumbs: function () {\r\n  //  jQuery('.flexslider .gallery-image').each(function () {\r\n  //    var imgSrc = jQuery(this).attr('src');\r\n  //    jQuery(this).closest('li').attr('data-thumb', imgSrc);\r\n  //  });\r\n  //},\r\n\r\n  //YoutubeFrames: function () {\r\n\r\n\r\n  //  jQuery('.flexslider iframe').each(function() {\r\n  //    var href = jQuery(this).prop('src');\r\n  //    var n = href.lastIndexOf('/');\r\n  //    var videoId = href.substring(n + 1);\r\n\r\n  //    jQuery(this).wrap(\"<div class='video-container'/>\")\r\n  //    jQuery(this).closest('.image').addClass('video');\r\n\r\n  //    if (videoId.indexOf('?')>-1) {\r\n  //      videoId = videoId.substring(0, videoId.lastIndexOf(\"?\"));\r\n  //    }\r\n  //    jQuery(this).closest('li').attr('data-thumb', 'http://img.youtube.com/vi/' + videoId + '/default.jpg');\r\n  //  });\r\n\r\n\r\n  //},\r\n\r\n  //Flexslider: function () {\r\n\r\n  //  jQuery('.flexslider').flexslider({\r\n  //    animation: \"slide\",\r\n  //    controlNav: \"thumbnails\",\r\n  //    slideshow: true,\r\n  //    slideshowSpeed: 5000,\r\n  //    pauseOnHover:true,\r\n  //    video:true,\r\n  //    smoothHeight: false\r\n  //  });\r\n\r\n  //  jQuery('.flex-control-thumbs img').each(function () {\r\n  //    if (jQuery(this).attr('src').indexOf(\"youtube\") != -1)\r\n  //      jQuery(this).parent('li').addClass('video-thumb');\r\n  //  });\r\n\r\n  //},\r\n\r\n  //MoveCredits: function () {\r\n  //  jQuery('.flexslider li').each(function () {\r\n  //    var slide = jQuery(this);\r\n  //    var content = slide.find('.content');\r\n  //    if (content.length) {\r\n  //      slide.find('.credits').detach().appendTo(content);\r\n  //    }\r\n  //  });\r\n  //}\r\n\r\n\r\n  jRes: function () {\r\n    jRes.addFunc([\r\n      {\r\n        breakpoint: ['tablet', 'desktop', 'huge'],\r\n        enter: function () {\r\n          PT.Gallery.FancyBox('70%');\r\n        }\r\n      },\r\n      {\r\n        breakpoint: 'handheld',\r\n        enter: function () {\r\n          PT.Gallery.FancyBox('100%');\r\n        }\r\n      }\r\n    ]);\r\n  }\r\n};\r\n"},function(t,e,n){n(0)(n(145)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/google-tag-manager.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tif (!jQuery('body').hasClass('pageedit')) {\r\n\t\tPT.GoogleTagManager.init();\r\n\t}\r\n});\r\n\r\n/*\r\n===================================\r\nPT.GoogleTagManager\r\n\r\nCan be used in two ways.\r\n\r\n1)\r\nAdd the component to an element, with data-component=\"google-tag-manager\", along with data attributes for\r\ngtm-event-category, gtm-event-action and gtm-event-label\r\n\r\n2)\r\nUse the function PT.GoogleTagManager.track() directly\r\nUsing it this way requires to either manually building the tracking object,\r\nor by calling the PT.GoogleTagManger.buildTrackingObject function on the element first\r\n===================================\r\n*/\r\nPT.GoogleTagManager = {\r\n\r\n\t// Base object with default values to send to Google\r\n\tbaseTrackConfig: {\r\n\t\t'event': 'track-event',\r\n\t\t'eventCategory': '',\r\n\t\t'eventAction': '',\r\n\t\t'eventLabel': '',\r\n\t\t'eventValue': '0',\r\n\t\t'eventNoninteraction': true\r\n\t},\r\n\r\n\t/**\r\n\t * Initialize the tracking logic\r\n\t */\r\n\tinit: function init() {\r\n\r\n\t\t// Test if the Google Tag Manager was loaded, and is ready to use\r\n\t\tif (!window.dataLayer || typeof window.dataLayer.push !== 'function') {\r\n\t\t\tconsole.warn('Google Tag Manager not ready on the page, unable to send tracking information');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tPT.GoogleTagManager.setupEventListeners();\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Set up click event listeners on the found links\r\n\t */\r\n\tsetupEventListeners: function setupEventListeners() {\r\n\r\n\t\t// Setup event listener for resent and future elements in the dom wiath the data-component tag\r\n\t\tjQuery('body').on('click.gtmtracking', '[data-component=\"google-tag-manager\"]', function () {\r\n\t\t\t// Honor setting from Sitecore that indicates if tracking is enabled for this component\r\n\t\t\tif (jQuery(this).data('gtm-enabled') == 'True') {\r\n\t\t\t\tvar trackingObject = PT.GoogleTagManager.buildTrackingObject(this);\r\n\t\t\t\tPT.GoogleTagManager.track(trackingObject);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Build the config object needed to track\r\n\t * Builds the object based on a default and dataattributes on the link\r\n\t * \r\n\t * @param target {dom node} The dom element that holds the data attributes we need\r\n\t * \r\n\t * @returns {object}\r\n\t */\r\n\tbuildTrackingObject: function buildTrackingObject(target) {\r\n\r\n\t\t// Parepare tracking object, using the base as defaults\r\n\t\tvar trackingConfig = jQuery.extend({}, PT.GoogleTagManager.baseTrackConfig);\r\n\r\n\t\ttrackingConfig.eventLabel = jQuery(target).data('gtm-event-label') ? jQuery(target).data('gtm-event-label') : document.location.href;\r\n\t\ttrackingConfig.eventCategory = jQuery(target).data('gtm-event-category') ? jQuery(target).data('gtm-event-category') : 'unknown eventCategory';\r\n\t\ttrackingConfig.eventAction = jQuery(target).data('gtm-event-action') ? jQuery(target).data('gtm-event-action') : 'unknown eventAction';\r\n\r\n\t\treturn trackingConfig;\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Send tracking request to Google Tag Manager\r\n\t * \r\n\t * @param {object} options The tracking object to send to Google\r\n\t */\r\n\ttrack: function tack(options) {\r\n\r\n\t\t// Before tracking, test again that we can actually do the request\r\n\t\tif (options && window.dataLayer && typeof window.dataLayer.push === 'function') {\r\n\t\t\tdataLayer.push(options)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconsole.warn('Google Tag Manager is not ready, tracking request not sent');\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n\r\n"},function(t,e,n){n(0)(n(147)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/header.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.Accordion\r\n===================================\r\n*/\r\nPT.HeaderComponent = {\r\n  lastScrollTop: 0,\r\n  menuHidden: false,\r\n  topHeader: $(".top-header"),\r\n  allowToggle: true,\r\n  toggleTimer: null,\r\n  topParentSiteLink: $(\'.parent-site-link\'),\r\n  init: function () {\r\n    this.setMobileMenuHeight();\r\n\r\n    var _this = this;\r\n    \r\n    $(window).scroll(function (event) {\r\n      var st = $(this).scrollTop();\r\n      _this.topHeader = $(".top-header");\r\n\r\n      if (st > _this.lastScrollTop && st >= _this.topHeader.height()) {\r\n        _this.allowToggle = false;\r\n\r\n        clearTimeout(_this.toggleTimer);\r\n        _this.toggleTimer = setTimeout(function() {\r\n          _this.allowToggle = true;\r\n        }, 250);\r\n\r\n        // If were scrolling down and we\'re below or at the height of the topheader\r\n        if (!_this.menuHidden) {\r\n          _this.menuHidden = true;\r\n          _this.toggleMenu(_this.menuHidden);\r\n        }\r\n      } else {\r\n        // Else, upscroll handling\r\n        if (_this.menuHidden && _this.allowToggle) {\r\n          _this.menuHidden = false;\r\n          _this.toggleMenu(_this.menuHidden);\r\n        }\r\n      }\r\n      _this.lastScrollTop = st;\r\n    });\r\n\r\n    // Toggle body class\r\n    if (this.topHeader.find("[data-component=\\"header\\"] > [role=\\"navigation\\"] > nav > ul > li.active > ul").length) {\r\n      $("body").addClass("expanded-menu");\r\n    }\r\n\r\n    if (this.topParentSiteLink.length) {\r\n      $(\'body\').addClass(\'expanded-parent-site-link\');\r\n    }\r\n    \r\n    // Set mobile height on resize\r\n    $(window).resize(this.setMobileMenuHeight);\r\n\r\n    // Set mobile height on interval, to accommodate for weird iPhone resize bug, causing the resize event to sometimes not be fired\r\n    setInterval(this.setMobileMenuHeight, 500);\r\n  },\r\n\r\n  setMobileMenuHeight: function() {\r\n    var primaryControls = $(".primary-navigation__controls"),\r\n        regions = $(".regions");\r\n\r\n    if (window.innerWidth <= 1050) {\r\n      var headerText = $(".header__text"),\r\n          parentSiteLink = $(\'.parent-site-link\'),\r\n          parentSiteLinkHeight = 0;\r\n\r\n      if ($(parentSiteLink).length) {\r\n        var parentSiteLinkHeight = $(parentSiteLink).outerHeight();\r\n      }\r\n\r\n      // The number 18 is the result of a fine adjustment, to ensure equal space above and below the logo. It accounts for the top 8px position of the header text, and the line-height which is about 10.\r\n      var baseHeight = 61,\r\n          newHeight = (headerText.height() > baseHeight ? (headerText.height() + 18) : baseHeight);\r\n\r\n      // Set menu bar height\r\n      primaryControls.height(newHeight);\r\n\r\n      // Set region top margin\r\n      regions.css("margin-top", newHeight + parentSiteLinkHeight - 1);\r\n    }\r\n    else {\r\n      // Reset menu bar height\r\n      primaryControls.css("height", "");\r\n\r\n      // Reset region top margin\r\n      regions.css("margin-top", "");\r\n\r\n    }\r\n  },\r\n  \r\n  toggleMenu: function (hideMenu) {\r\n    var header = this.topHeader,\r\n        headerHeight = header.height(),\r\n        parentSiteLink = this.topParentSiteLink;\r\n\r\n    if (hideMenu) {\r\n      if (window.innerWidth > 1050) {\r\n        var primaryNagigation = $(".primary-navigation"),\r\n            menuTransformHeight = 0;\r\n            parentSiteLinkHeight = 0;\r\n\r\n        if (primaryNagigation.hasClass("has-children")) {\r\n          menuTransformHeight = headerHeight;\r\n        }\r\n        else {\r\n          menuTransformHeight = headerHeight;\r\n        }\r\n\r\n        if ($(parentSiteLink).length) {\r\n          var parentSiteLinkHeight = $(parentSiteLink).outerHeight();\r\n        }\r\n\r\n        // + 1 is to hide the border\r\n        this.topHeader.css({\r\n          transform: "translateY(-" + (menuTransformHeight + parentSiteLinkHeight + 1) + "px)"\r\n        });\r\n      }\r\n      else {\r\n        // + 1 is to hide the border\r\n        this.topHeader.css({\r\n          transform: "translateY(-" + (headerHeight + parentSiteLinkHeight + 1) + "px)"\r\n        });\r\n      }\r\n    }\r\n    else {\r\n      this.topHeader.css("transform", "translateY(0px)");\r\n    }\r\n  }\r\n};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nPT.HeaderComponent.init();'},function(t,e,n){n(0)(n(149)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/image-module.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.ImageModule.ImageModule();\r\n    PT.Cards.ChangeClickableArea();\r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.ImageModule\r\n===================================\r\n*/\r\nPT.ImageModule = {\r\n  ImageModule: function () {\r\n    jQuery('.image-module').each(function () {\r\n      \r\n      if(jQuery(this).find('img').length===0){\r\n        \r\n        jQuery(this).prepend(\"<img src='/Images/blank.gif'/>\");\r\n      }\r\n\r\n    });\r\n  }\r\n  \r\n},\r\nPT.Cards = {\r\n    ChangeClickableArea: function () {\r\n        jQuery('.m-card__wrapper').each(function () {\r\n            \r\n            var hasLink = false;\r\n            var url;\r\n            var newWindow;\r\n            var cardInfo = jQuery(this).find('.m-card__info','m-card-small__info');\r\n            var isVideo = jQuery(this).find('.m-card__image').hasClass('m-card__isVideo');\r\n            var moduleLink = cardInfo.find('a:last');\r\n\r\n            if (moduleLink && moduleLink.attr('href')) {\r\n                hasLink = true;\r\n                url = moduleLink.attr('href');\r\n                newWindow = moduleLink.attr('target');\r\n            \r\n                if (hasLink) {\r\n                    if (isVideo) {\r\n                        cardInfo.css(\"cursor\", \"pointer\");\r\n                        cardInfo.click(function () {\r\n                            moduleLink[0].click();\r\n                        });\r\n                    }\r\n                    else {\r\n                        jQuery(this).css(\"cursor\", \"pointer\");\r\n                        jQuery(this).click(function () {\r\n                            moduleLink[0].click();\r\n                        });\r\n                    }\r\n                }\r\n                $(this).find('a').on('click', function(e){\r\n                    e.stopPropagation();\r\n                });\r\n            }\r\n        });\r\n    }\r\n};"},function(t,e,n){n(0)(n(151)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/latest-viewed.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.LatestViewed.init();\r\n});\r\n/*\r\n===================================\r\nPT.LatestViewed\r\n===================================\r\n*/\r\nPT.LatestViewed = {\r\n\r\n\tinit: function() {\r\n\t\tthis.bindings();\r\n\t\tthis.__registerHistory();\r\n\t},\r\n\r\n\tbindings: function() {\r\n\t\tthis.__bindCloseButtons();\r\n\t\tthis.__bindClearAll();\r\n\t},\r\n\r\n\t__registerHistory: function() {\r\n\t\tvar pageId = jQuery("[data-type=pageIdSetLatestViewed]").val();\r\n\t\t\r\n\t\t// Add value (doesn\'t readd is already exists)\r\n\t\tPT.Cookie.add(PT.Cookie.properties.historyName, pageId);\r\n\t},\r\n\r\n\t__bindClearAll: function() {\r\n\t\t// Clear all\r\n\t\tvar clearLabels = jQuery(".latest-viewed__clear-all");\r\n\r\n\t\tclearLabels.on("click", function() {\r\n\t\t\t// Empty cookie\r\n\t\t\tPT.Cookie.removeAll(PT.Cookie.properties.historyName);\r\n\r\n\t\t\t// Remove elements in container\r\n\t\t\tvar historyContainer = jQuery(this).parent().find("div.row");\r\n\t\t\thistoryContainer.html("");\r\n\r\n\t\t\t// Remove read more\r\n\t\t\tvar containerId = historyContainer.attr("id");\r\n\t\t\tjQuery(".cards_view-more[data-expandcontainer=\\"" + containerId + "\\"]").parent().remove();\r\n\t\t});\r\n\t},\r\n\r\n\t__bindCloseButtons: function() {\r\n\t\t// Clear single\r\n\t\tvar closeButtons = jQuery(".latest-viewed .cards_standard__close");\r\n\t\t\r\n\t\tcloseButtons.on("click", function(e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar latestElement = jQuery(this).parent(),\r\n\t\t\t\t\tlatestElementId = latestElement.attr("data-id");\r\n\r\n\t\t\t// Remove from cookie\r\n\t\t\tPT.Cookie.remove(PT.Cookie.properties.historyName, latestElementId);\r\n\r\n\t\t\t// Remove hidden class from single next element on the list\r\n\t\t\tlatestElement.parent().find(".cards_standard--hidden:lt(1)").removeClass("cards_standard--hidden");\r\n\r\n\t\t\t// Remove element\r\n\t\t\tlatestElement.remove();\r\n\t\t});\r\n\t}\r\n};'},function(t,e,n){n(0)(n(153)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/links.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.Links.ExpandLinkArea();\r\n    PT.Links.SocialLinks();\r\n    PT.Links.FullPathsInLinks();\r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.Links\r\n===================================\r\n*/\r\nPT.Links = {\r\n\r\n  ExpandLinkArea: function () {\r\n\r\n    jQuery(\".module-item:not(.contact-item):not(.cards_standard--no-click)\").click(function (event) {\r\n      // event.preventDefault();\r\n\r\n      if (jQuery(this).find(\"a\").length) {\r\n        var href = jQuery(this).find(\"a\").prop(\"href\");\r\n        var target = jQuery(this).find(\"a\").prop(\"target\");\r\n        if (target === '_blank') {\r\n          window.open(href, '_blank');\r\n        } else {\r\n          window.location = href;\r\n        }\r\n       \r\n      }\r\n\r\n    });\r\n  },\r\n  SocialLinks: function () {\r\n    jQuery(\".social-module a\").click(function (event) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      window.open(this.href, '_blank');\r\n\r\n    });\r\n  },\r\n  FullPathsInLinks: function () {\r\n    jQuery('.linklist li a, .rte-module a,.accordion-item a').each(function () {\r\n      linkitem = jQuery(this).attr('href');\r\n      if (linkitem && linkitem.substring(0, 1) == \"/\") {\r\n        jQuery(this).attr('href', location.protocol + \"//\" + location.host + jQuery(this).attr('href'));\r\n      }\r\n    });\r\n  }\r\n\r\n};"},function(t,e,n){n(0)(n(155)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/loader.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.Loader\r\n===================================\r\n*/\r\nPT.Loader = {\r\n\r\n  create: function (height) {\r\n\t\tvar container = document.createElement('div');\r\n\t\tvar loader = document.createElement('div');\r\n\t\tvar loadDot = document.createElement('span');\r\n\r\n\t\tcontainer.className = 'loading-container';\r\n\t\tcontainer.style.height = height + 'px';\r\n\r\n\t\tloader.className = 'loading';\r\n\r\n\t\tloadDot.className = 'loading__dot useTheme';\r\n\r\n\t\tloader.appendChild(loadDot);\r\n\t\tloader.appendChild(loadDot.cloneNode(true));\r\n\t\tloader.appendChild(loadDot.cloneNode(true));\r\n\r\n\t\tcontainer.appendChild(loader);\r\n\r\n\t\treturn container\r\n\t}\r\n\r\n};"},function(t,e,n){n(0)(n(157)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/logo.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n\r\n/*\r\n===================================\r\nPT.Logo\r\n===================================\r\n*/\r\nPT.Logo = {\r\n\r\n  variables: {\r\n    logo: jQuery('.logo img'),\r\n\r\n    dfLogo: jQuery('.logo img').data(\"logo-default\"),\r\n    dtLogo: jQuery('.logo img').data(\"logo-desktop\"),\r\n    tbLogo: jQuery('.logo img').data(\"logo-tablet\"),\r\n    mbLogo: jQuery('.logo img').data(\"logo-mobile\")\r\n  },\r\n\r\n  mobileLogo: function () {\r\n    if (PT.Logo.variables.mbLogo) {\r\n      PT.Logo.variables.logo.prop(\"src\", PT.Logo.variables.mbLogo);\r\n\r\n    }\r\n\r\n  },\r\n  tabletLogo: function () {\r\n    if (PT.Logo.variables.tbLogo) {\r\n      PT.Logo.variables.logo.prop(\"src\", PT.Logo.variables.tbLogo);\r\n\r\n\r\n    }\r\n  },\r\n  desktopLogo: function () {\r\n    if (PT.Logo.variables.dtLogo) {\r\n      PT.Logo.variables.logo.prop(\"src\", PT.Logo.variables.dtLogo);\r\n\r\n    }\r\n  },\r\n  hugeLogo: function () {\r\n    if (PT.Logo.variables.dfLogo) {\r\n      PT.Logo.variables.logo.prop(\"src\", PT.Logo.variables.dfLogo);\r\n\r\n    }\r\n  }\r\n\r\n};\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: ['huge'],\r\n      enter: function () {\r\n        PT.Logo.tabletLogo();\r\n      }\r\n    },{\r\n      breakpoint: ['desktop'],\r\n      enter: function () {\r\n        PT.Logo.tabletLogo();\r\n      }\r\n    }, {\r\n      breakpoint: 'handheld',\r\n      enter: function () {\r\n        PT.Logo.mobileLogo();\r\n      }\r\n    }, {\r\n      breakpoint: 'tablet',\r\n      enter: function () {\r\n        PT.Logo.tabletLogo();\r\n      }\r\n    }\r\n]);"},function(t,e,n){n(0)(n(159)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/media-list.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.CampaignModule\r\n===================================\r\n*/\r\nPT.MediaList = {\r\n  content: {\r\n    "author": {},\r\n    "textElements": {}\r\n  },\r\n\r\n  init: function () {\r\n    PT.MediaList.setupLinks();\r\n    PT.MediaList.initialBindings();\r\n  },\r\n\r\n  setupLinks: function () {\r\n    var rawTextFields = document.querySelectorAll(".content-wrap__right-column__header__name, " +\r\n                                                  ".content-wrap__right-column__caption, " +\r\n                                                  ".content-wrap__right-column__comments > li");\r\n\r\n    // Instafy the hashtags and usernames\r\n    for (var i = 0; i < rawTextFields.length; i++) {\r\n      var rawTextField = rawTextFields[i];\r\n      rawTextField.innerHTML = PT.MediaList.instafy(rawTextField.innerHTML);\r\n    }\r\n  },\r\n\r\n  initialBindings: function () {\r\n    var mediaListMedias = document.getElementsByClassName("media-list");\r\n    \r\n    for (var i = 0; i < mediaListMedias.length; i++) {\r\n      var mediaListMediaCollection = mediaListMedias[i].querySelectorAll(".content-wrap__image");\r\n\r\n      for (var i = 0; i < mediaListMediaCollection.length; i++) {\r\n        var mediaElement = mediaListMediaCollection[i];\r\n        mediaElement.onclick = function (event) {\r\n          PT.MediaList.openInstagram(this.parentNode);\r\n\r\n          event.preventDefault();\r\n        }\r\n\r\n        var mediaListPlayIcon = mediaElement.parentNode.querySelector(".media-list__play-icon-wrap__play-icon");\r\n\r\n        if (mediaListPlayIcon !== null) {\r\n            mediaListPlayIcon.addEventListener("click", function (e) {\r\n                e.preventDefault();\r\n                PT.MediaList.openInstagram(this.parentNode);\r\n                event.preventDefault();\r\n            });\r\n        }\r\n      }\r\n    }\r\n  },\r\n\r\n  openInstagram: function (elementScope) {\r\n    // Build instagram window\r\n    PT.MediaList.buildInstagramWindow(elementScope);\r\n  },\r\n\r\n  buildInstagramWindow: function (elementScope) {\r\n    // NO scroll toggle\r\n    var body = document.getElementsByTagName("body")[0];\r\n    PT.NavigationModule.toggleClass(body, "noscroll-mobile");\r\n\r\n    //\r\n    // Create element:\r\n    //\r\n\r\n    // Main wrapper\r\n    var instagramWrap = document.createElement("div");\r\n    instagramWrap.id = "instagram-wrap";\r\n    instagramWrap.className = "instagram-wrap";\r\n\r\n    // Background\r\n    var wrapBackground = document.createElement("div");\r\n    wrapBackground.className = "instagram-wrap__background";\r\n\r\n    // Content wrapper\r\n    var contentWrap = elementScope.parentNode.parentNode.cloneNode(true);\r\n\r\n    // Mobile close\r\n    var mobileClose = document.createElement("div");\r\n    mobileClose.className = "mobile-close";\r\n\r\n    var crossWrap = document.createElement("div");\r\n    crossWrap.className = "close-wrap";\r\n\r\n    var cross = document.createElement("div");\r\n    cross.className = "close-wrap__close";\r\n\r\n\r\n    //\r\n    // Append items \r\n    //\r\n\r\n    // To mobile close\r\n    crossWrap.appendChild(cross);\r\n    mobileClose.appendChild(crossWrap);\r\n\r\n    // To content wrapper\r\n    contentWrap.insertBefore(mobileClose, contentWrap.firstChild);\r\n\r\n\r\n    // To main wrapper\r\n    instagramWrap.appendChild(wrapBackground);\r\n    instagramWrap.appendChild(contentWrap);\r\n\r\n    // To body\r\n    document.getElementsByTagName("body")[0].appendChild(instagramWrap);\r\n\r\n\r\n    // Set background binding\r\n    contentWrap.querySelector(".close-wrap").addEventListener("click", PT.MediaList.destroyInstagramWindow, false);\r\n    wrapBackground.addEventListener("click", PT.MediaList.destroyInstagramWindow, false);\r\n  },\r\n\r\n  destroyInstagramWindow: function () {\r\n\r\n    var instagramBackground = document.querySelector("#instagram-wrap > .instagram-wrap__background"),\r\n        closeWrap = document.querySelector("#instagram-wrap .close-wrap");\r\n\r\n    // Remove eventlisteners\r\n    closeWrap.removeEventListener("click", PT.MediaList.destroyInstagramWindow, false);\r\n    instagramBackground.removeEventListener("click", PT.MediaList.destroyInstagramWindow, false);\r\n\r\n    // Remove node\r\n    document.getElementsByTagName("body")[0].removeChild(document.getElementById("instagram-wrap"));\r\n\r\n    // NO scroll toggle\r\n    var body = document.getElementsByTagName("body")[0];\r\n    PT.NavigationModule.toggleClass(body, "noscroll-mobile");\r\n  },\r\n\r\n\r\n  // Toolbox items\r\n  instafy: function (text) {\r\n    return text.replace(/(^|\\s)(#[a-z\\d-]+)/ig, "$1<a href=\\"https://www.instagram.com/explore/tags/$2/\\" class=\\"hash-tag\\" target=\\"blank\\">$2</a>")\r\n               .replace(/(^|\\s)(@[a-z\\d-]+)/ig, "$1<a href=\\"https://www.instagram.com/$2/\\" class=\\"username\\" target=\\"blank\\">$2</a>")\r\n               .replace(/@/g, "")\r\n               .replace(/class=\\"username\\" target=\\"blank\\">/g, "class=\\"username\\" target=\\"blank\\">@");\r\n  },\r\n\r\n  toggleClass: function (elm, classstring) {\r\n    if (elm.className.toString().indexOf(" " + classstring) > -1) {\r\n      elm.className = elm.className.replace(" " + classstring, "");\r\n    }\r\n    else {\r\n      elm.className = elm.className + " " + classstring;\r\n    }\r\n  }\r\n}\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nif (document.getElementsByClassName("media-list").length > 0) {\r\n  PT.MediaList.init();\r\n}\r\n'},function(t,e,n){n(0)(n(161)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/mobile-filter.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.MobileFilter.init();\r\n});\r\n/*\r\n===================================\r\nPT.MobileFilter\r\n===================================\r\n*/\r\nPT.MobileFilter = {\r\n\r\n  init: function () {\r\n\t\tjQuery('.js-mobile-filter-open').on('click', function () {\r\n\t\t\tjQuery(this).next('.js-mobile-filter').addClass('is-active');\r\n\t\t});\r\n\r\n\t\tjQuery('.js-mobile-filter-close').on('click', function () {\r\n\t\t\tjQuery(this).parents('.js-mobile-filter').eq(0).removeClass('is-active');\r\n\t\t});\r\n  },\r\n\r\n\tclose: function () {\r\n\t\tjQuery('.js-mobile-filter').removeClass('is-active');\r\n\t}\r\n\r\n};"},function(t,e,n){n(0)(n(163)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/modal.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.Modal.init();\r\n});\r\n/*\r\n===================================\r\nPT.Modal\r\n===================================\r\n*/\r\nPT.Modal = {\r\n  init: function () {\r\n\t\tjQuery('.js-modal').fancybox({\r\n      maxWidth: 930,\r\n      fitToView: true,\r\n      wrapCSS: 'fancy-form fancy-modal',\r\n      padding: 0,\r\n      autoSize: false,\r\n      closeClick: false,\r\n      openEffect: 'none',\r\n      closeEffect: 'none'\r\n    });\r\n  }\r\n\r\n};"},function(t,e,n){n(0)(n(165)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/navigation-module.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.NavigationModule\r\n===================================\r\n*/\r\nPT.NavigationModule = {\r\n\r\n  variables: {\r\n    "subitemsClass": "navigation-module__menu-items__item__subitems",\r\n    "subitemsOpenClass": "navigation-module__menu-items__item__subitems--open-menu",\r\n    "crossWrapOpenClass": "cross-wrap__cross--open",\r\n    "navigationModuleOpenClass": "navigation-module--open-menu",\r\n    "noscrollMobile": "noscroll-mobile"\r\n  },\r\n\r\n  init: function () {\r\n    PT.NavigationModule.setClassBasedOnChildren();\r\n    PT.NavigationModule.fistViewOrNot();\r\n    PT.NavigationModule.bindings();\r\n  },\r\n\r\n  fistViewOrNot: function () {\r\n    var isFirst = localStorage.getItem("isFirst");\r\n\r\n    if (isFirst !== "false") {\r\n      var navigationModule = document.getElementById("navigation-module");\r\n      navigationModule.className = navigationModule.className + " navigation-module--first-view";\r\n\r\n      // Set localStorage variable\r\n      localStorage.setItem("isFirst", false);\r\n    }\r\n  },\r\n\r\n  setClassBasedOnChildren: function () {\r\n    var primaryNavigation = document.getElementsByClassName("primary-navigation")[0];\r\n    if (primaryNavigation.className.toString().indexOf("has-children") > -1) {\r\n      var navigationModule = document.getElementById("navigation-module");\r\n\r\n      navigationModule.className = navigationModule.className + " extended-top";\r\n    }\r\n  },\r\n\r\n  bindings: function () {\r\n    // Open menu item or expand its content\r\n    var menu_items_expanders = document.querySelectorAll("#navigation-module .navigation-module__menu-items__item > .cross-wrap");\r\n    for (var i = 0; i < menu_items_expanders.length; i++) {\r\n      menu_items_expanders[i].onclick = PT.NavigationModule.menuItemClick;\r\n    }\r\n\r\n    // Toggle menu\r\n    var navigation_module = document.getElementById("navigation-module");\r\n    navigation_module.querySelector(".navigation-module__header").addEventListener("click", PT.NavigationModule.toggleMenu, false);\r\n    navigation_module.querySelector(".mobile-close > .close-wrap").addEventListener("click", PT.NavigationModule.toggleMenu, false);\r\n  },\r\n\r\n  toggleMenu: function () {\r\n    var navigation_module = document.getElementById("navigation-module"),\r\n        body = document.getElementsByTagName("body")[0];\r\n\r\n    PT.NavigationModule.toggleClass(navigation_module, PT.NavigationModule.variables.navigationModuleOpenClass);\r\n    PT.NavigationModule.toggleClass(body, PT.NavigationModule.variables.noscrollMobile);\r\n  },\r\n\r\n  menuItemClick: function (e) {\r\n    var subitems_class = PT.NavigationModule.variables.subitemsClass,\r\n        subitems_open_class = PT.NavigationModule.variables.subitemsOpenClass;\r\n\r\n    // Toggle open classes\r\n    PT.NavigationModule.toggleClass(this.parentElement.querySelector("." + subitems_class), subitems_open_class);\r\n    PT.NavigationModule.toggleClass(this.parentElement.querySelector(".cross-wrap__cross"), PT.NavigationModule.variables.crossWrapOpenClass);\r\n  },\r\n\r\n  toggleClass: function (elm, classstring) {\r\n    if (elm.className.toString().indexOf(" " + classstring) > -1) {\r\n      // Remove class\r\n      elm.className = elm.className.replace(" " + classstring, "");\r\n    }\r\n    else {\r\n      // If not clicking on main header element\r\n      if (classstring !== PT.NavigationModule.variables.noscrollMobile && classstring !== PT.NavigationModule.variables.navigationModuleOpenClass) {\r\n        // Close all open menues\r\n        var mainContainer;\r\n        switch (classstring) {\r\n          case PT.NavigationModule.variables.crossWrapOpenClass:\r\n            mainContainer = elm.parentElement.parentElement.parentElement;\r\n            break;\r\n          case PT.NavigationModule.variables.subitemsOpenClass:\r\n            mainContainer = elm.parentElement.parentElement;\r\n            break;\r\n        }\r\n\r\n        // Get all instances of element with classname attached in mainContainer and then delete it\r\n        var elementsWithOpenClass = mainContainer.querySelectorAll("." + classstring);\r\n\r\n        for (var i = 0; i < elementsWithOpenClass.length; i++) {\r\n          var elementWithOpenClass = elementsWithOpenClass[i];\r\n          elementWithOpenClass.className = elementWithOpenClass.className.replace(classstring, "");\r\n        }\r\n      }\r\n\r\n      // Add class\r\n      elm.className = elm.className + " " + classstring;\r\n    }\r\n  }\r\n}\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nif (document.getElementById("navigation-module") !== null) {\r\n  PT.NavigationModule.init();\r\n}\r\n'},function(t,e,n){n(0)(n(167)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/primary-navigation.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.PrimaryNavigation.hideIcons();\r\n  }\r\n  \r\n  PT.PrimaryNavigation.toggleCanvas();\r\n  PT.PrimaryNavigation.toggleSubItems();\r\n  PT.PrimaryNavigation.closeNav();\r\n  PT.PrimaryNavigation.checkIfIsLargeInDesktop();\r\n  PT.PrimaryNavigation.activateMobileMenu();\r\n});\r\n/*\r\n===================================\r\nPT.PrimaryNavigation\r\n===================================\r\n*/\r\nPT.PrimaryNavigation = {\r\n  Variables: {\r\n    triggerBtn: jQuery('.js-mobile-nav-trigger'),\r\n    hideBtn: jQuery('.js-mobile-nav-hide'),\r\n    search: jQuery('.js-search-trigger'),\r\n    toggleSubnav: jQuery('.js-toggle-nav'),\r\n    maxWidth:790\r\n  },\r\n\r\n  activateMobileMenu: function() {\r\n    if (jQuery(\".header__navigation .level-1\").children().length > 0) {\r\n      jQuery(\".js-mobile-nav-trigger\").css(\"display\", \"block\");\r\n    }\r\n  },\r\n\r\n  menuWidth: function () {\r\n    \r\n    var sWidth = 0;\r\n    \r\n    jQuery('.primary-navigation .level-2 > li').each(function () {\r\n      sWidth += jQuery(this).width();\r\n    });\r\n    if (sWidth > PT.PrimaryNavigation.Variables.maxWidth) {\r\n      jQuery(\".header\").addClass(\"mobile\").removeClass(\"desktop\");\r\n    } else {\r\n      jQuery(\".header\").removeClass(\"mobile\").addClass(\"desktop\");\r\n    }\r\n  },\r\n  moveLanguageControls: function() {\r\n    \r\n  },\r\n\r\n  toggleCanvas: function () {\r\n\r\n    PT.PrimaryNavigation.Variables.triggerBtn.on('click', function (event) {\r\n\r\n      event.preventDefault();\r\n      var oThis = jQuery(this);\r\n      oThis.toggleClass('open');\r\n\r\n      var lang = jQuery(\".language-controls\");\r\n\r\n      var isOpen = jQuery(this).hasClass('open') ? true : false;\r\n      var canvas = jQuery('.primary-navigation .level-1');\r\n      var $elementsToHide = jQuery('.below-header, .above-content, .regions, .footer, .navigation-module');\r\n\r\n      jQuery('li.active .level-2').each(function () {\r\n          jQuery(this).closest('li').find('.js-toggle-nav').addClass('open');\r\n        \r\n      });\r\n\r\n      if (isOpen) {\r\n        canvas.velocity('slideDown', 200, function () {\r\n          $elementsToHide.hide();\r\n          oThis.hide();\r\n          PT.PrimaryNavigation.Variables.hideBtn.show();\r\n          PT.PrimaryNavigation.Variables.search.hide();\r\n          jQuery(\".top-header\").addClass(\"open\");\r\n          jQuery(\"ul.level-1\").append(lang);\r\n          jQuery(\"ul.level-1 .language-controls\").wrap(\"<li class='lang'/>\");\r\n        });\r\n      } else {\r\n        canvas.velocity('slideUp', 200, function () {\r\n          $elementsToHide.show();\r\n          jQuery(\".top-header\").removeClass(\"open\");\r\n        });\r\n      }\r\n    });\r\n\r\n\r\n  },\r\n\r\n  toggleSubItems: function () {\r\n\r\n    PT.PrimaryNavigation.Variables.toggleSubnav.on('click', function (event) {\r\n\r\n      var parent = jQuery(this).closest(\"li\"),\r\n          lvl1LinkSpan = jQuery('.level-1 span'),\r\n          lvl1Li = jQuery('.level-1 li');\r\n\r\n      event.preventDefault();\r\n\r\n      if(parent.hasClass('active')) {\r\n\t\t\t\tparent.removeClass('active');\r\n\t\t\t\tjQuery(this).removeClass('open');\r\n\t\t\t} else {\r\n\t\t\t\tparent.addClass('active');\r\n\t\t\t\tjQuery(this).addClass('open');\r\n\t\t\t}\r\n\r\n      lvl1LinkSpan.not($(this)).removeClass('open');\r\n      lvl1Li.not($(this).closest(\"li\")).removeClass('active');\r\n\r\n      var isOpen = jQuery(this).hasClass('open') ? true : false,\r\n          canvas = jQuery(this).parent().next();\r\n\r\n      if (isOpen) {\r\n        canvas.velocity('slideDown', 200);\r\n      } else {\r\n        canvas.velocity('slideUp', 200);\r\n      }\r\n    });\r\n  },\r\n\r\n  closeNav: function () {\r\n\r\n    PT.PrimaryNavigation.Variables.hideBtn.on('click', function (event) {\r\n      event.preventDefault();\r\n      jQuery(this).hide();\r\n\r\n      PT.PrimaryNavigation.Variables.triggerBtn.trigger('click');\r\n      PT.PrimaryNavigation.Variables.triggerBtn.show();\r\n      PT.PrimaryNavigation.Variables.search.show();\r\n    });\r\n  },\r\n\r\n  checkIfIsLargeInDesktop: function () {\r\n\r\n    if (jQuery('.primary-navigation').hasClass('has-children')) {\r\n      jQuery('.identity-module').addClass('js-move-down');\r\n    }\r\n  },\r\n\r\n  hideIcons: function () {\r\n\r\n    jQuery('.primary-navigation .level-1 li').each(function () {\r\n     if (jQuery(this).find('.level-2').length === 0) {\r\n       jQuery(this).find('.icon-plus').hide();\r\n     }\r\n    });\r\n  }\r\n};\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: 'tablet',\r\n      enter: function () {\r\n        PT.PrimaryNavigation.menuWidth();\r\n      },\r\n      exit: function () {\r\n        PT.PrimaryNavigation.menuWidth();\r\n      }\r\n    }\r\n]);"},function(t,e,n){n(0)(n(169)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/profile.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery(\'body\').hasClass(\'pageedit\')) {\r\n    \r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.Profile\r\n===================================\r\n*/\r\nPT.Profile = {\r\n\r\n  Mobile: function () {\r\n\r\n    if(jQuery(".employee-profile").length) {\r\n      var first = jQuery(".employee-profile").find(".employee-profile__image").first().detach();\r\n      var last = jQuery(".employee-profile").find(".employee-profile__information").last();\r\n      first.insertAfter(last)\r\n      \r\n    }\r\n  },\r\n  Other: function () {\r\n    \r\n    if (jQuery(".employee-profile").length) {\r\n      var first = jQuery(".employee-profile").find(".employee-profile__information").first().detach();\r\n      var last = jQuery(".employee-profile").find(".employee-profile__image").last();\r\n      first.insertAfter(last)\r\n\r\n    }\r\n  }\r\n};\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: \'handheld\',\r\n      enter: function () {\r\n        PT.Profile.Mobile();\r\n      },\r\n      exit: function () {\r\n        PT.Profile.Other();\r\n      }\r\n    }\r\n]);\r\n\r\n'},function(t,e,n){n(0)(n(171)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/querystring.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.Querystring\r\n===================================\r\n*/\r\nPT.Querystring = {\r\n\tget: function (name) {\r\n    name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n    var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)'),\r\n        results = regex.exec(location.search);\r\n\r\n    return results === null ? null : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n  },\r\n\r\n\tgetAll: function () {\r\n    var vars = [],\r\n        hashes = location.search.substring(1).split('&'),\r\n        length = hashes.length;\r\n\r\n    if (hashes[0] == '' && length == 1) {\r\n      return null;\r\n    } else {\r\n      (function () {\r\n        var i = 0;\r\n\r\n        for (; i < length; i++) {\r\n          var hash = hashes[i].split('=');\r\n          vars[hash[0]] = decodeURIComponent(hash[1]);\r\n        }\r\n      })();\r\n\r\n      return vars;\r\n    }\r\n  }\r\n};"},function(t,e,n){n(0)(n(173)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/related.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n/*\r\n===================================\r\nPT.Related\r\n===================================\r\n*/\r\nPT.Related = {\r\n  /*\r\n  ===================================\r\n  Variables\r\n  ===================================\r\n  */\r\n  Variables: {\r\n    relatedListHidden: jQuery('.module-item', '.related-module-container')\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Handheld: function () {\r\n    PT.Related.Variables.relatedListHidden.each(function (index) {\r\n      jQuery(this).removeClass('regular').addClass('reverse');\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Tablet: function () {\r\n    PT.Related.Variables.relatedListHidden.each(function (index) {\r\n      jQuery(this).removeClass('regular').addClass('reverse');\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Desktop: function () {\r\n    PT.Related.Variables.relatedListHidden.each(function (index) {\r\n      if ((index % 4) < 2) {\r\n        jQuery(this).removeClass('regular').addClass('reverse');\r\n      } else {\r\n        jQuery(this).removeClass('reverse').addClass('regular');\r\n      }\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Huge: function () {\r\n    PT.Related.Variables.relatedListHidden.each(function (index) {\r\n      if ((index % 6) < 3) {\r\n        jQuery(this).removeClass('regular').addClass('reverse');\r\n      } else {\r\n        jQuery(this).removeClass('reverse').addClass('regular');\r\n      }\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Error\r\n  ===================================\r\n  */\r\n  Error: function (elem) {\r\n\r\n  },\r\n  /*\r\n  ===================================\r\n  Reset\r\n  ===================================\r\n  */\r\n  Reset: function () {\r\n\r\n  }\r\n};\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    //PT.Related.Setup();\r\n  }\r\n});\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: ['handheld'],\r\n      enter: function () {\r\n        PT.Related.Reflow_Handheld('handheld');\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'tablet',\r\n      enter: function () {\r\n        PT.Related.Reflow_Tablet('tablet');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'desktop',\r\n      enter: function () {\r\n        PT.Related.Reflow_Desktop('desktop');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'huge',\r\n      enter: function () {\r\n        PT.Related.Reflow_Huge('huge');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    }\r\n]);"},function(t,e,n){n(0)(n(175)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/search-global.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.Search.Toggle();\r\n    PT.Search.SearchByEnter();\r\n  }\r\n});\r\njQuery(window).load(function () {\r\n  \r\n});\r\n/*\r\n===================================\r\nPT.Search\r\n===================================\r\n*/\r\nPT.Search = {\r\n  Variables: {\r\n    globalSearch: jQuery('.js-search-global'),\r\n    searchField: jQuery('.js-search-global-input'),\r\n    showSearch: jQuery('.js-search-trigger'),\r\n    hideSearch: jQuery('.js-hide-search'),\r\n    pageWindow: jQuery(window),\r\n    page: 1\r\n  },\r\n\r\n  Toggle: function () {\r\n\r\n    PT.Search.Variables.showSearch.click(function (e) {\r\n      e.preventDefault();\r\n      PT.Search.Variables.globalSearch.addClass('active');\r\n      PT.Search.Variables.searchField.focus();\r\n    });\r\n\r\n    PT.Search.Variables.hideSearch.click(function (e) {\r\n      e.preventDefault();\r\n      PT.Search.Variables.globalSearch.removeClass('active');\r\n      PT.Search.Variables.searchField.val('');\r\n    });\r\n\r\n    PT.Search.Variables.searchField.focusout(function() {\r\n      PT.Search.Variables.globalSearch.removeClass('active');\r\n      PT.Search.Variables.searchField.val('');\r\n    });\r\n  },\r\n  SearchByEnter: function () {\r\n    jQuery(PT.Search.Variables.searchField).keyup(function (e) {\r\n      if (e.keyCode === 13) {\r\n        PT.Search.ClearSearch();\r\n        PT.Search.Search(PT.Search.Variables.page);\r\n      }\r\n    });\r\n  }\r\n};\r\n"},function(t,e,n){n(0)(n(177)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/slides-arrow.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.SlidesArrow\r\n===================================\r\n*/\r\nPT.SlidesArrow = {\r\n  init: function () {\r\n    PT.SlidesArrow.bindings();\r\n  },\r\n\r\n  bindings: function () {\r\n    document.getElementById("campaign-module__down-arrow").onclick = PT.SlidesArrow.arrowClick;\r\n  },\r\n\r\n  arrowClick: function (e) {\r\n    var header = document.querySelector(".top-header > .row");\r\n    var bodyRect = document.body.getBoundingClientRect(),\r\n        slides = document.getElementById("slides"),\r\n        slidesRect = slides.getBoundingClientRect(),\r\n        offset = (slidesRect.top - bodyRect.top) + slides.clientHeight - (header.clientHeight) + 5;\r\n\r\n    $("html, body").animate({\r\n      scrollTop: offset\r\n    }, 500);\r\n  }\r\n}\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nif (document.getElementById("campaign-module__down-arrow") !== null) {\r\n  PT.SlidesArrow.init();\r\n}'},function(t,e,n){n(0)(n(179)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/store.js")},function(t,e){t.exports='/*\n===================================\nPentia (PT) Namespace\n===================================\n*/\nvar PT = PT || {};\n\n/*\n===================================\nPT.Store\n===================================\n*/\nPT.Store = {\n    filtering: function(operation, parameters, isMock) {\n        // Predefined values\n\t\tisMock = typeof isMock !== "undefined" ? isMock : false;\n\t\t\n        switch (operation) {\n            case "search":\n                if (isMock) {\n                    return PT.Mocks.filter;\n                } else {\n                    return jQuery.ajax({\n                        type: "GET",\n                        url: "/filteringsearch.json",\n                        data: {\n                            sr: parameters.searchRoot,\n                            as: parameters.autoSearch,\n                            no: parameters.numberToShow,\n                            sb: parameters.sortBy,\n                            so: parameters.sortOrder,\n                            rs: parameters.resultStyling,\n                            it: this.__createCommaSeparatedList(parameters.includedTemplates),\n                            et: this.__createCommaSeparatedList(parameters.excludedTemplates),\n                            ic: this.__createCommaSeparatedList(parameters.includedContent),\n                            ics: this.__createCommaSeparatedList(parameters.includedContentNoSubtree),\n                            ec: this.__createCommaSeparatedList(parameters.excludedContent),\n                            tx: this.__createCommaSeparatedList(parameters.availableTaxonomy),\n                            stx: this.__createCommaSeparatedList(parameters.selectedTaxonomy),\n                            txg: this.__createCommaSeparatedList(parameters.taxonomyGroups),\n                            la: parameters.language,\n                            q: parameters.searchString,\n                            start: parameters.startPost,\n                            count: parameters.count\n                        }\n                    });\n                }\n        }\n\n        return null;\n    },\n\n\tsearch: function (operation, parameters, isMock) {\n\t\t// Predefined values\n\t\tisMock = typeof isMock !== "undefined" ? isMock : false;\n\t\tvar direction = parameters.d != null && parameters.d != ""  ? parameters.d : this.__createCommaSeparatedList(parameters.direction);\n\t\tvar education = parameters.ud != null && parameters.ud != ""  ? parameters.ud : this.__createCommaSeparatedList(parameters.education);\n\t\t// What to do\n\t\tswitch (operation) {\n\t\t\tcase "search":\n\t\t\t\tif (isMock) {\n\t\t\t\t\treturn PT.Mocks.search;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// ajax\n\t\t\t\t\treturn jQuery.ajax({\n\t\t\t\t\t\ttype: "GET",\n\t\t\t\t\t\turl: "/facettedsearch.json",\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\td: direction,\n\t\t\t\t\t\t\ts: this.__createCommaSeparatedList(parameters.location),\n\t\t\t\t\t\t\tmc: this.__createCommaSeparatedList(parameters.moduleCategory),\n\t\t\t\t\t\t\tse: this.__createCommaSeparatedList(parameters.semester),\n\t\t\t\t\t\t\tects: this.__createCommaSeparatedList(parameters.ectsgroup),\n\t\t\t\t\t\t\tet: this.__createCommaSeparatedList(parameters.educationtype),\n\t\t\t\t\t\t\tpi: this.__createCommaSeparatedList(parameters.professionalInterest),\n\t\t\t\t\t\t\tth: this.__createCommaSeparatedList(parameters.themes),\n\t\t\t\t\t\t\tu: this.__createCommaSeparatedList(parameters.tutoringschedule),\n\t\t\t\t\t\t\tet_x: this.__createCommaSeparatedList(parameters.et_x),\n\t\t\t\t\t\t\tpi_x: this.__createCommaSeparatedList(parameters.pi_x),\n\t\t\t\t\t\t\tth_x: this.__createCommaSeparatedList(parameters.th_x),\n\t\t\t\t\t\t\tp: parameters.pageNo,\n\t\t\t\t\t\t\tps: parameters.pageSize,\n\t\t\t\t\t\t\tq: parameters.searchString,\n\t\t\t\t\t\t\tso: parameters.sortOption,\n\t\t\t\t\t\t\tfc: parameters.getFacets,\n\t\t\t\t\t\t\treq: parameters.req,\n\t\t\t\t\t\t\tud: education\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase "facet":\n\t\t\t\tif (isMock) {\n\t\t\t\t\treturn PT.Mocks.facet;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// ajax\n\t\t\t\t\treturn jQuery.ajax({\n\t\t\t\t\t\ttype: "GET",\n\t\t\t\t\t\turl: "/getallfacets.json",\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\td: direction,\n\t\t\t\t\t\t\ts: this.__createCommaSeparatedList(parameters.location),\n\t\t\t\t\t\t\tmc: this.__createCommaSeparatedList(parameters.moduleCategory),\n\t\t\t\t\t\t\tse: this.__createCommaSeparatedList(parameters.semester),\n\t\t\t\t\t\t\tects: this.__createCommaSeparatedList(parameters.ectsgroup),\n\t\t\t\t\t\t\tet: this.__createCommaSeparatedList(parameters.educationtype),\n\t\t\t\t\t\t\tpi: this.__createCommaSeparatedList(parameters.professionalInterest),\n\t\t\t\t\t\t\tth: this.__createCommaSeparatedList(parameters.themes),\n\t\t\t\t\t\t\tu: this.__createCommaSeparatedList(parameters.tutoringschedule),\n\t\t\t\t\t\t\tet_x: this.__createCommaSeparatedList(parameters.et_x),\n\t\t\t\t\t\t\tpi_x: this.__createCommaSeparatedList(parameters.pi_x),\n\t\t\t\t\t\t\tth_x: this.__createCommaSeparatedList(parameters.th_x),\n\t\t\t\t\t\t\tq: parameters.searchString,\n\t\t\t\t\t\t\treq: parameters.req,\n\t\t\t\t\t\t\tud: education\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\n\t},\n\n\t__createCommaSeparatedList: function (array) {\n\t\treturn typeof array !== "undefined" ? array.join(",") : "";\n\t}\n};'},function(t,e,n){n(0)(n(181)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/tabs.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.Tabs.Tabify();\r\n    \r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.Tabs\r\n===================================\r\n*/\r\nPT.Tabs = {\r\n\r\n  Variables: {\r\n    tabModule: jQuery('.module.tabs'),\r\n    tabModuleTitle: jQuery('.tabs h2'),\r\n    tabGroup: jQuery(\".tab-group\"),\r\n    tabContent: jQuery(\".tab-group .content\"),\r\n    tab: jQuery('.js-tab')\r\n  },\r\n\r\n  Tabify: function () {\r\n\r\n    var maxHeight = 0;\r\n\r\n    //Adjust height\r\n    PT.Tabs.Variables.tabGroup.each(function () {\r\n      if (jQuery(this).height() > maxHeight) {\r\n        maxHeight = jQuery(this).height();\r\n      }\r\n    });\r\n\r\n    PT.Tabs.Variables.tabModule.height(maxHeight + 41);\r\n\r\n    //Add class\r\n    PT.Tabs.Variables.tabModule.addClass('tabify');\r\n\r\n    // Add event listener\r\n    PT.Tabs.Variables.tab.on('click', function (event) {\r\n      event.preventDefault();\r\n      PT.Tabs.Variables.tab.removeClass('open');\r\n      jQuery(this).addClass('open');\r\n\r\n      var content = jQuery(this).next('.content');\r\n\r\n      PT.Tabs.Variables.tabContent.hide();\r\n      content.show();\r\n\r\n    });\r\n\r\n    //Click first tab\r\n    PT.Tabs.Variables.tab.first().click();\r\n  },\r\n\r\n\r\n  \r\n\r\n};\r\n\r\n\r\n\r\n\r\n"},function(t,e,n){n(0)(n(183)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/taxonomy.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n/*\r\n===================================\r\nPT.Taxonomy\r\n===================================\r\n*/\r\nPT.Taxonomy = {\r\n  /*\r\n  ===================================\r\n  Variables\r\n  ===================================\r\n  */\r\n  Variables: {\r\n    taxonomyListHidden: jQuery('.module-item', '.taxonomy-module-container')\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Handheld: function () {\r\n    PT.Taxonomy.Variables.taxonomyListHidden.each(function (index) {\r\n      jQuery(this).removeClass('caption-show-left').addClass('caption-show-right');\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Tablet: function () {\r\n    PT.Taxonomy.Variables.taxonomyListHidden.each(function (index) {\r\n      jQuery(this).removeClass('caption-show-left').addClass('caption-show-right');\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Desktop: function () {\r\n    PT.Taxonomy.Variables.taxonomyListHidden.each(function (index) {\r\n      if ((index % 4) < 2) {\r\n        jQuery(this).removeClass('caption-show-left').addClass('caption-show-right');\r\n      } else {\r\n        jQuery(this).removeClass('caption-show-right').addClass('caption-show-left');\r\n      }\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Reflow_Huge: function () {\r\n    PT.Taxonomy.Variables.taxonomyListHidden.each(function (index) {\r\n      if ((index % 6) < 3) {\r\n        jQuery(this).removeClass('caption-show-left').addClass('caption-show-right');\r\n      } else {\r\n        jQuery(this).removeClass('caption-show-right').addClass('caption-show-left');\r\n      }\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Error\r\n  ===================================\r\n  */\r\n  Error: function (elem) {\r\n    \r\n  },\r\n  /*\r\n  ===================================\r\n  Reset\r\n  ===================================\r\n  */\r\n  Reset: function () {\r\n\r\n  }\r\n};\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    //PT.Taxonomy.Setup();\r\n  }\r\n});\r\n\r\njRes.addFunc([\r\n    {\r\n      breakpoint: ['handheld'],\r\n      enter: function () {\r\n        PT.Taxonomy.Reflow_Handheld('handheld');\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'tablet',\r\n      enter: function () {\r\n        PT.Taxonomy.Reflow_Tablet('tablet');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'desktop',\r\n      enter: function () {\r\n        PT.Taxonomy.Reflow_Desktop('desktop');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    },\r\n    {\r\n      breakpoint: 'huge',\r\n      enter: function () {\r\n        PT.Taxonomy.Reflow_Huge('huge');\r\n      },\r\n      exit: function () {\r\n\r\n      }\r\n    }\r\n]);"},function(t,e,n){n(0)(n(185)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/three-part-video.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.ThreePartVideo\r\n===================================\r\n*/\r\nPT.ThreePartVideo = {\r\n  variables: {\r\n    filtersOpen: false\r\n  },\r\n\r\n  init: function () {\r\n    PT.ThreePartVideo.bindings();\r\n  },\r\n\r\n  bindings: function () {\r\n\r\n    // Vis ved åbning\r\n    $(".three-part-video__filter__sort-button").on("click", function () {\r\n      if (PT.ThreePartVideo.variables.filtersOpen) {\r\n        PT.ThreePartVideo.toggleFilters(false, this);\r\n      }\r\n      else {\r\n        PT.ThreePartVideo.toggleFilters(true, this);\r\n      }\r\n      \r\n      $(this).toggleClass("filter-open");\r\n    });\r\n\r\n    // Checkbokse changed\r\n    $(".three-part-video__filter__list__item > input[type=checkbox]").on("change", function (e) {\r\n      PT.ThreePartVideo.toggleItems(e, this);\r\n    });\r\n  },\r\n\r\n  toggleFilters: function (show, elm) {\r\n    var wrapper = $(elm).parents(":eq(1)");\r\n    PT.ThreePartVideo.variables.filtersOpen = show;\r\n\r\n\r\n    if (show) {\r\n      // vis elementet\r\n      wrapper.find(".three-part-video__filter__list").show();\r\n    }\r\n    else {\r\n      // skjul elementet og fjern mouseleave handleren for hovedelementet\r\n      wrapper.find(".three-part-video__filter__list").hide();\r\n    }\r\n  },\r\n\r\n  toggleItems: function (e, elm) {\r\n    var wrapper = $(elm).parents(":eq(4)"),\r\n        checkboxesWrap = $(elm).parents(":eq(1)"),\r\n        checkedCheckboxes = checkboxesWrap.find(".three-part-video__filter__list__item > input[type=checkbox]:checked");\r\n\r\n    // Remove or add class based on checked elements\r\n    if (checkedCheckboxes.length > 0) {\r\n      wrapper.find(".three-part-video__elements").removeClass("show-all-elements");\r\n    }\r\n    else {\r\n      wrapper.find(".three-part-video__elements").addClass("show-all-elements");\r\n    }\r\n\r\n    // Hide elements\r\n    wrapper.find(".three-part-video__elements__element").hide();\r\n\r\n    // Show elements\r\n    for (var i = 0; i < checkedCheckboxes.length; i++) {\r\n      var checkbox = $(checkedCheckboxes[i]);\r\n\r\n      wrapper.find(".three-part-video__elements__element").filter(function (e) {\r\n        return $(this).attr("data-filter").indexOf(checkbox.attr("id")) > -1;\r\n      }).show();\r\n    }\r\n  }\r\n}\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\nPT.ThreePartVideo.init();\r\n'},function(t,e,n){n(0)(n(187)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/tmh.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.TMH.ReplaceUrls();\r\n    PT.TMH.Popup();\r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.TMH\r\n===================================\r\n*/\r\nPT.TMH = {\r\n  Variables: {\r\n    prereq: jQuery(\".js-prereq\"),\r\n    popup: jQuery(\".tmh-popup\"),\r\n    ajaxLink: jQuery(\".tmh-ajax\"),\r\n  },\r\n\r\n  ReplaceUrls: function () {\r\n    //fancybox does not replace spaces in url - doing it manually\r\n    PT.TMH.Variables.ajaxLink.each(function () {\r\n      var url = jQuery(this).attr('href');\r\n      jQuery(this).attr('href', encodeURI(url) + \"  #course-content\");\r\n    });\r\n  },\r\n  Popup: function () {\r\n\r\n    PT.TMH.Variables.ajaxLink.fancybox({\r\n      wrapCSS: 'tmh-fancybox',\r\n      closeClick: false,\r\n      maxWidth: 700,\r\n      width: '70%'\r\n    });\r\n\r\n    PT.TMH.Variables.prereq.each(function () {\r\n      var popup = jQuery(this).next('.tmh-popup');\r\n      jQuery(this).fancybox({\r\n        content: popup,\r\n        closeClick: false,\r\n        wrapCSS: 'tmh-fancybox tmh-pre',\r\n        maxWidth: 320,\r\n        type: 'iframe',\r\n        ajax: {\r\n          dataFilter: function(data) {\r\n            return $(data).find('#course-content')[0];\r\n          }\r\n        }\r\n      })\r\n    });\r\n  },\r\n  Print: function () {\r\n    window.print();\r\n    //var prtContent = jQuery('#course-content').html();\r\n    //var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');\r\n    //WinPrint.document.write('<html><head><title>Print</title><link rel=\"stylesheet\" href=\"/Dist/Styles/VIA.css\"/></head><body>');\r\n    //WinPrint.document.write('<div class=\"course-content-print\">' + prtContent + '</div>');\r\n    //WinPrint.document.write('</body></html>');\r\n    ////WinPrint.document.close();\r\n    //WinPrint.focus();\r\n    //WinPrint.print();\r\n    //WinPrint.close();\r\n  }\r\n};\r\n\r\n\r\n\r\n"},function(t,e,n){n(0)(n(189)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/to-top.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery(\'body\').hasClass(\'pageedit\')) {\r\n    PT.Scroll.ToTop();\r\n  }\r\n});\r\n/*\r\n===================================\r\nPT.Scroll\r\n===================================\r\n*/\r\nPT.Scroll = {\r\n\r\n  ToTop: function () {\r\n\r\n    jQuery(window).scroll(function () {\r\n      if (jQuery(this).scrollTop() > 200) {\r\n        jQuery(".scrollToTop").addClass("scrollToTop--shown");\r\n      } else {\r\n        jQuery(".scrollToTop").removeClass("scrollToTop--shown");\r\n      }\r\n    });\r\n\r\n    //Click event to scroll to top\r\n    jQuery(".scrollToTop").click(function () {\r\n      jQuery("html, body").animate({ scrollTop: 0 }, 200);\r\n      return false;\r\n    });\r\n  }\r\n};\r\n\r\n\r\n\r\n'},function(t,e,n){n(0)(n(191)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/two-column.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.TwoColumn.init();\r\n});\r\n\r\n\r\n/*\r\n===================================\r\nPT.TwoColumn\r\n===================================\r\n*/\r\nPT.TwoColumn = {\r\n\t// Init, methods and events\r\n\tinit: function () {\r\n\t\tif(jQuery(".groups_two-columns").length > 0) {\r\n\t\t\tthis.bindings();\r\n\t\t\tthis.checkHeight();\r\n\t\t}\r\n\t},\r\n\t\r\n\tbindings: function () {\r\n\t\tthis.__bindTwoColumnToggles();\r\n\t\tjQuery(window).resize(function () {\r\n\t\t\tPT.TwoColumn.checkHeight();\r\n\t\t});\r\n\t},\r\n\r\n\t__bindTwoColumnToggles: function() {\r\n\t\tvar toggleButtons = jQuery(".groups_two-columns .groups_two-columns__button");\r\n\r\n\t\ttoggleButtons.on("click", function() {\r\n\t\t\tif (window.innerWidth > 992) {\r\n\t\t\t\tjQuery(this).parent().parent().toggleClass("groups_two-columns--expanded");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tjQuery(this).toggleClass("groups_two-columns__button--expanded");\r\n\t\t\t\tjQuery(this).parent().find(".groups_two-columns__inner").toggleClass("groups_two-columns__inner--expanded");\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t},\r\n\r\n\tcheckHeight: function () {\r\n\t\tvar contentElements = jQuery(".groups_two-columns__inner");\r\n\r\n\t\tcontentElements.each(function () {\r\n\t\t\tvar _this = jQuery(this);\r\n\t\t\tvar maxHeight = _this.outerHeight();\r\n\t\t\tvar fullHeight = _this.css("max-height", "none").outerHeight();\r\n\r\n\t\t\t_this.css("max-height", "");\r\n\r\n\t\t\tif (fullHeight > maxHeight) {\r\n\t\t\t\t_this.next(".groups_two-columns__button").show();\r\n\t\t\t\t_this.parent().removeClass("groups_two-columns__text--nobutton");\r\n\t\t\t} else {\r\n\t\t\t\t_this.next(".groups_two-columns__button").hide();\r\n\t\t\t\t_this.parent().addClass("groups_two-columns__text--nobutton");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};'},function(t,e,n){n(0)(n(193)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/view-more.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tPT.ViewMore.init();\r\n});\r\n\r\n/*\r\n===================================\r\nPT.ViewMore\r\n===================================\r\n*/\r\nPT.ViewMore = {\r\n\tproperties: {\r\n\t\tamountShown: 12\r\n\t},\r\n  init: function () {\r\n\t\tPT.ViewMore.bindings();\r\n  },\r\n\tbindings: function() {\r\n\t\tvar _this = this;\r\n\t\tvar elements = $(\"[data-component=\\\"view-more\\\"]\");\r\n\r\n\t\telements.on(\"click\", function() {\r\n\t\t\tvar baseClass = this.getAttribute(\"data-baseclass\"),\r\n\t\t\t\t\tunreadElements = $(\"#\" + this.getAttribute(\"data-expandcontainer\") + \" > .\" + baseClass + \"--hidden:lt(\" + PT.ViewMore.properties.amountShown + \")\");\r\n\r\n\t\t\t// Remove class\r\n\t\t\tunreadElements.removeClass(baseClass + \"--hidden\");\r\n\r\n\t\t\t// Remove button, if all elements are shown\r\n\t\t\tif (unreadElements.length < _this.properties.amountShown) {\r\n\t\t\t\tvar element = jQuery(this);\r\n\t\t\t\telement.off(\"click\");\r\n\t\t\t\telement.parent().remove();\r\n\t\t\t}\r\n\r\n\t\t\tPT.ViewMore.updateQuerystring(this.getAttribute(\"data-expandcontainer\"), baseClass);\r\n\t\t});\r\n\t},\r\n\tupdateQuerystring: function(container, baseClass) {\r\n\t\tvar currentUrl = window.location,\r\n\t\t\t\tnewUrl = currentUrl.pathname,\r\n\t\t\t\tquerystringArray = PT.Querystring.getAll(),\r\n\t\t\t\tquerystring = '',\r\n\t\t\t\tviewExists = false;\r\n\r\n\t\tif (querystringArray === null) {\r\n\t\t\tquerystring = '?view=' + $('#' + container + ' > .' + baseClass).not('.' + baseClass + '--hidden').length;\r\n\t\t} else {\r\n\t\t\tfor (var key in querystringArray) {\r\n\t\t\t\tif (key === 'view') {\r\n\t\t\t\t\tviewExists = true;\r\n\r\n\t\t\t\t\tif (querystring === '') {\r\n\t\t\t\t\t\tquerystring += '?view=' + $('#' + container + ' > .' + baseClass).not('.' + baseClass + '--hidden').length;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tquerystring += '&view=' + $('#' + container + ' > .' + baseClass).not('.' + baseClass + '--hidden').length;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (querystring === '') {\r\n\t\t\t\t\t\tquerystring += '?' + key + '=' + querystringArray[key];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tquerystring += '&' + key + '=' + querystringArray[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!viewExists) {\r\n\t\t\t\tquerystring += '&view=' + $('#' + container + ' > .' + baseClass).not('.' + baseClass + '--hidden').length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Set new url based on querystring input\r\n\t\tnewUrl += querystring;\r\n\r\n\t\tif (currentUrl.hash !== '') {\r\n\t\t\tnewUrl += currentUrl.hash;\r\n\t\t}\r\n\t\r\n\t\t// Replace state with new url\r\n\t\twindow.history.replaceState({}, null, newUrl);\r\n\t}\r\n};"},function(t,e,n){n(0)(n(195)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/vimeo-embed.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\tif (!jQuery('body').hasClass('pageedit')) {\r\n\t\tPT.VimeoEmbed.init();\r\n\t}\r\n});\r\n\r\n/*\r\n===================================\r\nPT.VimeoEmbed\r\n===================================\r\n*/\r\nPT.VimeoEmbed = {\r\n\t\r\n\tapiInjected: false,\r\n\r\n\t// Will contain a jQuery selection of the containers for vimeo videos\r\n\tcontainers: null,\r\n\r\n\tplayers: [],\r\n\t\r\n\t/**\r\n \t* Setup event listeners for the component\r\n \t*/\r\n\tsetupListeners: function setupListeners() {\r\n\r\n\t\t/**\r\n\t\t * Listen for clicks on the play button elements on the page\r\n\t\t */\r\n\t\tjQuery('.js-vimeo-embed-play').on('click', function () {\r\n\r\n\t\t\tvar player;\r\n\r\n\t\t\t\t// Locate the tag that contains the video\r\n\t\t\t\tvideo = jQuery(this).parent().find('[data-vimeo-id]'),\r\n\t\t\t\t// Get the video id\r\n\t\t\t\tvideoId = video.data('vimeo-id');\r\n\r\n\t\t\t// Use player already created\r\n\t\t\tif (PT.VimeoEmbed.players[videoId]) {\r\n\t\t\t\t\r\n\t\t\t\tplayer = PT.VimeoEmbed.players[videoId];\r\n\t\t\t}\r\n\t\t\t// Create a new instance of the Vimeo player\r\n\t\t\telse {\r\n\t\t\t\tplayer = new Vimeo.Player(video);\r\n\r\n\t\t\t\t// Store reference for later reuse\r\n\t\t\t\tPT.VimeoEmbed.players[videoId] = player;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (player) {\r\n\t\t\t\t// Start the video\r\n\t\t\t\tplayer.play();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Listen for clicks on the close icon on overlays on the page\r\n\t\t */\r\n\t\tjQuery('.js-vimeo-embed-close').on('click', function () {\r\n\r\n\t\t\tvar video = jQuery(this).parent().find('[data-vimeo-id]');\r\n\r\n\t\t\tvar player = new Vimeo.Player(video);\r\n\r\n\t\t\tif (player) {\r\n\t\t\t\t// Pause the video\r\n\t\t\t\tplayer.pause();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tinit: function() {\r\n\r\n\t\tvar videoId, videoUrl, apiUrl;\t\r\n\r\n\t\t// Inject the Vimeo player\r\n\t\tPT.VimeoEmbed.injectVimeoAPI();\r\n\r\n\t\t// Setup listeners to play/pause videos\r\n\t\tPT.VimeoEmbed.setupListeners();\r\n\t\t\r\n\t\tPT.VimeoEmbed.containers = jQuery('[data-component=\"vimeo-embed\"]');\r\n\r\n\t\tif (PT.VimeoEmbed.containers.length > 0) {\r\n\t\t\t\r\n\t\t\t// Loop over all found containers\r\n\t\t\tPT.VimeoEmbed.containers.each(function() {\r\n\t\t\t\tvar videoId = $(this).find('[data-vimeo-id]').data('vimeo-id');\r\n\r\n\t\t\t\t// Fetch vimeo video thumbnail\r\n\t\t\t\tPT.VimeoEmbed.getThumbnail(videoId, $(this));\t\r\n\r\n\t\t\t});\r\n\t\t\t\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Inject the Vimeo player code\r\n\t * @see https://github.com/vimeo/player.js\r\n\t */\r\n\tinjectVimeoAPI: function injectVimeoAPI() {\r\n\r\n\t\tif (!PT.VimeoEmbed.apiInjected) {\r\n\t\t\tvar tag = document.createElement('script');\r\n\r\n\t\t\ttag.id = 'vimeo-api';\r\n\t\t\ttag.src = 'https://player.vimeo.com/api/player.js';\r\n\r\n\t\t\tvar firstScriptTag = document.getElementsByTagName('script')[0];\r\n\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n\t\t\t//Indicate that we already injected the youtube script tag\r\n\t\t\tPT.VimeoEmbed.apiInjected = true;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Get thumbnail for the given video id\r\n\t * Requests oembed data for the video, and extracts the thumbnail url\r\n\t * \r\n\t * @param {string} videoId The id of the video to fetch\r\n\t */\r\n\tgetThumbnail: function getVideo(videoId, container) {\r\n\r\n\t\tjQuery.ajax({\r\n\t\t\turl: 'https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/' + videoId + '&callback=?',\r\n\t\t\tdataType: 'jsonp',\r\n\t\t\tcontentType: 'application/json+oembed'\r\n\t\t})\r\n\t\t.done(function(response) {\r\n\t\t\t\r\n\t\t\t// Add thumbnail\r\n\t\t\tPT.VimeoEmbed.embedThumbnail(response.thumbnail_url, container);\r\n\t\t})\r\n\t\t.fail(function(response) {\r\n\t\t\tPT.VimeoEmbed.errorMessage(videoId);\r\n\t\t});\r\n\t\t\r\n\t},\r\n\r\n\t/**\r\n\t * Set the src for the thumbnail\r\n\t * \r\n\t * @param {string} url The url for the thumbnail\r\n\t * @param {object} container jQuery object with the container\r\n\t */\r\n\tembedThumbnail: function embedThumbnail(url, container) {\r\n\t\tif (container) {\r\n\t\t\tcontainer.find('.js-vimeo-embed-thumbnail').eq(0).attr('src', url);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Output error message to console if video was not returned correctly\r\n\t * \r\n\t * @param {string} videoId The id of the vimeovideo\r\n\t */\r\n\terrorMessage: function errorMessage(videoId) {\r\n\t\tif (window.console) {\r\n\t\t\tconsole.error('Vimeo component: Video with id:' + videoId + ' not found');\r\n\t\t}\r\n\t}\r\n\r\n};\r\n"},function(t,e,n){n(0)(n(197)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/vok-list-to-filter.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n/*\r\n===================================\r\nPT.VOKListToFilter\r\n===================================\r\n*/\r\nPT.VOKListToFilter = {\r\n  /*\r\n  ===================================\r\n  Variables\r\n  ===================================\r\n  */\r\n  Variables: {\r\n    list: jQuery('.js-vok-limited-list')\r\n  },\r\n  /*\r\n  ===================================\r\n  Setup\r\n  ===================================\r\n  */\r\n  Setup: function () {\r\n    if (PT.VOKListToFilter.Variables.list.children('li').length > 10) {\r\n      PT.VOKListToFilter.CreateDropdown();\r\n    }\r\n  },\r\n  /*\r\n  ===================================\r\n  CreateDropdown\r\n  ===================================\r\n  */\r\n  CreateDropdown: function () {\r\n    var vokModule = jQuery('<div/>').addClass('vok-module vok-dynamic-list');\r\n    var filterModule = jQuery('<div/>').addClass('filter-module');\r\n    var col = jQuery('<div/>').addClass('col-xs-12 col-sm-12 col-md-8 col-lg-5');\r\n    var select = jQuery('<div/>').addClass('select js-select');\r\n    var selected = jQuery('<span/>').addClass('selected').data('filter', 'default-list').data('default', 'Vælg en retning').text('Vælg en retning');\r\n    var selectedArrow = jQuery('<span/>').addClass('js-toggler icon-arrow-down');\r\n\r\n    selected.appendTo(select);\r\n    selectedArrow.appendTo(select);\r\n    select.appendTo(col);\r\n    col.appendTo(filterModule);\r\n    filterModule.appendTo(vokModule);\r\n    vokModule.insertAfter(PT.VOKListToFilter.Variables.list);\r\n    PT.VOKListToFilter.Variables.list.children('li').removeClass('vok-list-item');\r\n    PT.VOKListToFilter.Variables.list.addClass('select-filter js-filter').removeClass('vok-list').data('filter', 'default-list').detach().appendTo(col);\r\n\r\n\r\n    select.click(function () {\r\n      var list = jQuery(this);\r\n      var isOpen = list.find('.js-toggler').hasClass('icon-arrow-up');\r\n      if (isOpen) {\r\n        list.find('.js-toggler').removeClass('icon-arrow-up');\r\n        list.next('ul').hide();\r\n      } else {\r\n        list.find('.js-toggler').addClass('icon-arrow-up');\r\n        list.next('ul').show();\r\n      }\r\n    });\r\n  },\r\n  /*\r\n  ===================================\r\n  Reset\r\n  ===================================\r\n  */\r\n  Reset: function () {\r\n\r\n  }\r\n};\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery('body').hasClass('pageedit')) {\r\n    PT.VOKListToFilter.Setup();\r\n  }\r\n});"},function(t,e,n){n(0)(n(199)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/vok.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n  if (!jQuery(\'body\').hasClass(\'pageedit\')) {\r\n    PT.VOK.TabifyVok();\r\n    PT.VOK.LoadMore();\r\n    //PT.VOK.ClearSessionStorage();\r\n    PT.VOK.CheckSessionStorage();\r\n  }\r\n});\r\n\r\n\r\n/* Dynamically loaded items START */\r\n\r\njQuery(\'body\').on(\'click\', \'.tab-group-item\', function (e) {\r\n  sessionStorage.setItem(PT.VOK.Variables.sessionStorageItem, jQuery(this).index());\r\n});\r\n\r\njQuery(\'body\').on(\'click\', \'.js-voktab\', function (event) {\r\n  event.preventDefault();\r\n\r\n  var index = jQuery(this).attr(\'data-index\');\r\n  jQuery(".js-voktab").removeClass(\'open\');\r\n  jQuery(this).addClass(\'open\');\r\n\r\n  var content = jQuery(".vok-tab-group").eq(index);\r\n\r\n  jQuery(".vok-tab-group").removeClass("active-tab-group").hide();\r\n  content.addClass("active-tab-group").show();\r\n\r\n  sessionStorage.setItem(PT.VOK.Variables.sessionStorageTab, index);\r\n});\r\n\r\n/* Dynamically loaded items END */\r\n\r\n\r\n/*\r\n===================================\r\nPT.VOK\r\n===================================\r\n*/\r\nPT.VOK = {\r\n  Variables: {\r\n    voktabModule: jQuery(\'.vok-result-list\'),\r\n    voktabGroup: jQuery(".vok-tab-group"),\r\n    voktabContent: jQuery(".vok-tab-group .content"),\r\n    voktab: jQuery(\'.js-voktab\'),\r\n    vokCount: jQuery(\'.vok-tab-group .count-wrapper\'),\r\n    vokCountDigits: jQuery("vok-tab-group .count-digits"),\r\n    voktabWrap: jQuery(".vok-tabs .tab-wrap"),\r\n    vokTabWrapWidth: 0,\r\n    vokTabOpen: 0,\r\n    sessionStorageTab: "vok-tab-" + encodeURI(window.location),\r\n    sessionStorageItem: "vok-item-" + encodeURI(window.location),\r\n    manualClick: true\r\n  },\r\n\r\n  ClearSessionStorage: function () {\r\n\r\n    if (jQuery("[class*=vok-]").length <= 0) {\r\n      sessionStorage.clear();\r\n    }\r\n\r\n  },\r\n\r\n  CheckSessionStorage: function () {\r\n\r\n    if (PT.VOK.Variables.voktabModule.length) {\r\n      var tab = sessionStorage.getItem(PT.VOK.Variables.sessionStorageTab);\r\n      var item = sessionStorage.getItem(PT.VOK.Variables.sessionStorageItem);\r\n\r\n      //Set active tab\r\n      if (tab === null) {\r\n        jQuery(".js-voktab").first().click();\r\n      } else {\r\n        jQuery(\'.js-voktab[data-index="\' + tab + \'"]\').click();\r\n      }\r\n\r\n      //Load items\r\n      PT.VOK.ScrollToActiveItem();\r\n    }\r\n  },\r\n\r\n  ScrollToActiveItem: function () {\r\n\r\n    if (PT.VOK.Variables.voktabModule.length) {\r\n      var item = sessionStorage.getItem(PT.VOK.Variables.sessionStorageItem);\r\n      \r\n      if (item != null) {\r\n\r\n        var itemIndex = parseInt(item) + 1;\r\n\r\n        if (parseInt(item) + 1 > parseInt(jQuery(\'.active-tab-group .tab-group-item\').length)) {\r\n          PT.VOK.Variables.manualClick = false;\r\n          jQuery(".active-tab-group .js-see-more").click();\r\n        } else {\r\n          PT.VOK.Variables.manualClick = true;\r\n          jQuery(\'html, body\').animate({ scrollTop: jQuery(\'.tab-group-item:nth-child(\' + itemIndex + \')\').offset().top - jQuery(".primary-navigation").height() }, 400);\r\n        }\r\n      }\r\n    }\r\n  },\r\n\r\n  IsSessionStored: function () {\r\n    var isSet = false;\r\n    if (PT.VOK.Variables.voktabModule.length) {\r\n      var item = sessionStorage.getItem(PT.VOK.Variables.sessionStorageItem);\r\n\r\n      if (item != null) {\r\n        isSet = true;\r\n      }\r\n    }\r\n    return isSet;\r\n  },\r\n\r\n  TabifyVok: function () {\r\n    //Add class\r\n    PT.VOK.Variables.voktabModule.addClass(\'tabify\');\r\n\r\n    PT.VOK.Variables.voktabGroup.each(function (index) {\r\n      if (parseInt(jQuery(this).find(\'.count-digits\').text()) > 0) {\r\n        PT.VOK.Variables.vokTabOpen = index;\r\n        return false;\r\n      }\r\n    });\r\n\r\n    if (PT.VOK.Variables.voktabGroup.length > 1) {\r\n      PT.VOK.AddTabs();\r\n    }\r\n\r\n    if (PT.VOK.Variables.vokTabOpen > 0) {\r\n      jQuery(\'.js-voktab[data-index="\' + PT.VOK.Variables.vokTabOpen + \'"]\').click();\r\n    }\r\n  },\r\n\r\n  AddTabs: function () {\r\n    PT.VOK.Variables.voktabGroup.each(function (index) {\r\n      var tab = jQuery(\'<span data-index="\' + index + \'"></span>\').addClass("title js-voktab col-xs-3 col-sm-2");\r\n      var count = jQuery(this).find(".count-wrapper").html();\r\n\r\n      tab.html(count);\r\n      PT.VOK.Variables.voktabWrap.append(tab);\r\n    });\r\n\r\n    PT.VOK.AdjustTabWrap(true);\r\n  },\r\n\r\n  ToggleLink: function () {\r\n    PT.VOK.Variables.voktabGroup.each(function () {\r\n      var count = jQuery(this).find(".count-digits").text();\r\n\r\n      if (count === \'0\') {\r\n        jQuery(this).find(".see-more-wrap").hide();\r\n      }\r\n    });\r\n  },\r\n\r\n  LoadMore: function () {\r\n    jQuery(".js-see-more").each(function () {\r\n      var list = jQuery(this).closest(".vok-list");\r\n      var link = jQuery(this);\r\n      var wrap = link.closest(".see-more-wrap");\r\n\r\n      link.click(function (e) {\r\n        e.preventDefault();\r\n        var url = link.attr("href");\r\n        \r\n        jQuery.getJSON(url, function (data) {\r\n\r\n          wrap.detach();\r\n          jQuery.each(data.ItemsAsHtml, function (key, val) {\r\n            list.append(val);\r\n          });\r\n          list.append(wrap);\r\n\r\n          if (data.Next != null) {\r\n            link.attr("href", data.Next);\r\n          } else {\r\n            link.attr("href", "#");\r\n            wrap.hide();\r\n          }\r\n        }).done(function () {\r\n          if (!PT.VOK.Variables.manualClick) {\r\n            PT.VOK.ScrollToActiveItem();\r\n          }\r\n        });\r\n      });\r\n    });\r\n  },\r\n\r\n  AdjustTabWrap: function (small) {\r\n    var width = 0;\r\n    jQuery(\'.js-voktab\').each(function () {\r\n      width += jQuery(this).outerWidth();\r\n    });\r\n    if (width > jQuery(window).width()) {\r\n      PT.VOK.Variables.voktabWrap.width(width);\r\n    }\r\n  }\r\n};'},function(t,e,n){n(0)(n(201)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Components/youtube-embed.js")},function(t,e){t.exports="/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nInitialize\r\n===================================\r\n*/\r\njQuery(document).ready(function () {\r\n\r\n    if (!jQuery('body').hasClass('pageedit')) {\r\n\r\n        /**\r\n         *  10/10 - 2018 - Jan Klemmensen: Define a promise to be resolved when the external YouTube API has been loaded and is ready for the script\r\n         */\r\n        var promise = new Promise(function (resolve) {\r\n\r\n            var scripts = document.getElementsByTagName(\"script\");\r\n            var scriptsAlreadyExists = false;\r\n\r\n            for (var i = 0; i < scripts.length; i++) {\r\n\r\n                if (scripts[i].getAttribute('src') == 'https://www.youtube.com/iframe_api') {\r\n\r\n                    scriptsAlreadyExists = true;\r\n                }\r\n            }\r\n\r\n            /**\r\n             *  Inject the YouTube API script to the page, as it is not available\r\n             */\r\n            if (!scriptsAlreadyExists) {\r\n                \r\n                var tag = document.createElement('script');\r\n                var firstScriptTag = document.getElementsByTagName('script')[0];\r\n\r\n                tag.src = \"https://www.youtube.com/iframe_api\";\r\n                tag.async = true;\r\n\r\n                firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);               \r\n\r\n                tag.onload = function () {\r\n\r\n                    resolve('API has been loaded');\r\n                }\r\n            }\r\n            resolve('API is already loaded');\r\n        });\r\n\r\n        /**\r\n         *  Loop through the players once the promise has been fulfilled -> A timeout is set because we need to have the GA script loaded and ready\r\n         *  Ideealy, make this a part of the promise so we are not guessing on external scripts loadtime\r\n         */\r\n        promise.then(function (result) {\r\n\r\n            var counter = 0;\r\n\r\n            var checkForDependenciesInterval = setInterval(function () {\r\n\r\n                // It's hopeless, bail out\r\n                if (counter === 200) {\r\n\r\n                    clearInterval(checkForDependenciesInterval);\r\n                }\r\n                \r\n                // Check here for whatever other dependencies needs to be available before we can safely build the videos\r\n                if (window.YT) {\r\n\r\n                    PT.YoutubeEmbed.containers = jQuery('[data-component=\"youtube-embed\"]');\r\n\r\n                    if (PT.YoutubeEmbed.containers.length > 0) {\r\n\r\n                        PT.YoutubeEmbed.init();\r\n                    }\r\n\r\n                    clearInterval(checkForDependenciesInterval);\r\n                }\r\n                counter++;\r\n\r\n            }, 100 );\r\n\r\n        }, function (error) {\r\n            // It didnt go very well at all.. - For some reason the YouTube API didnt load - Error handling can be made here\r\n        });\r\n    }\r\n});\r\n\r\n\r\n/**\r\n *  Function nessesary for the Youtube API to start. Without it, the Youtube players wont initialize correctly - It is intentionally left empty\r\n */\r\nwindow.onYouTubeIframeAPIReady = function onYouTubeIframeAPIReady() {}\r\n\r\n\r\n/*\r\n===================================\r\nPT.YoutubeEmbed\r\n===================================\r\n*/\r\nPT.YoutubeEmbed = {\r\n\r\n    /**\r\n     *  Will contain a jQuery selection of the containers for youtube videos\r\n     */\r\n    containers: null,\r\n\r\n    /**\r\n     *  An array of created youtube player configurations\r\n     */\r\n    players: [],\r\n\r\n\t/**\r\n\t *  Setup event listeners for the component -> Listen for clicks on the play button elements on the page -> Listen for clicks on the close icon on overlays on the page\r\n\t */\r\n    setupListeners: function setupListeners() {\r\n\r\n        jQuery('.js-youtube-embed-play').on('click', function () {\r\n\r\n            var player = PT.YoutubeEmbed.getYTPlayer($(this));\r\n            if (player) {\r\n                player.playVideo();\r\n            }\r\n            else {\r\n                console.log( 'No player attached' );\r\n            }\r\n        });\r\n\r\n        jQuery('.js-youtube-embed-close').on('click', function () {      \r\n            \r\n            var player = PT.YoutubeEmbed.getYTPlayer($(this));            \r\n            if (player) {\r\n                player.pauseVideo();\r\n            }\r\n        });\r\n\r\n    },\r\n\r\n\t/**\r\n\t *  Initialize the component -> Setup event listeners on play buttons and close icons -> Attach a youtube api player to each youtube component on the page\r\n\t */\r\n    init: function () {\r\n\r\n        var videoId, videoUrl, apiUrl;\r\n\r\n        PT.YoutubeEmbed.setupListeners();\r\n\r\n        PT.YoutubeEmbed.containers.each(function () {\r\n\r\n            PT.YoutubeEmbed.attachPlayer($(this));\r\n        });\r\n    },\r\n\r\n\t/**\r\n\t *  Attach a YouTube API player for a YouTube-Embed component -> Store it in our players array\r\n\t */\r\n    attachPlayer: function attachPlayer(container) {\r\n\r\n        var playerId = container.find('.js-youtube-embed-target iframe').attr('id');\r\n        PT.YoutubeEmbed.players[playerId] = new window.YT.Player(playerId);\r\n    },\r\n\r\n\t/**\r\n \t *  Lookup a youtube player given a clicked element -> Locate the parent container, that contains the data attributes -> Return the player for the given id, dom id's are prefixed with yt-\r\n \t */\r\n    getYTPlayer: function getYTPlayer(clickedElement) {\r\n\r\n        var container = clickedElement.closest('[data-component=\"youtube-embed\"]');\r\n        var player = PT.YoutubeEmbed.players['yt-' + container.data('video-id')];\r\n\r\n        return player;\r\n    }\r\n};"},function(t,e,n){var r={"./search.js":203};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=202},function(t,e,n){n(0)(n(204)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/VIAHJE/src/project/design/dev/scripts/Mocks/search.js")},function(t,e){t.exports='/*\r\n===================================\r\nPentia (PT) Namespace\r\n===================================\r\n*/\r\nvar PT = PT || {};\r\n\r\n/*\r\n===================================\r\nPT.Mocks\r\n===================================\r\n*/\r\nPT.Mocks = {\r\n    filter: {\r\n\r\n    },\r\n\r\n\tsearch: {\r\n\t\t"Results": [\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "4a9188f927f34f90943f24833954944b",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 1",\r\n\t\t\t\t"Title": "Element 1"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "0ae66c1eb20848649ff6c45c50abf28e",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 2",\r\n\t\t\t\t"Title": "Element 2"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "24010d0e6dd5443d9b51c2039bc04c93",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 3",\r\n\t\t\t\t"Title": "Element 3"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "acc7051051b649539b24daacd9cb732f",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 4",\r\n\t\t\t\t"Title": "Element 4"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "1d06e59124d144cf88fc70b57362b532",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 5",\r\n\t\t\t\t"Title": "Element 5"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "883c71865f4a43bc860b55948ffe45ce",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 6",\r\n\t\t\t\t"Title": "Element 6"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "a8a2e899582e4a81926e11d8820ada3f",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 7",\r\n\t\t\t\t"Title": "Element 7"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "a24f36cedbd148ef90e41047b6d546ba",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 8",\r\n\t\t\t\t"Title": "Element 8"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "0b506a071757467b8a0abc2ac0d3ff54",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 9",\r\n\t\t\t\t"Title": "Element 9"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"ItemId": "53fda7d5c2f24f52a7540b2b875dae83",\r\n\t\t\t\t"ItemType": "Modul",\r\n\t\t\t\t"Teaser": "Dette er en teaser for element 10",\r\n\t\t\t\t"Title": "Element 10"\r\n\t\t\t}\r\n\t\t],\r\n\t\t"Title": "Resultat overskrift",\r\n\t\t"TotalSearchResults": 10\r\n\r\n\t},\r\n\tfacet: {\r\n\t\t"Facets": [\r\n\t\t\t{\r\n\t\t\t\t"FacetId": "4a9188f927f34f90943f24833954944b",\r\n\t\t\t\t"Results": 10\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"FacetId": "4a9188f927f34f90943f24833954944c",\r\n\t\t\t\t"Results": 0\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t"FacetId": "4a9188f927f34f90943f24833954944d",\r\n\t\t\t\t"Results": 3\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n}'}]);
//# sourceMappingURL=via-4d072bbe.pkg.js.map