!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={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,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand (o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,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":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
jQuery.noConflict();
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+o[a]<+n[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.1";var t=Object.create(null);s.migrateDisablePatches=function(){for(var e=0;e<arguments.length;e++)t[arguments[e]]=!0},s.migrateEnablePatches=function(){for(var e=0;e<arguments.length;e++)delete t[arguments[e]]},s.migrateIsPatchEnabled=function(e){return!t[e]},n.console&&n.console.log&&(s&&e("3.0.0")&&!e("5.0.0")||n.console.log("JQMIGRATE: jQuery 3.x-4.x REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion));var o={};function u(e,t){var r=n.console;!s.migrateIsPatchEnabled(e)||s.migrateDeduplicateWarnings&&o[t]||(o[t]=!0,s.migrateWarnings.push(t+" ["+e+"]"),r&&r.warn&&!s.migrateMute&&(r.warn("JQMIGRATE: "+t),s.migrateTrace&&r.trace&&r.trace()))}function r(e,t,r,n,o){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n,o),r},set:function(e){u(n,o),r=e}})}function a(e,t,r,n,o){var a=e[t];e[t]=function(){return o&&u(n,o),(s.migrateIsPatchEnabled(n)?r:a||s.noop).apply(this,arguments)}}function c(e,t,r,n,o){if(!o)throw new Error("No warning message provided");return a(e,t,r,n,o),0}function i(e,t,r,n){return a(e,t,r,n),0}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){o={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("quirks","jQuery is not compatible with Quirks Mode");var d,l,p,f={},m=s.fn.init,y=s.find,h=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,g=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,v=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;for(d in i(s.fn,"init",function(e){var t=Array.prototype.slice.call(arguments);return s.migrateIsPatchEnabled("selector-empty-id")&&"string"==typeof e&&"#"===e&&(u("selector-empty-id","jQuery('#') is not a valid selector"),t[0]=[]),m.apply(this,t)},"selector-empty-id"),s.fn.init.prototype=s.fn,i(s,"find",function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&h.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(g,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("selector-hash","Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("selector-hash","Attribute selector with '#' was not fixed: "+r[0])}}return y.apply(this,r)},"selector-hash"),y)Object.prototype.hasOwnProperty.call(y,d)&&(s.find[d]=y[d]);c(s.fn,"size",function(){return this.length},"size","jQuery.fn.size() is deprecated and removed; use the .length property"),c(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"parseJSON","jQuery.parseJSON is deprecated; use JSON.parse"),c(s,"holdReady",s.holdReady,"holdReady","jQuery.holdReady is deprecated"),c(s,"unique",s.uniqueSort,"unique","jQuery.unique is deprecated; use jQuery.uniqueSort"),r(s.expr,"filters",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),r(s.expr,":",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&c(s,"trim",function(e){return null==e?"":(e+"").replace(v,"$1")},"trim","jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(c(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"nodeName","jQuery.nodeName is deprecated"),c(s,"isArray",Array.isArray,"isArray","jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(c(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"isNumeric","jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){f["[object "+t+"]"]=t.toLowerCase()}),c(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[Object.prototype.toString.call(e)]||"object":typeof e},"type","jQuery.type is deprecated"),c(s,"isFunction",function(e){return"function"==typeof e},"isFunction","jQuery.isFunction() is deprecated"),c(s,"isWindow",function(e){return null!=e&&e===e.window},"isWindow","jQuery.isWindow() is deprecated")),s.ajax&&(l=s.ajax,p=/(=)\?(?=&|$)|\?\?/,i(s,"ajax",function(){var e=l.apply(this,arguments);return e.promise&&(c(e,"success",e.done,"jqXHR-methods","jQXHR.success is deprecated and removed"),c(e,"error",e.fail,"jqXHR-methods","jQXHR.error is deprecated and removed"),c(e,"complete",e.always,"jqXHR-methods","jQXHR.complete is deprecated and removed")),e},"jqXHR-methods"),e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(p.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&p.test(e.data))&&u("jsonp-promotion","JSON-to-JSONP auto-promotion is deprecated")}));var j=s.fn.removeAttr,b=s.fn.toggleClass,w=/\S+/g;function x(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}i(s.fn,"removeAttr",function(e){var r=this,n=!1;return s.each(e.match(w),function(e,t){s.expr.match.bool.test(t)&&r.each(function(){if(!1!==s(this).prop(t))return!(n=!0)}),n&&(u("removeAttr-bool","jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),j.apply(this,arguments)},"removeAttr-bool"),i(s.fn,"toggleClass",function(t){return void 0!==t&&"boolean"!=typeof t?b.apply(this,arguments):(u("toggleClass-bool","jQuery.fn.toggleClass(boolean) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))},"toggleClass-bool");var Q,A,R=!1,C=/^[a-z]/,N=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return R=!0,e=r.apply(this,arguments),R=!1,e})}),i(s,"swap",function(e,t,r,n){var o,a,i={};for(a in R||u("swap","jQuery.swap() is undocumented and deprecated"),t)i[a]=e.style[a],e.style[a]=t[a];for(a in o=r.apply(e,n||[]),t)e.style[a]=i[a];return o},"swap"),e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("cssProps","jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),e("4.0.0")?(A={animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},"undefined"!=typeof Proxy?s.cssNumber=new Proxy(A,{get:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.get.apply(this,arguments)},set:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.set.apply(this,arguments)}}):s.cssNumber=A):A=s.cssNumber,Q=s.fn.css,i(s.fn,"css",function(e,t){var r,n,o=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(o,e,t)}),this):("number"==typeof t&&(r=x(e),n=r,C.test(n)&&N.test(n[0].toUpperCase()+n.slice(1))||A[r]||u("css-number",'Number-typed values are deprecated for jQuery.fn.css("'+e+'", value)')),Q.apply(this,arguments))},"css-number");var S,P,k,H,E=s.data;i(s,"data",function(e,t,r){var n,o,a;if(t&&"object"==typeof t&&2===arguments.length){for(a in n=s.hasData(e)&&E.call(this,e),o={},t)a!==x(a)?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+a),n[a]=t[a]):o[a]=t[a];return E.call(this,e,o),t}return t&&"string"==typeof t&&t!==x(t)&&(n=s.hasData(e)&&E.call(this,e))&&t in n?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):E.apply(this,arguments)},"data-camelCase"),s.fx&&(k=s.Tween.prototype.run,H=function(e){return e},i(s.Tween.prototype,"run",function(){1<s.easing[this.easing].length&&(u("easing-one-arg","'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=H),k.apply(this,arguments)},"easing-one-arg"),S=s.fx.interval,P="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"interval",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||u("fx-interval",P),s.migrateIsPatchEnabled("fx-interval")&&void 0===S?13:S},set:function(e){u("fx-interval",P),S=e}}));var M=s.fn.load,q=s.event.add,O=s.event.fix;s.event.props=[],s.event.fixHooks={},r(s.event.props,"concat",s.event.props.concat,"event-old-patch","jQuery.event.props.concat() is deprecated and removed"),i(s.event,"fix",function(e){var t,r=e.type,n=this.fixHooks[r],o=s.event.props;if(o.length){u("event-old-patch","jQuery.event.props are deprecated and removed: "+o.join());while(o.length)s.event.addProp(o.pop())}if(n&&!n._migrated_&&(n._migrated_=!0,u("event-old-patch","jQuery.event.fixHooks are deprecated and removed: "+r),(o=n.props)&&o.length))while(o.length)s.event.addProp(o.pop());return t=O.call(this,e),n&&n.filter?n.filter(t,e):t},"event-old-patch"),i(s.event,"add",function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&u("load-after-event","jQuery(window).on('load'...) called after load event occurred"),q.apply(this,arguments)},"load-after-event"),s.each(["load","unload","error"],function(e,t){i(s.fn,t,function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?M.apply(this,e):(u("shorthand-removed-v3","jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))},"shorthand-removed-v3")}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){c(s.fn,r,function(e,t){return 0<arguments.length?this.on(r,null,e,t):this.trigger(r)},"shorthand-deprecated-v3","jQuery.fn."+r+"() event shorthand is deprecated")}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&u("ready-event","'ready' event is deprecated")}},c(s.fn,"bind",function(e,t,r){return this.on(e,null,t,r)},"pre-on-methods","jQuery.fn.bind() is deprecated"),c(s.fn,"unbind",function(e,t){return this.off(e,null,t)},"pre-on-methods","jQuery.fn.unbind() is deprecated"),c(s.fn,"delegate",function(e,t,r,n){return this.on(t,e,r,n)},"pre-on-methods","jQuery.fn.delegate() is deprecated"),c(s.fn,"undelegate",function(e,t,r){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",r)},"pre-on-methods","jQuery.fn.undelegate() is deprecated"),c(s.fn,"hover",function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)},"pre-on-methods","jQuery.fn.hover() is deprecated");function T(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}var F=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1></$2>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1></$2>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?I.apply(this,arguments):(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s});
EasyCookie=(function(){var EPOCH='Thu, 01-Jan-1970 00:00:01 GMT',RATIO=1000*60*60*24,KEYS=['expires','path','domain'],esc=escape,un=unescape,doc=document,me;var get_now=function(){var r=new Date();r.setTime(r.getTime());return r;}
var cookify=function(c_key,c_val){var i,key,val,r=[],opt=(arguments.length>2)?arguments[2]:{};r.push(esc(c_key)+'='+esc(c_val));for(i=0;i<KEYS.length;i++){key=KEYS[i];if(val=opt[key])
r.push(key+'='+val);}
if(opt.secure)
r.push('secure');return r.join('; ');}
var alive=function(){var k='__EC_TEST__',v=new Date();v=v.toGMTString();this.set(k,v);this.enabled=(this.remove(k)==v);return this.enabled;}
me={set:function(key,val){var opt=(arguments.length>2)?arguments[2]:{},now=get_now(),expire_at,cfg={};if(opt.expires){opt.expires*=RATIO;cfg.expires=new Date(now.getTime()+opt.expires);cfg.expires=cfg.expires.toGMTString();}
var keys=['path','domain','secure'];for(i=0;i<keys.length;i++)
if(opt[keys[i]])
cfg[keys[i]]=opt[keys[i]];var r=cookify(key,val,cfg);doc.cookie=r;return val;},has:function(key){key=esc(key);var c=doc.cookie,ofs=c.indexOf(key+'='),len=ofs+key.length+1,sub=c.substring(0,key.length);return((!ofs&&key!=sub)||ofs<0)?false:true;},get:function(key){key=esc(key);var c=doc.cookie,ofs=c.indexOf(key+'='),len=ofs+key.length+1,sub=c.substring(0,key.length),end;if((!ofs&&key!=sub)||ofs<0)
return null;end=c.indexOf(';',len);if(end<0)
end=c.length;return un(c.substring(len,end));},remove:function(k){var r=me.get(k),opt={expires:EPOCH};doc.cookie=cookify(k,'',opt);return r;},keys:function(){var c=doc.cookie,ps=c.split('; '),i,p,r=[];for(i=0;i<ps.length;i++){p=ps[i].split('=');r.push(un(p[0]));}
return r;},all:function(){var c=doc.cookie,ps=c.split('; '),i,p,r=[];for(i=0;i<ps.length;i++){p=ps[i].split('=');r.push([un(p[0]),un(p[1])]);}
return r;},version:'0.2.1',enabled:false};me.enabled=alive.call(me);return me;}());
window.Ngg_Store={
get: function(key){
return EasyCookie.get(key);
},
set: function(key, value){
if(typeof(value)=='object'){
value=JSON.stringify(value);
}
return EasyCookie.set(key, value, {
expires: 10,
path: '/',
secure: false
});
},
del: function(key){
EasyCookie.remove(key);
return !this.has(key);
},
has: function(key){
var value=this.get(key);
return typeof(value)!='undefined'&&value!=null;
},
save: function(){
return true;
}};
jQuery(function($){
$(window).on('unload', function(){
Ngg_Store.save();
})
});
!function(){"use strict";var g={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function y(e){return function(e,t){var r,n,i,s,a,o,p,c,l,u=1,f=e.length,d="";for(n=0;n<f;n++)if("string"==typeof e[n])d+=e[n];else if("object"==typeof e[n]){if((s=e[n]).keys)for(r=t[u],i=0;i<s.keys.length;i++){if(null==r)throw new Error(y('[sprintf] Cannot access property "%s" of undefined value "%s"',s.keys[i],s.keys[i-1]));r=r[s.keys[i]]}else r=s.param_no?t[s.param_no]:t[u++];if(g.not_type.test(s.type)&&g.not_primitive.test(s.type)&&r instanceof Function&&(r=r()),g.numeric_arg.test(s.type)&&"number"!=typeof r&&isNaN(r))throw new TypeError(y("[sprintf] expecting number but found %T",r));switch(g.number.test(s.type)&&(c=0<=r),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0<p?o.repeat(p):"",d+=s.align?l+r+a:"0"===o?l+a+r:a+l+r)}return d}(function(e){if(p[e])return p[e];var t,r=e,n=[],i=0;for(;r;){if(null!==(t=g.text.exec(r)))n.push(t[0]);else if(null!==(t=g.modulo.exec(r)))n.push("%");else{if(null===(t=g.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var s=[],a=t[2],o=[];if(null===(o=g.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(o[1]);""!==(a=a.substring(o[0].length));)if(null!==(o=g.key_access.exec(a)))s.push(o[1]);else{if(null===(o=g.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(o[1])}t[2]=s}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return p[e]=n}(e),arguments)}function e(e,t){return y.apply(null,[e].concat(t||[]))}var p=Object.create(null);"undefined"!=typeof exports&&(exports.sprintf=y,exports.vsprintf=e),"undefined"!=typeof window&&(window.sprintf=y,window.vsprintf=e,"function"==typeof define&&define.amd&&define(function(){return{sprintf:y,vsprintf:e}}))}();
(function (global, factory){
typeof exports==='object'&&typeof module!=='undefined' ? module.exports=factory() :
typeof define==='function'&&define.amd ? define(factory) :
(global=global||self, global.shave=factory());
}(this, (function (){ 'use strict';
function shave(target, maxHeight){
var opts=arguments.length > 2&&arguments[2]!==undefined ? arguments[2]:{};
if(typeof maxHeight==='undefined'||isNaN(maxHeight)) throw Error('maxHeight is required');
var els=typeof target==='string' ? document.querySelectorAll(target):target;
if(!els) return;
var character=opts.character||'…';
var classname=opts.classname||'js-shave';
var spaces=typeof opts.spaces==='boolean' ? opts.spaces:true;
var charHtml="<span class=\"js-shave-char\">".concat(character, "</span>");
if(!('length' in els)) els=[els];
for (var i=0; i < els.length; i +=1){
var el=els[i];
var styles=el.style;
var span=el.querySelector(".".concat(classname));
var textProp=el.textContent===undefined ? 'innerText':'textContent';
if(span){
el.removeChild(el.querySelector('.js-shave-char'));
el[textProp]=el[textProp];
}
var fullText=el[textProp];
var words=spaces ? fullText.split(' '):fullText;
if(words.length < 2) continue;
var heightStyle=styles.height;
styles.height='auto';
var maxHeightStyle=styles.maxHeight;
styles.maxHeight='none';
if(el.offsetHeight <=maxHeight){
styles.height=heightStyle;
styles.maxHeight=maxHeightStyle;
continue;
}
var max=words.length - 1;
var min=0;
var pivot=void 0;
while (min < max){
pivot=min + max + 1 >> 1;
el[textProp]=spaces ? words.slice(0, pivot).join(' '):words.slice(0, pivot);
el.insertAdjacentHTML('beforeend', charHtml);
if(el.offsetHeight > maxHeight) max=pivot - 1;else min=pivot;
}
el[textProp]=spaces ? words.slice(0, max).join(' '):words.slice(0, max);
el.insertAdjacentHTML('beforeend', charHtml);
var diff=spaces ? " ".concat(words.slice(max).join(' ')):words.slice(max);
var shavedText=document.createTextNode(diff);
var elWithShavedText=document.createElement('span');
elWithShavedText.classList.add(classname);
elWithShavedText.style.display='none';
elWithShavedText.appendChild(shavedText);
el.insertAdjacentElement('beforeend', elWithShavedText);
styles.height=heightStyle;
styles.maxHeight=maxHeightStyle;
}}
return shave;
})));
!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}(window,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e}function o(t,e,r){return this instanceof o?("string"==typeof t&&(t=document.querySelectorAll(t)),this.elements=n(t),this.options=i({},this.options),"function"==typeof e?r=e:i(this.options,e),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(t,e,r)}function r(t){this.img=t}function s(t,e){this.url=t,this.element=e,this.img=new Image}var h=t.jQuery,a=t.console;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),this.options.background===!0&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&d[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var i=new s(t,e);this.images.push(i)},o.prototype.check=function(){function t(t,i,n){setTimeout(function(){e.progress(t,i,n)})}var e=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},o.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();return t?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(h=e,h.fn.imagesLoaded=function(t,e){var i=new o(this,t,e);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
(function(window, factory){
if(typeof define=='function'&&define.amd){
define([ 'jquery' ], function(jQuery){
return factory(window, jQuery);
});
}else if(typeof module=='object'&&module.exports){
module.exports=factory(
window,
require('jquery')
);
}else{
window.Galleria=factory(
window,
window.jQuery
);
}}(window, function factory(window, $, Galleria, undef){
var doc=window.document,
$doc=$(doc),
$win=$(window),
jQuery=$,
protoArray=Array.prototype,
VERSION=1.61,
DEBUG=false,
TIMEOUT=30000,
DUMMY=false,
NAV=navigator.userAgent.toLowerCase(),
HASH=window.location.hash.replace(/#\//, ''),
PROT=window.location.protocol=="file:" ? "http:":window.location.protocol,
M=Math,
F=function(){},
FALSE=function(){ return false; },
MOBILE = !(
(window.screen.width > 1279&&window.devicePixelRatio==1) ||
(window.screen.width > 1000&&window.innerWidth < (window.screen.width * .9))
),
IE=(function(){
var v=3,
div=doc.createElement('div'),
all=div.getElementsByTagName('i');
do {
div.innerHTML='<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->';
} while(all[0]);
return v > 4 ? v:doc.documentMode||undef;
}()),
DOM=function(){
return {
html:  doc.documentElement,
body:  doc.body,
head:  doc.getElementsByTagName('head')[0],
title: doc.title
};},
IFRAME=window.parent!==window.self,
_eventlist='data ready thumbnail loadstart loadfinish image play pause progress ' +
'fullscreen_enter fullscreen_exit idle_enter idle_exit rescale ' +
'lightbox_open lightbox_close lightbox_image',
_events=(function(){
var evs=[];
$.each(_eventlist.split(' '), function(i, ev){
evs.push(ev);
if(/_/.test(ev) ){
evs.push(ev.replace(/_/g, '') );
}});
return evs;
}()),
_legacyOptions=function(options){
var n;
if(typeof options!=='object'){
return options;
}
$.each(options, function(key, value){
if(/^[a-z]+_/.test(key) ){
n='';
$.each(key.split('_'), function(i, k){
n +=i > 0 ? k.substr(0, 1).toUpperCase() + k.substr(1):k;
});
options[ n ]=value;
delete options[ key ];
}});
return options;
},
_patchEvent=function(type){
if($.inArray(type, _events) > -1){
return Galleria[ type.toUpperCase() ];
}
return type;
},
_video={
youtube: {
reg: /https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&amp;(?:amp;)?)*v(?:&lt;[A-Z]+&gt;)?=([0-9a-zA-Z\-\_]+))/i,
embed: function(){
return PROT + '//www.youtube.com/embed/' + this.id;
},
get_thumb: function(data){
return PROT + '//img.youtube.com/vi/'+this.id+'/default.jpg';
},
get_image: function(data){
return PROT + '//img.youtube.com/vi/'+this.id+'/maxresdefault.jpg';            }},
vimeo: {
reg: /https?:\/\/(?:www\.)?(vimeo\.com)\/(?:hd#)?([0-9]+)/i,
embed: function(){
return PROT + '//player.vimeo.com/video/' + this.id;
},
getUrl: function(){
return PROT + '//vimeo.com/api/v2/video/' + this.id + '.json?callback=?';
},
get_thumb: function(data){
return data[0].thumbnail_medium;
},
get_image: function(data){
return data[0].thumbnail_large;
}},
dailymotion: {
reg: /https?:\/\/(?:www\.)?(dailymotion\.com)\/video\/([^_]+)/,
embed: function(){
return PROT + '//www.dailymotion.com/embed/video/' + this.id;
},
getUrl: function(){
return 'https://api.dailymotion.com/video/' + this.id + '?fields=thumbnail_240_url,thumbnail_720_url&callback=?';
},
get_thumb: function(data){
return data.thumbnail_240_url;
},
get_image: function(data){
return data.thumbnail_720_url;
}},
_inst: []
},
Video=function(type, id){
for(var i=0; i<_video._inst.length; i++){
if(_video._inst[i].id===id&&_video._inst[i].type==type){
return _video._inst[i];
}}
this.type=type;
this.id=id;
this.readys=[];
_video._inst.push(this);
var self=this;
$.extend(this, _video[type]);
_videoThumbs=function(data){
self.data=data;
$.each(self.readys, function(i, fn){
fn(self.data);
});
self.readys=[];
};
if(this.hasOwnProperty('getUrl')){
$.getJSON(this.getUrl(), _videoThumbs);
}else{
window.setTimeout(_videoThumbs, 400);
}
this.getMedia=function(type, callback, fail){
fail=fail||F;
var self=this;
var success=function(data){
callback(self['get_'+type](data) );
};
try {
if(self.data){
success(self.data);
}else{
self.readys.push(success);
}} catch(e){
fail();
}};},
_videoTest=function(url){
var match;
for(var v in _video){
match=url&&_video[v].reg&&url.match(_video[v].reg);
if(match&&match.length){
return {
id: match[2],
provider: v
};}}
return false;
},
_nativeFullscreen={
support: (function(){
var html=DOM().html;
return !IFRAME&&(html.requestFullscreen||html.msRequestFullscreen||html.mozRequestFullScreen||html.webkitRequestFullScreen);
}()),
callback: F,
enter: function(instance, callback, elem){
this.instance=instance;
this.callback=callback||F;
elem=elem||DOM().html;
if(elem.requestFullscreen){
elem.requestFullscreen();
}
else if(elem.msRequestFullscreen){
elem.msRequestFullscreen();
}
else if(elem.mozRequestFullScreen){
elem.mozRequestFullScreen();
}
else if(elem.webkitRequestFullScreen){
elem.webkitRequestFullScreen();
}},
exit: function(callback){
this.callback=callback||F;
if(doc.exitFullscreen){
doc.exitFullscreen();
}
else if(doc.msExitFullscreen){
doc.msExitFullscreen();
}
else if(doc.mozCancelFullScreen){
doc.mozCancelFullScreen();
}
else if(doc.webkitCancelFullScreen){
doc.webkitCancelFullScreen();
}},
instance: null,
listen: function(){
if(!this.support){
return;
}
var handler=function(){
if(!_nativeFullscreen.instance){
return;
}
var fs=_nativeFullscreen.instance._fullscreen;
if(doc.fullscreen||doc.mozFullScreen||doc.webkitIsFullScreen||(doc.msFullscreenElement&&doc.msFullscreenElement!==null) ){
fs._enter(_nativeFullscreen.callback);
}else{
fs._exit(_nativeFullscreen.callback);
}};
doc.addEventListener('fullscreenchange', handler, false);
doc.addEventListener('MSFullscreenChange', handler, false);
doc.addEventListener('mozfullscreenchange', handler, false);
doc.addEventListener('webkitfullscreenchange', handler, false);
}},
_galleries=[],
_instances=[],
_hasError=false,
_canvas=false,
_pool=[],
_loadedThemes=[],
_themeLoad=function(theme){
_loadedThemes.push(theme);
$.each(_pool, function(i, instance){
if(instance._options.theme==theme.name||(!instance._initialized&&!instance._options.theme)){
instance.theme=theme;
instance._init.call(instance);
}});
},
Utils=(function(){
return {
clearTimer: function(id){
$.each(Galleria.get(), function(){
this.clearTimer(id);
});
},
addTimer: function(id){
$.each(Galleria.get(), function(){
this.addTimer(id);
});
},
array:function(obj){
return protoArray.slice.call(obj, 0);
},
create:function(className, nodeName){
nodeName=nodeName||'div';
var elem=doc.createElement(nodeName);
elem.className=className;
return elem;
},
removeFromArray:function(arr, elem){
$.each(arr, function(i, el){
if(el==elem){
arr.splice(i, 1);
return false;
}});
return arr;
},
getScriptPath:function(src){
src=src||$('script:last').attr('src');
var slices=src.split('/');
if(slices.length==1){
return '';
}
slices.pop();
return slices.join('/') + '/';
},
animate:(function(){
var transition=(function(style){
var props='transition WebkitTransition MozTransition OTransition'.split(' '),
i;
if(window.opera){
return false;
}
for(i=0; props[i]; i++){
if(typeof style[ props[ i ] ]!=='undefined'){
return props[ i ];
}}
return false;
}((doc.body||doc.documentElement).style));
var endEvent={
MozTransition: 'transitionend',
OTransition: 'oTransitionEnd',
WebkitTransition: 'webkitTransitionEnd',
transition: 'transitionend'
}[ transition ];
var easings={
_default: [0.25, 0.1, 0.25, 1],
galleria: [0.645, 0.045, 0.355, 1],
galleriaIn: [0.55, 0.085, 0.68, 0.53],
galleriaOut: [0.25, 0.46, 0.45, 0.94],
ease: [0.25, 0, 0.25, 1],
linear: [0.25, 0.25, 0.75, 0.75],
'ease-in': [0.42, 0, 1, 1],
'ease-out': [0, 0, 0.58, 1],
'ease-in-out': [0.42, 0, 0.58, 1]
};
var setStyle=function(elem, value, suffix){
var css={};
suffix=suffix||'transition';
$.each('webkit moz ms o'.split(' '), function(){
css[ '-' + this + '-' + suffix ]=value;
});
elem.css(css);
};
var clearStyle=function(elem){
setStyle(elem, 'none', 'transition');
if(Galleria.WEBKIT&&Galleria.TOUCH){
setStyle(elem, 'translate3d(0,0,0)', 'transform');
if(elem.data('revert')){
elem.css(elem.data('revert'));
elem.data('revert', null);
}}
};
var change, strings, easing, syntax, revert, form, css;
return function(elem, to, options){
options=$.extend({
duration: 400,
complete: F,
stop: false
}, options);
elem=$(elem);
if(!options.duration){
elem.css(to);
options.complete.call(elem[0]);
return;
}
if(!transition){
elem.animate(to, options);
return;
}
if(options.stop){
elem.off(endEvent);
clearStyle(elem);
}
change=false;
$.each(to, function(key, val){
css=elem.css(key);
if(Utils.parseValue(css)!=Utils.parseValue(val) ){
change=true;
}
elem.css(key, css);
});
if(!change){
window.setTimeout(function(){
options.complete.call(elem[0]);
}, options.duration);
return;
}
strings=[];
easing=options.easing in easings ? easings[ options.easing ]:easings._default;
syntax=' ' + options.duration + 'ms' + ' cubic-bezier('  + easing.join(',') + ')';
window.setTimeout((function(elem, endEvent, to, syntax){
return function(){
elem.one(endEvent, (function(elem){
return function(){
clearStyle(elem);
options.complete.call(elem[0]);
};}(elem)));
if(Galleria.WEBKIT&&Galleria.TOUCH){
revert={};
form=[0,0,0];
$.each(['left', 'top'], function(i, m){
if(m in to){
form[ i ]=(Utils.parseValue(to[ m ]) - Utils.parseValue(elem.css(m))) + 'px';
revert[ m ]=to[ m ];
delete to[ m ];
}});
if(form[0]||form[1]){
elem.data('revert', revert);
strings.push('-webkit-transform' + syntax);
setStyle(elem, 'translate3d(' + form.join(',') + ')', 'transform');
}}
$.each(to, function(p, val){
strings.push(p + syntax);
});
setStyle(elem, strings.join(','));
elem.css(to);
};}(elem, endEvent, to, syntax)), 2);
};}()),
removeAlpha:function(elem){
if(elem instanceof jQuery){
elem=elem[0];
}
if(IE < 9&&elem){
var style=elem.style,
currentStyle=elem.currentStyle,
filter=currentStyle&&currentStyle.filter||style.filter||"";
if(/alpha/.test(filter) ){
style.filter=filter.replace(/alpha\([^)]*\)/i, '');
}}
},
forceStyles:function(elem, styles){
elem=$(elem);
if(elem.attr('style') ){
elem.data('styles', elem.attr('style') ).removeAttr('style');
}
elem.css(styles);
},
revertStyles:function(){
$.each(Utils.array(arguments), function(i, elem){
elem=$(elem);
elem.removeAttr('style');
elem.attr('style',''); // "fixes" webkit bug
if(elem.data('styles') ){
elem.attr('style', elem.data('styles')).data('styles', null);
}});
},
moveOut:function(elem){
Utils.forceStyles(elem, {
position: 'absolute',
left: -10000
});
},
moveIn:function(){
Utils.revertStyles.apply(Utils, Utils.array(arguments) );
},
hide:function(elem, speed, callback){
callback=callback||F;
var $elem=$(elem);
elem=$elem[0];
if(! $elem.data('opacity')){
$elem.data('opacity', $elem.css('opacity'));
}
var style={ opacity: 0 };
if(speed){
var complete=IE < 9&&elem ? function(){
Utils.removeAlpha(elem);
elem.style.visibility='hidden';
callback.call(elem);
}:callback;
Utils.animate(elem, style, {
duration: speed,
complete: complete,
stop: true
});
}else{
if(IE < 9&&elem){
Utils.removeAlpha(elem);
elem.style.visibility='hidden';
}else{
$elem.css(style);
}}
},
show:function(elem, speed, callback){
callback=callback||F;
var $elem=$(elem);
elem=$elem[0];
var saved=parseFloat($elem.data('opacity'))||1,
style={ opacity: saved };
if(speed){
if(IE < 9){
$elem.css('opacity', 0);
elem.style.visibility='visible';
}
var complete=IE < 9&&elem ? function(){
if(style.opacity==1){
Utils.removeAlpha(elem);
}
callback.call(elem);
}:callback;
Utils.animate(elem, style, {
duration: speed,
complete: complete,
stop: true
});
}else{
if(IE < 9&&style.opacity==1&&elem){
Utils.removeAlpha(elem);
elem.style.visibility='visible';
}else{
$elem.css(style);
}}
},
wait:function(options){
Galleria._waiters=Galleria._waiters||[];
options=$.extend({
until:FALSE,
success:F,
error:function(){ Galleria.raise('Could not complete wait function.'); },
timeout: 3000
}, options);
var start=Utils.timestamp(),
elapsed,
now,
tid,
fn=function(){
now=Utils.timestamp();
elapsed=now - start;
Utils.removeFromArray(Galleria._waiters, tid);
if(options.until(elapsed) ){
options.success();
return false;
}
if(typeof options.timeout=='number'&&now >=start + options.timeout){
options.error();
return false;
}
Galleria._waiters.push(tid=window.setTimeout(fn, 10));
};
Galleria._waiters.push(tid=window.setTimeout(fn, 10));
},
toggleQuality:function(img, force){
if(( IE!==7&&IE!==8)||!img||img.nodeName.toUpperCase()!='IMG'){
return;
}
if(typeof force==='undefined'){
force=img.style.msInterpolationMode==='nearest-neighbor';
}
img.style.msInterpolationMode=force ? 'bicubic':'nearest-neighbor';
},
insertStyleTag:function(styles, id){
if(id&&$('#'+id).length){
return;
}
var style=doc.createElement('style');
if(id){
style.id=id;
}
DOM().head.appendChild(style);
if(style.styleSheet){
style.styleSheet.cssText=styles;
}else{
var cssText=doc.createTextNode(styles);
style.appendChild(cssText);
}},
loadScript: function(url, callback){
var done=false,
script=$('<scr'+'ipt>').attr({
src: url,
async: true
}).get(0);
script.onload=script.onreadystatechange=function(){
if(!done&&(!this.readyState ||
this.readyState==='loaded'||this.readyState==='complete')){
done=true;
script.onload=script.onreadystatechange=null;
if(typeof callback==='function'){
callback.call(this, this);
}}
};
DOM().head.appendChild(script);
},
parseValue: function(val){
if(typeof val==='number'){
return val;
}else if(typeof val==='string'){
var arr=val.match(/\-?\d|\./g);
return arr&&arr.constructor===Array ? arr.join('')*1:0;
}else{
return 0;
}},
timestamp: function(){
return new Date().getTime();
},
loadCSS:function(href, id, callback){
var link,
length;
$('link[rel=stylesheet]').each(function(){
if(new RegExp(href).test(this.href) ){
link=this;
return false;
}});
if(typeof id==='function'){
callback=id;
id=undef;
}
callback=callback||F;
if(link){
callback.call(link, link);
return link;
}
length=doc.styleSheets.length;
if($('#' + id).length){
$('#' + id).attr('href', href);
length--;
}else{
link=$('<link>').attr({
rel: 'stylesheet',
href: href,
id: id
}).get(0);
var styles=$('link[rel="stylesheet"], style');
if(styles.length){
styles.get(0).parentNode.insertBefore(link, styles[0]);
}else{
DOM().head.appendChild(link);
}
if(IE&&length >=31){
Galleria.raise('You have reached the browser stylesheet limit (31)', true);
return;
}}
if(typeof callback==='function'){
var $loader=$('<s>').attr('id', 'galleria-loader').hide().appendTo(DOM().body);
Utils.wait({
until: function(){
return $loader.height() > 0;
},
success: function(){
$loader.remove();
callback.call(link, link);
},
error: function(){
$loader.remove();
Galleria.raise('Theme CSS could not load after 20 sec. ' +(Galleria.QUIRK ?
'Your browser is in Quirks Mode, please add a correct doctype.' :
'Please download the latest theme.'), true);
},
timeout: 5000
});
}
return link;
}};}()),
_playIcon=function(container){
var css='.galleria-videoicon{width:60px;height:60px;position:absolute;top:50%;left:50%;z-index:1;' +
'margin:-30px 0 0 -30px;cursor:pointer;background:#000;background:rgba(0,0,0,.8);border-radius:3px;-webkit-transition:all 150ms}' +
'.galleria-videoicon i{width:0px;height:0px;border-style:solid;border-width:10px 0 10px 16px;display:block;' +
'border-color:transparent transparent transparent #ffffff;margin:20px 0 0 22px}.galleria-image:hover .galleria-videoicon{background:#000}';
Utils.insertStyleTag(css, 'galleria-videoicon');
return $(Utils.create('galleria-videoicon') ).html('<i></i>').appendTo(container)
.click(function(){ $(this).siblings('img').mouseup(); });
},
_transitions=(function(){
var _slide=function(params, complete, fade, door){
var easing=this.getOptions('easing'),
distance=this.getStageWidth(),
from={ left: distance *(params.rewind ? -1:1) },
to={ left: 0 };
if(fade){
from.opacity=0;
to.opacity=1;
}else{
from.opacity=1;
}
$(params.next).css(from);
Utils.animate(params.next, to, {
duration: params.speed,
complete: (function(elems){
return function(){
complete();
elems.css({
left: 0
});
};}($(params.next).add(params.prev) )),
queue: false,
easing: easing
});
if(door){
params.rewind = !params.rewind;
}
if(params.prev){
from={ left: 0 };
to={ left: distance *(params.rewind ? 1:-1) };
if(fade){
from.opacity=1;
to.opacity=0;
}
$(params.prev).css(from);
Utils.animate(params.prev, to, {
duration: params.speed,
queue: false,
easing: easing,
complete: function(){
$(this).css('opacity', 0);
}});
}};
return {
active: false,
init: function(effect, params, complete){
if(_transitions.effects.hasOwnProperty(effect) ){
_transitions.effects[ effect ].call(this, params, complete);
}},
effects: {
fade: function(params, complete){
$(params.next).css({
opacity: 0,
left: 0
});
Utils.animate(params.next, {
opacity: 1
},{
duration: params.speed,
complete: complete
});
if(params.prev){
$(params.prev).css('opacity',1).show();
Utils.animate(params.prev, {
opacity: 0
},{
duration: params.speed
});
}},
flash: function(params, complete){
$(params.next).css({
opacity: 0,
left: 0
});
if(params.prev){
Utils.animate(params.prev, {
opacity: 0
},{
duration: params.speed/2,
complete: function(){
Utils.animate(params.next, {
opacity:1
},{
duration: params.speed,
complete: complete
});
}});
}else{
Utils.animate(params.next, {
opacity: 1
},{
duration: params.speed,
complete: complete
});
}},
pulse: function(params, complete){
if(params.prev){
$(params.prev).hide();
}
$(params.next).css({
opacity: 0,
left: 0
}).show();
Utils.animate(params.next, {
opacity:1
},{
duration: params.speed,
complete: complete
});
},
slide: function(params, complete){
_slide.apply(this, Utils.array(arguments) );
},
fadeslide: function(params, complete){
_slide.apply(this, Utils.array(arguments).concat([true]) );
},
doorslide: function(params, complete){
_slide.apply(this, Utils.array(arguments).concat([false, true]) );
}}
};}());
_nativeFullscreen.listen();
$.event.special['click:fast']={
propagate: true,
add: function(handleObj){
var getCoords=function(e){
if(e.touches&&e.touches.length){
var touch=e.touches[0];
return {
x: touch.pageX,
y: touch.pageY
};}};
var def={
touched: false,
touchdown: false,
coords: { x:0, y:0 },
evObj: {}};
$(this).data({
clickstate: def,
timer: 0
}).on('touchstart.fast', function(e){
window.clearTimeout($(this).data('timer'));
$(this).data('clickstate', {
touched: true,
touchdown: true,
coords: getCoords(e.originalEvent),
evObj: e
});
}).on('touchmove.fast', function(e){
var coords=getCoords(e.originalEvent),
state=$(this).data('clickstate'),
distance=Math.max(Math.abs(state.coords.x - coords.x),
Math.abs(state.coords.y - coords.y)
);
if(distance > 6){
$(this).data('clickstate', $.extend(state, {
touchdown: false
}));
}}).on('touchend.fast', function(e){
var $this=$(this),
state=$this.data('clickstate');
if(state.touchdown){
handleObj.handler.call(this, e);
}
$this.data('timer', window.setTimeout(function(){
$this.data('clickstate', def);
}, 400));
}).on('click.fast', function(e){
var state=$(this).data('clickstate');
if(state.touched){
return false;
}
$(this).data('clickstate', def);
handleObj.handler.call(this, e);
});
},
remove: function(){
$(this).off('touchstart.fast touchmove.fast touchend.fast click.fast');
}};
$win.on('orientationchange', function(){
$(this).resize();
});
Galleria=function(){
var self=this;
this._options={};
this._playing=false;
this._playtime=5000;
this._active=null;
this._queue={ length: 0 };
this._data=[];
this._dom={};
this._thumbnails=[];
this._layers=[];
this._initialized=false;
this._firstrun=false;
this._stageWidth=0;
this._stageHeight=0;
this._target=undef;
this._binds=[];
this._id=parseInt(M.random()*10000, 10);
var divs='container stage images image-nav image-nav-left image-nav-right ' +
'info info-text info-title info-description ' +
'thumbnails thumbnails-list thumbnails-container thumb-nav-left thumb-nav-right ' +
'loader counter tooltip',
spans='current total';
$.each(divs.split(' '), function(i, elemId){
self._dom[ elemId ]=Utils.create('galleria-' + elemId);
});
$.each(spans.split(' '), function(i, elemId){
self._dom[ elemId ]=Utils.create('galleria-' + elemId, 'span');
});
var keyboard=this._keyboard={
keys:{
'UP': 38,
'DOWN': 40,
'LEFT': 37,
'RIGHT': 39,
'RETURN': 13,
'ESCAPE': 27,
'BACKSPACE': 8,
'SPACE': 32
},
map:{},
bound: false,
press: function(e){
var key=e.keyCode||e.which;
if(key in keyboard.map&&typeof keyboard.map[key]==='function'){
keyboard.map[key].call(self, e);
}},
attach: function(map){
var key, up;
for(key in map){
if(map.hasOwnProperty(key) ){
up=key.toUpperCase();
if(up in keyboard.keys){
keyboard.map[ keyboard.keys[up] ]=map[key];
}else{
keyboard.map[ up ]=map[key];
}}
}
if(!keyboard.bound){
keyboard.bound=true;
$doc.on('keydown', keyboard.press);
}},
detach: function(){
keyboard.bound=false;
keyboard.map={};
$doc.off('keydown', keyboard.press);
}};
var controls=this._controls={
0: undef,
1: undef,
active:0,
swap:function(){
controls.active=controls.active ? 0:1;
},
getActive:function(){
return self._options.swipe ? controls.slides[ self._active ]:controls[ controls.active ];
},
getNext:function(){
return self._options.swipe ? controls.slides[ self.getNext(self._active) ]:controls[ 1 - controls.active ];
},
slides:[],
frames: [],
layers: []
};
var carousel=this._carousel={
next: self.$('thumb-nav-right'),
prev: self.$('thumb-nav-left'),
width: 0,
current: 0,
max: 0,
hooks: [],
update: function(){
var w=0,
h=0,
hooks=[0];
$.each(self._thumbnails, function(i, thumb){
if(thumb.ready){
w +=thumb.outerWidth||$(thumb.container).outerWidth(true);
var containerWidth=$(thumb.container).width();
w +=containerWidth - M.floor(containerWidth);
hooks[ i+1 ]=w;
h=M.max(h, thumb.outerHeight||$(thumb.container).outerHeight(true) );
}});
self.$('thumbnails').css({
width: w,
height: h
});
carousel.max=w;
carousel.hooks=hooks;
carousel.width=self.$('thumbnails-list').width();
carousel.setClasses();
self.$('thumbnails-container').toggleClass('galleria-carousel', w > carousel.width);
carousel.width=self.$('thumbnails-list').width();
},
bindControls: function(){
var i;
carousel.next.on('click:fast', function(e){
e.preventDefault();
if(self._options.carouselSteps==='auto'){
for(i=carousel.current; i < carousel.hooks.length; i++){
if(carousel.hooks[i] - carousel.hooks[ carousel.current ] > carousel.width){
carousel.set(i - 2);
break;
}}
}else{
carousel.set(carousel.current + self._options.carouselSteps);
}});
carousel.prev.on('click:fast', function(e){
e.preventDefault();
if(self._options.carouselSteps==='auto'){
for(i=carousel.current; i >=0; i--){
if(carousel.hooks[ carousel.current ] - carousel.hooks[i] > carousel.width){
carousel.set(i + 2);
break;
}else if(i===0){
carousel.set(0);
break;
}}
}else{
carousel.set(carousel.current - self._options.carouselSteps);
}});
},
set: function(i){
i=M.max(i, 0);
while(carousel.hooks[i - 1] + carousel.width >=carousel.max&&i >=0){
i--;
}
carousel.current=i;
carousel.animate();
},
getLast: function(i){
return(i||carousel.current) - 1;
},
follow: function(i){
if(i===0||i===carousel.hooks.length - 2){
carousel.set(i);
return;
}
var last=carousel.current;
while(carousel.hooks[last] - carousel.hooks[ carousel.current ] <
carousel.width&&last <=carousel.hooks.length){
last ++;
}
if(i - 1 < carousel.current){
carousel.set(i - 1);
}else if(i + 2 > last){
carousel.set(i - last + carousel.current + 2);
}},
setClasses: function(){
carousel.prev.toggleClass('disabled', !carousel.current);
carousel.next.toggleClass('disabled', carousel.hooks[ carousel.current ] + carousel.width >=carousel.max);
},
animate: function(to){
carousel.setClasses();
var num=carousel.hooks[ carousel.current ] * -1;
if(isNaN(num) ){
return;
}
self.$('thumbnails').css('left', function(){
return $(this).css('left');
});
Utils.animate(self.get('thumbnails'), {
left: num
},{
duration: self._options.carouselSpeed,
easing: self._options.easing,
queue: false
});
}};
var tooltip=this._tooltip={
initialized:false,
open: false,
timer: 'tooltip' + self._id,
swapTimer: 'swap' + self._id,
init: function(){
tooltip.initialized=true;
var css='.galleria-tooltip{padding:3px 8px;max-width:50%;background:#ffe;color:#000;z-index:3;position:absolute;font-size:11px;line-height:1.3;' +
'opacity:0;box-shadow:0 0 2px rgba(0,0,0,.4);-moz-box-shadow:0 0 2px rgba(0,0,0,.4);-webkit-box-shadow:0 0 2px rgba(0,0,0,.4);}';
Utils.insertStyleTag(css, 'galleria-tooltip');
self.$('tooltip').css({
opacity: 0.8,
visibility: 'visible',
display: 'none'
});
},
move: function(e){
var mouseX=self.getMousePosition(e).x,
mouseY=self.getMousePosition(e).y,
$elem=self.$('tooltip'),
x=mouseX,
y=mouseY,
height=$elem.outerHeight(true) + 1,
width=$elem.outerWidth(true),
limitY=height + 15;
var maxX=self.$('container').width() - width - 2,
maxY=self.$('container').height() - height - 2;
if(!isNaN(x)&&!isNaN(y)){
x +=10;
y -=(height+8);
x=M.max(0, M.min(maxX, x) );
y=M.max(0, M.min(maxY, y) );
if(mouseY < limitY){
y=limitY;
}
$elem.css({ left: x, top: y });
}},
bind: function(elem, value){
if(Galleria.TOUCH){
return;
}
if(! tooltip.initialized){
tooltip.init();
}
var mouseout=function(){
self.$('container').off('mousemove', tooltip.move);
self.clearTimer(tooltip.timer);
self.$('tooltip').stop().animate({
opacity: 0
}, 200, function(){
self.$('tooltip').hide();
self.addTimer(tooltip.swapTimer, function(){
tooltip.open=false;
}, 1000);
});
};
var hover=function(elem, value){
tooltip.define(elem, value);
$(elem).hover(function(){
self.clearTimer(tooltip.swapTimer);
self.$('container').off('mousemove', tooltip.move).on('mousemove', tooltip.move).trigger('mousemove');
tooltip.show(elem);
self.addTimer(tooltip.timer, function(){
self.$('tooltip').stop().show().animate({
opacity: 1
});
tooltip.open=true;
}, tooltip.open ? 0:500);
}, mouseout).click(mouseout);
};
if(typeof value==='string'){
hover(( elem in self._dom ? self.get(elem):elem), value);
}else{
$.each(elem, function(elemID, val){
hover(self.get(elemID), val);
});
}},
show: function(elem){
elem=$(elem in self._dom ? self.get(elem):elem);
var text=elem.data('tt'),
mouseup=function(e){
window.setTimeout((function(ev){
return function(){
tooltip.move(ev);
};}(e)), 10);
elem.off('mouseup', mouseup);
};
text=typeof text==='function' ? text():text;
if(! text){
return;
}
self.$('tooltip').html(text.replace(/\s/, '&#160;'));
elem.on('mouseup', mouseup);
},
define: function(elem, value){
if(typeof value!=='function'){
var s=value;
value=function(){
return s;
};}
elem=$(elem in self._dom ? self.get(elem):elem).data('tt', value);
tooltip.show(elem);
}};
var fullscreen=this._fullscreen={
scrolled: 0,
crop: undef,
active: false,
prev: $(),
beforeEnter: function(fn){ fn(); },
beforeExit:  function(fn){ fn(); },
keymap: self._keyboard.map,
parseCallback: function(callback, enter){
return _transitions.active ? function(){
if(typeof callback=='function'){
callback.call(self);
}
var active=self._controls.getActive(),
next=self._controls.getNext();
self._scaleImage(next);
self._scaleImage(active);
if(enter&&self._options.trueFullscreen){
$(active.container).add(next.container).trigger('transitionend');
}}:callback;
},
enter: function(callback){
fullscreen.beforeEnter(function(){
callback=fullscreen.parseCallback(callback, true);
if(self._options.trueFullscreen&&_nativeFullscreen.support){
fullscreen.active=true;
Utils.forceStyles(self.get('container'), {
width: '100%',
height: '100%'
});
self.rescale();
if(Galleria.MAC){
if(!(Galleria.SAFARI&&/version\/[1-5]/.test(NAV))){
self.$('container').css('opacity', 0).addClass('fullscreen');
window.setTimeout(function(){
fullscreen.scale();
self.$('container').css('opacity', 1);
}, 50);
}else{
self.$('stage').css('opacity', 0);
window.setTimeout(function(){
fullscreen.scale();
self.$('stage').css('opacity', 1);
},4);
}}else{
self.$('container').addClass('fullscreen');
}
$win.resize(fullscreen.scale);
_nativeFullscreen.enter(self, callback, self.get('container'));
}else{
fullscreen.scrolled=$win.scrollTop();
if(!Galleria.TOUCH){
window.scrollTo(0, 0);
}
fullscreen._enter(callback);
}});
},
_enter: function(callback){
fullscreen.active=true;
if(IFRAME){
fullscreen.iframe=(function(){
var elem,
refer=doc.referrer,
test=doc.createElement('a'),
loc=window.location;
test.href=refer;
if(test.protocol!=loc.protocol ||
test.hostname!=loc.hostname ||
test.port!=loc.port){
Galleria.raise('Parent fullscreen not available. Iframe protocol, domains and ports must match.');
return false;
}
fullscreen.pd=window.parent.document;
$(fullscreen.pd).find('iframe').each(function(){
var idoc=this.contentDocument||this.contentWindow.document;
if(idoc===doc){
elem=this;
return false;
}});
return elem;
}());
}
Utils.hide(self.getActiveImage());
if(IFRAME&&fullscreen.iframe){
fullscreen.iframe.scrolled=$(window.parent).scrollTop();
window.parent.scrollTo(0, 0);
}
var data=self.getData(),
options=self._options,
inBrowser = !self._options.trueFullscreen||!_nativeFullscreen.support,
htmlbody={
height: '100%',
overflow: 'hidden',
margin:0,
padding:0
};
if(inBrowser){
self.$('container').addClass('fullscreen');
fullscreen.prev=self.$('container').prev();
if(!fullscreen.prev.length){
fullscreen.parent=self.$('container').parent();
}
self.$('container').appendTo('body');
Utils.forceStyles(self.get('container'), {
position: Galleria.TOUCH ? 'absolute':'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%',
zIndex: 10000
});
Utils.forceStyles(DOM().html, htmlbody);
Utils.forceStyles(DOM().body, htmlbody);
}
if(IFRAME&&fullscreen.iframe){
Utils.forceStyles(fullscreen.pd.documentElement, htmlbody);
Utils.forceStyles(fullscreen.pd.body, htmlbody);
Utils.forceStyles(fullscreen.iframe, $.extend(htmlbody, {
width: '100%',
height: '100%',
top: 0,
left: 0,
position: 'fixed',
zIndex: 10000,
border: 'none'
}));
}
fullscreen.keymap=$.extend({}, self._keyboard.map);
self.attachKeyboard({
escape: self.exitFullscreen,
right: self.next,
left: self.prev
});
fullscreen.crop=options.imageCrop;
if(options.fullscreenCrop!=undef){
options.imageCrop=options.fullscreenCrop;
}
if(data&&data.big&&data.image!==data.big){
var big=new Galleria.Picture(),
cached=big.isCached(data.big),
index=self.getIndex(),
thumb=self._thumbnails[ index ];
self.trigger({
type: Galleria.LOADSTART,
cached: cached,
rewind: false,
index: index,
imageTarget: self.getActiveImage(),
thumbTarget: thumb,
galleriaData: data
});
big.load(data.big, function(big){
self._scaleImage(big, {
complete: function(big){
self.trigger({
type: Galleria.LOADFINISH,
cached: cached,
index: index,
rewind: false,
imageTarget: big.image,
thumbTarget: thumb
});
var image=self._controls.getActive().image;
if(image){
$(image).width(big.image.width).height(big.image.height)
.attr('style', $(big.image).attr('style'));
if(big.image.src.srcset){
$(image).attr('srcset', big.image.src.srcset);
}
if(big.image.src.sizes){
$(image).attr('sizes', big.image.src.sizes);
}
$(image).attr('src', big.image.src);
}}
});
});
var n=self.getNext(index),
p=new Galleria.Picture(),
ndata=self.getData(n);
p.preload(self.isFullscreen()&&ndata.big ? ndata.big:ndata.image);
}
self.rescale(function(){
self.addTimer(false, function(){
if(inBrowser){
Utils.show(self.getActiveImage());
}
if(typeof callback==='function'){
callback.call(self);
}
self.rescale();
}, 100);
self.trigger(Galleria.FULLSCREEN_ENTER);
});
if(!inBrowser){
Utils.show(self.getActiveImage());
}else{
$win.resize(fullscreen.scale);
}},
scale:function(){
self.rescale();
},
exit: function(callback){
fullscreen.beforeExit(function(){
callback=fullscreen.parseCallback(callback);
if(self._options.trueFullscreen&&_nativeFullscreen.support){
_nativeFullscreen.exit(callback);
}else{
fullscreen._exit(callback);
}});
},
_exit: function(callback){
fullscreen.active=false;
var inBrowser = !self._options.trueFullscreen||!_nativeFullscreen.support,
$container=self.$('container').removeClass('fullscreen');
if(fullscreen.parent){
fullscreen.parent.prepend($container);
}else{
$container.insertAfter(fullscreen.prev);
}
if(inBrowser){
Utils.hide(self.getActiveImage());
Utils.revertStyles(self.get('container'), DOM().html, DOM().body);
if(!Galleria.TOUCH){
window.scrollTo(0, fullscreen.scrolled);
}
var frame=self._controls.frames[ self._controls.active ];
if(frame&&frame.image){
frame.image.src=frame.image.src;
}}
if(IFRAME&&fullscreen.iframe){
Utils.revertStyles(fullscreen.pd.documentElement, fullscreen.pd.body, fullscreen.iframe);
if(fullscreen.iframe.scrolled){
window.parent.scrollTo(0, fullscreen.iframe.scrolled);
}}
self.detachKeyboard();
self.attachKeyboard(fullscreen.keymap);
self._options.imageCrop=fullscreen.crop;
var big=self.getData().big,
image=self._controls.getActive().image;
if(!self.getData().iframe&&image&&big&&big==image.src){
window.setTimeout(function(src){
return function(){
image.src=src;
};}(self.getData().image), 1);
}
self.rescale(function(){
self.addTimer(false, function(){
if(inBrowser){
Utils.show(self.getActiveImage());
}
if(typeof callback==='function'){
callback.call(self);
}
$win.trigger('resize');
}, 50);
self.trigger(Galleria.FULLSCREEN_EXIT);
});
$win.off('resize', fullscreen.scale);
}};
var idle=this._idle={
trunk: [],
bound: false,
active: false,
add: function(elem, to, from, hide){
if(!elem||Galleria.TOUCH){
return;
}
if(!idle.bound){
idle.addEvent();
}
elem=$(elem);
if(typeof from=='boolean'){
hide=from;
from={};}
from=from||{};
var extract={},
style;
for(style in to){
if(to.hasOwnProperty(style) ){
extract[ style ]=elem.css(style);
}}
elem.data('idle', {
from: $.extend(extract, from),
to: to,
complete: true,
busy: false
});
if(!hide){
idle.addTimer();
}else{
elem.css(to);
}
idle.trunk.push(elem);
},
remove: function(elem){
elem=$(elem);
$.each(idle.trunk, function(i, el){
if(el&&el.length&&!el.not(elem).length){
elem.css(elem.data('idle').from);
idle.trunk.splice(i, 1);
}});
if(!idle.trunk.length){
idle.removeEvent();
self.clearTimer(idle.timer);
}},
addEvent:function(){
idle.bound=true;
self.$('container').on('mousemove click', idle.showAll);
if(self._options.idleMode=='hover'){
self.$('container').on('mouseleave', idle.hide);
}},
removeEvent:function(){
idle.bound=false;
self.$('container').on('mousemove click', idle.showAll);
if(self._options.idleMode=='hover'){
self.$('container').off('mouseleave', idle.hide);
}},
addTimer:function(){
if(self._options.idleMode=='hover'){
return;
}
self.addTimer('idle', function(){
idle.hide();
}, self._options.idleTime);
},
hide:function(){
if(!self._options.idleMode||self.getIndex()===false){
return;
}
self.trigger(Galleria.IDLE_ENTER);
var len=idle.trunk.length;
$.each(idle.trunk, function(i, elem){
var data=elem.data('idle');
if(! data){
return;
}
elem.data('idle').complete=false;
Utils.animate(elem, data.to, {
duration: self._options.idleSpeed,
complete: function(){
if(i==len-1){
idle.active=false;
}}
});
});
},
showAll:function(){
self.clearTimer('idle');
$.each(idle.trunk, function(i, elem){
idle.show(elem);
});
},
show: function(elem){
var data=elem.data('idle');
if(!idle.active||(!data.busy&&!data.complete) ){
data.busy=true;
self.trigger(Galleria.IDLE_EXIT);
self.clearTimer('idle');
Utils.animate(elem, data.from, {
duration: self._options.idleSpeed/2,
complete: function(){
idle.active=true;
$(elem).data('idle').busy=false;
$(elem).data('idle').complete=true;
}});
}
idle.addTimer();
}};
var lightbox=this._lightbox={
width:0,
height:0,
initialized:false,
active:null,
image:null,
elems:{},
keymap: false,
init:function(){
if(lightbox.initialized){
return;
}
lightbox.initialized=true;
var elems='overlay box content shadow title info close prevholder prev nextholder next counter image',
el={},
op=self._options,
css='',
abs='position:absolute;',
prefix='lightbox-',
cssMap={
overlay:    'position:fixed;display:none;opacity:'+op.overlayOpacity+';filter:alpha(opacity='+(op.overlayOpacity*100)+
');top:0;left:0;width:100%;height:100%;background:'+op.overlayBackground+';z-index:99990',
box:        'position:fixed;display:none;width:400px;height:400px;top:50%;left:50%;margin-top:-200px;margin-left:-200px;z-index:99991',
shadow:     abs+'background:#000;width:100%;height:100%;',
content:    abs+'background-color:#fff;top:10px;left:10px;right:10px;bottom:10px;overflow:hidden',
info:       abs+'bottom:10px;left:10px;right:10px;color:#444;font:11px/13px arial,sans-serif;height:13px',
close:      abs+'top:10px;right:10px;height:20px;width:20px;background:#fff;text-align:center;cursor:pointer;color:#444;font:16px/22px arial,sans-serif;z-index:99999',
image:      abs+'top:10px;left:10px;right:10px;bottom:30px;overflow:hidden;display:block;',
prevholder: abs+'width:50%;top:0;bottom:40px;cursor:pointer;',
nextholder: abs+'width:50%;top:0;bottom:40px;right:-1px;cursor:pointer;',
prev:       abs+'top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;left:20px;display:none;text-align:center;color:#000;font:bold 16px/36px arial,sans-serif',
next:       abs+'top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;right:20px;left:auto;display:none;font:bold 16px/36px arial,sans-serif;text-align:center;color:#000',
title:      'float:left',
counter:    'float:right;margin-left:8px;'
},
hover=function(elem){
return elem.hover(function(){ $(this).css('color', '#bbb'); },
function(){ $(this).css('color', '#444'); }
);
},
appends={};
var exs='';
if(IE > 7){
exs=IE < 9 ? 'background:#000;filter:alpha(opacity=0);':'background:rgba(0,0,0,0);';
}else{
exs='z-index:99999';
}
cssMap.nextholder +=exs;
cssMap.prevholder +=exs;
$.each(cssMap, function(key, value){
css +='.galleria-'+prefix+key+'{'+value+'}';
});
css +='.galleria-'+prefix+'box.iframe .galleria-'+prefix+'prevholder,'+
'.galleria-'+prefix+'box.iframe .galleria-'+prefix+'nextholder{'+
'width:100px;height:100px;top:50%;margin-top:-70px}';
Utils.insertStyleTag(css, 'galleria-lightbox');
$.each(elems.split(' '), function(i, elemId){
self.addElement('lightbox-' + elemId);
el[ elemId ]=lightbox.elems[ elemId ]=self.get('lightbox-' + elemId);
});
lightbox.image=new Galleria.Picture();
$.each({
box: 'shadow content close prevholder nextholder',
info: 'title counter',
content: 'info image',
prevholder: 'prev',
nextholder: 'next'
}, function(key, val){
var arr=[];
$.each(val.split(' '), function(i, prop){
arr.push(prefix + prop);
});
appends[ prefix+key ]=arr;
});
self.append(appends);
$(el.image).append(lightbox.image.container);
$(DOM().body).append(el.overlay, el.box);
hover($(el.close).on('click:fast', lightbox.hide).html('&#215;'));
$.each(['Prev','Next'], function(i, dir){
var $d=$(el[ dir.toLowerCase() ]).html(/v/.test(dir) ? '&#8249;&#160;':'&#160;&#8250;'),
$e=$(el[ dir.toLowerCase()+'holder']);
$e.on('click:fast', function(){
lightbox[ 'show' + dir ]();
});
if(IE < 8||Galleria.TOUCH){
$d.show();
return;
}
$e.hover(function(){
$d.show();
}, function(e){
$d.stop().fadeOut(200);
});
});
$(el.overlay).on('click:fast', lightbox.hide);
if(Galleria.IPAD){
self._options.lightboxTransitionSpeed=0;
}},
rescale: function(event){
var width=M.min($win.width()-40, lightbox.width),
height=M.min($win.height()-60, lightbox.height),
ratio=M.min(width / lightbox.width, height / lightbox.height),
destWidth=M.round(lightbox.width * ratio) + 40,
destHeight=M.round(lightbox.height * ratio) + 60,
to={
width: destWidth,
height: destHeight,
'margin-top': M.ceil(destHeight / 2) *- 1,
'margin-left': M.ceil(destWidth / 2) *- 1
};
if(event){
$(lightbox.elems.box).css(to);
}else{
$(lightbox.elems.box).animate(to, {
duration: self._options.lightboxTransitionSpeed,
easing: self._options.easing,
complete: function(){
var image=lightbox.image,
speed=self._options.lightboxFadeSpeed;
self.trigger({
type: Galleria.LIGHTBOX_IMAGE,
imageTarget: image.image
});
$(image.container).show();
$(image.image).animate({ opacity: 1 }, speed);
Utils.show(lightbox.elems.info, speed);
}});
}},
hide: function(){
lightbox.image.image=null;
$win.off('resize', lightbox.rescale);
$(lightbox.elems.box).hide().find('iframe').remove();
Utils.hide(lightbox.elems.info);
self.detachKeyboard();
self.attachKeyboard(lightbox.keymap);
lightbox.keymap=false;
Utils.hide(lightbox.elems.overlay, 200, function(){
$(this).hide().css('opacity', self._options.overlayOpacity);
self.trigger(Galleria.LIGHTBOX_CLOSE);
});
},
showNext: function(){
lightbox.show(self.getNext(lightbox.active) );
},
showPrev: function(){
lightbox.show(self.getPrev(lightbox.active) );
},
show: function(index){
lightbox.active=index=typeof index==='number' ? index:self.getIndex()||0;
if(!lightbox.initialized){
lightbox.init();
}
self.trigger(Galleria.LIGHTBOX_OPEN);
if(!lightbox.keymap){
lightbox.keymap=$.extend({}, self._keyboard.map);
self.attachKeyboard({
escape: lightbox.hide,
right: lightbox.showNext,
left: lightbox.showPrev
});
}
$win.off('resize', lightbox.rescale);
var data=self.getData(index),
total=self.getDataLength(),
n=self.getNext(index),
ndata, p, i;
Utils.hide(lightbox.elems.info);
try {
for(i=self._options.preload; i > 0; i--){
p=new Galleria.Picture();
ndata=self.getData(n);
p.preload(ndata.big ? ndata.big:ndata.image);
n=self.getNext(n);
}} catch(e){}
lightbox.image.isIframe=(data.iframe&&!data.image);
$(lightbox.elems.box).toggleClass('iframe', lightbox.image.isIframe);
$(lightbox.image.container).find('.galleria-videoicon').remove();
lightbox.image.load(data.big||data.image||data.iframe, function(image){
if(image.isIframe){
var cw=$(window).width(),
ch=$(window).height();
if(image.video&&self._options.maxVideoSize){
var r=M.min(self._options.maxVideoSize/cw, self._options.maxVideoSize/ch);
if(r < 1){
cw *=r;
ch *=r;
}}
lightbox.width=cw;
lightbox.height=ch;
}else{
lightbox.width=image.original.width;
lightbox.height=image.original.height;
}
$(image.image).css({
width: image.isIframe ? '100%':'100.1%',
height: image.isIframe ? '100%':'100.1%',
top: 0,
bottom: 0,
zIndex: 99998,
opacity: 0,
visibility: 'visible'
}).parent().height('100%');
lightbox.elems.title.innerHTML=data.title||'';
lightbox.elems.counter.innerHTML=(index + 1) + ' / ' + total;
$win.resize(lightbox.rescale);
lightbox.rescale();
if(data.image&&data.iframe){
$(lightbox.elems.box).addClass('iframe');
if(data.video){
var $icon=_playIcon(image.container).hide();
window.setTimeout(function(){
$icon.fadeIn(200);
}, 200);
}
$(image.image).css('cursor', 'pointer').mouseup((function(data, image){
return function(e){
$(lightbox.image.container).find('.galleria-videoicon').remove();
e.preventDefault();
image.isIframe=true;
image.load(data.iframe +(data.video ? '&autoplay=1':''), {
width: '100%',
height: IE < 8 ? $(lightbox.image.container).height():'100%'
});
};}(data, image)));
}});
$(lightbox.elems.overlay).show().css('visibility', 'visible');
$(lightbox.elems.box).show();
}};
var _timer=this._timer={
trunk: {},
add: function(id, fn, delay, loop){
id=id||new Date().getTime();
loop=loop||false;
this.clear(id);
if(loop){
var old=fn;
fn=function(){
old();
_timer.add(id, fn, delay);
};}
this.trunk[ id ]=window.setTimeout(fn, delay);
},
clear: function(id){
var del=function(i){
window.clearTimeout(this.trunk[ i ]);
delete this.trunk[ i ];
}, i;
if(!!id&&id in this.trunk){
del.call(this, id);
}else if(typeof id==='undefined'){
for(i in this.trunk){
if(this.trunk.hasOwnProperty(i) ){
del.call(this, i);
}}
}}
};
return this;
};
Galleria.prototype={
constructor: Galleria,
init: function(target, options){
options=_legacyOptions(options);
this._original={
target: target,
options: options,
data: null
};
this._target=this._dom.target=target.nodeName ? target:$(target).get(0);
this._original.html=this._target.innerHTML;
_instances.push(this);
if(!this._target){
Galleria.raise('Target not found', true);
return;
}
this._options={
autoplay: false,
carousel: true,
carouselFollow: true,
carouselSpeed: 400,
carouselSteps: 'auto',
clicknext: false,
dailymotion: {
foreground: '%23EEEEEE',
highlight: '%235BCEC5',
background: '%23222222',
logo: 0,
hideInfos: 1
},
dataConfig:function(elem){ return {};},
dataSelector: 'img',
dataSort: false,
dataSource: this._target,
debug: undef,
dummy: undef,
easing: 'galleria',
extend: function(options){},
fullscreenCrop: undef,
fullscreenDoubleTap: true,
fullscreenTransition: undef,
height: 0,
idleMode: true,
idleTime: 3000,
idleSpeed: 200,
imageCrop: false,
imageMargin: 0,
imagePan: false,
imagePanSmoothness: 12,
imagePosition: '50%',
imageTimeout: undef,
initialTransition: undef,
keepSource: false,
layerFollow: true,
lightbox: false,
lightboxFadeSpeed: 200,
lightboxTransitionSpeed: 200,
linkSourceImages: true,
maxScaleRatio: undef,
maxVideoSize: undef,
minScaleRatio: undef,
overlayOpacity: 0.85,
overlayBackground: '#0b0b0b',
pauseOnInteraction: true,
popupLinks: false,
preload: 2,
queue: true,
responsive: true,
show: 0,
showInfo: true,
showCounter: true,
showImagenav: true,
swipe: 'auto',
theme: null,
thumbCrop: true,
thumbEventType: 'click:fast',
thumbMargin: 0,
thumbQuality: 'auto',
thumbDisplayOrder: true,
thumbPosition: '50%',
thumbnails: true,
touchTransition: undef,
transition: 'fade',
transitionInitial: undef,
transitionSpeed: 400,
trueFullscreen: true,
useCanvas: false,
variation: '',
videoPoster: true,
vimeo: {
title: 0,
byline: 0,
portrait: 0,
color: 'aaaaaa'
},
wait: 5000,
width: 'auto',
youtube: {
modestbranding: 1,
autohide: 1,
color: 'white',
hd: 1,
rel: 0,
showinfo: 0
}};
this._options.initialTransition=this._options.initialTransition||this._options.transitionInitial;
if(options){
if(options.debug===false){
DEBUG=false;
}
if(typeof options.imageTimeout==='number'){
TIMEOUT=options.imageTimeout;
}
if(typeof options.dummy==='string'){
DUMMY=options.dummy;
}
if(typeof options.theme=='string'){
this._options.theme=options.theme;
}}
$(this._target).children().hide();
if(Galleria.QUIRK){
Galleria.raise('Your page is in Quirks mode, Galleria may not render correctly. Please validate your HTML and add a correct doctype.');
}
if(_loadedThemes.length){
if(this._options.theme){
for(var i=0; i<_loadedThemes.length; i++){
if(this._options.theme===_loadedThemes[i].name){
this.theme=_loadedThemes[i];
break;
}}
}else{
this.theme=_loadedThemes[0];
}}
if(typeof this.theme=='object'){
this._init();
}else{
_pool.push(this);
}
return this;
},
_init: function(){
var self=this,
options=this._options;
if(this._initialized){
Galleria.raise('Init failed: Gallery instance already initialized.');
return this;
}
this._initialized=true;
if(!this.theme){
Galleria.raise('Init failed: No theme found.', true);
return this;
}
$.extend(true, options, this.theme.defaults, this._original.options, Galleria.configure.options);
options.swipe=(function(s){
if(s=='enforced'){ return true; }
if(s===false||s=='disabled'){ return false; }
return !!Galleria.TOUCH;
}(options.swipe));
if(options.swipe){
options.clicknext=false;
options.imagePan=false;
}
(function(can){
if(!('getContext' in can) ){
can=null;
return;
}
_canvas=_canvas||{
elem: can,
context: can.getContext('2d'),
cache: {},
length: 0
};}(doc.createElement('canvas') ));
this.bind(Galleria.DATA, function(){
if(window.screen&&window.screen.width&&Array.prototype.forEach){
this._data.forEach(function(data){
var density='devicePixelRatio' in window ? window.devicePixelRatio:1,
m=M.max(window.screen.width, window.screen.height);
if(m*density < 1024){
data.big=data.image;
}});
}
this._original.data=this._data;
this.get('total').innerHTML=this.getDataLength();
var $container=this.$('container');
if(self._options.height < 2){
self._userRatio=self._ratio=self._options.height;
}
var num={ width: 0, height: 0 };
var testHeight=function(){
return self.$('stage').height();
};
Utils.wait({
until: function(){
num=self._getWH();
$container.width(num.width).height(num.height);
return testHeight()&&num.width&&num.height > 50;
},
success: function(){
self._width=num.width;
self._height=num.height;
self._ratio=self._ratio||num.height/num.width;
if(Galleria.WEBKIT){
window.setTimeout(function(){
self._run();
}, 1);
}else{
self._run();
}},
error: function(){
if(testHeight()){
Galleria.raise('Could not extract sufficient width/height of the gallery container. Traced measures: width:' + num.width + 'px, height: ' + num.height + 'px.', true);
}else{
Galleria.raise('Could not extract a stage height from the CSS. Traced height: ' + testHeight() + 'px.', true);
}},
timeout: typeof this._options.wait=='number' ? this._options.wait:false
});
});
this.append({
'info-text' :
['info-title', 'info-description'],
'info' :
['info-text'],
'image-nav' :
['image-nav-right', 'image-nav-left'],
'stage' :
['images', 'loader', 'counter', 'image-nav'],
'thumbnails-list' :
['thumbnails'],
'thumbnails-container' :
['thumb-nav-left', 'thumbnails-list', 'thumb-nav-right'],
'container' :
['stage', 'thumbnails-container', 'info', 'tooltip']
});
Utils.hide(this.$('counter').append(this.get('current'),
doc.createTextNode(' / '),
this.get('total')
));
this.setCounter('&#8211;');
Utils.hide(self.get('tooltip'));
this.$('container').addClass([
(Galleria.TOUCH ? 'touch':'notouch'),
this._options.variation,
'galleria-theme-'+this.theme.name
].join(' '));
if(!this._options.swipe){
$.each(new Array(2), function(i){
var image=new Galleria.Picture();
$(image.container).css({
position: 'absolute',
top: 0,
left: 0
}).prepend(self._layers[i]=$(Utils.create('galleria-layer')).css({
position: 'absolute',
top:0, left:0, right:0, bottom:0,
zIndex:2
})[0]);
self.$('images').append(image.container);
self._controls[i]=image;
var frame=new Galleria.Picture();
frame.isIframe=true;
$(frame.container).attr('class', 'galleria-frame').css({
position: 'absolute',
top: 0,
left: 0,
zIndex: 4,
background: '#000',
display: 'none'
}).appendTo(image.container);
self._controls.frames[i]=frame;
});
}
this.$('images').css({
position: 'relative',
top: 0,
left: 0,
width: '100%',
height: '100%'
});
if(options.swipe){
this.$('images').css({
position: 'absolute',
top: 0,
left: 0,
width: 0,
height: '100%'
});
this.finger=new Galleria.Finger(this.get('stage'), {
onchange: function(page){
self.pause().show(page);
},
oncomplete: function(page){
var index=M.max(0, M.min(parseInt(page, 10), self.getDataLength() - 1) ),
data=self.getData(index);
$(self._thumbnails[ index ].container)
.addClass('active')
.siblings('.active')
.removeClass('active');
if(!data){
return;
}
self.$('images').find('.galleria-frame').css('opacity', 0).hide().find('iframe').remove();
if(self._options.carousel&&self._options.carouselFollow){
self._carousel.follow(index);
}}
});
this.bind(Galleria.RESCALE, function(){
this.finger.setup();
});
this.$('stage').on('click', function(e){
var data=self.getData();
if(!data){
return;
}
if(data.iframe){
if(self.isPlaying()){
self.pause();
}
var frame=self._controls.frames[ self._active ],
w=self._stageWidth,
h=self._stageHeight;
if($(frame.container).find('iframe').length){
return;
}
$(frame.container).css({
width: w,
height: h,
opacity: 0
}).show().animate({
opacity: 1
}, 200);
window.setTimeout(function(){
frame.load(data.iframe +(data.video ? '&autoplay=1':''), {
width: w,
height: h
}, function(frame){
self.$('container').addClass('videoplay');
frame.scale({
width: self._stageWidth,
height: self._stageHeight,
iframelimit: data.video ? self._options.maxVideoSize:undef
});
});
}, 100);
return;
}
if(data.link){
if(self._options.popupLinks){
var win=window.open(data.link, '_blank');
}else{
window.location.href=data.link;
}
return;
}});
this.bind(Galleria.IMAGE, function(e){
self.setCounter(e.index);
self.setInfo(e.index);
var next=this.getNext(),
prev=this.getPrev();
var preloads=[prev,next];
preloads.push(this.getNext(next), this.getPrev(prev), self._controls.slides.length-1);
var filtered=[];
$.each(preloads, function(i, val){
if($.inArray(val, filtered)==-1){
filtered.push(val);
}});
$.each(filtered, function(i, loadme){
var d=self.getData(loadme),
img=self._controls.slides[loadme],
src=self.isFullscreen()&&d.big ? d.big:(d.image||d.iframe);
if(d.iframe&&!d.image){
img.isIframe=true;
}
if(!img.ready){
self._controls.slides[loadme].load(src, function(img){
if(!img.isIframe){
$(img.image).css('visibility', 'hidden');
}
self._scaleImage(img, {
complete: function(img){
if(!img.isIframe){
$(img.image).css({
opacity: 0,
visibility: 'visible'
}).animate({
opacity: 1
}, 200);
}}
});
});
}});
});
}
this.$('thumbnails, thumbnails-list').css({
overflow: 'hidden',
position: 'relative'
});
this.$('image-nav-right, image-nav-left').on('click:fast', function(e){
if(options.pauseOnInteraction){
self.pause();
}
var fn=/right/.test(this.className) ? 'next':'prev';
self[ fn ]();
}).on('click', function(e){
e.preventDefault();
if(options.clicknext||options.swipe){
e.stopPropagation();
}});
$.each(['info','counter','image-nav'], function(i, el){
if(options[ 'show' + el.substr(0,1).toUpperCase() + el.substr(1).replace(/-/,'') ]===false){
Utils.moveOut(self.get(el.toLowerCase()) );
}});
this.load();
if(!options.keepSource&&!IE){
this._target.innerHTML='';
}
if(this.get('errors') ){
this.appendChild('target', 'errors');
}
this.appendChild('target', 'container');
if(options.carousel){
var count=0,
show=options.show;
this.bind(Galleria.THUMBNAIL, function(){
this.updateCarousel();
if(++count==this.getDataLength()&&typeof show=='number'&&show > 0){
this._carousel.follow(show);
}});
}
if(options.responsive){
$win.on('resize', function(){
if(!self.isFullscreen()){
self.resize();
}});
}
if(options.fullscreenDoubleTap){
this.$('stage').on('touchstart', (function(){
var last, cx, cy, lx, ly, now,
getData=function(e){
return e.originalEvent.touches ? e.originalEvent.touches[0]:e;
};
self.$('stage').on('touchmove', function(){
last=0;
});
return function(e){
if(/(-left|-right)/.test(e.target.className)){
return;
}
now=Utils.timestamp();
cx=getData(e).pageX;
cy=getData(e).pageY;
if(e.originalEvent.touches.length < 2&&(now - last < 300)&&(cx - lx < 20)&&(cy - ly < 20)){
self.toggleFullscreen();
e.preventDefault();
return;
}
last=now;
lx=cx;
ly=cy;
};}()));
}
$.each(Galleria.on.binds, function(i, bind){
if($.inArray(bind.hash, self._binds)==-1){
self.bind(bind.type, bind.callback);
}});
return this;
},
addTimer:function(){
this._timer.add.apply(this._timer, Utils.array(arguments) );
return this;
},
clearTimer:function(){
this._timer.clear.apply(this._timer, Utils.array(arguments) );
return this;
},
_getWH:function(){
var $container=this.$('container'),
$target=this.$('target'),
self=this,
num={},
arr;
$.each(['width', 'height'], function(i, m){
if(self._options[ m ]&&typeof self._options[ m ]==='number'){
num[ m ]=self._options[ m ];
}else{
arr=[
Utils.parseValue($container.css(m) ),
Utils.parseValue($target.css(m) ),
$container[ m ](),
$target[ m ]()
];
if(!self[ '_'+m ]){
arr.splice(arr.length,
Utils.parseValue($container.css('min-'+m) ),
Utils.parseValue($target.css('min-'+m) )
);
}
num[ m ]=M.max.apply(M, arr);
}});
if(self._userRatio){
num.height=num.width * self._userRatio;
}
return num;
},
_createThumbnails:function(push){
this.get('total').innerHTML=this.getDataLength();
var src,
thumb,
data,
$container,
self=this,
o=this._options,
i=push ? this._data.length - push.length:0,
chunk=i,
thumbchunk=[],
loadindex=0,
gif=IE < 8 ? 'http://upload.wikimedia.org/wikipedia/commons/c/c0/Blank.gif' :
'data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D',
active=(function(){
var a=self.$('thumbnails').find('.active');
if(!a.length){
return false;
}
return a.find('img').attr('src');
}()),
optval=typeof o.thumbnails==='string' ? o.thumbnails.toLowerCase():null,
getStyle=function(prop){
return doc.defaultView&&doc.defaultView.getComputedStyle ?
doc.defaultView.getComputedStyle(thumb.container, null)[ prop ] :
$container.css(prop);
},
fake=function(image, index, container){
return function(){
$(container).append(image);
self.trigger({
type: Galleria.THUMBNAIL,
thumbTarget: image,
index: index,
galleriaData: self.getData(index)
});
};},
onThumbEvent=function(e){
if(o.pauseOnInteraction){
self.pause();
}
var index=$(e.currentTarget).data('index');
if(self.getIndex()!==index){
self.show(index);
}
e.preventDefault();
},
thumbComplete=function(thumb, callback){
$(thumb.container).css('visibility', 'visible');
self.trigger({
type: Galleria.THUMBNAIL,
thumbTarget: thumb.image,
index: thumb.data.order,
galleriaData: self.getData(thumb.data.order)
});
if(typeof callback=='function'){
callback.call(self, thumb);
}},
onThumbLoad=function(thumb, callback){
thumb.scale({
width:    thumb.data.width,
height:   thumb.data.height,
crop:     o.thumbCrop,
margin:   o.thumbMargin,
canvas:   o.useCanvas,
position: o.thumbPosition,
complete: function(thumb){
var top=['left', 'top'],
arr=['Width', 'Height'],
m,
css,
data=self.getData(thumb.index);
$.each(arr, function(i, measure){
m=measure.toLowerCase();
if((o.thumbCrop!==true||o.thumbCrop===m) ){
css={};
css[ m ]=thumb[ m ];
$(thumb.container).css(css);
css={};
css[ top[ i ] ]=0;
$(thumb.image).css(css);
}
thumb[ 'outer' + measure ]=$(thumb.container)[ 'outer' + measure ](true);
});
Utils.toggleQuality(thumb.image,
o.thumbQuality===true ||
(o.thumbQuality==='auto'&&thumb.original.width < thumb.width * 3)
);
if(o.thumbDisplayOrder&&!thumb.lazy){
$.each(thumbchunk, function(i, th){
if(i===loadindex&&th.ready&&!th.displayed){
loadindex++;
th.displayed=true;
thumbComplete(th, callback);
return;
}});
}else{
thumbComplete(thumb, callback);
}}
});
};
if(!push){
this._thumbnails=[];
this.$('thumbnails').empty();
}
for(; this._data[ i ]; i++){
data=this._data[ i ];
src=data.thumb||data.image;
if(( o.thumbnails===true||optval=='lazy')&&(data.thumb||data.image) ){
thumb=new Galleria.Picture(i);
thumb.index=i;
thumb.displayed=false;
thumb.lazy=false;
thumb.video=false;
this.$('thumbnails').append(thumb.container);
$container=$(thumb.container);
$container.css('visibility', 'hidden');
thumb.data={
width:Utils.parseValue(getStyle('width') ),
height:Utils.parseValue(getStyle('height') ),
order:i,
src:src
};
if(o.thumbCrop!==true){
$container.css({ width: 'auto', height: 'auto' });
}else{
$container.css({ width: thumb.data.width, height: thumb.data.height });
}
if(optval=='lazy'){
$container.addClass('lazy');
thumb.lazy=true;
thumb.load(gif, {
height: thumb.data.height,
width: thumb.data.width
});
}else{
thumb.load(src, onThumbLoad);
}
if(o.preload==='all'){
thumb.preload(data.image);
}}else if(( data.iframe&&optval!==null)||optval==='empty'||optval==='numbers'){
thumb={
container: Utils.create('galleria-image'),
image: Utils.create('img', 'span'),
ready: true,
data: {
order: i
}};
if(optval==='numbers'){
$(thumb.image).text(i + 1);
}
if(data.iframe){
$(thumb.image).addClass('iframe');
}
this.$('thumbnails').append(thumb.container);
window.setTimeout(( fake)(thumb.image, i, thumb.container), 50 +(i*20) );
}else{
thumb={
container: null,
image: null
};}
$(thumb.container).add(o.keepSource&&o.linkSourceImages ? data.original:null)
.data('index', i).on(o.thumbEventType, onThumbEvent)
.data('thumbload', onThumbLoad);
if(active===src){
$(thumb.container).addClass('active');
}
this._thumbnails.push(thumb);
}
thumbchunk=this._thumbnails.slice(chunk);
return this;
},
lazyLoad: function(index, complete){
var arr=index.constructor==Array ? index:[ index ],
self=this,
loaded=0;
$.each(arr, function(i, ind){
if(ind > self._thumbnails.length - 1){
return;
}
var thumb=self._thumbnails[ ind ],
data=thumb.data,
callback=function(){
if(++loaded==arr.length&&typeof complete=='function'){
complete.call(self);
}},
thumbload=$(thumb.container).data('thumbload');
if(thumbload){
if(thumb.video){
thumbload.call(self, thumb, callback);
}else{
thumb.load(data.src , function(thumb){
thumbload.call(self, thumb, callback);
});
}}
});
return this;
},
lazyLoadChunks: function(size, delay){
var len=this.getDataLength(),
i=0,
n=0,
arr=[],
temp=[],
self=this;
delay=delay||0;
for(; i<len; i++){
temp.push(i);
if(++n==size||i==len-1){
arr.push(temp);
n=0;
temp=[];
}}
var init=function(wait){
var a=arr.shift();
if(a){
window.setTimeout(function(){
self.lazyLoad(a, function(){
init(true);
});
},(delay&&wait) ? delay:0);
}};
init(false);
return this;
},
_run:function(){
var self=this;
self._createThumbnails();
Utils.wait({
timeout: 10000,
until: function(){
if(Galleria.OPERA){
self.$('stage').css('display', 'inline-block');
}
self._stageWidth=self.$('stage').width();
self._stageHeight=self.$('stage').height();
return(self._stageWidth &&
self._stageHeight > 50);
},
success: function(){
_galleries.push(self);
if(self._options.swipe){
var $images=self.$('images').width(self.getDataLength() * self._stageWidth);
$.each(new Array(self.getDataLength()), function(i){
var image=new Galleria.Picture(),
data=self.getData(i);
$(image.container).css({
position: 'absolute',
top: 0,
left: self._stageWidth*i
}).prepend(self._layers[i]=$(Utils.create('galleria-layer')).css({
position: 'absolute',
top:0, left:0, right:0, bottom:0,
zIndex:2
})[0]).appendTo($images);
if(data.video){
_playIcon(image.container);
}
self._controls.slides.push(image);
var frame=new Galleria.Picture();
frame.isIframe=true;
$(frame.container).attr('class', 'galleria-frame').css({
position: 'absolute',
top: 0,
left: 0,
zIndex: 4,
background: '#000',
display: 'none'
}).appendTo(image.container);
self._controls.frames.push(frame);
});
self.finger.setup();
}
Utils.show(self.get('counter'));
if(self._options.carousel){
self._carousel.bindControls();
}
if(self._options.autoplay){
self.pause();
if(typeof self._options.autoplay==='number'){
self._playtime=self._options.autoplay;
}
self._playing=true;
}
if(self._firstrun){
if(self._options.autoplay){
self.trigger(Galleria.PLAY);
}
if(typeof self._options.show==='number'){
self.show(self._options.show);
}
return;
}
self._firstrun=true;
if(Galleria.History){
Galleria.History.change(function(value){
if(isNaN(value) ){
window.history.go(-1);
}else{
self.show(value, undef, true);
}});
}
self.trigger(Galleria.READY);
self.theme.init.call(self, self._options);
$.each(Galleria.ready.callbacks, function(i ,fn){
if(typeof fn=='function'){
fn.call(self, self._options);
}});
self._options.extend.call(self, self._options);
if(/^[0-9]{1,4}$/.test(HASH)&&Galleria.History){
self.show(HASH, undef, true);
}else if(self._data[ self._options.show ]){
self.show(self._options.show);
}
if(self._options.autoplay){
self.trigger(Galleria.PLAY);
}},
error: function(){
Galleria.raise('Stage width or height is too small to show the gallery. Traced measures: width:' + self._stageWidth + 'px, height: ' + self._stageHeight + 'px.', true);
}});
},
load:function(source, selector, config){
var self=this,
o=this._options;
this._data=[];
this._thumbnails=[];
this.$('thumbnails').empty();
if(typeof selector==='function'){
config=selector;
selector=null;
}
source=source||o.dataSource;
selector=selector||o.dataSelector;
config=config||o.dataConfig;
if($.isPlainObject(source) ){
source=[source];
}
if($.isArray(source) ){
if(this.validate(source) ){
this._data=source;
}else{
Galleria.raise('Load failed: JSON Array not valid.');
}}else{
selector +=',.video,.iframe';
$(source).find(selector).each(function(i, elem){
elem=$(elem);
var data={},
parent=elem.parent(),
href=parent.attr('href'),
rel=parent.attr('rel');
if(href&&(elem[0].nodeName=='IMG'||elem.hasClass('video'))&&_videoTest(href) ){
data.video=href;
}else if(href&&elem.hasClass('iframe')){
data.iframe=href;
}else{
data.image=href;
}
if(rel){
data.big=rel;
}
data.imagesrcset=parent.data('srcset');
data.imagesizes=parent.data('sizes');
data.thumbsizes=elem.attr('sizes');
data.thumbsrcset=elem.attr('srcset');
$.each('big bigsrcset bigsizes title description link layer image imagesrcset imagesizes'.split(' '), function(i, val){
if(elem.data(val)){
data[ val ]=elem.data(val).toString();
}});
if(elem.data('srcset')){
data.imagesrcset=elem.data('srcset');
}
if(elem.data('sizes')){
data.imagesizes=elem.data('sizes');
}
if(!data.big){
data.big=data.image;
data.bigsrcset=data.imagesrcset;
data.bigsizes=data.imagesizes;
}
self._data.push($.extend({
title:       elem.attr('title')||'',
thumb:       elem.attr('src'),
image:       elem.attr('src'),
big:         elem.attr('src'),
description: elem.attr('alt')||'',
link:        elem.attr('longdesc'),
original:    elem.get(0)
}, data, config(elem) ));
});
}
if(typeof o.dataSort=='function'){
protoArray.sort.call(this._data, o.dataSort);
}else if(o.dataSort=='random'){
this._data.sort(function(){
return M.round(M.random())-0.5;
});
}
if(this.getDataLength()){
this._parseData(function(){
this.trigger(Galleria.DATA);
});
}
return this;
},
_parseData:function(callback){
var self=this,
current,
ready=false,
onload=function(){
var complete=true;
$.each(self._data, function(i, data){
if(data.loading){
complete=false;
return false;
}});
if(complete&&!ready){
ready=true;
callback.call(self);
}};
$.each(this._data, function(i, data){
current=self._data[ i ];
$.each('big image thumb'.split(' '), function(i, val){
if(data[ val]){
data[val]=new String(data[val]);
data[val].srcset=data [val + 'srcset'];
data[val].sizes=data [val + 'sizes'];
}});
if('thumb' in data===false){
current.thumb=data.image;
}
if(!data.big){
current.big=data.image;
}
if('video' in data){
var result=_videoTest(data.video);
if(result){
current.iframe=new Video(result.provider, result.id).embed() + (function(){
if(typeof self._options[ result.provider ]=='object'){
var str='?', arr=[];
$.each(self._options[ result.provider ], function(key, val){
arr.push(key + '=' + val);
});
if(result.provider=='youtube'){
arr=['wmode=opaque'].concat(arr);
}
return str + arr.join('&');
}
return '';
}());
if(!current.thumb||!current.image){
$.each(['thumb', 'image'], function(i, type){
if(type=='image'&&!self._options.videoPoster){
current.image=undef;
return;
}
var video=new Video(result.provider, result.id);
if(!current[ type ]){
current.loading=true;
video.getMedia(type, (function(current, type){
return function(src){
current[ type ]=src;
if(type=='image'&&!current.big){
current.big=current.image;
}
delete current.loading;
onload();
};}(current, type)));
}});
}}
}});
onload();
return this;
},
destroy:function(){
this.$('target').data('galleria', null);
this.$('container').off('galleria');
this.get('target').innerHTML=this._original.html;
this.clearTimer();
Utils.removeFromArray(_instances, this);
Utils.removeFromArray(_galleries, this);
_video._inst=[];
if(Galleria._waiters!==undefined&&Galleria._waiters.length){
$.each(Galleria._waiters, function(i, w){
if(w) window.clearTimeout(w);
});
}
return this;
},
splice:function(){
var self=this,
args=Utils.array(arguments);
window.setTimeout(function(){
protoArray.splice.apply(self._data, args);
self._parseData(function(){
self._createThumbnails();
});
},2);
return self;
},
push:function(){
var self=this,
args=Utils.array(arguments);
if(args.length==1&&args[0].constructor==Array){
args=args[0];
}
window.setTimeout(function(){
protoArray.push.apply(self._data, args);
self._parseData(function(){
self._createThumbnails(args);
});
}, 2);
return self;
},
_getActive:function(){
return this._controls.getActive();
},
validate:function(data){
return true;
},
/**
Bind any event to Galleria
@param {string} type The Event type to listen for
@param {Function} fn The function to execute when the event is triggered
@example this.bind('image', function(){ Galleria.log('image shown') });
@returns Instance
*/
bind:function(type, fn){
type=_patchEvent(type);
this.$('container').on(type, this.proxy(fn));
return this;
},
unbind:function(type){
type=_patchEvent(type);
this.$('container').off(type);
return this;
},
trigger:function(type){
type=typeof type==='object' ?
$.extend(type, { scope: this }) :
{ type: _patchEvent(type), scope: this };
this.$('container').trigger(type);
return this;
},
addIdleState: function(elem, styles, from, hide){
this._idle.add.apply(this._idle, Utils.array(arguments) );
return this;
},
removeIdleState: function(elem){
this._idle.remove.apply(this._idle, Utils.array(arguments) );
return this;
},
enterIdleMode: function(){
this._idle.hide();
return this;
},
exitIdleMode: function(){
this._idle.showAll();
return this;
},
enterFullscreen: function(callback){
this._fullscreen.enter.apply(this, Utils.array(arguments) );
return this;
},
exitFullscreen: function(callback){
this._fullscreen.exit.apply(this, Utils.array(arguments) );
return this;
},
toggleFullscreen: function(callback){
this._fullscreen[ this.isFullscreen() ? 'exit':'enter'].apply(this, Utils.array(arguments) );
return this;
},
/**
Adds a tooltip to any element.
You can also call this method with an object as argument with elemID:value pairs to apply tooltips to (see examples)
@param {HTMLElement} elem The DOM Node to attach the event to
@param {string|Function} value The tooltip message. Can also be a function that returns a string.
@example this.bindTooltip(this.get('thumbnails'), 'My thumbnails');
@example this.bindTooltip(this.get('thumbnails'), function(){ return 'My thumbs' });
@example this.bindTooltip({ image_nav: 'Navigation' });
@returns Instance
*/
bindTooltip: function(elem, value){
this._tooltip.bind.apply(this._tooltip, Utils.array(arguments));
return this;
},
defineTooltip: function(elem, value){
this._tooltip.define.apply(this._tooltip, Utils.array(arguments));
return this;
},
refreshTooltip: function(elem){
this._tooltip.show.apply(this._tooltip, Utils.array(arguments));
return this;
},
openLightbox: function(){
this._lightbox.show.apply(this._lightbox, Utils.array(arguments) );
return this;
},
closeLightbox: function(){
this._lightbox.hide.apply(this._lightbox, Utils.array(arguments) );
return this;
},
hasVariation: function(variation){
return $.inArray(variation, this._options.variation.split(/\s+/)) > -1;
},
getActiveImage: function(){
var active=this._getActive();
return active ? active.image:undef;
},
getActiveThumb: function(){
return this._thumbnails[ this._active ].image||undef;
},
/**
Get the mouse position relative to the gallery container
@param e The mouse event
@example
var gallery=this;
$(document).mousemove(function(e){
console.log(gallery.getMousePosition(e).x);
});
@returns {Object} Object with x & y of the relative mouse postion
*/
getMousePosition:function(e){
return {
x: e.pageX - this.$('container').offset().left,
y: e.pageY - this.$('container').offset().top
};},
addPan:function(img){
if(this._options.imageCrop===false){
return;
}
img=$(img||this.getActiveImage());
var self=this,
x=img.width() / 2,
y=img.height() / 2,
destX=parseInt(img.css('left'), 10),
destY=parseInt(img.css('top'), 10),
curX=destX||0,
curY=destY||0,
distX=0,
distY=0,
active=false,
ts=Utils.timestamp(),
cache=0,
move=0,
position=function(dist, cur, pos){
if(dist > 0){
move=M.round(M.max(dist * -1, M.min(0, cur) ));
if(cache!==move){
cache=move;
if(IE===8){
img.parent()[ 'scroll' + pos ](move * -1);
}else{
var css={};
css[ pos.toLowerCase() ]=move;
img.css(css);
}}
}},
calculate=function(e){
if(Utils.timestamp() - ts < 50){
return;
}
active=true;
x=self.getMousePosition(e).x;
y=self.getMousePosition(e).y;
},
loop=function(e){
if(!active){
return;
}
distX=img.width() - self._stageWidth;
distY=img.height() - self._stageHeight;
destX=x / self._stageWidth * distX * -1;
destY=y / self._stageHeight * distY * -1;
curX +=(destX - curX) / self._options.imagePanSmoothness;
curY +=(destY - curY) / self._options.imagePanSmoothness;
position(distY, curY, 'Top');
position(distX, curX, 'Left');
};
if(IE===8){
img.parent().scrollTop(curY * -1).scrollLeft(curX * -1);
img.css({
top: 0,
left: 0
});
}
this.$('stage').off('mousemove', calculate).on('mousemove', calculate);
this.addTimer('pan' + self._id, loop, 50, true);
return this;
},
/**
Brings the scope into any callback
@param fn The callback to bring the scope into
@param [scope] Optional scope to bring
@example $('#fullscreen').click(this.proxy(function(){ this.enterFullscreen(); }))
@returns {Function} Return the callback with the gallery scope
*/
proxy:function(fn, scope){
if(typeof fn!=='function'){
return F;
}
scope=scope||this;
return function(){
return fn.apply(scope, Utils.array(arguments) );
};},
getThemeName:function(){
return this.theme.name;
},
removePan: function(){
this.$('stage').off('mousemove');
this.clearTimer('pan' + this._id);
return this;
},
addElement:function(id){
var dom=this._dom;
$.each(Utils.array(arguments), function(i, blueprint){
dom[ blueprint ]=Utils.create('galleria-' + blueprint);
});
return this;
},
/**
Attach keyboard events to Galleria
@param {Object} map The map object of events.
Possible keys are 'UP', 'DOWN', 'LEFT', 'RIGHT', 'RETURN', 'ESCAPE', 'BACKSPACE', and 'SPACE'.
@example
this.attachKeyboard({
right: this.next,
left: this.prev,
up: function(){
console.log('up key pressed')
}});
@returns Instance
*/
attachKeyboard:function(map){
this._keyboard.attach.apply(this._keyboard, Utils.array(arguments) );
return this;
},
detachKeyboard:function(){
this._keyboard.detach.apply(this._keyboard, Utils.array(arguments) );
return this;
},
appendChild:function(parentID, childID){
this.$(parentID).append(this.get(childID)||childID);
return this;
},
prependChild:function(parentID, childID){
this.$(parentID).prepend(this.get(childID)||childID);
return this;
},
remove:function(elemID){
this.$(Utils.array(arguments).join(',')).remove();
return this;
},
append:function(data){
var i, j;
for(i in data){
if(data.hasOwnProperty(i) ){
if(data[i].constructor===Array){
for(j=0; data[i][j]; j++){
this.appendChild(i, data[i][j]);
}}else{
this.appendChild(i, data[i]);
}}
}
return this;
},
_scaleImage:function(image, options){
image=image||this._controls.getActive();
if(!image){
return;
}
var complete,
scaleLayer=function(img){
$(img.container).children(':first').css({
top: M.max(0, Utils.parseValue(img.image.style.top)),
left: M.max(0, Utils.parseValue(img.image.style.left)),
width: Utils.parseValue(img.image.width),
height: Utils.parseValue(img.image.height)
});
};
options=$.extend({
width:       this._stageWidth,
height:      this._stageHeight,
crop:        this._options.imageCrop,
max:         this._options.maxScaleRatio,
min:         this._options.minScaleRatio,
margin:      this._options.imageMargin,
position:    this._options.imagePosition,
iframelimit: this._options.maxVideoSize
}, options);
if(this._options.layerFollow&&this._options.imageCrop!==true){
if(typeof options.complete=='function'){
complete=options.complete;
options.complete=function(){
complete.call(image, image);
scaleLayer(image);
};}else{
options.complete=scaleLayer;
}}else{
$(image.container).children(':first').css({ top: 0, left: 0 });
}
image.scale(options);
return this;
},
updateCarousel:function(){
this._carousel.update();
return this;
},
resize:function(measures, complete){
if(typeof measures=='function'){
complete=measures;
measures=undef;
}
measures=$.extend({ width:0, height:0 }, measures);
var self=this,
$container=this.$('container');
$.each(measures, function(m, val){
if(!val){
$container[ m ]('auto');
measures[ m ]=self._getWH()[ m ];
}});
$.each(measures, function(m, val){
$container[ m ](val);
});
return this.rescale(complete);
},
rescale:function(width, height, complete){
var self=this;
if(typeof width==='function'){
complete=width;
width=undef;
}
var scale=function(){
self._stageWidth=width||self.$('stage').width();
self._stageHeight=height||self.$('stage').height();
if(self._options.swipe){
$.each(self._controls.slides, function(i, img){
self._scaleImage(img);
$(img.container).css('left', self._stageWidth * i);
});
self.$('images').css('width', self._stageWidth * self.getDataLength());
}else{
self._scaleImage();
}
if(self._options.carousel){
self.updateCarousel();
}
var frame=self._controls.frames[ self._controls.active ];
if(frame){
self._controls.frames[ self._controls.active ].scale({
width: self._stageWidth,
height: self._stageHeight,
iframelimit: self._options.maxVideoSize
});
}
self.trigger(Galleria.RESCALE);
if(typeof complete==='function'){
complete.call(self);
}};
scale.call(self);
return this;
},
refreshImage:function(){
this._scaleImage();
if(this._options.imagePan){
this.addPan();
}
return this;
},
_preload: function(){
if(this._options.preload){
var p, i,
n=this.getNext(),
ndata;
try {
for(i=this._options.preload; i > 0; i--){
p=new Galleria.Picture();
ndata=this.getData(n);
p.preload(this.isFullscreen()&&ndata.big ? ndata.big:ndata.image);
n=this.getNext(n);
}} catch(e){}}
},
show:function(index, rewind, _history){
var swipe=this._options.swipe;
if(!swipe &&
(this._queue.length > 3||index===false||(!this._options.queue&&this._queue.stalled) )){
return;
}
index=M.max(0, M.min(parseInt(index, 10), this.getDataLength() - 1) );
rewind=typeof rewind!=='undefined' ? !!rewind:index < this.getIndex();
_history=_history||false;
if(!_history&&Galleria.History){
Galleria.History.set(index.toString());
return;
}
if(this.finger&&index!==this._active){
this.finger.to=-(index*this.finger.width);
this.finger.index=index;
}
this._active=index;
if(swipe){
var data=this.getData(index),
self=this;
if(!data){
return;
}
var src=this.isFullscreen()&&data.big ? data.big:(data.image||data.iframe),
image=this._controls.slides[index],
cached=image.isCached(src),
thumb=this._thumbnails[ index ];
var evObj={
cached: cached,
index: index,
rewind: rewind,
imageTarget: image.image,
thumbTarget: thumb.image,
galleriaData: data
};
this.trigger($.extend(evObj, {
type: Galleria.LOADSTART
}));
self.$('container').removeClass('videoplay');
var complete=function(){
self._layers[index].innerHTML=self.getData().layer||'';
self.trigger($.extend(evObj, {
type: Galleria.LOADFINISH
}));
self._playCheck();
};
self._preload();
window.setTimeout(function(){
if(!image.ready||$(image.image).attr('src')!=src){
if(data.iframe&&!data.image){
image.isIframe=true;
}
image.load(src, function(image){
evObj.imageTarget=image.image;
self._scaleImage(image, complete).trigger($.extend(evObj, {
type: Galleria.IMAGE
}));
complete();
});
}else{
self.trigger($.extend(evObj, {
type: Galleria.IMAGE
}));
complete();
}}, 100);
}else{
protoArray.push.call(this._queue, {
index:index,
rewind:rewind
});
if(!this._queue.stalled){
this._show();
}}
return this;
},
_show:function(){
var self=this,
queue=this._queue[ 0 ],
data=this.getData(queue.index);
if(!data){
return;
}
var src=this.isFullscreen()&&data.big ? data.big:(data.image||data.iframe),
active=this._controls.getActive(),
next=this._controls.getNext(),
cached=next.isCached(src),
thumb=this._thumbnails[ queue.index ],
mousetrigger=function(){
$(next.image).trigger('mouseup');
};
self.$('container').toggleClass('iframe', !!data.isIframe).removeClass('videoplay');
var complete=(function(data, next, active, queue, thumb){
return function(){
var win;
_transitions.active=false;
Utils.toggleQuality(next.image, self._options.imageQuality);
self._layers[ self._controls.active ].innerHTML='';
$(active.container).css({
zIndex: 0,
opacity: 0
}).show();
$(active.container).find('iframe, .galleria-videoicon').remove();
$(self._controls.frames[ self._controls.active ].container).hide();
$(next.container).css({
zIndex: 1,
left: 0,
top: 0
}).show();
self._controls.swap();
if(self._options.imagePan){
self.addPan(next.image);
}
if(( data.iframe&&data.image)||data.link||self._options.lightbox||self._options.clicknext){
$(next.image).css({
cursor: 'pointer'
}).on('mouseup', function(e){
if(typeof e.which=='number'&&e.which > 1){
return;
}
if(data.iframe){
if(self.isPlaying()){
self.pause();
}
var frame=self._controls.frames[ self._controls.active ],
w=self._stageWidth,
h=self._stageHeight;
$(frame.container).css({
width: w,
height: h,
opacity: 0
}).show().animate({
opacity: 1
}, 200);
window.setTimeout(function(){
frame.load(data.iframe +(data.video ? '&autoplay=1':''), {
width: w,
height: h
}, function(frame){
self.$('container').addClass('videoplay');
frame.scale({
width: self._stageWidth,
height: self._stageHeight,
iframelimit: data.video ? self._options.maxVideoSize:undef
});
});
}, 100);
return;
}
if(self._options.clicknext&&!Galleria.TOUCH){
if(self._options.pauseOnInteraction){
self.pause();
}
self.next();
return;
}
if(data.link){
if(self._options.popupLinks){
win=window.open(data.link, '_blank');
}else{
window.location.href=data.link;
}
return;
}
if(self._options.lightbox){
self.openLightbox();
}});
}
self._playCheck();
self.trigger({
type: Galleria.IMAGE,
index: queue.index,
imageTarget: next.image,
thumbTarget: thumb.image,
galleriaData: data
});
protoArray.shift.call(self._queue);
self._queue.stalled=false;
if(self._queue.length){
self._show();
}};}(data, next, active, queue, thumb));
if(this._options.carousel&&this._options.carouselFollow){
this._carousel.follow(queue.index);
}
self._preload();
Utils.show(next.container);
next.isIframe=data.iframe&&!data.image;
$(self._thumbnails[ queue.index ].container)
.addClass('active')
.siblings('.active')
.removeClass('active');
self.trigger({
type: Galleria.LOADSTART,
cached: cached,
index: queue.index,
rewind: queue.rewind,
imageTarget: next.image,
thumbTarget: thumb.image,
galleriaData: data
});
self._queue.stalled=true;
next.load(src, function(next){
var layer=$(self._layers[ 1-self._controls.active ]).html(data.layer||'').hide();
self._scaleImage(next, {
complete: function(next){
if('image' in active){
Utils.toggleQuality(active.image, false);
}
Utils.toggleQuality(next.image, false);
self.removePan();
self.setInfo(queue.index);
self.setCounter(queue.index);
if(data.layer){
layer.show();
if(( data.iframe&&data.image)||data.link||self._options.lightbox||self._options.clicknext){
layer.css('cursor', 'pointer').off('mouseup').mouseup(mousetrigger);
}}
if(data.video&&data.image){
_playIcon(next.container);
}
var transition=self._options.transition;
$.each({
initial: active.image===null,
touch: Galleria.TOUCH,
fullscreen: self.isFullscreen()
}, function(type, arg){
if(arg&&self._options[ type + 'Transition' ]!==undef){
transition=self._options[ type + 'Transition' ];
return false;
}});
if(transition in _transitions.effects===false){
complete();
}else{
var params={
prev: active.container,
next: next.container,
rewind: queue.rewind,
speed: self._options.transitionSpeed||400
};
_transitions.active=true;
_transitions.init.call(self, transition, params, complete);
}
self.trigger({
type: Galleria.LOADFINISH,
cached: cached,
index: queue.index,
rewind: queue.rewind,
imageTarget: next.image,
thumbTarget: self._thumbnails[ queue.index ].image,
galleriaData: self.getData(queue.index)
});
}});
});
},
getNext:function(base){
base=typeof base==='number' ? base:this.getIndex();
return base===this.getDataLength() - 1 ? 0:base + 1;
},
getPrev:function(base){
base=typeof base==='number' ? base:this.getIndex();
return base===0 ? this.getDataLength() - 1:base - 1;
},
next:function(){
if(this.getDataLength() > 1){
this.show(this.getNext(), false);
}
return this;
},
prev:function(){
if(this.getDataLength() > 1){
this.show(this.getPrev(), true);
}
return this;
},
get:function(elemId){
return elemId in this._dom ? this._dom[ elemId ]:null;
},
getData:function(index){
return index in this._data ?
this._data[ index ]:this._data[ this._active ];
},
getDataLength:function(){
return this._data.length;
},
getIndex:function(){
return typeof this._active==='number' ? this._active:false;
},
getStageHeight:function(){
return this._stageHeight;
},
getStageWidth:function(){
return this._stageWidth;
},
getOptions:function(key){
return typeof key==='undefined' ? this._options:this._options[ key ];
},
setOptions:function(key, value){
if(typeof key==='object'){
$.extend(this._options, key);
}else{
this._options[ key ]=value;
}
return this;
},
play:function(delay){
this._playing=true;
this._playtime=delay||this._playtime;
this._playCheck();
this.trigger(Galleria.PLAY);
return this;
},
pause:function(){
this._playing=false;
this.trigger(Galleria.PAUSE);
return this;
},
playToggle:function(delay){
return(this._playing) ? this.pause():this.play(delay);
},
isPlaying:function(){
return this._playing;
},
isFullscreen:function(){
return this._fullscreen.active;
},
_playCheck:function(){
var self=this,
played=0,
interval=20,
now=Utils.timestamp(),
timer_id='play' + this._id;
if(this._playing){
this.clearTimer(timer_id);
var fn=function(){
played=Utils.timestamp() - now;
if(played >=self._playtime&&self._playing){
self.clearTimer(timer_id);
self.next();
return;
}
if(self._playing){
self.trigger({
type:         Galleria.PROGRESS,
percent:      M.ceil(played / self._playtime * 100),
seconds:      M.floor(played / 1000),
milliseconds: played
});
self.addTimer(timer_id, fn, interval);
}};
self.addTimer(timer_id, fn, interval);
}},
setPlaytime: function(delay){
this._playtime=delay;
return this;
},
setIndex: function(val){
this._active=val;
return this;
},
setCounter: function(index){
if(typeof index==='number'){
index++;
}else if(typeof index==='undefined'){
index=this.getIndex()+1;
}
this.get('current').innerHTML=index;
if(IE){
var count=this.$('counter'),
opacity=count.css('opacity');
if(parseInt(opacity, 10)===1){
Utils.removeAlpha(count[0]);
}else{
this.$('counter').css('opacity', opacity);
}}
return this;
},
setInfo:function(index){
var self=this,
data=this.getData(index);
$.each(['title','description'], function(i, type){
var elem=self.$('info-' + type);
if(!!data[type]){
elem[ data[ type ].length ? 'show':'hide' ]().html(data[ type ]);
}else{
elem.empty().hide();
}});
return this;
},
hasInfo:function(index){
var check='title description'.split(' '),
i;
for(i=0; check[i]; i++){
if(!!this.getData(index)[ check[i] ]){
return true;
}}
return false;
},
jQuery:function(str){
var self=this,
ret=[];
$.each(str.split(','), function(i, elemId){
elemId=$.trim(elemId);
if(self.get(elemId) ){
ret.push(elemId);
}});
var jQ=$(self.get(ret.shift()) );
$.each(ret, function(i, elemId){
jQ=jQ.add(self.get(elemId) );
});
return jQ;
},
$:function(str){
return this.jQuery.apply(this, Utils.array(arguments) );
}};
$.each(_events, function(i, ev){
var type=/_/.test(ev) ? ev.replace(/_/g, ''):ev;
Galleria[ ev.toUpperCase() ]='galleria.'+type;
});
$.extend(Galleria, {
IE9:     IE===9,
IE8:     IE===8,
IE7:     IE===7,
IE6:     IE===6,
IE:      IE,
WEBKIT:  /webkit/.test(NAV),
CHROME:  /chrome/.test(NAV),
SAFARI:  /safari/.test(NAV)&&!(/chrome/.test(NAV)),
QUIRK:(IE&&doc.compatMode&&doc.compatMode==="BackCompat"),
MAC:     /mac/.test(navigator.platform.toLowerCase()),
OPERA:   !!window.opera,
IPHONE:  /iphone/.test(NAV),
IPAD:    /ipad/.test(NAV),
ANDROID: /android/.test(NAV),
TOUCH:('ontouchstart' in doc)&&MOBILE
});
Galleria.addTheme=function(theme){
if(!theme.name){
Galleria.raise('No theme name specified');
}
if(!theme.version||parseInt(Galleria.version*10) > parseInt(theme.version*10)){
Galleria.raise('This version of Galleria requires '+theme.name+' theme version '+parseInt(Galleria.version*10)/10+' or later', true);
}
if(typeof theme.defaults!=='object'){
theme.defaults={};}else{
theme.defaults=_legacyOptions(theme.defaults);
}
var css=false,
reg, reg2;
if(typeof theme.css==='string'){
$('link').each(function(i, link){
reg=new RegExp(theme.css);
if(reg.test(link.href) ){
css=true;
_themeLoad(theme);
return false;
}});
if(!css){
$(function(){
var retryCount=0;
var tryLoadCss=function(){
$('script').each(function (i, script){
reg=new RegExp('galleria\\.' + theme.name.toLowerCase() + '\\.');
reg2=new RegExp('galleria\\.io\\/theme\\/' + theme.name.toLowerCase() + '\\/(\\d*\\.*)?(\\d*\\.*)?(\\d*\\/)?js');
if(reg.test(script.src)||reg2.test(script.src)){
css=script.src.replace(/[^\/]*$/, '') + theme.css;
window.setTimeout(function (){
Utils.loadCSS(css, 'galleria-theme-'+theme.name, function (){
_themeLoad(theme);
});
}, 1);
}});
if(!css){
if(retryCount++ > 5){
Galleria.raise('No theme CSS loaded');
}else{
window.setTimeout(tryLoadCss, 500);
}}
};
tryLoadCss();
});
}}else{
_themeLoad(theme);
}
return theme;
};
Galleria.loadTheme=function(src, options){
if($('script').filter(function(){ return $(this).attr('src')==src; }).length){
return;
}
var loaded=false,
err;
$(window).on('load', function(){
if(!loaded){
err=window.setTimeout(function(){
if(!loaded){
Galleria.raise("Galleria had problems loading theme at " + src + ". Please check theme path or load manually.", true);
}}, 20000);
}});
Utils.loadScript(src, function(){
loaded=true;
window.clearTimeout(err);
});
return Galleria;
};
Galleria.get=function(index){
if(!!_instances[ index ]){
return _instances[ index ];
}else if(typeof index!=='number'){
return _instances;
}else{
Galleria.raise('Gallery index ' + index + ' not found');
}};
Galleria.configure=function(key, value){
var opts={};
if(typeof key=='string'&&value){
opts[key]=value;
key=opts;
}else{
$.extend(opts, key);
}
Galleria.configure.options=opts;
$.each(Galleria.get(), function(i, instance){
instance.setOptions(opts);
});
return Galleria;
};
Galleria.configure.options={};
Galleria.on=function(type, callback){
if(!type){
return;
}
callback=callback||F;
var hash=type + callback.toString().replace(/\s/g,'') + Utils.timestamp();
$.each(Galleria.get(), function(i, instance){
instance._binds.push(hash);
instance.bind(type, callback);
});
Galleria.on.binds.push({
type: type,
callback: callback,
hash: hash
});
return Galleria;
};
Galleria.on.binds=[];
Galleria.run=function(selector, options){
if($.isFunction(options) ){
options={ extend: options };}
$(selector||'#galleria').galleria(options);
return Galleria;
};
Galleria.addTransition=function(name, fn){
_transitions.effects[name]=fn;
return Galleria;
};
Galleria.utils=Utils;
Galleria.log=function(){
var args=Utils.array(arguments);
if('console' in window&&'log' in window.console){
try {
return window.console.log.apply(window.console, args);
} catch(e){
$.each(args, function(){
window.console.log(this);
});
}}else{
return window.alert(args.join('<br>'));
}};
Galleria.ready=function(fn){
if(typeof fn!='function'){
return Galleria;
}
$.each(_galleries, function(i, gallery){
fn.call(gallery, gallery._options);
});
Galleria.ready.callbacks.push(fn);
return Galleria;
};
Galleria.ready.callbacks=[];
Galleria.raise=function(msg, fatal){
var type=fatal ? 'Fatal error':'Error',
css={
color: '#fff',
position: 'absolute',
top: 0,
left: 0,
zIndex: 100000
},
echo=function(msg){
var html='<div style="padding:4px;margin:0 0 2px;background:#' +
(fatal ? '811':'222') + ';">' +
(fatal ? '<strong>' + type + ': </strong>':'') +
msg + '</div>';
$.each(_instances, function(){
var cont=this.$('errors'),
target=this.$('target');
if(!cont.length){
target.css('position', 'relative');
cont=this.addElement('errors').appendChild('target', 'errors').$('errors').css(css);
}
cont.append(html);
});
if(!_instances.length){
$('<div>').css($.extend(css, { position: 'fixed' }) ).append(html).appendTo(DOM().body);
}};
if(DEBUG){
echo(msg);
if(fatal){
throw new Error(type + ': ' + msg);
}}else if(fatal){
if(_hasError){
return;
}
_hasError=true;
fatal=false;
echo('Gallery could not load.');
}};
Galleria.version=VERSION;
Galleria.getLoadedThemes=function(){
return $.map(_loadedThemes, function(theme){
return theme.name;
});
};
Galleria.requires=function(version, msg){
msg=msg||'You need to upgrade Galleria to version ' + version + ' to use one or more components.';
if(Galleria.version < version){
Galleria.raise(msg, true);
}
return Galleria;
};
Galleria.Picture=function(id){
this.id=id||null;
this.image=null;
this.container=Utils.create('galleria-image');
$(this.container).css({
overflow: 'hidden',
position: 'relative'
});
this.original={
width: 0,
height: 0
};
this.ready=false;
this.isIframe=false;
};
Galleria.Picture.prototype={
cache: {},
show: function(){
Utils.show(this.image);
},
hide: function(){
Utils.moveOut(this.image);
},
clear: function(){
this.image=null;
},
isCached: function(src){
return !!this.cache[src];
},
preload: function(src){
var $image=$(new Image()).on('load', (function(src, cache){
return function(){
cache[ src ]=src;
};}(src, this.cache)));
if(src.srcset){
$image.attr('srcset', src.srcset);
}
if(src.sizes){
$image.attr('sizes', src.sizes);
}
$image.attr('src', src);
},
load: function(src, size, callback){
if(typeof size=='function'){
callback=size;
size=null;
}
if(this.isIframe){
var id='if'+new Date().getTime();
var iframe=this.image=$('<iframe>', {
src: src,
frameborder: 0,
id: id,
allowfullscreen: true,
css: { visibility: 'hidden' }})[0];
if(size){
$(iframe).css(size);
}
$(this.container).find('iframe,img').remove();
this.container.appendChild(this.image);
$('#'+id).on('load', (function(self, callback){
return function(){
window.setTimeout(function(){
$(self.image).css('visibility', 'visible');
if(typeof callback=='function'){
callback.call(self, self);
}}, 10);
};}(this, callback)));
return this.container;
}
this.image=new Image();
if(Galleria.IE8){
$(this.image).css('filter', 'inherit');
}
if(!Galleria.IE&&!Galleria.CHROME&&!Galleria.SAFARI){
$(this.image).css('image-rendering', 'optimizequality');
}
var reload=false,
resort=false,
$container=$(this.container),
$image=$(this.image),
onerror=function(){
if(!reload){
reload=true;
window.setTimeout((function(image, src){
return function(){
image.attr('src', src + (src.indexOf('?') > -1 ? '&':'?') + Utils.timestamp());
};}($(this), src)), 50);
}else{
if(DUMMY){
$(this).attr('src', DUMMY);
}else{
Galleria.raise('Image not found: ' + src);
}}
},
onload=(function(self, callback, src){
return function(){
var complete=function(){
$(this).off('load');
self.original=size||{
height: this.height,
width: this.width
};
if(Galleria.HAS3D){
this.style.MozTransform=this.style.webkitTransform='translate3d(0,0,0)';
}
$container.append(this);
self.cache[ src ]=src;
if(typeof callback=='function'){
window.setTimeout(function(){
callback.call(self, self);
},1);
}};
if(( !this.width||!this.height) ){
(function(img){
Utils.wait({
until: function(){
return img.width&&img.height;
},
success: function(){
complete.call(img);
},
error: function(){
if(!resort){
$(new Image()).on('load', onload).attr('src', img.src);
resort=true;
}else{
Galleria.raise('Could not extract width/height from image: ' + img.src +
'. Traced measures: width:' + img.width + 'px, height: ' + img.height + 'px.');
}},
timeout: 100
});
}(this));
}else{
complete.call(this);
}};}(this, callback, src));
$container.find('iframe,img').remove();
$image.css('display', 'block');
Utils.hide(this.image);
$.each('minWidth minHeight maxWidth maxHeight'.split(' '), function(i, prop){
$image.css(prop, (/min/.test(prop) ? '0':'none'));
});
$image.on('load', onload).on('error', onerror);
if(src.srcset){
$image.attr('srcset', src.srcset);
}
if(src.sizes){
$image.attr('sizes', src.sizes);
}
$image.attr('src', src);
return this.container;
},
scale: function(options){
var self=this;
options=$.extend({
width: 0,
height: 0,
min: undef,
max: undef,
margin: 0,
complete: F,
position: 'center',
crop: false,
canvas: false,
iframelimit: undef
}, options);
if(this.isIframe){
var cw=options.width,
ch=options.height,
nw, nh;
if(options.iframelimit){
var r=M.min(options.iframelimit/cw, options.iframelimit/ch);
if(r < 1){
nw=cw * r;
nh=ch * r;
$(this.image).css({
top: ch/2-nh/2,
left: cw/2-nw/2,
position: 'absolute'
});
}else{
$(this.image).css({
top: 0,
left: 0
});
}}
$(this.image).width(nw||cw).height(nh||ch).removeAttr('width').removeAttr('height');
$(this.container).width(cw).height(ch);
options.complete.call(self, self);
try {
if(this.image.contentWindow){
$(this.image.contentWindow).trigger('resize');
}} catch(e){}
return this.container;
}
if(!this.image){
return this.container;
}
var width,
height,
$container=$(self.container),
data;
Utils.wait({
until: function(){
width=options.width ||
$container.width() ||
Utils.parseValue($container.css('width'));
height=options.height ||
$container.height() ||
Utils.parseValue($container.css('height'));
return width&&height;
},
success: function(){
var newWidth=(width - options.margin * 2) / self.original.width,
newHeight=(height - options.margin * 2) / self.original.height,
min=M.min(newWidth, newHeight),
max=M.max(newWidth, newHeight),
cropMap={
'true':max,
'width':newWidth,
'height': newHeight,
'false':min,
'landscape': self.original.width > self.original.height ? max:min,
'portrait': self.original.width < self.original.height ? max:min
},
ratio=cropMap[ options.crop.toString() ],
canvasKey='';
if(options.max){
ratio=M.min(options.max, ratio);
}
if(options.min){
ratio=M.max(options.min, ratio);
}
$.each(['width','height'], function(i, m){
$(self.image)[ m ](self[ m ]=self.image[ m ]=M.round(self.original[ m ] * ratio) );
});
$(self.container).width(width).height(height);
if(options.canvas&&_canvas){
_canvas.elem.width=self.width;
_canvas.elem.height=self.height;
canvasKey=self.image.src + ':' + self.width + 'x' + self.height;
self.image.src=_canvas.cache[ canvasKey ]||(function(key){
_canvas.context.drawImage(self.image, 0, 0, self.original.width*ratio, self.original.height*ratio);
try {
data=_canvas.elem.toDataURL();
_canvas.length +=data.length;
_canvas.cache[ key ]=data;
return data;
} catch(e){
return self.image.src;
}}(canvasKey) );
}
var pos={},
mix={},
getPosition=function(value, measure, margin){
var result=0;
if(/\%/.test(value)){
var flt=parseInt(value, 10) / 100,
m=self.image[ measure ]||$(self.image)[ measure ]();
result=M.ceil(m * -1 * flt + margin * flt);
}else{
result=Utils.parseValue(value);
}
return result;
},
positionMap={
'top': { top: 0 },
'left': { left: 0 },
'right': { left: '100%' },
'bottom': { top: '100%' }};
$.each(options.position.toLowerCase().split(' '), function(i, value){
if(value==='center'){
value='50%';
}
pos[i ? 'top':'left']=value;
});
$.each(pos, function(i, value){
if(positionMap.hasOwnProperty(value) ){
$.extend(mix, positionMap[ value ]);
}});
pos=pos.top ? $.extend(pos, mix):mix;
pos=$.extend({
top: '50%',
left: '50%'
}, pos);
$(self.image).css({
position:'absolute',
top:getPosition(pos.top, 'height', height),
left:getPosition(pos.left, 'width', width)
});
self.show();
self.ready=true;
options.complete.call(self, self);
},
error: function(){
if(window.console&&console.trace){
console.trace('Could not scale image: ' + self.image.src);
}},
timeout: 1000
});
return this;
}};
$.extend($.easing, {
galleria: function (_, t, b, c, d){
if((t/=d/2) < 1){
return c/2*t*t*t + b;
}
return c/2*((t-=2)*t*t + 2) + b;
},
galleriaIn: function (_, t, b, c, d){
return c*(t/=d)*t + b;
},
galleriaOut: function (_, t, b, c, d){
return -c *(t/=d)*(t-2) + b;
}});
Galleria.Finger=(function(){
var abs=M.abs;
var has3d=Galleria.HAS3D=(function(){
var el=doc.createElement('p'),
has3d,
t=['webkit','O','ms','Moz',''],
s,
i=0,
a='transform';
DOM().html.insertBefore(el, null);
for (; t[i]; i++){
s=t[i] ? t[i]+'Transform':a;
if(el.style[s]!==undefined){
el.style[s]="translate3d(1px,1px,1px)";
has3d=$(el).css(t[i] ? '-'+t[i].toLowerCase()+'-'+a:a);
}}
DOM().html.removeChild(el);
return (has3d!==undefined&&has3d.length > 0&&has3d!=="none");
}());
var requestFrame=(function(){
var r='RequestAnimationFrame';
return window.requestAnimationFrame ||
window['webkit'+r] ||
window['moz'+r] ||
window['o'+r] ||
window['ms'+r] ||
function(callback){
window.setTimeout(callback, 1000 / 60);
};}());
var Finger=function(elem, options){
this.config={
start: 0,
duration: 500,
onchange: function(){},
oncomplete: function(){},
easing: function(x,t,b,c,d){
return -c * ((t=t/d-1)*t*t*t - 1) + b;
}};
this.easeout=function (x, t, b, c, d){
return c*((t=t/d-1)*t*t*t*t + 1) + b;
};
if(!elem.children.length){
return;
}
var self=this;
$.extend(this.config, options);
this.elem=elem;
this.child=elem.children[0];
this.to=this.pos=0;
this.touching=false;
this.start={};
this.index=this.config.start;
this.anim=0;
this.easing=this.config.easing;
if(!has3d){
this.child.style.position='absolute';
this.elem.style.position='relative';
}
$.each(['ontouchstart','ontouchmove','ontouchend','setup'], function(i, fn){
self[fn]=(function(caller){
return function(){
caller.apply(self, arguments);
};}(self[fn]));
});
this.setX=function(){
var style=self.child.style;
if(!has3d){
style.left=self.pos+'px';
return;
}
style.MozTransform=style.webkitTransform=style.transform='translate3d(' + self.pos + 'px,0,0)';
return;
};
$(elem).on('touchstart', this.ontouchstart);
$(window).on('resize', this.setup);
$(window).on('orientationchange', this.setup);
this.setup();
(function animloop(){
requestFrame(animloop);
self.loop.call(self);
}());
};
Finger.prototype={
constructor: Finger,
setup: function(){
this.width=$(this.elem).width();
this.length=M.ceil($(this.child).width() / this.width);
if(this.index!==0){
this.index=M.max(0, M.min(this.index, this.length-1) );
this.pos=this.to=-this.width*this.index;
}},
setPosition: function(pos){
this.pos=pos;
this.to=pos;
},
ontouchstart: function(e){
var touch=e.originalEvent.touches;
this.start={
pageX: touch[0].pageX,
pageY: touch[0].pageY,
time:  +new Date()
};
this.isScrolling=null;
this.touching=true;
this.deltaX=0;
$doc.on('touchmove', this.ontouchmove);
$doc.on('touchend', this.ontouchend);
},
ontouchmove: function(e){
var touch=e.originalEvent.touches;
if(touch&&touch.length > 1||e.scale&&e.scale!==1){
return;
}
this.deltaX=touch[0].pageX - this.start.pageX;
if(this.isScrolling===null){
this.isScrolling = !!(
this.isScrolling ||
M.abs(this.deltaX) < M.abs(touch[0].pageY - this.start.pageY)
);
}
if(!this.isScrolling){
e.preventDefault();
this.deltaX /=((!this.index&&this.deltaX > 0||this.index==this.length - 1&&this.deltaX < 0) ?
(M.abs(this.deltaX) / this.width + 1.8):1);
this.to=this.deltaX - this.index * this.width;
}
e.stopPropagation();
},
ontouchend: function(e){
this.touching=false;
var isValidSlide=+new Date() - this.start.time < 250 &&
M.abs(this.deltaX) > 40 ||
M.abs(this.deltaX) > this.width/2,
isPastBounds = !this.index&&this.deltaX > 0 ||
this.index==this.length - 1&&this.deltaX < 0;
if(!this.isScrolling){
this.show(this.index +(isValidSlide&&!isPastBounds ? (this.deltaX < 0 ? 1:-1):0) );
}
$doc.off('touchmove', this.ontouchmove);
$doc.off('touchend', this.ontouchend);
},
show: function(index){
if(index!=this.index){
this.config.onchange.call(this, index);
}else{
this.to=-(index*this.width);
}},
moveTo: function(index){
if(index!=this.index){
this.pos=this.to=-(index*this.width);
this.index=index;
}},
loop: function(){
var distance=this.to - this.pos,
factor=1;
if(this.width&&distance){
factor=M.max(0.5, M.min(1.5, M.abs(distance / this.width)) );
}
if(this.touching||M.abs(distance) <=1){
this.pos=this.to;
distance=0;
if(this.anim&&!this.touching){
this.config.oncomplete(this.index);
}
this.anim=0;
this.easing=this.config.easing;
}else{
if(!this.anim){
this.anim={ start: this.pos, time: +new Date(), distance: distance, factor: factor, destination: this.to };}
var elapsed=+new Date() - this.anim.time;
var duration=this.config.duration*this.anim.factor;
if(elapsed > duration||this.anim.destination!=this.to){
this.anim=0;
this.easing=this.easeout;
return;
}
this.pos=this.easing(null,
elapsed,
this.anim.start,
this.anim.distance,
duration
);
}
this.setX();
}};
return Finger;
}());
$.fn.galleria=function(options){
var selector=this.selector;
if(!$(this).length){
$(function(){
if($(selector).length){
$(selector).galleria(options);
}else{
Galleria.utils.wait({
until: function(){
return $(selector).length;
},
success: function(){
$(selector).galleria(options);
},
error: function(){
Galleria.raise('Init failed: Galleria could not find the element "'+selector+'".');
},
timeout: 5000
});
}});
return this;
}
return this.each(function(){
if($.data(this, 'galleria')){
$.data(this, 'galleria').destroy();
$(this).find('*').hide();
}
$.data(this, 'galleria', new Galleria().init(this, options) );
});
};
return Galleria;
}));
(function (window){
window.getDevicePixelRatio=function(){
var ratio=1;
if(window.screen.systemXDPI!==undefined
&&  window.screen.logicalXDPI!==undefined
&&  window.screen.systemXDPI > window.screen.logicalXDPI){
ratio=window.screen.systemXDPI / window.screen.logicalXDPI;
}else if(window.devicePixelRatio!==undefined){
ratio=window.devicePixelRatio;
}
return ratio;
};})(this);
(function ($){
"use strict";
window.ngg_galleria={
gallery_selector: '.ngg-galleria-parent',
gallery_target_selector: '.ngg-galleria',
start: function(themename){
const self=this;
const selector=this.gallery_selector + '.' + themename;
$(selector).each(function(ndx, gallery_parent){
const observer=new IntersectionObserver(
function(entries){
entries.forEach(function (entry){
if(1===entry.intersectionRatio){
self.create(gallery_parent, themename);
}}
);
}
);
observer.observe(gallery_parent);
});
},
get_gallery_from_id: function (gallery_id){
var retval=null;
if('undefined'==typeof window.galleries){
return retval;
}
$.each(window.galleries, function(index, gallery){
if(gallery.ID==gallery_id){
retval=gallery;
}});
return $.extend({}, retval);
},
get_setting: function(gallery, name, def){
if(typeof gallery!='object'){
gallery=this.get_gallery_from_id(gallery);
}
var settings=gallery.display_settings;
var tmp='';
if(typeof settings!=='undefined'
&&  typeof settings[name]!=='undefined'
&&  settings[name]!==''){
tmp=settings[name];
}else{
tmp=def;
}
if(tmp==1)   tmp=true;
if(tmp==0)   tmp=false;
if(tmp=='1') tmp=true;
if(tmp=='0') tmp=false;
return tmp;
},
create: function(gallery_parent, themename){
var gallery_id=$(gallery_parent).data('id');
var gallery=$.extend({}, this.get_gallery_from_id(gallery_id));
var target=$(gallery_parent).find(this.gallery_target_selector).first();
this.configure_galleria(gallery_parent, target, gallery);
var images=gallery.images_list;
if(window.getDevicePixelRatio() > 1){
$(images).each(function(ndx, image){
if(image.use_hdpi){
image.image=image.srcsets.hdpi;
}});
}
var border_margin=this.get_setting(gallery, 'border_size', '0');
if(typeof border_margin=='boolean'){
if(border_margin)  border_margin=1;
if(!border_margin) border_margin=0;
}
border_margin=parseInt(border_margin);
var settings={
theme:         themename,
responsive:    true,
debug:         true,
maxScaleRatio: 1,
dataSource:    images,
showInfo:    this.get_setting(gallery, 'show_captions', false),
imagePan:    this.get_setting(gallery, 'image_pan',     false),
imageCrop:   this.get_setting(gallery, 'image_crop',    false),
transition:  this.get_setting(gallery, 'transition',   'fade'),
imageMargin: border_margin,
transitionSpeed: this.get_setting(gallery, 'transition_speed', 1) * 1000,
_nggGalleryID:     gallery_id,
_nggGalleryParent: gallery_parent,
_nggCaptionClass:         this.get_setting(gallery, 'caption_class',          'caption_overlay_bottom'),
_nggCaptionHeight:        this.get_setting(gallery, 'caption_height',         52),
_nggShowPlaybackControls: this.get_setting(gallery, 'show_playback_controls', true),
_nggImageCrop:            this.get_setting(gallery, 'image_crop',             false),
_nggBorderSize:           border_margin,
_nggBorderColor:          this.get_setting(gallery, 'border_color',           '#ffffff'),
_nggSlideshowSpeed:       this.get_setting(gallery, 'slideshow_speed',        5) * 1000
};
Galleria.run(target, settings);
},
configure_galleria: function(gallery_parent, target, gallery){
gallery_parent=$(gallery_parent);
var self=this;
var settings=$.extend({}, gallery.display_settings);
for (var index in settings){
var numeric_val=Number(settings[index]);
if(!isNaN(numeric_val)){
settings[index]=numeric_val;
}
if(numeric_val==0||numeric_val==1&&!index.match(/width|size|height|dimensions|percent/)){
settings[index]=numeric_val ? true:false;
}}
this.adjust_size(gallery_parent, target, settings);
$(window).on('resize orientationchange onfullscreenchange onmozfullscreenchange onwebkitfullscreenchange', function(){
self.adjust_size(gallery_parent, target, settings);
});
},
adjust_size: function(gallery_parent, target, settings){
var parent_width=gallery_parent.width();
var width=settings.width;
if(settings.width_unit=='%'){
width=Math.round(parent_width * (settings.width / 100));
}
if(parent_width > 0&&parent_width < width){
width=parent_width;
}
target.width(width);
var aspect_ratio=gallery_parent.width() / gallery_parent.height();
if(typeof(settings.aspect_ratio)!='undefined'&&settings.aspect_ratio!=0){
aspect_ratio=settings.aspect_ratio;
if(!parseFloat(aspect_ratio)){
if(settings.aspect_ratio_computed&&parseFloat(settings.aspect_ratio_computed)){
aspect_ratio=settings.aspect_ratio_computed;
}else{
aspect_ratio=1.5;
}}else{
aspect_ratio=parseFloat(aspect_ratio);
}}
var frame_height=((width - 20) / aspect_ratio);
if(typeof(settings.thumbnail_height)!='undefined'){
var thumb_height=settings.thumbnail_height;
if(typeof(thumb_height)==='string'){
thumb_height=parseFloat(thumb_height);
}
frame_height +=thumb_height;
}
frame_height +=20;
var caption=settings.caption_class;
if(caption=='caption_above_stage'||caption=='caption_below_stage'){
frame_height +=52;
}
gallery_parent.height(frame_height);
}};
$(window).on('ngg.galleria.themeadded', function(event, themename){
ngg_galleria.start(themename);
});
})(jQuery);