/* Minification failed. Returning unminified contents.
(2458,44-45): run-time error JS1195: Expected expression: >
(2480,10-11): run-time error JS1195: Expected expression: )
(2492,46-47): run-time error JS1195: Expected expression: >
(2514,9-10): run-time error JS1002: Syntax error: }
(2519,49-50): run-time error JS1195: Expected expression: )
(2519,51-52): run-time error JS1004: Expected ';': {
(2524,6-7): run-time error JS1195: Expected expression: )
(2526,34-35): run-time error JS1004: Expected ';': {
(2534,1-2): run-time error JS1002: Syntax error: }
(2543,33-34): run-time error JS1195: Expected expression: )
(2543,34-35): run-time error JS1004: Expected ';': {
(2568,2-3): run-time error JS1195: Expected expression: )
(2578,33-34): run-time error JS1195: Expected expression: )
(2578,34-35): run-time error JS1004: Expected ';': {
(2603,2-3): run-time error JS1195: Expected expression: )
 */
/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */
!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=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",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 e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.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()},push:g,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){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},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?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.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){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[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):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.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,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"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"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=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)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(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 oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.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===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!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 fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.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=fa.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=fa.selectors={cacheLength:50,createPseudo:ha,match:W,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(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===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]||fa.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]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.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(ba,ca).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.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.replace(P," ")+" ").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,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(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),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).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 Y.test(a.nodeName)},input:function(a){return X.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:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(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]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.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=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[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?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(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,k=[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(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(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 ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(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 va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(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 va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.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(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.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(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=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},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(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(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==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(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};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=w.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.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.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.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(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 u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(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&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},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().progress(c.notify).done(c.resolve).fail(c.reject):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=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;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||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=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)K(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},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][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=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c;
}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.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=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.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 N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.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=N.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function W(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&T.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var X=/^(?:checkbox|radio)$/i,Y=/<([\w:-]+)/,Z=/^$|\/(?:java|ecma)script/i,$={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,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.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"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.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)),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=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.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)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.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.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!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&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(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)>-1: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 detail 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,e,f,g=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||d,e=c.documentElement,f=c.body,a.pageX=b.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ea.test(f)?this.mouseHooks:da.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=d),3===a.target.nodeType&&(a.target=a.target.parentNode),h.filter?h.filter(a,g):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==ia()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===ia()&&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)}}}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},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?ga:ha):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={constructor:n.Event,isDefaultPrevented:ha,isPropagationStopped:ha,isImmediatePropagationStopped:ha,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ga,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ga,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ga,a&&!this.isSimulated&&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}}}),n.fn.extend({on:function(a,b,c,d){return ja(this,a,b,c,d)},one:function(a,b,c,d){return ja(this,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=ha),this.each(function(){n.event.remove(this,a,c,b)})}});var ka=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,la=/<script|<style|<link/i,ma=/checked\s*(?:[^=]|=\s*.checked.)/i,na=/^true\/(.*)/,oa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function pa(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 qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.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])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(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 ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(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 K(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&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),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),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=wa[0].contentDocument,b.write(),b.close(),c=ya(a,b),wa.detach()),xa[a]=c),c}var Aa=/^margin/,Ba=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ca=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Da=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},Ea=d.documentElement;!function(){var b,c,e,f,g=d.createElement("div"),h=d.createElement("div");if(h.style){h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h);function i(){h.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Ea.appendChild(g);var d=a.getComputedStyle(h);b="1%"!==d.top,f="2px"===d.marginLeft,c="4px"===d.width,h.style.marginRight="50%",e="4px"===d.marginRight,Ea.removeChild(g)}n.extend(l,{pixelPosition:function(){return i(),b},boxSizingReliable:function(){return null==c&&i(),c},pixelMarginRight:function(){return null==c&&i(),e},reliableMarginLeft:function(){return null==c&&i(),f},reliableMarginRight:function(){var b,c=h.appendChild(d.createElement("div"));return c.style.cssText=h.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",h.style.width="1px",Ea.appendChild(g),b=!parseFloat(a.getComputedStyle(c).marginRight),Ea.removeChild(g),h.removeChild(c),b}})}}();function Fa(a,b,c){var d,e,f,g,h=a.style;return c=c||Ca(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Ba.test(g)&&Aa.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 Ga(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Ha=/^(none|table(?!-c[ea]).+)/,Ia={position:"absolute",visibility:"hidden",display:"block"},Ja={letterSpacing:"0",fontWeight:"400"},Ka=["Webkit","O","Moz","ms"],La=d.createElement("div").style;function Ma(a){if(a in La)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ka.length;while(c--)if(a=Ka[c]+b,a in La)return a}function Na(a,b,c){var d=T.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Oa(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+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Pa(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ca(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Fa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ba.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Oa(a,b,c||(g?"border":"content"),d,f)+"px"}function Qa(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=N.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=N.access(d,"olddisplay",za(d.nodeName)))):(e=V(d),"none"===c&&e||N.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=Fa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,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]=Ma(h)||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=T.exec(c))&&e[1]&&(c=W(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.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]=Ma(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Fa(a,b,d)),"normal"===e&&b in Ja&&(e=Ja[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Ha.test(n.css(a,"display"))&&0===a.offsetWidth?Da(a,Ia,function(){return Pa(a,b,d)}):Pa(a,b,d):void 0},set:function(a,c,d){var e,f=d&&Ca(a),g=d&&Oa(a,b,d,"border-box"===n.css(a,"boxSizing",!1,f),f);return g&&(e=T.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=n.css(a,b)),Na(a,c,g)}}}),n.cssHooks.marginLeft=Ga(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Fa(a,"marginLeft"))||a.getBoundingClientRect().left-Da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px":void 0}),n.cssHooks.marginRight=Ga(l.reliableMarginRight,function(a,b){return b?Da(a,{display:"inline-block"},Fa,[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+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Aa.test(a)||(n.cssHooks[a+b].set=Na)}),n.fn.extend({css:function(a,b){return K(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ca(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 Qa(this,!0)},hide:function(){return Qa(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function Ra(a,b,c,d,e){return new Ra.prototype.init(a,b,c,d,e)}n.Tween=Ra,Ra.prototype={constructor:Ra,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ra.propHooks[this.prop];return a&&a.get?a.get(this):Ra.propHooks._default.get(this)},run:function(a){var b,c=Ra.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ra.propHooks._default.set(this),this}},Ra.prototype.init.prototype=Ra.prototype,Ra.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},Ra.propHooks.scrollTop=Ra.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},_default:"swing"},n.fx=Ra.prototype.init,n.fx.step={};var Sa,Ta,Ua=/^(?:toggle|show|hide)$/,Va=/queueHooks$/;function Wa(){return a.setTimeout(function(){Sa=void 0}),Sa=n.now()}function Xa(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=U[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ya(a,b,c){for(var d,e=(_a.tweeners[b]||[]).concat(_a.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Za(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&V(a),q=N.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?N.get(a,"olddisplay")||za(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],Ua.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?za(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=N.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;N.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ya(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 $a(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 _a(a,b,c){var d,e,f=0,g=_a.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Sa||Wa(),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:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:Sa||Wa(),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.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for($a(k,j.opts.specialEasing);g>f;f++)if(d=_a.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,Ya,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(_a,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return W(c.elem,a,T.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],_a.tweeners[c]=_a.tweeners[c]||[],_a.tweeners[c].unshift(b)},prefilters:[Za],prefilter:function(a,b){b?_a.prefilters.unshift(a):_a.prefilters.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(V).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=_a(this,n.extend({},a),f);(e||N.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=N.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Va.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=N.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(Xa(b,!0),a,d,e)}}),n.each({slideDown:Xa("show"),slideUp:Xa("hide"),slideToggle:Xa("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(Sa=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Sa=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(){Ta||(Ta=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(Ta),Ta=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",l.checkOn=""!==a.value,l.optSelected=c.selected,b.disabled=!0,l.optDisabled=!c.disabled,a=d.createElement("input"),a.value="t",a.type="radio",l.radioValue="t"===a.value}();var ab,bb=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return K(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(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ab:void 0)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);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)}}),ab={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=bb[b]||n.find.attr;bb[b]=function(a,b,d){var e,f;return d||(f=bb[b],bb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,bb[b]=f),e}});var cb=/^(?:input|select|textarea|button)$/i,db=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return K(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(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){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):cb.test(a.nodeName)||db.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var eb=/[\t\r\n\f]/g;function fb(a){return a.getAttribute&&a.getAttribute("class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,fb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,fb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,fb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=fb(this),b&&N.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":N.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+fb(c)+" ").replace(eb," ").indexOf(b)>-1)return!0;return!1}});var gb=/\r/g,hb=/[\x20\t\r\n\f]+/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(gb,""):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)).replace(hb," ")}},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)&&(l.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(n.valHooks.option.get(d),f)>-1)&&(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)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var ib=/^(?:focusinfocus|focusoutblur)$/;n.extend(n.event,{trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!ib.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),l=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},f||!o.trigger||o.trigger.apply(e,c)!==!1)){if(!f&&!o.noBubble&&!n.isWindow(e)){for(j=o.delegateType||q,ib.test(j+q)||(h=h.parentNode);h;h=h.parentNode)p.push(h),i=h;i===(e.ownerDocument||d)&&p.push(i.defaultView||i.parentWindow||a)}g=0;while((h=p[g++])&&!b.isPropagationStopped())b.type=g>1?j:o.bindType||q,m=(N.get(h,"events")||{})[b.type]&&N.get(h,"handle"),m&&m.apply(h,c),m=l&&h[l],m&&m.apply&&L(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=q,f||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!L(e)||l&&n.isFunction(e[q])&&!n.isWindow(e)&&(i=e[l],i&&(e[l]=null),n.event.triggered=q,e[q](),n.event.triggered=void 0,i&&(e[l]=i)),b.result}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b)}}),n.fn.extend({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}}),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)}}),l.focusin="onfocusin"in a,l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=N.access(d,b);e||d.addEventListener(a,c,!0),N.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=N.access(d,b)-1;e?N.access(d,b,e):(d.removeEventListener(a,c,!0),N.remove(d,b))}}});var jb=a.location,kb=n.now(),lb=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var mb=/#.*$/,nb=/([?&])_=[^&]*/,ob=/^(.*?):[ \t]*([^\r\n]*)$/gm,pb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,qb=/^(?:GET|HEAD)$/,rb=/^\/\//,sb={},tb={},ub="*/".concat("*"),vb=d.createElement("a");vb.href=jb.href;function wb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];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 xb(a,b,c,d){var e={},f=a===tb;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 yb(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 zb(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 Ab(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:jb.href,type:"GET",isLocal:pb.test(jb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},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?yb(yb(a,n.ajaxSettings),b):yb(n.ajaxSettings,a)},ajaxPrefilter:wb(sb),ajaxTransport:wb(tb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m=n.ajaxSetup({},c),o=m.context||m,p=m.context&&(o.nodeType||o.jquery)?n(o):n.event,q=n.Deferred(),r=n.Callbacks("once memory"),s=m.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(2===v){if(!h){h={};while(b=ob.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===v?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return v||(a=u[c]=u[c]||a,t[a]=b),this},overrideMimeType:function(a){return v||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>v)for(b in a)s[b]=[s[b],a[b]];else x.always(a[x.status]);return this},abort:function(a){var b=a||w;return e&&e.abort(b),z(0,b),this}};if(q.promise(x).complete=r.add,x.success=x.done,x.error=x.fail,m.url=((b||m.url||jb.href)+"").replace(mb,"").replace(rb,jb.protocol+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=n.trim(m.dataType||"*").toLowerCase().match(G)||[""],null==m.crossDomain){j=d.createElement("a");try{j.href=m.url,j.href=j.href,m.crossDomain=vb.protocol+"//"+vb.host!=j.protocol+"//"+j.host}catch(y){m.crossDomain=!0}}if(m.data&&m.processData&&"string"!=typeof m.data&&(m.data=n.param(m.data,m.traditional)),xb(sb,m,c,x),2===v)return x;k=n.event&&m.global,k&&0===n.active++&&n.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!qb.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(lb.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=nb.test(f)?f.replace(nb,"$1_="+kb++):f+(lb.test(f)?"&":"?")+"_="+kb++)),m.ifModified&&(n.lastModified[f]&&x.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&x.setRequestHeader("If-None-Match",n.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",m.contentType),x.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+ub+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)x.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(o,x,m)===!1||2===v))return x.abort();w="abort";for(l in{success:1,error:1,complete:1})x[l](m[l]);if(e=xb(tb,m,c,x)){if(x.readyState=1,k&&p.trigger("ajaxSend",[x,m]),2===v)return x;m.async&&m.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},m.timeout));try{v=1,e.send(t,z)}catch(y){if(!(2>v))throw y;z(-1,y)}}else z(-1,"No Transport");function z(b,c,d,h){var j,l,t,u,w,y=c;2!==v&&(v=2,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(u=zb(m,x,d)),u=Ab(m,u,x,j),j?(m.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(n.lastModified[f]=w),w=x.getResponseHeader("etag"),w&&(n.etag[f]=w)),204===b||"HEAD"===m.type?y="nocontent":304===b?y="notmodified":(y=u.state,l=u.data,t=u.error,j=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),x.status=b,x.statusText=(c||y)+"",j?q.resolveWith(o,[l,y,x]):q.rejectWith(o,[x,y,t]),x.statusCode(s),s=void 0,k&&p.trigger(j?"ajaxSuccess":"ajaxError",[x,m,j?l:t]),r.fireWith(o,[x,y]),k&&(p.trigger("ajaxComplete",[x,m]),--n.active||n.event.trigger("ajaxStop")))}return x},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(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&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 n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(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!n.expr.filters.visible(a)},n.expr.filters.visible=function(a){return a.offsetWidth>0||a.offsetHeight>0||a.getClientRects().length>0};var Bb=/%20/g,Cb=/\[\]$/,Db=/\r?\n/g,Eb=/^(?:submit|button|image|reset|file)$/i,Fb=/^(?:input|select|textarea|keygen)/i;function Gb(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Cb.test(a)?d(a,e):Gb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Gb(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)Gb(c,a[c],b,e);return d.join("&").replace(Bb,"+")},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")&&Fb.test(this.nodeName)&&!Eb.test(a)&&(this.checked||!X.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(Db,"\r\n")}}):{name:b.name,value:c.replace(Db,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Hb={0:200,1223:204},Ib=n.ajaxSettings.xhr();l.cors=!!Ib&&"withCredentials"in Ib,l.ajax=Ib=!!Ib,n.ajaxTransport(function(b){var c,d;return l.cors||Ib&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Hb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},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(e,f){b=n("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Jb=[],Kb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Jb.pop()||n.expando+"_"+kb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Kb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kb.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(Kb,"$1"+e):b.jsonp!==!1&&(b.url+=(lb.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(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Jb.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||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ca([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var Lb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Lb)return Lb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(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||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function Mb(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,n.extend({},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)?(e=d.getBoundingClientRect(),c=Mb(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;while(a&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ea})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;n.fn[a]=function(d){return K(this,function(a,d,e){var f=Mb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ga(l.pixelPosition,function(a,c){return c?(c=Fa(a,b),Ba.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 K(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.extend({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)},size:function(){return this.length}}),n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Nb=a.jQuery,Ob=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Ob),b&&a.jQuery===n&&(a.jQuery=Nb),n},b||(a.jQuery=a.$=n),n});;
/*!
Waypoints - 4.0.0
Copyright © 2011-2015 Caleb Troughton
Licensed under the MIT license.
https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
*/
!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();;
/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: global vars, init

======================================================= */

/****************************************
  ==== GLOBAL VARIABLES
****************************************/

var touch = false,
    $body = $('body'),
    screenType,
    lang,
    reg_mail = /^(.+)@(.+){1,}\.(.+){2,}$/,
    reg_num = /^\s*\d+\s*$/,
    reg_vat = /^[0-9A-Za-z]{2,14}$/,
    reg_phonecode = /^\+[1-9]{1,4}$/,
    reg_url = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/;

/****************************************
  ==== INIT
****************************************/

$(document).on('ready',function(){

  // Detect touch device
  if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ){
    touch = true;
  }

  // Detect screensize
  setScreenSize();

  $(window).on('resize',function(){
    setScreenSize();
  });

 /**
   * Scrolls viewport to given target
   *
   * @required: data-target
   *
   * @usage:
   * <a class="jumpto" data-target="#TARGET||.TARGET"></a>
  **/

  $('body').on('click','.jump',function(e){
    
    e.preventDefault();

    var target = $(this).attr('data-target');
    scroll(target);

  });

  if($('.blog').length > 0){
    $('.blog img').removeAttr('width').removeAttr('height');
  }

  // TODO: remove (replaced with modal)
  if($('.video').length > 0){
    
    $('.video').each(function(){
      $('iframe',this).css('height',$(this).width() * 0.5625+'px')
    });
    
    $('.video__meta2').on('click', function(e){

      e.preventDefault();

      var $video = $(this).parent().parent(),
          $wrap = $('.video__wrap', $video);

      if($video.hasClass('expanded')){
        $video.removeClass('expanded');
      }
      else {
        $video.addClass('expanded');

        var iframe = '<iframe title="'+ $(this).attr('data-title') +'" src="'+ $(this).attr('href') +'" allowfullscreen=""></iframe>';

        $wrap.append(iframe);

        var padding = $('header.header-main').outerHeight(true),
            targetPos = $(this).offset().top,
            margin = (getHeight() - ($(this).width() * 0.5625) + padding) / 2;

        $('html, body').stop().animate({
          scrollTop: targetPos - margin
        }, 500);
      }
    });
  }

});


/****************************************
  ==== FUNCTIONS
****************************************/

 /**
   * Set screensize variable
   *
   * @usage:
   * setScreenSize()
  **/

  function setScreenSize(){

    if(getWidth() > 1279){
      screenType = 'desktop';
    }
    else {
      screenType = 'mobile';
    } 

  }

  function isIE(userAgent) {
    userAgent = userAgent || navigator.userAgent;
    return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1 || userAgent.indexOf("Edge/") > -1;
  }

  function formTracking($form) {

    var fId = ($form.attr('id') == undefined) ? 'n/a' : $form.attr('id'),
        fUrl = window.location.href,
        fName = $form.attr('name'),
        fEmail = ($('input[type="email"]', $form).length > 0) ? $('input[type="email"]', $form).val() : 'n/a';

    if (fName == undefined) {
        var urlArr = fUrl.split('/');
        fName = urlArr[urlArr.length - 1];
        fName = (fName == '') ? urlArr[urlArr.length - 2] : fName;
    }

    window.dataLayer = window.dataLayer || [];
    dataLayer.push({
        'event': 'formSubmit',
        'formId': fId,
        'formUrl': fUrl,
        'formName': fName,
        'mail': fEmail
    });

  }

 /**
   * Scroll viewport to given id
   *
   * @usage:
   * scroll(target);
  **/

  function scroll(target){

    var padding = $('header.header-main').outerHeight(true),
        targetPos = $('#'+target).offset().top;

    $('html, body').stop().animate({
      scrollTop: targetPos - padding
    }, 750);

  };

/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: utility events and function

======================================================= */

$(document).on('ready',function(){

  /**
    * Generic toggle function
    *
    * @options:
    * data-target => id of the element that should be toggled
    * data-show-text => Text on button when element is closed
    * data-hide-text => Text on button when element is opened
    *
    * @markup:
      <button class="toggle" data-target="" data-show-text="Show something" data-hide-text="Hide something" aria-expanded="false">Show something</button>
   **/

  $('.toggle').on('click',function(){

    var $this = $(this),
        $target = $('#' + $this.attr('data-target')),
        txt_show = $this.attr('data-show-text'),
        txt_hide = $this.attr('data-hide-text');

    if($target.hasClass('hide')) {
      $target.removeClass('hide');
      $this.attr('aria-expanded',true).text(txt_hide);
    }
    else {
      $target.addClass('hide');
      $this.attr('aria-expanded',false).text(txt_show);
    }
     
  });

   /**
   * Scrolls viewport to given target
   *
   * @required: data-target
   *
   * @usage:
   * <a class="jumpto" data-target="#TARGET||.TARGET"></a>
  **/

    $('body').on('click','.jumpto',function(e){
    
      e.preventDefault();
  
      var target = $(this).attr('data-target');
      scroll(target);
  
    });
});

/**
  * Returns current viewport height
  *
  * @returns: int
  * @usage:
  * getHeight();
 **/

function getHeight(){

  if(typeof window.innerHeight != 'undefined'){
    var viewportheight = window.innerHeight;
  }
  else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientHeight != 'undefined' && document.documentElement.clientHeight != 0){
    var viewportheight = document.documentElement.clientHeight;
  }
  else {
    var viewportheight = document.getElementsByTagName('body')[0].clientHeight;
  }

  return viewportheight;
}


/**
  * Returns current viewport width
  *
  * @returns: int
  * @usage:
  * getWidth();
 **/

function getWidth(){

  if(typeof window.innerWidth != 'undefined'){
    var viewportwidth = window.innerWidth;
  }
  else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0){
    var viewportwidth = document.documentElement.clientWidth;
  }
  else {
    var viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
  }

  return viewportwidth;
}

 /**
   * Scroll viewport to given id
   *
   * @usage:
   * scroll(target);
  **/

  function scroll(target){

    var padding = $('header.header-main').outerHeight(true),
        targetPos = $(target).offset().top;

    $('html, body').stop().animate({
      scrollTop: targetPos - padding
    }, 1000);

  };
/* ====================================================

 @company: Siteimprove
 @content: header

======================================================= */

var $button;

$(document).on('ready',function(){


  /****************************************
  ==== STICKY HEADER
****************************************/

$(window).on('scroll',function(){
  var p = $(window).scrollTop();
  (p > 0) ? $('header.header-main').addClass('not-top') : $('header.header-main').removeClass('not-top');
});

setTimeout(function () {
    if ($(window).scrollTop() > 0) {
      $('header.header-main').addClass('not-top');
    }
}, 200);

/****************************************
  ==== SEARCH
****************************************/

  $('header.header-main .toggle-search').on('click',function(e){
    
    e.preventDefault();

    var $body = $('body'),
        $form = $('.header-search'),
        $field = $('input[type="text"]', $form),
        open = ($form.hasClass('open')) ? true : false;

    if(!open){

      $form.addClass('open');

      setTimeout(function(){
        $field.focus();
      },200);

      $(document).on('keyup.search',function(e){
       if(e.keyCode == 27){
          closeSearch();
        }
      });

      $('html').bind('click.search-panel',function(e){
        if($(e.target).closest('.header-search').length == 0 && $(e.target).closest('button.toggle-search').length == 0){
          closeSearch();
        }
      });
    }
    else {
      closeSearch();
    }

  });

  function closeSearch(){

    $('header.header-main .header-search').removeClass('open');
    $('header.header-main .toggle-search').focus();
    $('header.header-main .header-search input[type="text"]').val('');
    $(document).off('keyup.search');
    $('html').unbind('click.search-panel');
  }

/****************************************
  ==== TOGGLE MOBILE MENU
****************************************/

  $('header.header-main .nav-open').on('click',function(e){

    e.preventDefault();
    
    var $body = $('body'),
        $nav = $('.nav-wrapper'),
        focusableElementsString = "a[href], area[href], input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[contenteditable]";

    $button = $(this);
    
    setTimeout(function(){
      $body.addClass('oh');
      $nav.addClass('open');
      $button.attr('aria-expanded',true);
      $('.nav-close',$nav).focus();
    },0);

    $(document).on('keydown.mm',function(e){

      if(e.keyCode === 27){
        closeMobileNav();
        e.preventDefault();
      }

      if(e.keyCode === 9){

        var children = $nav.find('*'),
            focusableItems = children.filter(focusableElementsString).filter(':visible'),
            focusedItem = $(document.activeElement),
            numberOfFocusableItems = focusableItems.length,
            focusedItemIndex = focusableItems.index(focusedItem);

        if(!e.shiftKey && (focusedItemIndex == numberOfFocusableItems - 1)){
          focusableItems.get(0).focus();
          e.preventDefault();
        }
        if(e.shiftKey && focusedItemIndex == 0){
          focusableItems.get(numberOfFocusableItems - 1).focus();
          e.preventDefault();
        }
      }

    });


  });

  $('header.header-main .nav-close').on('click',function(e){
    closeMobileNav();
  });

  function closeMobileNav(){
    $('body').removeClass('oh');
    $('.nav-wrapper').removeClass('open');
    $button.attr('aria-expanded',false).focus();
    $(document).off('keydown.mm');
  }

});
;
/* ====================================================

 @company: Siteimprove
 @content: header

======================================================= */

var $button;

$(document).on('ready',function(){

/****************************************
  ==== OPEN MENU PANELS
****************************************/

  $('nav.nav-main button.nav-item').on('click',function(e){

    e.preventDefault();

    var $this = $(this),
        $menu = $this.next('.nav-panel'),
        isOpen = ($menu.hasClass('open')) ? true : false,
        thisW = $this.outerWidth(true),
        thisX = $this.position().left,
        menuW = $menu.outerWidth();

    //$menu.css('left', (thisX - (menuW / 2) + (thisW / 2)) + 'px');

    $('header.header-main button.nav-item').not($this).removeClass('open').attr('aria-expanded','false');
    $('.nav-panel').not($menu).removeClass('open');

    if(isOpen){
      $menu.removeClass('open');
      $this.removeClass('open').attr('aria-expanded','false');
      $('html').unbind('click.nav-panel');
    }
    else {
      $menu.addClass('open');
      $this.addClass('open').attr('aria-expanded','true');

      $('html').bind('click.nav-panel',function(e){
        if($(e.target).closest('.nav-panel').length == 0 && $(e.target).closest('button.nav-item').length == 0 && screenType == 'desktop'){
          closePanel();
        }
      });
    }
    
    // Close menu panel when tabbing outside the current opened panel
    $(document).on('keyup.navitems',function(e){

      if(e.keyCode === 27){
        closePanel();
        $this.focus();
      }
      if(e.keyCode === 9){
        
        var parent = $this,
            children = $menu.find('a'),
            focusedItem = $(document.activeElement);

        if(focusedItem.hasClass('nav-item') && focusedItem.text() != parent.text()){
          closePanel();
        }
        else if($.inArray(focusedItem[0],children) == -1 && focusedItem.text() != parent.text()){
          closePanel();
        }

      }
    });

    function closePanel(){
      $('header.header-main button.nav-item').removeClass('open').attr('aria-expanded','false');
      $('.nav-panel').removeClass('open');
      $(document).off('keyup.navitems');
      $('html').unbind('click.nav-panel');
    }
    
  });

});
;
/* ====================================================

  @content: button menus
  @company: Siteimprove

  ----------------------------------------------------

  @template:
  <div class="btn-menu">
    <button class="btn">Lorem ipsum dolor</button>
    <div class="btn-menu__options">
      <ul>
        <li><a href=""></a></li>
      </ul>
    </div>
  </div>

======================================================= */

$(document).on('ready',function(){

    /****************************************
      ==== CLICK
    ****************************************/
  
    $('.btn-menu .btn').on('click',function(e){
  
      e.preventDefault();

      var $btn = $(this),
          $options = $btn.next(),
          isOpen = ($btn.hasClass('open')) ? true : false;
  
      $('.btn-menu .btn').not($btn).removeClass('open').attr('aria-expanded','false');
      $('.btn-menu .btn-menu__options').not($options).removeClass('open');
  
      if(isOpen){
        $options.removeClass('open');
        $btn.removeClass('open').attr('aria-expanded','false');
        $('html').unbind('click.btn-menu');
      }
      else {
        $options.addClass('open');
        $btn.addClass('open').attr('aria-expanded','true');
  
        $('html').bind('click.btn-menu',function(e){
          if($(e.target).closest('.btn-menu .btn').length == 0 && $(e.target).closest('.btn-menu .btn-menu__options').length == 0){
            $('.btn-menu .btn').removeClass('open').attr('aria-expanded','false');
            $('.btn-menu .btn-menu__options').removeClass('open');
          }
        });
      }
      
    });
  
  
  });;
/* ====================================================

 @company: Siteimprove
 @content: hero

======================================================= */

var $video;

$(document).on('ready',function(){

  if ($(".hero__video video").length > 0) {
  
    $video = document.querySelector(".hero__video video");

    if (!window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
      toggleHeroVideoPlay($video);
    }

    $('.hero__controls button').on('click',function(){
      toggleHeroVideoPlay($video);
    });

  }

});

function toggleHeroVideoPlay(video){

  var $play_btn = $('.hero__controls button');

  if (video.paused) {
    $play_btn.attr('aria-pressed',false);
    video.play();
  }
  else {
    $play_btn.attr('aria-pressed',true);
    video.pause();
  }

}
;
/*!
	Modaal - accessible modals - v0.3.1
	by Humaan, for all humans.
	http://humaan.com
 */
/**
	Modaal jQuery Plugin : Accessible Modals

	==== General Options ===
	type (string) 					: ajax, inline, image, iframe, confirm. Defaults to 'inline'
	animation (string) 				: Fade, expand, down, up. Defaults to 'fade'
	after_callback_delay (integer)	: Specify a delay value for the after open callbacks. This is necessary because with the bundled animations
										have a set duration in the bundled CSS. Specify a delay of the same amount as the animation duration in so
										more accurately fire the after open/close callbacks. Defaults 350, does not apply if animation is 'none',
										after open callbacks are dispatched immediately

	is_locked (boolean)				: Set this to true to disable closing the modal via keypress or clicking the background. Beware that if
										type != 'confirm' there will be no interface to dismiss the modal if is_locked = true, you'd have to
										programmatically arrange to dismiss the modal. Confirm modals are always locked regardless of this option
										Defaults to false

	hide_close (boolean)			: Set this to true to hide the close modal button. Key press and overlay click will still close the modal.
										This method is best used when you want to put a custom close button inside the modal container space.

	background (string)				: Background overlay style. Defaults to '#000'
	overlay_opacity (float) 		: Background overlay transparency. Defaults to 0.8
	overlay_close (boolean)			: Set this to false if you want to disable click to close on overlay background.

	accessible_title (string)		: Accessible title. Default 'Dialog Window'
	start_open (boolean)			: Set this to true to launch the Modaal window immediately on page open
	fullscreen (boolean)			: Set this to true to make the modaal fill the entire screen, false will default to own width/height attributes.
	custom_class (string)			: Fill in this string with a custom class that will be applied to the outer most modal wrapper.

	width (integer)					: Desired width of the modal. Required for iframe type. Defaults to undefined //TODO
	height (integer)				: Desired height of the modal. Required for iframe type. Defaults to undefined //TODO

	background_scroll (boolean)		: Set this to true to enable the page to scroll behind the open modal.

    should_open (boolean|function)  : Boolean or closure that returns a boolean to determine whether to open the modal or not.

	close_text						: String for close button text. Available for localisation and alternative languages to be used.
	close_aria_label				: String for close button aria-label attribute (value that screen readers will read out). Available for localisation and alternative languages to be used.

	=== Events ===
	before_open (function) 			: Callback function executed before modal is opened
	after_open (function)			: Callback function executed after modal is opened
	before_close (function)			: Callback function executed before modal is closed
	after_close (function)			: Callback function executed after modal is closed
	source (function(element, src))	: Callback function executed on the default source, it is intended to transform the
										source (href in an AJAX modal or iframe). The function passes in the triggering element
										as well as the default source depending of the modal type. The default output of the
										function is an untransformed default source.

  
  === Confirm Options & Events ===
	confirm_button_text (string)	: Text on the confirm button. Defaults to 'Confirm'
	confirm_cancel_button_text (string) : Text on the confirm modal cancel button. Defaults to 'Cancel'
	confirm_title (string)			: Title for confirm modal. Default 'Confirm Title'
	confirm_content (string)		: HTML content for confirm message
	confirm_callback (function)		: Callback function for when the confirm button is pressed as opposed to cancel
	confirm_cancel_callback (function) : Callback function for when the cancel button is pressed
*/

(function ($) {

  //$overlay = $('#main-overlay');
  var Modaal = {
    init: function (options, elem) {
      var self = this;

      self.dom = $('body');

      self.$elem = $(elem);
      self.options = $.extend({}, $.fn.modaal.options, self.$elem.data(), options);

      // set up the scope
      self.scope = {
        is_open: false,
        id: 'modaal_' + (new Date().getTime()) + (Math.random().toString(16).substring(2))
      };

      // add scope attribute to trigger element
      self.$elem.attr('data-modaal-scope', self.scope.id);

      // private options
      self.private_options = {
        active_class: 'is_active'
      };

      self.lastFocus = null;

      // if is_locked
      if (self.options.is_locked || self.options.type == 'confirm' || self.options.hide_close) {
        self.scope.close_btn = '';
      } else {
          self.scope.close_btn = '<button type="button" class="btn btn-icon btn-white modaal-close" id="modaal-close" aria-label="' + self.options.close_aria_label + '"><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 24 24"><path d="M5,4C4.4,4,4,4.4,4,5c0,0.3,0.1,0.5,0.3,0.7l6.3,6.3l-6.3,6.3c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0 c0,0,0,0,0,0l6.3-6.3l6.3,6.3c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4c0,0,0,0,0,0L13.4,12l6.3-6.3c0.4-0.4,0.4-1,0-1.4 C19.5,4.1,19.3,4,19,4c-0.3,0-0.5,0.1-0.7,0.3L12,10.6L5.7,4.3C5.5,4.1,5.3,4,5,4z"/></svg></button>';
      }

      // reset animation_speed
      if (self.options.animation === 'none') {
        self.options.animation_speed = 0;
        self.options.after_callback_delay = 0;
      }

      // On click to open modal
      $(elem).on('click.Modaal', function (e) {
        e.preventDefault();

        var source;

        // Save last active state before modal
        self.lastFocus = document.activeElement;

        if (self.options.should_open === false || (typeof self.options.should_open === 'function' && self.options.should_open() === false)) {
          return;
        }

        // CB: before_open
        self.options.before_open.call(self, e);

        switch (self.options.type) {
          case 'inline':
            self.options.is_locked = false;
            self.create_basic();
            break;

          case 'confirm':
            self.options.is_locked = true;
            self.create_confirm();
            break;

          case 'image':
            self.options.is_locked = false;
            self.create_image();
            break;

          case 'iframe':
            source = self.options.source(self.$elem, self.$elem.attr('href'));
            self.create_iframe(source);
            break;

          case 'video':
            self.options.is_locked = false;

            //RIA
            if($('.hero__controls').length > 0){
              var $video = document.querySelector(".hero__video video");
              toggleHeroVideoPlay($video);
            }

            var transcriptHtml = '';
            
            if(self.$elem.attr('data-transcriptlink') != '' && self.$elem.attr('data-transcripttext') != '' && self.$elem.attr('data-transcriptlink') != undefined && self.$elem.attr('data-transcripttext') != undefined){
              transcriptHtml = '<p class="modaal-title"><a href="'+ self.$elem.attr('data-transcriptlink') +'" target="_blank">'+ self.$elem.attr('data-transcripttext') +'</a></p>';
            }
            self.create_video(self.$elem.attr('href'),transcriptHtml);

            break;
        }
        // call events to be watched (click, tab, keyup, keydown etc.)
        self.watch_events();
      });

      // Check for start_open
      if (self.options.start_open === true) {
        $(elem).click();
      }
    },

    // Watching Modal
    // ----------------------------------------------------------------
    watch_events: function () {
      var self = this;

      self.dom.off('click.Modaal keyup.Modaal keydown.Modaal');

      // Body keydown
      self.dom.on('keydown.Modaal', function (e) {
        var key = e.keyCode;
        var target = e.target;

        // look for tab change and reset focus to modal window
        // done in keydown so the check fires repeatedly when you hold the tab key down
        if (key == 9 && self.scope.is_open) {
          if (!$.contains(document.getElementById(self.scope.id), target)) {
            $('#' + self.scope.id).find('*[tabindex="0"]').focus();
          }
        }
      });

      // Body keyup
      self.dom.on('keyup.Modaal', function (e) {
        var key = e.keyCode;
        var target = e.target;

        if ((e.shiftKey && e.keyCode == 9) && self.scope.is_open) {
          // Watch for shift + tab key press. if open shift focus to close button.
          if (!$.contains(document.getElementById(self.scope.id), target)) {
            $('#' + self.scope.id).find('.modaal-close').focus();
          }
        }

        if (!self.options.is_locked) {
          // On escape key press close modal
          if (key == 27 && self.scope.is_open) {
            if ($(document.activeElement).is('input:not(:checkbox):not(:radio)')) {
              return false;
            }
            self.modaal_close();
            return;
          }
        }
      });

      // Body click
      self.dom.on('click.Modaal', function (e) {
        var trigger = $(e.target);

        // General Controls: If it's not locked allow greedy close
        if (!self.options.is_locked) {
          if ((self.options.overlay_close && trigger.is('.modaal-inner-wrapper')) || trigger.is('.modaal-close') || trigger.closest('.modaal-close').length || trigger.is('.modaal-video-wrap')) {
            self.modaal_close();
            return;
          }
        }

        //Confirm Controls
        if (trigger.is('.modaal-confirm-btn')) {
          // if 'OK' button is clicked, run confirm_callback()
          if (trigger.is('.modaal-ok')) {
            self.options.confirm_callback.call(self, self.lastFocus);
          }

          if (trigger.is('.modaal-cancel')) {
            self.options.confirm_cancel_callback.call(self, self.lastFocus);
          }
          self.modaal_close();
          return;
        }
      });
    },

    // Append markup into DOM
    build_modal: function (content) {

      var self = this;

      var wrap_class = (self.options.type == 'video') ? 'modaal-video-wrap' : 'modaal-content';

      var animation_class;
      switch (self.options.animation) {
        case 'fade':
          animation_class = ' modaal-start_fade';
          break;
        case 'slide-down':
          animation_class = ' modaal-start_slidedown';
          break;
        default:
          animation_class = ' modaal-start_none'
      }

      // fullscreen check
      var fullscreen_class = '';
      if (self.options.fullscreen) {
        fullscreen_class = ' modaal-fullscreen';
      }

      // custom class check
      if (self.options.custom_class !== '' || typeof (self.options.custom_class) !== 'undefined') {
        self.options.custom_class = ' ' + self.options.custom_class;
      }

      // if width and heights exists and is typeof number
      var dimensionsStyle = '';
      if (self.options.width && self.options.height && typeof self.options.width == 'number' && typeof self.options.height == 'number') {
        // if width and height exist, and they are both numbers
        dimensionsStyle = ' style="max-width:' + self.options.width + 'px;height:' + self.options.height + 'px;overflow:auto;"';
      } else if (self.options.width && typeof self.options.width == 'number') {
        // if only width
        dimensionsStyle = ' style="max-width:' + self.options.width + 'px;"';
      } else if (self.options.height && typeof self.options.height == 'number') {
        // if only height
        dimensionsStyle = ' style="height:' + self.options.height + 'px;overflow:auto;"';
      }

      // Reset dimensions style (width and height) for certain types
      if (self.options.type == 'image' || self.options.type == 'video' || self.options.fullscreen) {
        dimensionsStyle = '';
      }

      //var build_markup = '<div class="modaal-wrapper modaal-start_fade' + igClass + '" id="' + self.scope.id + '"><div class="modaal-outer-wrapper"><div class="modaal-inner-wrapper">';
      var build_markup = '<div class="modaal-wrapper modaal-' + self.options.type + animation_class + fullscreen_class + self.options.custom_class + '" id="' + self.scope.id + '"><div class="modaal-outer-wrapper"><div class="modaal-inner-wrapper">';

      build_markup += '<div class="modaal-container"' + dimensionsStyle + '>';

      // add the guts of the content
      build_markup += '<div class="' + wrap_class + ' modaal-focus" aria-hidden="false" aria-label="' + self.options.accessible_title + ' (Press escape to close)" role="dialog">';
      build_markup += self.scope.close_btn;

      // If it's inline type, we want to clone content instead of dropping it straight in
      if (self.options.type == 'inline') {
        build_markup += '<div class="modaal-content-container"></div>';
      } else {
        // Drop in the content if it's not inline
        build_markup += content;
      }

      // close wrap_class
      build_markup += '</div>';

      // hide if video
      if (self.options.type != 'video') {
        build_markup += '</div>';
      }

      // close off modaal-wrapper
      build_markup += '</div></div></div>';
      // append ajax modal markup to dom
      self.dom.append(build_markup);

      var waitForLoad = $('.modaal-wrapper img, .modaal-wrapper iframe, .modaal-inline');

      if (waitForLoad.length > 0) {
        $('.loading').removeClass('hide');
        var count = 0;

        waitForLoad.on('load error', function () {
          count++;
          if (count === waitForLoad.length) {
            $('.loading').addClass('hide');
          }
        });
      }
      // if inline, clone content into space
      if (self.options.type == 'inline') {
        content.appendTo('#' + self.scope.id + ' .modaal-content-container');
      }

      // Trigger overlay show (which triggers modal show)
      self.modaal_overlay('show');

    },

    // Create Basic Inline Modal
    // ----------------------------------------------------------------
    create_basic: function () {
      var self = this;
      // if $elem is a link, then href points to the target, otherwise assume target was passed in initially
      var target = (self.$elem.is('[href]')) ? $(self.$elem.attr('href')) : self.$elem;
      var content = '';

      if (target.length) {
        content = target.contents().clone(true, true);
        target.empty();
      } else {
        content = '<p>Content could not be loaded. Please check the source and try again.</p>';
      }

      // now push content into markup
      self.build_modal(content);
    },
    // Create Confirm Modal
    // ----------------------------------------------------------------
    create_confirm: function () {
      var self = this;
      var content;

      content = '<div class="modaal-content-container">' +
        '<h1 id="modaal-title">' + self.options.confirm_title + '</h1>' +
        '<div class="modaal-confirm-content">' + self.options.confirm_content + '</div>' +
        '<div class="modaal-confirm-wrap">' +
        '<button type="button" class="modaal-confirm-btn modaal-ok" aria-label="Confirm">' + self.options.confirm_button_text + '</button>' +
        '<button type="button" class="modaal-confirm-btn modaal-cancel" aria-label="Cancel">' + self.options.confirm_cancel_button_text + '</button>' +
        '</div>' +
        '</div>' +
        '</div>';

      // now push content into markup
      self.build_modal(content);
    },

    // Create Image/Gallery Modal
    // ----------------------------------------------------------------
    create_image: function () {
      var self = this;
      var content;

      var modaal_image_markup = '';

      // This is only a single gallery item so let's grab the necessary values

      // Setup selected image
      var this_img_src = self.$elem.attr('href');
      var this_img_alt_txt = '';
      var this_img_alt = '';
      var aria_label = '';

      if (self.$elem.attr('data-modaal-desc')) {
        aria_label = self.$elem.attr('data-modaal-desc');
        this_img_alt_txt = self.$elem.attr('data-modaal-desc');
        this_img_alt = '<div class="modaal-gallery-label"><span class="vh">Image - </span>' + this_img_alt_txt + '</div>';
      } else {
        aria_label = "Image with no description";
      }


      // build up the html
      modaal_image_markup = '<div class="modaal-gallery-item is_active" aria-label="' + aria_label + '">' +
        '<img src="' + this_img_src + '" alt=" ">' +
        this_img_alt +
        '</div>';


      // Update content variable
      content = modaal_image_markup;

      // now push content into markup
      self.build_modal(content);


    },
    gallery_update: function (direction) {
      var self = this;
      var this_gallery = $('#' + self.scope.id);
      var this_gallery_item = this_gallery.find('.modaal-gallery-item');
      var this_gallery_total = this_gallery_item.length - 1;

      // if single item, don't proceed
      if (this_gallery_total == 0) {
        return false;
      }

      var prev_btn = this_gallery.find('.modaal-gallery-prev'),
        next_btn = this_gallery.find('.modaal-gallery-next');

      var duration = 250;

      var new_img_w = 0,
        new_img_h = 0;

      // CB: Before image change
      var current_item = this_gallery.find('.modaal-gallery-item.' + self.private_options.active_class),
        incoming_item = (direction == 'next' ? current_item.next('.modaal-gallery-item') : current_item.prev('.modaal-gallery-item'));
      self.options.before_image_change.call(self, current_item, incoming_item);

      // stop change if at start of end
      if (direction == 'prev' && this_gallery.find('.gallery-item-0').hasClass('is_active')) {
        return false;
      } else if (direction == 'next' && this_gallery.find('.gallery-item-' + this_gallery_total).hasClass('is_active')) {
        return false;
      }


      // lock dimensions
      current_item.stop().animate({
        opacity: 0
      }, duration, function () {
        // Move to appropriate image
        incoming_item.addClass('is_next').css({
          'position': 'absolute',
          'display': 'block',
          'opacity': 0
        });

        // Collect doc width
        var doc_width = $(document).width();
        var width_threshold = doc_width > 1140 ? 280 : 50;

        // start toggle to 'is_next'
        new_img_w = this_gallery.find('.modaal-gallery-item.is_next').width();
        new_img_h = this_gallery.find('.modaal-gallery-item.is_next').height();

        var new_natural_w = this_gallery.find('.modaal-gallery-item.is_next img').prop('naturalWidth');
        var new_natural_h = this_gallery.find('.modaal-gallery-item.is_next img').prop('naturalHeight');

        // if new image is wider than doc width
        if (new_natural_w > (doc_width - width_threshold)) {
          // set new width just below doc width
          new_img_w = doc_width - width_threshold;

          // Set temp widths so we can calulate the correct height;
          this_gallery.find('.modaal-gallery-item.is_next').css({ 'width': new_img_w });
          this_gallery.find('.modaal-gallery-item.is_next img').css({ 'width': new_img_w });

          // Set new height variable
          new_img_h = this_gallery.find('.modaal-gallery-item.is_next').find('img').height();
        } else {
          // new img is not wider than screen, so let's set the new dimensions
          new_img_w = new_natural_w;
          new_img_h = new_natural_h;
        }

        // resize gallery region
        this_gallery.find('.modaal-gallery-item-wrap').stop().animate({
          'width': new_img_w,
          'height': new_img_h
        }, duration, function () {
          // hide old active image
          current_item.removeClass(self.private_options.active_class + ' ' + self.options.gallery_active_class).removeAttr('style');
          current_item.find('img').removeAttr('style');

          // show new image
          incoming_item.addClass(self.private_options.active_class + ' ' + self.options.gallery_active_class).removeClass('is_next').css('position', '');

          // animate in new image (now has the normal is_active class
          incoming_item.stop().animate({
            opacity: 1
          }, duration, function () {
            $(this).removeAttr('style').css({
              'width': '100%'
            });
            $(this).find('img').css('width', '100%');

            // remove dimension lock
            this_gallery.find('.modaal-gallery-item-wrap').removeAttr('style');

            // CB: After image change
            self.options.after_image_change.call(self, incoming_item);
          });

          // Focus on the new gallery item
          this_gallery.find('.modaal-gallery-item').removeAttr('tabindex');
          this_gallery.find('.modaal-gallery-item.' + self.private_options.active_class + '').attr('tabindex', '0').focus();

          // hide/show next/prev
          if (this_gallery.find('.modaal-gallery-item.' + self.private_options.active_class).is('.gallery-item-0')) {
            prev_btn.stop().animate({
              opacity: 0
            }, 150, function () {
              $(this).hide();
            });
          } else {
            prev_btn.stop().css({
              'display': 'block',
              'opacity': prev_btn.css('opacity')
            }).animate({
              opacity: 1
            }, 150);
          }
          if (this_gallery.find('.modaal-gallery-item.' + self.private_options.active_class).is('.gallery-item-' + this_gallery_total)) {
            next_btn.stop().animate({
              opacity: 0
            }, 150, function () {
              $(this).hide();
            });
          } else {
            next_btn.stop().css({
              'display': 'block',
              'opacity': prev_btn.css('opacity')
            }).animate({
              opacity: 1
            }, 150);
          }
        });
      });
    },

    // Create Video Modal
    // ----------------------------------------------------------------
    create_video: function (url,transcriptHtml) {
      var self = this;
      var content;

      // video markup
      content = '<iframe src="' + url + '" class="modaal-video-frame" allowfullscreen></iframe>' + transcriptHtml;
      
      // RIA

      // now push content into markup
      self.build_modal('<div class="modaal-video-container">' + content + '</div>');
    },


    // Open Modaal
    // ----------------------------------------------------------------
    modaal_open: function () {
      var self = this;
      var modal_wrapper = $('#' + self.scope.id);
      var animation_type = self.options.animation;

      if (animation_type === 'none') {
        modal_wrapper.removeClass('modaal-start_none');
        self.options.after_open.call(self, modal_wrapper);
      }

      // Open with fade
      if (animation_type === 'fade') {
        modal_wrapper.removeClass('modaal-start_fade');
      }

      // Open with slide down
      if (animation_type === 'slide-down') {
        modal_wrapper.removeClass('modaal-start_slide_down');
      }

      var focusTarget = modal_wrapper;

      // Switch focusTarget tabindex (switch from other modal if exists)
      $('.modaal-wrapper *[tabindex=0]').removeAttr('tabindex');

      if (self.options.type == 'image') {
        focusTarget = $('#' + self.scope.id).find('.modaal-gallery-item.' + self.private_options.active_class);

      } else if (modal_wrapper.find('.modaal-iframe-elem').length) {
        focusTarget = modal_wrapper.find('.modaal-iframe-elem');

      } else if (modal_wrapper.find('.modaal-video-wrap').length) {
        focusTarget = modal_wrapper.find('.modaal-video-wrap');

      } else {
        focusTarget = modal_wrapper.find('.modaal-focus');

      }
      // now set the focus
      focusTarget = $('.modaal-close');
      focusTarget.focus();

      // Run after_open
      if (animation_type !== 'none') {
        // CB: after_open
        setTimeout(function () {
          self.options.after_open.call(self, modal_wrapper)
        }, self.options.after_callback_delay);
      }

    },

    // Close Modal
    // ----------------------------------------------------------------
    modaal_close: function () {
      var self = this;
      var modal_wrapper = $('#' + self.scope.id);

      modal_wrapper = $('.modaal-wrapper');
      $('iframe',modal_wrapper).remove(); // RIA
      $('.modaal-overlay').remove();
      
      // CB: before_close
      self.options.before_close.call(self, modal_wrapper);

      // Now we close the modal
      if (self.options.animation === 'none') {
        modal_wrapper.addClass('modaal-start_none');
      }

      // Close with fade
      if (self.options.animation === 'fade') {
        modal_wrapper.addClass('modaal-start_fade');
      }

      // Close with slide up (using initial slide down)
      if (self.options.animation === 'slide-down') {
        modal_wrapper.addClass('modaal-start_slide_down');
      }

      // CB: after_close and remove
      setTimeout(function () {
        // clone inline content back to origin place
        if (self.options.type == 'inline') {
          $('#' + self.scope.id + ' .modaal-content-container').contents().clone(true, true).appendTo(self.$elem.attr('href'))
        }
        // remove markup from dom
        modal_wrapper.remove();
        // CB: after_close
        self.options.after_close.call(self);
        // scope is now closed
        self.scope.is_open = false;

      }, self.options.after_callback_delay);

      // Call overlay hide
      self.modaal_overlay('hide');

      // Roll back to last focus state before modal open. If was closed programmatically, this might not be set
      if (self.lastFocus != null) {
        self.lastFocus.focus();
      }
    },

    // Overlay control (accepts action for show or hide)
    // ----------------------------------------------------------------
    modaal_overlay: function (action) {
      var self = this;

      if (action == 'show') {
        // Modal is open so update scope
        self.scope.is_open = true;

        // set body to overflow hidden if background_scroll is false
        if (!self.options.background_scroll) {
          self.dom.addClass('modaal-noscroll');
        }

        // append modaal overlay
        self.dom.append('<div class="modaal-overlay" id="' + self.scope.id + '_overlay"></div>');

        // now show
        $('#' + self.scope.id + '_overlay').css('background', self.options.background).stop().animate({
          opacity: self.options.overlay_opacity
        }, self.options.animation_speed, function () {
          // now open the modal
          self.modaal_open();
        });

      } else if (action == 'hide') {
        // remove body overflow lock
        self.dom.removeClass('modaal-noscroll');

        // now hide the overlay
        $('#' + self.scope.id + '_overlay').stop().animate({
          opacity: 0
        }, self.options.animation_speed, function () {
          // remove overlay from dom
          $(this).remove();
        });
      }
    }
  };

  // Declare the modaal jQuery method
  // ------------------------------------------------------------
  $.fn.modaal = function (options) {
    return this.each(function () {
      var existing_modaal = $(this).data('modaal');

      if (existing_modaal) {
        // Checking for string value, used for methods
        if (typeof (options) == 'string') {
          switch (options) {
            case 'close':
              existing_modaal.modaal_close();
              break;
          }
        }
      } else {
        // Not a string, so let's setup the modal ready to use
        var modaal = Object.create(Modaal);
        modaal.init(options, this);
        $.data(this, "modaal", modaal);
      }
    });
  };

  // Default options
  // ------------------------------------------------------------
  $.fn.modaal.options = {

    //General
    type: 'inline',
    animation: 'fade',
    animation_speed: 2,
    after_callback_delay: 350,
    is_locked: false,
    hide_close: false,
    // background: 'rgba(60,72,94,0.6)',
    overlay_close: true,
    accessible_title: 'Dialog Window',
    start_open: false,
    fullscreen: false,
    custom_class: 'open',
    background_scroll: false,
    should_open: true,
    close_aria_label: 'Close (Press escape to close)',
    width: null,
    height: null,
    max_width: 1000,

    //Events
    before_open: function () { },
    after_open: function () { },
    before_close: function () { },
    after_close: function () { },
    source: function (element, src) {
      return src;
    },

    //Confirm Modal
    confirm_button_text: 'Confirm', // text on confirm button
    confirm_cancel_button_text: 'Cancel',
    confirm_title: 'Confirm Title', // title for confirm modal
    confirm_content: '<p>This is the default confirm dialog content. Replace me through the options</p>', // html for confirm message
    confirm_callback: function () { },
    confirm_cancel_callback: function () { },
  };

  // On body load (or now, if already loaded), init any modaals defined inline
  // Ensure this is done after $.fn.modaal and default options are declared
  // ----------------------------------------------------------------
  $(function () {
    var single_modaal = $('.modaal');

    if (single_modaal.length) {
      single_modaal.each(function () {
        var self = $(this);

        // new empty options
        var options = {};
        var inline_options = false;

        // option: type
        if (self.attr('data-modaal-type')) {
          inline_options = true;
          options.type = self.attr('data-modaal-type');
        }

        // option: animation
        if (self.attr('data-modaal-animation')) {
          inline_options = true;
          options.animation = self.attr('data-modaal-animation');
        }

        // option: animation_speed
        if (self.attr('data-modaal-animation-speed')) {
          inline_options = true;
          options.animation_speed = self.attr('data-modaal-animation-speed');
        }

        // option: after_callback_delay
        if (self.attr('data-modaal-after-callback-delay')) {
          inline_options = true;
          options.after_callback_delay = self.attr('data-modaal-after-callback-delay');
        }

        // option: after_callback_delay
        if (self.attr('data-modaal-is-locked')) {
          inline_options = true;
          options.is_locked = (self.attr('data-modaal-is-locked') === 'true' ? true : false);
        }

        // option: hide_close
        if (self.attr('data-modaal-hide-close')) {
          inline_options = true;
          options.hide_close = (self.attr('data-modaal-hide-close') === 'true' ? true : false);
        }

        // option: background
        if (self.attr('data-modaal-background')) {
          inline_options = true;
          options.background = self.attr('data-modaal-background');
        }

        // option: overlay_opacity
        if (self.attr('data-modaal-overlay-opacity')) {
          inline_options = true;
          options.overlay_opacity = self.attr('data-modaal-overlay-opacity');
        }

        // option: overlay_close
        if (self.attr('data-modaal-overlay-close')) {
          inline_options = true;
          options.overlay_close = (self.attr('data-modaal-overlay-close') === 'false' ? false : true);
        }

        // option: accessible_title
        if (self.attr('data-modaal-accessible-title')) {
          inline_options = true;
          options.accessible_title = self.attr('data-modaal-accessible-title');
        }

        // option: start_open
        if (self.attr('data-modaal-start-open')) {
          inline_options = true;
          options.start_open = (self.attr('data-modaal-start-open') === 'true' ? true : false);
        }

        // option: fullscreen
        if (self.attr('data-modaal-fullscreen')) {
          inline_options = true;
          options.fullscreen = (self.attr('data-modaal-fullscreen') === 'true' ? true : false);
        }

        // option: max_width
        if (self.attr('data-modaal-max-width')) {
          inline_options = true;
          options.max_width = parseFloat(self.attr('data-modaal-max-width'));
        }

        // option: custom_class
        if (self.attr('data-modaal-custom-class')) {
          inline_options = true;
          options.custom_class = self.attr('data-modaal-custom-class');
        }

        // option: close_text
        if (self.attr('data-modaal-close-text')) {
          inline_options = true;
          options.close_text = self.attr('data-modaal-close-text');
        }

        // option: close_aria_label
        if (self.attr('data-modaal-close-aria-label')) {
          inline_options = true;
          options.close_aria_label = self.attr('data-modaal-close-aria-label');
        }

        // option: background_scroll
        if (self.attr('data-modaal-background-scroll')) {
          inline_options = true;
          options.background_scroll = (self.attr('data-modaal-background-scroll') === 'true' ? true : false);
        }

        // option: width
        if (self.attr('data-modaal-width')) {
          inline_options = true;
          options.width = parseInt(self.attr('data-modaal-width'));
        }

        // option: height
        if (self.attr('data-modaal-height')) {
          inline_options = true;
          options.height = parseInt(self.attr('data-modaal-height'));
        }

        // option: confirm_button_text
        if (self.attr('data-modaal-confirm-button-text')) {
          inline_options = true;
          options.confirm_button_text = self.attr('data-modaal-confirm-button-text');
        }

        // option: confirm_cancel_button_text
        if (self.attr('data-modaal-confirm-cancel-button-text')) {
          inline_options = true;
          options.confirm_cancel_button_text = self.attr('data-modaal-confirm-cancel-button-text');
        }

        // option: confirm_title
        if (self.attr('data-modaal-confirm-title')) {
          inline_options = true;
          options.confirm_title = self.attr('data-modaal-confirm-title');
        }

        // option: confirm_content
        if (self.attr('data-modaal-confirm-content')) {
          inline_options = true;
          options.confirm_content = self.attr('data-modaal-confirm-content');
        }

        // option: loading_content
        if (self.attr('data-modaal-loading-content')) {
          inline_options = true;
          options.loading_content = self.attr('data-modaal-loading-content');
        }

        // option: loading_class
        if (self.attr('data-modaal-loading-class')) {
          inline_options = true;
          options.loading_class = self.attr('data-modaal-loading-class');
        }

        // now set it up for the trigger, but only if inline_options is true
        if (inline_options) {
          self.modaal(options);
        }
      });
    }
  });

}(jQuery, window, document));

/****************************************
  ==== INIT PLUGIN EVENTS
****************************************/

$(document).on('ready',function(){

  $('.modaal-inline').modaal();
  $('.modaal-fullscreen').modaal({ fullscreen: true });
  $('.modaal-image').modaal({ type: 'image' });
  $('.modaal-video').modaal({ type: 'video' });

});
;
/*! ScrollMagic v2.0.7 | (c) 2019 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */
!function (e, t) { "function" == typeof define && define.amd ? define(t) : "object" == typeof exports ? module.exports = t() : e.ScrollMagic = t() }(this, function () { "use strict"; var _ = function () { }; _.version = "2.0.7", window.addEventListener("mousewheel", function () { }); var P = "data-scrollmagic-pin-spacer"; _.Controller = function (e) { var n, r, i = "REVERSE", t = "PAUSED", o = z.defaults, s = this, a = R.extend({}, o, e), l = [], c = !1, f = 0, u = t, d = !0, h = 0, p = !0, g = function () { 0 < a.refreshInterval && (r = window.setTimeout(E, a.refreshInterval)) }, v = function () { return a.vertical ? R.get.scrollTop(a.container) : R.get.scrollLeft(a.container) }, m = function () { return a.vertical ? R.get.height(a.container) : R.get.width(a.container) }, w = this._setScrollPos = function (e) { a.vertical ? d ? window.scrollTo(R.get.scrollLeft(), e) : a.container.scrollTop = e : d ? window.scrollTo(e, R.get.scrollTop()) : a.container.scrollLeft = e }, y = function () { if (p && c) { var e = R.type.Array(c) ? c : l.slice(0); c = !1; var t = f, n = (f = s.scrollPos()) - t; 0 !== n && (u = 0 < n ? "FORWARD" : i), u === i && e.reverse(), e.forEach(function (e, t) { e.update(!0) }) } }, S = function () { n = R.rAF(y) }, b = function (e) { "resize" == e.type && (h = m(), u = t), !0 !== c && (c = !0, S()) }, E = function () { if (!d && h != m()) { var t; try { t = new Event("resize", { bubbles: !1, cancelable: !1 }) } catch (e) { (t = document.createEvent("Event")).initEvent("resize", !1, !1) } a.container.dispatchEvent(t) } l.forEach(function (e, t) { e.refresh() }), g() }; this._options = a; var x = function (e) { if (e.length <= 1) return e; var t = e.slice(0); return t.sort(function (e, t) { return e.scrollOffset() > t.scrollOffset() ? 1 : -1 }), t }; return this.addScene = function (e) { if (R.type.Array(e)) e.forEach(function (e, t) { s.addScene(e) }); else if (e instanceof _.Scene) if (e.controller() !== s) e.addTo(s); else if (l.indexOf(e) < 0) for (var t in l.push(e), l = x(l), e.on("shift.controller_sort", function () { l = x(l) }), a.globalSceneOptions) e[t] && e[t].call(e, a.globalSceneOptions[t]); return s }, this.removeScene = function (e) { if (R.type.Array(e)) e.forEach(function (e, t) { s.removeScene(e) }); else { var t = l.indexOf(e); -1 < t && (e.off("shift.controller_sort"), l.splice(t, 1), e.remove()) } return s }, this.updateScene = function (e, n) { return R.type.Array(e) ? e.forEach(function (e, t) { s.updateScene(e, n) }) : n ? e.update(!0) : !0 !== c && e instanceof _.Scene && (-1 == (c = c || []).indexOf(e) && c.push(e), c = x(c), S()), s }, this.update = function (e) { return b({ type: "resize" }), e && y(), s }, this.scrollTo = function (e, t) { if (R.type.Number(e)) w.call(a.container, e, t); else if (e instanceof _.Scene) e.controller() === s && s.scrollTo(e.scrollOffset(), t); else if (R.type.Function(e)) w = e; else { var n = R.get.elements(e)[0]; if (n) { for (; n.parentNode.hasAttribute(P);)n = n.parentNode; var r = a.vertical ? "top" : "left", i = R.get.offset(a.container), o = R.get.offset(n); d || (i[r] -= s.scrollPos()), s.scrollTo(o[r] - i[r], t) } } return s }, this.scrollPos = function (e) { return arguments.length ? (R.type.Function(e) && (v = e), s) : v.call(s) }, this.info = function (e) { var t = { size: h, vertical: a.vertical, scrollPos: f, scrollDirection: u, container: a.container, isDocument: d }; return arguments.length ? void 0 !== t[e] ? t[e] : void 0 : t }, this.loglevel = function (e) { return s }, this.enabled = function (e) { return arguments.length ? (p != e && (p = !!e, s.updateScene(l, !0)), s) : p }, this.destroy = function (e) { window.clearTimeout(r); for (var t = l.length; t--;)l[t].destroy(e); return a.container.removeEventListener("resize", b), a.container.removeEventListener("scroll", b), R.cAF(n), null }, function () { for (var e in a) o.hasOwnProperty(e) || delete a[e]; if (a.container = R.get.elements(a.container)[0], !a.container) throw "ScrollMagic.Controller init failed."; (d = a.container === window || a.container === document.body || !document.body.contains(a.container)) && (a.container = window), h = m(), a.container.addEventListener("resize", b), a.container.addEventListener("scroll", b); var t = parseInt(a.refreshInterval, 10); a.refreshInterval = R.type.Number(t) ? t : o.refreshInterval, g() }(), s }; var z = { defaults: { container: window, vertical: !0, globalSceneOptions: {}, loglevel: 2, refreshInterval: 100 } }; _.Controller.addOption = function (e, t) { z.defaults[e] = t }, _.Controller.extend = function (e) { var t = this; _.Controller = function () { return t.apply(this, arguments), this.$super = R.extend({}, this), e.apply(this, arguments) || this }, R.extend(_.Controller, t), _.Controller.prototype = t.prototype, _.Controller.prototype.constructor = _.Controller }, _.Scene = function (e) { var n, l, c = "BEFORE", f = "DURING", u = "AFTER", r = D.defaults, d = this, h = R.extend({}, r, e), p = c, g = 0, a = { start: 0, end: 0 }, v = 0, i = !0, s = {}; this.on = function (e, i) { return R.type.Function(i) && (e = e.trim().split(" ")).forEach(function (e) { var t = e.split("."), n = t[0], r = t[1]; "*" != n && (s[n] || (s[n] = []), s[n].push({ namespace: r || "", callback: i })) }), d }, this.off = function (e, o) { return e && (e = e.trim().split(" ")).forEach(function (e, t) { var n = e.split("."), r = n[0], i = n[1] || ""; ("*" === r ? Object.keys(s) : [r]).forEach(function (e) { for (var t = s[e] || [], n = t.length; n--;) { var r = t[n]; !r || i !== r.namespace && "*" !== i || o && o != r.callback || t.splice(n, 1) } t.length || delete s[e] }) }), d }, this.trigger = function (e, n) { if (e) { var t = e.trim().split("."), r = t[0], i = t[1], o = s[r]; o && o.forEach(function (e, t) { i && i !== e.namespace || e.callback.call(d, new _.Event(r, e.namespace, d, n)) }) } return d }, d.on("change.internal", function (e) { "loglevel" !== e.what && "tweenChanges" !== e.what && ("triggerElement" === e.what ? y() : "reverse" === e.what && d.update()) }).on("shift.internal", function (e) { t(), d.update() }), this.addTo = function (e) { return e instanceof _.Controller && l != e && (l && l.removeScene(d), l = e, E(), o(!0), y(!0), t(), l.info("container").addEventListener("resize", S), e.addScene(d), d.trigger("add", { controller: l }), d.update()), d }, this.enabled = function (e) { return arguments.length ? (i != e && (i = !!e, d.update(!0)), d) : i }, this.remove = function () { if (l) { l.info("container").removeEventListener("resize", S); var e = l; l = void 0, e.removeScene(d), d.trigger("remove") } return d }, this.destroy = function (e) { return d.trigger("destroy", { reset: e }), d.remove(), d.off("*.*"), null }, this.update = function (e) { if (l) if (e) if (l.enabled() && i) { var t, n = l.info("scrollPos"); t = 0 < h.duration ? (n - a.start) / (a.end - a.start) : n >= a.start ? 1 : 0, d.trigger("update", { startPos: a.start, endPos: a.end, scrollPos: n }), d.progress(t) } else m && p === f && C(!0); else l.updateScene(d, !1); return d }, this.refresh = function () { return o(), y(), d }, this.progress = function (e) { if (arguments.length) { var t = !1, n = p, r = l ? l.info("scrollDirection") : "PAUSED", i = h.reverse || g <= e; if (0 === h.duration ? (t = g != e, p = 0 === (g = e < 1 && i ? 0 : 1) ? c : f) : e < 0 && p !== c && i ? (p = c, t = !(g = 0)) : 0 <= e && e < 1 && i ? (g = e, p = f, t = !0) : 1 <= e && p !== u ? (g = 1, p = u, t = !0) : p !== f || i || C(), t) { var o = { progress: g, state: p, scrollDirection: r }, s = p != n, a = function (e) { d.trigger(e, o) }; s && n !== f && (a("enter"), a(n === c ? "start" : "end")), a("progress"), s && p !== f && (a(p === c ? "start" : "end"), a("leave")) } return d } return g }; var m, w, t = function () { a = { start: v + h.offset }, l && h.triggerElement && (a.start -= l.info("size") * h.triggerHook), a.end = a.start + h.duration }, o = function (e) { if (n) { var t = "duration"; x(t, n.call(d)) && !e && (d.trigger("change", { what: t, newval: h[t] }), d.trigger("shift", { reason: t })) } }, y = function (e) { var t = 0, n = h.triggerElement; if (l && (n || 0 < v)) { if (n) if (n.parentNode) { for (var r = l.info(), i = R.get.offset(r.container), o = r.vertical ? "top" : "left"; n.parentNode.hasAttribute(P);)n = n.parentNode; var s = R.get.offset(n); r.isDocument || (i[o] -= l.scrollPos()), t = s[o] - i[o] } else d.triggerElement(void 0); var a = t != v; v = t, a && !e && d.trigger("shift", { reason: "triggerElementPosition" }) } }, S = function (e) { 0 < h.triggerHook && d.trigger("shift", { reason: "containerResize" }) }, b = R.extend(D.validate, { duration: function (t) { if (R.type.String(t) && t.match(/^(\.|\d)*\d+%$/)) { var e = parseFloat(t) / 100; t = function () { return l ? l.info("size") * e : 0 } } if (R.type.Function(t)) { n = t; try { t = parseFloat(n.call(d)) } catch (e) { t = -1 } } if (t = parseFloat(t), !R.type.Number(t) || t < 0) throw n && (n = void 0), 0; return t } }), E = function (e) { (e = arguments.length ? [e] : Object.keys(b)).forEach(function (t, e) { var n; if (b[t]) try { n = b[t](h[t]) } catch (e) { n = r[t] } finally { h[t] = n } }) }, x = function (e, t) { var n = !1, r = h[e]; return h[e] != t && (h[e] = t, E(e), n = r != h[e]), n }, z = function (t) { d[t] || (d[t] = function (e) { return arguments.length ? ("duration" === t && (n = void 0), x(t, e) && (d.trigger("change", { what: t, newval: h[t] }), -1 < D.shifts.indexOf(t) && d.trigger("shift", { reason: t })), d) : h[t] }) }; this.controller = function () { return l }, this.state = function () { return p }, this.scrollOffset = function () { return a.start }, this.triggerPosition = function () { var e = h.offset; return l && (h.triggerElement ? e += v : e += l.info("size") * d.triggerHook()), e }, d.on("shift.internal", function (e) { var t = "duration" === e.reason; (p === u && t || p === f && 0 === h.duration) && C(), t && F() }).on("progress.internal", function (e) { C() }).on("add.internal", function (e) { F() }).on("destroy.internal", function (e) { d.removePin(e.reset) }); var C = function (e) { if (m && l) { var t = l.info(), n = w.spacer.firstChild; if (e || p !== f) { var r = { position: w.inFlow ? "relative" : "absolute", top: 0, left: 0 }, i = R.css(n, "position") != r.position; w.pushFollowers ? 0 < h.duration && (p === u && 0 === parseFloat(R.css(w.spacer, "padding-top")) ? i = !0 : p === c && 0 === parseFloat(R.css(w.spacer, "padding-bottom")) && (i = !0)) : r[t.vertical ? "top" : "left"] = h.duration * g, R.css(n, r), i && F() } else { "fixed" != R.css(n, "position") && (R.css(n, { position: "fixed" }), F()); var o = R.get.offset(w.spacer, !0), s = h.reverse || 0 === h.duration ? t.scrollPos - a.start : Math.round(g * h.duration * 10) / 10; o[t.vertical ? "top" : "left"] += s, R.css(w.spacer.firstChild, { top: o.top, left: o.left }) } } }, F = function () { if (m && l && w.inFlow) { var e = p === f, t = l.info("vertical"), n = w.spacer.firstChild, r = R.isMarginCollapseType(R.css(w.spacer, "display")), i = {}; w.relSize.width || w.relSize.autoFullWidth ? e ? R.css(m, { width: R.get.width(w.spacer) }) : R.css(m, { width: "100%" }) : (i["min-width"] = R.get.width(t ? m : n, !0, !0), i.width = e ? i["min-width"] : "auto"), w.relSize.height ? e ? R.css(m, { height: R.get.height(w.spacer) - (w.pushFollowers ? h.duration : 0) }) : R.css(m, { height: "100%" }) : (i["min-height"] = R.get.height(t ? n : m, !0, !r), i.height = e ? i["min-height"] : "auto"), w.pushFollowers && (i["padding" + (t ? "Top" : "Left")] = h.duration * g, i["padding" + (t ? "Bottom" : "Right")] = h.duration * (1 - g)), R.css(w.spacer, i) } }, L = function () { l && m && p === f && !l.info("isDocument") && C() }, T = function () { l && m && p === f && ((w.relSize.width || w.relSize.autoFullWidth) && R.get.width(window) != R.get.width(w.spacer.parentNode) || w.relSize.height && R.get.height(window) != R.get.height(w.spacer.parentNode)) && F() }, A = function (e) { l && m && p === f && !l.info("isDocument") && (e.preventDefault(), l._setScrollPos(l.info("scrollPos") - ((e.wheelDelta || e[l.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || 30 * -e.detail))) }; this.setPin = function (e, t) { if (t = R.extend({}, { pushFollowers: !0, spacerClass: "scrollmagic-pin-spacer" }, t), !(e = R.get.elements(e)[0])) return d; if ("fixed" === R.css(e, "position")) return d; if (m) { if (m === e) return d; d.removePin() } var n = (m = e).parentNode.style.display, r = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"]; m.parentNode.style.display = "none"; var i = "absolute" != R.css(m, "position"), o = R.css(m, r.concat(["display"])), s = R.css(m, ["width", "height"]); m.parentNode.style.display = n, !i && t.pushFollowers && (t.pushFollowers = !1); var a = m.parentNode.insertBefore(document.createElement("div"), m), l = R.extend(o, { position: i ? "relative" : "absolute", boxSizing: "content-box", mozBoxSizing: "content-box", webkitBoxSizing: "content-box" }); if (i || R.extend(l, R.css(m, ["width", "height"])), R.css(a, l), a.setAttribute(P, ""), R.addClass(a, t.spacerClass), w = { spacer: a, relSize: { width: "%" === s.width.slice(-1), height: "%" === s.height.slice(-1), autoFullWidth: "auto" === s.width && i && R.isMarginCollapseType(o.display) }, pushFollowers: t.pushFollowers, inFlow: i }, !m.___origStyle) { m.___origStyle = {}; var c = m.style; r.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]).forEach(function (e) { m.___origStyle[e] = c[e] || "" }) } return w.relSize.width && R.css(a, { width: s.width }), w.relSize.height && R.css(a, { height: s.height }), a.appendChild(m), R.css(m, { position: i ? "relative" : "absolute", margin: "auto", top: "auto", left: "auto", bottom: "auto", right: "auto" }), (w.relSize.width || w.relSize.autoFullWidth) && R.css(m, { boxSizing: "border-box", mozBoxSizing: "border-box", webkitBoxSizing: "border-box" }), window.addEventListener("scroll", L), window.addEventListener("resize", L), window.addEventListener("resize", T), m.addEventListener("mousewheel", A), m.addEventListener("DOMMouseScroll", A), C(), d }, this.removePin = function (e) { if (m) { if (p === f && C(!0), e || !l) { var t = w.spacer.firstChild; if (t.hasAttribute(P)) { var n = w.spacer.style, r = {};["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"].forEach(function (e) { r[e] = n[e] || "" }), R.css(t, r) } w.spacer.parentNode.insertBefore(t, w.spacer), w.spacer.parentNode.removeChild(w.spacer), m.parentNode.hasAttribute(P) || (R.css(m, m.___origStyle), delete m.___origStyle) } window.removeEventListener("scroll", L), window.removeEventListener("resize", L), window.removeEventListener("resize", T), m.removeEventListener("mousewheel", A), m.removeEventListener("DOMMouseScroll", A), m = void 0 } return d }; var N, O = []; return d.on("destroy.internal", function (e) { d.removeClassToggle(e.reset) }), this.setClassToggle = function (e, t) { var n = R.get.elements(e); return 0 !== n.length && R.type.String(t) && (0 < O.length && d.removeClassToggle(), N = t, O = n, d.on("enter.internal_class leave.internal_class", function (e) { var n = "enter" === e.type ? R.addClass : R.removeClass; O.forEach(function (e, t) { n(e, N) }) })), d }, this.removeClassToggle = function (e) { return e && O.forEach(function (e, t) { R.removeClass(e, N) }), d.off("start.internal_class end.internal_class"), N = void 0, O = [], d }, function () { for (var e in h) r.hasOwnProperty(e) || delete h[e]; for (var t in r) z(t); E() }(), d }; var D = { defaults: { duration: 0, offset: 0, triggerElement: void 0, triggerHook: .5, reverse: !0, loglevel: 2 }, validate: { offset: function (e) { if (e = parseFloat(e), !R.type.Number(e)) throw 0; return e }, triggerElement: function (e) { if (e = e || void 0) { var t = R.get.elements(e)[0]; if (!t || !t.parentNode) throw 0; e = t } return e }, triggerHook: function (e) { var t = { onCenter: .5, onEnter: 1, onLeave: 0 }; if (R.type.Number(e)) e = Math.max(0, Math.min(parseFloat(e), 1)); else { if (!(e in t)) throw 0; e = t[e] } return e }, reverse: function (e) { return !!e } }, shifts: ["duration", "offset", "triggerHook"] }; _.Scene.addOption = function (e, t, n, r) { e in D.defaults || (D.defaults[e] = t, D.validate[e] = n, r && D.shifts.push(e)) }, _.Scene.extend = function (e) { var t = this; _.Scene = function () { return t.apply(this, arguments), this.$super = R.extend({}, this), e.apply(this, arguments) || this }, R.extend(_.Scene, t), _.Scene.prototype = t.prototype, _.Scene.prototype.constructor = _.Scene }, _.Event = function (e, t, n, r) { for (var i in r = r || {}) this[i] = r[i]; return this.type = e, this.target = this.currentTarget = n, this.namespace = t || "", this.timeStamp = this.timestamp = Date.now(), this }; var R = _._util = function (s) { var n, e = {}, a = function (e) { return parseFloat(e) || 0 }, l = function (e) { return e.currentStyle ? e.currentStyle : s.getComputedStyle(e) }, r = function (e, t, n, r) { if ((t = t === document ? s : t) === s) r = !1; else if (!u.DomElement(t)) return 0; e = e.charAt(0).toUpperCase() + e.substr(1).toLowerCase(); var i = (n ? t["offset" + e] || t["outer" + e] : t["client" + e] || t["inner" + e]) || 0; if (n && r) { var o = l(t); i += "Height" === e ? a(o.marginTop) + a(o.marginBottom) : a(o.marginLeft) + a(o.marginRight) } return i }, c = function (e) { return e.replace(/^[^a-z]+([a-z])/g, "$1").replace(/-([a-z])/g, function (e) { return e[1].toUpperCase() }) }; e.extend = function (e) { for (e = e || {}, n = 1; n < arguments.length; n++)if (arguments[n]) for (var t in arguments[n]) arguments[n].hasOwnProperty(t) && (e[t] = arguments[n][t]); return e }, e.isMarginCollapseType = function (e) { return -1 < ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(e) }; var i = 0, t = ["ms", "moz", "webkit", "o"], o = s.requestAnimationFrame, f = s.cancelAnimationFrame; for (n = 0; !o && n < 4; ++n)o = s[t[n] + "RequestAnimationFrame"], f = s[t[n] + "CancelAnimationFrame"] || s[t[n] + "CancelRequestAnimationFrame"]; o || (o = function (e) { var t = (new Date).getTime(), n = Math.max(0, 16 - (t - i)), r = s.setTimeout(function () { e(t + n) }, n); return i = t + n, r }), f || (f = function (e) { s.clearTimeout(e) }), e.rAF = o.bind(s), e.cAF = f.bind(s); var u = e.type = function (e) { return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/, "$1").toLowerCase() }; u.String = function (e) { return "string" === u(e) }, u.Function = function (e) { return "function" === u(e) }, u.Array = function (e) { return Array.isArray(e) }, u.Number = function (e) { return !u.Array(e) && 0 <= e - parseFloat(e) + 1 }, u.DomElement = function (e) { return "object" == typeof HTMLElement || "function" == typeof HTMLElement ? e instanceof HTMLElement || e instanceof SVGElement : e && "object" == typeof e && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName }; var d = e.get = {}; return d.elements = function (e) { var t = []; if (u.String(e)) try { e = document.querySelectorAll(e) } catch (e) { return t } if ("nodelist" === u(e) || u.Array(e) || e instanceof NodeList) for (var n = 0, r = t.length = e.length; n < r; n++) { var i = e[n]; t[n] = u.DomElement(i) ? i : d.elements(i) } else (u.DomElement(e) || e === document || e === s) && (t = [e]); return t }, d.scrollTop = function (e) { return e && "number" == typeof e.scrollTop ? e.scrollTop : s.pageYOffset || 0 }, d.scrollLeft = function (e) { return e && "number" == typeof e.scrollLeft ? e.scrollLeft : s.pageXOffset || 0 }, d.width = function (e, t, n) { return r("width", e, t, n) }, d.height = function (e, t, n) { return r("height", e, t, n) }, d.offset = function (e, t) { var n = { top: 0, left: 0 }; if (e && e.getBoundingClientRect) { var r = e.getBoundingClientRect(); n.top = r.top, n.left = r.left, t || (n.top += d.scrollTop(), n.left += d.scrollLeft()) } return n }, e.addClass = function (e, t) { t && (e.classList ? e.classList.add(t) : e.className += " " + t) }, e.removeClass = function (e, t) { t && (e.classList ? e.classList.remove(t) : e.className = e.className.replace(RegExp("(^|\\b)" + t.split(" ").join("|") + "(\\b|$)", "gi"), " ")) }, e.css = function (e, t) { if (u.String(t)) return l(e)[c(t)]; if (u.Array(t)) { var n = {}, r = l(e); return t.forEach(function (e, t) { n[e] = r[c(e)] }), n } for (var i in t) { var o = t[i]; o == parseFloat(o) && (o += "px"), e.style[c(i)] = o } }, e }(window || {}); return _ });;
/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: sharing

======================================================= */

$(document).on('ready',function(){

    /****************************************
      ==== SOCIAL SHARE
    ****************************************/
    
    $('body').on('click','.share.facebook', facebookShare);
    $('body').on('click','.share.twitter', twitterShare);
    $('body').on('click','.share.linkedin', linkedInShare);
    $('body').on('click','.share.xing', xingShare);
    
});
    
    /****************************************
      ==== SHARE FUNCTIONS
    ****************************************/
    
    var windowLocation = window.location.href;
    
    function facebookShare(){
      window.open( 'https://www.facebook.com/sharer/sharer.php?u='+ windowLocation, "facebookWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0" ) 
      return false;
    }
    
    function twitterShare(){
      if($('h1').length > 0){
        var $pageTitle = encodeURIComponent($('h1').text());
      }
      else {
        var $pageTitle = encodeURIComponent($(document).find('title').text());
      }
      window.open( 'http://twitter.com/intent/tweet?text='+ $pageTitle +' '+ windowLocation, "twitterWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0" ) 
      return false;
    }
    
    function linkedInShare(){
      if($('h1').length > 0){
        var $pageTitle = encodeURIComponent($('h1').text());
      }
      else {
        var $pageTitle = encodeURIComponent($(document).find('title').text());
      }
      window.open( 'http://www.linkedin.com/shareArticle?mini=true&url='+ windowLocation +'&title='+ $pageTitle +'', "linkedInWindow", "height=480,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0" ) 
      return false;
    }
    
    function xingShare(){
      if($('h1').length > 0){
        var $pageTitle = encodeURIComponent($('h1').text());
      }
      else {
        var $pageTitle = encodeURIComponent($(document).find('title').text());
      }
      window.open( 'https://www.xing.com/spi/shares/new?url='+ windowLocation +'&title='+ $pageTitle +'', "xingWindow", "height=480,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0" ) 
      return false;
    };
/* ====================================================

  @content: accordions
  @company: Siteimprove
  @contributors: Rickard Andersson, ria@siteimprove.com

  ----------------------------------------------------

  @template:
  <div class="accordion">
    <button id="id1" data-state="open">Lorem ipsum dolor</button>
    <div class="accordion__panel">
      <p>Panel 1</p>
    </div>
    <button id="id2">Duis aute irure dolor</button>
    <div class="accordion__panel">
      <p>Panel 2</p>
    </div>
    <button id="id3">Quis autem vel eum iure reprehenderit</button>
    <div class="accordion__panel">
      <p>Panel 3</p>
    </div>
  </div>

======================================================= */

$(document).on('ready',function(){

    /****************************************
      ==== PREPARE
    ****************************************/
  
    $('.accordion').attr({
      'role': 'tablist',
      'aria-multiselectable': true
    });
  
    $('.accordion button').each(function(){
      
      var $this = $(this),
          $panel = $this.next('.accordion__panel'),
          id = $this.attr('id'),
          open = $this.attr('data-state') != undefined ? true : false;

      $this.attr({
        'aria-controls': 'panel-' + id,
        'aria-expanded': open ? true : false,
        'aria-selected': open ? true : false,
        'role': 'tab'
      });
      
      $panel.attr({
        'id': 'panel-' + id,
        'aria-labelledby': id,
        'aria-hidden': open ? false : true,
        'role': 'tabpanel'
      });
      
    });
  
    /****************************************
      ==== CLICK
    ****************************************/
  
    $('.accordion button[role="tab"]').on('click',function(e){
  
      e.preventDefault();
  
      var $button = $(this),
          $panel = $('#' + $button.attr('aria-controls'))
  
      if($button.attr('aria-expanded') === 'false'){
        $button.attr('aria-expanded','true');
        $panel.attr('aria-hidden','false');
      }
      else {
        $button.attr('aria-expanded','false');
        $panel.attr('aria-hidden','true');
      }
  
    });
  
    /****************************************
      ==== FOCUS
    ****************************************/
  
    $('.accordion button[role="tab"]').on('focus',function(e){
      $(this).attr('aria-selected','true');
    });
  
    /****************************************
      ==== FOCUS
    ****************************************/
  
    $('.accordion button[role="tab"]').on('blur',function(e){
      $(this).attr('aria-selected','false');
    });
  
  
  });;
/*====================================================

  @content: video expander
  @company: siteimprove.com
  @contributors: Rickard Andersson, ria@siteimprove.com

  =======================================================*/

$(document).on('ready',function(){

  if($('.video-expander').length > 0){

    if(vidyardVideoID != ''){
      
      var vidyardPlayer = new Vidyard.player(vidyardVideoID);

      setVideoDimensions();

      $(window).on('resize',function(){
        setVideoDimensions();
        clearTimeout(window.resizedFinished);
        window.resizedFinished = setTimeout(function(){
          
        },250);
      });

    }

    var hasTeaser = $('.video-expander video').length > 0 ? true : false;

    if (hasTeaser) {
      var $teaserVideo = document.querySelector(".video-expander video");

      if (!window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
        $teaserVideo.play();
      }
      else {
        $teaserVideo.pause();
      }
    }

    $('.video-expander .btn-play').on('click',function(){

      hasTeaser ? $teaserVideo.pause() : '';
      vidyardPlayer.play();
      $('.video-expander').addClass('clicked');
    });

    $('.video-expander .video-close').on('click',function(){

      hasTeaser ? $teaserVideo.play() : '';
      vidyardPlayer.pause();
      $('.video-expander').removeClass('clicked');
    });

  }

});

function setVideoDimensions(){

  var viewportH = getHeight() - parseInt($('header.header-main').outerHeight()) - (parseInt($('.video-expander .options').outerHeight()) * 2),
      playerH = parseInt($('.vidyard_player').outerHeight())
      targetW = 0,
      targetH = 0;

  if(playerH > viewportH){
    targetW = viewportH * 1.777777778;
  }
  else {
    targetW = 1600;
  }

  $('.video-expander .vidyard_player').css({
    'max-width': targetW + 'px',
  });

  $('.video-expander .options').css({
    'max-width': targetW + 32 + 'px',
  });

}
;
/*! iFrame Resizer (iframeSizer.min.js ) - v2.8.3 - 2015-01-29
 *  Desc: Force cross domain iframes to size to content.
 *  Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
 *  Copyright: (c) 2015 David J. Bradshaw - dave@bradshaw.net
 *  License: MIT
 *  https://github.com/davidjbradshaw/iframe-resizer
 */

!function(){"use strict";function a(a,b,c){"addEventListener"in window?a.addEventListener(b,c,!1):"attachEvent"in window&&a.attachEvent("on"+b,c)}function b(){var a,b=["moz","webkit","o","ms"];for(a=0;a<b.length&&!A;a+=1)A=window[b[a]+"RequestAnimationFrame"];A||e(" RequestAnimationFrame not supported")}function c(){var a="Host page";return window.top!==window.self&&(a=window.parentIFrame?window.parentIFrame.getId():"Nested host page"),a}function d(a){return w+"["+c()+"]"+a}function e(a){C.log&&"object"==typeof window.console&&console.log(d(a))}function f(a){"object"==typeof window.console&&console.warn(d(a))}function g(a){function b(){function a(){k(F),i(),C.resizedCallback(F)}g("Height"),g("Width"),l(a,F,"resetPage")}function c(a){var b=a.id;e(" Removing iFrame: "+b),a.parentNode.removeChild(a),C.closedCallback(b),e(" --")}function d(){var a=E.substr(x).split(":");return{iframe:document.getElementById(a[0]),id:a[0],height:a[1],width:a[2],type:a[3]}}function g(a){var b=Number(C["max"+a]),c=Number(C["min"+a]),d=a.toLowerCase(),f=Number(F[d]);if(c>b)throw new Error("Value for min"+a+" can not be greater than max"+a);e(" Checking "+d+" is in range "+c+"-"+b),c>f&&(f=c,e(" Set "+d+" to min value")),f>b&&(f=b,e(" Set "+d+" to max value")),F[d]=""+f}function m(){var b=a.origin,c=F.iframe.src.split("/").slice(0,3).join("/");if(C.checkOrigin&&(e(" Checking connection is from: "+c),""+b!="null"&&b!==c))throw new Error("Unexpected message received from: "+b+" for "+F.iframe.id+". Message was: "+a.data+". This error can be disabled by adding the checkOrigin: false option.");return!0}function n(){return w===(""+E).substr(0,x)}function o(){var a=F.type in{"true":1,"false":1};return a&&e(" Ignoring init message from meta parent page"),a}function p(a){return E.substr(E.indexOf(":")+v+a)}function q(a){e(" MessageCallback passed: {iframe: "+F.iframe.id+", message: "+a+"}"),C.messageCallback({iframe:F.iframe,message:JSON.parse(a)}),e(" --")}function r(){if(null===F.iframe)throw new Error("iFrame ("+F.id+") does not exist on "+y);return!0}function s(a){var b=a.getBoundingClientRect();return h(),{x:parseInt(b.left,10)+parseInt(z.x,10),y:parseInt(b.top,10)+parseInt(z.y,10)}}function u(a){function b(){z=g,A(),e(" --")}function c(){return{x:Number(F.width)+d.x,y:Number(F.height)+d.y}}var d=a?s(F.iframe):{x:0,y:0},g=c();e(" Reposition requested from iFrame (offset x:"+d.x+" y:"+d.y+")"),window.top!==window.self?window.parentIFrame?a?parentIFrame.scrollToOffset(g.x,g.y):parentIFrame.scrollTo(F.width,F.height):f(" Unable to scroll to requested position, window.parentIFrame not found"):b()}function A(){!1!==C.scrollCallback(z)&&i()}function B(a){function b(a){var b=s(a);e(" Moving to in page link (#"+c+") at x: "+b.x+" y: "+b.y),z={x:b.x,y:b.y},A(),e(" --")}var c=a.split("#")[1]||"",d=decodeURIComponent(c),f=document.getElementById(d)||document.getElementsByName(d)[0];window.top!==window.self?window.parentIFrame?parentIFrame.moveToAnchor(c):e(" In page link #"+c+" not found and window.parentIFrame not found"):f?b(f):e(" In page link #"+c+" not found")}function D(){switch(F.type){case"close":c(F.iframe),C.resizedCallback(F);break;case"message":q(p(6));break;case"scrollTo":u(!1);break;case"scrollToOffset":u(!0);break;case"inPageLink":B(p(9));break;case"reset":j(F);break;case"init":b(),C.initCallback(F.iframe);break;default:b()}}var E=a.data,F={};n()&&(e(" Received: "+E),F=d(),!o()&&r()&&m()&&(D(),t=!1))}function h(){null===z&&(z={x:void 0!==window.pageXOffset?window.pageXOffset:document.documentElement.scrollLeft,y:void 0!==window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop},e(" Get page position: "+z.x+","+z.y))}function i(){null!==z&&(window.scrollTo(z.x,z.y),e(" Set page position: "+z.x+","+z.y),z=null)}function j(a){function b(){k(a),m("reset","reset",a.iframe)}e(" Size reset requested by "+("init"===a.type?"host page":"iFrame")),h(),l(b,a,"init")}function k(a){function b(b){a.iframe.style[b]=a[b]+"px",e(" IFrame ("+a.iframe.id+") "+b+" set to "+a[b]+"px")}C.sizeHeight&&b("height"),C.sizeWidth&&b("width")}function l(a,b,c){c!==b.type&&A?(e(" Requesting animation frame"),A(a)):a()}function m(a,b,c){e("["+a+"] Sending msg to iframe ("+b+")"),c.contentWindow.postMessage(w+b,"*")}function n(){function b(){function a(a){1/0!==C[a]&&0!==C[a]&&(i.style[a]=C[a]+"px",e(" Set "+a+" = "+C[a]+"px"))}a("maxHeight"),a("minHeight"),a("maxWidth"),a("minWidth")}function c(a){return""===a&&(i.id=a="iFrameResizer"+s++,e(" Added missing iframe ID: "+a+" ("+i.src+")")),a}function d(){e(" IFrame scrolling "+(C.scrolling?"enabled":"disabled")+" for "+k),i.style.overflow=!1===C.scrolling?"hidden":"auto",i.scrolling=!1===C.scrolling?"no":"yes"}function f(){("number"==typeof C.bodyMargin||"0"===C.bodyMargin)&&(C.bodyMarginV1=C.bodyMargin,C.bodyMargin=""+C.bodyMargin+"px")}function g(){return k+":"+C.bodyMarginV1+":"+C.sizeWidth+":"+C.log+":"+C.interval+":"+C.enablePublicMethods+":"+C.autoResize+":"+C.bodyMargin+":"+C.heightCalculationMethod+":"+C.bodyBackground+":"+C.bodyPadding+":"+C.tolerance}function h(b){a(i,"load",function(){var a=t;m("iFrame.onload",b,i),!a&&C.heightCalculationMethod in B&&j({iframe:i,height:0,width:0,type:"init"})}),m("init",b,i)}var i=this,k=c(i.id);d(),b(),f(),h(g())}function o(a){if("object"!=typeof a)throw new TypeError("Options is not an object.")}function p(a){a=a||{},o(a);for(var b in D)D.hasOwnProperty(b)&&(C[b]=a.hasOwnProperty(b)?a[b]:D[b])}function q(){function a(a){if(!a.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==a.tagName.toUpperCase())throw new TypeError("Expected <IFRAME> tag, found <"+a.tagName+">.");n.call(a)}return function(b,c){switch(p(b),typeof c){case"undefined":case"string":Array.prototype.forEach.call(document.querySelectorAll(c||"iframe"),a);break;case"object":a(c);break;default:throw new TypeError("Unexpected data type ("+typeof c+").")}}}function r(a){a.fn.iFrameResize=function(a){return p(a),this.filter("iframe").each(n).end()}}var s=0,t=!0,u="message",v=u.length,w="[iFrameSizer]",x=w.length,y="",z=null,A=window.requestAnimationFrame,B={max:1,scroll:1,bodyScroll:1,documentElementScroll:1},C={},D={autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,enablePublicMethods:!1,heightCalculationMethod:"offset",interval:32,log:!1,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,closedCallback:function(){},initCallback:function(){},messageCallback:function(){},resizedCallback:function(){},scrollCallback:function(){return!0}};b(),a(window,"message",g),window.jQuery&&r(jQuery),"function"==typeof define&&define.amd?define([],q):"object"==typeof exports?module.exports=q():window.iFrameResize=q()}();
//# sourceMappingURL=iframeResizer.map;
document.querySelectorAll('.pardot-form').forEach(function(e){

    var id = e.getAttribute('id');

    iFrameResize({
        heightCalculationMethod: 'taggedElement'
    }, '#' + id);

});;
/*====================================================

  @content: tabs
  @company: siteimprove.com
  @contributors: Rickard Andersson, ria@siteimprove.com

  ----------------------------------------------------

  @template:
  <div class="tabs-wrap">
    <ul class="tabs">
      <li><a href="#tab1">Tab 1</a></li>
      <li><a href="#tab2">Tab 2</a></li>
    </ul>
    <div class="tab-panel hide"></div>
    <div class="tab-panel hide"></div>
  </div>

=======================================================*/

var tabsSimpleBar = false, isScrolling;

$(document).on('ready',function(){

/****************************************
  ==== PREPARE
****************************************/

  var $tabs = $('.tabs').not('.nojs'),
      $tabsList = $tabs.find('ul:first');

  $tabs.find('.tabs__panel').attr({
    'role': 'tabpanel',
    'aria-hidden': 'true'
  });

  $tabsList.attr('role','tablist');

  $tabsList.find('a').each(function(a){

    var $tab = $(this),
        tabId = $tab.attr('href').slice(1);

    $tab.attr({
      'id': 'tab-' + tabId,
      'role': 'tab',
      'aria-selected': 'false',
      'tabindex': '-1'
    }).parent().attr('role','presentation');

    // Assign aria attribute to the relevant tab panel
    $tabs.find('.tabs__panel').eq(a).attr({
      'aria-labelledby': 'tab-'+tabId,
      'id': tabId
    });

  });

  // Show the first tabPanel
  $tabs.find('.tabs__panel:first').attr('aria-hidden','false').removeClass('hide');

  // Set state for the first tabsList li
  $tabsList.find('li:first').addClass('current').find('a').attr({
    'aria-selected': 'true',
    'tabindex': '0'
  });

/****************************************
  ==== CLICK EVENT
****************************************/

  $('.tabs').on('click',' li[role="presentation"] a',function(e){

    e.preventDefault();

    var $tab = $(this),
        $tabsList = $tab.closest('ul'),
        $tabs = $tabsList.closest('.tabs');

    // Change state of previously selected tabList item
    $tabsList.find('li.current').removeClass('current').find('a').attr({
      'aria-selected': 'false',
      'tabindex': '-1'
    });

    // Hide previously selected tabPanel
    $tabs.find('.tabs__panel').not('.hide').attr('aria-hidden','true').addClass('hide');

    // Show newly selected tabPanel
    $tabs.find('.tabs__panel').eq($tab.parent().index()).attr('aria-hidden','false').removeClass('hide');
    
    // Set state of newly selected tab list item
    $tab.attr({
      'aria-selected': 'true',
      'tabindex': '0'
    }).parent().addClass('current');

    $tab.focus();

  });

/****************************************
  ==== KEYDOWN EVENT
****************************************/

  $('.tabs ul').on('keydown','li[role="presentation"] a',function(e){

    var $tab = $(this),
        $wrap = $tab.closest('.tabs-scroll'),
        $tabsList = $tab.closest('.tabs ul'),
        $prev = $tab.parent().prev(),
        $next = $tab.parent().next(),
        isVertical = ($wrap.hasClass('vertical')) ? true : false;

    if(isVertical){
      switch(e.which){
        case 37:
        case 38:
          if($prev.length != 0){
            $prev.find('a').click();
          }
        break;
        case 39:
        case 40:
          if($next.length != 0){
            $next.find('a').click();
          }
        break;
      }
    }
    else {
      switch(e.which){
        case 37:
          if($prev.length != 0){
            $prev.find('a').click();
          }
        break;
        case 39:
          if($next.length != 0){
            $next.find('a').click();
          }
        break;
      }
    }
  });


});
;
/* ====================================================

  @company: Siteimprove
  @contributors: Rickard Andersson, ria@siteimprove.com
  @content: legal document

======================================================= */

$(document).on('ready', function () {
    if (typeof isOneLang !== 'undefined') {
        $('.legal-filters select#language-selector').on('change', function () {

            var lan = $('select#language-selector').val();
            $('.legal-filters select#date-selector').remove();

            for (var i = 0; i < legalVersions.length; i++) {

                if (legalVersions[i]['Lang'] == lan) {

                    var html = '<select name="date-selector" id="date-selector">';
                    html += '<option value="">Select version</option>';

                    for (var j = 0; j < legalVersions[i]['Versions'].length; j++) {


                        html += '<option value="' + j + '">' + prettyDate(legalVersions[i]['Versions'][j]['StartDate']) + " - " + prettyDate(legalVersions[i]['Versions'][j]['EndDate']) + '</option>';

                        console.log(legalVersions[i]['Versions'][j]);
                    }
                    html += '</select>';



                    $('.legal-filters .legal-versions').html(html);


                }
            }

            let ekm = document.getElementById;

            $("#date-selector").on('change', function () {

                console.log("ver ch");
                versionChange();

            });

        });

        if (isOneLang == "True") {

            var lan = "en";
            $('.legal-filters select#date-selector').remove();

            for (var i = 0; i < legalVersions.length; i++) {

                if (legalVersions[i]['Lang'] == lan) {

                    var html = '<select name="date-selector" id="date-selector">';

                    for (var j = 0; j < legalVersions[i]['Versions'].length; j++) {


                        html += '<option value="' + j + '">' + prettyDate(legalVersions[i]['Versions'][j]['StartDate']) + " - " + prettyDate(legalVersions[i]['Versions'][j]['EndDate']) + '</option>';

                        console.log(legalVersions[i]['Versions'][j]);
                    }
                    html += '</select>';

                    $('.legal-filters .legal-versions').html(html);
                }
            }
        }

        var sval = document.getElementById("uiSelVer");
        if (sval !== null) {
            var selVer = document.getElementById("uiSelVer").value;
            $('select#language-selector').change();
            var curVers = parseInt(selVer);
            $('select#date-selector').val(curVers);



        }
        $('.legal-filters .btn').on('click', function () {

            var url = window.location.href.split('?')[0],
                lan = $('select#language-selector').val(),
                ver = $('select#date-selector').val();

            if (isOneLang == "True") {

                lan = "en";
            }
            window.location = url + '?l=' + lan + '&v=' + ver;

        });


        $("#date-selector").on('change', function () {

            console.log("ver ch");
            versionChange();

        });

        function versionChange() {

            console.log("VER CHANGED");

            var url = window.location.href.split('?')[0],
                lan = $('select#language-selector').val(),
                ver = $('select#date-selector').val();

            if (isOneLang == "True") {

                lan = "en";
            }
            window.location = url + '?l=' + lan + '&v=' + ver;
        };

        console.log("loaded...");
    }
});

function prettyDate(timestamp) {

    if (timestamp === "0001-01-01T00:00:00") {

        return "";
    }
    const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

    var ori = new Date(timestamp),
        month = ori.getMonth(),
        year = ori.getFullYear(),
        date = monthNames[month] + ' ' + year;

    return date;
}
;
/*====================================================

  @content: tooltips
  @company: siteimprove.com
  @contributors: Rickard Andersson, ria@siteimprove.com

  ----------------------------------------------------

  @options:
  # data-id => id of the tooltip (required)
  # data-text => text for the tooltip (required)
  # data-position => visual position of the tooltip: top|right|left|bottom (optional, will default to bottom)

  ----------------------------------------------------

  @template:
  <button class="tooltip" data-id="" data-text="" data-position="">Hover me</button>

=======================================================*/

$(document).on('ready',function(){

  var tooltipCloseDelay = touch ? 1500 : 0,
      tooltipTimer;

/****************************************
  ==== PREPARE TOOLTIPS
****************************************/

  prepareTooltips();

/****************************************
  ==== TOOLTIPS EVENTS
****************************************/

  $('body').on('mouseenter focus click','.tooltip',function(e){

    if($(this).prop('nodeName') != 'A'){
      e.preventDefault();
    }

    var $this = $(this),
        $tooltip = $this.find('span'),
        text = $this.attr('data-text');

    $this.attr('aria-expanded','true');
    $tooltip.attr('aria-hidden') == 'true' ? $tooltip.attr('aria-hidden','false') : resetTooltip($this);

  })
  .on('mouseleave focusout','.tooltip',function(e){

    var $this = $(this);

    tooltipTimer = setTimeout(function(){
      resetTooltip($this)
    },tooltipCloseDelay);

  })
  .on('keydown','.tooltip',function(e){

    if(e.keyCode == 27){ // Esc key
      resetTooltip($(this))
    }
  });

});

function resetTooltip($tooltip){
  $tooltip.attr('aria-expanded','false');
  $tooltip.find('span').attr('aria-hidden','true');
}

function prepareTooltips(){
 
  $('.tooltip').each(function(){

    var $this = $(this),
        id = $this.attr('data-id'),
        text = $this.attr('data-text'),
        position = $this.attr('data-position') != undefined ? $this.attr('data-position') : '';
    
    if($this.attr('aria-label') == undefined){
      $this.attr('aria-label','Tooltip with more info');
    }

    $this.attr('aria-expanded','false').attr('aria-describedby',id).wrap('<div class="tooltip-wrap"></div>');
    if($('button',$this.parent()).length > 0){
      $('button',$this.parent()).append('<span/>');
    }
    else {
      $('a',$this.parent()).append('<span/>');
    }
    $('span',$this.parent()).attr('id',id).attr('role','tooltip').attr('aria-hidden','true').addClass(position).html(text);

  });

 
};
/* ====================================================

 @company: Siteimprove
 @content: count up

======================================================= */

(function( $ ){
  "use strict";

  $.fn.countUp = function( options ) {

    // Defaults
    var settings = $.extend({
        'time': 2000,
        'delay': 10
    }, options);

    return this.each(function(){

      var $this = $(this),
          $settings = settings;

      var counterUpper = function() {




        if(!$this.data('counterupTo')) {
          $this.data('counterupTo',$this.text());
      }
      var time = parseInt($this.data("counter-time")) > 0 ? parseInt($this.data("counter-time")) : $settings.time;
      var delay = parseInt($this.data("counter-delay")) > 0 ? parseInt($this.data("counter-delay")) : $settings.delay;
      var divisions = time / delay;
      var num = $this.data('counterupTo');
      var nums = [num];
      var isComma = /[0-9]+,[0-9]+/.test(num);
      num = num.replace(/,/g, '');
      var isInt = /^[0-9]+$/.test(num);
      var isFloat = /^[0-9]+\.[0-9]+$/.test(num);
      var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;

      // Generate list of incremental numbers to display
      for (var i = divisions; i >= 1; i--) {

          // Preserve as int if input was int
          var newNum = parseInt(Math.round(num / divisions * i));

          // Preserve float if input was float
          if (isFloat) {
              newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);
          }

          // Preserve commas if input had commas
          if (isComma) {
              while (/(\d+)(\d{3})/.test(newNum.toString())) {
                  newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
              }
          }

          nums.unshift(newNum);
      }

      $this.data('counterup-nums', nums);
      $this.text('0');

      // Updates the number until we're done
      var f = function() {
          $this.text($this.data('counterup-nums').shift());
          if ($this.data('counterup-nums').length) {
              setTimeout($this.data('counterup-func'),delay);
          }
          else {
              delete $this.data('counterup-nums');
              $this.data('counterup-nums', null);
              $this.data('counterup-func', null);
          }
      };
      $this.data('counterup-func', f);

      // Start the count up
      setTimeout($this.data('counterup-func'),delay);
      }

      $this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });


    });

  };

})( jQuery );


$(function(){
  if($('.js-count-up').length > 0){
    $('.js-count-up').countUp();
  }
});
;
/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: global vars, init

======================================================= */

$(document).on('ready',function(){

  function moveDot(){

    var x = Math.floor(Math.random() * (4 - 1 + 1) + 0),
        y = Math.floor(Math.random() * (4 - 1 + 1) + 0),
        w = $('.dotted-grid .dots').width() / 4;

    $('.dot').css({
      'top': (x * w) - 2 + 'px',
      'left': (y * w) - 2 + 'px'
    });

    setTimeout(moveDot, 4000);
  }

  if($('.dotted-grid').length > 0){
    //moveDot();
  }

});
;
/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: two columns - fixed images

======================================================= */

//https://codepen.io/shikkaba/pen/bGGPwWj

let controller;
let sceneText;
let sceneImage;
let sceneTwoColumnsLine;
let sceneTwoColumnsCircle;

$(document).on('ready', function () {

    if ($('.twocol').length == 0)
        return false;


    if (getWidth() >= 1023) {
      createTwoColMagic();
    }

    function createTwoColMagic() {

        /*
         * Variables
         */

        controller = new ScrollMagic.Controller();

        const twoColumnsLine = document.querySelector('.twocol .twocol__line');
        const twoColumnsLineIndicator = document.querySelector('.twocol .twocol__line .indicator');
        const twoColumnsCircle = document.querySelector('.twocol .twocol__images-circle');

        let twoColumnsLineEnd = twoColumnsLine.offsetHeight - (twoColumnsLineIndicator.offsetHeight / 2);
        let twoColumnsCircleEnd = twoColumnsLine.offsetHeight - (twoColumnsCircle.offsetHeight / 2);

        /*
         * Line indicator animation
         */

        sceneTwoColumnsLine = new ScrollMagic.Scene({
            triggerElement: ".twocol__line",
            duration: twoColumnsLineEnd,
            offset: twoColumnsLineIndicator.offsetHeight
        })
        .setPin(".twocol__line .indicator")
        .addTo(controller);


        /*
         * Circle animation
         */

        sceneTwoColumnsCircle = new ScrollMagic.Scene({
            triggerElement: ".twocol__images",
            duration: twoColumnsCircleEnd,
            offset: (twoColumnsCircle.offsetHeight / 2)
        })
        .setPin(".twocol__images-circle")
        .addTo(controller);


        /*
         * Texts animation
         */

        var twoColumnsTexts = document.querySelectorAll('.twocol .item'),
            lastText = twoColumnsTexts.length - 1;

        //document.querySelector('.item-0').classList.add('zap');

        twoColumnsTexts.forEach((text, i) => {

            sceneText = new ScrollMagic.Scene({
                triggerElement: ".item-" + i,
                duration: document.querySelector('.item-' + i).offsetHeight,
                //offset: (twoColumnsCircle.offsetHeight / 2 - 50)
            })
            .setClassToggle(".item-" + i, "zap")
            .on("leave", function (e) {

                var dir = e.scrollDirection;

                if (i == 0 && dir == 'REVERSE') {
                    document.querySelector('.item-0').classList.add('zap');
                }

                if (i == lastText && dir == 'FORWARD') {
                    document.querySelector('.item-' + lastText).classList.add('zap');
                }
            })
            .addTo(controller);

        });


        /*
         * Images animation
         */

        var twoColumnsImages = document.querySelectorAll('.twocol .twocol__images .image'),
            lastImage = twoColumnsImages.length - 1;

        //document.querySelector('.image-0').classList.add('zap');

        twoColumnsImages.forEach((image, i) => {

            sceneImage = new ScrollMagic.Scene({
                triggerElement: ".item-" + i,
                duration: document.querySelector('.item-' + i).offsetHeight,
                //offset: -(twoColumnsCircle.offsetHeight / 3)
            })
            .setClassToggle(".image-" + i, "zap")
            .on("leave", function (e) {

                var dir = e.scrollDirection;

                if (i == 0 && dir == 'REVERSE') {
                    document.querySelector('.image-0').classList.add('zap');
                }

                if (i == lastImage && dir == 'FORWARD') {
                    document.querySelector('.image-' + lastImage).classList.add('zap');
                }
            })
            .addTo(controller);

        });

    }

    // Resize
    window.addEventListener("resize", function () {
        destroyController();
        if (getWidth() >= 1023) {
            createTwoColMagic();
        }
    });

    function destroyController() {
        controller.destroy(true);
        sceneText.destroy(true);
        sceneImage.destroy(true);
        sceneTwoColumnsLine.destroy(true);
        sceneTwoColumnsCircle.destroy(true);
    }

});;
/* ====================================================

  @content: page filter
  @company: Siteimprove
  @contributors: Rickard Andersson, ria@siteimprove.com

======================================================= */

$(document).on('ready',function(){

  if($('.page-filter').length > 0){

    $('.page-filter .btn').on('click',function(e){

      e.preventDefault();

      var pageQuery = '?';

      $('.filter').each(function(){

        var prefix = pageQuery == '?' ? '' : '&';

        if($(this).val() != 'all'){
          pageQuery += prefix + $(this).attr('name') + '=' + $(this).val();
        }
      });

      location.href = pageQuery;

    });

  }

});
;
/* ====================================================

 @company: Siteimprove
 @contributors: Rickard Andersson, ria@siteimprove.com
 @content: content library

======================================================= */

$(document).on('ready',function(){

  if($('.content-library').length > 0){

    $('.content-library .filters input[type="radio"]').on('change',function(){
      
      var val = $(this).attr('value'),
          $items = $('.content-library .item');

      $items.addClass('hide');

      if(val == 'all') {
        $items.removeClass('hide');
      }
      else {
        $items.each(function(e){
          if($(this).attr('data-categories').indexOf(val) > -1){
            $(this).removeClass('hide');
          }
        });
      }
    });

  }
 
});
;
