/* Minification failed. Returning unminified contents.
(7295,40730-40737): run-time error JS1010: Expected identifier: finally
(11717,13-16): run-time error JS1009: Expected '}': ...
(11717,13-16): run-time error JS1006: Expected ')': ...
(11716,27): run-time error JS1004: Expected ';'
(11719,10-11): run-time error JS1195: Expected expression: )
(11751,9-12): run-time error JS1009: Expected '}': ...
(11751,9-12): run-time error JS1006: Expected ')': ...
(11750,23): run-time error JS1004: Expected ';'
(11753,5-6): run-time error JS1002: Syntax error: }
(11753,6-7): run-time error JS1195: Expected expression: )
(11754,1-2): run-time error JS1002: Syntax error: }
(11750,5-23): run-time error JS1018: 'return' statement outside of function: return Swal.fire({
 */
!function(t,e){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){"use strict";var i=[],s=t.document,n=Object.getPrototypeOf,o=i.slice,r=i.concat,a=i.push,l=i.indexOf,h={},u=h.toString,c=h.hasOwnProperty,d=c.toString,p=d.call(Object),f={},g=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType},m=function(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function _(t,e,i){var n,o=(e=e||s).createElement("script");if(o.text=t,i)for(n in v)i[n]&&(o[n]=i[n]);e.head.appendChild(o).parentNode.removeChild(o)}function b(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?h[u.call(t)]||"object":typeof t}var y=function(t,e){return new y.fn.init(t,e)},w=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function x(t){var e=!!t&&"length"in t&&t.length,i=b(t);return!g(t)&&!m(t)&&("array"===i||0===e||"number"==typeof e&&e>0&&e-1 in t)}y.fn=y.prototype={jquery:"3.3.1",constructor:y,length:0,toArray:function(){return o.call(this)},get:function(t){return null==t?o.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=y.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return y.each(this,t)},map:function(t){return this.pushStack(y.map(this,function(e,i){return t.call(e,i,e)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,i=+t+(t<0?e:0);return this.pushStack(i>=0&&i<e?[this[i]]:[])},end:function(){return this.prevObject||this.constructor()},push:a,sort:i.sort,splice:i.splice},y.extend=y.fn.extend=function(){var t,e,i,s,n,o,r=arguments[0]||{},a=1,l=arguments.length,h=!1;for("boolean"==typeof r&&(h=r,r=arguments[a]||{},a++),"object"==typeof r||g(r)||(r={}),a===l&&(r=this,a--);a<l;a++)if(null!=(t=arguments[a]))for(e in t)i=r[e],r!==(s=t[e])&&(h&&s&&(y.isPlainObject(s)||(n=Array.isArray(s)))?(n?(n=!1,o=i&&Array.isArray(i)?i:[]):o=i&&y.isPlainObject(i)?i:{},r[e]=y.extend(h,o,s)):void 0!==s&&(r[e]=s));return r},y.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isPlainObject:function(t){var e,i;return!(!t||"[object Object]"!==u.call(t)||(e=n(t))&&("function"!=typeof(i=c.call(e,"constructor")&&e.constructor)||d.call(i)!==p))},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},globalEval:function(t){_(t)},each:function(t,e){var i,s=0;if(x(t))for(i=t.length;s<i&&!1!==e.call(t[s],s,t[s]);s++);else for(s in t)if(!1===e.call(t[s],s,t[s]))break;return t},trim:function(t){return null==t?"":(t+"").replace(w,"")},makeArray:function(t,e){var i=e||[];return null!=t&&(x(Object(t))?y.merge(i,"string"==typeof t?[t]:t):a.call(i,t)),i},inArray:function(t,e,i){return null==e?-1:l.call(e,t,i)},merge:function(t,e){for(var i=+e.length,s=0,n=t.length;s<i;s++)t[n++]=e[s];return t.length=n,t},grep:function(t,e,i){for(var s=[],n=0,o=t.length,r=!i;n<o;n++)!e(t[n],n)!==r&&s.push(t[n]);return s},map:function(t,e,i){var s,n,o=0,a=[];if(x(t))for(s=t.length;o<s;o++)null!=(n=e(t[o],o,i))&&a.push(n);else for(o in t)null!=(n=e(t[o],o,i))&&a.push(n);return r.apply([],a)},guid:1,support:f}),"function"==typeof Symbol&&(y.fn[Symbol.iterator]=i[Symbol.iterator]),y.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){h["[object "+e+"]"]=e.toLowerCase()});var k=function(t){var e,i,s,n,o,r,a,l,h,u,c,d,p,f,g,m,v,_,b,y="sizzle"+1*new Date,w=t.document,x=0,k=0,C=rt(),D=rt(),T=rt(),I=function(t,e){return t===e&&(c=!0),0},S={}.hasOwnProperty,P=[],M=P.pop,A=P.push,E=P.push,N=P.slice,H=function(t,e){for(var i=0,s=t.length;i<s;i++)if(t[i]===e)return i;return-1},O="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",z="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",L="\\["+z+"*("+W+")(?:"+z+"*([*^$|!~]?=)"+z+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+W+"))|)"+z+"*\\]",F=":("+W+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+L+")*)|.*)\\)|)",R=new RegExp(z+"+","g"),j=new RegExp("^"+z+"+|((?:^|[^\\\\])(?:\\\\.)*)"+z+"+$","g"),q=new RegExp("^"+z+"*,"+z+"*"),B=new RegExp("^"+z+"*([>+~]|"+z+")"+z+"*"),Y=new RegExp("="+z+"*([^\\]'\"]*?)"+z+"*\\]","g"),U=new RegExp(F),$=new RegExp("^"+W+"$"),K={ID:new RegExp("^#("+W+")"),CLASS:new RegExp("^\\.("+W+")"),TAG:new RegExp("^("+W+"|[*])"),ATTR:new RegExp("^"+L),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+z+"*(even|odd|(([+-]|)(\\d*)n|)"+z+"*(?:([+-]|)"+z+"*(\\d+)|))"+z+"*\\)|)","i"),bool:new RegExp("^(?:"+O+")$","i"),needsContext:new RegExp("^"+z+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+z+"*((?:-\\d)?\\d*)"+z+"*\\)|)(?=[^-]|$)","i")},V=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,G=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+z+"?|("+z+")|.)","ig"),tt=function(t,e,i){var s="0x"+e-65536;return s!=s||i?e:s<0?String.fromCharCode(s+65536):String.fromCharCode(s>>10|55296,1023&s|56320)},et=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,it=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},st=function(){d()},nt=_t(function(t){return!0===t.disabled&&("form"in t||"label"in t)},{dir:"parentNode",next:"legend"});try{E.apply(P=N.call(w.childNodes),w.childNodes),P[w.childNodes.length].nodeType}catch(t){E={apply:P.length?function(t,e){A.apply(t,N.call(e))}:function(t,e){for(var i=t.length,s=0;t[i++]=e[s++];);t.length=i-1}}}function ot(t,e,s,n){var o,a,h,u,c,f,v,_=e&&e.ownerDocument,x=e?e.nodeType:9;if(s=s||[],"string"!=typeof t||!t||1!==x&&9!==x&&11!==x)return s;if(!n&&((e?e.ownerDocument||e:w)!==p&&d(e),e=e||p,g)){if(11!==x&&(c=Q.exec(t)))if(o=c[1]){if(9===x){if(!(h=e.getElementById(o)))return s;if(h.id===o)return s.push(h),s}else if(_&&(h=_.getElementById(o))&&b(e,h)&&h.id===o)return s.push(h),s}else{if(c[2])return E.apply(s,e.getElementsByTagName(t)),s;if((o=c[3])&&i.getElementsByClassName&&e.getElementsByClassName)return E.apply(s,e.getElementsByClassName(o)),s}if(i.qsa&&!T[t+" "]&&(!m||!m.test(t))){if(1!==x)_=e,v=t;else if("object"!==e.nodeName.toLowerCase()){for((u=e.getAttribute("id"))?u=u.replace(et,it):e.setAttribute("id",u=y),a=(f=r(t)).length;a--;)f[a]="#"+u+" "+vt(f[a]);v=f.join(","),_=J.test(t)&&gt(e.parentNode)||e}if(v)try{return E.apply(s,_.querySelectorAll(v)),s}catch(t){}finally{u===y&&e.removeAttribute("id")}}}return l(t.replace(j,"$1"),e,s,n)}function rt(){var t=[];return function e(i,n){return t.push(i+" ")>s.cacheLength&&delete e[t.shift()],e[i+" "]=n}}function at(t){return t[y]=!0,t}function lt(t){var e=p.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ht(t,e){for(var i=t.split("|"),n=i.length;n--;)s.attrHandle[i[n]]=e}function ut(t,e){var i=e&&t,s=i&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(s)return s;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function ct(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function dt(t){return function(e){var i=e.nodeName.toLowerCase();return("input"===i||"button"===i)&&e.type===t}}function pt(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&&nt(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ft(t){return at(function(e){return e=+e,at(function(i,s){for(var n,o=t([],i.length,e),r=o.length;r--;)i[n=o[r]]&&(i[n]=!(s[n]=i[n]))})})}function gt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in i=ot.support={},o=ot.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},d=ot.setDocument=function(t){var e,n,r=t?t.ownerDocument||t:w;return r!==p&&9===r.nodeType&&r.documentElement?(f=(p=r).documentElement,g=!o(p),w!==p&&(n=p.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",st,!1):n.attachEvent&&n.attachEvent("onunload",st)),i.attributes=lt(function(t){return t.className="i",!t.getAttribute("className")}),i.getElementsByTagName=lt(function(t){return t.appendChild(p.createComment("")),!t.getElementsByTagName("*").length}),i.getElementsByClassName=G.test(p.getElementsByClassName),i.getById=lt(function(t){return f.appendChild(t).id=y,!p.getElementsByName||!p.getElementsByName(y).length}),i.getById?(s.filter.ID=function(t){var e=t.replace(Z,tt);return function(t){return t.getAttribute("id")===e}},s.find.ID=function(t,e){if(void 0!==e.getElementById&&g){var i=e.getElementById(t);return i?[i]:[]}}):(s.filter.ID=function(t){var e=t.replace(Z,tt);return function(t){var i=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return i&&i.value===e}},s.find.ID=function(t,e){if(void 0!==e.getElementById&&g){var i,s,n,o=e.getElementById(t);if(o){if((i=o.getAttributeNode("id"))&&i.value===t)return[o];for(n=e.getElementsByName(t),s=0;o=n[s++];)if((i=o.getAttributeNode("id"))&&i.value===t)return[o]}return[]}}),s.find.TAG=i.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):i.qsa?e.querySelectorAll(t):void 0}:function(t,e){var i,s=[],n=0,o=e.getElementsByTagName(t);if("*"===t){for(;i=o[n++];)1===i.nodeType&&s.push(i);return s}return o},s.find.CLASS=i.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&g)return e.getElementsByClassName(t)},v=[],m=[],(i.qsa=G.test(p.querySelectorAll))&&(lt(function(t){f.appendChild(t).innerHTML="<a id='"+y+"'></a><select id='"+y+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+z+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||m.push("\\["+z+"*(?:value|"+O+")"),t.querySelectorAll("[id~="+y+"-]").length||m.push("~="),t.querySelectorAll(":checked").length||m.push(":checked"),t.querySelectorAll("a#"+y+"+*").length||m.push(".#.+[+~]")}),lt(function(t){t.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var e=p.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&m.push("name"+z+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),f.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),m.push(",.*:")})),(i.matchesSelector=G.test(_=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&lt(function(t){i.disconnectedMatch=_.call(t,"*"),_.call(t,"[s!='']:x"),v.push("!=",F)}),m=m.length&&new RegExp(m.join("|")),v=v.length&&new RegExp(v.join("|")),e=G.test(f.compareDocumentPosition),b=e||G.test(f.contains)?function(t,e){var i=9===t.nodeType?t.documentElement:t,s=e&&e.parentNode;return t===s||!(!s||1!==s.nodeType||!(i.contains?i.contains(s):t.compareDocumentPosition&&16&t.compareDocumentPosition(s)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},I=e?function(t,e){if(t===e)return c=!0,0;var s=!t.compareDocumentPosition-!e.compareDocumentPosition;return s||(1&(s=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!i.sortDetached&&e.compareDocumentPosition(t)===s?t===p||t.ownerDocument===w&&b(w,t)?-1:e===p||e.ownerDocument===w&&b(w,e)?1:u?H(u,t)-H(u,e):0:4&s?-1:1)}:function(t,e){if(t===e)return c=!0,0;var i,s=0,n=t.parentNode,o=e.parentNode,r=[t],a=[e];if(!n||!o)return t===p?-1:e===p?1:n?-1:o?1:u?H(u,t)-H(u,e):0;if(n===o)return ut(t,e);for(i=t;i=i.parentNode;)r.unshift(i);for(i=e;i=i.parentNode;)a.unshift(i);for(;r[s]===a[s];)s++;return s?ut(r[s],a[s]):r[s]===w?-1:a[s]===w?1:0},p):p},ot.matches=function(t,e){return ot(t,null,null,e)},ot.matchesSelector=function(t,e){if((t.ownerDocument||t)!==p&&d(t),e=e.replace(Y,"='$1']"),i.matchesSelector&&g&&!T[e+" "]&&(!v||!v.test(e))&&(!m||!m.test(e)))try{var s=_.call(t,e);if(s||i.disconnectedMatch||t.document&&11!==t.document.nodeType)return s}catch(t){}return ot(e,p,null,[t]).length>0},ot.contains=function(t,e){return(t.ownerDocument||t)!==p&&d(t),b(t,e)},ot.attr=function(t,e){(t.ownerDocument||t)!==p&&d(t);var n=s.attrHandle[e.toLowerCase()],o=n&&S.call(s.attrHandle,e.toLowerCase())?n(t,e,!g):void 0;return void 0!==o?o:i.attributes||!g?t.getAttribute(e):(o=t.getAttributeNode(e))&&o.specified?o.value:null},ot.escape=function(t){return(t+"").replace(et,it)},ot.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},ot.uniqueSort=function(t){var e,s=[],n=0,o=0;if(c=!i.detectDuplicates,u=!i.sortStable&&t.slice(0),t.sort(I),c){for(;e=t[o++];)e===t[o]&&(n=s.push(o));for(;n--;)t.splice(s[n],1)}return u=null,t},n=ot.getText=function(t){var e,i="",s=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=n(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[s++];)i+=n(e);return i},(s=ot.selectors={cacheLength:50,createPseudo:at,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(Z,tt),t[3]=(t[3]||t[4]||t[5]||"").replace(Z,tt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||ot.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&ot.error(t[0]),t},PSEUDO:function(t){var e,i=!t[6]&&t[2];return K.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":i&&U.test(i)&&(e=r(i,!0))&&(e=i.indexOf(")",i.length-e)-i.length)&&(t[0]=t[0].slice(0,e),t[2]=i.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(Z,tt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=C[t+" "];return e||(e=new RegExp("(^|"+z+")"+t+"("+z+"|$)"))&&C(t,function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,e,i){return function(s){var n=ot.attr(s,t);return null==n?"!="===e:!e||(n+="","="===e?n===i:"!="===e?n!==i:"^="===e?i&&0===n.indexOf(i):"*="===e?i&&n.indexOf(i)>-1:"$="===e?i&&n.slice(-i.length)===i:"~="===e?(" "+n.replace(R," ")+" ").indexOf(i)>-1:"|="===e&&(n===i||n.slice(0,i.length+1)===i+"-"))}},CHILD:function(t,e,i,s,n){var o="nth"!==t.slice(0,3),r="last"!==t.slice(-4),a="of-type"===e;return 1===s&&0===n?function(t){return!!t.parentNode}:function(e,i,l){var h,u,c,d,p,f,g=o!==r?"nextSibling":"previousSibling",m=e.parentNode,v=a&&e.nodeName.toLowerCase(),_=!l&&!a,b=!1;if(m){if(o){for(;g;){for(d=e;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;f=g="only"===t&&!f&&"nextSibling"}return!0}if(f=[r?m.firstChild:m.lastChild],r&&_){for(b=(p=(h=(u=(c=(d=m)[y]||(d[y]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]||[])[0]===x&&h[1])&&h[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(b=p=0)||f.pop();)if(1===d.nodeType&&++b&&d===e){u[t]=[x,p,b];break}}else if(_&&(b=p=(h=(u=(c=(d=e)[y]||(d[y]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]||[])[0]===x&&h[1]),!1===b)for(;(d=++p&&d&&d[g]||(b=p=0)||f.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++b||(_&&((u=(c=d[y]||(d[y]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]=[x,b]),d!==e)););return(b-=n)===s||b%s==0&&b/s>=0}}},PSEUDO:function(t,e){var i,n=s.pseudos[t]||s.setFilters[t.toLowerCase()]||ot.error("unsupported pseudo: "+t);return n[y]?n(e):n.length>1?(i=[t,t,"",e],s.setFilters.hasOwnProperty(t.toLowerCase())?at(function(t,i){for(var s,o=n(t,e),r=o.length;r--;)t[s=H(t,o[r])]=!(i[s]=o[r])}):function(t){return n(t,0,i)}):n}},pseudos:{not:at(function(t){var e=[],i=[],s=a(t.replace(j,"$1"));return s[y]?at(function(t,e,i,n){for(var o,r=s(t,null,n,[]),a=t.length;a--;)(o=r[a])&&(t[a]=!(e[a]=o))}):function(t,n,o){return e[0]=t,s(e,null,o,i),e[0]=null,!i.pop()}}),has:at(function(t){return function(e){return ot(t,e).length>0}}),contains:at(function(t){return t=t.replace(Z,tt),function(e){return(e.textContent||e.innerText||n(e)).indexOf(t)>-1}}),lang:at(function(t){return $.test(t||"")||ot.error("unsupported lang: "+t),t=t.replace(Z,tt).toLowerCase(),function(e){var i;do{if(i=g?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(i=i.toLowerCase())===t||0===i.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===f},focus:function(t){return t===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:pt(!1),disabled:pt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!s.pseudos.empty(t)},header:function(t){return X.test(t.nodeName)},input:function(t){return V.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:ft(function(){return[0]}),last:ft(function(t,e){return[e-1]}),eq:ft(function(t,e,i){return[i<0?i+e:i]}),even:ft(function(t,e){for(var i=0;i<e;i+=2)t.push(i);return t}),odd:ft(function(t,e){for(var i=1;i<e;i+=2)t.push(i);return t}),lt:ft(function(t,e,i){for(var s=i<0?i+e:i;--s>=0;)t.push(s);return t}),gt:ft(function(t,e,i){for(var s=i<0?i+e:i;++s<e;)t.push(s);return t})}}).pseudos.nth=s.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})s.pseudos[e]=ct(e);for(e in{submit:!0,reset:!0})s.pseudos[e]=dt(e);function mt(){}function vt(t){for(var e=0,i=t.length,s="";e<i;e++)s+=t[e].value;return s}function _t(t,e,i){var s=e.dir,n=e.next,o=n||s,r=i&&"parentNode"===o,a=k++;return e.first?function(e,i,n){for(;e=e[s];)if(1===e.nodeType||r)return t(e,i,n);return!1}:function(e,i,l){var h,u,c,d=[x,a];if(l){for(;e=e[s];)if((1===e.nodeType||r)&&t(e,i,l))return!0}else for(;e=e[s];)if(1===e.nodeType||r)if(u=(c=e[y]||(e[y]={}))[e.uniqueID]||(c[e.uniqueID]={}),n&&n===e.nodeName.toLowerCase())e=e[s]||e;else{if((h=u[o])&&h[0]===x&&h[1]===a)return d[2]=h[2];if(u[o]=d,d[2]=t(e,i,l))return!0}return!1}}function bt(t){return t.length>1?function(e,i,s){for(var n=t.length;n--;)if(!t[n](e,i,s))return!1;return!0}:t[0]}function yt(t,e,i,s,n){for(var o,r=[],a=0,l=t.length,h=null!=e;a<l;a++)(o=t[a])&&(i&&!i(o,s,n)||(r.push(o),h&&e.push(a)));return r}function wt(t,e,i,s,n,o){return s&&!s[y]&&(s=wt(s)),n&&!n[y]&&(n=wt(n,o)),at(function(o,r,a,l){var h,u,c,d=[],p=[],f=r.length,g=o||function(t,e,i){for(var s=0,n=e.length;s<n;s++)ot(t,e[s],i);return i}(e||"*",a.nodeType?[a]:a,[]),m=!t||!o&&e?g:yt(g,d,t,a,l),v=i?n||(o?t:f||s)?[]:r:m;if(i&&i(m,v,a,l),s)for(h=yt(v,p),s(h,[],a,l),u=h.length;u--;)(c=h[u])&&(v[p[u]]=!(m[p[u]]=c));if(o){if(n||t){if(n){for(h=[],u=v.length;u--;)(c=v[u])&&h.push(m[u]=c);n(null,v=[],h,l)}for(u=v.length;u--;)(c=v[u])&&(h=n?H(o,c):d[u])>-1&&(o[h]=!(r[h]=c))}}else v=yt(v===r?v.splice(f,v.length):v),n?n(null,r,v,l):E.apply(r,v)})}function xt(t){for(var e,i,n,o=t.length,r=s.relative[t[0].type],a=r||s.relative[" "],l=r?1:0,u=_t(function(t){return t===e},a,!0),c=_t(function(t){return H(e,t)>-1},a,!0),d=[function(t,i,s){var n=!r&&(s||i!==h)||((e=i).nodeType?u(t,i,s):c(t,i,s));return e=null,n}];l<o;l++)if(i=s.relative[t[l].type])d=[_t(bt(d),i)];else{if((i=s.filter[t[l].type].apply(null,t[l].matches))[y]){for(n=++l;n<o&&!s.relative[t[n].type];n++);return wt(l>1&&bt(d),l>1&&vt(t.slice(0,l-1).concat({value:" "===t[l-2].type?"*":""})).replace(j,"$1"),i,l<n&&xt(t.slice(l,n)),n<o&&xt(t=t.slice(n)),n<o&&vt(t))}d.push(i)}return bt(d)}function kt(t,e){var i=e.length>0,n=t.length>0,o=function(o,r,a,l,u){var c,f,m,v=0,_="0",b=o&&[],y=[],w=h,k=o||n&&s.find.TAG("*",u),C=x+=null==w?1:Math.random()||.1,D=k.length;for(u&&(h=r===p||r||u);_!==D&&null!=(c=k[_]);_++){if(n&&c){for(f=0,r||c.ownerDocument===p||(d(c),a=!g);m=t[f++];)if(m(c,r||p,a)){l.push(c);break}u&&(x=C)}i&&((c=!m&&c)&&v--,o&&b.push(c))}if(v+=_,i&&_!==v){for(f=0;m=e[f++];)m(b,y,r,a);if(o){if(v>0)for(;_--;)b[_]||y[_]||(y[_]=M.call(l));y=yt(y)}E.apply(l,y),u&&!o&&y.length>0&&v+e.length>1&&ot.uniqueSort(l)}return u&&(x=C,h=w),b};return i?at(o):o}return mt.prototype=s.filters=s.pseudos,s.setFilters=new mt,r=ot.tokenize=function(t,e){var i,n,o,r,a,l,h,u=D[t+" "];if(u)return e?0:u.slice(0);for(a=t,l=[],h=s.preFilter;a;){for(r in i&&!(n=q.exec(a))||(n&&(a=a.slice(n[0].length)||a),l.push(o=[])),i=!1,(n=B.exec(a))&&(i=n.shift(),o.push({value:i,type:n[0].replace(j," ")}),a=a.slice(i.length)),s.filter)!(n=K[r].exec(a))||h[r]&&!(n=h[r](n))||(i=n.shift(),o.push({value:i,type:r,matches:n}),a=a.slice(i.length));if(!i)break}return e?a.length:a?ot.error(t):D(t,l).slice(0)},a=ot.compile=function(t,e){var i,s=[],n=[],o=T[t+" "];if(!o){for(e||(e=r(t)),i=e.length;i--;)(o=xt(e[i]))[y]?s.push(o):n.push(o);(o=T(t,kt(n,s))).selector=t}return o},l=ot.select=function(t,e,i,n){var o,l,h,u,c,d="function"==typeof t&&t,p=!n&&r(t=d.selector||t);if(i=i||[],1===p.length){if((l=p[0]=p[0].slice(0)).length>2&&"ID"===(h=l[0]).type&&9===e.nodeType&&g&&s.relative[l[1].type]){if(!(e=(s.find.ID(h.matches[0].replace(Z,tt),e)||[])[0]))return i;d&&(e=e.parentNode),t=t.slice(l.shift().value.length)}for(o=K.needsContext.test(t)?0:l.length;o--&&(h=l[o],!s.relative[u=h.type]);)if((c=s.find[u])&&(n=c(h.matches[0].replace(Z,tt),J.test(l[0].type)&&gt(e.parentNode)||e))){if(l.splice(o,1),!(t=n.length&&vt(l)))return E.apply(i,n),i;break}}return(d||a(t,p))(n,e,!g,i,!e||J.test(t)&&gt(e.parentNode)||e),i},i.sortStable=y.split("").sort(I).join("")===y,i.detectDuplicates=!!c,d(),i.sortDetached=lt(function(t){return 1&t.compareDocumentPosition(p.createElement("fieldset"))}),lt(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||ht("type|href|height|width",function(t,e,i){if(!i)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),i.attributes&&lt(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||ht("value",function(t,e,i){if(!i&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),lt(function(t){return null==t.getAttribute("disabled")})||ht(O,function(t,e,i){var s;if(!i)return!0===t[e]?e.toLowerCase():(s=t.getAttributeNode(e))&&s.specified?s.value:null}),ot}(t);y.find=k,y.expr=k.selectors,y.expr[":"]=y.expr.pseudos,y.uniqueSort=y.unique=k.uniqueSort,y.text=k.getText,y.isXMLDoc=k.isXML,y.contains=k.contains,y.escapeSelector=k.escape;var C=function(t,e,i){for(var s=[],n=void 0!==i;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(n&&y(t).is(i))break;s.push(t)}return s},D=function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i},T=y.expr.match.needsContext;function I(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var S=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function P(t,e,i){return g(e)?y.grep(t,function(t,s){return!!e.call(t,s,t)!==i}):e.nodeType?y.grep(t,function(t){return t===e!==i}):"string"!=typeof e?y.grep(t,function(t){return l.call(e,t)>-1!==i}):y.filter(e,t,i)}y.filter=function(t,e,i){var s=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===s.nodeType?y.find.matchesSelector(s,t)?[s]:[]:y.find.matches(t,y.grep(e,function(t){return 1===t.nodeType}))},y.fn.extend({find:function(t){var e,i,s=this.length,n=this;if("string"!=typeof t)return this.pushStack(y(t).filter(function(){for(e=0;e<s;e++)if(y.contains(n[e],this))return!0}));for(i=this.pushStack([]),e=0;e<s;e++)y.find(t,n[e],i);return s>1?y.uniqueSort(i):i},filter:function(t){return this.pushStack(P(this,t||[],!1))},not:function(t){return this.pushStack(P(this,t||[],!0))},is:function(t){return!!P(this,"string"==typeof t&&T.test(t)?y(t):t||[],!1).length}});var M,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(y.fn.init=function(t,e,i){var n,o;if(!t)return this;if(i=i||M,"string"==typeof t){if(!(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:A.exec(t))||!n[1]&&e)return!e||e.jquery?(e||i).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof y?e[0]:e,y.merge(this,y.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:s,!0)),S.test(n[1])&&y.isPlainObject(e))for(n in e)g(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return(o=s.getElementById(n[2]))&&(this[0]=o,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):g(t)?void 0!==i.ready?i.ready(t):t(y):y.makeArray(t,this)}).prototype=y.fn,M=y(s);var E=/^(?:parents|prev(?:Until|All))/,N={children:!0,contents:!0,next:!0,prev:!0};function H(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}y.fn.extend({has:function(t){var e=y(t,this),i=e.length;return this.filter(function(){for(var t=0;t<i;t++)if(y.contains(this,e[t]))return!0})},closest:function(t,e){var i,s=0,n=this.length,o=[],r="string"!=typeof t&&y(t);if(!T.test(t))for(;s<n;s++)for(i=this[s];i&&i!==e;i=i.parentNode)if(i.nodeType<11&&(r?r.index(i)>-1:1===i.nodeType&&y.find.matchesSelector(i,t))){o.push(i);break}return this.pushStack(o.length>1?y.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?l.call(y(t),this[0]):l.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(y.uniqueSort(y.merge(this.get(),y(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),y.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return C(t,"parentNode")},parentsUntil:function(t,e,i){return C(t,"parentNode",i)},next:function(t){return H(t,"nextSibling")},prev:function(t){return H(t,"previousSibling")},nextAll:function(t){return C(t,"nextSibling")},prevAll:function(t){return C(t,"previousSibling")},nextUntil:function(t,e,i){return C(t,"nextSibling",i)},prevUntil:function(t,e,i){return C(t,"previousSibling",i)},siblings:function(t){return D((t.parentNode||{}).firstChild,t)},children:function(t){return D(t.firstChild)},contents:function(t){return I(t,"iframe")?t.contentDocument:(I(t,"template")&&(t=t.content||t),y.merge([],t.childNodes))}},function(t,e){y.fn[t]=function(i,s){var n=y.map(this,e,i);return"Until"!==t.slice(-5)&&(s=i),s&&"string"==typeof s&&(n=y.filter(s,n)),this.length>1&&(N[t]||y.uniqueSort(n),E.test(t)&&n.reverse()),this.pushStack(n)}});var O=/[^\x20\t\r\n\f]+/g;function z(t){return t}function W(t){throw t}function L(t,e,i,s){var n;try{t&&g(n=t.promise)?n.call(t).done(e).fail(i):t&&g(n=t.then)?n.call(t,e,i):e.apply(void 0,[t].slice(s))}catch(t){i.apply(void 0,[t])}}y.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return y.each(t.match(O)||[],function(t,i){e[i]=!0}),e}(t):y.extend({},t);var e,i,s,n,o=[],r=[],a=-1,l=function(){for(n=n||t.once,s=e=!0;r.length;a=-1)for(i=r.shift();++a<o.length;)!1===o[a].apply(i[0],i[1])&&t.stopOnFalse&&(a=o.length,i=!1);t.memory||(i=!1),e=!1,n&&(o=i?[]:"")},h={add:function(){return o&&(i&&!e&&(a=o.length-1,r.push(i)),function e(i){y.each(i,function(i,s){g(s)?t.unique&&h.has(s)||o.push(s):s&&s.length&&"string"!==b(s)&&e(s)})}(arguments),i&&!e&&l()),this},remove:function(){return y.each(arguments,function(t,e){for(var i;(i=y.inArray(e,o,i))>-1;)o.splice(i,1),i<=a&&a--}),this},has:function(t){return t?y.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return n=r=[],o=i="",this},disabled:function(){return!o},lock:function(){return n=r=[],i||e||(o=i=""),this},locked:function(){return!!n},fireWith:function(t,i){return n||(i=[t,(i=i||[]).slice?i.slice():i],r.push(i),e||l()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!s}};return h},y.extend({Deferred:function(e){var i=[["notify","progress",y.Callbacks("memory"),y.Callbacks("memory"),2],["resolve","done",y.Callbacks("once memory"),y.Callbacks("once memory"),0,"resolved"],["reject","fail",y.Callbacks("once memory"),y.Callbacks("once memory"),1,"rejected"]],s="pending",n={state:function(){return s},always:function(){return o.done(arguments).fail(arguments),this},catch:function(t){return n.then(null,t)},pipe:function(){var t=arguments;return y.Deferred(function(e){y.each(i,function(i,s){var n=g(t[s[4]])&&t[s[4]];o[s[1]](function(){var t=n&&n.apply(this,arguments);t&&g(t.promise)?t.promise().progress(e.notify).done(e.resolve).fail(e.reject):e[s[0]+"With"](this,n?[t]:arguments)})}),t=null}).promise()},then:function(e,s,n){var o=0;function r(e,i,s,n){return function(){var a=this,l=arguments,h=function(){var t,h;if(!(e<o)){if((t=s.apply(a,l))===i.promise())throw new TypeError("Thenable self-resolution");h=t&&("object"==typeof t||"function"==typeof t)&&t.then,g(h)?n?h.call(t,r(o,i,z,n),r(o,i,W,n)):(o++,h.call(t,r(o,i,z,n),r(o,i,W,n),r(o,i,z,i.notifyWith))):(s!==z&&(a=void 0,l=[t]),(n||i.resolveWith)(a,l))}},u=n?h:function(){try{h()}catch(t){y.Deferred.exceptionHook&&y.Deferred.exceptionHook(t,u.stackTrace),e+1>=o&&(s!==W&&(a=void 0,l=[t]),i.rejectWith(a,l))}};e?u():(y.Deferred.getStackHook&&(u.stackTrace=y.Deferred.getStackHook()),t.setTimeout(u))}}return y.Deferred(function(t){i[0][3].add(r(0,t,g(n)?n:z,t.notifyWith)),i[1][3].add(r(0,t,g(e)?e:z)),i[2][3].add(r(0,t,g(s)?s:W))}).promise()},promise:function(t){return null!=t?y.extend(t,n):n}},o={};return y.each(i,function(t,e){var r=e[2],a=e[5];n[e[1]]=r.add,a&&r.add(function(){s=a},i[3-t][2].disable,i[3-t][3].disable,i[0][2].lock,i[0][3].lock),r.add(e[3].fire),o[e[0]]=function(){return o[e[0]+"With"](this===o?void 0:this,arguments),this},o[e[0]+"With"]=r.fireWith}),n.promise(o),e&&e.call(o,o),o},when:function(t){var e=arguments.length,i=e,s=Array(i),n=o.call(arguments),r=y.Deferred(),a=function(t){return function(i){s[t]=this,n[t]=arguments.length>1?o.call(arguments):i,--e||r.resolveWith(s,n)}};if(e<=1&&(L(t,r.done(a(i)).resolve,r.reject,!e),"pending"===r.state()||g(n[i]&&n[i].then)))return r.then();for(;i--;)L(n[i],a(i),r.reject);return r.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;y.Deferred.exceptionHook=function(e,i){t.console&&t.console.warn&&e&&F.test(e.name)&&t.console.warn("jQuery.Deferred exception: "+e.message,e.stack,i)},y.readyException=function(e){t.setTimeout(function(){throw e})};var R=y.Deferred();function j(){s.removeEventListener("DOMContentLoaded",j),t.removeEventListener("load",j),y.ready()}y.fn.ready=function(t){return R.then(t).catch(function(t){y.readyException(t)}),this},y.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--y.readyWait:y.isReady)||(y.isReady=!0,!0!==t&&--y.readyWait>0||R.resolveWith(s,[y]))}}),y.ready.then=R.then,"complete"===s.readyState||"loading"!==s.readyState&&!s.documentElement.doScroll?t.setTimeout(y.ready):(s.addEventListener("DOMContentLoaded",j),t.addEventListener("load",j));var q=function(t,e,i,s,n,o,r){var a=0,l=t.length,h=null==i;if("object"===b(i))for(a in n=!0,i)q(t,e,a,i[a],!0,o,r);else if(void 0!==s&&(n=!0,g(s)||(r=!0),h&&(r?(e.call(t,s),e=null):(h=e,e=function(t,e,i){return h.call(y(t),i)})),e))for(;a<l;a++)e(t[a],i,r?s:s.call(t[a],a,e(t[a],i)));return n?t:h?e.call(t):l?e(t[0],i):o},B=/^-ms-/,Y=/-([a-z])/g;function U(t,e){return e.toUpperCase()}function $(t){return t.replace(B,"ms-").replace(Y,U)}var K=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};function V(){this.expando=y.expando+V.uid++}V.uid=1,V.prototype={cache:function(t){var e=t[this.expando];return e||(e={},K(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,i){var s,n=this.cache(t);if("string"==typeof e)n[$(e)]=i;else for(s in e)n[$(s)]=e[s];return n},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][$(e)]},access:function(t,e,i){return void 0===e||e&&"string"==typeof e&&void 0===i?this.get(t,e):(this.set(t,e,i),void 0!==i?i:e)},remove:function(t,e){var i,s=t[this.expando];if(void 0!==s){if(void 0!==e){i=(e=Array.isArray(e)?e.map($):(e=$(e))in s?[e]:e.match(O)||[]).length;for(;i--;)delete s[e[i]]}(void 0===e||y.isEmptyObject(s))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!y.isEmptyObject(e)}};var X=new V,G=new V,Q=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,J=/[A-Z]/g;function Z(t,e,i){var s;if(void 0===i&&1===t.nodeType)if(s="data-"+e.replace(J,"-$&").toLowerCase(),"string"==typeof(i=t.getAttribute(s))){try{i=function(t){return"true"===t||"false"!==t&&("null"===t?null:t===+t+""?+t:Q.test(t)?JSON.parse(t):t)}(i)}catch(t){}G.set(t,e,i)}else i=void 0;return i}y.extend({hasData:function(t){return G.hasData(t)||X.hasData(t)},data:function(t,e,i){return G.access(t,e,i)},removeData:function(t,e){G.remove(t,e)},_data:function(t,e,i){return X.access(t,e,i)},_removeData:function(t,e){X.remove(t,e)}}),y.fn.extend({data:function(t,e){var i,s,n,o=this[0],r=o&&o.attributes;if(void 0===t){if(this.length&&(n=G.get(o),1===o.nodeType&&!X.get(o,"hasDataAttrs"))){for(i=r.length;i--;)r[i]&&0===(s=r[i].name).indexOf("data-")&&(s=$(s.slice(5)),Z(o,s,n[s]));X.set(o,"hasDataAttrs",!0)}return n}return"object"==typeof t?this.each(function(){G.set(this,t)}):q(this,function(e){var i;if(o&&void 0===e){if(void 0!==(i=G.get(o,t)))return i;if(void 0!==(i=Z(o,t)))return i}else this.each(function(){G.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){G.remove(this,t)})}}),y.extend({queue:function(t,e,i){var s;if(t)return e=(e||"fx")+"queue",s=X.get(t,e),i&&(!s||Array.isArray(i)?s=X.access(t,e,y.makeArray(i)):s.push(i)),s||[]},dequeue:function(t,e){e=e||"fx";var i=y.queue(t,e),s=i.length,n=i.shift(),o=y._queueHooks(t,e);"inprogress"===n&&(n=i.shift(),s--),n&&("fx"===e&&i.unshift("inprogress"),delete o.stop,n.call(t,function(){y.dequeue(t,e)},o)),!s&&o&&o.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return X.get(t,i)||X.access(t,i,{empty:y.Callbacks("once memory").add(function(){X.remove(t,[e+"queue",i])})})}}),y.fn.extend({queue:function(t,e){var i=2;return"string"!=typeof t&&(e=t,t="fx",i--),arguments.length<i?y.queue(this[0],t):void 0===e?this:this.each(function(){var i=y.queue(this,t,e);y._queueHooks(this,t),"fx"===t&&"inprogress"!==i[0]&&y.dequeue(this,t)})},dequeue:function(t){return this.each(function(){y.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var i,s=1,n=y.Deferred(),o=this,r=this.length,a=function(){--s||n.resolveWith(o,[o])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";r--;)(i=X.get(o[r],t+"queueHooks"))&&i.empty&&(s++,i.empty.add(a));return a(),n.promise(e)}});var tt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,et=new RegExp("^(?:([+-])=|)("+tt+")([a-z%]*)$","i"),it=["Top","Right","Bottom","Left"],st=function(t,e){return"none"===(t=e||t).style.display||""===t.style.display&&y.contains(t.ownerDocument,t)&&"none"===y.css(t,"display")},nt=function(t,e,i,s){var n,o,r={};for(o in e)r[o]=t.style[o],t.style[o]=e[o];for(o in n=i.apply(t,s||[]),e)t.style[o]=r[o];return n};function ot(t,e,i,s){var n,o,r=20,a=s?function(){return s.cur()}:function(){return y.css(t,e,"")},l=a(),h=i&&i[3]||(y.cssNumber[e]?"":"px"),u=(y.cssNumber[e]||"px"!==h&&+l)&&et.exec(y.css(t,e));if(u&&u[3]!==h){for(l/=2,h=h||u[3],u=+l||1;r--;)y.style(t,e,u+h),(1-o)*(1-(o=a()/l||.5))<=0&&(r=0),u/=o;u*=2,y.style(t,e,u+h),i=i||[]}return i&&(u=+u||+l||0,n=i[1]?u+(i[1]+1)*i[2]:+i[2],s&&(s.unit=h,s.start=u,s.end=n)),n}var rt={};function at(t){var e,i=t.ownerDocument,s=t.nodeName,n=rt[s];return n||(e=i.body.appendChild(i.createElement(s)),n=y.css(e,"display"),e.parentNode.removeChild(e),"none"===n&&(n="block"),rt[s]=n,n)}function lt(t,e){for(var i,s,n=[],o=0,r=t.length;o<r;o++)(s=t[o]).style&&(i=s.style.display,e?("none"===i&&(n[o]=X.get(s,"display")||null,n[o]||(s.style.display="")),""===s.style.display&&st(s)&&(n[o]=at(s))):"none"!==i&&(n[o]="none",X.set(s,"display",i)));for(o=0;o<r;o++)null!=n[o]&&(t[o].style.display=n[o]);return t}y.fn.extend({show:function(){return lt(this,!0)},hide:function(){return lt(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){st(this)?y(this).show():y(this).hide()})}});var ht=/^(?:checkbox|radio)$/i,ut=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ct=/^$|^module$|\/(?:java|ecma)script/i,dt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function pt(t,e){var i;return i=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&I(t,e)?y.merge([t],i):i}function ft(t,e){for(var i=0,s=t.length;i<s;i++)X.set(t[i],"globalEval",!e||X.get(e[i],"globalEval"))}dt.optgroup=dt.option,dt.tbody=dt.tfoot=dt.colgroup=dt.caption=dt.thead,dt.th=dt.td;var gt=/<|&#?\w+;/;function mt(t,e,i,s,n){for(var o,r,a,l,h,u,c=e.createDocumentFragment(),d=[],p=0,f=t.length;p<f;p++)if((o=t[p])||0===o)if("object"===b(o))y.merge(d,o.nodeType?[o]:o);else if(gt.test(o)){for(r=r||c.appendChild(e.createElement("div")),a=(ut.exec(o)||["",""])[1].toLowerCase(),l=dt[a]||dt._default,r.innerHTML=l[1]+y.htmlPrefilter(o)+l[2],u=l[0];u--;)r=r.lastChild;y.merge(d,r.childNodes),(r=c.firstChild).textContent=""}else d.push(e.createTextNode(o));for(c.textContent="",p=0;o=d[p++];)if(s&&y.inArray(o,s)>-1)n&&n.push(o);else if(h=y.contains(o.ownerDocument,o),r=pt(c.appendChild(o),"script"),h&&ft(r),i)for(u=0;o=r[u++];)ct.test(o.type||"")&&i.push(o);return c}!function(){var t=s.createDocumentFragment().appendChild(s.createElement("div")),e=s.createElement("input");e.setAttribute("type","radio"),e.setAttribute("checked","checked"),e.setAttribute("name","t"),t.appendChild(e),f.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",f.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var vt=s.documentElement,_t=/^key/,bt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,yt=/^([^.]*)(?:\.(.+)|)/;function wt(){return!0}function xt(){return!1}function kt(){try{return s.activeElement}catch(t){}}function Ct(t,e,i,s,n,o){var r,a;if("object"==typeof e){for(a in"string"!=typeof i&&(s=s||i,i=void 0),e)Ct(t,a,i,s,e[a],o);return t}if(null==s&&null==n?(n=i,s=i=void 0):null==n&&("string"==typeof i?(n=s,s=void 0):(n=s,s=i,i=void 0)),!1===n)n=xt;else if(!n)return t;return 1===o&&(r=n,(n=function(t){return y().off(t),r.apply(this,arguments)}).guid=r.guid||(r.guid=y.guid++)),t.each(function(){y.event.add(this,e,n,s,i)})}y.event={global:{},add:function(t,e,i,s,n){var o,r,a,l,h,u,c,d,p,f,g,m=X.get(t);if(m)for(i.handler&&(i=(o=i).handler,n=o.selector),n&&y.find.matchesSelector(vt,n),i.guid||(i.guid=y.guid++),(l=m.events)||(l=m.events={}),(r=m.handle)||(r=m.handle=function(e){return void 0!==y&&y.event.triggered!==e.type?y.event.dispatch.apply(t,arguments):void 0}),h=(e=(e||"").match(O)||[""]).length;h--;)p=g=(a=yt.exec(e[h])||[])[1],f=(a[2]||"").split(".").sort(),p&&(c=y.event.special[p]||{},p=(n?c.delegateType:c.bindType)||p,c=y.event.special[p]||{},u=y.extend({type:p,origType:g,data:s,handler:i,guid:i.guid,selector:n,needsContext:n&&y.expr.match.needsContext.test(n),namespace:f.join(".")},o),(d=l[p])||((d=l[p]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(t,s,f,r)||t.addEventListener&&t.addEventListener(p,r)),c.add&&(c.add.call(t,u),u.handler.guid||(u.handler.guid=i.guid)),n?d.splice(d.delegateCount++,0,u):d.push(u),y.event.global[p]=!0)},remove:function(t,e,i,s,n){var o,r,a,l,h,u,c,d,p,f,g,m=X.hasData(t)&&X.get(t);if(m&&(l=m.events)){for(h=(e=(e||"").match(O)||[""]).length;h--;)if(p=g=(a=yt.exec(e[h])||[])[1],f=(a[2]||"").split(".").sort(),p){for(c=y.event.special[p]||{},d=l[p=(s?c.delegateType:c.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),r=o=d.length;o--;)u=d[o],!n&&g!==u.origType||i&&i.guid!==u.guid||a&&!a.test(u.namespace)||s&&s!==u.selector&&("**"!==s||!u.selector)||(d.splice(o,1),u.selector&&d.delegateCount--,c.remove&&c.remove.call(t,u));r&&!d.length&&(c.teardown&&!1!==c.teardown.call(t,f,m.handle)||y.removeEvent(t,p,m.handle),delete l[p])}else for(p in l)y.event.remove(t,p+e[h],i,s,!0);y.isEmptyObject(l)&&X.remove(t,"handle events")}},dispatch:function(t){var e,i,s,n,o,r,a=y.event.fix(t),l=new Array(arguments.length),h=(X.get(this,"events")||{})[a.type]||[],u=y.event.special[a.type]||{};for(l[0]=a,e=1;e<arguments.length;e++)l[e]=arguments[e];if(a.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,a)){for(r=y.event.handlers.call(this,a,h),e=0;(n=r[e++])&&!a.isPropagationStopped();)for(a.currentTarget=n.elem,i=0;(o=n.handlers[i++])&&!a.isImmediatePropagationStopped();)a.rnamespace&&!a.rnamespace.test(o.namespace)||(a.handleObj=o,a.data=o.data,void 0!==(s=((y.event.special[o.origType]||{}).handle||o.handler).apply(n.elem,l))&&!1===(a.result=s)&&(a.preventDefault(),a.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,a),a.result}},handlers:function(t,e){var i,s,n,o,r,a=[],l=e.delegateCount,h=t.target;if(l&&h.nodeType&&!("click"===t.type&&t.button>=1))for(;h!==this;h=h.parentNode||this)if(1===h.nodeType&&("click"!==t.type||!0!==h.disabled)){for(o=[],r={},i=0;i<l;i++)void 0===r[n=(s=e[i]).selector+" "]&&(r[n]=s.needsContext?y(n,this).index(h)>-1:y.find(n,this,null,[h]).length),r[n]&&o.push(s);o.length&&a.push({elem:h,handlers:o})}return h=this,l<e.length&&a.push({elem:h,handlers:e.slice(l)}),a},addProp:function(t,e){Object.defineProperty(y.Event.prototype,t,{enumerable:!0,configurable:!0,get:g(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(t){return t[y.expando]?t:new y.Event(t)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==kt()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===kt()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&I(this,"input"))return this.click(),!1},_default:function(t){return I(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},y.removeEvent=function(t,e,i){t.removeEventListener&&t.removeEventListener(e,i)},y.Event=function(t,e){if(!(this instanceof y.Event))return new y.Event(t,e);t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&!1===t.returnValue?wt:xt,this.target=t.target&&3===t.target.nodeType?t.target.parentNode:t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget):this.type=t,e&&y.extend(this,e),this.timeStamp=t&&t.timeStamp||Date.now(),this[y.expando]=!0},y.Event.prototype={constructor:y.Event,isDefaultPrevented:xt,isPropagationStopped:xt,isImmediatePropagationStopped:xt,isSimulated:!1,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=wt,t&&!this.isSimulated&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=wt,t&&!this.isSimulated&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=wt,t&&!this.isSimulated&&t.stopImmediatePropagation(),this.stopPropagation()}},y.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,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:function(t){var e=t.button;return null==t.which&&_t.test(t.type)?null!=t.charCode?t.charCode:t.keyCode:!t.which&&void 0!==e&&bt.test(t.type)?1&e?1:2&e?3:4&e?2:0:t.which}},y.event.addProp),y.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){y.event.special[t]={delegateType:e,bindType:e,handle:function(t){var i,s=t.relatedTarget,n=t.handleObj;return s&&(s===this||y.contains(this,s))||(t.type=n.origType,i=n.handler.apply(this,arguments),t.type=e),i}}}),y.fn.extend({on:function(t,e,i,s){return Ct(this,t,e,i,s)},one:function(t,e,i,s){return Ct(this,t,e,i,s,1)},off:function(t,e,i){var s,n;if(t&&t.preventDefault&&t.handleObj)return s=t.handleObj,y(t.delegateTarget).off(s.namespace?s.origType+"."+s.namespace:s.origType,s.selector,s.handler),this;if("object"==typeof t){for(n in t)this.off(n,e,t[n]);return this}return!1!==e&&"function"!=typeof e||(i=e,e=void 0),!1===i&&(i=xt),this.each(function(){y.event.remove(this,t,i,e)})}});var Dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Tt=/<script|<style|<link/i,It=/checked\s*(?:[^=]|=\s*.checked.)/i,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Pt(t,e){return I(t,"table")&&I(11!==e.nodeType?e:e.firstChild,"tr")&&y(t).children("tbody")[0]||t}function Mt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function At(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function Et(t,e){var i,s,n,o,r,a,l,h;if(1===e.nodeType){if(X.hasData(t)&&(o=X.access(t),r=X.set(e,o),h=o.events))for(n in delete r.handle,r.events={},h)for(i=0,s=h[n].length;i<s;i++)y.event.add(e,n,h[n][i]);G.hasData(t)&&(a=G.access(t),l=y.extend({},a),G.set(e,l))}}function Nt(t,e){var i=e.nodeName.toLowerCase();"input"===i&&ht.test(t.type)?e.checked=t.checked:"input"!==i&&"textarea"!==i||(e.defaultValue=t.defaultValue)}function Ht(t,e,i,s){e=r.apply([],e);var n,o,a,l,h,u,c=0,d=t.length,p=d-1,m=e[0],v=g(m);if(v||d>1&&"string"==typeof m&&!f.checkClone&&It.test(m))return t.each(function(n){var o=t.eq(n);v&&(e[0]=m.call(this,n,o.html())),Ht(o,e,i,s)});if(d&&(o=(n=mt(e,t[0].ownerDocument,!1,t,s)).firstChild,1===n.childNodes.length&&(n=o),o||s)){for(l=(a=y.map(pt(n,"script"),Mt)).length;c<d;c++)h=n,c!==p&&(h=y.clone(h,!0,!0),l&&y.merge(a,pt(h,"script"))),i.call(t[c],h,c);if(l)for(u=a[a.length-1].ownerDocument,y.map(a,At),c=0;c<l;c++)h=a[c],ct.test(h.type||"")&&!X.access(h,"globalEval")&&y.contains(u,h)&&(h.src&&"module"!==(h.type||"").toLowerCase()?y._evalUrl&&y._evalUrl(h.src):_(h.textContent.replace(St,""),u,h))}return t}function Ot(t,e,i){for(var s,n=e?y.filter(e,t):t,o=0;null!=(s=n[o]);o++)i||1!==s.nodeType||y.cleanData(pt(s)),s.parentNode&&(i&&y.contains(s.ownerDocument,s)&&ft(pt(s,"script")),s.parentNode.removeChild(s));return t}y.extend({htmlPrefilter:function(t){return t.replace(Dt,"<$1></$2>")},clone:function(t,e,i){var s,n,o,r,a=t.cloneNode(!0),l=y.contains(t.ownerDocument,t);if(!(f.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||y.isXMLDoc(t)))for(r=pt(a),s=0,n=(o=pt(t)).length;s<n;s++)Nt(o[s],r[s]);if(e)if(i)for(o=o||pt(t),r=r||pt(a),s=0,n=o.length;s<n;s++)Et(o[s],r[s]);else Et(t,a);return(r=pt(a,"script")).length>0&&ft(r,!l&&pt(t,"script")),a},cleanData:function(t){for(var e,i,s,n=y.event.special,o=0;void 0!==(i=t[o]);o++)if(K(i)){if(e=i[X.expando]){if(e.events)for(s in e.events)n[s]?y.event.remove(i,s):y.removeEvent(i,s,e.handle);i[X.expando]=void 0}i[G.expando]&&(i[G.expando]=void 0)}}}),y.fn.extend({detach:function(t){return Ot(this,t,!0)},remove:function(t){return Ot(this,t)},text:function(t){return q(this,function(t){return void 0===t?y.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return Ht(this,arguments,function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Pt(this,t).appendChild(t)})},prepend:function(){return Ht(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Pt(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return Ht(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return Ht(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(y.cleanData(pt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return y.clone(this,t,e)})},html:function(t){return q(this,function(t){var e=this[0]||{},i=0,s=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Tt.test(t)&&!dt[(ut.exec(t)||["",""])[1].toLowerCase()]){t=y.htmlPrefilter(t);try{for(;i<s;i++)1===(e=this[i]||{}).nodeType&&(y.cleanData(pt(e,!1)),e.innerHTML=t);e=0}catch(t){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=[];return Ht(this,arguments,function(e){var i=this.parentNode;y.inArray(this,t)<0&&(y.cleanData(pt(this)),i&&i.replaceChild(e,this))},t)}}),y.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){y.fn[t]=function(t){for(var i,s=[],n=y(t),o=n.length-1,r=0;r<=o;r++)i=r===o?this:this.clone(!0),y(n[r])[e](i),a.apply(s,i.get());return this.pushStack(s)}});var zt=new RegExp("^("+tt+")(?!px)[a-z%]+$","i"),Wt=function(e){var i=e.ownerDocument.defaultView;return i&&i.opener||(i=t),i.getComputedStyle(e)},Lt=new RegExp(it.join("|"),"i");function Ft(t,e,i){var s,n,o,r,a=t.style;return(i=i||Wt(t))&&(""!==(r=i.getPropertyValue(e)||i[e])||y.contains(t.ownerDocument,t)||(r=y.style(t,e)),!f.pixelBoxStyles()&&zt.test(r)&&Lt.test(e)&&(s=a.width,n=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=i.width,a.width=s,a.minWidth=n,a.maxWidth=o)),void 0!==r?r+"":r}function Rt(t,e){return{get:function(){if(!t())return(this.get=e).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){h.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",vt.appendChild(h).appendChild(u);var e=t.getComputedStyle(u);n="1%"!==e.top,l=12===i(e.marginLeft),u.style.right="60%",a=36===i(e.right),o=36===i(e.width),u.style.position="absolute",r=36===u.offsetWidth||"absolute",vt.removeChild(h),u=null}}function i(t){return Math.round(parseFloat(t))}var n,o,r,a,l,h=s.createElement("div"),u=s.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",f.clearCloneStyle="content-box"===u.style.backgroundClip,y.extend(f,{boxSizingReliable:function(){return e(),o},pixelBoxStyles:function(){return e(),a},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),l},scrollboxSize:function(){return e(),r}}))}();var jt=/^(none|table(?!-c[ea]).+)/,qt=/^--/,Bt={position:"absolute",visibility:"hidden",display:"block"},Yt={letterSpacing:"0",fontWeight:"400"},Ut=["Webkit","Moz","ms"],$t=s.createElement("div").style;function Kt(t){var e=y.cssProps[t];return e||(e=y.cssProps[t]=function(t){if(t in $t)return t;for(var e=t[0].toUpperCase()+t.slice(1),i=Ut.length;i--;)if((t=Ut[i]+e)in $t)return t}(t)||t),e}function Vt(t,e,i){var s=et.exec(e);return s?Math.max(0,s[2]-(i||0))+(s[3]||"px"):e}function Xt(t,e,i,s,n,o){var r="width"===e?1:0,a=0,l=0;if(i===(s?"border":"content"))return 0;for(;r<4;r+=2)"margin"===i&&(l+=y.css(t,i+it[r],!0,n)),s?("content"===i&&(l-=y.css(t,"padding"+it[r],!0,n)),"margin"!==i&&(l-=y.css(t,"border"+it[r]+"Width",!0,n))):(l+=y.css(t,"padding"+it[r],!0,n),"padding"!==i?l+=y.css(t,"border"+it[r]+"Width",!0,n):a+=y.css(t,"border"+it[r]+"Width",!0,n));return!s&&o>=0&&(l+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-o-l-a-.5))),l}function Gt(t,e,i){var s=Wt(t),n=Ft(t,e,s),o="border-box"===y.css(t,"boxSizing",!1,s),r=o;if(zt.test(n)){if(!i)return n;n="auto"}return r=r&&(f.boxSizingReliable()||n===t.style[e]),("auto"===n||!parseFloat(n)&&"inline"===y.css(t,"display",!1,s))&&(n=t["offset"+e[0].toUpperCase()+e.slice(1)],r=!0),(n=parseFloat(n)||0)+Xt(t,e,i||(o?"border":"content"),r,s,n)+"px"}function Qt(t,e,i,s,n){return new Qt.prototype.init(t,e,i,s,n)}y.extend({cssHooks:{opacity:{get:function(t,e){if(e){var i=Ft(t,"opacity");return""===i?"1":i}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,i,s){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var n,o,r,a=$(e),l=qt.test(e),h=t.style;if(l||(e=Kt(a)),r=y.cssHooks[e]||y.cssHooks[a],void 0===i)return r&&"get"in r&&void 0!==(n=r.get(t,!1,s))?n:h[e];"string"==(o=typeof i)&&(n=et.exec(i))&&n[1]&&(i=ot(t,e,n),o="number"),null!=i&&i==i&&("number"===o&&(i+=n&&n[3]||(y.cssNumber[a]?"":"px")),f.clearCloneStyle||""!==i||0!==e.indexOf("background")||(h[e]="inherit"),r&&"set"in r&&void 0===(i=r.set(t,i,s))||(l?h.setProperty(e,i):h[e]=i))}},css:function(t,e,i,s){var n,o,r,a=$(e);return qt.test(e)||(e=Kt(a)),(r=y.cssHooks[e]||y.cssHooks[a])&&"get"in r&&(n=r.get(t,!0,i)),void 0===n&&(n=Ft(t,e,s)),"normal"===n&&e in Yt&&(n=Yt[e]),""===i||i?(o=parseFloat(n),!0===i||isFinite(o)?o||0:n):n}}),y.each(["height","width"],function(t,e){y.cssHooks[e]={get:function(t,i,s){if(i)return!jt.test(y.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?Gt(t,e,s):nt(t,Bt,function(){return Gt(t,e,s)})},set:function(t,i,s){var n,o=Wt(t),r="border-box"===y.css(t,"boxSizing",!1,o),a=s&&Xt(t,e,s,r,o);return r&&f.scrollboxSize()===o.position&&(a-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(o[e])-Xt(t,e,"border",!1,o)-.5)),a&&(n=et.exec(i))&&"px"!==(n[3]||"px")&&(t.style[e]=i,i=y.css(t,e)),Vt(0,i,a)}}}),y.cssHooks.marginLeft=Rt(f.reliableMarginLeft,function(t,e){if(e)return(parseFloat(Ft(t,"marginLeft"))||t.getBoundingClientRect().left-nt(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),y.each({margin:"",padding:"",border:"Width"},function(t,e){y.cssHooks[t+e]={expand:function(i){for(var s=0,n={},o="string"==typeof i?i.split(" "):[i];s<4;s++)n[t+it[s]+e]=o[s]||o[s-2]||o[0];return n}},"margin"!==t&&(y.cssHooks[t+e].set=Vt)}),y.fn.extend({css:function(t,e){return q(this,function(t,e,i){var s,n,o={},r=0;if(Array.isArray(e)){for(s=Wt(t),n=e.length;r<n;r++)o[e[r]]=y.css(t,e[r],!1,s);return o}return void 0!==i?y.style(t,e,i):y.css(t,e)},t,e,arguments.length>1)}}),y.Tween=Qt,Qt.prototype={constructor:Qt,init:function(t,e,i,s,n,o){this.elem=t,this.prop=i,this.easing=n||y.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=s,this.unit=o||(y.cssNumber[i]?"":"px")},cur:function(){var t=Qt.propHooks[this.prop];return t&&t.get?t.get(this):Qt.propHooks._default.get(this)},run:function(t){var e,i=Qt.propHooks[this.prop];return this.options.duration?this.pos=e=y.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):Qt.propHooks._default.set(this),this}},Qt.prototype.init.prototype=Qt.prototype,Qt.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=y.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){y.fx.step[t.prop]?y.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[y.cssProps[t.prop]]&&!y.cssHooks[t.prop]?t.elem[t.prop]=t.now:y.style(t.elem,t.prop,t.now+t.unit)}}},Qt.propHooks.scrollTop=Qt.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},y.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},y.fx=Qt.prototype.init,y.fx.step={};var Jt,Zt,te=/^(?:toggle|show|hide)$/,ee=/queueHooks$/;function ie(){Zt&&(!1===s.hidden&&t.requestAnimationFrame?t.requestAnimationFrame(ie):t.setTimeout(ie,y.fx.interval),y.fx.tick())}function se(){return t.setTimeout(function(){Jt=void 0}),Jt=Date.now()}function ne(t,e){var i,s=0,n={height:t};for(e=e?1:0;s<4;s+=2-e)n["margin"+(i=it[s])]=n["padding"+i]=t;return e&&(n.opacity=n.width=t),n}function oe(t,e,i){for(var s,n=(re.tweeners[e]||[]).concat(re.tweeners["*"]),o=0,r=n.length;o<r;o++)if(s=n[o].call(i,e,t))return s}function re(t,e,i){var s,n,o=0,r=re.prefilters.length,a=y.Deferred().always(function(){delete l.elem}),l=function(){if(n)return!1;for(var e=Jt||se(),i=Math.max(0,h.startTime+h.duration-e),s=1-(i/h.duration||0),o=0,r=h.tweens.length;o<r;o++)h.tweens[o].run(s);return a.notifyWith(t,[h,s,i]),s<1&&r?i:(r||a.notifyWith(t,[h,1,0]),a.resolveWith(t,[h]),!1)},h=a.promise({elem:t,props:y.extend({},e),opts:y.extend(!0,{specialEasing:{},easing:y.easing._default},i),originalProperties:e,originalOptions:i,startTime:Jt||se(),duration:i.duration,tweens:[],createTween:function(e,i){var s=y.Tween(t,h.opts,e,i,h.opts.specialEasing[e]||h.opts.easing);return h.tweens.push(s),s},stop:function(e){var i=0,s=e?h.tweens.length:0;if(n)return this;for(n=!0;i<s;i++)h.tweens[i].run(1);return e?(a.notifyWith(t,[h,1,0]),a.resolveWith(t,[h,e])):a.rejectWith(t,[h,e]),this}}),u=h.props;for(function(t,e){var i,s,n,o,r;for(i in t)if(n=e[s=$(i)],o=t[i],Array.isArray(o)&&(n=o[1],o=t[i]=o[0]),i!==s&&(t[s]=o,delete t[i]),(r=y.cssHooks[s])&&"expand"in r)for(i in o=r.expand(o),delete t[s],o)i in t||(t[i]=o[i],e[i]=n);else e[s]=n}(u,h.opts.specialEasing);o<r;o++)if(s=re.prefilters[o].call(h,t,u,h.opts))return g(s.stop)&&(y._queueHooks(h.elem,h.opts.queue).stop=s.stop.bind(s)),s;return y.map(u,oe,h),g(h.opts.start)&&h.opts.start.call(t,h),h.progress(h.opts.progress).done(h.opts.done,h.opts.complete).fail(h.opts.fail).always(h.opts.always),y.fx.timer(y.extend(l,{elem:t,anim:h,queue:h.opts.queue})),h}y.Animation=y.extend(re,{tweeners:{"*":[function(t,e){var i=this.createTween(t,e);return ot(i.elem,t,et.exec(e),i),i}]},tweener:function(t,e){g(t)?(e=t,t=["*"]):t=t.match(O);for(var i,s=0,n=t.length;s<n;s++)i=t[s],re.tweeners[i]=re.tweeners[i]||[],re.tweeners[i].unshift(e)},prefilters:[function(t,e,i){var s,n,o,r,a,l,h,u,c="width"in e||"height"in e,d=this,p={},f=t.style,g=t.nodeType&&st(t),m=X.get(t,"fxshow");for(s in i.queue||(null==(r=y._queueHooks(t,"fx")).unqueued&&(r.unqueued=0,a=r.empty.fire,r.empty.fire=function(){r.unqueued||a()}),r.unqueued++,d.always(function(){d.always(function(){r.unqueued--,y.queue(t,"fx").length||r.empty.fire()})})),e)if(n=e[s],te.test(n)){if(delete e[s],o=o||"toggle"===n,n===(g?"hide":"show")){if("show"!==n||!m||void 0===m[s])continue;g=!0}p[s]=m&&m[s]||y.style(t,s)}if((l=!y.isEmptyObject(e))||!y.isEmptyObject(p))for(s in c&&1===t.nodeType&&(i.overflow=[f.overflow,f.overflowX,f.overflowY],null==(h=m&&m.display)&&(h=X.get(t,"display")),"none"===(u=y.css(t,"display"))&&(h?u=h:(lt([t],!0),h=t.style.display||h,u=y.css(t,"display"),lt([t]))),("inline"===u||"inline-block"===u&&null!=h)&&"none"===y.css(t,"float")&&(l||(d.done(function(){f.display=h}),null==h&&(u=f.display,h="none"===u?"":u)),f.display="inline-block")),i.overflow&&(f.overflow="hidden",d.always(function(){f.overflow=i.overflow[0],f.overflowX=i.overflow[1],f.overflowY=i.overflow[2]})),l=!1,p)l||(m?"hidden"in m&&(g=m.hidden):m=X.access(t,"fxshow",{display:h}),o&&(m.hidden=!g),g&&lt([t],!0),d.done(function(){for(s in g||lt([t]),X.remove(t,"fxshow"),p)y.style(t,s,p[s])})),l=oe(g?m[s]:0,s,d),s in m||(m[s]=l.start,g&&(l.end=l.start,l.start=0))}],prefilter:function(t,e){e?re.prefilters.unshift(t):re.prefilters.push(t)}}),y.speed=function(t,e,i){var s=t&&"object"==typeof t?y.extend({},t):{complete:i||!i&&e||g(t)&&t,duration:t,easing:i&&e||e&&!g(e)&&e};return y.fx.off?s.duration=0:"number"!=typeof s.duration&&(s.duration in y.fx.speeds?s.duration=y.fx.speeds[s.duration]:s.duration=y.fx.speeds._default),null!=s.queue&&!0!==s.queue||(s.queue="fx"),s.old=s.complete,s.complete=function(){g(s.old)&&s.old.call(this),s.queue&&y.dequeue(this,s.queue)},s},y.fn.extend({fadeTo:function(t,e,i,s){return this.filter(st).css("opacity",0).show().end().animate({opacity:e},t,i,s)},animate:function(t,e,i,s){var n=y.isEmptyObject(t),o=y.speed(e,i,s),r=function(){var e=re(this,y.extend({},t),o);(n||X.get(this,"finish"))&&e.stop(!0)};return r.finish=r,n||!1===o.queue?this.each(r):this.queue(o.queue,r)},stop:function(t,e,i){var s=function(t){var e=t.stop;delete t.stop,e(i)};return"string"!=typeof t&&(i=e,e=t,t=void 0),e&&!1!==t&&this.queue(t||"fx",[]),this.each(function(){var e=!0,n=null!=t&&t+"queueHooks",o=y.timers,r=X.get(this);if(n)r[n]&&r[n].stop&&s(r[n]);else for(n in r)r[n]&&r[n].stop&&ee.test(n)&&s(r[n]);for(n=o.length;n--;)o[n].elem!==this||null!=t&&o[n].queue!==t||(o[n].anim.stop(i),e=!1,o.splice(n,1));!e&&i||y.dequeue(this,t)})},finish:function(t){return!1!==t&&(t=t||"fx"),this.each(function(){var e,i=X.get(this),s=i[t+"queue"],n=i[t+"queueHooks"],o=y.timers,r=s?s.length:0;for(i.finish=!0,y.queue(this,t,[]),n&&n.stop&&n.stop.call(this,!0),e=o.length;e--;)o[e].elem===this&&o[e].queue===t&&(o[e].anim.stop(!0),o.splice(e,1));for(e=0;e<r;e++)s[e]&&s[e].finish&&s[e].finish.call(this);delete i.finish})}}),y.each(["toggle","show","hide"],function(t,e){var i=y.fn[e];y.fn[e]=function(t,s,n){return null==t||"boolean"==typeof t?i.apply(this,arguments):this.animate(ne(e,!0),t,s,n)}}),y.each({slideDown:ne("show"),slideUp:ne("hide"),slideToggle:ne("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){y.fn[t]=function(t,i,s){return this.animate(e,t,i,s)}}),y.timers=[],y.fx.tick=function(){var t,e=0,i=y.timers;for(Jt=Date.now();e<i.length;e++)(t=i[e])()||i[e]!==t||i.splice(e--,1);i.length||y.fx.stop(),Jt=void 0},y.fx.timer=function(t){y.timers.push(t),y.fx.start()},y.fx.interval=13,y.fx.start=function(){Zt||(Zt=!0,ie())},y.fx.stop=function(){Zt=null},y.fx.speeds={slow:600,fast:200,_default:400},y.fn.delay=function(e,i){return e=y.fx&&y.fx.speeds[e]||e,i=i||"fx",this.queue(i,function(i,s){var n=t.setTimeout(i,e);s.stop=function(){t.clearTimeout(n)}})},function(){var t=s.createElement("input"),e=s.createElement("select").appendChild(s.createElement("option"));t.type="checkbox",f.checkOn=""!==t.value,f.optSelected=e.selected,(t=s.createElement("input")).value="t",t.type="radio",f.radioValue="t"===t.value}();var ae,le=y.expr.attrHandle;y.fn.extend({attr:function(t,e){return q(this,y.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){y.removeAttr(this,t)})}}),y.extend({attr:function(t,e,i){var s,n,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===t.getAttribute?y.prop(t,e,i):(1===o&&y.isXMLDoc(t)||(n=y.attrHooks[e.toLowerCase()]||(y.expr.match.bool.test(e)?ae:void 0)),void 0!==i?null===i?void y.removeAttr(t,e):n&&"set"in n&&void 0!==(s=n.set(t,i,e))?s:(t.setAttribute(e,i+""),i):n&&"get"in n&&null!==(s=n.get(t,e))?s:null==(s=y.find.attr(t,e))?void 0:s)},attrHooks:{type:{set:function(t,e){if(!f.radioValue&&"radio"===e&&I(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}},removeAttr:function(t,e){var i,s=0,n=e&&e.match(O);if(n&&1===t.nodeType)for(;i=n[s++];)t.removeAttribute(i)}}),ae={set:function(t,e,i){return!1===e?y.removeAttr(t,i):t.setAttribute(i,i),i}},y.each(y.expr.match.bool.source.match(/\w+/g),function(t,e){var i=le[e]||y.find.attr;le[e]=function(t,e,s){var n,o,r=e.toLowerCase();return s||(o=le[r],le[r]=n,n=null!=i(t,e,s)?r:null,le[r]=o),n}});var he=/^(?:input|select|textarea|button)$/i,ue=/^(?:a|area)$/i;function ce(t){return(t.match(O)||[]).join(" ")}function de(t){return t.getAttribute&&t.getAttribute("class")||""}function pe(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(O)||[]}y.fn.extend({prop:function(t,e){return q(this,y.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[y.propFix[t]||t]})}}),y.extend({prop:function(t,e,i){var s,n,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&y.isXMLDoc(t)||(e=y.propFix[e]||e,n=y.propHooks[e]),void 0!==i?n&&"set"in n&&void 0!==(s=n.set(t,i,e))?s:t[e]=i:n&&"get"in n&&null!==(s=n.get(t,e))?s:t[e]},propHooks:{tabIndex:{get:function(t){var e=y.find.attr(t,"tabindex");return e?parseInt(e,10):he.test(t.nodeName)||ue.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),f.optSelected||(y.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),y.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){y.propFix[this.toLowerCase()]=this}),y.fn.extend({addClass:function(t){var e,i,s,n,o,r,a,l=0;if(g(t))return this.each(function(e){y(this).addClass(t.call(this,e,de(this)))});if((e=pe(t)).length)for(;i=this[l++];)if(n=de(i),s=1===i.nodeType&&" "+ce(n)+" "){for(r=0;o=e[r++];)s.indexOf(" "+o+" ")<0&&(s+=o+" ");n!==(a=ce(s))&&i.setAttribute("class",a)}return this},removeClass:function(t){var e,i,s,n,o,r,a,l=0;if(g(t))return this.each(function(e){y(this).removeClass(t.call(this,e,de(this)))});if(!arguments.length)return this.attr("class","");if((e=pe(t)).length)for(;i=this[l++];)if(n=de(i),s=1===i.nodeType&&" "+ce(n)+" "){for(r=0;o=e[r++];)for(;s.indexOf(" "+o+" ")>-1;)s=s.replace(" "+o+" "," ");n!==(a=ce(s))&&i.setAttribute("class",a)}return this},toggleClass:function(t,e){var i=typeof t,s="string"===i||Array.isArray(t);return"boolean"==typeof e&&s?e?this.addClass(t):this.removeClass(t):g(t)?this.each(function(i){y(this).toggleClass(t.call(this,i,de(this),e),e)}):this.each(function(){var e,n,o,r;if(s)for(n=0,o=y(this),r=pe(t);e=r[n++];)o.hasClass(e)?o.removeClass(e):o.addClass(e);else void 0!==t&&"boolean"!==i||((e=de(this))&&X.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":X.get(this,"__className__")||""))})},hasClass:function(t){var e,i,s=0;for(e=" "+t+" ";i=this[s++];)if(1===i.nodeType&&(" "+ce(de(i))+" ").indexOf(e)>-1)return!0;return!1}});var fe=/\r/g;y.fn.extend({val:function(t){var e,i,s,n=this[0];return arguments.length?(s=g(t),this.each(function(i){var n;1===this.nodeType&&(null==(n=s?t.call(this,i,y(this).val()):t)?n="":"number"==typeof n?n+="":Array.isArray(n)&&(n=y.map(n,function(t){return null==t?"":t+""})),(e=y.valHooks[this.type]||y.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,n,"value")||(this.value=n))})):n?(e=y.valHooks[n.type]||y.valHooks[n.nodeName.toLowerCase()])&&"get"in e&&void 0!==(i=e.get(n,"value"))?i:"string"==typeof(i=n.value)?i.replace(fe,""):null==i?"":i:void 0}}),y.extend({valHooks:{option:{get:function(t){var e=y.find.attr(t,"value");return null!=e?e:ce(y.text(t))}},select:{get:function(t){var e,i,s,n=t.options,o=t.selectedIndex,r="select-one"===t.type,a=r?null:[],l=r?o+1:n.length;for(s=o<0?l:r?o:0;s<l;s++)if(((i=n[s]).selected||s===o)&&!i.disabled&&(!i.parentNode.disabled||!I(i.parentNode,"optgroup"))){if(e=y(i).val(),r)return e;a.push(e)}return a},set:function(t,e){for(var i,s,n=t.options,o=y.makeArray(e),r=n.length;r--;)((s=n[r]).selected=y.inArray(y.valHooks.option.get(s),o)>-1)&&(i=!0);return i||(t.selectedIndex=-1),o}}}}),y.each(["radio","checkbox"],function(){y.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=y.inArray(y(t).val(),e)>-1}},f.checkOn||(y.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),f.focusin="onfocusin"in t;var ge=/^(?:focusinfocus|focusoutblur)$/,me=function(t){t.stopPropagation()};y.extend(y.event,{trigger:function(e,i,n,o){var r,a,l,h,u,d,p,f,v=[n||s],_=c.call(e,"type")?e.type:e,b=c.call(e,"namespace")?e.namespace.split("."):[];if(a=f=l=n=n||s,3!==n.nodeType&&8!==n.nodeType&&!ge.test(_+y.event.triggered)&&(_.indexOf(".")>-1&&(_=(b=_.split(".")).shift(),b.sort()),u=_.indexOf(":")<0&&"on"+_,(e=e[y.expando]?e:new y.Event(_,"object"==typeof e&&e)).isTrigger=o?2:3,e.namespace=b.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),i=null==i?[e]:y.makeArray(i,[e]),p=y.event.special[_]||{},o||!p.trigger||!1!==p.trigger.apply(n,i))){if(!o&&!p.noBubble&&!m(n)){for(h=p.delegateType||_,ge.test(h+_)||(a=a.parentNode);a;a=a.parentNode)v.push(a),l=a;l===(n.ownerDocument||s)&&v.push(l.defaultView||l.parentWindow||t)}for(r=0;(a=v[r++])&&!e.isPropagationStopped();)f=a,e.type=r>1?h:p.bindType||_,(d=(X.get(a,"events")||{})[e.type]&&X.get(a,"handle"))&&d.apply(a,i),(d=u&&a[u])&&d.apply&&K(a)&&(e.result=d.apply(a,i),!1===e.result&&e.preventDefault());return e.type=_,o||e.isDefaultPrevented()||p._default&&!1!==p._default.apply(v.pop(),i)||!K(n)||u&&g(n[_])&&!m(n)&&((l=n[u])&&(n[u]=null),y.event.triggered=_,e.isPropagationStopped()&&f.addEventListener(_,me),n[_](),e.isPropagationStopped()&&f.removeEventListener(_,me),y.event.triggered=void 0,l&&(n[u]=l)),e.result}},simulate:function(t,e,i){var s=y.extend(new y.Event,i,{type:t,isSimulated:!0});y.event.trigger(s,null,e)}}),y.fn.extend({trigger:function(t,e){return this.each(function(){y.event.trigger(t,e,this)})},triggerHandler:function(t,e){var i=this[0];if(i)return y.event.trigger(t,e,i,!0)}}),f.focusin||y.each({focus:"focusin",blur:"focusout"},function(t,e){var i=function(t){y.event.simulate(e,t.target,y.event.fix(t))};y.event.special[e]={setup:function(){var s=this.ownerDocument||this,n=X.access(s,e);n||s.addEventListener(t,i,!0),X.access(s,e,(n||0)+1)},teardown:function(){var s=this.ownerDocument||this,n=X.access(s,e)-1;n?X.access(s,e,n):(s.removeEventListener(t,i,!0),X.remove(s,e))}}});var ve=t.location,_e=Date.now(),be=/\?/;y.parseXML=function(e){var i;if(!e||"string"!=typeof e)return null;try{i=(new t.DOMParser).parseFromString(e,"text/xml")}catch(t){i=void 0}return i&&!i.getElementsByTagName("parsererror").length||y.error("Invalid XML: "+e),i};var ye=/\[\]$/,we=/\r?\n/g,xe=/^(?:submit|button|image|reset|file)$/i,ke=/^(?:input|select|textarea|keygen)/i;function Ce(t,e,i,s){var n;if(Array.isArray(e))y.each(e,function(e,n){i||ye.test(t)?s(t,n):Ce(t+"["+("object"==typeof n&&null!=n?e:"")+"]",n,i,s)});else if(i||"object"!==b(e))s(t,e);else for(n in e)Ce(t+"["+n+"]",e[n],i,s)}y.param=function(t,e){var i,s=[],n=function(t,e){var i=g(e)?e():e;s[s.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==i?"":i)};if(Array.isArray(t)||t.jquery&&!y.isPlainObject(t))y.each(t,function(){n(this.name,this.value)});else for(i in t)Ce(i,t[i],e,n);return s.join("&")},y.fn.extend({serialize:function(){return y.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=y.prop(this,"elements");return t?y.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!y(this).is(":disabled")&&ke.test(this.nodeName)&&!xe.test(t)&&(this.checked||!ht.test(t))}).map(function(t,e){var i=y(this).val();return null==i?null:Array.isArray(i)?y.map(i,function(t){return{name:e.name,value:t.replace(we,"\r\n")}}):{name:e.name,value:i.replace(we,"\r\n")}}).get()}});var De=/%20/g,Te=/#.*$/,Ie=/([?&])_=[^&]*/,Se=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pe=/^(?:GET|HEAD)$/,Me=/^\/\//,Ae={},Ee={},Ne="*/".concat("*"),He=s.createElement("a");function Oe(t){return function(e,i){"string"!=typeof e&&(i=e,e="*");var s,n=0,o=e.toLowerCase().match(O)||[];if(g(i))for(;s=o[n++];)"+"===s[0]?(s=s.slice(1)||"*",(t[s]=t[s]||[]).unshift(i)):(t[s]=t[s]||[]).push(i)}}function ze(t,e,i,s){var n={},o=t===Ee;function r(a){var l;return n[a]=!0,y.each(t[a]||[],function(t,a){var h=a(e,i,s);return"string"!=typeof h||o||n[h]?o?!(l=h):void 0:(e.dataTypes.unshift(h),r(h),!1)}),l}return r(e.dataTypes[0])||!n["*"]&&r("*")}function We(t,e){var i,s,n=y.ajaxSettings.flatOptions||{};for(i in e)void 0!==e[i]&&((n[i]?t:s||(s={}))[i]=e[i]);return s&&y.extend(!0,t,s),t}He.href=ve.href,y.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ve.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ve.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ne,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":y.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?We(We(t,y.ajaxSettings),e):We(y.ajaxSettings,t)},ajaxPrefilter:Oe(Ae),ajaxTransport:Oe(Ee),ajax:function(e,i){"object"==typeof e&&(i=e,e=void 0),i=i||{};var n,o,r,a,l,h,u,c,d,p,f=y.ajaxSetup({},i),g=f.context||f,m=f.context&&(g.nodeType||g.jquery)?y(g):y.event,v=y.Deferred(),_=y.Callbacks("once memory"),b=f.statusCode||{},w={},x={},k="canceled",C={readyState:0,getResponseHeader:function(t){var e;if(u){if(!a)for(a={};e=Se.exec(r);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return u?r:null},setRequestHeader:function(t,e){return null==u&&(t=x[t.toLowerCase()]=x[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==u&&(f.mimeType=t),this},statusCode:function(t){var e;if(t)if(u)C.always(t[C.status]);else for(e in t)b[e]=[b[e],t[e]];return this},abort:function(t){var e=t||k;return n&&n.abort(e),D(0,e),this}};if(v.promise(C),f.url=((e||f.url||ve.href)+"").replace(Me,ve.protocol+"//"),f.type=i.method||i.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(O)||[""],null==f.crossDomain){h=s.createElement("a");try{h.href=f.url,h.href=h.href,f.crossDomain=He.protocol+"//"+He.host!=h.protocol+"//"+h.host}catch(t){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=y.param(f.data,f.traditional)),ze(Ae,f,i,C),u)return C;for(d in(c=y.event&&f.global)&&0==y.active++&&y.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Pe.test(f.type),o=f.url.replace(Te,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(De,"+")):(p=f.url.slice(o.length),f.data&&(f.processData||"string"==typeof f.data)&&(o+=(be.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(o=o.replace(Ie,"$1"),p=(be.test(o)?"&":"?")+"_="+_e+++p),f.url=o+p),f.ifModified&&(y.lastModified[o]&&C.setRequestHeader("If-Modified-Since",y.lastModified[o]),y.etag[o]&&C.setRequestHeader("If-None-Match",y.etag[o])),(f.data&&f.hasContent&&!1!==f.contentType||i.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Ne+"; q=0.01":""):f.accepts["*"]),f.headers)C.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(g,C,f)||u))return C.abort();if(k="abort",_.add(f.complete),C.done(f.success),C.fail(f.error),n=ze(Ee,f,i,C)){if(C.readyState=1,c&&m.trigger("ajaxSend",[C,f]),u)return C;f.async&&f.timeout>0&&(l=t.setTimeout(function(){C.abort("timeout")},f.timeout));try{u=!1,n.send(w,D)}catch(t){if(u)throw t;D(-1,t)}}else D(-1,"No Transport");function D(e,i,s,a){var h,d,p,w,x,k=i;u||(u=!0,l&&t.clearTimeout(l),n=void 0,r=a||"",C.readyState=e>0?4:0,h=e>=200&&e<300||304===e,s&&(w=function(t,e,i){for(var s,n,o,r,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===s&&(s=t.mimeType||e.getResponseHeader("Content-Type"));if(s)for(n in a)if(a[n]&&a[n].test(s)){l.unshift(n);break}if(l[0]in i)o=l[0];else{for(n in i){if(!l[0]||t.converters[n+" "+l[0]]){o=n;break}r||(r=n)}o=o||r}if(o)return o!==l[0]&&l.unshift(o),i[o]}(f,C,s)),w=function(t,e,i,s){var n,o,r,a,l,h={},u=t.dataTypes.slice();if(u[1])for(r in t.converters)h[r.toLowerCase()]=t.converters[r];for(o=u.shift();o;)if(t.responseFields[o]&&(i[t.responseFields[o]]=e),!l&&s&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(r=h[l+" "+o]||h["* "+o]))for(n in h)if((a=n.split(" "))[1]===o&&(r=h[l+" "+a[0]]||h["* "+a[0]])){!0===r?r=h[n]:!0!==h[n]&&(o=a[0],u.unshift(a[1]));break}if(!0!==r)if(r&&t.throws)e=r(e);else try{e=r(e)}catch(t){return{state:"parsererror",error:r?t:"No conversion from "+l+" to "+o}}}return{state:"success",data:e}}(f,w,C,h),h?(f.ifModified&&((x=C.getResponseHeader("Last-Modified"))&&(y.lastModified[o]=x),(x=C.getResponseHeader("etag"))&&(y.etag[o]=x)),204===e||"HEAD"===f.type?k="nocontent":304===e?k="notmodified":(k=w.state,d=w.data,h=!(p=w.error))):(p=k,!e&&k||(k="error",e<0&&(e=0))),C.status=e,C.statusText=(i||k)+"",h?v.resolveWith(g,[d,k,C]):v.rejectWith(g,[C,k,p]),C.statusCode(b),b=void 0,c&&m.trigger(h?"ajaxSuccess":"ajaxError",[C,f,h?d:p]),_.fireWith(g,[C,k]),c&&(m.trigger("ajaxComplete",[C,f]),--y.active||y.event.trigger("ajaxStop")))}return C},getJSON:function(t,e,i){return y.get(t,e,i,"json")},getScript:function(t,e){return y.get(t,void 0,e,"script")}}),y.each(["get","post"],function(t,e){y[e]=function(t,i,s,n){return g(i)&&(n=n||s,s=i,i=void 0),y.ajax(y.extend({url:t,type:e,dataType:n,data:i,success:s},y.isPlainObject(t)&&t))}}),y._evalUrl=function(t){return y.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},y.fn.extend({wrapAll:function(t){var e;return this[0]&&(g(t)&&(t=t.call(this[0])),e=y(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return g(t)?this.each(function(e){y(this).wrapInner(t.call(this,e))}):this.each(function(){var e=y(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)})},wrap:function(t){var e=g(t);return this.each(function(i){y(this).wrapAll(e?t.call(this,i):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){y(this).replaceWith(this.childNodes)}),this}}),y.expr.pseudos.hidden=function(t){return!y.expr.pseudos.visible(t)},y.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},y.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(t){}};var Le={0:200,1223:204},Fe=y.ajaxSettings.xhr();f.cors=!!Fe&&"withCredentials"in Fe,f.ajax=Fe=!!Fe,y.ajaxTransport(function(e){var i,s;if(f.cors||Fe&&!e.crossDomain)return{send:function(n,o){var r,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(r in e.xhrFields)a[r]=e.xhrFields[r];for(r in e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest"),n)a.setRequestHeader(r,n[r]);i=function(t){return function(){i&&(i=s=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Le[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=i(),s=a.onerror=a.ontimeout=i("error"),void 0!==a.onabort?a.onabort=s:a.onreadystatechange=function(){4===a.readyState&&t.setTimeout(function(){i&&s()})},i=i("abort");try{a.send(e.hasContent&&e.data||null)}catch(t){if(i)throw t}},abort:function(){i&&i()}}}),y.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),y.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return y.globalEval(t),t}}}),y.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),y.ajaxTransport("script",function(t){var e,i;if(t.crossDomain)return{send:function(n,o){e=y("<script>").prop({charset:t.scriptCharset,src:t.url}).on("load error",i=function(t){e.remove(),i=null,t&&o("error"===t.type?404:200,t.type)}),s.head.appendChild(e[0])},abort:function(){i&&i()}}});var Re=[],je=/(=)\?(?=&|$)|\?\?/;y.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Re.pop()||y.expando+"_"+_e++;return this[t]=!0,t}}),y.ajaxPrefilter("json jsonp",function(e,i,s){var n,o,r,a=!1!==e.jsonp&&(je.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&je.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return n=e.jsonpCallback=g(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(je,"$1"+n):!1!==e.jsonp&&(e.url+=(be.test(e.url)?"&":"?")+e.jsonp+"="+n),e.converters["script json"]=function(){return r||y.error(n+" was not called"),r[0]},e.dataTypes[0]="json",o=t[n],t[n]=function(){r=arguments},s.always(function(){void 0===o?y(t).removeProp(n):t[n]=o,e[n]&&(e.jsonpCallback=i.jsonpCallback,Re.push(n)),r&&g(o)&&o(r[0]),r=o=void 0}),"script"}),f.createHTMLDocument=function(){var t=s.implementation.createHTMLDocument("").body;return t.innerHTML="<form></form><form></form>",2===t.childNodes.length}(),y.parseHTML=function(t,e,i){return"string"!=typeof t?[]:("boolean"==typeof e&&(i=e,e=!1),e||(f.createHTMLDocument?((n=(e=s.implementation.createHTMLDocument("")).createElement("base")).href=s.location.href,e.head.appendChild(n)):e=s),r=!i&&[],(o=S.exec(t))?[e.createElement(o[1])]:(o=mt([t],e,r),r&&r.length&&y(r).remove(),y.merge([],o.childNodes)));var n,o,r},y.fn.load=function(t,e,i){var s,n,o,r=this,a=t.indexOf(" ");return a>-1&&(s=ce(t.slice(a)),t=t.slice(0,a)),g(e)?(i=e,e=void 0):e&&"object"==typeof e&&(n="POST"),r.length>0&&y.ajax({url:t,type:n||"GET",dataType:"html",data:e}).done(function(t){o=arguments,r.html(s?y("<div>").append(y.parseHTML(t)).find(s):t)}).always(i&&function(t,e){r.each(function(){i.apply(this,o||[t.responseText,e,t])})}),this},y.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){y.fn[e]=function(t){return this.on(e,t)}}),y.expr.pseudos.animated=function(t){return y.grep(y.timers,function(e){return t===e.elem}).length},y.offset={setOffset:function(t,e,i){var s,n,o,r,a,l,h=y.css(t,"position"),u=y(t),c={};"static"===h&&(t.style.position="relative"),a=u.offset(),o=y.css(t,"top"),l=y.css(t,"left"),("absolute"===h||"fixed"===h)&&(o+l).indexOf("auto")>-1?(r=(s=u.position()).top,n=s.left):(r=parseFloat(o)||0,n=parseFloat(l)||0),g(e)&&(e=e.call(t,i,y.extend({},a))),null!=e.top&&(c.top=e.top-a.top+r),null!=e.left&&(c.left=e.left-a.left+n),"using"in e?e.using.call(t,c):u.css(c)}},y.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){y.offset.setOffset(this,t,e)});var e,i,s=this[0];return s?s.getClientRects().length?(e=s.getBoundingClientRect(),i=s.ownerDocument.defaultView,{top:e.top+i.pageYOffset,left:e.left+i.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var t,e,i,s=this[0],n={top:0,left:0};if("fixed"===y.css(s,"position"))e=s.getBoundingClientRect();else{for(e=this.offset(),i=s.ownerDocument,t=s.offsetParent||i.documentElement;t&&(t===i.body||t===i.documentElement)&&"static"===y.css(t,"position");)t=t.parentNode;t&&t!==s&&1===t.nodeType&&((n=y(t).offset()).top+=y.css(t,"borderTopWidth",!0),n.left+=y.css(t,"borderLeftWidth",!0))}return{top:e.top-n.top-y.css(s,"marginTop",!0),left:e.left-n.left-y.css(s,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===y.css(t,"position");)t=t.offsetParent;return t||vt})}}),y.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,e){var i="pageYOffset"===e;y.fn[t]=function(s){return q(this,function(t,s,n){var o;if(m(t)?o=t:9===t.nodeType&&(o=t.defaultView),void 0===n)return o?o[e]:t[s];o?o.scrollTo(i?o.pageXOffset:n,i?n:o.pageYOffset):t[s]=n},t,s,arguments.length)}}),y.each(["top","left"],function(t,e){y.cssHooks[e]=Rt(f.pixelPosition,function(t,i){if(i)return i=Ft(t,e),zt.test(i)?y(t).position()[e]+"px":i})}),y.each({Height:"height",Width:"width"},function(t,e){y.each({padding:"inner"+t,content:e,"":"outer"+t},function(i,s){y.fn[s]=function(n,o){var r=arguments.length&&(i||"boolean"!=typeof n),a=i||(!0===n||!0===o?"margin":"border");return q(this,function(e,i,n){var o;return m(e)?0===s.indexOf("outer")?e["inner"+t]:e.document.documentElement["client"+t]:9===e.nodeType?(o=e.documentElement,Math.max(e.body["scroll"+t],o["scroll"+t],e.body["offset"+t],o["offset"+t],o["client"+t])):void 0===n?y.css(e,i,a):y.style(e,i,n,a)},e,r?n:void 0,r)}})}),y.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(t,e){y.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}),y.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),y.fn.extend({bind:function(t,e,i){return this.on(t,null,e,i)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,i,s){return this.on(e,t,i,s)},undelegate:function(t,e,i){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",i)}}),y.proxy=function(t,e){var i,s,n;if("string"==typeof e&&(i=t[e],e=t,t=i),g(t))return s=o.call(arguments,2),(n=function(){return t.apply(e||this,s.concat(o.call(arguments)))}).guid=t.guid=t.guid||y.guid++,n},y.holdReady=function(t){t?y.readyWait++:y.ready(!0)},y.isArray=Array.isArray,y.parseJSON=JSON.parse,y.nodeName=I,y.isFunction=g,y.isWindow=m,y.camelCase=$,y.type=b,y.now=Date.now,y.isNumeric=function(t){var e=y.type(t);return("number"===e||"string"===e)&&!isNaN(t-parseFloat(t))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return y});var qe=t.jQuery,Be=t.$;return y.noConflict=function(e){return t.$===y&&(t.$=Be),e&&t.jQuery===y&&(t.jQuery=qe),y},e||(t.jQuery=t.$=y),y}),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){function e(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=i(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function i(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,s)}function s(){t.datepicker._isDisabledDatepicker(d.inline?d.dpDiv.parent()[0]:d.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function n(e,i){for(var s in t.extend(e,i),i)null==i[s]&&(e[s]=i[s]);return e}function o(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1",t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var r="ui-effects-",a="ui-effects-style",l="ui-effects-animated",h=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),p(a,function(t,o){var r,a=o.re.exec(i),l=a&&o.parse(a),u=o.space||"rgba";return l?(r=s[u](l),s[h[u].cache]=r[h[u].cache],n=s._rgba=r._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return 1>6*(i=(i+1)%1)?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,r=/^([\-+])=\s*(\d+\.?\d*)/,a=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},h={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},d=t("<p>")[0],p=t.each;d.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=d.style.backgroundColor.indexOf("rgba")>-1,p(h,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,r,a,u){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(r),r=e);var c=this,d=t.type(n),f=this._rgba=[];return r!==e&&(n=[n,r,a,u],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(p(h.rgba.props,function(t,e){f[e.idx]=i(n[e.idx],e)}),this):"object"===d?(p(h,n instanceof l?function(t,e){n[e.cache]&&(c[e.cache]=n[e.cache].slice())}:function(e,s){var o=s.cache;p(s.props,function(t,e){if(!c[o]&&s.to){if("alpha"===t||null==n[t])return;c[o]=s.to(c._rgba)}c[o][e.idx]=i(n[t],e,!0)}),c[o]&&0>t.inArray(null,c[o].slice(0,3))&&(c[o][3]=1,s.from&&(c._rgba=s.from(c[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return p(h,function(t,o){var r,a=i[o.cache];return a&&(r=n[o.cache]||o.to&&o.to(n._rgba)||[],p(o.props,function(t,i){return null!=a[i.idx]?s=a[i.idx]===r[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return p(h,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=h[n],r=0===this.alpha()?l("transparent"):this,a=r[o.cache]||o.to(r._rgba),c=a.slice();return s=s[o.cache],p(o.props,function(t,n){var o=n.idx,r=a[o],l=s[o],h=u[n.type]||{};null!==l&&(null===r?c[o]=l:(h.mod&&(l-r>h.mod/2?r+=h.mod:r-l>h.mod/2&&(r-=h.mod)),c[o]=i((l-r)*e+r,n)))}),this[n](c)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return 1===(t=(t||0).toString(16)).length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,h.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,r=t[3],a=Math.max(s,n,o),l=Math.min(s,n,o),h=a-l,u=a+l,c=.5*u;return e=l===a?0:s===a?60*(n-o)/h+360:n===a?60*(o-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=c?h/u:h/(2-u),[Math.round(e)%360,i,c,null==r?1:r]},h.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],r=.5>=s?s*(1+i):s+i-s*i,a=2*s-r;return[Math.round(255*n(a,r,e+1/3)),Math.round(255*n(a,r,e)),Math.round(255*n(a,r,e-1/3)),o]},p(h,function(s,n){var o=n.props,a=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),c="array"===r||"object"===r?s:arguments,d=this[a].slice();return p(o,function(t,e){var s=c["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),u?((n=l(u(d)))[a]=d,n):l(d)},p(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),l="alpha"===e?this._hsla?"hsla":"rgba":s,h=this[l](),u=h[i.idx];return"undefined"===a?u:("function"===a&&(n=n.call(this,u),a=t.type(n)),null==n&&i.empty?this:("string"===a&&((o=r.exec(n))&&(n=u+parseFloat(o[2])*("+"===o[1]?1:-1))),h[i.idx]=n,this[l](h)))})})}),l.hook=function(e){var i=e.split(" ");p(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,r,a="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!c.rgba&&1!==n._rgba[3]){for(r="backgroundColor"===i?e.parentNode:e;(""===a||"transparent"===a)&&r&&r.style;)try{a=t.css(r,"backgroundColor"),r=r.parentNode}catch(t){}n=n.blend(a&&"transparent"!==a?a:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(t){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),t.cssHooks.borderColor={expand:function(t){var e={};return p(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(h),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)"string"==typeof n[i=n[s]]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,r={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(r[s]=o));return r}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(h.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,r,a){var l=t.speed(o,r,a);return this.queue(function(){var o,r=t(this),a=r.attr("class")||"",h=l.children?r.find("*").addBack():r;h=h.map(function(){return{el:t(this),start:e(this)}}),(o=function(){t.each(s,function(t,e){n[e]&&r[e+"Class"](n[e])})})(),h=h.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),r.attr("class",a),h=h.map(function(){var e=this,i=t.Deferred(),s=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,h.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(r[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,r){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,r):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!(e&&"number"!=typeof e&&!t.fx.speeds[e])||("string"==typeof e&&!t.effects.effect[e]||(!!t.isFunction(e)||"object"==typeof e&&!e.effect))}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(t)||["",0,i,s,0];return{top:parseFloat(n[1])||0,right:"auto"===n[2]?i:parseFloat(n[2]),bottom:"auto"===n[3]?s:parseFloat(n[3]),left:parseFloat(n[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(l)||e(i)}}(t.expr.filters.animated)),!1!==t.uiBackCompat&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(r+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(r+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),float:e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(t){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(a,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(a)||"",t.removeData(a)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),float:e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(r+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=r+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),!1===t.uiBackCompat||o?"none"===s.mode?(r[u](),i()):n.call(r[0],s,function(){r.removeData(l),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),i()}):(r.is(":hidden")?"hide"===u:"show"===u)?(r[u](),i()):n.call(r[0],s,i)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,r=s.queue,a=r||"fx",h=s.complete,u=s.mode,c=[],d=function(e){var i=t(this),s=t.effects.mode(i,u)||o;i.data(l,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?u?this[u](s.duration,h):this.each(function(){h&&h.call(this)}):!1===r?this.each(d).each(i):this.queue(a,d).queue(a,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),r=t("body"),a=o?r.scrollTop():0,l=o?r.scrollLeft():0,h=n.offset(),u={top:h.top-a,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},c=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:c.top-a,left:c.left-l,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(u,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",r=n.cssClip(),a={clip:t.extend({},r)},l=t.effects.createPlaceholder(n);a.clip[s[o][0]]=a.clip[s[o][1]],"show"===e.mode&&(n.cssClip(a.clip),l&&l.css(t.effects.clipToBox(a)),a.clip=r),l&&l.animate(t.effects.clipToBox(a),e.duration,e.easing),n.animate(a,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,r=t(this),a=e.mode,l="hide"===a,h="show"===a,u=e.direction||"up",c=e.distance,d=e.times||5,p=2*d+(h||l?1:0),f=e.duration/p,g=e.easing,m="up"===u||"down"===u?"top":"left",v="up"===u||"left"===u,_=0,b=r.queue().length;for(t.effects.createPlaceholder(r),o=r.css(m),c||(c=r["top"===m?"outerHeight":"outerWidth"]()/3),h&&((n={opacity:1})[m]=o,r.css("opacity",0).css(m,v?2*-c:2*c).animate(n,f,g)),l&&(c/=Math.pow(2,d-1)),(n={})[m]=o;d>_;_++)(s={})[m]=(v?"-=":"+=")+c,r.animate(s,f,g).animate(n,f,g),c=l?2*c:c/2;l&&((s={opacity:0})[m]=(v?"-=":"+=")+c,r.animate(s,f,g)),r.queue(i),t.effects.unshift(r,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),r=e.direction||"vertical",a="both"===r,l=a||"horizontal"===r,h=a||"vertical"===r;s=o.cssClip(),n.clip={top:h?(s.bottom-s.top)/2:s.top,right:l?(s.right-s.left)/2:s.right,bottom:h?(s.bottom-s.top)/2:s.bottom,left:l?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o="show"===e.mode,r=e.direction||"left",a="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",h="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===a?"outerHeight":"outerWidth"](!0)/2,u[a]=l+s,o&&(n.css(u),u[a]=h+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){v.push(this),v.length===u*c&&(d.css({visibility:"visible"}),t(v).remove(),i())}var n,o,r,a,l,h,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,c=u,d=t(this),p="show"===e.mode,f=d.show().css("visibility","hidden").offset(),g=Math.ceil(d.outerWidth()/c),m=Math.ceil(d.outerHeight()/u),v=[];for(n=0;u>n;n++)for(a=f.top+n*m,h=n-(u-1)/2,o=0;c>o;o++)r=f.left+o*g,l=o-(c-1)/2,d.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*g,top:-n*m}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g,height:m,left:r+(p?l*g:0),top:a+(p?h*m:0),opacity:p?0:1}).animate({left:r+(p?0:l*g),top:a+(p?0:h*m),opacity:p?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,r="hide"===n,a=e.size||15,l=/([0-9]+)%/.exec(a),h=!!e.horizFirst?["right","bottom"]:["bottom","right"],u=e.duration/2,c=t.effects.createPlaceholder(s),d=s.cssClip(),p={clip:t.extend({},d)},f={clip:t.extend({},d)},g=[d[h[0]],d[h[1]]],m=s.queue().length;l&&(a=parseInt(l[1],10)/100*g[r?0:1]),p.clip[h[0]]=a,f.clip[h[0]]=a,f.clip[h[1]]=0,o&&(s.cssClip(f.clip),c&&c.css(t.effects.clipToBox(f)),f.clip=d),s.queue(function(i){c&&c.animate(t.effects.clipToBox(p),u,e.easing).animate(t.effects.clipToBox(f),u,e.easing),i()}).animate(p,u,e.easing).animate(f,u,e.easing).queue(i),t.effects.unshift(s,m,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,r=t(this),a=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],u=e.mode,c="effect"!==u,d=e.scale||"both",p=e.origin||["middle","center"],f=r.css("position"),g=r.position(),m=t.effects.scaledDimensions(r),v=e.from||m,_=e.to||t.effects.scaledDimensions(r,0);t.effects.createPlaceholder(r),"show"===u&&(o=v,v=_,_=o),n={from:{y:v.height/m.height,x:v.width/m.width},to:{y:_.height/m.height,x:_.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(v=t.effects.setTransition(r,l,n.from.y,v),_=t.effects.setTransition(r,l,n.to.y,_)),n.from.x!==n.to.x&&(v=t.effects.setTransition(r,h,n.from.x,v),_=t.effects.setTransition(r,h,n.to.x,_))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(v=t.effects.setTransition(r,a,n.from.y,v),_=t.effects.setTransition(r,a,n.to.y,_)),p&&(s=t.effects.getBaseline(p,m),v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left,_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left),r.css(v),("content"===d||"both"===d)&&(l=l.concat(["marginTop","marginBottom"]).concat(a),h=h.concat(["marginLeft","marginRight"]),r.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},r={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,l,n.from.y,o),r=t.effects.setTransition(i,l,n.to.y,r)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,h,n.from.x,o),r=t.effects.setTransition(i,h,n.to.x,r)),c&&t.effects.saveStyle(i),i.css(o),i.animate(r,e.duration,e.easing,function(){c&&t.effects.restoreStyle(i)})})),r.animate(_,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=r.offset();0===_.opacity&&r.css("opacity",v.opacity),c||(r.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(r)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),r=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(r.from.opacity=1,r.to.opacity=0),t.effects.effect.size.call(this,r,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,r=o||"hide"===n,a=2*(e.times||5)+(r?1:0),l=e.duration/a,h=0,u=1,c=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),h=1);a>u;u++)s.animate({opacity:h},l,e.easing),h=1-h;s.animate({opacity:h},l,e.easing),s.queue(i),t.effects.unshift(s,c,a+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",r=e.distance||20,a=e.times||3,l=2*a+1,h=Math.round(e.duration/l),u="up"===o||"down"===o?"top":"left",c="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[u]=(c?"-=":"+=")+r,p[u]=(c?"+=":"-=")+2*r,f[u]=(c?"-=":"+=")+2*r,n.animate(d,h,e.easing);a>s;s++)n.animate(p,h,e.easing).animate(f,h,e.easing);n.animate(p,h,e.easing).animate(d,h/2,e.easing).queue(i),t.effects.unshift(n,g,l+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),r={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},a=e.mode,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",u="up"===l||"left"===l,c=e.distance||o["top"===h?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[h],d[h]=(u?-1:1)*c+n,d.clip=o.cssClip(),d.clip[r[l][1]]=d.clip[r[l][0]],"show"===a&&(o.cssClip(d.clip),o.css(h,d[h]),d.clip=s,d[h]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),!1!==t.uiBackCompat&&t.effects.define("transfer",function(e,i){t(this).transfer(e,i)}),t.ui.focusable=function(e,i){var s,n,o,r,a,l=e.nodeName.toLowerCase();return"area"===l?(n=(s=e.parentNode).name,!(!e.href||!n||"map"!==s.nodeName.toLowerCase())&&((o=t("img[usemap='#"+n+"']")).length>0&&o.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(l)?(r=!e.disabled)&&((a=t(e).closest("fieldset")[0])&&(r=!a.disabled)):r="a"===l&&e.href||i,r&&t(e).is(":visible")&&function(t){for(var e=t.css("visibility");"inherit"===e;)e=(t=t.parent()).css("visibility");return"hidden"!==e}(t(e)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),r={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?r["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?r["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),(s=this.attr("id"))&&(o=(e=this.eq(0).parents().last()).add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}var s,n=Math.max,o=Math.abs,r=/left|center|right/,a=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,h=/^\w+/,u=/%$/,c=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==s)return s;var e,i,n=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=n.children()[0];return t("body").append(n),e=o.offsetWidth,n.css("overflow","scroll"),e===(i=o.offsetWidth)&&(i=n[0].clientWidth),n.remove(),s=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth;return{width:"scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:!s&&!n?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(s){if(!s||!s.of)return c.apply(this,arguments);s=t.extend({},s);var u,d,p,f,g,m,v=t(s.of),_=t.position.getWithinInfo(s.within),b=t.position.getScrollInfo(_),y=(s.collision||"flip").split(" "),w={};return m=function(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}(v),v[0].preventDefault&&(s.at="left top"),d=m.width,p=m.height,f=m.offset,g=t.extend({},f),t.each(["my","at"],function(){var t,e,i=(s[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):a.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=a.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],s[this]=[h.exec(i[0])[0],h.exec(i[1])[0]]}),1===y.length&&(y[1]=y[0]),"right"===s.at[0]?g.left+=d:"center"===s.at[0]&&(g.left+=d/2),"bottom"===s.at[1]?g.top+=p:"center"===s.at[1]&&(g.top+=p/2),u=e(w.at,d,p),g.left+=u[0],g.top+=u[1],this.each(function(){var r,a,l=t(this),h=l.outerWidth(),c=l.outerHeight(),m=i(this,"marginLeft"),x=i(this,"marginTop"),k=h+m+i(this,"marginRight")+b.width,C=c+x+i(this,"marginBottom")+b.height,D=t.extend({},g),T=e(w.my,l.outerWidth(),l.outerHeight());"right"===s.my[0]?D.left-=h:"center"===s.my[0]&&(D.left-=h/2),"bottom"===s.my[1]?D.top-=c:"center"===s.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],r={marginLeft:m,marginTop:x},t.each(["left","top"],function(e,i){t.ui.position[y[e]]&&t.ui.position[y[e]][i](D,{targetWidth:d,targetHeight:p,elemWidth:h,elemHeight:c,collisionPosition:r,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:s.my,at:s.at,within:_,elem:l})}),s.using&&(a=function(t){var e=f.left-D.left,i=e+d-h,r=f.top-D.top,a=r+p-c,u={target:{element:v,left:f.left,top:f.top,width:d,height:p},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>a?"top":r>0?"bottom":"middle"};h>d&&d>o(e+i)&&(u.horizontal="center"),c>p&&p>o(r+a)&&(u.vertical="middle"),u.important=n(o(e),o(i))>n(o(r),o(a))?"horizontal":"vertical",s.using.call(this,t,u)}),l.offset(t.extend(D,{using:a}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,o=s.isWindow?s.scrollLeft:s.offset.left,r=s.width,a=t.left-e.collisionPosition.marginLeft,l=o-a,h=a+e.collisionWidth-r-o;e.collisionWidth>r?l>0&&0>=h?(i=t.left+l+e.collisionWidth-r-o,t.left+=l-i):t.left=h>0&&0>=l?o:l>h?o+r-e.collisionWidth:o:l>0?t.left+=l:h>0?t.left-=h:t.left=n(t.left-a,t.left)},top:function(t,e){var i,s=e.within,o=s.isWindow?s.scrollTop:s.offset.top,r=e.within.height,a=t.top-e.collisionPosition.marginTop,l=o-a,h=a+e.collisionHeight-r-o;e.collisionHeight>r?l>0&&0>=h?(i=t.top+l+e.collisionHeight-r-o,t.top+=l-i):t.top=h>0&&0>=l?o:l>h?o+r-e.collisionHeight:o:l>0?t.top+=l:h>0?t.top-=h:t.top=n(t.top-a,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,r=n.offset.left+n.scrollLeft,a=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,u=h-l,c=h+e.collisionWidth-a-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>u?(0>(i=t.left+d+p+f+e.collisionWidth-a-r)||o(u)>i)&&(t.left+=d+p+f):c>0&&(((s=t.left-e.collisionPosition.marginLeft+d+p+f-l)>0||c>o(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,r=n.offset.top+n.scrollTop,a=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,u=h-l,c=h+e.collisionHeight-a-l,d="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,p="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,f=-2*e.offset[1];0>u?(0>(s=t.top+d+p+f+e.collisionHeight-a-r)||o(u)>s)&&(t.top+=d+p+f):c>0&&(((i=t.top-e.collisionPosition.marginTop+d+p+f-l)>0||c>o(i))&&(t.top+=d+p+f))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return(!s||"static"!==e.css("position"))&&n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}});var u=0,c=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{(s=t._data(n,"events"))&&s.remove&&t(n).triggerHandler("remove")}catch(t){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,r,a={},l=e.split(".")[0],h=l+"-"+(e=e.split(".")[1]);return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?void(arguments.length&&this._createWidget(t,e)):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),(r=new i).options=t.widget.extend({},r.options),t.each(s,function(e,s){return t.isFunction(s)?void(a[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}()):void(a[e]=s)}),o.prototype=t.widget.extend(r,{widgetEventPrefix:n&&r.widgetEventPrefix||e},a,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=c.call(arguments,1),o=0,r=n.length;r>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,r=c.call(arguments,1),a=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(a=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,r))!==o&&void 0!==i?(a=i&&i.jquery?a.pushStack(i.get()):i,!1):void 0:t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+n+"'")}):a=void 0:(r.length&&(n=t.widget.extend.apply(null,[n].concat(r))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),a}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=u++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,r=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(r={},s=e.split("."),e=s.shift(),s.length){for(n=r[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];r[e]=i}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var r,a;for(a=0;i.length>a;a++)r=n.classesElementLookup[i[a]]||t(),r=e.add?t(t.unique(r.get().concat(e.element.get()))):t(r.not(e.element).get()),n.classesElementLookup[i[a]]=r,s.push(i[a]),o&&e.classes[i[a]]&&s.push(e.classes[i[a]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,r){function a(){return e||!0!==o.options.disabled&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?o[r]:r).apply(o,arguments):void 0}"string"!=typeof r&&(a.guid=r.guid=r.guid||a.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,u=l[2];u?n.on(h,u,a):i.on(h,a)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,r=this.options[e];if(s=s||{},(i=t.Event(i)).type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(r)&&!1===r.apply(this.element[0],[i].concat(s))||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var r,a=n?!0===n||"number"==typeof n?i:n.effect||i:e;"number"==typeof(n=n||{})&&(n={duration:n}),r=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),r&&t.effects&&t.effects.effect[a]?s[e](n):a!==e&&s[a]?s[a](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||!1!==e.active&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?void this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),void("icons"===t&&(this._destroyIcons(),e&&this._createIcons())))},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),!1===e.active&&!0===e.collapsible||!this.headers.length?(e.active=!1,this.active=t()):!1===e.active?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,r=t(e.currentTarget),a=r[0]===o[0],l=a&&n.collapsible,h=l?t():r.next(),u=o.next(),c={oldHeader:o,oldPanel:u,newHeader:l?t():r,newPanel:h};e.preventDefault(),a&&!n.collapsible||!1===this._trigger("beforeActivate",e,c)||(n.active=!l&&this.headers.index(r),this.active=a?t():r,this._toggle(c),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),a||(this._removeClass(r,"ui-accordion-header-collapsed")._addClass(r,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=r.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(r.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,r=this,a=0,l=t.css("box-sizing"),h=t.length&&(!e.length||t.index()<e.index()),u=this.options.animate||{},c=h&&u.down||u,d=function(){r._toggleComplete(i)};return"number"==typeof c&&(o=c),"string"==typeof c&&(n=c),n=n||c.easing||u.easing,o=o||c.duration||u.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===l&&(a+=i.now):"content"!==r.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-a),a=0)}})):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]))&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),e.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,r=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:r=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),(i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i).length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}r&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o=this,r=this.options.icons.submenu,a=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),i=a.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);o._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(i,"ui-menu","ui-widget ui-widget-content ui-front"),(e=a.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var e=t(this);o._isDivider(e)&&o._addClass(e,"ui-menu-divider","ui-widget-content")}),n=(s=e.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(s,"ui-menu-item")._addClass(n,"ui-menu-item-wrapper"),e.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,r,a;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),r=this.activeMenu.height(),a=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+a>r&&this.activeMenu.scrollTop(o+n-r+a))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?void(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return 0>(i=t(this)).offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(e)},previousPage:function(e){var i,s,n;return this.active?void(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return(i=t(this)).offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first()))):void this.next(e)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,r="input"===n;this.isMultiLine=o||!r&&this._isContentEditable(this.element),this.valueMethod=this.element[o||r?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,void(i=!0);e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault());if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,void t.preventDefault()):void this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),void this._change(t))}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)})):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),void((s=i.item.attr("aria-label")||n.value)&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion))))},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger("search",e)?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e):void this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var d,p=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,r={};return n?"controlgroupLabel"===s?((o=e.element.find(n)).each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),void(i=i.concat(o.get()))):void(t.fn[s]&&(r=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),a=t.widget.extend({},r);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(a.classes=e._resolveClassesValues(a.classes,o)),n[s](a);var l=n[s]("widget");t.data(l[0],"ui-controlgroup-data",o||n[s]("instance")),i.push(l[0])}}))):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this).data("ui-controlgroup-data");i&&i[e]&&i[e]()})},_updateCornerClass:function(t,e){var i=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(t,null,i)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:!!e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(p,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?void this._callChildMethod(e?"disable":"enable"):void this.refresh()},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),null!=(e=this.element[0].disabled)&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e=this.element[0].name,i="input[name='"+t.ui.escapeSelector(e)+"']";return e?(this.form.length?t(this.form[0].elements).filter(i):t(i).filter(function(){return 0===t(this).form().length})).not(this.element):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),void(this.element[0].disabled=e)):void this.refresh()):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),null!=(t=this.element[0].disabled)&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),!1!==t.uiBackCompat&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?void this._super("showLabel",e):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),void this._superApply(arguments))}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}}),t.extend(e.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return n(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;n="div"===(s=e.nodeName.toLowerCase())||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),(o=this._newInst(t(e),n)).settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,s){return{id:e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1"),input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:s,dpDiv:s?i(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,r=this._get(i,"appendText"),a=this._get(i,"isRTL");i.append&&i.append.remove(),r&&(i.append=t("<span class='"+this._appendClass+"'>"+r+"</span>"),e[a?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),("focus"===(s=this._get(i,"showOn"))||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[a?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),r=this._get(t,"dateFormat");r.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,r.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,o,r){var a,l,h,u,c,d=this._dialogInst;return d||(this.uuid+=1,a="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+a+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),(d=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},t.data(this._dialogInput[0],"datepicker",d)),n(d.settings,o||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=r?r.length?r:[r.pageX,r.pageY]:null,this._pos||(l=document.documentElement.clientWidth,h=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,c=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+u,h/2-150+c]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),d===n&&(d=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&("input"===(i=e.nodeName.toLowerCase())?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&((s=n.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&("input"===(i=e.nodeName.toLowerCase())?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&((s=n.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var o,r,a,l,h=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):h?"all"===i?t.extend({},h.settings):this._get(h,i):null:(o=i||{},"string"==typeof i&&((o={})[i]=s),void(h&&(this._curInst===h&&this._hideDatepicker(),r=this._getDateDatepicker(e,!0),a=this._getMinMaxDate(h,"min"),l=this._getMinMaxDate(h,"max"),n(h.settings,o),null!==a&&void 0!==o.dateFormat&&void 0===o.minDate&&(h.settings.minDate=this._formatDate(h,a)),null!==l&&void 0!==o.dateFormat&&void 0===o.maxDate&&(h.settings.maxDate=this._formatDate(h,l)),"disabled"in o&&(o.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),h),this._autoSize(h),this._setDate(h,r),this._updateAlternate(h),this._updateDatepicker(h))))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),r=!0,a=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),r=!1;break;case 13:return(n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv))[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),(i=t.datepicker._get(o,"onSelect"))?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),r=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),r=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?1:-1,"D"),r=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),r=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?-1:1,"D"),r=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),r=e.ctrlKey||e.metaKey;break;default:r=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):r=!1;r&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i=t.datepicker._getInst(e.target);if(i.input.val()!==i.lastVal)try{t.datepicker.parseDate(t.datepicker._get(i,"dateFormat"),i.input?i.input.val():null,t.datepicker._getFormatConfig(i))&&(t.datepicker._setDateFromField(i),t.datepicker._updateAlternate(i),t.datepicker._updateDatepicker(i))}catch(t){}return!0},_showDatepicker:function(e){var i,s,o,r,a,l,h;("input"!==(e=e.target||e).nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),t.datepicker._isDisabledDatepicker(e)||t.datepicker._lastInput===e)||(i=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==i&&(t.datepicker._curInst.dpDiv.stop(!0,!0),i&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),!1!==(o=(s=t.datepicker._get(i,"beforeShow"))?s.apply(e,[e,i]):{})&&(n(i.settings,o),i.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(i),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return!(r|="fixed"===t(this).css("position"))}),a={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(i),a=t.datepicker._checkOffset(i,a,r),i.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:a.left+"px",top:a.top+"px"}),i.inline||(l=t.datepicker._get(i,"showAnim"),h=t.datepicker._get(i,"duration"),i.dpDiv.css("z-index",function(t){for(var e,i;t.length&&t[0]!==document;){if(("absolute"===(e=t.css("position"))||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?i.dpDiv.show(l,t.datepicker._get(i,"showOptions"),h):i.dpDiv[l||"show"](l?h:null),t.datepicker._shouldFocusInput(i)&&i.input.trigger("focus"),t.datepicker._curInst=i)))},_updateDatepicker:function(e){this.maxRows=4,d=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,n=this._getNumberOfMonths(e),o=n[1],r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&s.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),o>1&&e.dpDiv.addClass("ui-datepicker-multi-"+o).css("width",17*o+"em"),e.dpDiv[(1!==n[0]||1!==n[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),r=e.input?e.input.outerWidth():0,a=e.input?e.input.outerHeight():0,l=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),h=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-r:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+a?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>l&&l>n?Math.abs(i.left+n-l):0),i.top-=Math.min(i.top,i.top+o>h&&h>o?Math.abs(o+a):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return[(i=t(e).offset()).left,i.top]},_hideDatepicker:function(e){var i,s,n,o,r=this._curInst;!r||e&&r!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(r,"showAnim"),s=this._get(r,"duration"),n=function(){t.datepicker._tidyDialog(r)},t.effects&&(t.effects.effect[i]||t.effects[i])?r.dpDiv.hide(i,t.datepicker._get(r,"showOptions"),s,n):r.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,(o=this._get(r,"onClose"))&&o.apply(r.input?r.input[0]:null,[r.input?r.input.val():"",r]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,r=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||((o=this._getInst(r[0])).selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),(s=this._get(o,"onSelect"))?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(""===(i="object"==typeof i?""+i:i+""))return null;var n,o,r,a,l=0,h=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof h?h:(new Date).getFullYear()%100+parseInt(h,10),c=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,v=-1,_=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n=RegExp("^\\d{"+("y"===t?s:1)+","+s+"}"),o=i.substring(l).match(n);if(!o)throw"Missing number at position "+l;return l+=o[0].length,parseInt(o[0],10)},x=function(e,s,n){var o=-1,r=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(r,function(t,e){var s=e[1];return i.substr(l,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],l+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+l},k=function(){if(i.charAt(l)!==e.charAt(n))throw"Unexpected literal at position "+l;l++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?k():b=!1;else switch(e.charAt(n)){case"d":v=w("d");break;case"D":x("D",c,d);break;case"o":_=w("o");break;case"m":m=w("m");break;case"M":m=x("M",p,f);break;case"y":g=w("y");break;case"@":g=(a=new Date(w("@"))).getFullYear(),m=a.getMonth()+1,v=a.getDate();break;case"!":g=(a=new Date((w("!")-this._ticksTo1970)/1e4)).getFullYear(),m=a.getMonth()+1,v=a.getDate();break;case"'":y("'")?k():b=!0;break;default:k()}if(i.length>l&&(r=i.substr(l),!/^\s+/.test(r)))throw"Extra/unparsed characters found in date: "+r;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=g?0:-100)),_>-1)for(m=1,v=_;!((o=this._getDaysInMonth(g,m-1))>=v);)m++,v-=o;if((a=this._daylightSavingAdjust(new Date(g,m-1,v))).getFullYear()!==g||a.getMonth()+1!==m||a.getDate()!==v)throw"Invalid date";return a},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:864e9*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,a=(i?i.monthNames:null)||this._defaults.monthNames,l=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},h=function(t,e,i){var s=""+e;if(l(t))for(;i>s.length;)s="0"+s;return s},u=function(t,e,i,s){return l(t)?s[e]:i[e]},c="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||l("'")?c+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":c+=h("d",e.getDate(),2);break;case"D":c+=u("D",e.getDay(),n,o);break;case"o":c+=h("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":c+=h("m",e.getMonth()+1,2);break;case"M":c+=u("M",e.getMonth(),r,a);break;case"y":c+=l("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":c+=e.getTime();break;case"!":c+=1e4*e.getTime()+this._ticksTo1970;break;case"'":l("'")?c+="'":d=!0;break;default:c+=t.charAt(s)}return c},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,r=this._getFormatConfig(t);try{o=this.parseDate(i,s,r)||n}catch(t){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=null==i||""===i?s:"string"==typeof i?function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(t){}for(var s=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,n=s.getFullYear(),o=s.getMonth(),r=s.getDate(),a=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=a.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(n,o));break;case"y":case"Y":n+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(n,o))}l=a.exec(i)}return new Date(n,o,r)}(i):"number"==typeof i?isNaN(i)?s:function(t){var e=new Date;return e.setDate(e.getDate()+t),e}(i):new Date(i.getTime());return(n=n&&"Invalid Date"==""+n?s:n)&&(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setMilliseconds(0)),this._daylightSavingAdjust(n)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,r=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=r.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=r.getMonth(),t.drawYear=t.selectedYear=t.currentYear=r.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,r,a,l,h,u,c,d,p,f,g,m,v,_,b,y,w,x,k,C,D,T,I,S,P,M,A,E,N,H,O,z,W,L,F,R=new Date,j=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),q=this._get(t,"isRTL"),B=this._get(t,"showButtonPanel"),Y=this._get(t,"hideIfNoPrevNext"),U=this._get(t,"navigationAsDateFormat"),$=this._getNumberOfMonths(t),K=this._get(t,"showCurrentAtPos"),V=this._get(t,"stepMonths"),X=1!==$[0]||1!==$[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-K,tt=t.drawYear;if(0>Z&&(Z+=12,tt--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-$[0]*$[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(tt,Z,1))>e;)0>--Z&&(Z=11,tt--);for(t.drawMonth=Z,t.drawYear=tt,i=this._get(t,"prevText"),i=U?this.formatDate(i,this._daylightSavingAdjust(new Date(tt,Z-V,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,tt,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(q?"e":"w")+"'>"+i+"</span></a>":Y?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(q?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=U?this.formatDate(n,this._daylightSavingAdjust(new Date(tt,Z+V,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,tt,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(q?"w":"e")+"'>"+n+"</span></a>":Y?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(q?"w":"e")+"'>"+n+"</span></a>",r=this._get(t,"currentText"),a=this._get(t,"gotoCurrent")&&t.currentDay?G:j,r=U?this.formatDate(r,a,this._getFormatConfig(t)):r,l=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",h=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(q?l:"")+(this._isInRange(t,a)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+r+"</button>":"")+(q?"":l)+"</div>":"",u=parseInt(this._get(t,"firstDay"),10),u=isNaN(u)?0:u,c=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),_=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",x=0;$[0]>x;x++){for(k="",this.maxRows=4,C=0;$[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(tt,Z,t.selectedDay)),T=" ui-corner-all",I="",X){if(I+="<div class='ui-datepicker-group",$[1]>1)switch(C){case 0:I+=" ui-datepicker-group-first",T=" ui-corner-"+(q?"right":"left");break;case $[1]-1:I+=" ui-datepicker-group-last",T=" ui-corner-"+(q?"left":"right");break;default:I+=" ui-datepicker-group-middle",T=""}I+="'>"}for(I+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+T+"'>"+(/all|left/.test(T)&&0===x?q?o:s:"")+(/all|right/.test(T)&&0===x?q?s:o:"")+this._generateMonthYearHeader(t,Z,tt,Q,J,x>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead><tr>",S=c?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)S+="<th scope='col'"+((w+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+d[P=(w+u)%7]+"'>"+p[P]+"</span></th>";for(I+=S+"</tr></thead><tbody>",M=this._getDaysInMonth(tt,Z),tt===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,M)),A=(this._getFirstDayOfMonth(tt,Z)-u+7)%7,E=Math.ceil((A+M)/7),N=X&&this.maxRows>E?this.maxRows:E,this.maxRows=N,H=this._daylightSavingAdjust(new Date(tt,Z,1-A)),O=0;N>O;O++){for(I+="<tr>",z=c?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(H)+"</td>":"",w=0;7>w;w++)W=m?m.apply(t.input?t.input[0]:null,[H]):[!0,""],F=(L=H.getMonth()!==Z)&&!_||!W[0]||Q&&Q>H||J&&H>J,z+="<td class='"+((w+u+6)%7>=5?" ui-datepicker-week-end":"")+(L?" ui-datepicker-other-month":"")+(H.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===H.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(F?" "+this._unselectableClass+" ui-state-disabled":"")+(L&&!v?"":" "+W[1]+(H.getTime()===G.getTime()?" "+this._currentClass:"")+(H.getTime()===j.getTime()?" ui-datepicker-today":""))+"'"+(L&&!v||!W[2]?"":" title='"+W[2].replace(/'/g,"&#39;")+"'")+(F?"":" data-handler='selectDay' data-event='click' data-month='"+H.getMonth()+"' data-year='"+H.getFullYear()+"'")+">"+(L&&!v?"&#xa0;":F?"<span class='ui-state-default'>"+H.getDate()+"</span>":"<a class='ui-state-default"+(H.getTime()===j.getTime()?" ui-state-highlight":"")+(H.getTime()===G.getTime()?" ui-state-active":"")+(L?" ui-priority-secondary":"")+"' href='#'>"+H.getDate()+"</a>")+"</td>",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);I+=z+"</tr>"}++Z>11&&(Z=0,tt++),k+=I+="</tbody></table>"+(X?"</div>"+($[0]>0&&C===$[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"")}y+=k}return y+=h,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,r,a){var l,h,u,c,d,p,f,g,m=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),_=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+r[e]+"</span>";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!l||u>=s.getMonth())&&(!h||n.getMonth()>=u)&&(y+="<option value='"+u+"'"+(u===e?" selected='selected'":"")+">"+a[u]+"</option>");y+="</select>"}if(_||(b+=y+(!o&&m&&v?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(c=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),f=(p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e})(c[0]),g=Math.max(f,p(c[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),_&&(b+=(!o&&m&&v?"":"&#xa0;")+y),b+"</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),r=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=r.getDate(),t.drawMonth=t.selectedMonth=r.getMonth(),t.drawYear=t.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),r=null,a=null,l=this._get(t,"yearRange");return l&&(i=l.split(":"),s=(new Date).getFullYear(),r=parseInt(i[0],10),a=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=s),i[1].match(/[+\-].*/)&&(a+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!r||e.getFullYear()>=r)&&(!a||a>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new e,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var f=!1;t(document).on("mouseup",function(){f=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!f){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n=!("string"!=typeof this.options.cancel||!e.target.nodeName)&&t(e.target).closest(this.options.cancel).length;return!(s&&!n&&this._mouseCapture(e))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(e),!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),f=!0,!0))}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,e),this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,f=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(e){var i=this.options;return!(this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(e),!!this.handle&&(this._blurActiveElement(e),this._blockFrames(!0===i.iframeFix?"iframe":i.iframeFix),!0))},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]);t(e.target).closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(!1===this._trigger("drag",e,s))return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||!0===this.options.revert||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==i._trigger("stop",e)&&i._clear()}):!1!==this._trigger("stop",e)&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!t(e.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?void(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===n.containment?void(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):n.containment.constructor===Array?void(this.containment=n.containment):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),void((s=(i=t(n.containment))[0])&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i))):void(this.containment=null)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,r=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(h=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),r.grid&&(n=r.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/r.grid[1])*r.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-r.grid[1]:n+r.grid[1]:n,o=r.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/r.grid[0])*r.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-r.grid[0]:o+r.grid[0]:o),"y"===r.axis&&(l=this.originalPageX),"x"===r.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,r=s.scrollParentNotHidden[0],a=s.document[0];r!==a&&"HTML"!==r.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+r.offsetHeight-e.pageY<n.scrollSensitivity?r.scrollTop=o=r.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(r.scrollTop=o=r.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+r.offsetWidth-e.pageX<n.scrollSensitivity?r.scrollLeft=o=r.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(r.scrollLeft=o=r.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(a).scrollTop()<n.scrollSensitivity?o=t(a).scrollTop(t(a).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(a).scrollTop())<n.scrollSensitivity&&(o=t(a).scrollTop(t(a).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(a).scrollLeft()<n.scrollSensitivity?o=t(a).scrollLeft(t(a).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(a).scrollLeft())<n.scrollSensitivity&&(o=t(a).scrollLeft(t(a).scrollLeft()+n.scrollSpeed)))),!1!==o&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,r,a,l,h,u,c,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,v=m+s.helperProportions.width,_=i.offset.top,b=_+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=(l=s.snapElements[d].left-s.margins.left)+s.snapElements[d].width,c=(u=s.snapElements[d].top-s.margins.top)+s.snapElements[d].height,l-g>v||m>h+g||u-g>b||_>c+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(u-b),o=g>=Math.abs(c-_),r=g>=Math.abs(l-v),a=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||r||a,"outer"!==f.snapMode&&(n=g>=Math.abs(u-_),o=g>=Math.abs(c-b),r=g>=Math.abs(l-m),a=g>=Math.abs(h-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||r||a||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||r||a||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,r=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});r.length&&(n=parseInt(t(r[0]).css("zIndex"),10)||0,t(r).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+r.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0||(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles()}},_setupHandles:function(){var e,i,s,n,o,r=this.options,a=this;if(this.handles=r.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)n="ui-resizable-"+(e=t.trim(s[i])),o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:r.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;for(i in e=e||this.element,this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=o&&o[1]?o[1]:"se")}),r.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)((s=t(this.handles[i])[0])===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,r=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:r.width(),height:r.height()},this.originalSize=this._helper?{width:r.outerWidth(),height:r.outerHeight()}:{width:r.width(),height:r.height()},this.sizeDiff={width:r.outerWidth()-r.width(),height:r.outerHeight()-r.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,r=e.pageX-n.left||0,a=e.pageY-n.top||0,l=this._change[o];return this._updatePrevProperties(),!!l&&(i=l.apply(this,[e,r,a]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1)},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,r,a,l,h=this.options,u=this;return this._helper&&(n=(s=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,o=s?0:u.sizeDiff.width,r={width:u.helper.width()-o,height:u.helper.height()-n},a=parseFloat(u.element.css("left"))+(u.position.left-u.originalPosition.left)||null,l=parseFloat(u.element.css("top"))+(u.position.top-u.originalPosition.top)||null,h.animate||this.element.css(t.extend(r,{top:l,left:a})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!h.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,r=this.options;o={minWidth:this._isNumber(r.minWidth)?r.minWidth:0,maxWidth:this._isNumber(r.maxWidth)?r.maxWidth:1/0,minHeight:this._isNumber(r.minHeight)?r.minHeight:0,maxHeight:this._isNumber(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,r=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),r&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=a-e.minWidth),s&&h&&(t.left=a-e.maxWidth),r&&u&&(t.top=l-e.minHeight),n&&u&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),r=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,a=o?0:i.sizeDiff.width,l={width:i.size.width-a,height:i.size.height-r},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,u=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,u&&h?{top:u,left:h}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,r,a,l=t(this).resizable("instance"),h=l.options,u=l.element,c=h.containment,d=c instanceof t?c.get(0):/parent/.test(c)?u.parent().get(0):c;d&&(l.containerElement=t(d),/document/.test(c)||c===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=l._num(e.css("padding"+s))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=l.containerOffset,n=l.containerSize.height,o=l.containerSize.width,r=l._hasScroll(d,"left")?d.scrollWidth:o,a=l._hasScroll(d)?d.scrollHeight:n,l.parentData={element:d,left:s.left,top:s.top,width:r,height:a}))},resize:function(e){var i,s,n,o,r=t(this).resizable("instance"),a=r.options,l=r.containerOffset,h=r.position,u=r._aspectRatio||e.shiftKey,c={top:0,left:0},d=r.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(c=l),h.left<(r._helper?l.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-l.left:r.position.left-c.left),u&&(r.size.height=r.size.width/r.aspectRatio,p=!1),r.position.left=a.helper?l.left:0),h.top<(r._helper?l.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-l.top:r.position.top),u&&(r.size.width=r.size.height*r.aspectRatio,p=!1),r.position.top=r._helper?l.top:0),n=r.containerElement.get(0)===r.element.parent().get(0),o=/relative|absolute/.test(r.containerElement.css("position")),n&&o?(r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top):(r.offset.left=r.element.offset().left,r.offset.top=r.element.offset().top),i=Math.abs(r.sizeDiff.width+(r._helper?r.offset.left-c.left:r.offset.left-l.left)),s=Math.abs(r.sizeDiff.height+(r._helper?r.offset.top-c.top:r.offset.top-l.top)),i+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-i,u&&(r.size.height=r.size.width/r.aspectRatio,p=!1)),s+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-s,u&&(r.size.width=r.size.height*r.aspectRatio,p=!1)),p||(r.position.left=r.prevPosition.left,r.position.top=r.prevPosition.top,r.size.width=r.prevSize.width,r.size.height=r.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,r=t(e.helper),a=r.offset(),l=r.outerWidth()-e.sizeDiff.width,h=r.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:a.left-n.left-s.left,width:l,height:h}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:a.left-n.left-s.left,width:l,height:h})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance").options;t(e.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,r=s.originalPosition,a={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-r.top||0,left:s.position.left-r.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),!1!==t.uiBackCompat&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,r=i.originalPosition,a=i.axis,l="number"==typeof s.grid?[s.grid,s.grid]:s.grid,h=l[0]||1,u=l[1]||1,c=Math.round((n.width-o.width)/h)*h,d=Math.round((n.height-o.height)/u)*u,p=o.width+c,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,_=s.minHeight&&s.minHeight>f;s.grid=l,v&&(p+=h),_&&(f+=u),g&&(p-=h),m&&(f-=u),/^(se|s|e)$/.test(a)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(a)?(i.size.width=p,i.size.height=f,i.position.top=r.top-d):/^(sw)$/.test(a)?(i.size.width=p,i.size.height=f,i.position.left=r.left-c):((0>=f-u||0>=p-h)&&(e=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=r.top-d):(f=u-e.height,i.size.height=f,i.position.top=r.top+o.height-f),p-h>0?(i.size.width=p,i.position.left=r.left-c):(p=h-e.width,i.size.width=p,i.position.left=r.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(t=e.parent.children().eq(e.index)).length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&!1!==this._trigger("beforeClose",e)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===e||t.contains(this.uiDialog[0],e)||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),void this.close(e);if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?void this._removeClass(this.uiDialog,"ui-dialog-buttons"):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var r=o.offset.left-i.document.scrollLeft(),a=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" top"+(a>=0?"+":"")+a,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),r="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:r,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var r=i.uiDialog.offset(),a=r.left-i.document.scrollLeft(),l=r.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(l>=0?"+":"")+l,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&((s=o.is(":data(ui-draggable)"))&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&((n=o.is(":data(ui-resizable)"))&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||!1===i||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return!!t(e.target).closest(".ui-dialog").length||!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),!1!==t.uiBackCompat&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?void(e=arguments[0]):e||(e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight})},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return!(!s||(s.currentItem||s.element)[0]===this.element[0])&&(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&g(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),!n&&(!!this.accept.call(this.element[0],s.currentItem||s.element)&&(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element)))},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var g=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,r=(e.positionAbs||e.position.absolute).top+e.margins.top,a=o+e.helperProportions.width,l=r+e.helperProportions.height,h=i.offset.left,u=i.offset.top,c=h+i.proportions().width,d=u+i.proportions().height;switch(s){case"fit":return o>=h&&c>=a&&r>=u&&d>=l;case"intersect":return o+e.helperProportions.width/2>h&&c>a-e.helperProportions.width/2&&r+e.helperProportions.height/2>u&&d>l-e.helperProportions.height/2;case"pointer":return t(n.pageY,u,i.proportions().height)&&t(n.pageX,h,i.proportions().width);case"touch":return(r>=u&&d>=r||l>=u&&d>=l||u>r&&l>d)&&(o>=h&&c>=o||a>=h&&c>=a||h>o&&a>c);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],r=i?i.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;a.length>n;n++)if(a[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===r&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&g(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,r=g(e,this,this.options.tolerance,i),a=!r&&this.isover?"isout":r&&!this.isover?"isover":null;a&&(this.options.greedy&&(n=this.options.scope,(o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n})).length&&((s=t(o[0]).droppable("instance")).greedyChild="isover"===a)),s&&"isover"===a&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[a]=!0,this["isout"===a?"isover":"isout"]=!1,this["isover"===a?"_over":"_out"].call(this,i),s&&"isout"===a&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},!1!==t.uiBackCompat&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),void this._refreshValue())},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],r=this.opos[1],a=e.pageX,l=e.pageY;return o>a&&(i=a,a=o,o=i),r>l&&(i=l,l=r,r=i),this.helper.css({left:o,top:r,width:a-o,height:l-r}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),h=!1,u={};i&&i.element!==s.element[0]&&(u.left=i.left+s.elementPos.left,u.right=i.right+s.elementPos.left,u.top=i.top+s.elementPos.top,u.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?h=!(u.left>a||o>u.right||u.top>l||r>u.bottom):"fit"===n.tolerance&&(h=u.left>o&&a>u.right&&u.top>r&&l>u.bottom),h?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var r;o.optgroup!==n&&(r=t("<li>",{text:o.optgroup}),s._addClass(r,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),r.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),(s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return!1===t?void this.button.css("width",""):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),void this.button.outerWidth(t))},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)o.push("<span tabindex='0'></span>");this.handles=n.add(t(o.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(!0===e.range&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,r,a,l,h=this,u=this.options;return!u.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-h.values(e));(n>i||n===i&&(e===h._lastChangedValue||h.values(e)===u.min))&&(n=i,o=t(this),r=e)}),!1!==this._start(e,r)&&(this._mouseSliding=!0,this._handleIndex=r,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),a=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-a.left-o.width()/2,top:e.pageY-a.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,r,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),(s=i/e)>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n=this.value(),o=this.values();this._hasMultipleValues()&&(s=this.values(e?0:1),n=this.values(e),2===this.options.values.length&&!0===this.options.range&&(i=0===e?Math.min(s,i):Math.max(s,i)),o[e]=i),i!==n&&(!1!==this._trigger("slide",t,this._uiHash(e,i,o))&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),void this._change(null,0)):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),void this._change(null,e);if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&!0===this.options.range&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step;(t=Math.round((t-e)/i)*i+e)>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,r=this.options.range,a=this.options,l=this,h=!this._animateOff&&a.animate,u={};this._hasMultipleValues()?this.handles.each(function(s){i=(l.values(s)-l._valueMin())/(l._valueMax()-l._valueMin())*100,u["horizontal"===l.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[h?"animate":"css"](u,a.animate),!0===l.options.range&&("horizontal"===l.orientation?(0===s&&l.range.stop(1,1)[h?"animate":"css"]({left:i+"%"},a.animate),1===s&&l.range[h?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===s&&l.range.stop(1,1)[h?"animate":"css"]({bottom:i+"%"},a.animate),1===s&&l.range[h?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?(s-n)/(o-n)*100:0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[h?"animate":"css"](u,a.animate),"min"===r&&"horizontal"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({width:i+"%"},a.animate),"max"===r&&"horizontal"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({width:100-i+"%"},a.animate),"min"===r&&"vertical"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({height:i+"%"},a.animate),"max"===r&&"vertical"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({height:100-i+"%"},a.animate))},_handleEvents:{keydown:function(e){var i,s,n,o=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),!1===this._start(e,o)))return}switch(n=this.options.step,i=s=this._hasMultipleValues()?this.values(o):this.value(),e.keyCode){case t.ui.keyCode.HOME:s=this._valueMin();break;case t.ui.keyCode.END:s=this._valueMax();break;case t.ui.keyCode.PAGE_UP:s=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:s=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(i===this._valueMax())return;s=this._trimAlignValue(i+n);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i===this._valueMin())return;s=this._trimAlignValue(i-n)}this._slide(e,o,s)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),!!s&&(!(this.options.handle&&!i&&(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),!n))&&(this.currentItem=s,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(e,i,s){var n,o,r=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,r.cursorAt&&this._adjustOffsetFromHelper(r.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),r.containment&&this._setContainment(),r.cursor&&"auto"!==r.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",r.cursor),this.storedStylesheet=t("<style>*{ cursor: "+r.cursor+" !important; }</style>").appendTo(o)),r.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",r.opacity)),r.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",r.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,r=this.options,a=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<r.scrollSensitivity?this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop+r.scrollSpeed:e.pageY-this.overflowOffset.top<r.scrollSensitivity&&(this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop-r.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<r.scrollSensitivity?this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft+r.scrollSpeed:e.pageX-this.overflowOffset.left<r.scrollSensitivity&&(this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft-r.scrollSpeed)):(e.pageY-this.document.scrollTop()<r.scrollSensitivity?a=this.document.scrollTop(this.document.scrollTop()-r.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<r.scrollSensitivity&&(a=this.document.scrollTop(this.document.scrollTop()+r.scrollSpeed)),e.pageX-this.document.scrollLeft()<r.scrollSensitivity?a=this.document.scrollLeft(this.document.scrollLeft()-r.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<r.scrollSensitivity&&(a=this.document.scrollLeft(this.document.scrollLeft()+r.scrollSpeed))),!1!==a&&t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(n=(s=this.items[i]).item[0],(o=this._intersectsWithPointer(s))&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"!==this.options.type||!t.contains(this.element[0],n))){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,r={};o&&"x"!==o||(r.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(r.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(r,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,r=o+t.width,a=t.top,l=a+t.height,h=this.offset.click.top,u=this.offset.click.left,c="x"===this.options.axis||s+h>a&&l>s+h,d="y"===this.options.axis||e+u>o&&r>e+u,p=c&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&r>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>a&&l>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width);return!!(s&&n)&&(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){a.push(this)}var s,n,o,r,a=[],l=[],h=this._connectWith();if(h&&e)for(s=h.length-1;s>=0;s--)for(n=(o=t(h[s],this.document[0])).length-1;n>=0;n--)(r=t.data(o[n],this.widgetFullName))&&r!==this&&!r.options.disabled&&l.push([t.isFunction(r.options.items)?r.options.items.call(r.element):t(r.options.items,r.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),r]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=l.length-1;s>=0;s--)l[s][0].each(i);return t(a)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,r,a,l,h,u=this.items,c=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(s=(n=t(d[i],this.document[0])).length-1;s>=0;s--)(o=t.data(n[s],this.widgetFullName))&&o!==this&&!o.options.disabled&&(c.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=c.length-1;i>=0;i--)for(r=c[i][1],s=0,h=(a=c[i][0]).length;h>s;s++)(l=t(a[s])).data(this.widgetName+"-item",r),u.push({item:l,instance:r,width:0,height:0,left:0,top:0})},refreshPositions:function(e){var i,s,n,o;for(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),i=this.items.length-1;i>=0;i--)(s=this.items[i]).instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){var i,s=(e=e||this).options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,r,a,l,h,u,c,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,r=(u=d.floating||this._isFloating(this.currentItem))?"left":"top",a=u?"width":"height",c=u?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(l=this.items[s].item.offset()[r],h=!1,e[c]-l>this.items[s][a]/2&&(h=!0),n>Math.abs(e[c]-l)&&(n=Math.abs(e[c]-l),o=this.items[s],this.direction=h?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return void(this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1));o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,r=e.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(r=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(r=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((r-this.originalPageY)/n.grid[1])*n.grid[1],r=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:r-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:a.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:a.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===t.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",t)))},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){this.element[0]===t.ui.safeActiveElement(this.document[0])||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),!1!==this._start(e)&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?!1!==this._start(e)&&void this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return!(!this.spinning&&!1===this._trigger("start",t))&&(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&!1===this._trigger("spin",e,{value:i})||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return i=t-(e=null!==s.min?s.min:0),t=e+(i=Math.round(i/s.step)*s.step),t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,void this.element.val(this._format(i))):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),void this._super(t,e))},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:o(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null!==t&&t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(null!==(i=this._parse(t))&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:o(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:o(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:o(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:o(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?void o(this._value).call(this,t):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),!1!==t.uiBackCompat&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(t){}try{s=decodeURIComponent(s)}catch(t){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=!1!==this.options.active&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=!!this.tabs.length&&0)),!1!==e&&(-1===(e=this.tabs.index(this.tabs.eq(e)))&&(e=!i&&0)),!i&&!1===e&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),void this._activate(s);case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),void this._activate(s!==this.options.active&&s);default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){for(var s=this.tabs.length-1;-1!==t.inArray((e>s&&(e=0),0>e&&(e=s),e),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?void this._activate(e):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||!1!==this.options.active||this._activate(0)),"event"===t&&this._setupEvents(e),void("heightStyle"===t&&this._setupHeightStyle(e)))},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),!1!==e.active&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,r,a=t(s).uniqueId().attr("id"),l=t(s).closest("li"),h=l.attr("aria-controls");e._isLocal(s)?(r=(n=s.hash).substring(1),o=e.element.find(e._sanitizeSelector(n))):(n="#"+(r=l.attr("aria-controls")||t({}).uniqueId()[0].id),(o=e.element.find(n)).length||(o=e._createPanel(r)).insertAfter(e.panels[i-1]||e.tablist),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),h&&l.data("ui-tabs-aria-controls",h),l.attr({"aria-controls":r,"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),!0===e||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===e)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget).closest("li"),o=n[0]===s[0],r=o&&i.collapsible,a=r?t():this._getPanelForTab(n),l=s.length?this._getPanelForTab(s):t(),h={oldTab:s,oldPanel:l,newTab:r?t():n,newPanel:a};e.preventDefault(),n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||!1===this._trigger("beforeActivate",e,h)||(i.active=!r&&this.tabs.index(n),this.active=o?t():n,this.xhr&&this.xhr.abort(),l.length||a.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(n),e),this._toggle(e,h))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),r.length&&o.options.show?o._show(r,o.options.show,s):(r.show(),s())}var o=this,r=i.newPanel,a=i.oldPanel;this.running=!0,a.length&&this.options.hide?this._hide(a,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),a.hide(),n()),a.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),r.length&&a.length?i.oldTab.attr("tabIndex",-1):r.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),r.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return!1===e?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;!1!==i&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(!0!==i){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),r=this._getPanelForTab(n),a={tab:n,panel:r},l=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),r.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,a)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),r.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){r.html(t),s._trigger("load",i,a),l(n,e)},1)}).fail(function(t,e){setTimeout(function(){l(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),!1!==t.uiBackCompat&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),(s=t.trim(s.join(" ")))?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&((e=t.Event("blur")).target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):void((i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}))&&this._open(e,t,i))},_open:function(e,i,s){function n(t){h.of=t,r.is(":hidden")||r.position(h)}var o,r,a,l,h=t.extend({},this.options.position);if(s){if(o=this._find(i))return void o.tooltip.find(".ui-tooltip-content").html(s);i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),r=o.tooltip,this._addDescribedBy(i,r.attr("id")),r.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),(l=t("<div>").html(r.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),l.removeAttr("id").find("[id]").removeAttr("id"),l.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):r.position(t.extend({of:i},this.options.position)),r.hide(),this._show(r,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(a=this.delayedShow=setInterval(function(){r.is(":visible")&&(n(h.of),clearInterval(a))},t.fx.interval)),this._trigger("open",e,{tooltip:r})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,void(o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)))):void n.removeData("ui-tooltip-open")},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!1!==t.uiBackCompat&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});;
/*! jQuery Migrate v3.0.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
void 0===jQuery.migrateMute&&(jQuery.migrateMute=!0),function(e){"function"==typeof define&&define.amd?define(["jquery"],window,e):"object"==typeof module&&module.exports?module.exports=e(require("jquery"),window):e(jQuery,window)}(function(e,t){"use strict";function r(r){var n=t.console;a[r]||(a[r]=!0,e.migrateWarnings.push(r),n&&n.warn&&!e.migrateMute&&(n.warn("JQMIGRATE: "+r),e.migrateTrace&&n.trace&&n.trace()))}function n(e,t,n,o){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return r(o),n},set:function(e){r(o),n=e}})}function o(e,t,n,o){e[t]=function(){return r(o),n.apply(this,arguments)}}e.migrateVersion="3.0.1",t.console&&t.console.log&&(e&&!/^[12]\./.test(e.fn.jquery)||t.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),e.migrateWarnings&&t.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),t.console.log("JQMIGRATE: Migrate is installed"+(e.migrateMute?"":" with logging active")+", version "+e.migrateVersion));var a={};e.migrateWarnings=[],void 0===e.migrateTrace&&(e.migrateTrace=!0),e.migrateReset=function(){a={},e.migrateWarnings.length=0},"BackCompat"===t.document.compatMode&&r("jQuery is not compatible with Quirks Mode");var i,s=e.fn.init,u=e.isNumeric,c=e.find,l=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,d=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;for(i in e.fn.init=function(e){var t=Array.prototype.slice.call(arguments);return"string"==typeof e&&"#"===e&&(r("jQuery( '#' ) is not a valid selector"),t[0]=[]),s.apply(this,t)},e.fn.init.prototype=e.fn,e.find=function(e){var n=Array.prototype.slice.call(arguments);if("string"==typeof e&&l.test(e))try{t.document.querySelector(e)}catch(o){e=e.replace(d,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{t.document.querySelector(e),r("Attribute selector with '#' must be quoted: "+n[0]),n[0]=e}catch(e){r("Attribute selector with '#' was not fixed: "+n[0])}}return c.apply(this,n)},c)Object.prototype.hasOwnProperty.call(c,i)&&(e.find[i]=c[i]);e.fn.size=function(){return r("jQuery.fn.size() is deprecated and removed; use the .length property"),this.length},e.parseJSON=function(){return r("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},e.isNumeric=function(t){var n=u(t),o=function(t){var r=t&&t.toString();return!e.isArray(t)&&r-parseFloat(r)+1>=0}(t);return n!==o&&r("jQuery.isNumeric() should not be called on constructed objects"),o},o(e,"holdReady",e.holdReady,"jQuery.holdReady is deprecated"),o(e,"unique",e.uniqueSort,"jQuery.unique is deprecated; use jQuery.uniqueSort"),n(e.expr,"filters",e.expr.pseudos,"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),n(e.expr,":",e.expr.pseudos,"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos");var p=e.ajax;e.ajax=function(){var e=p.apply(this,arguments);return e.promise&&(o(e,"success",e.done,"jQXHR.success is deprecated and removed"),o(e,"error",e.fail,"jQXHR.error is deprecated and removed"),o(e,"complete",e.always,"jQXHR.complete is deprecated and removed")),e};var f=e.fn.removeAttr,y=e.fn.toggleClass,m=/\S+/g;e.fn.removeAttr=function(t){var n=this;return e.each(t.match(m),function(t,o){e.expr.match.bool.test(o)&&(r("jQuery.fn.removeAttr no longer sets boolean properties: "+o),n.prop(o,!1))}),f.apply(this,arguments)},e.fn.toggleClass=function(t){return void 0!==t&&"boolean"!=typeof t?y.apply(this,arguments):(r("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var r=this.getAttribute&&this.getAttribute("class")||"";r&&e.data(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":e.data(this,"__className__")||"")}))};var h=!1;e.swap&&e.each(["height","width","reliableMarginRight"],function(t,r){var n=e.cssHooks[r]&&e.cssHooks[r].get;n&&(e.cssHooks[r].get=function(){var e;return h=!0,e=n.apply(this,arguments),h=!1,e})}),e.swap=function(e,t,n,o){var a,i,s={};for(i in h||r("jQuery.swap() is undocumented and deprecated"),t)s[i]=e.style[i],e.style[i]=t[i];for(i in a=n.apply(e,o||[]),t)e.style[i]=s[i];return a};var g=e.data;e.data=function(t,n,o){var a;if(n&&"object"==typeof n&&2===arguments.length){a=e.hasData(t)&&g.call(this,t);var i={};for(var s in n)s!==e.camelCase(s)?(r("jQuery.data() always sets/gets camelCased names: "+s),a[s]=n[s]):i[s]=n[s];return g.call(this,t,i),n}return n&&"string"==typeof n&&n!==e.camelCase(n)&&(a=e.hasData(t)&&g.call(this,t))&&n in a?(r("jQuery.data() always sets/gets camelCased names: "+n),arguments.length>2&&(a[n]=o),a[n]):g.apply(this,arguments)};var v=e.Tween.prototype.run,j=function(e){return e};e.Tween.prototype.run=function(){e.easing[this.easing].length>1&&(r("'jQuery.easing."+this.easing.toString()+"' should use only one argument"),e.easing[this.easing]=j),v.apply(this,arguments)},e.fx.interval=e.fx.interval||13,t.requestAnimationFrame&&n(e.fx,"interval",e.fx.interval,"jQuery.fx.interval is deprecated");var Q=e.fn.load,b=e.event.add,w=e.event.fix;e.event.props=[],e.event.fixHooks={},n(e.event.props,"concat",e.event.props.concat,"jQuery.event.props.concat() is deprecated and removed"),e.event.fix=function(t){var n,o=t.type,a=this.fixHooks[o],i=e.event.props;if(i.length)for(r("jQuery.event.props are deprecated and removed: "+i.join());i.length;)e.event.addProp(i.pop());if(a&&!a._migrated_&&(a._migrated_=!0,r("jQuery.event.fixHooks are deprecated and removed: "+o),(i=a.props)&&i.length))for(;i.length;)e.event.addProp(i.pop());return n=w.call(this,t),a&&a.filter?a.filter(n,t):n},e.event.add=function(e,n){return e===t&&"load"===n&&"complete"===t.document.readyState&&r("jQuery(window).on('load'...) called after load event occurred"),b.apply(this,arguments)},e.each(["load","unload","error"],function(t,n){e.fn[n]=function(){var e=Array.prototype.slice.call(arguments,0);return"load"===n&&"string"==typeof e[0]?Q.apply(this,e):(r("jQuery.fn."+n+"() is deprecated"),e.splice(0,0,n),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))}}),e.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(t,n){e.fn[n]=function(e,t){return r("jQuery.fn."+n+"() event shorthand is deprecated"),arguments.length>0?this.on(n,null,e,t):this.trigger(n)}}),e(function(){e(t.document).triggerHandler("ready")}),e.event.special.ready={setup:function(){this===t.document&&r("'ready' event is deprecated")}},e.fn.extend({bind:function(e,t,n){return r("jQuery.fn.bind() is deprecated"),this.on(e,null,t,n)},unbind:function(e,t){return r("jQuery.fn.unbind() is deprecated"),this.off(e,null,t)},delegate:function(e,t,n,o){return r("jQuery.fn.delegate() is deprecated"),this.on(t,e,n,o)},undelegate:function(e,t,n){return r("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return r("jQuery.fn.hover() is deprecated"),this.on("mouseenter",e).on("mouseleave",t||e)}});var x=e.fn.offset;e.fn.offset=function(){var n,o=this[0],a={top:0,left:0};return o&&o.nodeType?(n=(o.ownerDocument||t.document).documentElement,e.contains(n,o)?x.apply(this,arguments):(r("jQuery.fn.offset() requires an element connected to a document"),a)):(r("jQuery.fn.offset() requires a valid DOM element"),a)};var k=e.param;e.param=function(t,n){var o=e.ajaxSettings&&e.ajaxSettings.traditional;return void 0===n&&o&&(r("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),n=o),k.call(this,t,n)};var A=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),A.apply(this,arguments)};var S=e.Deferred,q=[["resolve","done",e.Callbacks("once memory"),e.Callbacks("once memory"),"resolved"],["reject","fail",e.Callbacks("once memory"),e.Callbacks("once memory"),"rejected"],["notify","progress",e.Callbacks("memory"),e.Callbacks("memory")]];return e.Deferred=function(t){var n=S(),o=n.promise();return n.pipe=o.pipe=function(){var t=arguments;return r("deferred.pipe() is deprecated"),e.Deferred(function(r){e.each(q,function(a,i){var s=e.isFunction(t[a])&&t[a];n[i[1]](function(){var t=s&&s.apply(this,arguments);t&&e.isFunction(t.promise)?t.promise().done(r.resolve).fail(r.reject).progress(r.notify):r[i[0]+"With"](this===o?r.promise():this,s?[t]:arguments)})}),t=null}).promise()},t&&t.call(n,n),n},e.Deferred.exceptionHook=S.exceptionHook,e});;
/*
 * ScrollToFixed
 * https://github.com/bigspotteddog/ScrollToFixed
 *
 * Copyright (c) 2011 Joseph Cava-Lynch
 * MIT license
 */
(function ($) {
    $.isScrollToFixed = function (el) {
        return !!$(el).data('ScrollToFixed');
    };

    $.ScrollToFixed = function (el, options) {
        // To avoid scope issues, use 'base' instead of 'this' to reference this
        // class from internal events and functions.
        var base = this;

        // Access to jQuery and DOM versions of element.
        base.$el = $(el);
        base.el = el;

        // Add a reverse reference to the DOM object.
        base.$el.data('ScrollToFixed', base);

        // A flag so we know if the scroll has been reset.
        var isReset = false;

        // The element that was given to us to fix if scrolled above the top of
        // the page.
        var target = base.$el;

        var position;
        var originalPosition;
        var originalFloat;
        var originalOffsetTop;
        var originalZIndex;

        // The offset top of the element when resetScroll was called. This is
        // used to determine if we have scrolled past the top of the element.
        var offsetTop = 0;

        // The offset left of the element when resetScroll was called. This is
        // used to move the element left or right relative to the horizontal
        // scroll.
        var offsetLeft = 0;
        var originalOffsetLeft = -1;

        // This last offset used to move the element horizontally. This is used
        // to determine if we need to move the element because we would not want
        // to do that for no reason.
        var lastOffsetLeft = -1;

        // This is the element used to fill the void left by the target element
        // when it goes fixed; otherwise, everything below it moves up the page.
        var spacer = null;

        var spacerClass;

        var className;

        // Capture the original offsets for the target element. This needs to be
        // called whenever the page size changes or when the page is first
        // scrolled. For some reason, calling this before the page is first
        // scrolled causes the element to become fixed too late.
        function resetScroll() {
            // Set the element to it original positioning.
            target.trigger('preUnfixed.ScrollToFixed');
            setUnfixed();
            target.trigger('unfixed.ScrollToFixed');

            // Reset the last offset used to determine if the page has moved
            // horizontally.
            lastOffsetLeft = -1;

            // Capture the offset top of the target element.
            offsetTop = target.offset().top;

            // Capture the offset left of the target element.
            offsetLeft = target.offset().left;

            // If the offsets option is on, alter the left offset.
            if (base.options.offsets) {
                offsetLeft += (target.offset().left - target.position().left);
            }

            if (originalOffsetLeft == -1) {
                originalOffsetLeft = offsetLeft;
            }

            position = target.css('position');

            // Set that this has been called at least once.
            isReset = true;

            if (base.options.bottom != -1) {
                target.trigger('preFixed.ScrollToFixed');
                setFixed();
                target.trigger('fixed.ScrollToFixed');
            }
        }

        function getLimit() {
            var limit = base.options.limit;
            if (!limit) return 0;

            if (typeof (limit) === 'function') {
                return limit.apply(target);
            }
            return limit;
        }

        // Returns whether the target element is fixed or not.
        function isFixed() {
            return position === 'fixed';
        }

        // Returns whether the target element is absolute or not.
        function isAbsolute() {
            return position === 'absolute';
        }

        function isUnfixed() {
            return !(isFixed() || isAbsolute());
        }

        // Sets the target element to fixed. Also, sets the spacer to fill the
        // void left by the target element.
        function setFixed() {
            // Only fix the target element and the spacer if we need to.
            if (!isFixed()) {
                //get REAL dimensions (decimal fix)
                //Ref. http://stackoverflow.com/questions/3603065/how-to-make-jquery-to-not-round-value-returned-by-width
                var dimensions = target[0].getBoundingClientRect();

                // Set the spacer to fill the height and width of the target
                // element, then display it.
                spacer.css({
                    'display': target.css('display'),
                    'width': dimensions.width,
                    'height': dimensions.height,
                    'float': target.css('float')
                });

                // Set the target element to fixed and set its width so it does
                // not fill the rest of the page horizontally. Also, set its top
                // to the margin top specified in the options.

                cssOptions = {
                    'z-index': base.options.zIndex,
                    'position': 'fixed',
                    'top': base.options.bottom == -1 ? getMarginTop() : '',
                    'bottom': base.options.bottom == -1 ? '' : base.options.bottom,
                    'margin-left': '0px'
                }
                if (!base.options.dontSetWidth) { cssOptions['width'] = target.css('width'); };

                target.css(cssOptions);

                target.addClass(base.options.baseClassName);

                if (base.options.className) {
                    target.addClass(base.options.className);
                }

                position = 'fixed';
            }
        }

        function setAbsolute() {

            var top = getLimit();
            var left = offsetLeft;

            if (base.options.removeOffsets) {
                left = '';
                top = top - offsetTop;
            }

            cssOptions = {
                'position': 'absolute',
                'top': top,
                'left': left,
                'margin-left': '0px',
                'bottom': ''
            }
            if (!base.options.dontSetWidth) { cssOptions['width'] = target.css('width'); };

            target.css(cssOptions);

            position = 'absolute';
        }

        // Sets the target element back to unfixed. Also, hides the spacer.
        function setUnfixed() {
            // Only unfix the target element and the spacer if we need to.
            if (!isUnfixed()) {
                lastOffsetLeft = -1;

                // Hide the spacer now that the target element will fill the
                // space.
                spacer.css('display', 'none');

                // Remove the style attributes that were added to the target.
                // This will reverse the target back to the its original style.
                target.css({
                    'z-index': originalZIndex,
                    'width': '',
                    'position': originalPosition,
                    'left': '',
                    'top': originalOffsetTop,
                    'margin-left': ''
                });

                target.removeClass('scroll-to-fixed-fixed');

                if (base.options.className) {
                    target.removeClass(base.options.className);
                }

                position = null;
            }
        }

        // Moves the target element left or right relative to the horizontal
        // scroll position.
        function setLeft(x) {
            // Only if the scroll is not what it was last time we did this.
            if (x != lastOffsetLeft) {
                // Move the target element horizontally relative to its original
                // horizontal position.
                target.css('left', offsetLeft - x);

                // Hold the last horizontal position set.
                lastOffsetLeft = x;
            }
        }

        function getMarginTop() {
            var marginTop = base.options.marginTop;
            if (!marginTop) return 0;

            if (typeof (marginTop) === 'function') {
                return marginTop.apply(target);
            }
            return marginTop;
        }

        // Checks to see if we need to do something based on new scroll position
        // of the page.
        function checkScroll() {
            if (!$.isScrollToFixed(target) || target.is(':hidden')) return;
            var wasReset = isReset;
            var wasUnfixed = isUnfixed();

            // If resetScroll has not yet been called, call it. This only
            // happens once.
            if (!isReset) {
                resetScroll();
            } else if (isUnfixed()) {
                // if the offset has changed since the last scroll,
                // we need to get it again.

                // Capture the offset top of the target element.
                offsetTop = target.offset().top;

                // Capture the offset left of the target element.
                offsetLeft = target.offset().left;
            }

            // Grab the current horizontal scroll position.
            var x = $(window).scrollLeft();

            // Grab the current vertical scroll position.
            var y = $(window).scrollTop();

            // Get the limit, if there is one.
            var limit = getLimit();

            // If the vertical scroll position, plus the optional margin, would
            // put the target element at the specified limit, set the target
            // element to absolute.
            if (base.options.minWidth && $(window).width() < base.options.minWidth) {
                if (!isUnfixed() || !wasReset) {
                    postPosition();
                    target.trigger('preUnfixed.ScrollToFixed');
                    setUnfixed();
                    target.trigger('unfixed.ScrollToFixed');
                }
            } else if (base.options.maxWidth && $(window).width() > base.options.maxWidth) {
                if (!isUnfixed() || !wasReset) {
                    postPosition();
                    target.trigger('preUnfixed.ScrollToFixed');
                    setUnfixed();
                    target.trigger('unfixed.ScrollToFixed');
                }
            } else if (base.options.bottom == -1) {
                // If the vertical scroll position, plus the optional margin, would
                // put the target element at the specified limit, set the target
                // element to absolute.
                if (limit > 0 && y >= limit - getMarginTop()) {
                    if (!wasUnfixed && (!isAbsolute() || !wasReset)) {
                        postPosition();
                        target.trigger('preAbsolute.ScrollToFixed');
                        setAbsolute();
                        target.trigger('unfixed.ScrollToFixed');
                    }
                    // If the vertical scroll position, plus the optional margin, would
                    // put the target element above the top of the page, set the target
                    // element to fixed.
                } else if (y >= offsetTop - getMarginTop()) {
                    if (!isFixed() || !wasReset) {
                        postPosition();
                        target.trigger('preFixed.ScrollToFixed');

                        // Set the target element to fixed.
                        setFixed();

                        // Reset the last offset left because we just went fixed.
                        lastOffsetLeft = -1;

                        target.trigger('fixed.ScrollToFixed');
                    }
                    // If the page has been scrolled horizontally as well, move the
                    // target element accordingly.
                    setLeft(x);
                } else {
                    // Set the target element to unfixed, placing it where it was
                    // before.
                    if (!isUnfixed() || !wasReset) {
                        postPosition();
                        target.trigger('preUnfixed.ScrollToFixed');
                        setUnfixed();
                        target.trigger('unfixed.ScrollToFixed');
                    }
                }
            } else {
                if (limit > 0) {
                    if (y + $(window).height() - target.outerHeight(true) >= limit - (getMarginTop() || -getBottom())) {
                        if (isFixed()) {
                            postPosition();
                            target.trigger('preUnfixed.ScrollToFixed');

                            if (originalPosition === 'absolute') {
                                setAbsolute();
                            } else {
                                setUnfixed();
                            }

                            target.trigger('unfixed.ScrollToFixed');
                        }
                    } else {
                        if (!isFixed()) {
                            postPosition();
                            target.trigger('preFixed.ScrollToFixed');
                            setFixed();
                        }
                        setLeft(x);
                        target.trigger('fixed.ScrollToFixed');
                    }
                } else {
                    setLeft(x);
                }
            }
        }

        function getBottom() {
            if (!base.options.bottom) return 0;
            return base.options.bottom;
        }

        function postPosition() {
            var position = target.css('position');

            if (position == 'absolute') {
                target.trigger('postAbsolute.ScrollToFixed');
            } else if (position == 'fixed') {
                target.trigger('postFixed.ScrollToFixed');
            } else {
                target.trigger('postUnfixed.ScrollToFixed');
            }
        }

        var windowResize = function (event) {
            // Check if the element is visible before updating it's position, which
            // improves behavior with responsive designs where this element is hidden.
            if (target.is(':visible')) {
                isReset = false;
                checkScroll();
            } else {
                // Ensure the spacer is hidden
                setUnfixed();
            }
        }

        var windowScroll = function (event) {
            (!!window.requestAnimationFrame) ? requestAnimationFrame(checkScroll) : checkScroll();
        }

        // From: http://kangax.github.com/cft/#IS_POSITION_FIXED_SUPPORTED
        var isPositionFixedSupported = function () {
            var container = document.body;

            if (document.createElement && container && container.appendChild && container.removeChild) {
                var el = document.createElement('div');

                if (!el.getBoundingClientRect) return null;

                el.innerHTML = 'x';
                el.style.cssText = 'position:fixed;top:100px;';
                container.appendChild(el);

                var originalHeight = container.style.height,
                    originalScrollTop = container.scrollTop;

                container.style.height = '3000px';
                container.scrollTop = 500;

                var elementTop = el.getBoundingClientRect().top;
                container.style.height = originalHeight;

                var isSupported = (elementTop === 100);
                container.removeChild(el);
                container.scrollTop = originalScrollTop;

                return isSupported;
            }

            return null;
        }

        var preventDefault = function (e) {
            e = e || window.event;
            if (e.preventDefault) {
                e.preventDefault();
            }
            e.returnValue = false;
        }

        // Initializes this plugin. Captures the options passed in, turns this
        // off for devices that do not support fixed position, adds the spacer,
        // and binds to the window scroll and resize events.
        base.init = function () {
            // Capture the options for this plugin.
            base.options = $.extend({}, $.ScrollToFixed.defaultOptions, options);

            originalZIndex = target.css('z-index')

            // Turn off this functionality for devices that do not support it.
            // if (!(base.options && base.options.dontCheckForPositionFixedSupport)) {
            //     var fixedSupported = isPositionFixedSupported();
            //     if (!fixedSupported) return;
            // }

            // Put the target element on top of everything that could be below
            // it. This reduces flicker when the target element is transitioning
            // to fixed.
            base.$el.css('z-index', base.options.zIndex);

            // Create a spacer element to fill the void left by the target
            // element when it goes fixed.
            spacer = $('<div />');

            position = target.css('position');
            originalPosition = target.css('position');
            originalFloat = target.css('float');
            originalOffsetTop = target.css('top');

            // Place the spacer right after the target element.
            if (isUnfixed()) base.$el.after(spacer);

            // Reset the target element offsets when the window is resized, then
            // check to see if we need to fix or unfix the target element.
            $(window).bind('resize.ScrollToFixed', windowResize);

            // When the window scrolls, check to see if we need to fix or unfix
            // the target element.
            $(window).bind('scroll.ScrollToFixed', windowScroll);

            // For touch devices, call checkScroll directlly rather than
            // rAF wrapped windowScroll to animate the element
            if ('ontouchmove' in window) {
                $(window).bind('touchmove.ScrollToFixed', checkScroll);
            }

            if (base.options.preFixed) {
                target.bind('preFixed.ScrollToFixed', base.options.preFixed);
            }
            if (base.options.postFixed) {
                target.bind('postFixed.ScrollToFixed', base.options.postFixed);
            }
            if (base.options.preUnfixed) {
                target.bind('preUnfixed.ScrollToFixed', base.options.preUnfixed);
            }
            if (base.options.postUnfixed) {
                target.bind('postUnfixed.ScrollToFixed', base.options.postUnfixed);
            }
            if (base.options.preAbsolute) {
                target.bind('preAbsolute.ScrollToFixed', base.options.preAbsolute);
            }
            if (base.options.postAbsolute) {
                target.bind('postAbsolute.ScrollToFixed', base.options.postAbsolute);
            }
            if (base.options.fixed) {
                target.bind('fixed.ScrollToFixed', base.options.fixed);
            }
            if (base.options.unfixed) {
                target.bind('unfixed.ScrollToFixed', base.options.unfixed);
            }

            if (base.options.spacerClass) {
                spacer.addClass(base.options.spacerClass);
            }

            target.bind('resize.ScrollToFixed', function () {
                spacer.height(target.height());
            });

            target.bind('scroll.ScrollToFixed', function () {
                target.trigger('preUnfixed.ScrollToFixed');
                setUnfixed();
                target.trigger('unfixed.ScrollToFixed');
                checkScroll();
            });

            target.bind('detach.ScrollToFixed', function (ev) {
                preventDefault(ev);

                target.trigger('preUnfixed.ScrollToFixed');
                setUnfixed();
                target.trigger('unfixed.ScrollToFixed');

                $(window).unbind('resize.ScrollToFixed', windowResize);
                $(window).unbind('scroll.ScrollToFixed', windowScroll);

                target.unbind('.ScrollToFixed');

                //remove spacer from dom
                spacer.remove();

                base.$el.removeData('ScrollToFixed');
            });

            // Reset everything.
            windowResize();
        };

        // Initialize the plugin.
        base.init();
    };

    // Sets the option defaults.
    $.ScrollToFixed.defaultOptions = {
        marginTop: 0,
        limit: 0,
        bottom: -1,
        zIndex: 1000,
        baseClassName: 'scroll-to-fixed-fixed'
    };

    // Returns enhanced elements that will fix to the top of the page when the
    // page is scrolled.
    $.fn.scrollToFixed = function (options) {
        return this.each(function () {
            (new $.ScrollToFixed(this, options));
        });
    };
})(jQuery);
;
/* NUGET: BEGIN LICENSE TEXT
 *
 * Microsoft grants you the right to use these script files for the sole
 * purpose of either: (i) interacting through your browser with the Microsoft
 * website or online service, subject to the applicable licensing or use
 * terms; or (ii) using the files as included with a Microsoft product subject
 * to that product's license terms. Microsoft reserves all other rights to the
 * files not expressly granted by Microsoft, whether by implication, estoppel
 * or otherwise. Insofar as a script file is dual licensed under GPL,
 * Microsoft neither took the code under GPL nor distributes it thereunder but
 * under the terms set out in this paragraph. All notices and licenses
 * below are for informational purposes only.
 *
 * NUGET: END LICENSE TEXT */
/*!
** Unobtrusive Ajax support library for jQuery
** Copyright (C) Microsoft Corporation. All rights reserved.
*/

/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global window: false, jQuery: false */

(function ($) {
    var data_click = "unobtrusiveAjaxClick",
        data_target = "unobtrusiveAjaxClickTarget",
        data_validation = "unobtrusiveValidation";

    function getFunction(code, argNames) {
        var fn = window, parts = (code || "").split(".");
        while (fn && parts.length) {
            fn = fn[parts.shift()];
        }
        if (typeof (fn) === "function") {
            return fn;
        }
        argNames.push(code);
        return Function.constructor.apply(null, argNames);
    }

    function isMethodProxySafe(method) {
        return method === "GET" || method === "POST";
    }

    function asyncOnBeforeSend(xhr, method) {
        if (!isMethodProxySafe(method)) {
            xhr.setRequestHeader("X-HTTP-Method-Override", method);
        }
    }

    function asyncOnSuccess(element, data, contentType) {
        var mode;

        if (contentType.indexOf("application/x-javascript") !== -1) {  // jQuery already executes JavaScript for us
            return;
        }

        mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
        $(element.getAttribute("data-ajax-update")).each(function (i, update) {
            var top;

            switch (mode) {
            case "BEFORE":
                top = update.firstChild;
                $("<div />").html(data).contents().each(function () {
                    update.insertBefore(this, top);
                });
                break;
            case "AFTER":
                $("<div />").html(data).contents().each(function () {
                    update.appendChild(this);
                });
                break;
            case "REPLACE-WITH":
                $(update).replaceWith(data);
                break;
            default:
                $(update).html(data);
                break;
            }
        });
    }

    function asyncRequest(element, options) {
        var confirm, loading, method, duration;

        confirm = element.getAttribute("data-ajax-confirm");
        if (confirm && !window.confirm(confirm)) {
            return;
        }

        loading = $(element.getAttribute("data-ajax-loading"));
        duration = parseInt(element.getAttribute("data-ajax-loading-duration"), 10) || 0;

        $.extend(options, {
            type: element.getAttribute("data-ajax-method") || undefined,
            url: element.getAttribute("data-ajax-url") || undefined,
            cache: !!element.getAttribute("data-ajax-cache"),
            beforeSend: function (xhr) {
                var result;
                asyncOnBeforeSend(xhr, method);
                result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(element, arguments);
                if (result !== false) {
                    loading.show(duration);
                }
                return result;
            },
            complete: function () {
                loading.hide(duration);
                getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(element, arguments);
            },
            success: function (data, status, xhr) {
                asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html");
                getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(element, arguments);
            },
            error: function () {
                getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]).apply(element, arguments);
            }
        });

        options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" });

        method = options.type.toUpperCase();
        if (!isMethodProxySafe(method)) {
            options.type = "POST";
            options.data.push({ name: "X-HTTP-Method-Override", value: method });
        }

        $.ajax(options);
    }

    function validate(form) {
        var validationInfo = $(form).data(data_validation);
        return !validationInfo || !validationInfo.validate || validationInfo.validate();
    }

    $(document).on("click", "a[data-ajax=true]", function (evt) {
        evt.preventDefault();
        asyncRequest(this, {
            url: this.href,
            type: "GET",
            data: []
        });
    });

    $(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
        var name = evt.target.name,
            target = $(evt.target),
            form = $(target.parents("form")[0]),
            offset = target.offset();

        form.data(data_click, [
            { name: name + ".x", value: Math.round(evt.pageX - offset.left) },
            { name: name + ".y", value: Math.round(evt.pageY - offset.top) }
        ]);

        setTimeout(function () {
            form.removeData(data_click);
        }, 0);
    });

    $(document).on("click", "form[data-ajax=true] :submit", function (evt) {
        var name = evt.currentTarget.name,
            target = $(evt.target),
            form = $(target.parents("form")[0]);

        form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);
        form.data(data_target, target);

        setTimeout(function () {
            form.removeData(data_click);
            form.removeData(data_target);
        }, 0);
    });

    $(document).on("submit", "form[data-ajax=true]", function (evt) {
        var clickInfo = $(this).data(data_click) || [],
            clickTarget = $(this).data(data_target),
            isCancel = clickTarget && clickTarget.hasClass("cancel");
        evt.preventDefault();
        if (!isCancel && !validate(this)) {
            return;
        }
        asyncRequest(this, {
            url: this.action,
            type: this.method || "GET",
            data: clickInfo.concat($(this).serializeArray())
        });
    });
}(jQuery));;
/* NUGET: BEGIN LICENSE TEXT
 *
 * Microsoft grants you the right to use these script files for the sole
 * purpose of either: (i) interacting through your browser with the Microsoft
 * website or online service, subject to the applicable licensing or use
 * terms; or (ii) using the files as included with a Microsoft product subject
 * to that product's license terms. Microsoft reserves all other rights to the
 * files not expressly granted by Microsoft, whether by implication, estoppel
 * or otherwise. Insofar as a script file is dual licensed under GPL,
 * Microsoft neither took the code under GPL nor distributes it thereunder but
 * under the terms set out in this paragraph. All notices and licenses
 * below are for informational purposes only.
 *
 * NUGET: END LICENSE TEXT */
/*!
 * jQuery Validation Plugin 1.11.1
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright 2013 Jörn Zaefferer
 * Released under the MIT license:
 *   http://www.opensource.org/licenses/mit-license.php
 */

(function ($) {

    $.extend($.fn, {
        // http://docs.jquery.com/Plugins/Validation/validate
        validate: function (options) {

            // if nothing is selected, return nothing; can't chain anyway
            if (!this.length) {
                if (options && options.debug && window.console) {
                    console.warn("Nothing selected, can't validate, returning nothing.");
                }
                return;
            }

            // check if a validator for this form was already created
            var validator = $.data(this[0], "validator");
            if (validator) {
                return validator;
            }

            // Add novalidate tag if HTML5.
            this.attr("novalidate", "novalidate");

            validator = new $.validator(options, this[0]);
            $.data(this[0], "validator", validator);

            if (validator.settings.onsubmit) {

                this.validateDelegate(":submit", "click", function (event) {
                    if (validator.settings.submitHandler) {
                        validator.submitButton = event.target;
                    }
                    // allow suppressing validation by adding a cancel class to the submit button
                    if ($(event.target).hasClass("cancel")) {
                        validator.cancelSubmit = true;
                    }

                    // allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
                    if ($(event.target).attr("formnovalidate") !== undefined) {
                        validator.cancelSubmit = true;
                    }
                });

                // validate the form on submit
                this.submit(function (event) {
                    if (validator.settings.debug) {
                        // prevent form submit to be able to see console output
                        event.preventDefault();
                    }
                    function handle() {
                        var hidden;
                        if (validator.settings.submitHandler) {
                            if (validator.submitButton) {
                                // insert a hidden input as a replacement for the missing submit button
                                hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val($(validator.submitButton).val()).appendTo(validator.currentForm);
                            }
                            validator.settings.submitHandler.call(validator, validator.currentForm, event);
                            if (validator.submitButton) {
                                // and clean up afterwards; thanks to no-block-scope, hidden can be referenced
                                hidden.remove();
                            }
                            return false;
                        }
                        return true;
                    }

                    // prevent submit for invalid forms or custom submit handlers
                    if (validator.cancelSubmit) {
                        validator.cancelSubmit = false;
                        return handle();
                    }
                    if (validator.form()) {
                        if (validator.pendingRequest) {
                            validator.formSubmitted = true;
                            return false;
                        }
                        return handle();
                    } else {
                        validator.focusInvalid();
                        return false;
                    }
                });
            }

            return validator;
        },
        // http://docs.jquery.com/Plugins/Validation/valid
        valid: function () {
            if ($(this[0]).is("form")) {
                return this.validate().form();
            } else {
                var valid = true;
                var validator = $(this[0].form).validate();
                this.each(function () {
                    valid = valid && validator.element(this);
                });
                return valid;
            }
        },
        // attributes: space seperated list of attributes to retrieve and remove
        removeAttrs: function (attributes) {
            var result = {},
                $element = this;
            $.each(attributes.split(/\s/), function (index, value) {
                result[value] = $element.attr(value);
                $element.removeAttr(value);
            });
            return result;
        },
        // http://docs.jquery.com/Plugins/Validation/rules
        rules: function (command, argument) {
            var element = this[0];

            if (command) {
                var settings = $.data(element.form, "validator").settings;
                var staticRules = settings.rules;
                var existingRules = $.validator.staticRules(element);
                switch (command) {
                    case "add":
                        $.extend(existingRules, $.validator.normalizeRule(argument));
                        // remove messages from rules, but allow them to be set separetely
                        delete existingRules.messages;
                        staticRules[element.name] = existingRules;
                        if (argument.messages) {
                            settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages);
                        }
                        break;
                    case "remove":
                        if (!argument) {
                            delete staticRules[element.name];
                            return existingRules;
                        }
                        var filtered = {};
                        $.each(argument.split(/\s/), function (index, method) {
                            filtered[method] = existingRules[method];
                            delete existingRules[method];
                        });
                        return filtered;
                }
            }

            var data = $.validator.normalizeRules(
            $.extend(
                {},
                $.validator.classRules(element),
                $.validator.attributeRules(element),
                $.validator.dataRules(element),
                $.validator.staticRules(element)
            ), element);

            // make sure required is at front
            if (data.required) {
                var param = data.required;
                delete data.required;
                data = $.extend({ required: param }, data);
            }

            return data;
        }
    });

    // Custom selectors
    $.extend($.expr[":"], {
        // http://docs.jquery.com/Plugins/Validation/blank
        blank: function (a) { return !$.trim("" + $(a).val()); },
        // http://docs.jquery.com/Plugins/Validation/filled
        filled: function (a) { return !!$.trim("" + $(a).val()); },
        // http://docs.jquery.com/Plugins/Validation/unchecked
        unchecked: function (a) { return !$(a).prop("checked"); }
    });

    // constructor for validator
    $.validator = function (options, form) {
        this.settings = $.extend(true, {}, $.validator.defaults, options);
        this.currentForm = form;
        this.init();
    };

    $.validator.format = function (source, params) {
        if (arguments.length === 1) {
            return function () {
                var args = $.makeArray(arguments);
                args.unshift(source);
                return $.validator.format.apply(this, args);
            };
        }
        if (arguments.length > 2 && params.constructor !== Array) {
            params = $.makeArray(arguments).slice(1);
        }
        if (params.constructor !== Array) {
            params = [params];
        }
        $.each(params, function (i, n) {
            source = source.replace(new RegExp("\\{" + i + "\\}", "g"), function () {
                return n;
            });
        });
        return source;
    };
    function _getParent(element) {
        // a Kendo DatePicker is double-wrapped, so that requires us to return the parent of the parent
        return (element.parent().hasClass('k-widget')) ? element.parent().parent() : element.parent();
    }

    function _addClass(element, parent) {
        if (parent.hasClass('k-widget')) {
            parent.addClass('error');
        } else {
            element.addClass('error');
        }
    }

    function _removeClass(element, parent) {
        if (parent.hasClass('k-widget')) {
            parent.removeClass('error');
        } else {
            element.removeClass('error');
        }
    }
    $.extend($.validator, {

        defaults: {
            messages: {},
            groups: {},
            rules: {},
            errorClass: "error",
            validClass: "valid",
            errorElement: "label",
            focusInvalid: true,
            errorContainer: $([]),
            errorLabelContainer: $([]),
            onsubmit: true,
            //Aici era :hidden eu am scos caci vreau sa se valzideze si acele hidden
            ignore: "",
            ignoreTitle: false,
            onfocusin: function (element, event) {
                this.lastActive = element;

                // hide error label and remove error class on focus if enabled
                if (this.settings.focusCleanup && !this.blockFocusCleanup) {
                    if (this.settings.unhighlight) {
                        this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);
                    }
                    this.addWrapper(this.errorsFor(element)).hide();
                }
            },
            onfocusout: function (element, event) {
                if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
                    this.element(element);
                }
            },
            onkeyup: function (element, event) {
                if (event.which === 9 && this.elementValue(element) === "") {
                    return;
                } else if (element.name in this.submitted || element === this.lastElement) {
                    this.element(element);
                }
            },
            onclick: function (element, event) {
                // click on selects, radiobuttons and checkboxes
                if (element.name in this.submitted) {
                    this.element(element);
                }
                    // or option elements, check parent select in that case
                else if (element.parentNode.name in this.submitted) {
                    this.element(element.parentNode);
                }
            },
           /* highlight: function (element, errorClass, validClass) {
                if (element.type === "radio") {
                    this.findByName(element.name).addClass(errorClass).removeClass(validClass);
                } else {
                    $(element).addClass(errorClass).removeClass(validClass);
                }
            },
            unhighlight: function (element, errorClass, validClass) {
                if (element.type === "radio") {
                    this.findByName(element.name).removeClass(errorClass).addClass(validClass);
                } else {
                    $(element).removeClass(errorClass).addClass(validClass);
                }
            }*/
            highlight: function (element, errorClass, validClass) {
                element = $(element);
                if (element.parent().hasClass("k-widget")) {
                    element.parent().addClass('input-validation-error');
                } else {
                    element.addClass('input-validation-error');
                }
            },
            unhighlight: function (element, errorClass, validClass) {
                element = $(element);
                if (element.parent().hasClass("k-widget")) {
                    element.parent().removeClass('input-validation-error');
                } else {
                    element.removeClass('input-validation-error');
                }
            }
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults
        setDefaults: function (settings) {
            $.extend($.validator.defaults, settings);
        },
        messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            email: "Please enter a valid email address.",
            url: "Please enter a valid URL.",
            date: "Please enter a valid date.",
            dateISO: "Please enter a valid date (ISO).",
            number: "Please enter a valid number.",
            digits: "Please enter only digits.",
            creditcard: "Please enter a valid credit card number.",
            equalTo: "Please enter the same value again.",
            maxlength: $.validator.format("Please enter no more than {0} characters."),
            minlength: $.validator.format("Please enter at least {0} characters."),
            rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
            range: $.validator.format("Please enter a value between {0} and {1}."),
            max: $.validator.format("Please enter a value less than or equal to {0}."),
            min: $.validator.format("Please enter a value greater than or equal to {0}.")
        },

        autoCreateRanges: false,

        prototype: {

            init: function () {
                this.labelContainer = $(this.settings.errorLabelContainer);
                this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
                this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
                this.submitted = {};
                this.valueCache = {};
                this.pendingRequest = 0;
                this.pending = {};
                this.invalid = {};
                this.reset();

                var groups = (this.groups = {});
                $.each(this.settings.groups, function (key, value) {
                    if (typeof value === "string") {
                        value = value.split(/\s/);
                    }
                    $.each(value, function (index, name) {
                        groups[name] = key;
                    });
                });
                var rules = this.settings.rules;
                $.each(rules, function (key, value) {
                    rules[key] = $.validator.normalizeRule(value);
                });

                function delegate(event) {
                    var validator = $.data(this[0].form, "validator"),
                        eventType = "on" + event.type.replace(/^validate/, "");
                    if (validator.settings[eventType]) {
                        validator.settings[eventType].call(validator, this[0], event);
                    }
                }
                $(this.currentForm)
                    .validateDelegate(":text, [type='password'], [type='file'], select, textarea, " +
                        "[type='number'], [type='search'] ,[type='tel'], [type='url'], " +
                        "[type='email'], [type='datetime'], [type='date'], [type='month'], " +
                        "[type='week'], [type='time'], [type='datetime-local'], " +
                        "[type='range'], [type='color'] ",
                        "focusin focusout keyup", delegate)
                    .validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", delegate);

                if (this.settings.invalidHandler) {
                    $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
                }
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/form
            form: function () {
                this.checkForm();
                $.extend(this.submitted, this.errorMap);
                this.invalid = $.extend({}, this.errorMap);
                if (!this.valid()) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                }
                this.showErrors();
                return this.valid();
            },

            checkForm: function () {
                this.prepareForm();
                for (var i = 0, elements = (this.currentElements = this.elements()) ; elements[i]; i++) {
                    this.check(elements[i]);
                }
                return this.valid();
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/element
            element: function (element) {
                element = this.validationTargetFor(this.clean(element));
                this.lastElement = element;
                this.prepareElement(element);
                this.currentElements = $(element);
                var result = this.check(element) !== false;
                if (result) {
                    delete this.invalid[element.name];
                } else {
                    this.invalid[element.name] = true;
                }
                if (!this.numberOfInvalids()) {
                    // Hide error containers on last error
                    this.toHide = this.toHide.add(this.containers);
                }
                this.showErrors();
                return result;
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/showErrors
            showErrors: function (errors) {
                if (errors) {
                    // add items to error list and map
                    $.extend(this.errorMap, errors);
                    this.errorList = [];
                    for (var name in errors) {
                        this.errorList.push({
                            message: errors[name],
                            element: this.findByName(name)[0]
                        });
                    }
                    // remove items from success list
                    this.successList = $.grep(this.successList, function (element) {
                        return !(element.name in errors);
                    });
                }
                if (this.settings.showErrors) {
                    this.settings.showErrors.call(this, this.errorMap, this.errorList);
                } else {
                    this.defaultShowErrors();
                }
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/resetForm
            resetForm: function () {
                if ($.fn.resetForm) {
                    $(this.currentForm).resetForm();
                }
                this.submitted = {};
                this.lastElement = null;
                this.prepareForm();
                this.hideErrors();
                this.elements().removeClass(this.settings.errorClass).removeData("previousValue");
            },

            numberOfInvalids: function () {
                return this.objectLength(this.invalid);
            },

            objectLength: function (obj) {
                var count = 0;
                for (var i in obj) {
                    count++;
                }
                return count;
            },

            hideErrors: function () {
                this.addWrapper(this.toHide).hide();
            },

            valid: function () {
                return this.size() === 0;
            },

            size: function () {
                return this.errorList.length;
            },

            focusInvalid: function () {
                if (this.settings.focusInvalid) {
                    try {
                        $(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])
                        .filter(":visible")
                        .focus()
                        // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
                        .trigger("focusin");
                    } catch (e) {
                        // ignore IE throwing errors when focusing hidden elements
                    }
                }
            },

            findLastActive: function () {
                var lastActive = this.lastActive;
                return lastActive && $.grep(this.errorList, function (n) {
                    return n.element.name === lastActive.name;
                }).length === 1 && lastActive;
            },

            elements: function () {
                var validator = this,
                    rulesCache = {};

                // select all valid inputs inside the form (no submit or reset buttons)
                return $(this.currentForm)
                .find("input, select, textarea")
                .not(":submit, :reset, :image, [disabled]")
                .not(this.settings.ignore)
                .filter(function () {
                    if (!this.name && validator.settings.debug && window.console) {
                        console.error("%o has no name assigned", this);
                    }

                    // select only the first element for each name, and only those with rules specified
                    if (this.name in rulesCache || !validator.objectLength($(this).rules())) {
                        return false;
                    }

                    rulesCache[this.name] = true;
                    return true;
                });
            },

            clean: function (selector) {
                return $(selector)[0];
            },

            errors: function () {
                var errorClass = this.settings.errorClass.replace(" ", ".");
                return $(this.settings.errorElement + "." + errorClass, this.errorContext);
            },

            reset: function () {
                this.successList = [];
                this.errorList = [];
                this.errorMap = {};
                this.toShow = $([]);
                this.toHide = $([]);
                this.currentElements = $([]);
            },

            prepareForm: function () {
                this.reset();
                this.toHide = this.errors().add(this.containers);
            },

            prepareElement: function (element) {
                this.reset();
                this.toHide = this.errorsFor(element);
            },

            elementValue: function (element) {
                var type = $(element).attr("type"),
                    val = $(element).val();

                if (type === "radio" || type === "checkbox") {
                    return $("input[name='" + $(element).attr("name") + "']:checked").val();
                }

                if (typeof val === "string") {
                    return val.replace(/\r/g, "");
                }
                return val;
            },

            check: function (element) {
                element = this.validationTargetFor(this.clean(element));

                var rules = $(element).rules();
                var dependencyMismatch = false;
                var val = this.elementValue(element);
                var result;

                for (var method in rules) {
                    var rule = { method: method, parameters: rules[method] };
                    try {

                        result = $.validator.methods[method].call(this, val, element, rule.parameters);

                        // if a method indicates that the field is optional and therefore valid,
                        // don't mark it as valid when there are no other rules
                        if (result === "dependency-mismatch") {
                            dependencyMismatch = true;
                            continue;
                        }
                        dependencyMismatch = false;

                        if (result === "pending") {
                            this.toHide = this.toHide.not(this.errorsFor(element));
                            return;
                        }

                        if (!result) {
                            this.formatAndAdd(element, rule);
                            return false;
                        }
                    } catch (e) {
                        if (this.settings.debug && window.console) {
                            console.log("Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e);
                        }
                        throw e;
                    }
                }
                if (dependencyMismatch) {
                    return;
                }
                if (this.objectLength(rules)) {
                    this.successList.push(element);
                }
                return true;
            },

            // return the custom message for the given element and validation method
            // specified in the element's HTML5 data attribute
            customDataMessage: function (element, method) {
                return $(element).data("msg-" + method.toLowerCase()) || (element.attributes && $(element).attr("data-msg-" + method.toLowerCase()));
            },

            // return the custom message for the given element name and validation method
            customMessage: function (name, method) {
                var m = this.settings.messages[name];
                return m && (m.constructor === String ? m : m[method]);
            },

            // return the first defined argument, allowing empty strings
            findDefined: function () {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] !== undefined) {
                        return arguments[i];
                    }
                }
                return undefined;
            },

            defaultMessage: function (element, method) {
                return this.findDefined(
                    this.customMessage(element.name, method),
                    this.customDataMessage(element, method),
                    // title is never undefined, so handle empty string as undefined
                    !this.settings.ignoreTitle && element.title || undefined,
                    $.validator.messages[method],
                    "<strong>Warning: No message defined for " + element.name + "</strong>"
                );
            },

            formatAndAdd: function (element, rule) {
                var message = this.defaultMessage(element, rule.method),
                    theregex = /\$?\{(\d+)\}/g;
                if (typeof message === "function") {
                    message = message.call(this, rule.parameters, element);
                } else if (theregex.test(message)) {
                    message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters);
                }
                this.errorList.push({
                    message: message,
                    element: element
                });

                this.errorMap[element.name] = message;
                this.submitted[element.name] = message;
            },

            addWrapper: function (toToggle) {
                if (this.settings.wrapper) {
                    toToggle = toToggle.add(toToggle.parent(this.settings.wrapper));
                }
                return toToggle;
            },

            defaultShowErrors: function () {
                var i, elements;
                for (i = 0; this.errorList[i]; i++) {
                    var error = this.errorList[i];
                    if (this.settings.highlight) {
                        this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
                    }
                    this.showLabel(error.element, error.message);
                }
                if (this.errorList.length) {
                    this.toShow = this.toShow.add(this.containers);
                }
                if (this.settings.success) {
                    for (i = 0; this.successList[i]; i++) {
                        this.showLabel(this.successList[i]);
                    }
                }
                if (this.settings.unhighlight) {
                    for (i = 0, elements = this.validElements() ; elements[i]; i++) {
                        this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
                    }
                }
                this.toHide = this.toHide.not(this.toShow);
                this.hideErrors();
                this.addWrapper(this.toShow).show();
            },

            validElements: function () {
                return this.currentElements.not(this.invalidElements());
            },

            invalidElements: function () {
                return $(this.errorList).map(function () {
                    return this.element;
                });
            },

            showLabel: function (element, message) {
                var label = this.errorsFor(element);
                if (label.length) {
                    // refresh error/success class
                    label.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
                    // replace message on existing label
                    label.html(message);
                } else {
                    // create label
                    label = $("<" + this.settings.errorElement + ">")
                        .attr("for", this.idOrName(element))
                        .addClass(this.settings.errorClass)
                        .html(message || "");
                    if (this.settings.wrapper) {
                        // make sure the element is visible, even in IE
                        // actually showing the wrapped element is handled elsewhere
                        label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
                    }
                    if (!this.labelContainer.append(label).length) {
                        if (this.settings.errorPlacement) {
                            this.settings.errorPlacement(label, $(element));
                        } else {
                            label.insertAfter(element);
                        }
                    }
                }
                if (!message && this.settings.success) {
                    label.text("");
                    if (typeof this.settings.success === "string") {
                        label.addClass(this.settings.success);
                    } else {
                        this.settings.success(label, element);
                    }
                }
                this.toShow = this.toShow.add(label);
            },

            errorsFor: function (element) {
                var name = this.idOrName(element);
                return this.errors().filter(function () {
                    return $(this).attr("for") === name;
                });
            },

            idOrName: function (element) {
                return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
            },

            validationTargetFor: function (element) {
                // if radio/checkbox, validate first element in group instead
                if (this.checkable(element)) {
                    element = this.findByName(element.name).not(this.settings.ignore)[0];
                }
                return element;
            },

            checkable: function (element) {
                return (/radio|checkbox/i).test(element.type);
            },

            findByName: function (name) {
                return $(this.currentForm).find("[name='" + name + "']");
            },

            getLength: function (value, element) {
                switch (element.nodeName.toLowerCase()) {
                    case "select":
                        return $("option:selected", element).length;
                    case "input":
                        if (this.checkable(element)) {
                            return this.findByName(element.name).filter(":checked").length;
                        }
                }
                return value.length;
            },

            depend: function (param, element) {
                return this.dependTypes[typeof param] ? this.dependTypes[typeof param](param, element) : true;
            },

            dependTypes: {
                "boolean": function (param, element) {
                    return param;
                },
                "string": function (param, element) {
                    return !!$(param, element.form).length;
                },
                "function": function (param, element) {
                    return param(element);
                }
            },

            optional: function (element) {
                var val = this.elementValue(element);
                return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch";
            },

            startRequest: function (element) {
                if (!this.pending[element.name]) {
                    this.pendingRequest++;
                    this.pending[element.name] = true;
                }
            },

            stopRequest: function (element, valid) {
                this.pendingRequest--;
                // sometimes synchronization fails, make sure pendingRequest is never < 0
                if (this.pendingRequest < 0) {
                    this.pendingRequest = 0;
                }
                delete this.pending[element.name];
                if (valid && this.pendingRequest === 0 && this.formSubmitted && this.form()) {
                    $(this.currentForm).submit();
                    this.formSubmitted = false;
                } else if (!valid && this.pendingRequest === 0 && this.formSubmitted) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                    this.formSubmitted = false;
                }
            },

            previousValue: function (element) {
                return $.data(element, "previousValue") || $.data(element, "previousValue", {
                    old: null,
                    valid: true,
                    message: this.defaultMessage(element, "remote")
                });
            }

        },

        classRuleSettings: {
            required: { required: true },
            email: { email: true },
            url: { url: true },
            date: { date: true },
            dateISO: { dateISO: true },
            number: { number: true },
            digits: { digits: true },
            creditcard: { creditcard: true }
        },

        addClassRules: function (className, rules) {
            if (className.constructor === String) {
                this.classRuleSettings[className] = rules;
            } else {
                $.extend(this.classRuleSettings, className);
            }
        },

        classRules: function (element) {
            var rules = {};
            var classes = $(element).attr("class");
            if (classes) {
                $.each(classes.split(" "), function () {
                    if (this in $.validator.classRuleSettings) {
                        $.extend(rules, $.validator.classRuleSettings[this]);
                    }
                });
            }
            return rules;
        },

        attributeRules: function (element) {
            var rules = {};
            var $element = $(element);
            var type = $element[0].getAttribute("type");

            for (var method in $.validator.methods) {
                var value;

                // support for <input required> in both html5 and older browsers
                if (method === "required") {
                    value = $element.get(0).getAttribute(method);
                    // Some browsers return an empty string for the required attribute
                    // and non-HTML5 browsers might have required="" markup
                    if (value === "") {
                        value = true;
                    }
                    // force non-HTML5 browsers to return bool
                    value = !!value;
                } else {
                    value = $element.attr(method);
                }

                // convert the value to a number for number inputs, and for text for backwards compability
                // allows type="date" and others to be compared as strings
                if (/min|max/.test(method) && (type === null || /number|range|text/.test(type))) {
                    value = Number(value);
                }

                if (value) {
                    rules[method] = value;
                } else if (type === method && type !== 'range') {
                    // exception: the jquery validate 'range' method
                    // does not test for the html5 'range' type
                    rules[method] = true;
                }
            }

            // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
            if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
                delete rules.maxlength;
            }

            return rules;
        },

        dataRules: function (element) {
            var method, value,
                rules = {}, $element = $(element);
            for (method in $.validator.methods) {
                value = $element.data("rule-" + method.toLowerCase());
                if (value !== undefined) {
                    rules[method] = value;
                }
            }
            return rules;
        },

        staticRules: function (element) {
            var rules = {};
            var validator = $.data(element.form, "validator");
            if (validator.settings.rules) {
                rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
            }
            return rules;
        },

        normalizeRules: function (rules, element) {
            // handle dependency check
            $.each(rules, function (prop, val) {
                // ignore rule when param is explicitly false, eg. required:false
                if (val === false) {
                    delete rules[prop];
                    return;
                }
                if (val.param || val.depends) {
                    var keepRule = true;
                    switch (typeof val.depends) {
                        case "string":
                            keepRule = !!$(val.depends, element.form).length;
                            break;
                        case "function":
                            keepRule = val.depends.call(element, element);
                            break;
                    }
                    if (keepRule) {
                        rules[prop] = val.param !== undefined ? val.param : true;
                    } else {
                        delete rules[prop];
                    }
                }
            });

            // evaluate parameters
            $.each(rules, function (rule, parameter) {
                rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
            });

            // clean number parameters
            $.each(['minlength', 'maxlength'], function () {
                if (rules[this]) {
                    rules[this] = Number(rules[this]);
                }
            });
            $.each(['rangelength', 'range'], function () {
                var parts;
                if (rules[this]) {
                    if ($.isArray(rules[this])) {
                        rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
                    } else if (typeof rules[this] === "string") {
                        parts = rules[this].split(/[\s,]+/);
                        rules[this] = [Number(parts[0]), Number(parts[1])];
                    }
                }
            });

            if ($.validator.autoCreateRanges) {
                // auto-create ranges
                if (rules.min && rules.max) {
                    rules.range = [rules.min, rules.max];
                    delete rules.min;
                    delete rules.max;
                }
                if (rules.minlength && rules.maxlength) {
                    rules.rangelength = [rules.minlength, rules.maxlength];
                    delete rules.minlength;
                    delete rules.maxlength;
                }
            }

            return rules;
        },

        // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
        normalizeRule: function (data) {
            if (typeof data === "string") {
                var transformed = {};
                $.each(data.split(/\s/), function () {
                    transformed[this] = true;
                });
                data = transformed;
            }
            return data;
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/addMethod
        addMethod: function (name, method, message) {
            $.validator.methods[name] = method;
            $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name];
            if (method.length < 3) {
                $.validator.addClassRules(name, $.validator.normalizeRule(name));
            }
        },

        methods: {

            // http://docs.jquery.com/Plugins/Validation/Methods/required
            required: function (value, element, param) {
                // check if dependency is met
                if (!this.depend(param, element)) {
                    return "dependency-mismatch";
                }
                if (element.nodeName.toLowerCase() === "select") {
                    // could be an array for select-multiple or a string, both are fine this way
                    var val = $(element).val();
                    return val && val.length > 0;
                }
                if (this.checkable(element)) {
                    return this.getLength(value, element) > 0;
                }
                return $.trim(value).length > 0;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/email
            email: function (value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
                return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/url
            url: function (value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
                return this.optional(element) || /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/date
            date: function (value, element) {
                return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/dateISO
            dateISO: function (value, element) {
                return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/number
            number: function (value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/digits
            digits: function (value, element) {
                return this.optional(element) || /^\d+$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/creditcard
            // based on http://en.wikipedia.org/wiki/Luhn
            creditcard: function (value, element) {
                if (this.optional(element)) {
                    return "dependency-mismatch";
                }
                // accept only spaces, digits and dashes
                if (/[^0-9 \-]+/.test(value)) {
                    return false;
                }
                var nCheck = 0,
                    nDigit = 0,
                    bEven = false;

                value = value.replace(/\D/g, "");

                for (var n = value.length - 1; n >= 0; n--) {
                    var cDigit = value.charAt(n);
                    nDigit = parseInt(cDigit, 10);
                    if (bEven) {
                        if ((nDigit *= 2) > 9) {
                            nDigit -= 9;
                        }
                    }
                    nCheck += nDigit;
                    bEven = !bEven;
                }

                return (nCheck % 10) === 0;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/minlength
            minlength: function (value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength($.trim(value), element);
                return this.optional(element) || length >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/maxlength
            maxlength: function (value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength($.trim(value), element);
                return this.optional(element) || length <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/rangelength
            rangelength: function (value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength($.trim(value), element);
                return this.optional(element) || (length >= param[0] && length <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/min
            min: function (value, element, param) {
                return this.optional(element) || value >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/max
            max: function (value, element, param) {
                return this.optional(element) || value <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/range
            range: function (value, element, param) {
                return this.optional(element) || (value >= param[0] && value <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/equalTo
            equalTo: function (value, element, param) {
                // bind to the blur event of the target in order to revalidate whenever the target field is updated
                // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead
                var target = $(param);
                if (this.settings.onfocusout) {
                    target.unbind(".validate-equalTo").bind("blur.validate-equalTo", function () {
                        $(element).valid();
                    });
                }
                return value === target.val();
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/remote
            remote: function (value, element, param) {
                if (this.optional(element)) {
                    return "dependency-mismatch";
                }

                var previous = this.previousValue(element);
                if (!this.settings.messages[element.name]) {
                    this.settings.messages[element.name] = {};
                }
                previous.originalMessage = this.settings.messages[element.name].remote;
                this.settings.messages[element.name].remote = previous.message;

                param = typeof param === "string" && { url: param } || param;

                if (previous.old === value) {
                    return previous.valid;
                }

                previous.old = value;
                var validator = this;
                this.startRequest(element);
                var data = {};
                data[element.name] = value;
                $.ajax($.extend(true, {
                    url: param,
                    mode: "abort",
                    port: "validate" + element.name,
                    dataType: "json",
                    data: data,
                    success: function (response) {
                        validator.settings.messages[element.name].remote = previous.originalMessage;
                        var valid = response === true || response === "true";
                        if (valid) {
                            var submitted = validator.formSubmitted;
                            validator.prepareElement(element);
                            validator.formSubmitted = submitted;
                            validator.successList.push(element);
                            delete validator.invalid[element.name];
                            validator.showErrors();
                        } else {
                            var errors = {};
                            var message = response || validator.defaultMessage(element, "remote");
                            errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;
                            validator.invalid[element.name] = true;
                            validator.showErrors(errors);
                        }
                        previous.valid = valid;
                        validator.stopRequest(element, valid);
                    }
                }, param));
                return "pending";
            }

        }

    });

    // deprecated, use $.validator.format instead
    $.format = $.validator.format;

}(jQuery));

// ajax mode: abort
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
(function ($) {
    var pendingRequests = {};
    // Use a prefilter if available (1.5+)
    if ($.ajaxPrefilter) {
        $.ajaxPrefilter(function (settings, _, xhr) {
            var port = settings.port;
            if (settings.mode === "abort") {
                if (pendingRequests[port]) {
                    pendingRequests[port].abort();
                }
                pendingRequests[port] = xhr;
            }
        });
    } else {
        // Proxy ajax
        var ajax = $.ajax;
        $.ajax = function (settings) {
            var mode = ("mode" in settings ? settings : $.ajaxSettings).mode,
				port = ("port" in settings ? settings : $.ajaxSettings).port;
            if (mode === "abort") {
                if (pendingRequests[port]) {
                    pendingRequests[port].abort();
                }
                pendingRequests[port] = ajax.apply(this, arguments);
                return pendingRequests[port];
            }
            return ajax.apply(this, arguments);
        };
    }
}(jQuery));

// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target
(function ($) {
    $.extend($.fn, {
        validateDelegate: function (delegate, type, handler) {
            return this.bind(type, function (event) {
                var target = $(event.target);
                if (target.is(delegate)) {
                    return handler.apply(target, arguments);
                }
            });
        }
    });
}(jQuery));
;
/* NUGET: BEGIN LICENSE TEXT
 *
 * Microsoft grants you the right to use these script files for the sole
 * purpose of either: (i) interacting through your browser with the Microsoft
 * website or online service, subject to the applicable licensing or use
 * terms; or (ii) using the files as included with a Microsoft product subject
 * to that product's license terms. Microsoft reserves all other rights to the
 * files not expressly granted by Microsoft, whether by implication, estoppel
 * or otherwise. Insofar as a script file is dual licensed under GPL,
 * Microsoft neither took the code under GPL nor distributes it thereunder but
 * under the terms set out in this paragraph. All notices and licenses
 * below are for informational purposes only.
 *
 * NUGET: END LICENSE TEXT */
/*!
** Unobtrusive validation support library for jQuery and jQuery Validate
** Copyright (C) Microsoft Corporation. All rights reserved.
*/

/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global document: false, jQuery: false */

(function ($) {
    var $jQval = $.validator,
        adapters,
        data_validation = "unobtrusiveValidation";

    function setValidationValues(options, ruleName, value) {
        options.rules[ruleName] = value;
        if (options.message) {
            options.messages[ruleName] = options.message;
        }
    }

    function splitAndTrim(value) {
        return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g);
    }

    function escapeAttributeValue(value) {
        // As mentioned on http://api.jquery.com/category/selectors/
        return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
    }

    function getModelPrefix(fieldName) {
        return fieldName.substr(0, fieldName.lastIndexOf(".") + 1);
    }

    function appendModelPrefix(value, prefix) {
        if (value.indexOf("*.") === 0) {
            value = value.replace("*.", prefix);
        }
        return value;
    }

    function onError(error, inputElement) {  // 'this' is the form element
        var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
            replaceAttrValue = container.attr("data-valmsg-replace"),
            replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;

        container.removeClass("field-validation-valid").addClass("field-validation-error");
        error.data("unobtrusiveContainer", container);

        if (replace) {
            container.empty();
            error.removeClass("input-validation-error").appendTo(container);
        }
        else {
            error.hide();
        }
    }

    function onErrors(event, validator) {  // 'this' is the form element
        var container = $(this).find("[data-valmsg-summary=true]"),
            list = container.find("ul");

        if (list && list.length && validator.errorList.length) {
            list.empty();
            container.addClass("validation-summary-errors").removeClass("validation-summary-valid");

            $.each(validator.errorList, function () {
                $("<li />").html(this.message).appendTo(list);
            });
        }
    }

    function onSuccess(error) {  // 'this' is the form element
        var container = error.data("unobtrusiveContainer"),
            replaceAttrValue = container.attr("data-valmsg-replace"),
            replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;

        if (container) {
            container.addClass("field-validation-valid").removeClass("field-validation-error");
            error.removeData("unobtrusiveContainer");

            if (replace) {
                container.empty();
            }
        }
    }

    function onReset(event) {  // 'this' is the form element
        var $form = $(this);
        $form.data("validator").resetForm();
        $form.find(".validation-summary-errors")
            .addClass("validation-summary-valid")
            .removeClass("validation-summary-errors");
        $form.find(".field-validation-error")
            .addClass("field-validation-valid")
            .removeClass("field-validation-error")
            .removeData("unobtrusiveContainer")
            .find(">*")  // If we were using valmsg-replace, get the underlying error
                .removeData("unobtrusiveContainer");
    }

    function validationInfo(form) {
        var $form = $(form),
            result = $form.data(data_validation),
            onResetProxy = $.proxy(onReset, form);

        if (!result) {
            result = {
                options: {  // options structure passed to jQuery Validate's validate() method
                    errorClass: "input-validation-error",
                    errorElement: "span",
                    errorPlacement: $.proxy(onError, form),
                    invalidHandler: $.proxy(onErrors, form),
                    messages: {},
                    rules: {},
                    success: $.proxy(onSuccess, form)
                },
                attachValidation: function () {
                    $form
                        .unbind("reset." + data_validation, onResetProxy)
                        .bind("reset." + data_validation, onResetProxy)
                        .validate(this.options);
                },
                validate: function () {  // a validation function that is called by unobtrusive Ajax
                    $form.validate();
                    return $form.valid();
                }
            };
            $form.data(data_validation, result);
        }

        return result;
    }

    $jQval.unobtrusive = {
        adapters: [],

        parseElement: function (element, skipAttach) {
            /// <summary>
            /// Parses a single HTML element for unobtrusive validation attributes.
            /// </summary>
            /// <param name="element" domElement="true">The HTML element to be parsed.</param>
            /// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
            /// validation to the form. If parsing just this single element, you should specify true.
            /// If parsing several elements, you should specify false, and manually attach the validation
            /// to the form when you are finished. The default is false.</param>
            var $element = $(element),
                form = $element.parents("form")[0],
                valInfo, rules, messages;

            if (!form) {  // Cannot do client-side validation without a form
                return;
            }

            valInfo = validationInfo(form);
            valInfo.options.rules[element.name] = rules = {};
            valInfo.options.messages[element.name] = messages = {};

            $.each(this.adapters, function () {
                var prefix = "data-val-" + this.name,
                    message = $element.attr(prefix),
                    paramValues = {};

                if (message !== undefined) {  // Compare against undefined, because an empty message is legal (and falsy)
                    prefix += "-";

                    $.each(this.params, function () {
                        paramValues[this] = $element.attr(prefix + this);
                    });

                    this.adapt({
                        element: element,
                        form: form,
                        message: message,
                        params: paramValues,
                        rules: rules,
                        messages: messages
                    });
                }
            });

            $.extend(rules, { "__dummy__": true });

            if (!skipAttach) {
                valInfo.attachValidation();
            }
        },

        parse: function (selector) {
            /// <summary>
            /// Parses all the HTML elements in the specified selector. It looks for input elements decorated
            /// with the [data-val=true] attribute value and enables validation according to the data-val-*
            /// attribute values.
            /// </summary>
            /// <param name="selector" type="String">Any valid jQuery selector.</param>
            var $forms = $(selector)
                .parents("form")
                .andSelf()
                .add($(selector).find("form"))
                .filter("form");

            // :input is a psuedoselector provided by jQuery which selects input and input-like elements
            // combining :input with other selectors significantly decreases performance.
            $(selector).find(":input").filter("[data-val=true]").each(function () {
                $jQval.unobtrusive.parseElement(this, true);
            });

            $forms.each(function () {
                var info = validationInfo(this);
                if (info) {
                    info.attachValidation();
                }
            });
        }
    };

    adapters = $jQval.unobtrusive.adapters;

    adapters.add = function (adapterName, params, fn) {
        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.</summary>
        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
        /// <param name="params" type="Array" optional="true">[Optional] An array of parameter names (strings) that will
        /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and
        /// mmmm is the parameter name).</param>
        /// <param name="fn" type="Function">The function to call, which adapts the values from the HTML
        /// attributes into jQuery Validate rules and/or messages.</param>
        /// <returns type="jQuery.validator.unobtrusive.adapters" />
        if (!fn) {  // Called with no params, just a function
            fn = params;
            params = [];
        }
        this.push({ name: adapterName, params: params, adapt: fn });
        return this;
    };

    adapters.addBool = function (adapterName, ruleName) {
        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
        /// the jQuery Validate validation rule has no parameter values.</summary>
        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
        /// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
        /// of adapterName will be used instead.</param>
        /// <returns type="jQuery.validator.unobtrusive.adapters" />
        return this.add(adapterName, function (options) {
            setValidationValues(options, ruleName || adapterName, true);
        });
    };

    adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {
        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
        /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and
        /// one for min-and-max). The HTML parameters are expected to be named -min and -max.</summary>
        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
        /// <param name="minRuleName" type="String">The name of the jQuery Validate rule to be used when you only
        /// have a minimum value.</param>
        /// <param name="maxRuleName" type="String">The name of the jQuery Validate rule to be used when you only
        /// have a maximum value.</param>
        /// <param name="minMaxRuleName" type="String">The name of the jQuery Validate rule to be used when you
        /// have both a minimum and maximum value.</param>
        /// <param name="minAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
        /// contains the minimum value. The default is "min".</param>
        /// <param name="maxAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
        /// contains the maximum value. The default is "max".</param>
        /// <returns type="jQuery.validator.unobtrusive.adapters" />
        return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) {
            var min = options.params.min,
                max = options.params.max;

            if (min && max) {
                setValidationValues(options, minMaxRuleName, [min, max]);
            }
            else if (min) {
                setValidationValues(options, minRuleName, min);
            }
            else if (max) {
                setValidationValues(options, maxRuleName, max);
            }
        });
    };

    adapters.addSingleVal = function (adapterName, attribute, ruleName) {
        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
        /// the jQuery Validate validation rule has a single value.</summary>
        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
        /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).</param>
        /// <param name="attribute" type="String">[Optional] The name of the HTML attribute that contains the value.
        /// The default is "val".</param>
        /// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
        /// of adapterName will be used instead.</param>
        /// <returns type="jQuery.validator.unobtrusive.adapters" />
        return this.add(adapterName, [attribute || "val"], function (options) {
            setValidationValues(options, ruleName || adapterName, options.params[attribute]);
        });
    };

    adapters.add("mustbetrue", function (options) {
        setValidationValues(options, "mustbetrue", true);
    });
    $jQval.addMethod("mustbetrue", function (value, element, param) {
        // check if dependency is met
        if (!this.depend(param, element))
            return "dependency-mismatch";
        return element.checked;
    });
    $jQval.addMethod("__dummy__", function (value, element, params) {
        return true;
    });

    $jQval.addMethod("regex", function (value, element, params) {
        var match;
        if (this.optional(element)) {
            return true;
        }

        match = new RegExp(params).exec(value);
        return (match && (match.index === 0) && (match[0].length === value.length));
    });

    $jQval.addMethod("nonalphamin", function (value, element, nonalphamin) {
        var match;
        if (nonalphamin) {
            match = value.match(/\W/g);
            match = match && match.length >= nonalphamin;
        }
        return match;
    });

    if ($jQval.methods.extension) {
        adapters.addSingleVal("accept", "mimtype");
        adapters.addSingleVal("extension", "extension");
    } else {
        // for backward compatibility, when the 'extension' validation method does not exist, such as with versions
        // of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for
        // validating the extension, and ignore mime-type validations as they are not supported.
        adapters.addSingleVal("extension", "extension", "accept");
    }

    adapters.addSingleVal("regex", "pattern");
    adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
    adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
    adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength");
    adapters.add("equalto", ["other"], function (options) {
        var prefix = getModelPrefix(options.element.name),
            other = options.params.other,
            fullOtherName = appendModelPrefix(other, prefix),
            element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0];

        setValidationValues(options, "equalTo", element);
    });
    adapters.add("required", function (options) {
        // jQuery Validate equates "required" with "mandatory" for checkbox elements
        if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
            setValidationValues(options, "required", true);
        }
    });
    adapters.add("remote", ["url", "type", "additionalfields"], function (options) {
        var value = {
            url: options.params.url,
            type: options.params.type || "GET",
            data: {}
        },
            prefix = getModelPrefix(options.element.name);

        $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {
            var paramName = appendModelPrefix(fieldName, prefix);
            value.data[paramName] = function () {
                return $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']").val();
            };
        });

        setValidationValues(options, "remote", value);
    });
    adapters.add("password", ["min", "nonalphamin", "regex"], function (options) {
        if (options.params.min) {
            setValidationValues(options, "minlength", options.params.min);
        }
        if (options.params.nonalphamin) {
            setValidationValues(options, "nonalphamin", options.params.nonalphamin);
        }
        if (options.params.regex) {
            setValidationValues(options, "regex", options.params.regex);
        }
    });

    $(function () {
        $jQval.unobtrusive.parse(document);
    });
}(jQuery));;
/*!
 * jQuery Cookie Plugin v1.4.1
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2013 Klaus Hartl
 * Released under the MIT license
 */
(function (factory) {
	if (typeof define === 'function' && define.amd) {
		// AMD
		define(['jquery'], factory);
	} else if (typeof exports === 'object') {
		// CommonJS
		factory(require('jquery'));
	} else {
		// Browser globals
		factory(jQuery);
	}
}(function ($) {

	var pluses = /\+/g;

	function encode(s) {
		return config.raw ? s : encodeURIComponent(s);
	}

	function decode(s) {
		return config.raw ? s : decodeURIComponent(s);
	}

	function stringifyCookieValue(value) {
		return encode(config.json ? JSON.stringify(value) : String(value));
	}

	function parseCookieValue(s) {
		if (s.indexOf('"') === 0) {
			// This is a quoted cookie as according to RFC2068, unescape...
			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
		}

		try {
			// Replace server-side written pluses with spaces.
			// If we can't decode the cookie, ignore it, it's unusable.
			// If we can't parse the cookie, ignore it, it's unusable.
			s = decodeURIComponent(s.replace(pluses, ' '));
			return config.json ? JSON.parse(s) : s;
		} catch(e) {}
	}

	function read(s, converter) {
		var value = config.raw ? s : parseCookieValue(s);
		return $.isFunction(converter) ? converter(value) : value;
	}

	var config = $.cookie = function (key, value, options) {

		// Write

		if (value !== undefined && !$.isFunction(value)) {
			options = $.extend({}, config.defaults, options);

			if (typeof options.expires === 'number') {
				var days = options.expires, t = options.expires = new Date();
				t.setTime(+t + days * 864e+5);
			}

			return (document.cookie = [
				encode(key), '=', stringifyCookieValue(value),
				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
				options.path    ? '; path=' + options.path : '',
				options.domain  ? '; domain=' + options.domain : '',
				options.secure  ? '; secure' : ''
			].join(''));
		}

		// Read

		var result = key ? undefined : {};

		// To prevent the for loop in the first place assign an empty array
		// in case there are no cookies at all. Also prevents odd result when
		// calling $.cookie().
		var cookies = document.cookie ? document.cookie.split('; ') : [];

		for (var i = 0, l = cookies.length; i < l; i++) {
			var parts = cookies[i].split('=');
			var name = decode(parts.shift());
			var cookie = parts.join('=');

			if (key && key === name) {
				// If second argument (value) is a function it's a converter...
				result = read(cookie, value);
				break;
			}

			// Prevent storing a cookie that we couldn't decode.
			if (!key && (cookie = read(cookie)) !== undefined) {
				result[name] = cookie;
			}
		}

		return result;
	};

	config.defaults = {};

	$.removeCookie = function (key, options) {
		if ($.cookie(key) === undefined) {
			return false;
		}

		// Must not alter options, thus extending a fresh object...
		$.cookie(key, '', $.extend({}, options, { expires: -1 }));
		return !$.cookie(key);
	};

}));
;
//use for type with cancellaction token
$.fn.typingFilter = function (functionName, intervalMs) {

    if (isNullOrEmpty(intervalMs)) {
        intervalMs = 500;
    }

    var inputId = $(this).attr("id");
    var typingTimerVariable; //timer identifier
    var doneTypingIntervalMs = intervalMs; //time in ms, 5 second for example
    var funcParam = ''; //(IV) not sure where this param is passed

    var addClearButtonsFunctions = false;
    var filterInputBtn = null;

    if ($(`.fn-${inputId}`)[0]) {
        addClearButtonsFunctions = true;
        filterInputBtn = $(`.fn-${inputId}`);
        filterInputBtn.data('parentid', inputId);
    }


    $(this).on('input', function () {
        clearTimeout(typingTimerVariable);
        typingTimerVariable = setTimeout(doneTypingFilter, doneTypingIntervalMs);

        if (addClearButtonsFunctions) {
            if ($(this).val().length > 0) {
                filterInputBtn.removeClass("hide");
            } else {
                filterInputBtn.addClass("hide");
            }
        }
    });

    if (addClearButtonsFunctions) {
        filterInputBtn.on('click', function () {
            var parentId = $(this).data('parentid');
            $(this).addClass('hide'); //on input is not called force add class
            $(`#${parentId}`).val('');

            doneTypingFilter();
        });
    }

    $(this).on('keydown', function () {
        clearTimeout(typingTimerVariable);
    });

    //user is "finished typing"
    function doneTypingFilter() {
        var callFunctionParam = window[functionName];
        if (isNullOrEmpty(funcParam)) {
            callFunctionParam();
        } else {
            callFunctionParam(funcParam);
        }
    }
};

//focus with time out
$.fn.focusInput = function () {
    var inputId = $(this).attr("id");
    var defaultInterval = 1000; //time in ms
    var element = $(`#${inputId}`);
    setTimeout(function() {
        element.focus();
        var $thisVal = element.val();
        element.val('').val($thisVal);
        return this;
    }, defaultInterval);
};

//focus with time out
$.fn.extend({
    initializejSignature: function (dataToImport) {
        var id = $(this).attr("id");
        var $id = $(`#${id}`);
        $id.html(''); //ALWAYS CLEAR!!!!!!!!!

        $id.jSignature({
            'decor-color': 'transparent',
            //'color': '#000',
            //'width': '400',
            'height': '300',
            'lineWidth': 3
        });

        setTimeout(function () {
            if (dataToImport != null && !isNullOrEmpty(dataToImport)) {
                $(`#${id}`).jSignature("importData", dataToImport);
            }
        }, 10);
    }
});

//tgl hide class based on bool
$.fn.tglShowHideClass = function (show) {
    const el = $(this);

    if (show) {
        el.removeClass('hide');
    } else {
        el.addClass('hide');
    }
};;
var Organization = {
    Id: function () {
        return Organization['Id'];
    },
    CurrentDateTime: function() {
        return Organization['CurrentDateTime'];
    },
    DateDisplayDateAndTime: function () {
        return Organization['DateDisplayDateAndTime'];
    },
    MobileDashboardUrl: function () {
        return Organization['MobileDashboardUrl'];
    },
    MobileIndexUrl: function () {
        return Organization['MobileIndexUrl'];
    },
    BaseBackgroundColor: function () {
        return Organization['BaseBackgroundColor'];
    },
    DropdownNoneItemLabel: function () {
        return Organization['DropdownNoneItemLabel'];
    },
    MembersEntity: function () {
        return Organization['MembersEntity'];
    }
};

var AdminUrl = {
    ReservationDetailsUrl: function () {
        return Organization['ReservationDetailsUrl'];
    },
}

var Member = {
    IsAuthenticated: function () {
        return Member['IsAuthenticated'];
    },
}

var Common = {
    RegisterUrl: function () {
        return Member['RegisterUrl'];
    },
}

function testOrganization() {
    return "o:" + Organization.Id + ",d:" + Organization.CurrentDateTime;
}

var Navigation = {
    /*isMemberArea not used */
    Back: function (isMemberArea) {
        var historyData = Navigation.GetData();

        isMemberArea = $("#member-portal-body")[0];

        //lets change back arrow to spinner
        $('#mobile-header .hamburger-container').html('<span style="padding-left: 4px;"><i style="height: 22px;" class="fa-solid fa-circle-notch rotate-animation"></i></span>');
        $('#mobile-header .fn-navigation-wrapper').html('<span style="padding-left: 4px;"><i style="height: 22px;" class="fa-solid fa-circle-notch rotate-animation"></i></span>');

        if (historyData == null || historyData.length < 1) {
            if (!toBoolean(Member.IsAuthenticated)) {
                window.location.href = Common.RegisterUrl;
                return false;
            }

            Navigation.GoToDashboard(isMemberArea);
            return false;
        }

        var currentItem = historyData[historyData.length - 1];

        historyData.splice(historyData.length - 1, 1);
        Navigation.Store(historyData);

        if (historyData.length > 0) {
            var navItem = historyData[historyData.length - 1];
            if (navItem != null) {
                window.location.href = navItem.Url;
            }
        } else {
            if (toBoolean(Member.IsAuthenticated)) {
                Navigation.GoToDashboard(isMemberArea);
            } else {
                if (currentItem && currentItem.Url && currentItem.Url.toLowerCase().includes('forgotpassword') ||
                    currentItem && currentItem.Url && currentItem.Url.toLowerCase().includes('account/register')) {
                    window.location = '/Account/Login';
                } else {
                    window.location.href = Common.RegisterUrl;
                }
            }
        }
    },
    GoToDashboard: function (isMemberArea) {
        removeCookieById('MobileDashboardGuid');
        if (isMemberArea) {
            window.location = Organization.MobileDashboardUrl;
        } else {
            window.location = '/Mobile/Dashboard?clearNav=true';
        }
    },
    OnPaymentSuccess: function() {
        var historyData = Navigation.GetData();
        historyData = $.grep(historyData, function (el, i) {
            if (el.Url.toLowerCase().includes("processpayment") || el.Url.toLowerCase().includes("processtransactionpayments")
                || el.Url.toLowerCase().includes("viewmembership")
                || el.Url.toLowerCase().includes("memberships/index")
                    ) {
                return false;
            }

            return true;
        });

        Navigation.Store(historyData);
    },
    Clear: function () {
        sessionStorage.removeItem('MobileNavigationData');
    },
    GetData: function() {
        var historyData = [];
        var savedPages = sessionStorage.getItem("MobileNavigationData");
        if (savedPages != null && savedPages !== '') {
            historyData = JSON.parse(savedPages);

            let defaultHistoryData = historyData;

            try {
                historyData = historyData.map(function (item) {
                    if (item.Url.startsWith("//")) {
                        item.Url = item.Url.replace("//", "/");
                    }
                    return item;
                });
            } catch (e) {
                historyData = defaultHistoryData;
            }
        }
        return historyData;
    },
    Store: function(historyData) {
        sessionStorage.setItem('MobileNavigationData', JSON.stringify(historyData));
    },
    AddData: function(url) {

        var historyData = Navigation.GetData();

        var length = historyData.length;

        if (length > 0) {
            var lastAddedItem = historyData[length - 1];
            if (lastAddedItem != null && lastAddedItem.Url === url) {
                return;
            }
        }

        var newHistory = [];
        
        var itemSet = false;

        $.each(historyData, function (index, el) {
            if (!itemSet) {
                if (el.Url == url) {
                    itemSet = true;
                }
                newHistory.push(el);
            }
        });
        if (itemSet) {
            Navigation.Store(newHistory);
        } else {
            var historyPage = {
                "CreatedOn": new Date().toUTCString(),
                "Type": "Page",
                "Url": url
            };

            historyData.push(historyPage);
            Navigation.Store(historyData);
        }
    },
    RemoveCurrentUrl: function() {
        if (typeof isMobileLayout !== 'undefined' && isMobileLayout) {
            try {
                var pathname = window.location.pathname;
                var search = window.location.search;
                var currentUrl = pathname + (search == null ? "" : search);
                var fixedUrl = fixLeadingSlash(currentUrl);

                Navigation.RemoveData(fixedUrl);
            } catch (error) {

            }
        }
    },
    ClearNavigationUntil: function (urlPath) {
        var historyData = Navigation.GetData();
        var newHistory = [];
        var itemSet = false;

        $.each(historyData, function (index, el) {
            if (!itemSet) {
                try {
                    let lowerElUl = el.Url.toLowerCase();
                    let lowerUrlPath = urlPath.toLowerCase();

                    if (itemSet == false && (lowerElUl.includes(lowerUrlPath) || lowerUrlPath.includes(lowerElUl))) {
                        itemSet = true;
                    }
                } catch (e) {

                }

                newHistory.push(el);
            }
        });

        Navigation.Store(newHistory);
    },
    RemoveData: function(url) {
        var historyData = Navigation.GetData();

        historyData = $.grep(historyData, function (el, i) {
            if (el.Url === url) { // or whatever
                return false;
            }

            // do your normal code on el

            return true; // keep the element in the array
        });

        Navigation.Store(historyData);
    },
    RemoveOneItem: function() {
        var historyData = Navigation.GetData();
        if (historyData == null || historyData.length < 1) {
            return;
        }

        historyData.splice(historyData.length - 1, 1);

        Navigation.Store(historyData);
    },
    RemoveUntilAndRedirect: function (urlPath) {
        if (urlPath) {
            var historyData = Navigation.GetData();
            var newHistory = [];
            var urlToRedirect = '';

            var itemSet = false;

            // whe need to check some incoming urlPath only if contains some specific string
            var isUrlEligibleToBeCheckedForContains = false;
            try {
                isUrlEligibleToBeCheckedForContains= urlPath.includes("Reservation/ReservationDetails?reservationId=");
            } catch (e) {

            }

            $.each(historyData, function (index, el) {
                if (!itemSet) {
                    if (el.Url == urlPath) {
                        urlToRedirect = el.Url;
                        itemSet = true;
                    }

                    try {
                        if (itemSet == false && isUrlEligibleToBeCheckedForContains == true && (el.Url.includes(urlPath) || urlPath.includes(el.Url))) {
                            urlToRedirect = el.Url;
                            itemSet = true;
                        }
                    } catch (e) {

                    }

                    newHistory.push(el);
                }
            });

            Navigation.Store(newHistory);

            if (urlToRedirect) {
                window.location = urlToRedirect;
            } else {
                //something wrong
                Navigation.GoToDashboard(/*isMemberArea*/ $('#member-portal-body')[0]);
            }
        }
    },
    RedirectToSecondIndex: function() {
        //used for reservations/custom scheduler or any other pages, without knowing custom id's

        var historyData = Navigation.GetData();
        if (historyData.length > 1) {
            var secondItem = historyData[1];
            Navigation.RemoveUntilAndRedirect(/*urlPath*/ secondItem.Url);
        }
    },
    GetLatestRedirect:function() {
        var historyData = Navigation.GetData();
        if (historyData.length > 1) {
            var secondItem = historyData[historyData.length-1];
            return secondItem.Url;
        }
    },
    ClearWithParts: function (array) {
        if (isMobileLayout) {
            var historyData = Navigation.GetData();
            var newHistory = [];

            $.each(historyData, function (index, el) {
                var exists = array.some(item => el.Url.toLowerCase().includes(item.toLowerCase()));
                if (!exists) {
                    newHistory.push(el);
                }
            });

            Navigation.Store(newHistory);
        }
    }
};
(function (e, t) {
    "use strict";
    var n = e.History = e.History || {}
        , r = e.jQuery;
    if (typeof n.Adapter != "undefined")
        throw new Error("History.js Adapter has already been loaded...");
    n.Adapter = {
        bind: function (e, t, n) {
            r(e).bind(t, n)
        },
        trigger: function (e, t, n) {
            r(e).trigger(t, n)
        },
        extractEventData: function (e, n, r) {
            var i = n && n.originalEvent && n.originalEvent[e] || r && r[e] || t;
            return i
        },
        onDomLoad: function (e) {
            r(e)
        }
    },
        typeof n.init != "undefined" && n.init()
}
)(window),
    function (e, t) {
    var useStorage = true;

    try {
        var testVar = e.sessionStorage;
    } catch (e) {
        useStorage = false;
    } 
        "use strict";
        var n = e.console || t
            , r = e.document
            , i = e.navigator
            , s = useStorage ? (e.sessionStorage || !1): !1
            , o = e.setTimeout
            , u = e.clearTimeout
            , a = e.setInterval
            , f = e.clearInterval
            , l = e.JSON
            , c = e.alert
            , h = e.History = e.History || {}
            , p = e.history;
        try {
            s.setItem("TEST", "1"),
                s.removeItem("TEST")
        } catch (d) {
            s = !1
        }
        l.stringify = l.stringify || l.encode,
            l.parse = l.parse || l.decode;
        if (typeof h.init != "undefined")
            throw new Error("History.js Core has already been loaded...");
        h.init = function (e) {
            return typeof h.Adapter == "undefined" ? !1 : (typeof h.initCore != "undefined" && h.initCore(),
                typeof h.initHtml4 != "undefined" && h.initHtml4(),
                !0)
        }
            ,
            h.initCore = function (d) {
                if (typeof h.initCore.initialized != "undefined")
                    return !1;
                h.initCore.initialized = !0,
                    h.options = h.options || {},
                    h.options.hashChangeInterval = h.options.hashChangeInterval || 100,
                    h.options.safariPollInterval = h.options.safariPollInterval || 500,
                    h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500,
                    h.options.disableSuid = h.options.disableSuid || !1,
                    h.options.storeInterval = h.options.storeInterval || 1e3,
                    h.options.busyDelay = h.options.busyDelay || 250,
                    h.options.debug = h.options.debug || !1,
                    h.options.initialTitle = h.options.initialTitle || r.title,
                    h.options.html4Mode = h.options.html4Mode || !1,
                    h.options.delayInit = h.options.delayInit || !1,
                    h.intervalList = [],
                    h.clearAllIntervals = function () {
                        var e, t = h.intervalList;
                        if (typeof t != "undefined" && t !== null) {
                            for (e = 0; e < t.length; e++)
                                f(t[e]);
                            h.intervalList = null
                        }
                    }
                    ,
                    h.debug = function () {
                        (h.options.debug || !1) && h.log.apply(h, arguments)
                    }
                    ,
                    h.log = function () {
                        var e = typeof n != "undefined" && typeof n.log != "undefined" && typeof n.log.apply != "undefined", t = r.getElementById("log"), i, s, o, u, a;
                        e ? (u = Array.prototype.slice.call(arguments),
                            i = u.shift(),
                            typeof n.debug != "undefined" ? n.debug.apply(n, [i, u]) : n.log.apply(n, [i, u])) : i = "\n" + arguments[0] + "\n";
                        for (s = 1,
                            o = arguments.length; s < o; ++s) {
                            a = arguments[s];
                            if (typeof a == "object" && typeof l != "undefined")
                                try {
                                    a = l.stringify(a)
                                } catch (f) { }
                            i += "\n" + a + "\n"
                        }
                        return t ? (t.value += i + "\n-----\n",
                            t.scrollTop = t.scrollHeight - t.clientHeight) : e || c(i),
                            !0
                    }
                    ,
                    h.getInternetExplorerMajorVersion = function () {
                        var e = h.getInternetExplorerMajorVersion.cached = typeof h.getInternetExplorerMajorVersion.cached != "undefined" ? h.getInternetExplorerMajorVersion.cached : function () {
                            var e = 3
                                , t = r.createElement("div")
                                , n = t.getElementsByTagName("i");
                            while ((t.innerHTML = "<!--[if gt IE " + ++e + "]><i></i><![endif]-->") && n[0])
                                ;
                            return e > 4 ? e : !1
                        }();
                        return e
                    }
                    ,
                    h.isInternetExplorer = function () {
                        var e = h.isInternetExplorer.cached = typeof h.isInternetExplorer.cached != "undefined" ? h.isInternetExplorer.cached : Boolean(h.getInternetExplorerMajorVersion());
                        return e
                    }
                    ,
                    h.options.html4Mode ? h.emulated = {
                        pushState: !0,
                        hashChange: !0
                    } : h.emulated = {
                        pushState: !Boolean(e.history && e.history.pushState && e.history.replaceState && !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(i.userAgent) && !/AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent)),
                        hashChange: Boolean(!("onhashchange" in e || "onhashchange" in r) || h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8)
                    },
                    h.enabled = !h.emulated.pushState,
                    h.bugs = {
                        setHash: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
                        safariPoll: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
                        ieDoubleCheck: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8),
                        hashEscape: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7)
                    },
                    h.isEmptyObject = function (e) {
                        for (var t in e)
                            if (e.hasOwnProperty(t))
                                return !1;
                        return !0
                    }
                    ,
                    h.cloneObject = function (e) {
                        var t, n;
                        return e ? (t = l.stringify(e),
                            n = l.parse(t)) : n = {},
                            n
                    }
                    ,
                    h.getRootUrl = function () {
                        var e = r.location.protocol + "//" + (r.location.hostname || r.location.host);
                        if (r.location.port || !1)
                            e += ":" + r.location.port;
                        return e += "/",
                            e
                    }
                    ,
                    h.getBaseHref = function () {
                        var e = r.getElementsByTagName("base")
                            , t = null
                            , n = "";
                        return e.length === 1 && (t = e[0],
                            n = t.href.replace(/[^\/]+$/, "")),
                            n = n.replace(/\/+$/, ""),
                            n && (n += "/"),
                            n
                    }
                    ,
                    h.getBaseUrl = function () {
                        var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl();
                        return e
                    }
                    ,
                    h.getPageUrl = function () {
                        var e = h.getState(!1, !1), t = (e || {}).url || h.getLocationHref(), n;
                        return n = t.replace(/\/+$/, "").replace(/[^\/]+$/, function (e, t, n) {
                            return /\./.test(e) ? e : e + "/"
                        }),
                            n
                    }
                    ,
                    h.getBasePageUrl = function () {
                        var e = h.getLocationHref().replace(/[#\?].*/, "").replace(/[^\/]+$/, function (e, t, n) {
                            return /[^\/]$/.test(e) ? "" : e
                        }).replace(/\/+$/, "") + "/";
                        return e
                    }
                    ,
                    h.getFullUrl = function (e, t) {
                        var n = e
                            , r = e.substring(0, 1);
                        return t = typeof t == "undefined" ? !0 : t,
                            /[a-z]+\:\/\//.test(e) || (r === "/" ? n = h.getRootUrl() + e.replace(/^\/+/, "") : r === "#" ? n = h.getPageUrl().replace(/#.*/, "") + e : r === "?" ? n = h.getPageUrl().replace(/[\?#].*/, "") + e : t ? n = h.getBaseUrl() + e.replace(/^(\.\/)+/, "") : n = h.getBasePageUrl() + e.replace(/^(\.\/)+/, "")),
                            n.replace(/\#$/, "")
                    }
                    ,
                    h.getShortUrl = function (e) {
                        var t = e
                            , n = h.getBaseUrl()
                            , r = h.getRootUrl();
                        return h.emulated.pushState && (t = t.replace(n, "")),
                            t = t.replace(r, "/"),
                            h.isTraditionalAnchor(t) && (t = "./" + t),
                            t = t.replace(/^(\.\/)+/g, "./").replace(/\#$/, ""),
                            t
                    }
                    ,
                    h.getLocationHref = function (e) {
                        return e = e || r,
                            e.URL === e.location.href ? e.location.href : e.location.href === decodeURIComponent(e.URL) ? e.URL : e.location.hash && decodeURIComponent(e.location.href.replace(/^[^#]+/, "")) === e.location.hash ? e.location.href : e.URL.indexOf("#") == -1 && e.location.href.indexOf("#") != -1 ? e.location.href : e.URL || e.location.href
                    }
                    ,
                    h.store = {},
                    h.idToState = h.idToState || {},
                    h.stateToId = h.stateToId || {},
                    h.urlToId = h.urlToId || {},
                    h.storedStates = h.storedStates || [],
                    h.savedStates = h.savedStates || [],
                    h.normalizeStore = function () {
                        h.store.idToState = h.store.idToState || {},
                            h.store.urlToId = h.store.urlToId || {},
                            h.store.stateToId = h.store.stateToId || {}
                    }
                    ,
                    h.getState = function (e, t) {
                        typeof e == "undefined" && (e = !0),
                            typeof t == "undefined" && (t = !0);
                        var n = h.getLastSavedState();
                        return !n && t && (n = h.createStateObject()),
                            e && (n = h.cloneObject(n),
                                n.url = n.cleanUrl || n.url),
                            n
                    }
                    ,
                    h.getIdByState = function (e) {
                        var t = h.extractId(e.url), n;
                        if (!t) {
                            n = h.getStateString(e);
                            if (typeof h.stateToId[n] != "undefined")
                                t = h.stateToId[n];
                            else if (typeof h.store.stateToId[n] != "undefined")
                                t = h.store.stateToId[n];
                            else {
                                for (; ;) {
                                    t = (new Date).getTime() + String(Math.random()).replace(/\D/g, "");
                                    if (typeof h.idToState[t] == "undefined" && typeof h.store.idToState[t] == "undefined")
                                        break
                                }
                                h.stateToId[n] = t,
                                    h.idToState[t] = e
                            }
                        }
                        return t
                    }
                    ,
                    h.normalizeState = function (e) {
                        var t, n;
                        if (!e || typeof e != "object")
                            e = {};
                        if (typeof e.normalized != "undefined")
                            return e;
                        if (!e.data || typeof e.data != "object")
                            e.data = {};
                        return t = {},
                            t.normalized = !0,
                            t.title = e.title || "",
                            t.url = h.getFullUrl(e.url ? e.url : h.getLocationHref()),
                            t.hash = h.getShortUrl(t.url),
                            t.data = h.cloneObject(e.data),
                            t.id = h.getIdByState(t),
                            t.cleanUrl = t.url.replace(/\??\&_suid.*/, ""),
                            t.url = t.cleanUrl,
                            n = !h.isEmptyObject(t.data),
                            (t.title || n) && h.options.disableSuid !== !0 && (t.hash = h.getShortUrl(t.url).replace(/\??\&_suid.*/, ""),
                                /\?/.test(t.hash) || (t.hash += "?"),
                                t.hash += "&_suid=" + t.id),
                            t.hashedUrl = h.getFullUrl(t.hash),
                            (h.emulated.pushState || h.bugs.safariPoll) && h.hasUrlDuplicate(t) && (t.url = t.hashedUrl),
                            t
                    }
                    ,
                    h.createStateObject = function (e, t, n) {
                        var r = {
                            data: e,
                            title: t,
                            url: n
                        };
                        return r = h.normalizeState(r),
                            r
                    }
                    ,
                    h.getStateById = function (e) {
                        e = String(e);
                        var n = h.idToState[e] || h.store.idToState[e] || t;
                        return n
                    }
                    ,
                    h.getStateString = function (e) {
                        var t, n, r;
                        return t = h.normalizeState(e),
                            n = {
                                data: t.data,
                                title: e.title,
                                url: e.url
                            },
                            r = l.stringify(n),
                            r
                    }
                    ,
                    h.getStateId = function (e) {
                        var t, n;
                        return t = h.normalizeState(e),
                            n = t.id,
                            n
                    }
                    ,
                    h.getHashByState = function (e) {
                        var t, n;
                        return t = h.normalizeState(e),
                            n = t.hash,
                            n
                    }
                    ,
                    h.extractId = function (e) {
                        var t, n, r, i;
                        return e.indexOf("#") != -1 ? i = e.split("#")[0] : i = e,
                            n = /(.*)\&_suid=([0-9]+)$/.exec(i),
                            r = n ? n[1] || e : e,
                            t = n ? String(n[2] || "") : "",
                            t || !1
                    }
                    ,
                    h.isTraditionalAnchor = function (e) {
                        var t = !/[\/\?\.]/.test(e);
                        return t
                    }
                    ,
                    h.extractState = function (e, t) {
                        var n = null, r, i;
                        return t = t || !1,
                            r = h.extractId(e),
                            r && (n = h.getStateById(r)),
                            n || (i = h.getFullUrl(e),
                                r = h.getIdByUrl(i) || !1,
                                r && (n = h.getStateById(r)),
                                !n && t && !h.isTraditionalAnchor(e) && (n = h.createStateObject(null, null, i))),
                            n
                    }
                    ,
                    h.getIdByUrl = function (e) {
                        var n = h.urlToId[e] || h.store.urlToId[e] || t;
                        return n
                    }
                    ,
                    h.getLastSavedState = function () {
                        return h.savedStates[h.savedStates.length - 1] || t
                    }
                    ,
                    h.getLastStoredState = function () {
                        return h.storedStates[h.storedStates.length - 1] || t
                    }
                    ,
                    h.hasUrlDuplicate = function (e) {
                        var t = !1, n;
                        return n = h.extractState(e.url),
                            t = n && n.id !== e.id,
                            t
                    }
                    ,
                    h.storeState = function (e) {
                        return h.urlToId[e.url] = e.id,
                            h.storedStates.push(h.cloneObject(e)),
                            e
                    }
                    ,
                    h.isLastSavedState = function (e) {
                        var t = !1, n, r, i;
                        return h.savedStates.length && (n = e.id,
                            r = h.getLastSavedState(),
                            i = r.id,
                            t = n === i),
                            t
                    }
                    ,
                    h.saveState = function (e) {
                        return h.isLastSavedState(e) ? !1 : (h.savedStates.push(h.cloneObject(e)),
                            !0)
                    }
                    ,
                    h.getStateByIndex = function (e) {
                        var t = null;
                        return typeof e == "undefined" ? t = h.savedStates[h.savedStates.length - 1] : e < 0 ? t = h.savedStates[h.savedStates.length + e] : t = h.savedStates[e],
                            t
                    }
                    ,
                    h.getCurrentIndex = function () {
                        var e = null;
                        return h.savedStates.length < 1 ? e = 0 : e = h.savedStates.length - 1,
                            e
                    }
                    ,
                    h.getHash = function (e) {
                        var t = h.getLocationHref(e), n;
                        return n = h.getHashByUrl(t),
                            n
                    }
                    ,
                    h.unescapeHash = function (e) {
                        var t = h.normalizeHash(e);
                        return t = decodeURIComponent(t),
                            t
                    }
                    ,
                    h.normalizeHash = function (e) {
                        var t = e.replace(/[^#]*#/, "").replace(/#.*/, "");
                        return t
                    }
                    ,
                    h.setHash = function (e, t) {
                        var n, i;
                        return t !== !1 && h.busy() ? (h.pushQueue({
                            scope: h,
                            callback: h.setHash,
                            args: arguments,
                            queue: t
                        }),
                            !1) : (h.busy(!0),
                                n = h.extractState(e, !0),
                                n && !h.emulated.pushState ? h.pushState(n.data, n.title, n.url, !1) : h.getHash() !== e && (h.bugs.setHash ? (i = h.getPageUrl(),
                                    h.pushState(null, null, i + "#" + e, !1)) : r.location.hash = e),
                                h)
                    }
                    ,
                    h.escapeHash = function (t) {
                        var n = h.normalizeHash(t);
                        return n = e.encodeURIComponent(n),
                            h.bugs.hashEscape || (n = n.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")),
                            n
                    }
                    ,
                    h.getHashByUrl = function (e) {
                        var t = String(e).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2");
                        return t = h.unescapeHash(t),
                            t
                    }
                    ,
                    h.setTitle = function (e) {
                        var t = e.title, n;
                        t || (n = h.getStateByIndex(0),
                            n && n.url === e.url && (t = n.title || h.options.initialTitle));
                        try {
                            r.getElementsByTagName("title")[0].innerHTML = t.replace("<", "&lt;").replace(">", "&gt;").replace(" & ", " &amp; ")
                        } catch (i) { }
                        return r.title = t,
                            h
                    }
                    ,
                    h.queues = [],
                    h.busy = function (e) {
                        typeof e != "undefined" ? h.busy.flag = e : typeof h.busy.flag == "undefined" && (h.busy.flag = !1);
                        if (!h.busy.flag) {
                            u(h.busy.timeout);
                            var t = function () {
                                var e, n, r;
                                if (h.busy.flag)
                                    return;
                                for (e = h.queues.length - 1; e >= 0; --e) {
                                    n = h.queues[e];
                                    if (n.length === 0)
                                        continue;
                                    r = n.shift(),
                                        h.fireQueueItem(r),
                                        h.busy.timeout = o(t, h.options.busyDelay)
                                }
                            };
                            h.busy.timeout = o(t, h.options.busyDelay)
                        }
                        return h.busy.flag
                    }
                    ,
                    h.busy.flag = !1,
                    h.fireQueueItem = function (e) {
                        return e.callback.apply(e.scope || h, e.args || [])
                    }
                    ,
                    h.pushQueue = function (e) {
                        return h.queues[e.queue || 0] = h.queues[e.queue || 0] || [],
                            h.queues[e.queue || 0].push(e),
                            h
                    }
                    ,
                    h.queue = function (e, t) {
                        return typeof e == "function" && (e = {
                            callback: e
                        }),
                            typeof t != "undefined" && (e.queue = t),
                            h.busy() ? h.pushQueue(e) : h.fireQueueItem(e),
                            h
                    }
                    ,
                    h.clearQueue = function () {
                        return h.busy.flag = !1,
                            h.queues = [],
                            h
                    }
                    ,
                    h.stateChanged = !1,
                    h.doubleChecker = !1,
                    h.doubleCheckComplete = function () {
                        return h.stateChanged = !0,
                            h.doubleCheckClear(),
                            h
                    }
                    ,
                    h.doubleCheckClear = function () {
                        return h.doubleChecker && (u(h.doubleChecker),
                            h.doubleChecker = !1),
                            h
                    }
                    ,
                    h.doubleCheck = function (e) {
                        return h.stateChanged = !1,
                            h.doubleCheckClear(),
                            h.bugs.ieDoubleCheck && (h.doubleChecker = o(function () {
                                return h.doubleCheckClear(),
                                    h.stateChanged || e(),
                                    !0
                            }, h.options.doubleCheckInterval)),
                            h
                    }
                    ,
                    h.safariStatePoll = function () {
                        var t = h.extractState(h.getLocationHref()), n;
                        if (!h.isLastSavedState(t))
                            return n = t,
                                n || (n = h.createStateObject()),
                                h.Adapter.trigger(e, "popstate"),
                                h;
                        return
                    }
                    ,
                    h.back = function (e) {
                        return e !== !1 && h.busy() ? (h.pushQueue({
                            scope: h,
                            callback: h.back,
                            args: arguments,
                            queue: e
                        }),
                            !1) : (h.busy(!0),
                                h.doubleCheck(function () {
                                    h.back(!1)
                                }),
                                p.go(-1),
                                !0)
                    }
                    ,
                    h.forward = function (e) {
                        return e !== !1 && h.busy() ? (h.pushQueue({
                            scope: h,
                            callback: h.forward,
                            args: arguments,
                            queue: e
                        }),
                            !1) : (h.busy(!0),
                                h.doubleCheck(function () {
                                    h.forward(!1)
                                }),
                                p.go(1),
                                !0)
                    }
                    ,
                    h.go = function (e, t) {
                        var n;
                        if (e > 0)
                            for (n = 1; n <= e; ++n)
                                h.forward(t);
                        else {
                            if (!(e < 0))
                                throw new Error("History.go: History.go requires a positive or negative integer passed.");
                            for (n = -1; n >= e; --n)
                                h.back(t)
                        }
                        return h
                    }
                    ;
                if (h.emulated.pushState) {
                    var v = function () { };
                    h.pushState = h.pushState || v,
                        h.replaceState = h.replaceState || v
                } else
                    h.onPopState = function (t, n) {
                        var r = !1, i = !1, s, o;
                        return h.doubleCheckComplete(),
                            s = h.getHash(),
                            s ? (o = h.extractState(s || h.getLocationHref(), !0),
                                o ? h.replaceState(o.data, o.title, o.url, !1) : (h.Adapter.trigger(e, "anchorchange"),
                                    h.busy(!1)),
                                h.expectedStateId = !1,
                                !1) : (r = h.Adapter.extractEventData("state", t, n) || !1,
                                    r ? i = h.getStateById(r) : h.expectedStateId ? i = h.getStateById(h.expectedStateId) : i = h.extractState(h.getLocationHref()),
                                    i || (i = h.createStateObject(null, null, h.getLocationHref())),
                                    h.expectedStateId = !1,
                                    h.isLastSavedState(i) ? (h.busy(!1),
                                        !1) : (h.storeState(i),
                                            h.saveState(i),
                                            h.setTitle(i),
                                            h.Adapter.trigger(e, "statechange"),
                                            h.busy(!1),
                                            !0))
                    }
                        ,
                        h.Adapter.bind(e, "popstate", h.onPopState),
                        h.pushState = function (t, n, r, i) {
                            if (h.getHashByUrl(r) && h.emulated.pushState)
                                throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
                            if (i !== !1 && h.busy())
                                return h.pushQueue({
                                    scope: h,
                                    callback: h.pushState,
                                    args: arguments,
                                    queue: i
                                }),
                                    !1;
                            h.busy(!0);
                            var s = h.createStateObject(t, n, r);
                            return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s),
                                h.expectedStateId = s.id,
                                p.pushState(s.id, s.title, s.url),
                                h.Adapter.trigger(e, "popstate")),
                                !0
                        }
                        ,
                        h.replaceState = function (t, n, r, i) {
                            if (h.getHashByUrl(r) && h.emulated.pushState)
                                throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
                            if (i !== !1 && h.busy())
                                return h.pushQueue({
                                    scope: h,
                                    callback: h.replaceState,
                                    args: arguments,
                                    queue: i
                                }),
                                    !1;
                            h.busy(!0);
                            var s = h.createStateObject(t, n, r);
                            return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s),
                                h.expectedStateId = s.id,
                                p.replaceState(s.id, s.title, s.url),
                                h.Adapter.trigger(e, "popstate")),
                                !0
                        }
                        ;
                if (s) {
                    try {
                        h.store = l.parse(s.getItem("History.store")) || {}
                    } catch (m) {
                        h.store = {}
                    }
                    h.normalizeStore()
                } else
                    h.store = {},
                        h.normalizeStore();
                h.Adapter.bind(e, "unload", h.clearAllIntervals),
                    h.saveState(h.storeState(h.extractState(h.getLocationHref(), !0))),
                    s && (h.onUnload = function () {
                        var e, t, n;
                        try {
                            e = l.parse(s.getItem("History.store")) || {}
                        } catch (r) {
                            e = {}
                        }
                        e.idToState = e.idToState || {},
                            e.urlToId = e.urlToId || {},
                            e.stateToId = e.stateToId || {};
                        for (t in h.idToState) {
                            if (!h.idToState.hasOwnProperty(t))
                                continue;
                            e.idToState[t] = h.idToState[t]
                        }
                        for (t in h.urlToId) {
                            if (!h.urlToId.hasOwnProperty(t))
                                continue;
                            e.urlToId[t] = h.urlToId[t]
                        }
                        for (t in h.stateToId) {
                            if (!h.stateToId.hasOwnProperty(t))
                                continue;
                            e.stateToId[t] = h.stateToId[t]
                        }
                        h.store = e,
                            h.normalizeStore(),
                            n = l.stringify(e);
                        try {
                            s.setItem("History.store", n)
                        } catch (i) {
                            if (i.code !== DOMException.QUOTA_EXCEEDED_ERR)
                                throw i;
                            s.length && (s.removeItem("History.store"),
                                s.setItem("History.store", n))
                        }
                    }
                        ,
                        h.intervalList.push(a(h.onUnload, h.options.storeInterval)),
                        h.Adapter.bind(e, "beforeunload", h.onUnload),
                        h.Adapter.bind(e, "unload", h.onUnload));
                if (!h.emulated.pushState) {
                    h.bugs.safariPoll && h.intervalList.push(a(h.safariStatePoll, h.options.safariPollInterval));
                    if (i.vendor === "Apple Computer, Inc." || (i.appCodeName || "") === "Mozilla")
                        h.Adapter.bind(e, "hashchange", function () {
                            h.Adapter.trigger(e, "popstate")
                        }),
                            h.getHash() && h.Adapter.onDomLoad(function () {
                                h.Adapter.trigger(e, "hashchange")
                            })
                }
            }
            ,
            (!h.options || !h.options.delayInit) && h.init()
    }(window)
;

/*
Copyright (C) <2012> <haithem bel haj>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

(function() {

    window.Router = (function() {

        Router.namedParam = /:\w+/g;

        Router.splatParam = /\*\w+/g;

        Router.prototype.trigger = true;

        function Router(routes) {
            var _this = this;
            this.routes = routes != null ? routes : {};
            History.Adapter.bind(window,
                'statechange',
                function() {
                    return _this.checkRoutes(History.getState());
                });
        }

        Router.prototype.route = function(route, callback) {
            route = route.replace(Router.namedParam, '([^\/]+)').replace(Router.splatParam, '(.*?)');
            return this.routes["^" + route + "$"] = callback;
        };

        Router.prototype.checkRoutes = function(state) {
            var callback, regex, regexText, url, _ref;
            if (this.trigger) {
                _ref = this.routes;
                for (regexText in _ref) {
                    callback = _ref[regexText];
                    regex = new RegExp(regexText);
                    url = state.data.url || state.hash;
                    if (regex.test(url)) callback.apply(window, regex.exec(url).slice(1));
                }
            }
            return this.trigger = true;
        };

        Router.prototype.navigate = function(url, trigger, replace, name) {
            if (trigger == null) trigger = true;
            if (replace == null) replace = false;
            if (name == null) name = null;
            this.trigger = trigger;
            if (replace) {
                return History.replaceState({
                        'url': url,
                        'name': name
                    },
                    null,
                    url);
            } else {
                return History.pushState({
                        'url': url,
                        'name': name
                    },
                    null,
                    url);
            }
        };

        Router.prototype.start = function(url) {
            var stateObj = {};
            if (url != null) stateObj = { data: { url: url } };
            else stateObj = History.getState();
            return this.checkRoutes(stateObj);
        };

        Router.prototype.go = function(num) {
            return History.go(num);
        };

        Router.prototype.back = function() {
            return History.back();
        };

        return Router;

    })();

}).call(this);;
var mobileScrollTimer;
var startScrollY;

function fixDropDownScrollClickIssue() {
    document.addEventListener('scroll', function (event) {
        activeMobileScrolling = true; //systemscript.js
        clearTimeout(mobileScrollTimer);
        mobileScrollTimer = setTimeout(function () { mobileAfterScroll() }, 500);
    }, true);
}

function mobileAfterScroll() {
    activeMobileScrolling = false; //systemscript.js
}

document.addEventListener('touchstart', function (e) {
    try {
        startScrollY = e.touches[0].clientY;
    } catch (e) { }
}, true);


document.addEventListener('touchmove', function (e) {
    var currentY = e.touches[0].clientY;
    var scrollingDifference = Math.abs(startScrollY - currentY);

    if (scrollingDifference > 30) {
        activeMobileScrolling = true;
    }
}, false);

document.addEventListener('touchend', function (e) {
    var endY = e.changedTouches[0].clientY;
    var scrollingDifference = 0;

    // Compare startY with endY to determine scroll direction
    if (startScrollY > endY) {
        scrollingDifference = startScrollY - endY;
    } else if (startScrollY < endY) {
        scrollingDifference = endY - startScrollY;
    }

    //mobileKeyboardOpened mobile.js
    if (scrollingDifference > 30 && !mobileKeyboardOpened) {
        if (e.cancelable) {
            e.preventDefault();
        }

        const focusedElement = document.activeElement;

        if (focusedElement && focusedElement !== document.body) { // Check if there's an element focused and it's not the body
            focusedElement.blur(); // This will remove focus from the element
        }

        activeMobileScrolling = true; //systemscript.js
        clearTimeout(mobileScrollTimer);
        mobileScrollTimer = setTimeout(function () { mobileAfterScroll() }, 500);
    }

    // Reset startY for the next touch event
    startScrollY = null;
}, false);

document.addEventListener('mouseup', function (e) {
    activeMobileScrolling = false;
}, true);

document.addEventListener('mousedown', function (event) {
    activeMobileScrolling = false;
}, true);;
/*
 Copyright (C) Federico Zivolo 2017
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:e?e.ownerDocument.documentElement:document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||n;return r[o]}return e[o]}function l(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function f(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+i+'Width'],10)}function m(e,t,o,i){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=document.body,t=document.documentElement,o=ie()&&getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,m=e.offsetHeight-d;if(l||m){var g=t(e);l-=f(g,'x'),m-=f(g,'y'),r.width-=l,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),f=parseFloat(a.borderTopWidth,10),m=parseFloat(a.borderLeftWidth,10),h=c({top:p.top-s.top-f,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(a.marginTop,10),b=parseFloat(a.marginLeft,10);h.top-=f-u,h.bottom-=f-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=l(h,o)),h}function b(e){var t=e.ownerDocument.documentElement,o=u(e,t),i=J(t.clientWidth,window.innerWidth||0),n=J(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function w(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||w(o(e))}function y(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(t)),'BODY'===a.nodeName&&(a=e.ownerDocument.documentElement)):'window'===r?a=e.ownerDocument.documentElement:a=r;var l=u(a,s);if('HTML'===a.nodeName&&!w(s)){var f=h(),m=f.height,c=f.width;p.top+=l.top-l.marginTop,p.bottom=m+l.top,p.left+=l.left-l.marginLeft,p.right=c+l.left}else p=l}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function E(e){var t=e.width,o=e.height;return t*o}function v(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=y(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:E(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function O(e,t,o){var i=d(t,o);return u(o,i)}function L(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function x(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function S(e,t,o){o=o.split('-')[0];var i=L(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[x(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function D(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function C(t,o,i){var n=void 0===i?t:t.slice(0,D(t,'name',i));return n.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t['function']||t.fn;t.enabled&&e(i)&&(o.offsets.popper=c(o.offsets.popper),o.offsets.reference=c(o.offsets.reference),o=i(o,t))}),o}function N(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference),e.placement=v(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=C(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function k(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function W(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function P(){return this.state.isDestroyed=!0,k(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.popper.style.position='',this.popper.style.top='',this.popper.style[W('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function B(e){var t=e.ownerDocument;return t?t.defaultView:window}function H(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||H(n(p.parentNode),t,o,i),i.push(p)}function A(e,t,o,i){o.updateBound=i,B(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return H(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=A(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return B(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function R(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function U(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function Y(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&U(t[o])&&(i='px'),e.style[o]=t[o]+i})}function j(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function K(e){return'end'===e?'start':'start'===e?'end':e}function q(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ae.indexOf(e),i=ae.slice(o+1).concat(ae.slice(0,o));return t?i.reverse():i}function V(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=i;}var d=c(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function z(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,i){var n=(1===i?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return V(e,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){U(o)&&(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}function G(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=U(+i)?[+i,0]:z(i,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var _=Math.min,X=Math.floor,J=Math.max,Q='undefined'!=typeof window&&'undefined'!=typeof document,Z=['Edge','Trident','Firefox'],$=0,ee=0;ee<Z.length;ee+=1)if(Q&&0<=navigator.userAgent.indexOf(Z[ee])){$=1;break}var i,te=Q&&window.Promise,oe=te?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},$))}},ie=function(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},ne=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},re=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),pe=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},se=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},de=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ae=de.slice(3),le={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},fe=function(){function t(o,i){var n=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};ne(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=oe(this.update.bind(this)),this.options=se({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(se({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=se({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return se({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return re(t,[{key:'update',value:function(){return N.call(this)}},{key:'destroy',value:function(){return P.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return R.call(this)}}]),t}();return fe.Utils=('undefined'==typeof window?global:window).PopperUtils,fe.placements=de,fe.Defaults={placement:'bottom',eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:pe({},d,r[d]),end:pe({},d,r[d]+r[a]-p[a])};e.offsets.popper=se({},p,l[i])}return e}},offset:{order:200,enabled:!0,fn:G,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=y(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=J(p[e],i[e])),pe({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=_(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=X,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var i;if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var n=o.element;if('string'==typeof n){if(n=e.instance.popper.querySelector(n),!n)return e;}else if(!e.instance.popper.contains(n))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',g=a?'bottom':'right',u=L(n)[l];d[g]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[g]-u)),d[m]+u>s[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=J(_(s[l]-u,v),0),e.arrowElement=n,e.offsets.arrow=(i={},pe(i,m,Math.round(v)),pe(i,h,''),i),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(k(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=x(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case le.FLIP:p=[i,n];break;case le.CLOCKWISE:p=q(i);break;case le.COUNTERCLOCKWISE:p=q(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=x(i);var a=e.offsets.popper,l=e.offsets.reference,f=X,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)<f(l.right)||'top'===i&&f(a.bottom)>f(l.top)||'bottom'===i&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,w=-1!==['top','bottom'].indexOf(i),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),y&&(r=K(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=C(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=x(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===p?t.gpuAcceleration:p,l=r(e.instance.popper),f=g(l),m={position:n.position},h={left:X(n.left),top:X(n.top),bottom:X(n.bottom),right:X(n.right)},c='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=W('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==u?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[u]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==u?-1:1;m[c]=d*w,m[u]=s*y,m.willChange=c+', '+u}var E={"x-placement":e.placement};return e.attributes=se({},E,e.attributes),e.styles=se({},m,e.styles),e.arrowStyles=se({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return Y(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Y(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,i,n){var r=O(n,t,e),p=v(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),Y(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},fe});
//# sourceMappingURL=popper.min.js.map;
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("popper.js"),require("jquery")):"function"==typeof define&&define.amd?define(["exports","popper.js","jquery"],e):e(t.bootstrap={},t.Popper,t.jQuery)}(this,function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach(function(e){var i,o,r;i=t,r=n[o=e],o in i?Object.defineProperty(i,o,{value:r,enumerable:!0,configurable:!0,writable:!0}):i[o]=r})}return t}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s="transitionend";var a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}return e&&document.querySelector(e)?e:null},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=n(t).css("transition-duration"),i=n(t).css("transition-delay"),o=parseFloat(e),r=parseFloat(i);return o||r?(e=e.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(e)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){n(t).trigger(s)},supportsTransitionEnd:function(){return Boolean(s)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&a.isElement(r)?"element":(l=r,{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?a.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};n.fn.emulateTransitionEnd=function(t){var e=this,i=!1;return n(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(e)},t),this},n.event.special[a.TRANSITION_END]={bindType:s,delegateType:s,handle:function(t){if(n(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var l="alert",c="bs.alert",h="."+c,u=n.fn[l],f={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+".data-api"},d=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){n.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=a.getSelectorFromElement(t),i=!1;return e&&(i=document.querySelector(e)),i||(i=n(t).closest(".alert")[0]),i},e._triggerCloseEvent=function(t){var e=n.Event(f.CLOSE);return n(t).trigger(e),e},e._removeElement=function(t){var e=this;if(n(t).removeClass("show"),n(t).hasClass("fade")){var i=a.getTransitionDurationFromElement(t);n(t).one(a.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(i)}else this._destroyElement(t)},e._destroyElement=function(t){n(t).detach().trigger(f.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var i=n(this),o=i.data(c);o||(o=new t(this),i.data(c,o)),"close"===e&&o[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}}]),t}();n(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',d._handleDismiss(new d)),n.fn[l]=d._jQueryInterface,n.fn[l].Constructor=d,n.fn[l].noConflict=function(){return n.fn[l]=u,d._jQueryInterface};var g="button",_="bs.button",m="."+_,p=".data-api",v=n.fn[g],E="active",y='[data-toggle^="button"]',C=".btn",T={CLICK_DATA_API:"click"+m+p,FOCUS_BLUR_DATA_API:"focus"+m+p+" blur"+m+p},S=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,i=n(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains(E))t=!1;else{var r=i.querySelector(".active");r&&n(r).removeClass(E)}if(t){if(o.hasAttribute("disabled")||i.hasAttribute("disabled")||o.classList.contains("disabled")||i.classList.contains("disabled"))return;o.checked=!this._element.classList.contains(E),n(o).trigger("change")}o.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(E)),t&&n(this._element).toggleClass(E)},e.dispose=function(){n.removeData(this._element,_),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var i=n(this).data(_);i||(i=new t(this),n(this).data(_,i)),"toggle"===e&&i[e]()})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}}]),t}();n(document).on(T.CLICK_DATA_API,y,function(t){t.preventDefault();var e=t.target;n(e).hasClass("btn")||(e=n(e).closest(C)),S._jQueryInterface.call(n(e),"toggle")}).on(T.FOCUS_BLUR_DATA_API,y,function(t){var e=n(t.target).closest(C)[0];n(e).toggleClass("focus",/^focus(in)?$/.test(t.type))}),n.fn[g]=S._jQueryInterface,n.fn[g].Constructor=S,n.fn[g].noConflict=function(){return n.fn[g]=v,S._jQueryInterface};var b="carousel",I="bs.carousel",D="."+I,w=".data-api",A=n.fn[b],N={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},O={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},k="next",P="prev",L={SLIDE:"slide"+D,SLID:"slid"+D,KEYDOWN:"keydown"+D,MOUSEENTER:"mouseenter"+D,MOUSELEAVE:"mouseleave"+D,TOUCHSTART:"touchstart"+D,TOUCHMOVE:"touchmove"+D,TOUCHEND:"touchend"+D,POINTERDOWN:"pointerdown"+D,POINTERUP:"pointerup"+D,DRAG_START:"dragstart"+D,LOAD_DATA_API:"load"+D+w,CLICK_DATA_API:"click"+D+w},j="active",H=".active.carousel-item",R=".carousel-indicators",U={TOUCH:"touch",PEN:"pen"},W=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(R),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(k)},e.nextWhenVisible=function(){!document.hidden&&n(this._element).is(":visible")&&"hidden"!==n(this._element).css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(P)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(a.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(H);var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)n(this._element).one(L.SLID,function(){return e.to(t)});else{if(i===t)return this.pause(),void this.cycle();var o=i<t?k:P;this._slide(o,this._items[t])}},e.dispose=function(){n(this._element).off(D),n.removeData(this._element,I),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},N,t),a.typeCheckConfig(b,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&n(this._element).on(L.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&n(this._element).on(L.MOUSEENTER,function(e){return t.pause(e)}).on(L.MOUSELEAVE,function(e){return t.cycle(e)}),this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&U[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&U[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};n(this._element.querySelectorAll(".carousel-item img")).on(L.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(n(this._element).on(L.POINTERDOWN,function(t){return e(t)}),n(this._element).on(L.POINTERUP,function(t){return i(t)}),this._element.classList.add("pointer-event")):(n(this._element).on(L.TOUCHSTART,function(t){return e(t)}),n(this._element).on(L.TOUCHMOVE,function(e){var n;(n=e).originalEvent.touches&&1<n.originalEvent.touches.length?t.touchDeltaX=0:t.touchDeltaX=n.originalEvent.touches[0].clientX-t.touchStartX}),n(this._element).on(L.TOUCHEND,function(t){return i(t)}))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===k,i=t===P,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===P?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(H)),r=n.Event(L.SLIDE,{relatedTarget:t,direction:e,from:o,to:i});return n(this._element).trigger(r),r},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));n(e).removeClass(j);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&n(i).addClass(j)}},e._slide=function(t,e){var i,o,r,s=this,l=this._element.querySelector(H),c=this._getItemIndex(l),h=e||l&&this._getItemByDirection(t,l),u=this._getItemIndex(h),f=Boolean(this._interval);if(r=t===k?(i="carousel-item-left",o="carousel-item-next","left"):(i="carousel-item-right",o="carousel-item-prev","right"),h&&n(h).hasClass(j))this._isSliding=!1;else if(!this._triggerSlideEvent(h,r).isDefaultPrevented()&&l&&h){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(h);var d=n.Event(L.SLID,{relatedTarget:h,direction:r,from:c,to:u});if(n(this._element).hasClass("slide")){n(h).addClass(o),a.reflow(h),n(l).addClass(i),n(h).addClass(i);var g=parseInt(h.getAttribute("data-interval"),10);this._config.interval=g?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,g):this._config.defaultInterval||this._config.interval;var _=a.getTransitionDurationFromElement(l);n(l).one(a.TRANSITION_END,function(){n(h).removeClass(i+" "+o).addClass(j),n(l).removeClass(j+" "+o+" "+i),s._isSliding=!1,setTimeout(function(){return n(s._element).trigger(d)},0)}).emulateTransitionEnd(_)}else n(l).removeClass(j),n(h).addClass(j),this._isSliding=!1,n(this._element).trigger(d);f&&this.cycle()}},t._jQueryInterface=function(e){return this.each(function(){var i=n(this).data(I),o=r({},N,n(this).data());"object"==typeof e&&(o=r({},o,e));var s="string"==typeof e?e:o.slide;if(i||(i=new t(this,o),n(this).data(I,i)),"number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else o.interval&&(i.pause(),i.cycle())})},t._dataApiClickHandler=function(e){var i=a.getSelectorFromElement(this);if(i){var o=n(i)[0];if(o&&n(o).hasClass("carousel")){var s=r({},n(o).data(),n(this).data()),l=this.getAttribute("data-slide-to");l&&(s.interval=!1),t._jQueryInterface.call(n(o),s),l&&n(o).data(I).to(l),e.preventDefault()}}},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return N}}]),t}();n(document).on(L.CLICK_DATA_API,"[data-slide], [data-slide-to]",W._dataApiClickHandler),n(window).on(L.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,i=t.length;e<i;e++){var o=n(t[e]);W._jQueryInterface.call(o,o.data())}}),n.fn[b]=W._jQueryInterface,n.fn[b].Constructor=W,n.fn[b].noConflict=function(){return n.fn[b]=A,W._jQueryInterface};var x="collapse",F="bs.collapse",q="."+F,M=n.fn[x],K={toggle:!0,parent:""},Q={toggle:"boolean",parent:"(string|element)"},B={SHOW:"show"+q,SHOWN:"shown"+q,HIDE:"hide"+q,HIDDEN:"hidden"+q,CLICK_DATA_API:"click"+q+".data-api"},V="show",Y="collapse",X="collapsing",z="collapsed",G='[data-toggle="collapse"]',J=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(G)),i=0,o=n.length;i<o;i++){var r=n[i],s=a.getSelectorFromElement(r),l=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&0<l.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){n(this._element).hasClass(V)?this.hide():this.show()},e.show=function(){var e,i,o=this;if(!(this._isTransitioning||n(this._element).hasClass(V)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains(Y)})).length&&(e=null),e&&(i=n(e).not(this._selector).data(F))&&i._isTransitioning))){var r=n.Event(B.SHOW);if(n(this._element).trigger(r),!r.isDefaultPrevented()){e&&(t._jQueryInterface.call(n(e).not(this._selector),"hide"),i||n(e).data(F,null));var s=this._getDimension();n(this._element).removeClass(Y).addClass(X),this._element.style[s]=0,this._triggerArray.length&&n(this._triggerArray).removeClass(z).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),c=a.getTransitionDurationFromElement(this._element);n(this._element).one(a.TRANSITION_END,function(){n(o._element).removeClass(X).addClass(Y).addClass(V),o._element.style[s]="",o.setTransitioning(!1),n(o._element).trigger(B.SHOWN)}).emulateTransitionEnd(c),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&n(this._element).hasClass(V)){var e=n.Event(B.HIDE);if(n(this._element).trigger(e),!e.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",a.reflow(this._element),n(this._element).addClass(X).removeClass(Y).removeClass(V);var o=this._triggerArray.length;if(0<o)for(var r=0;r<o;r++){var s=this._triggerArray[r],l=a.getSelectorFromElement(s);null!==l&&(n([].slice.call(document.querySelectorAll(l))).hasClass(V)||n(s).addClass(z).attr("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[i]="";var c=a.getTransitionDurationFromElement(this._element);n(this._element).one(a.TRANSITION_END,function(){t.setTransitioning(!1),n(t._element).removeClass(X).addClass(Y).trigger(B.HIDDEN)}).emulateTransitionEnd(c)}}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){n.removeData(this._element,F),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=r({},K,t)).toggle=Boolean(t.toggle),a.typeCheckConfig(x,t,Q),t},e._getDimension=function(){return n(this._element).hasClass("width")?"width":"height"},e._getParent=function(){var e,i=this;a.isElement(this._config.parent)?(e=this._config.parent,void 0!==this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var o='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',r=[].slice.call(e.querySelectorAll(o));return n(r).each(function(e,n){i._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),e},e._addAriaAndCollapsedClass=function(t,e){var i=n(t).hasClass(V);e.length&&n(e).toggleClass(z,!i).attr("aria-expanded",i)},t._getTargetFromElement=function(t){var e=a.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(e){return this.each(function(){var i=n(this),o=i.data(F),s=r({},K,i.data(),"object"==typeof e&&e?e:{});if(!o&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),o||(o=new t(this,s),i.data(F,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e]()}})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return K}}]),t}();n(document).on(B.CLICK_DATA_API,G,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var e=n(this),i=a.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(i));n(o).each(function(){var t=n(this),i=t.data(F)?"toggle":e.data();J._jQueryInterface.call(t,i)})}),n.fn[x]=J._jQueryInterface,n.fn[x].Constructor=J,n.fn[x].noConflict=function(){return n.fn[x]=M,J._jQueryInterface};var Z="dropdown",$="bs.dropdown",tt="."+$,et=".data-api",nt=n.fn[Z],it=new RegExp("38|40|27"),ot={HIDE:"hide"+tt,HIDDEN:"hidden"+tt,SHOW:"show"+tt,SHOWN:"shown"+tt,CLICK:"click"+tt,CLICK_DATA_API:"click"+tt+et,KEYDOWN_DATA_API:"keydown"+tt+et,KEYUP_DATA_API:"keyup"+tt+et},rt="disabled",st="show",at="dropdown-menu-right",lt='[data-toggle="dropdown"]',ct=".dropdown-menu",ht={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},ut={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},ft=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var i=t.prototype;return i.toggle=function(){if(!this._element.disabled&&!n(this._element).hasClass(rt)){var i=t._getParentFromElement(this._element),o=n(this._menu).hasClass(st);if(t._clearMenus(),!o){var r={relatedTarget:this._element},s=n.Event(ot.SHOW,r);if(n(i).trigger(s),!s.isDefaultPrevented()){if(!this._inNavbar){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var l=this._element;"parent"===this._config.reference?l=i:a.isElement(this._config.reference)&&(l=this._config.reference,void 0!==this._config.reference.jquery&&(l=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n(i).addClass("position-static"),this._popper=new e(l,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===n(i).closest(".navbar-nav").length&&n(document.body).children().on("mouseover",null,n.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),n(this._menu).toggleClass(st),n(i).toggleClass(st).trigger(n.Event(ot.SHOWN,r))}}}},i.show=function(){if(!(this._element.disabled||n(this._element).hasClass(rt)||n(this._menu).hasClass(st))){var e={relatedTarget:this._element},i=n.Event(ot.SHOW,e),o=t._getParentFromElement(this._element);n(o).trigger(i),i.isDefaultPrevented()||(n(this._menu).toggleClass(st),n(o).toggleClass(st).trigger(n.Event(ot.SHOWN,e)))}},i.hide=function(){if(!this._element.disabled&&!n(this._element).hasClass(rt)&&n(this._menu).hasClass(st)){var e={relatedTarget:this._element},i=n.Event(ot.HIDE,e),o=t._getParentFromElement(this._element);n(o).trigger(i),i.isDefaultPrevented()||(n(this._menu).toggleClass(st),n(o).toggleClass(st).trigger(n.Event(ot.HIDDEN,e)))}},i.dispose=function(){n.removeData(this._element,$),n(this._element).off(tt),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;n(this._element).on(ot.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=r({},this.constructor.Default,n(this._element).data(),t),a.typeCheckConfig(Z,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(ct))}return this._menu},i._getPlacement=function(){var t=n(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?(e="top-start",n(this._menu).hasClass(at)&&(e="top-end")):t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":n(this._menu).hasClass(at)&&(e="bottom-end"),e},i._detectNavbar=function(){return 0<n(this._element).closest(".navbar").length},i._getPopperConfig=function(){var t=this,e={};"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},t._jQueryInterface=function(e){return this.each(function(){var i=n(this).data($);if(i||(i=new t(this,"object"==typeof e?e:null),n(this).data($,i)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var i=[].slice.call(document.querySelectorAll(lt)),o=0,r=i.length;o<r;o++){var s=t._getParentFromElement(i[o]),a=n(i[o]).data($),l={relatedTarget:i[o]};if(e&&"click"===e.type&&(l.clickEvent=e),a){var c=a._menu;if(n(s).hasClass(st)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&n.contains(s,e.target))){var h=n.Event(ot.HIDE,l);n(s).trigger(h),h.isDefaultPrevented()||("ontouchstart"in document.documentElement&&n(document.body).children().off("mouseover",null,n.noop),i[o].setAttribute("aria-expanded","false"),n(c).removeClass(st),n(s).removeClass(st).trigger(n.Event(ot.HIDDEN,l)))}}}},t._getParentFromElement=function(t){var e,n=a.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||n(e.target).closest(ct).length)):it.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!n(this).hasClass(rt))){var i=t._getParentFromElement(this),o=n(i).hasClass(st);if(o&&(!o||27!==e.which&&32!==e.which)){var r=[].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"));if(0!==r.length){var s=r.indexOf(e.target);38===e.which&&0<s&&s--,40===e.which&&s<r.length-1&&s++,s<0&&(s=0),r[s].focus()}}else{if(27===e.which){var a=i.querySelector(lt);n(a).trigger("focus")}n(this).trigger("click")}}},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return ht}},{key:"DefaultType",get:function(){return ut}}]),t}();n(document).on(ot.KEYDOWN_DATA_API,lt,ft._dataApiKeydownHandler).on(ot.KEYDOWN_DATA_API,ct,ft._dataApiKeydownHandler).on(ot.CLICK_DATA_API+" "+ot.KEYUP_DATA_API,ft._clearMenus).on(ot.CLICK_DATA_API,lt,function(t){t.preventDefault(),t.stopPropagation(),ft._jQueryInterface.call(n(this),"toggle")}).on(ot.CLICK_DATA_API,".dropdown form",function(t){t.stopPropagation()}),n.fn[Z]=ft._jQueryInterface,n.fn[Z].Constructor=ft,n.fn[Z].noConflict=function(){return n.fn[Z]=nt,ft._jQueryInterface};var dt="modal",gt="bs.modal",_t="."+gt,mt=n.fn[dt],pt={backdrop:!0,keyboard:!0,focus:!0,show:!0},vt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Et={HIDE:"hide"+_t,HIDDEN:"hidden"+_t,SHOW:"show"+_t,SHOWN:"shown"+_t,FOCUSIN:"focusin"+_t,RESIZE:"resize"+_t,CLICK_DISMISS:"click.dismiss"+_t,KEYDOWN_DISMISS:"keydown.dismiss"+_t,MOUSEUP_DISMISS:"mouseup.dismiss"+_t,MOUSEDOWN_DISMISS:"mousedown.dismiss"+_t,CLICK_DATA_API:"click"+_t+".data-api"},yt="modal-open",Ct="fade",Tt="show",St=".modal-dialog",bt=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",It=".sticky-top",Dt=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(St),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){n(this._element).hasClass(Ct)&&(this._isTransitioning=!0);var i=n.Event(Et.SHOW,{relatedTarget:t});n(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),n(this._element).on(Et.CLICK_DISMISS,'[data-dismiss="modal"]',function(t){return e.hide(t)}),n(this._dialog).on(Et.MOUSEDOWN_DISMISS,function(){n(e._element).one(Et.MOUSEUP_DISMISS,function(t){n(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var i=n.Event(Et.HIDE);if(n(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var o=n(this._element).hasClass(Ct);if(o&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),n(document).off(Et.FOCUSIN),n(this._element).removeClass(Tt),n(this._element).off(Et.CLICK_DISMISS),n(this._dialog).off(Et.MOUSEDOWN_DISMISS),o){var r=a.getTransitionDurationFromElement(this._element);n(this._element).one(a.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return n(t).off(_t)}),n(document).off(Et.FOCUSIN),n.removeData(this._element,gt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=r({},pt,t),a.typeCheckConfig(dt,t,vt),t},e._showElement=function(t){var e=this,i=n(this._element).hasClass(Ct);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.scrollTop=0,i&&a.reflow(this._element),n(this._element).addClass(Tt),this._config.focus&&this._enforceFocus();var o=n.Event(Et.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,n(e._element).trigger(o)};if(i){var s=a.getTransitionDurationFromElement(this._dialog);n(this._dialog).one(a.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},e._enforceFocus=function(){var t=this;n(document).off(Et.FOCUSIN).on(Et.FOCUSIN,function(e){document!==e.target&&t._element!==e.target&&0===n(t._element).has(e.target).length&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?n(this._element).on(Et.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||n(this._element).off(Et.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?n(window).on(Et.RESIZE,function(e){return t.handleUpdate(e)}):n(window).off(Et.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){n(document.body).removeClass(yt),t._resetAdjustments(),t._resetScrollbar(),n(t._element).trigger(Et.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(n(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,i=n(this._element).hasClass(Ct)?Ct:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),n(this._backdrop).appendTo(document.body),n(this._element).on(Et.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),i&&a.reflow(this._backdrop),n(this._backdrop).addClass(Tt),!t)return;if(!i)return void t();var o=a.getTransitionDurationFromElement(this._backdrop);n(this._backdrop).one(a.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){n(this._backdrop).removeClass(Tt);var r=function(){e._removeBackdrop(),t&&t()};if(n(this._element).hasClass(Ct)){var s=a.getTransitionDurationFromElement(this._backdrop);n(this._backdrop).one(a.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(bt)),i=[].slice.call(document.querySelectorAll(It));n(e).each(function(e,i){var o=i.style.paddingRight,r=n(i).css("padding-right");n(i).data("padding-right",o).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")}),n(i).each(function(e,i){var o=i.style.marginRight,r=n(i).css("margin-right");n(i).data("margin-right",o).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")});var o=document.body.style.paddingRight,r=n(document.body).css("padding-right");n(document.body).data("padding-right",o).css("padding-right",parseFloat(r)+this._scrollbarWidth+"px")}n(document.body).addClass(yt)},e._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(bt));n(t).each(function(t,e){var i=n(e).data("padding-right");n(e).removeData("padding-right"),e.style.paddingRight=i||""});var e=[].slice.call(document.querySelectorAll(""+It));n(e).each(function(t,e){var i=n(e).data("margin-right");void 0!==i&&n(e).css("margin-right",i).removeData("margin-right")});var i=n(document.body).data("padding-right");n(document.body).removeData("padding-right"),document.body.style.paddingRight=i||""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,i){return this.each(function(){var o=n(this).data(gt),s=r({},pt,n(this).data(),"object"==typeof e&&e?e:{});if(o||(o=new t(this,s),n(this).data(gt,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e](i)}else s.show&&o.show(i)})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return pt}}]),t}();n(document).on(Et.CLICK_DATA_API,'[data-toggle="modal"]',function(t){var e,i=this,o=a.getSelectorFromElement(this);o&&(e=document.querySelector(o));var s=n(e).data(gt)?"toggle":r({},n(e).data(),n(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var l=n(e).one(Et.SHOW,function(t){t.isDefaultPrevented()||l.one(Et.HIDDEN,function(){n(i).is(":visible")&&i.focus()})});Dt._jQueryInterface.call(n(e),s,this)}),n.fn[dt]=Dt._jQueryInterface,n.fn[dt].Constructor=Dt,n.fn[dt].noConflict=function(){return n.fn[dt]=mt,Dt._jQueryInterface};var wt="tooltip",At="bs.tooltip",Nt="."+At,Ot=n.fn[wt],kt="bs-tooltip",Pt=new RegExp("(^|\\s)"+kt+"\\S+","g"),Lt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"},jt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Ht={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},Rt="show",Ut={HIDE:"hide"+Nt,HIDDEN:"hidden"+Nt,SHOW:"show"+Nt,SHOWN:"shown"+Nt,INSERTED:"inserted"+Nt,CLICK:"click"+Nt,FOCUSIN:"focusin"+Nt,FOCUSOUT:"focusout"+Nt,MOUSEENTER:"mouseenter"+Nt,MOUSELEAVE:"mouseleave"+Nt},Wt="fade",xt="show",Ft="hover",qt="focus",Mt=function(){function t(t,n){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(n),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,i=n(t.currentTarget).data(e);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),n(t.currentTarget).data(e,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(n(this.getTipElement()).hasClass(xt))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),n.removeData(this.element,this.constructor.DATA_KEY),n(this.element).off(this.constructor.EVENT_KEY),n(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&n(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===n(this.element).css("display"))throw new Error("Please use show on visible elements");var i=n.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){n(this.element).trigger(i);var o=a.findShadowRoot(this.element),r=n.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var s=this.getTipElement(),l=a.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&n(s).addClass(Wt);var c="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,h=this._getAttachment(c);this.addAttachmentClass(h);var u=this._getContainer();n(s).data(this.constructor.DATA_KEY,this),n.contains(this.element.ownerDocument.documentElement,this.tip)||n(s).appendTo(u),n(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new e(this.element,s,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),n(s).addClass(xt),"ontouchstart"in document.documentElement&&n(document.body).children().on("mouseover",null,n.noop);var f=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,n(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(n(this.tip).hasClass(Wt)){var d=a.getTransitionDurationFromElement(this.tip);n(this.tip).one(a.TRANSITION_END,f).emulateTransitionEnd(d)}else f()}},i.hide=function(t){var e=this,i=this.getTipElement(),o=n.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==Rt&&i.parentNode&&i.parentNode.removeChild(i),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),n(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(n(this.element).trigger(o),!o.isDefaultPrevented()){if(n(i).removeClass(xt),"ontouchstart"in document.documentElement&&n(document.body).children().off("mouseover",null,n.noop),this._activeTrigger.click=!1,this._activeTrigger[qt]=!1,this._activeTrigger[Ft]=!1,n(this.tip).hasClass(Wt)){var s=a.getTransitionDurationFromElement(i);n(i).one(a.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){n(this.getTipElement()).addClass(kt+"-"+t)},i.getTipElement=function(){return this.tip=this.tip||n(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(n(t.querySelectorAll(".tooltip-inner")),this.getTitle()),n(t).removeClass(Wt+" "+xt)},i.setElementContent=function(t,e){var i=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?i?n(e).parent().is(t)||t.empty().append(e):t.text(n(e).text()):t[i?"html":"text"](e)},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getContainer=function(){return!1===this.config.container?document.body:a.isElement(this.config.container)?n(this.config.container):n(document).find(this.config.container)},i._getAttachment=function(t){return jt[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)n(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if("manual"!==e){var i=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;n(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(o,t.config.selector,function(e){return t._leave(e)})}}),n(this.element).closest(".modal").on("hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,e){var i=this.constructor.DATA_KEY;(e=e||n(t.currentTarget).data(i))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),n(t.currentTarget).data(i,e)),t&&(e._activeTrigger["focusin"===t.type?qt:Ft]=!0),n(e.getTipElement()).hasClass(xt)||e._hoverState===Rt?e._hoverState=Rt:(clearTimeout(e._timeout),e._hoverState=Rt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Rt&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var i=this.constructor.DATA_KEY;(e=e||n(t.currentTarget).data(i))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),n(t.currentTarget).data(i,e)),t&&(e._activeTrigger["focusout"===t.type?qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){return"number"==typeof(t=r({},this.constructor.Default,n(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a.typeCheckConfig(wt,t,this.constructor.DefaultType),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=n(this.getTipElement()),e=t.attr("class").match(Pt);null!==e&&e.length&&t.removeClass(e.join(""))},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(n(t).removeClass(Wt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var i=n(this).data(At),o="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,o),n(this).data(At,i)),"string"==typeof e)){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return wt}},{key:"DATA_KEY",get:function(){return At}},{key:"Event",get:function(){return Ut}},{key:"EVENT_KEY",get:function(){return Nt}},{key:"DefaultType",get:function(){return Lt}}]),t}();n.fn[wt]=Mt._jQueryInterface,n.fn[wt].Constructor=Mt,n.fn[wt].noConflict=function(){return n.fn[wt]=Ot,Mt._jQueryInterface};var Kt="popover",Qt="bs.popover",Bt="."+Qt,Vt=n.fn[Kt],Yt="bs-popover",Xt=new RegExp("(^|\\s)"+Yt+"\\S+","g"),zt=r({},Mt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Gt=r({},Mt.DefaultType,{content:"(string|element|function)"}),Jt={HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,SHOW:"show"+Bt,SHOWN:"shown"+Bt,INSERTED:"inserted"+Bt,CLICK:"click"+Bt,FOCUSIN:"focusin"+Bt,FOCUSOUT:"focusout"+Bt,MOUSEENTER:"mouseenter"+Bt,MOUSELEAVE:"mouseleave"+Bt},Zt=function(t){var e,i;function r(){return t.apply(this,arguments)||this}i=t,(e=r).prototype=Object.create(i.prototype),(e.prototype.constructor=e).__proto__=i;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){n(this.getTipElement()).addClass(Yt+"-"+t)},s.getTipElement=function(){return this.tip=this.tip||n(this.config.template)[0],this.tip},s.setContent=function(){var t=n(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=n(this.getTipElement()),e=t.attr("class").match(Xt);null!==e&&0<e.length&&t.removeClass(e.join(""))},r._jQueryInterface=function(t){return this.each(function(){var e=n(this).data(Qt),i="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new r(this,i),n(this).data(Qt,e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o(r,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return zt}},{key:"NAME",get:function(){return Kt}},{key:"DATA_KEY",get:function(){return Qt}},{key:"Event",get:function(){return Jt}},{key:"EVENT_KEY",get:function(){return Bt}},{key:"DefaultType",get:function(){return Gt}}]),r}(Mt);n.fn[Kt]=Zt._jQueryInterface,n.fn[Kt].Constructor=Zt,n.fn[Kt].noConflict=function(){return n.fn[Kt]=Vt,Zt._jQueryInterface};var $t="scrollspy",te="bs.scrollspy",ee="."+te,ne=n.fn[$t],ie={offset:10,method:"auto",target:""},oe={offset:"number",method:"string",target:"(string|element)"},re={ACTIVATE:"activate"+ee,SCROLL:"scroll"+ee,LOAD_DATA_API:"load"+ee+".data-api"},se="active",ae=".nav, .list-group",le=".nav-link",ce=".list-group-item",he=".dropdown-item",ue="position",fe=function(){function t(t,e){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+le+","+this._config.target+" "+ce+","+this._config.target+" "+he,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,n(this._scrollElement).on(re.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ue,i="auto"===this._config.method?e:this._config.method,o=i===ue?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,r=a.getSelectorFromElement(t);if(r&&(e=document.querySelector(r)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[n(e)[i]().top+o,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){n.removeData(this._element,te),n(this._scrollElement).off(ee),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},ie,"object"==typeof t&&t?t:{})).target){var e=n(t.target).attr("id");e||(e=a.getUID($t),n(t.target).attr("id",e)),t.target="#"+e}return a.typeCheckConfig($t,t,oe),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),i=n([].slice.call(document.querySelectorAll(e.join(","))));i.hasClass("dropdown-item")?(i.closest(".dropdown").find(".dropdown-toggle").addClass(se),i.addClass(se)):(i.addClass(se),i.parents(ae).prev(le+", "+ce).addClass(se),i.parents(ae).prev(".nav-item").children(le).addClass(se)),n(this._scrollElement).trigger(re.ACTIVATE,{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(se)}).forEach(function(t){return t.classList.remove(se)})},t._jQueryInterface=function(e){return this.each(function(){var i=n(this).data(te);if(i||(i=new t(this,"object"==typeof e&&e),n(this).data(te,i)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"Default",get:function(){return ie}}]),t}();n(window).on(re.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),e=t.length;e--;){var i=n(t[e]);fe._jQueryInterface.call(i,i.data())}}),n.fn[$t]=fe._jQueryInterface,n.fn[$t].Constructor=fe,n.fn[$t].noConflict=function(){return n.fn[$t]=ne,fe._jQueryInterface};var de="bs.tab",ge="."+de,_e=n.fn.tab,me={HIDE:"hide"+ge,HIDDEN:"hidden"+ge,SHOW:"show"+ge,SHOWN:"shown"+ge,CLICK_DATA_API:"click"+ge+".data-api"},pe="active",ve=".active",Ee="> li > .active",ye=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&n(this._element).hasClass(pe)||n(this._element).hasClass("disabled"))){var e,i,o=n(this._element).closest(".nav, .list-group")[0],r=a.getSelectorFromElement(this._element);if(o){var s="UL"===o.nodeName||"OL"===o.nodeName?Ee:ve;i=(i=n.makeArray(n(o).find(s)))[i.length-1]}var l=n.Event(me.HIDE,{relatedTarget:this._element}),c=n.Event(me.SHOW,{relatedTarget:i});if(i&&n(i).trigger(l),n(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,o);var h=function(){var e=n.Event(me.HIDDEN,{relatedTarget:t._element}),o=n.Event(me.SHOWN,{relatedTarget:i});n(i).trigger(e),n(t._element).trigger(o)};e?this._activate(e,e.parentNode,h):h()}}},e.dispose=function(){n.removeData(this._element,de),this._element=null},e._activate=function(t,e,i){var o=this,r=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?n(e).children(ve):n(e).find(Ee))[0],s=i&&r&&n(r).hasClass("fade"),l=function(){return o._transitionComplete(t,r,i)};if(r&&s){var c=a.getTransitionDurationFromElement(r);n(r).removeClass("show").one(a.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},e._transitionComplete=function(t,e,i){if(e){n(e).removeClass(pe);var o=n(e.parentNode).find("> .dropdown-menu .active")[0];o&&n(o).removeClass(pe),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(n(t).addClass(pe),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),a.reflow(t),n(t).addClass("show"),t.parentNode&&n(t.parentNode).hasClass("dropdown-menu")){var r=n(t).closest(".dropdown")[0];if(r){var s=[].slice.call(r.querySelectorAll(".dropdown-toggle"));n(s).addClass(pe)}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(e){return this.each(function(){var i=n(this),o=i.data(de);if(o||(o=new t(this),i.data(de,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e]()}})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}}]),t}();n(document).on(me.CLICK_DATA_API,'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',function(t){t.preventDefault(),ye._jQueryInterface.call(n(this),"show")}),n.fn.tab=ye._jQueryInterface,n.fn.tab.Constructor=ye,n.fn.tab.noConflict=function(){return n.fn.tab=_e,ye._jQueryInterface};var Ce="toast",Te="bs.toast",Se="."+Te,be=n.fn[Ce],Ie={CLICK_DISMISS:"click.dismiss"+Se,HIDE:"hide"+Se,HIDDEN:"hidden"+Se,SHOW:"show"+Se,SHOWN:"shown"+Se},De="show",we="showing",Ae={animation:"boolean",autohide:"boolean",delay:"number"},Ne={animation:!0,autohide:!0,delay:500},Oe=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this;n(this._element).trigger(Ie.SHOW),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove(we),t._element.classList.add(De),n(t._element).trigger(Ie.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove("hide"),this._element.classList.add(we),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);n(this._element).one(a.TRANSITION_END,e).emulateTransitionEnd(i)}else e()},e.hide=function(t){var e=this;this._element.classList.contains(De)&&(n(this._element).trigger(Ie.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(De)&&this._element.classList.remove(De),n(this._element).off(Ie.CLICK_DISMISS),n.removeData(this._element,Te),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ne,n(this._element).data(),"object"==typeof t&&t?t:{}),a.typeCheckConfig(Ce,t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;n(this._element).on(Ie.CLICK_DISMISS,'[data-dismiss="toast"]',function(){return t.hide(!0)})},e._close=function(){var t=this,e=function(){t._element.classList.add("hide"),n(t._element).trigger(Ie.HIDDEN)};if(this._element.classList.remove(De),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);n(this._element).one(a.TRANSITION_END,e).emulateTransitionEnd(i)}else e()},t._jQueryInterface=function(e){return this.each(function(){var i=n(this),o=i.data(Te);if(o||(o=new t(this,"object"==typeof e&&e),i.data(Te,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e](this)}})},o(t,null,[{key:"VERSION",get:function(){return"4.2.1"}},{key:"DefaultType",get:function(){return Ae}}]),t}();n.fn[Ce]=Oe._jQueryInterface,n.fn[Ce].Constructor=Oe,n.fn[Ce].noConflict=function(){return n.fn[Ce]=be,Oe._jQueryInterface},function(){if(void 0===n)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=n.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=a,t.Alert=d,t.Button=S,t.Carousel=W,t.Collapse=J,t.Dropdown=ft,t.Modal=Dt,t.Popover=Zt,t.Scrollspy=fe,t.Tab=ye,t.Toast=Oe,t.Tooltip=Mt,Object.defineProperty(t,"__esModule",{value:!0})});;
// Source: https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
if (window.NodeList && !NodeList.prototype.forEach) {
    NodeList.prototype.forEach = function(callback, thisArg) {
        thisArg = thisArg || window;
        for (var i = 0; i < this.length; i++) {
            callback.call(thisArg, this[i], i, this);
        }
    };
}

// Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
if (!Element.prototype.matches) {
    Element.prototype.matches =
        Element.prototype.matchesSelector ||
        Element.prototype.mozMatchesSelector ||
        Element.prototype.msMatchesSelector ||
        Element.prototype.oMatchesSelector ||
        Element.prototype.webkitMatchesSelector ||
        function(s) {
            var matches = (
                    this.document || this.ownerDocument
                ).querySelectorAll(s),
                i = matches.length;
            while (--i >= 0 && matches.item(i) !== this) {}
            return i > -1;
        };
}

// Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
if (!Element.prototype.matches) {
    Element.prototype.matches =
        Element.prototype.msMatchesSelector ||
        Element.prototype.webkitMatchesSelector;
}

if (!Element.prototype.closest) {
    Element.prototype.closest = function(s) {
        var el = this;

        do {
            if (el.matches(s)) return el;
            el = el.parentElement || el.parentNode;
        } while (el !== null && el.nodeType === 1);
        return null;
    };
}

// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md
(function(arr) {
    arr.forEach(function(item) {
        if (item.hasOwnProperty('prepend')) {
            return;
        }
        Object.defineProperty(item, 'prepend', {
            configurable: true,
            enumerable: true,
            writable: true,
            value: function prepend() {
                var argArr = Array.prototype.slice.call(arguments),
                    docFrag = document.createDocumentFragment();

                argArr.forEach(function(argItem) {
                    var isNode = argItem instanceof Node;
                    docFrag.appendChild(
                        isNode
                            ? argItem
                            : document.createTextNode(String(argItem))
                    );
                });

                this.insertBefore(docFrag, this.firstChild);
            }
        });
    });
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);

// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
(function(arr) {
    arr.forEach(function(item) {
        if (item.hasOwnProperty('append')) {
            return;
        }
        Object.defineProperty(item, 'append', {
            configurable: true,
            enumerable: true,
            writable: true,
            value: function append() {
                var argArr = Array.prototype.slice.call(arguments),
                    docFrag = document.createDocumentFragment();

                argArr.forEach(function(argItem) {
                    var isNode = argItem instanceof Node;
                    docFrag.appendChild(
                        isNode
                            ? argItem
                            : document.createTextNode(String(argItem))
                    );
                });

                this.appendChild(docFrag);
            }
        });
    });
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);

// Source: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/before()/before().md
(function(arr) {
    arr.forEach(function(item) {
        if (item.hasOwnProperty('before')) {
            return;
        }
        Object.defineProperty(item, 'before', {
            configurable: true,
            enumerable: true,
            writable: true,
            value: function before() {
                var argArr = Array.prototype.slice.call(arguments),
                    docFrag = document.createDocumentFragment();

                argArr.forEach(function(argItem) {
                    var isNode = argItem instanceof Node;
                    docFrag.appendChild(
                        isNode
                            ? argItem
                            : document.createTextNode(String(argItem))
                    );
                });

                this.parentNode.insertBefore(docFrag, this);
            }
        });
    });
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);

// Source: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md
(function(arr) {
    arr.forEach(function(item) {
        if (item.hasOwnProperty('remove')) {
            return;
        }
        Object.defineProperty(item, 'remove', {
            configurable: true,
            enumerable: true,
            writable: true,
            value: function remove() {
                if (this.parentNode !== null) this.parentNode.removeChild(this);
            }
        });
    });
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
;
! function (e) {
    var t = {};

    function n(i) {
        if (t[i]) return t[i].exports;
        var a = t[i] = {
            i: i,
            l: !1,
            exports: {}
        };
        return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports
    }
    n.m = e, n.c = t, n.d = function (e, t, i) {
        n.o(e, t) || Object.defineProperty(e, t, {
            enumerable: !0,
            get: i
        })
    }, n.r = function (e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }, n.t = function (e, t) {
        if (1 & t && (e = n(e)), 8 & t) return e;
        if (4 & t && "object" == typeof e && e && e.__esModule) return e;
        var i = Object.create(null);
        if (n.r(i), Object.defineProperty(i, "default", {
            enumerable: !0,
            value: e
        }), 2 & t && "string" != typeof e)
            for (var a in e) n.d(i, a, function (t) {
                return e[t]
            }.bind(null, a));
        return i
    }, n.n = function (e) {
        var t = e && e.__esModule ? function () {
            return e.default
        } : function () {
            return e
        };
        return n.d(t, "a", t), t
    }, n.o = function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    }, n.p = "", n(n.s = 0)
}([function (e, t, n) {
    "use strict";
    n.r(t);
    var i = {
        hooks: {},
        extensions: [],
        wrappers: [],
        navbar: {
            add: !0,
            sticky: !0,
            title: "Menu",
            titleLink: "parent"
        },
        onClick: {
            close: null,
            preventDefault: null,
            setSelected: !0
        },
        slidingSubmenus: !0
    },
        a = {
            classNames: {
                inset: "Inset",
                nolistview: "NoListview",
                nopanel: "NoPanel",
                panel: "Panel",
                selected: "Selected",
                vertical: "Vertical"
            },
            language: null,
            openingInterval: 25,
            panelNodetype: ["ul", "ol", "div"],
            transitionDuration: 400
        };

    function s(e, t) {
        for (var n in "object" != o(e) && (e = {}),
            "object" != o(t) && (t = {}), t) t.hasOwnProperty(n) && (void 0 === e[n] ? e[n] = t[n] : "object" == o(e[n]) && s(e[n], t[n]));
        return e
    }

    function o(e) {
        return {}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
    }

    function r(e, t, n) {
        if ("function" == typeof t) {
            var i = t.call(e);
            if (void 0 !== i) return i
        }
        return null !== t && "function" != typeof t && void 0 !== t || void 0 === n ? t : n
    }

    function c(e, t, n) {
        var i = !1,
            a = function (n) {
                void 0 !== n && n.target !== e || (i || (e.removeEventListener("transitionend", a),
                    e.removeEventListener("webkitTransitionEnd", a), t.call(e)), i = !0)
            };
        e.addEventListener("transitionend", a),
            e.addEventListener("webkitTransitionEnd", a), setTimeout(a, 1.1 * n)
    }

    function l() {
        return "mm-" + m++
    }
    var m = 0;

    function d(e) {
        return "mm-" == e.slice(0, 3) ? e.slice(3) : e
    }
    var p = {};

    function f(e, t) {
        void 0 === p[t] && (p[t] = {}), s(p[t], e)
    }
    var u = {
        Menu: "منو"
    },
        h = {
            Menu: "Menü"
        },
        v = {
            Menu: "Меню"
        };

    function b(e) {
        var t = e.split("."),
            n = document.createElement(t.shift());
        return t.forEach(function (e) {
            n.classList.add(e)
        }), n
    }

    function g(e, t) {
        return Array.prototype.slice.call(e.querySelectorAll(t))
    }

    function _(e, t) {
        var n = Array.prototype.slice.call(e.children);
        return t ? n.filter(function (e) {
            return e.matches(t)
        }) : n
    }

    function y(e, t) {
        for (var n = [], i = e.parentElement; i;) n.push(i), i = i.parentElement;
        return t ? n.filter(function (e) {
            return e.matches(t)
        }) : n
    }

    function L(e) {
        return e.filter(function (e) {
            return !e.matches(".mm-hidden")
        })
    }

    function w(e) {
        var t = [];
        return L(e).forEach(function (e) {
            t.push.apply(t, _(e, "a.mm-listitem__text"))
        }), t.filter(function (e) {
            return !e.matches(".mm-btn_next")
        })
    }

    function E(e, t, n) {
        e.matches("." + t) && (e.classList.remove(t), e.classList.add(n))
    }
    var x = {};

    function k(e, t, n) {
        "number" == typeof e && (e = "(min-width: " + e + "px)"), x[e] = x[e] || [], x[e].push({
            yes: t,
            no: n
        })
    }

    function P(e, t) {
        for (var n = t.matches ? "yes" : "no", i = 0; i < x[e].length; i++) x[e][i][n]()
    }
    f({
        Menu: "Menu"
    }, "nl"), f(u, "fa"), f(h, "de"), f(v, "ru");
    var S = function () {
        function e(t, n, i) {
            return this.opts = s(n, e.options), this.conf = s(i, e.configs), this._api = ["bind", "initPanel", "initListview", "openPanel", "closePanel", "closeAllPanels", "setSelected"], this.node = {}, this.vars = {}, this.hook = {}, this.clck = [], this.node.menu = "string" == typeof t ? document.querySelector(t) : t, "function" == typeof this._deprecatedWarnings && this._deprecatedWarnings(), this._initWrappers(), this._initAddons(), this._initExtensions(), this._initHooks(), this._initAPI(), this._initMenu(), this._initPanels(), this._initOpened(), this._initAnchors(),
                function () {
                    var e = function (e) {
                        var t = window.matchMedia(e);
                        P(e, t), t.onchange = function (n) {
                            P(e, t)
                        }
                    };
                    for (var t in x) e(t)
                }(), this
        }
        return e.prototype.openPanel = function (e, t) {
            var n = this;
            if (this.trigger("openPanel:before", [e]), e && (e.matches(".mm-panel") || (e = e.closest(".mm-panel")), e)) {
                if ("boolean" != typeof t && (t = !0), e.parentElement.matches(".mm-listitem_vertical")) {
                    y(e, ".mm-listitem_vertical").forEach(function (e) {
                        e.classList.add("mm-listitem_opened"), _(e, ".mm-panel").forEach(function (e) {
                            e.classList.remove("mm-hidden")
                        })
                    });
                    var i = y(e, ".mm-panel").filter(function (e) {
                        return !e.parentElement.matches(".mm-listitem_vertical")
                    });
                    this.trigger("openPanel:start", [e]), i.length && this.openPanel(i[0]), this.trigger("openPanel:finish", [e])
                } else {
                    if (e.matches(".mm-panel_opened")) return;
                    var a = _(this.node.pnls, ".mm-panel"),
                        s = _(this.node.pnls, ".mm-panel_opened")[0];
                    a.filter(function (t) {
                        return t !== e
                    }).forEach(function (e) {
                        e.classList.remove("mm-panel_opened-parent")
                    });
                    for (var o = e.mmParent; o;)(o = o.closest(".mm-panel")) && (o.parentElement.matches(".mm-listitem_vertical") || o.classList.add("mm-panel_opened-parent"), o = o.mmParent);
                    a.forEach(function (e) {
                        e.classList.remove("mm-panel_highest")
                    }), a.filter(function (e) {
                        return e !== s
                    }).filter(function (t) {
                        return t !== e
                    }).forEach(function (e) {
                        e.classList.add("mm-hidden")
                    }), e.classList.remove("mm-hidden");
                    var r = function () {
                        s && s.classList.remove("mm-panel_opened"), e.classList.add("mm-panel_opened"), e.matches(".mm-panel_opened-parent") ? (s && s.classList.add("mm-panel_highest"), e.classList.remove("mm-panel_opened-parent")) : (s && s.classList.add("mm-panel_opened-parent"), e.classList.add("mm-panel_highest")), n.trigger("openPanel:start", [e])
                    },
                        l = function () {
                            s && (s.classList.remove("mm-panel_highest"), s.classList.add("mm-hidden")), e.classList.remove("mm-panel_highest"), n.trigger("openPanel:finish", [e])
                        };
                    t && !e.matches(".mm-panel_noanimation") ? setTimeout(function () {
                        c(e, function () {
                            l()
                        }, n.conf.transitionDuration), r()
                    }, this.conf.openingInterval) : (r(), l())
                }
                this.trigger("openPanel:after", [e])
            }
        }, e.prototype.closePanel = function (e) {
            this.trigger("closePanel:before", [e]);
            var t = e.parentElement;
            t.matches(".mm-listitem_vertical") && (t.classList.remove("mm-listitem_opened"), e.classList.add("mm-hidden"), this.trigger("closePanel", [e])), this.trigger("closePanel:after", [e])
        }, e.prototype.closeAllPanels = function (e) {
            this.trigger("closeAllPanels:before"), this.node.pnls.querySelectorAll(".mm-listitem").forEach(function (e) {
                e.classList.remove("mm-listitem_selected"), e.classList.remove("mm-listitem_opened")
            });
            var t = _(this.node.pnls, ".mm-panel"),
                n = e || t[0];
            _(this.node.pnls, ".mm-panel").forEach(function (e) {
                e !== n && (e.classList.remove("mm-panel_opened"), e.classList.remove("mm-panel_opened-parent"), e.classList.remove("mm-panel_highest"), e.classList.add("mm-hidden"))
            }), this.openPanel(n, !1), this.trigger("closeAllPanels:after")
        }, e.prototype.togglePanel = function (e) {
            var t = e.parentElement;
            t.matches(".mm-listitem_vertical") && this[t.matches(".mm-listitem_opened") ? "closePanel" : "openPanel"](e)
        }, e.prototype.setSelected = function (e) {
            this.trigger("setSelected:before", [e]), g(this.node.menu, ".mm-listitem_selected").forEach(function (e) {
                e.classList.remove("mm-listitem_selected")
            }), e.classList.add("mm-listitem_selected"), this.trigger("setSelected:after", [e])
        }, e.prototype.bind = function (e, t) {
            this.hook[e] = this.hook[e] || [], this.hook[e].push(t)
        }, e.prototype.trigger = function (e, t) {
            if (this.hook[e])
                for (var n = 0, i = this.hook[e].length; n < i; n++) this.hook[e][n].apply(this, t)
        }, e.prototype._initAPI = function () {
            var e = this,
                t = this;
            this.API = {}, this._api.forEach(function (n) {
                e.API[n] = function () {
                    var e = t[n].apply(t, arguments);
                    return void 0 === e ? t.API : e
                }
            }), this.node.menu.mmApi = this.API
        }, e.prototype._initHooks = function () {
            for (var e in this.opts.hooks) this.bind(e, this.opts.hooks[e])
        }, e.prototype._initWrappers = function () {
            this.trigger("initWrappers:before");
            for (var t = 0; t < this.opts.wrappers.length; t++) {
                var n = e.wrappers[this.opts.wrappers[t]];
                "function" == typeof n && n.call(this)
            }
            this.trigger("initWrappers:after")
        }, e.prototype._initAddons = function () {
            for (var t in this.trigger("initAddons:before"), e.addons) e.addons[t].call(this);
            this.trigger("initAddons:after")
        }, e.prototype._initExtensions = function () {
            var e = this;
            this.trigger("initExtensions:before"), "array" == o(this.opts.extensions) && (this.opts.extensions = {
                all: this.opts.extensions
            }), Object.keys(this.opts.extensions).forEach(function (t) {
                var n = e.opts.extensions[t].map(function (e) {
                    return "mm-menu_" + e
                });
                n.length && k(t, function () {
                    n.forEach(function (t) {
                        e.node.menu.classList.add(t)
                    })
                }, function () {
                    n.forEach(function (t) {
                        e.node.menu.classList.remove(t)
                    })
                })
            }), this.trigger("initExtensions:after")
        }, e.prototype._initMenu = function () {
            var e = this;
            this.trigger("initMenu:before"), this.node.wrpr = this.node.wrpr || this.node.menu.parentElement, this.node.wrpr.classList.add("mm-wrapper"), this.node.menu.id = this.node.menu.id || l();
            var t = b("div.mm-panels");
            _(this.node.menu).forEach(function (n) {
                e.conf.panelNodetype.indexOf(n.nodeName.toLowerCase()) > -1 && t.append(n)
            }), this.node.menu.append(t), this.node.pnls = t, this.node.menu.classList.add("mm-menu"), this.trigger("initMenu:after")
        }, e.prototype._initPanels = function () {
            var e = this;
            this.trigger("initPanels:before"),
                this.clck.push(function (t, n) {
                    if (n.inMenu) {
                        var i = t.getAttribute("href");
                        if (i && i.length > 1 && "#" == i.slice(0, 1)) try {
                            var a = g(e.node.menu, i)[0];
                            if (a && a.matches(".mm-panel")) return t.parentElement.matches(".mm-listitem_vertical") ? e.togglePanel(a) : e.openPanel(a), !0
                        } catch (e) { }
                    }
                }), _(this.node.pnls).forEach(function (t) {
                    e.initPanel(t)
                }), this.trigger("initPanels:after")
        }, e.prototype.initPanel = function (e) {
            var t = this,
                n = this.conf.panelNodetype.join(", ");
            if (e.matches(n) && (e.matches(".mm-panel") || (e = this._initPanel(e)), e)) {
                var i = [];
                i.push.apply(i, _(e, "." + this.conf.classNames.panel)), _(e, ".mm-listview").forEach(function (e) {
                    _(e, ".mm-listitem").forEach(function (e) {
                        i.push.apply(i, _(e, n))
                    })
                }), i.forEach(function (e) {
                    t.initPanel(e)
                })
            }
        }, e.prototype._initPanel = function (e) {
            var t = this;
            if (this.trigger("initPanel:before", [e]), E(e, this.conf.classNames.panel, "mm-panel"), E(e, this.conf.classNames.nopanel, "mm-nopanel"), E(e, this.conf.classNames.inset, "mm-listview_inset"), e.matches(".mm-listview_inset") && e.classList.add("mm-nopanel"), e.matches(".mm-nopanel")) return null;
            var n = e.id || l(),
                i = e.matches("." + this.conf.classNames.vertical) || !this.opts.slidingSubmenus;
            if (e.classList.remove(this.conf.classNames.vertical), e.matches("ul, ol")) {
                e.removeAttribute("id");
                var a = b("div");
                e.before(a), a.append(e), e = a
            }
            e.id = n, e.classList.add("mm-panel"), e.classList.add("mm-hidden");
            var s = [e.parentElement].filter(function (e) {
                return e.matches("li")
            })[0];
            if (i ? s && s.classList.add("mm-listitem_vertical") : this.node.pnls.append(e), s && (s.mmChild = e, e.mmParent = s, s && s.matches(".mm-listitem") && !_(s, ".mm-btn").length)) {
                var o = _(s, ".mm-listitem__text")[0];
                if (o) {
                    o.setAttribute("href", "#" + e.id);
                    var r = b("a.mm-btn.mm-btn_next.mm-listitem__btn");
                    r.setAttribute("href", "#" + e.id), o.matches("span") ? (r.classList.add("mm-listitem__text"), r.innerHTML = o.innerHTML, s.insertBefore(r, o.nextElementSibling), o.remove()) : s.insertBefore(r, _(s, ".mm-panel")[0])
                }
            }
            return this._initNavbar(e), _(e, "ul, ol").forEach(function (e) {
                t.initListview(e)
            }), this.trigger("initPanel:after", [e]), e
        }, e.prototype._initNavbar = function (e) {
            if (this.trigger("initNavbar:before", [e]), !_(e, ".mm-navbar").length) {
                var t = null,
                    n = null;
                if (e.dataset.mmParent ? n = g(this.node.pnls, e.dataset.mmParent)[0] : (t = e.mmParent) && (n = t.closest(".mm-panel")), !t || !t.matches(".mm-listitem_vertical")) {
                    var i = b("div.mm-navbar");
                    if (this.opts.navbar.add ? this.opts.navbar.sticky && i.classList.add("mm-navbar_sticky") : i.classList.add("mm-hidden"), n) {
                        var a = b("a.mm-btn.mm-btn_prev.mm-navbar__btn");
                        a.setAttribute("href", "#" + n.id), i.append(a)
                    }
                    var s = null;
                    t ? s = _(t, ".mm-listitem__text")[0] : n && (s = g(n, 'a[href="#' + e.id + '"]')[0]);
                    var o = b("a.mm-navbar__title");
                    switch (o.innerHTML = e.dataset.mmTitle || (s ? s.textContent : "") || this.i18n(this.opts.navbar.title) || this.i18n("Menu"), this.opts.navbar.titleLink) {
                        case "anchor":
                            s && o.setAttribute("href", s.getAttribute("href"));
                            break;
                        case "parent":
                            n && o.setAttribute("href", "#" + n.id)
                    }
                    i.append(o), e.prepend(i), this.trigger("initNavbar:after", [e])
                }
            }
        }, e.prototype.initListview = function (e) {
            var t = this;
            this.trigger("initListview:before", [e]), E(e, this.conf.classNames.nolistview, "mm-nolistview"), e.matches(".mm-nolistview") || (e.classList.add("mm-listview"), _(e).forEach(function (e) {
                e.classList.add("mm-listitem"), E(e, t.conf.classNames.selected, "mm-listitem_selected"), _(e, "a, span").forEach(function (e) {
                    e.matches(".mm-btn") || e.classList.add("mm-listitem__text")
                })
            })), this.trigger("initListview:after", [e])
        }, e.prototype._initOpened = function () {
            this.trigger("initOpened:before");
            var e = this.node.pnls.querySelectorAll(".mm-listitem_selected"),
                t = null;
            e.forEach(function (e) {
                t = e, e.classList.remove("mm-listitem_selected")
            }), t && t.classList.add("mm-listitem_selected");
            var n = t ? t.closest(".mm-panel") : _(this.node.pnls, ".mm-panel")[0];
            this.openPanel(n, !1), this.trigger("initOpened:after")
        }, e.prototype._initAnchors = function () {
            var e = this;
            this.trigger("initAnchors:before"), document.addEventListener("click", function (t) {
                var n = t.target.closest("a[href]");
                if (n) {
                    for (var i = {
                        inMenu: n.closest(".mm-menu") === e.node.menu,
                        inListview: n.matches(".mm-listitem > a"),
                        toExternal: n.matches('[rel="external"]') || n.matches('[target="_blank"]')
                    }, a = {
                        close: null,
                        setSelected: null,
                        preventDefault: "#" == n.getAttribute("href").slice(0, 1)
                    }, c = 0; c < e.clck.length; c++) {
                        var l = e.clck[c].call(e, n, i);
                        if (l) {
                            if ("boolean" == typeof l) return void t.preventDefault();
                            "object" == o(l) && (a = s(l, a))
                        }
                    }
                    i.inMenu && i.inListview && !i.toExternal && (r(n, e.opts.onClick.setSelected, a.setSelected) && e.setSelected(n.parentElement), r(n, e.opts.onClick.preventDefault, a.preventDefault) && t.preventDefault(), r(n, e.opts.onClick.close, a.close) && e.opts.offCanvas && "function" == typeof e.close && e.close())
                }
            }, !0), this.trigger("initAnchors:after")
        }, e.prototype.i18n = function (e) {
            return function (e, t) {
                return "string" == typeof t && void 0 !== p[t] && p[t][e] || e
            }(e, this.conf.language)
        }, e.version = "8.4.1", e.options = i, e.configs = a, e.addons = {}, e.wrappers = {}, e.node = {}, e.vars = {}, e
    }(),
        M = {
            blockUI: !0,
            moveBackground: !0
        };
    var A = {
        clone: !1,
        menu: {
            insertMethod: "prepend",
            insertSelector: "body"
        },
        page: {
            nodetype: "div",
            selector: null,
            noSelector: []
        }
    };

    function T(e) {
        return e ? e.charAt(0).toUpperCase() + e.slice(1) : ""
    }

    function C(e, t, n) {
        var i = t.split(".");
        e[t = "mmEvent" + T(i[0]) + T(i[1])] = e[t] || [], e[t].push(n), e.addEventListener(i[0], n)
    }

    function N(e, t) {
        var n = t.split(".");
        t = "mmEvent" + T(n[0]) + T(n[1]), (e[t] || []).forEach(function (t) {
            e.removeEventListener(n[0], t)
        })
    }
    S.options.offCanvas = M, S.configs.offCanvas = A;
    S.prototype.open = function () {
        var e = this;
        this.trigger("open:before"), this.vars.opened || (this._openSetup(), setTimeout(function () {
            e._openStart()
        }, this.conf.openingInterval), this.trigger("open:after"))
    }, S.prototype._openSetup = function () {
        var e = this,
            t = this.opts.offCanvas;
        this.closeAllOthers(), S.node.page.mmStyle = S.node.page.getAttribute("style") || "",
            function (e, t, n) {
                var i = t.split(".");
                (e[t = "mmEvent" + T(i[0]) + T(i[1])] || []).forEach(function (e) {
                    e(n || {})
                })
            }(window, "resize.page", {
                force: !0
            });
        var n = ["mm-wrapper_opened"];
        t.blockUI && n.push("mm-wrapper_blocking"), "modal" == t.blockUI && n.push("mm-wrapper_modal"), t.moveBackground && n.push("mm-wrapper_background"), n.forEach(function (t) {
            e.node.wrpr.classList.add(t)
        }), setTimeout(function () {
            e.vars.opened = !0
        }, this.conf.openingInterval), this.node.menu.classList.add("mm-menu_opened")
    }, S.prototype._openStart = function () {
        var e = this;
        c(S.node.page, function () {
            e.trigger("open:finish")
        }, this.conf.transitionDuration), this.trigger("open:start"), this.node.wrpr.classList.add("mm-wrapper_opening")
    }, S.prototype.close = function () {
        var e = this;
        this.trigger("close:before"), this.vars.opened && (c(S.node.page, function () {
            e.node.menu.classList.remove("mm-menu_opened");
            ["mm-wrapper_opened", "mm-wrapper_blocking", "mm-wrapper_modal", "mm-wrapper_background"].forEach(function (t) {
                e.node.wrpr.classList.remove(t)
            }), S.node.page.setAttribute("style", S.node.page.mmStyle), e.vars.opened = !1, e.trigger("close:finish")
        }, this.conf.transitionDuration), this.trigger("close:start"), this.node.wrpr.classList.remove("mm-wrapper_opening"), this.trigger("close:after"))
    }, S.prototype.closeAllOthers = function () {
        var e = this;
        g(document.body, ".mm-menu_offcanvas").forEach(function (t) {
            if (t !== e.node.menu) {
                var n = t.mmApi;
                n && n.close && n.close()
            }
        })
    }, S.prototype.setPage = function (e) {
        this.trigger("setPage:before", [e]);
        var t = this.conf.offCanvas;
        if (!e) {
            var n = "string" == typeof t.page.selector ? g(document.body, t.page.selector) : _(document.body, t.page.nodetype);
            if (n = n.filter(function (e) {
                return !e.matches(".mm-menu, .mm-wrapper__blocker")
            }), t.page.noSelector.length && (n = n.filter(function (e) {
                return !e.matches(t.page.noSelector.join(", "))
            })), n.length > 1) {
                var i = b("div");
                n[0].before(i), n.forEach(function (e) {
                    i.append(e)
                }), n = [i]
            }
            e = n[0]
        }
        e.classList.add("mm-page"), e.classList.add("mm-slideout"), e.id = e.id || l(), S.node.page = e, this.trigger("setPage:after", [e])
    };
    var H = function () {
        var e = this;
        N(document.body, "keydown.tabguard"), C(document.body, "keydown.tabguard", function (t) {
            9 == t.keyCode && e.node.wrpr.matches(".mm-wrapper_opened") && t.preventDefault()
        })
    },
        j = function () {
            var e = this;
            this.trigger("initBlocker:before");
            var t = this.opts.offCanvas,
                n = this.conf.offCanvas;
            if (t.blockUI) {
                if (!S.node.blck) {
                    var i = b("div.mm-wrapper__blocker.mm-slideout");
                    i.innerHTML = "<a></a>", document.querySelector(n.menu.insertSelector).append(i), S.node.blck = i
                }
                var a = function (t) {
                    t.preventDefault(), t.stopPropagation(), e.node.wrpr.matches(".mm-wrapper_modal") || e.close()
                };
                S.node.blck.addEventListener("mousedown", a), S.node.blck.addEventListener("touchstart", a), S.node.blck.addEventListener("touchmove", a), this.trigger("initBlocker:after")
            }
        },
        D = {
            aria: !0,
            text: !0
        };
    var O = {
        text: {
            closeMenu: "Close menu",
            closeSubmenu: "Close submenu",
            openSubmenu: "Open submenu",
            toggleSubmenu: "Toggle submenu"
        }
    },
        I = {
            "Close menu": "بستن منو",
            "Close submenu": "بستن زیرمنو",
            "Open submenu": "بازکردن زیرمنو",
            "Toggle submenu": "سوییچ زیرمنو"
        },
        q = {
            "Close menu": "Menü schließen",
            "Close submenu": "Untermenü schließen",
            "Open submenu": "Untermenü öffnen",
            "Toggle submenu": "Untermenü wechseln"
        },
        B = {
            "Close menu": "Закрыть меню",
            "Close submenu": "Закрыть подменю",
            "Open submenu": "Открыть подменю",
            "Toggle submenu": "Переключить подменю"
        };
    f({
        "Close menu": "Menu sluiten",
        "Close submenu": "Submenu sluiten",
        "Open submenu": "Submenu openen",
        "Toggle submenu": "Submenu wisselen"
    }, "nl"), f(I, "fa"), f(q, "de"), f(B, "ru"), S.options.screenReader = D, S.configs.screenReader = O;
    var z;
    z = function (e, t, n) {
        e[t] = n, n ? e.setAttribute(t, n.toString()) : e.removeAttribute(t)
    }, S.sr_aria = function (e, t, n) {
        z(e, "aria-" + t, n)
    }, S.sr_role = function (e, t) {
        z(e, "role", t)
    }, S.sr_text = function (e) {
        return '<span class="mm-sronly">' + e + "</span>"
    };
    var R = {
        fix: !0
    };
    var U = "ontouchstart" in window || !!navigator.msMaxTouchPoints || !1;
    S.options.scrollBugFix = R;
    var W = {
        height: "default"
    };
    S.options.autoHeight = W;
    var Y = {
        close: !1,
        open: !1
    };
    S.options.backButton = Y;
    var F = {
        add: !1,
        visible: {
            min: 1,
            max: 3
        }
    };
    S.options.columns = F;
    var X = {
        add: !1,
        addTo: "panels",
        count: !1
    };
    S.options.counters = X, S.configs.classNames.counters = {
        counter: "Counter"
    };
    var V = {
        add: !1,
        addTo: "panels"
    };
    S.options.dividers = V, S.configs.classNames.divider = "Divider";
    var Z = {
        open: !1,
        node: null
    };
    var G = "ontouchstart" in window || !!navigator.msMaxTouchPoints || !1,
        K = {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        },
        Q = {
            start: 15,
            swipe: 15
        },
        J = {
            x: ["Right", "Left"],
            y: ["Down", "Up"]
        },
        $ = 0,
        ee = 1,
        te = 2,
        ne = function (e, t) {
            return "string" == typeof e && "%" == e.slice(-1) && (e = t * ((e = parseInt(e.slice(0, -1), 10)) / 100)), e
        },
        ie = function () {
            function e(e, t, n) {
                this.surface = e, this.area = s(t, K), this.treshold = s(n, Q), this.surface.mmHasDragEvents || (this.surface.addEventListener(G ? "touchstart" : "mousedown", this.start.bind(this)), this.surface.addEventListener(G ? "touchend" : "mouseup", this.stop.bind(this)), this.surface.addEventListener(G ? "touchleave" : "mouseleave", this.stop.bind(this)), this.surface.addEventListener(G ? "touchmove" : "mousemove", this.move.bind(this))), this.surface.mmHasDragEvents = !0
            }
            return e.prototype.start = function (e) {
                var t = this.surface.clientWidth,
                    n = this.surface.clientHeight,
                    i = ne(this.area.top, n);
                if (!("number" == typeof i && e.pageY < i)) {
                    var a = ne(this.area.right, t);
                    if (!("number" == typeof a && (a = t - a, e.pageX > a))) {
                        var s = ne(this.area.bottom, n);
                        if (!("number" == typeof s && (s = n - s, e.pageY > s))) {
                            var o = ne(this.area.left, t);
                            "number" == typeof o && e.pageX < o || (this.startPosition = {
                                x: e.pageX,
                                y: e.pageY
                            }, this.state = ee)
                        }
                    }
                }
            }, e.prototype.stop = function (e) {
                if (this.state == te) {
                    var t = this._dragDirection(),
                        n = this._eventDetail(t);
                    if (this._dispatchEvents("drag*End", n), Math.abs(this.movement[this.axis]) > this.treshold.swipe) {
                        var i = this._swipeDirection();
                        n.direction = i, this._dispatchEvents("swipe*", n)
                    }
                }
                this.state = $
            }, e.prototype.move = function (e) {
                switch (this.state) {
                    case ee:
                    case te:
                        this.movement = {
                            x: e.movementX,
                            y: e.movementY
                        }, this.distance = {
                            x: e.pageX - this.startPosition.x,
                            y: e.pageY - this.startPosition.y
                        }, this.axis = Math.abs(this.distance.x) > Math.abs(this.distance.y) ? "x" : "y";
                        var t = this._dragDirection(),
                            n = this._eventDetail(t);
                        this.state == ee && Math.abs(this.distance[this.axis]) > this.treshold.start && (this._dispatchEvents("drag*Start", n), this.state = te), this.state == te && this._dispatchEvents("drag*Move", n)
                }
            }, e.prototype._eventDetail = function (e) {
                var t = this.distance.x,
                    n = this.distance.y;
                return "x" == this.axis && (t -= t > 0 ? this.treshold.start : 0 - this.treshold.start), "y" == this.axis && (n -= n > 0 ? this.treshold.start : 0 - this.treshold.start), {
                    axis: this.axis,
                    direction: e,
                    movementX: this.movement.x,
                    movementY: this.movement.y,
                    distanceX: t,
                    distanceY: n
                }
            }, e.prototype._dispatchEvents = function (e, t) {
                var n = new CustomEvent(e.replace("*", ""), {
                    detail: t
                });
                this.surface.dispatchEvent(n);
                var i = new CustomEvent(e.replace("*", this.axis.toUpperCase()), {
                    detail: t
                });
                this.surface.dispatchEvent(i);
                var a = new CustomEvent(e.replace("*", t.direction), {
                    detail: t
                });
                this.surface.dispatchEvent(a)
            }, e.prototype._dragDirection = function () {
                return J[this.axis][this.distance[this.axis] > 0 ? 0 : 1]
            }, e.prototype._swipeDirection = function () {
                return J[this.axis][this.movement[this.axis] > 0 ? 0 : 1]
            }, e
        }(),
        ae = null,
        se = null,
        oe = 0,
        re = function (e, t, n) {
            switch (e.position = "left", e.zposition = "back", ["right", "top", "bottom"].forEach(function (n) {
                t.indexOf("position-" + n) > -1 && (e.position = n)
            }), ["front", "top", "bottom"].forEach(function (n) {
                t.indexOf("position-" + n) > -1 && (e.zposition = "front")
            }), ae.area = {
                top: "bottom" == e.position ? "75%" : 0,
                right: "left" == e.position ? "75%" : 0,
                bottom: "top" == e.position ? "75%" : 0,
                left: "right" == e.position ? "75%" : 0
            }, e.position) {
                case "top":
                case "bottom":
                    e.axis = "y";
                    break;
                default:
                    e.axis = "x"
            }
            switch (e.position) {
                case "top":
                    e.direction = "Down";
                    break;
                case "right":
                    e.direction = "Left";
                    break;
                case "bottom":
                    e.direction = "Up";
                    break;
                default:
                    e.direction = "Right"
            }
            switch (e.zposition) {
                case "front":
                    e.slideOutNodes = [n];
                    break;
                default:
                    e.slideOutNodes = g(document.body, ".mm-slideout")
            }
            return e
        };
    S.options.drag = Z;
    var ce = {
        drop: !1,
        fitViewport: !0,
        event: "click",
        position: {},
        tip: !0
    };
    var le = {
        offset: {
            button: {
                x: -5,
                y: 5
            },
            viewport: {
                x: 20,
                y: 20
            }
        },
        height: {
            max: 880
        },
        width: {
            max: 440
        }
    };
    S.options.dropdown = ce, S.configs.dropdown = le;
    var me = {
        insertMethod: "append",
        insertSelector: "body"
    };
    S.configs.fixedElements = me, S.configs.classNames.fixedElements = {
        fixed: "Fixed"
    };
    var de = {
        use: !1,
        top: [],
        bottom: [],
        position: "left",
        type: "default"
    };
    S.options.iconbar = de;
    var pe = {
        add: !1,
        blockPanel: !0,
        hideDivider: !1,
        hideNavbar: !0,
        visible: 3
    };
    S.options.iconPanels = pe;
    var fe = {
        enable: !1,
        enhance: !1
    };
    S.options.keyboardNavigation = fe;
    var ue = function (e) {
        var t = this;
        N(document.body, "keydown.tabguard"), N(document.body, "focusin.tabguard"), C(document.body, "focusin.tabguard", function (e) {
            if (t.node.wrpr.matches(".mm-wrapper_opened")) {
                var n = e.target;
                if (n.matches(".mm-tabend")) {
                    var i = void 0;
                    n.parentElement.matches(".mm-menu") && S.node.blck && (i = S.node.blck), n.parentElement.matches(".mm-wrapper__blocker") && (i = g(document.body, ".mm-menu_offcanvas.mm-menu_opened")[0]), i || (i = n.parentElement), i && _(i, ".mm-tabstart")[0].focus()
                }
            }
        }), N(document.body, "keydown.navigate"), C(document.body, "keydown.navigate", function (t) {
            var n = t.target,
                i = n.closest(".mm-menu");
            if (i) {
                i.mmApi;
                if (!n.matches("input, textarea")) switch (t.keyCode) {
                    case 13:
                        (n.matches(".mm-toggle") || n.matches(".mm-check")) && n.dispatchEvent(new Event("click"));
                        break;
                    case 32:
                    case 37:
                    case 38:
                    case 39:
                    case 40:
                        t.preventDefault()
                }
                if (e)
                    if (n.matches("input")) switch (t.keyCode) {
                        case 27:
                            n.value = ""
                    } else {
                        var a = i.mmApi;
                        switch (t.keyCode) {
                            case 8:
                                var s = g(i, ".mm-panel_opened")[0].mmParent;
                                s && a.openPanel(s.closest(".mm-panel"));
                                break;
                            case 27:
                                i.matches(".mm-menu_offcanvas") && a.close()
                        }
                    }
            }
        })
    },
        he = {
            load: !1
        };
    S.options.lazySubmenus = he;
    var ve = [];
    var be = {
        breadcrumbs: {
            separator: "/",
            removeFirst: !1
        }
    };

    function ge() {
        var e = this,
            t = this.opts.navbars;
        if (void 0 !== t) {
            t instanceof Array || (t = [t]);
            var n = {};
            t.length && (t.forEach(function (t) {
                if (!(t = function (e) {
                    return "boolean" == typeof e && e && (e = {}), "object" != typeof e && (e = {}), void 0 === e.content && (e.content = ["prev", "title"]), e.content instanceof Array || (e.content = [e.content]), void 0 === e.use && (e.use = !0), "boolean" == typeof e.use && e.use && (e.use = !0), e
                }(t)).use) return !1;
                var i = b("div.mm-navbar"),
                    a = t.position;
                "bottom" !== a && (a = "top"), n[a] || (n[a] = b("div.mm-navbars_" + a)), n[a].append(i);
                for (var s = 0, o = t.content.length; s < o; s++) {
                    var r, c = t.content[s];
                    if ("string" == typeof c)
                        if ("function" == typeof (r = ge.navbarContents[c])) r.call(e, i);
                        else {
                            var l = b("span");
                            l.innerHTML = c;
                            var m = _(l);
                            1 == m.length && (l = m[0]), i.append(l)
                        }
                    else i.append(c)
                }
                "string" == typeof t.type && ("function" == typeof (r = ge.navbarTypes[t.type]) && r.call(e, i));
                "boolean" != typeof t.use && k(t.use, function () {
                    i.classList.remove("mm-hidden"), S.sr_aria(i, "hidden", !1)
                }, function () {
                    i.classList.add("mm-hidden"), S.sr_aria(i, "hidden", !0)
                })
            }), this.bind("initMenu:after", function () {
                for (var t in n) e.node.menu["bottom" == t ? "append" : "prepend"](n[t])
            }))
        }
    }
    S.options.navbars = ve, S.configs.navbars = be, S.configs.classNames.navbars = {
        panelNext: "Next",
        panelPrev: "Prev",
        panelTitle: "Title"
    }, ge.navbarContents = {
        breadcrumbs: function (e) {
            var t = this,
                n = b("div.mm-navbar__breadcrumbs");
            e.append(n), this.bind("initNavbar:after", function (e) {
                if (!e.querySelector(".mm-navbar__breadcrumbs")) {
                    _(e, ".mm-navbar")[0].classList.add("mm-hidden");
                    for (var n = [], i = b("span.mm-navbar__breadcrumbs"), a = e, s = !0; a;) {
                        if (!(a = a.closest(".mm-panel")).parentElement.matches(".mm-listitem_vertical")) {
                            var o = g(a, ".mm-navbar__title")[0];
                            if (o) {
                                var r = o.textContent;
                                r.length && n.unshift(s ? "<span>" + r + "</span>" : '<a href="#' + a.id + '">' + r + "</a>")
                            }
                            s = !1
                        }
                        a = a.mmParent
                    }
                    t.conf.navbars.breadcrumbs.removeFirst && n.shift(), i.innerHTML = n.join('<span class="mm-separator">' + t.conf.navbars.breadcrumbs.separator + "</span>"), _(e, ".mm-navbar")[0].append(i)
                }
            }), this.bind("openPanel:start", function (e) {
                var t = e.querySelector(".mm-navbar__breadcrumbs");
                n.innerHTML = t ? t.innerHTML : ""
            }), this.bind("initNavbar:after:sr-aria", function (e) {
                g(e, ".mm-breadcrumbs a").forEach(function (e) {
                    S.sr_aria(e, "owns", e.getAttribute("href").slice(1))
                })
            })
        },
        close: function (e) {
            var t = this,
                n = b("a.mm-btn.mm-btn_close.mm-navbar__btn");
            e.append(n), this.bind("setPage:after", function (e) {
                n.setAttribute("href", "#" + e.id)
            }), this.bind("setPage:after:sr-text", function () {
                n.innerHTML = S.sr_text(t.i18n(t.conf.screenReader.text.closeMenu)), S.sr_aria(n, "owns", n.getAttribute("href").slice(1))
            })
        },
        next: function (e) {
            var t, n, i, a = this,
                s = b("a.mm-btn.mm-btn_next.mm-navbar__btn");
            e.append(s), this.bind("openPanel:start", function (e) {
                t = e.querySelector("." + a.conf.classNames.navbars.panelNext), n = t ? t.getAttribute("href") : "", i = t ? t.innerHTML : "", n ? s.setAttribute("href", n) : s.removeAttribute("href"), s.classList[n || i ? "remove" : "add"]("mm-hidden"), s.innerHTML = i
            }), this.bind("openPanel:start:sr-aria", function (e) {
                S.sr_aria(s, "hidden", s.matches("mm-hidden")), S.sr_aria(s, "owns", (s.getAttribute("href") || "").slice(1))
            })
        },
        prev: function (e) {
            var t, n, i, a = this,
                s = b("a.mm-btn.mm-btn_prev.mm-navbar__btn");
            e.append(s), this.bind("initNavbar:after", function (e) {
                _(e, ".mm-navbar")[0].classList.add("mm-hidden")
            }), this.bind("openPanel:start", function (e) {
                e.parentElement.matches(".mm-listitem_vertical") || ((t = e.querySelector("." + a.conf.classNames.navbars.panelPrev)) || (t = e.querySelector(".mm-navbar__btn.mm-btn_prev")), n = t ? t.getAttribute("href") : "", i = t ? t.innerHTML : "", n ? s.setAttribute("href", n) : s.removeAttribute("href"), s.classList[n || i ? "remove" : "add"]("mm-hidden"), s.innerHTML = i)
            }), this.bind("initNavbar:after:sr-aria", function (e) {
                S.sr_aria(e.querySelector(".mm-navbar"), "hidden", !0)
            }), this.bind("openPanel:start:sr-aria", function (e) {
                S.sr_aria(s, "hidden", s.matches(".mm-hidden")), S.sr_aria(s, "owns", (s.getAttribute("href") || "").slice(1))
            })
        },
        searchfield: function (e) {
            "object" != o(this.opts.searchfield) && (this.opts.searchfield = {});
            var t = b("div.mm-navbar__searchfield");
            e.append(t), this.opts.searchfield.add = !0, this.opts.searchfield.addTo = [t]
        },
        title: function (e) {
            var t, n, i, a, s = this,
                o = b("a.mm-navbar__title");
            e.append(o), this.bind("openPanel:start", function (e) {
                e.parentElement.matches(".mm-listitem_vertical") || ((i = e.querySelector("." + s.conf.classNames.navbars.panelTitle)) || (i = e.querySelector(".mm-navbar__title")), (t = i ? i.getAttribute("href") : "") ? o.setAttribute("href", t) : o.removeAttribute("href"), n = i ? i.innerHTML : "", o.innerHTML = n)
            }), this.bind("openPanel:start:sr-aria", function (e) {
                if (s.opts.screenReader.text && (a || _(s.node.menu, ".mm-navbars_top, .mm-navbars_bottom").forEach(function (e) {
                    var t = e.querySelector(".mm-btn_prev");
                    t && (a = t)
                }), a)) {
                    var t = !0;
                    "parent" == s.opts.navbar.titleLink && (t = !a.matches(".mm-hidden")), S.sr_aria(o, "hidden", t)
                }
            })
        }
    }, ge.navbarTypes = {
        tabs: function (e) {
            var t = this;
            e.classList.add("mm-navbar_tabs"), e.parentElement.classList.add("mm-navbars_has-tabs");
            var n = _(e, "a");
            e.addEventListener("click", function (e) {
                var n = e.target;
                if (n.matches("a"))
                    if (n.matches(".mm-navbar__tab_selected")) e.stopImmediatePropagation();
                    else try {
                        t.openPanel(t.node.menu.querySelector(n.getAttribute("href")), !1), e.stopImmediatePropagation()
                    } catch (e) { }
            }), this.bind("openPanel:start", function e(t) {
                n.forEach(function (e) {
                    e.classList.remove("mm-navbar__tab_selected")
                });
                var i = n.filter(function (e) {
                    return e.matches('[href="#' + t.id + '"]')
                })[0];
                if (i) i.classList.add("mm-navbar__tab_selected");
                else {
                    var a = t.mmParent;
                    a && e.call(this, a.closest(".mm-panel"))
                }
            })
        }
    };
    var _e = {
        scroll: !1,
        update: !1
    };
    var ye = {
        scrollOffset: 0,
        updateOffset: 50
    };
    S.options.pageScroll = _e, S.configs.pageScroll = ye;
    var Le = {
        add: !1,
        addTo: "panels",
        cancel: !1,
        noResults: "No results found.",
        placeholder: "Search",
        panel: {
            add: !1,
            dividers: !0,
            fx: "none",
            id: null,
            splash: null,
            title: "Search"
        },
        search: !0,
        showTextItems: !1,
        showSubPanels: !0
    };
    var we = {
        clear: !1,
        form: !1,
        input: !1,
        submit: !1
    },
        Ee = {
            Search: "جستجو",
            "No results found.": "نتیجه‌ای یافت نشد.",
            cancel: "انصراف"
        },
        xe = {
            Search: "Suche",
            "No results found.": "Keine Ergebnisse gefunden.",
            cancel: "beenden"
        },
        ke = {
            Search: "Найти",
            "No results found.": "Ничего не найдено.",
            cancel: "отменить"
        };
    f({
        Search: "Zoeken",
        "No results found.": "Geen resultaten gevonden.",
        cancel: "annuleren"
    }, "nl"), f(Ee, "fa"), f(xe, "de"), f(ke, "ru"), S.options.searchfield = Le, S.configs.searchfield = we;
    var Pe = function () {
        var e = this.opts.searchfield,
            t = (this.conf.searchfield, _(this.node.pnls, ".mm-panel_search")[0]);
        if (t) return t;
        t = b("div.mm-panel.mm-panel_search.mm-hidden"), e.panel.id && (t.id = e.panel.id), e.panel.title && (t.dataset.mmTitle = e.panel.title);
        var n = b("ul");
        switch (t.append(n), this.node.pnls.append(t), this.initListview(n), this._initNavbar(t), e.panel.fx) {
            case !1:
                break;
            case "none":
                t.classList.add("mm-panel_noanimation");
                break;
            default:
                t.classList.add("mm-panel_fx-" + e.panel.fx)
        }
        if (e.panel.splash) {
            var i = b("div.mm-panel__content");
            i.innerHTML = e.panel.splash, t.append(i)
        }
        return t.classList.add("mm-panel"), t.classList.add("mm-hidden"), this.node.pnls.append(t), t
    },
        Se = function (e) {
            var t = this.opts.searchfield,
                n = this.conf.searchfield;
            if (e.parentElement.matches(".mm-listitem_vertical")) return null;
            if (s = g(e, ".mm-searchfield")[0]) return s;

            function i(e, t) {
                if (t)
                    for (var n in t) e.setAttribute(n, t[n])
            }
            var a, s = b((n.form ? "form" : "div") + ".mm-searchfield"),
                o = b("div.mm-searchfield__input"),
                r = b("input");
            (r.type = "text", r.autocomplete = "off", r.placeholder = this.i18n(t.placeholder), o.append(r), s.append(o), e.prepend(s), i(r, n.input), n.clear) && ((a = b("a.mm-btn.mm-btn_close.mm-searchfield__btn")).setAttribute("href", "#"), o.append(a));
            (i(s, n.form), n.form && n.submit && !n.clear) && ((a = b("a.mm-btn.mm-btn_next.mm-searchfield__btn")).setAttribute("href", "#"), o.append(a));
            t.cancel && ((a = b("a.mm-searchfield__cancel")).setAttribute("href", "#"), a.textContent = this.i18n("cancel"), s.append(a));
            return s
        },
        Me = function (e) {
            var t = this,
                n = this.opts.searchfield,
                i = (this.conf.searchfield, {});
            e.closest(".mm-panel_search") ? (i.panels = g(this.node.pnls, ".mm-panel"), i.noresults = [e.closest(".mm-panel")]) : e.closest(".mm-panel") ? (i.panels = [e.closest(".mm-panel")], i.noresults = i.panels) : (i.panels = g(this.node.pnls, ".mm-panel"), i.noresults = [this.node.menu]), i.panels = i.panels.filter(function (e) {
                return !e.parentElement.matches(".mm-listitem_vertical")
            }), i.panels = i.panels.filter(function (e) {
                return !e.matches(".mm-panel_search")
            }), i.listitems = [], i.dividers = [], i.panels.forEach(function (e) {
                var t, n;
                (t = i.listitems).push.apply(t, g(e, ".mm-listitem")), (n = i.dividers).push.apply(n, g(e, ".mm-divider"))
            });
            var a = _(this.node.pnls, ".mm-panel_search")[0],
                s = g(e, "input")[0],
                o = g(e, ".mm-searchfield__cancel")[0];
            s.mmSearchfield = i, n.panel.add && n.panel.splash && (N(s, "focus.splash"), C(s, "focus.splash", function (e) {
                t.openPanel(a)
            })), n.cancel && (N(s, "focus.cancel"), C(s, "focus.cancel", function (e) {
                o.classList.add("mm-searchfield__cancel-active")
            }), N(o, "click.splash"), C(o, "click.splash", function (e) {
                if (e.preventDefault(), o.classList.remove("mm-searchfield__cancel-active"), a.matches(".mm-panel_opened")) {
                    var n = _(t.node.pnls, ".mm-panel_opened-parent");
                    n.length && t.openPanel(n[n.length - 1])
                }
            })), n.panel.add && "panel" == n.addTo && this.bind("openPanel:finish", function (e) {
                e === a && s.focus()
            }), N(s, "input.search"), C(s, "input.search", function (e) {
                switch (e.keyCode) {
                    case 9:
                    case 16:
                    case 17:
                    case 18:
                    case 37:
                    case 38:
                    case 39:
                    case 40:
                        break;
                    default:
                        t.search(s)
                }
            }), this.search(s)
        },
        Ae = function (e) {
            if (e) {
                var t = this.opts.searchfield;
                this.conf.searchfield;
                if (e.closest(".mm-panel") || (e = _(this.node.pnls, ".mm-panel")[0]), !_(e, ".mm-panel__noresultsmsg").length) {
                    var n = b("div.mm-panel__noresultsmsg.mm-hidden");
                    n.innerHTML = this.i18n(t.noResults), e.append(n)
                }
            }
        };
    S.prototype.search = function (e, t) {
        var n, i = this,
            a = this.opts.searchfield;
        this.conf.searchfield;
        t = (t = t || "" + e.value).toLowerCase().trim();
        var s = e.mmSearchfield,
            o = g(e.closest(".mm-searchfield"), ".mm-btn"),
            r = _(this.node.pnls, ".mm-panel_search")[0],
            c = s.panels,
            l = s.noresults,
            m = s.listitems,
            d = s.dividers;
        if (m.forEach(function (e) {
            e.classList.remove("mm-listitem_nosubitems"), e.classList.remove("mm-listitem_onlysubitems"), e.classList.remove("mm-hidden")
        }), r && (_(r, ".mm-listview")[0].innerHTML = ""), c.forEach(function (e) {
            e.scrollTop = 0
        }), t.length) {
            d.forEach(function (e) {
                e.classList.add("mm-hidden")
            }), m.forEach(function (e) {
                var n, i = _(e, ".mm-listitem__text")[0],
                    s = !1;
                i && (n = i, Array.prototype.slice.call(n.childNodes).filter(function (e) {
                    return 3 == e.nodeType
                }).map(function (e) {
                    return e.textContent
                }).join(" ")).toLowerCase().indexOf(t) > -1 && (i.matches(".mm-listitem__btn") ? a.showSubPanels && (s = !0) : i.matches("a") ? s = !0 : a.showTextItems && (s = !0)), s || e.classList.add("mm-hidden")
            });
            var p = m.filter(function (e) {
                return !e.matches(".mm-hidden")
            }).length;
            if (a.panel.add) {
                var f = [];
                c.forEach(function (e) {
                    var t = L(g(e, ".mm-listitem"));
                    if ((t = t.filter(function (e) {
                        return !e.matches(".mm-hidden")
                    })).length) {
                        if (a.panel.dividers) {
                            var n = b("li.mm-divider"),
                                i = g(e, ".mm-navbar__title")[0];
                            i && (n.innerHTML = i.innerHTML, f.push(n))
                        }
                        t.forEach(function (e) {
                            f.push(e.cloneNode(!0))
                        })
                    }
                }), f.forEach(function (e) {
                    e.querySelectorAll(".mm-toggle, .mm-check").forEach(function (e) {
                        e.remove()
                    })
                }), (n = _(r, ".mm-listview")[0]).append.apply(n, f), this.openPanel(r)
            } else a.showSubPanels && c.forEach(function (e) {
                L(g(e, ".mm-listitem")).forEach(function (e) {
                    var t = e.mmChild;
                    t && g(t, ".mm-listitem").forEach(function (e) {
                        e.classList.remove("mm-hidden")
                    })
                })
            }), c.slice().reverse().forEach(function (t, n) {
                var a = t.mmParent;
                a && (L(g(t, ".mm-listitem")).length ? (a.matches(".mm-hidden") && a.classList.remove("mm-hidden"), a.classList.add("mm-listitem_onlysubitems")) : e.closest(".mm-panel") || ((t.matches(".mm-panel_opened") || t.matches(".mm-panel_opened-parent")) && setTimeout(function () {
                    i.openPanel(a.closest(".mm-panel"))
                }, (n + 1) * (1.5 * i.conf.openingInterval)), a.classList.add("mm-listitem_nosubitems")))
            }), c.forEach(function (e) {
                L(g(e, ".mm-listitem")).forEach(function (e) {
                    var t = function (e, t) {
                        for (var n = [], i = e.previousElementSibling; i;) t && !i.matches(t) || n.push(i), i = i.previousElementSibling;
                        return n
                    }(e, ".mm-divider")[0];
                    t && t.classList.remove("mm-hidden")
                })
            });
            o.forEach(function (e) {
                return e.classList.remove("mm-hidden")
            }), l.forEach(function (e) {
                g(e, ".mm-panel__noresultsmsg").forEach(function (e) {
                    return e.classList[p ? "add" : "remove"]("mm-hidden")
                })
            }), a.panel.add && (a.panel.splash && g(r, ".mm-panel__content").forEach(function (e) {
                return e.classList.add("mm-hidden")
            }), m.forEach(function (e) {
                return e.classList.remove("mm-hidden")
            }), d.forEach(function (e) {
                return e.classList.remove("mm-hidden")
            }))
        } else if (m.forEach(function (e) {
            return e.classList.remove("mm-hidden")
        }), d.forEach(function (e) {
            return e.classList.remove("mm-hidden")
        }), o.forEach(function (e) {
            return e.classList.add("mm-hidden")
        }), l.forEach(function (e) {
            g(e, ".mm-panel__noresultsmsg").forEach(function (e) {
                return e.classList.add("mm-hidden")
            })
        }), a.panel.add)
            if (a.panel.splash) g(r, ".mm-panel__content").forEach(function (e) {
                return e.classList.remove("mm-hidden")
            });
            else if (!e.closest(".mm-panel_search")) {
                var u = _(this.node.pnls, ".mm-panel_opened-parent");
                this.openPanel(u.slice(-1)[0])
            }
        this.trigger("updateListview")
    };
    var Te = {
        add: !1,
        addTo: "panels"
    };
    S.options.sectionIndexer = Te;
    var Ce = {
        current: !0,
        hover: !1,
        parent: !1
    };
    S.options.setSelected = Ce;
    var Ne = {
        collapsed: {
            use: !1,
            blockMenu: !0,
            hideDivider: !1,
            hideNavbar: !0
        },
        expanded: {
            use: !1,
            initial: "open"
        }
    };
    S.options.sidebar = Ne;
    S.configs.classNames.toggles = {
        toggle: "Toggle",
        check: "Check"
    };
    /*!
     * mmenu.js
     * mmenujs.com
     *
     * Copyright (c) Fred Heusschen
     * frebsite.nl
     *
     * License: CC-BY-NC-4.0
     * http://creativecommons.org/licenses/by-nc/4.0/
     */
    S.addons = { offcanvas: function () { var e = this; if (this.opts.offCanvas) { var t = function (e) { return "object" != typeof e && (e = {}), e }(this.opts.offCanvas); this.opts.offCanvas = s(t, S.options.offCanvas); var n = this.conf.offCanvas; this._api.push("open", "close", "setPage"), this.vars.opened = !1, this.bind("initMenu:before", function () { n.clone && (e.node.menu = e.node.menu.cloneNode(!0), e.node.menu.id && (e.node.menu.id = "mm-" + e.node.menu.id), g(e.node.menu, "[id]").forEach(function (e) { e.id = "mm-" + e.id })), e.node.wrpr = document.body, document.querySelector(n.menu.insertSelector)[n.menu.insertMethod](e.node.menu) }), this.bind("initMenu:after", function () { j.call(e), e.setPage(S.node.page), H.call(e), e.node.menu.classList.add("mm-menu_offcanvas"); var t = window.location.hash; if (t) { var n = d(e.node.menu.id); n && n == t.slice(1) && setTimeout(function () { e.open() }, 1e3) } }), this.bind("setPage:after", function (e) { S.node.blck && _(S.node.blck, "a").forEach(function (t) { t.setAttribute("href", "#" + e.id) }) }), this.bind("open:start:sr-aria", function () { S.sr_aria(e.node.menu, "hidden", !1) }), this.bind("close:finish:sr-aria", function () { S.sr_aria(e.node.menu, "hidden", !0) }), this.bind("initMenu:after:sr-aria", function () { S.sr_aria(e.node.menu, "hidden", !0) }), this.bind("initBlocker:after:sr-text", function () { _(S.node.blck, "a").forEach(function (t) { t.innerHTML = S.sr_text(e.i18n(e.conf.screenReader.text.closeMenu)) }) }), this.clck.push(function (t, n) { var i = d(e.node.menu.id); if (i && t.matches('[href="#' + i + '"]')) { if (n.inMenu) return e.open(), !0; var a = t.closest(".mm-menu"); if (a) { var s = a.mmApi; if (s && s.close) return s.close(), c(a, function () { e.open() }, e.conf.transitionDuration), !0 } return e.open(), !0 } if ((i = S.node.page.id) && t.matches('[href="#' + i + '"]')) return e.close(), !0 }) } }, screenReader: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { aria: e, text: e }), "object" != typeof e && (e = {}), e }(this.opts.screenReader); this.opts.screenReader = s(t, S.options.screenReader); var n = this.conf.screenReader; t.aria && (this.bind("initAddons:after", function () { e.bind("initMenu:after", function () { this.trigger("initMenu:after:sr-aria", [].slice.call(arguments)) }), e.bind("initNavbar:after", function () { this.trigger("initNavbar:after:sr-aria", [].slice.call(arguments)) }), e.bind("openPanel:start", function () { this.trigger("openPanel:start:sr-aria", [].slice.call(arguments)) }), e.bind("close:start", function () { this.trigger("close:start:sr-aria", [].slice.call(arguments)) }), e.bind("close:finish", function () { this.trigger("close:finish:sr-aria", [].slice.call(arguments)) }), e.bind("open:start", function () { this.trigger("open:start:sr-aria", [].slice.call(arguments)) }), e.bind("initOpened:after", function () { this.trigger("initOpened:after:sr-aria", [].slice.call(arguments)) }) }), this.bind("updateListview", function () { e.node.pnls.querySelectorAll(".mm-listitem").forEach(function (e) { S.sr_aria(e, "hidden", e.matches(".mm-hidden")) }) }), this.bind("openPanel:start", function (t) { var n = g(e.node.pnls, ".mm-panel").filter(function (e) { return e !== t }).filter(function (e) { return !e.parentElement.matches(".mm-panel") }), i = [t]; g(t, ".mm-listitem_vertical .mm-listitem_opened").forEach(function (e) { i.push.apply(i, _(e, ".mm-panel")) }), n.forEach(function (e) { S.sr_aria(e, "hidden", !0) }), i.forEach(function (e) { S.sr_aria(e, "hidden", !1) }) }), this.bind("closePanel", function (e) { S.sr_aria(e, "hidden", !0) }), this.bind("initPanel:after", function (e) { g(e, ".mm-btn").forEach(function (e) { S.sr_aria(e, "haspopup", !0); var t = e.getAttribute("href"); t && S.sr_aria(e, "owns", t.replace("#", "")) }) }), this.bind("initNavbar:after", function (e) { var t = _(e, ".mm-navbar")[0], n = t.matches(".mm-hidden"); S.sr_aria(t, "hidden", n) }), t.text && "parent" == this.opts.navbar.titleLink && this.bind("initNavbar:after", function (e) { var t = _(e, ".mm-navbar")[0], n = !!t.querySelector(".mm-btn_prev"); S.sr_aria(g(t, ".mm-navbar__title")[0], "hidden", n) })), t.text && (this.bind("initAddons:after", function () { e.bind("setPage:after", function () { this.trigger("setPage:after:sr-text", [].slice.call(arguments)) }), e.bind("initBlocker:after", function () { this.trigger("initBlocker:after:sr-text", [].slice.call(arguments)) }) }), this.bind("initNavbar:after", function (t) { var i = _(t, ".mm-navbar")[0]; if (i) { var a = _(i, ".mm-btn_prev")[0]; a && (a.innerHTML = S.sr_text(e.i18n(n.text.closeSubmenu))) } }), this.bind("initListview:after", function (t) { var i = t.closest(".mm-panel").mmParent; if (i) { var a = _(i, ".mm-btn_next")[0]; if (a) { var s = e.i18n(n.text[a.parentElement.matches(".mm-listitem_vertical") ? "toggleSubmenu" : "openSubmenu"]); a.innerHTML += S.sr_text(s) } } })) }, scrollBugFix: function () { var e = this; if (U && this.opts.offCanvas && this.opts.offCanvas.blockUI) { var t = function (e) { return "boolean" == typeof e && (e = { fix: e }), "object" != typeof e && (e = {}), e }(this.opts.scrollBugFix); if (this.opts.scrollBugFix = s(t, S.options.scrollBugFix), t.fix) { var n, i, a = (n = this.node.menu, i = "", n.addEventListener("touchmove", function (e) { i = "", e.movementY > 0 ? i = "down" : e.movementY < 0 && (i = "up") }), { get: function () { return i } }); this.node.menu.addEventListener("scroll", o, { passive: !1 }), this.node.menu.addEventListener("touchmove", function (e) { var t = e.target.closest(".mm-panel"); t ? t.scrollHeight === t.offsetHeight ? o(e) : (0 == t.scrollTop && "down" == a.get() || t.scrollHeight == t.scrollTop + t.offsetHeight && "up" == a.get()) && o(e) : o(e) }, { passive: !1 }), this.bind("open:start", function () { _(e.node.pnls, ".mm-panel_opened")[0].scrollTop = 0 }), window.addEventListener("orientationchange", function (t) { var n = _(e.node.pnls, ".mm-panel_opened")[0]; n.scrollTop = 0, n.style["-webkit-overflow-scrolling"] = "auto", n.style["-webkit-overflow-scrolling"] = "touch" }) } } function o(e) { e.preventDefault(), e.stopPropagation() } }, autoHeight: function () { var e = this, t = function (e) { return "boolean" == typeof e && e && (e = { height: "auto" }), "string" == typeof e && (e = { height: e }), "object" != typeof e && (e = {}), e }(this.opts.autoHeight); if (this.opts.autoHeight = s(t, S.options.autoHeight), "auto" == t.height || "highest" == t.height) { var n, i = (n = function (e) { return e.parentElement.matches(".mm-listitem_vertical") && (e = y(e, ".mm-panel").filter(function (e) { return !e.parentElement.matches(".mm-listitem_vertical") })[0]), e }, function () { if (!e.opts.offCanvas || e.vars.opened) { var i, a, s = 0, o = e.node.menu.offsetHeight - e.node.pnls.offsetHeight; e.node.menu.classList.add("mm-menu_autoheight-measuring"), "auto" == t.height ? ((a = _(e.node.pnls, ".mm-panel_opened")[0]) && (a = n(a)), a || (a = _(e.node.pnls, ".mm-panel")[0]), s = a.scrollHeight) : "highest" == t.height && (i = 0, _(e.node.pnls, ".mm-panel").forEach(function (e) { e = n(e), i = Math.max(i, e.scrollHeight) }), s = i), e.node.menu.style.height = s + o + "px", e.node.menu.classList.remove("mm-menu_autoheight-measuring") } }); this.bind("initMenu:after", function () { e.node.menu.classList.add("mm-menu_autoheight") }), this.opts.offCanvas && this.bind("open:start", i), "highest" == t.height && this.bind("initPanels:after", i), "auto" == t.height && (this.bind("updateListview", i), this.bind("openPanel:start", i)) } }, backButton: function () { var e = this; if (this.opts.offCanvas) { var t = function (e) { return "boolean" == typeof e && (e = { close: e }), "object" != typeof e && (e = {}), e }(this.opts.backButton); this.opts.backButton = s(t, S.options.backButton); var n = "#" + this.node.menu.id; if (t.close) { var i = [], a = function () { i = [n], _(e.node.pnls, ".mm-panel_opened, .mm-panel_opened-parent").forEach(function (e) { i.push("#" + e.id) }) }; this.bind("open:finish", function () { history.pushState(null, document.title, n) }), this.bind("open:finish", a), this.bind("openPanel:finish", a), this.bind("close:finish", function () { i = [], history.back(), history.pushState(null, document.title, location.pathname + location.search) }), window.addEventListener("popstate", function (t) { if (e.vars.opened && i.length) { var a = (i = i.slice(0, -1))[i.length - 1]; a == n ? e.close() : (e.openPanel(e.node.menu.querySelector(a)), history.pushState(null, document.title, n)) } }) } t.open && window.addEventListener("popstate", function (t) { e.vars.opened || location.hash != n || e.open() }) } }, columns: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e }), "number" == typeof e && (e = { add: !0, visible: e }), "object" != typeof e && (e = {}), "number" == typeof e.visible && (e.visible = { min: e.visible, max: e.visible }), e }(this.opts.columns); if (this.opts.columns = s(t, S.options.columns), t.add) { t.visible.min = Math.max(1, Math.min(6, t.visible.min)), t.visible.max = Math.max(t.visible.min, Math.min(6, t.visible.max)); for (var n = [], i = [], a = ["mm-panel_opened", "mm-panel_opened-parent", "mm-panel_highest"], o = 0; o <= t.visible.max; o++)n.push("mm-menu_columns-" + o), i.push("mm-panel_columns-" + o); a.push.apply(a, i), this.bind("openPanel:before", function (t) { var n; if (t && (n = t.mmParent), n && (n = n.closest(".mm-panel"))) { var i = n.className; if (i.length && (i = i.split("mm-panel_columns-")[1])) for (var s = parseInt(i.split(" ")[0], 10) + 1; s > 0;) { if (!(t = _(e.node.pnls, ".mm-panel_columns-" + s)[0])) { s = -1; break } s++, t.classList.add("mm-hidden"), a.forEach(function (e) { t.classList.remove(e) }) } } }), this.bind("openPanel:start", function (a) { var s = _(e.node.pnls, ".mm-panel_opened-parent").length; a.matches(".mm-panel_opened-parent") || s++, s = Math.min(t.visible.max, Math.max(t.visible.min, s)), n.forEach(function (t) { e.node.menu.classList.remove(t) }), e.node.menu.classList.add("mm-menu_columns-" + s); var o = []; _(e.node.pnls, ".mm-panel").forEach(function (e) { i.forEach(function (t) { e.classList.remove(t) }), e.matches(".mm-panel_opened-parent") && o.push(e) }), o.push(a), o.slice(-t.visible.max).forEach(function (e, t) { e.classList.add("mm-panel_columns-" + t) }) }) } }, counters: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e, addTo: "panels", count: e }), "object" != typeof e && (e = {}), "panels" == e.addTo && (e.addTo = ".mm-listview"), e }(this.opts.counters); if (this.opts.counters = s(t, S.options.counters), this.bind("initListview:after", function (t) { var n = e.conf.classNames.counters.counter; g(t, "." + n).forEach(function (e) { E(e, n, "mm-counter") }) }), t.add && this.bind("initListview:after", function (e) { if (e.matches(t.addTo)) { var n = e.closest(".mm-panel").mmParent; if (n && !g(n, ".mm-counter").length) { var i = _(n, ".mm-btn")[0]; i && i.prepend(b("span.mm-counter")) } } }), t.count) { var n = function (t) { (t ? [t.closest(".mm-panel")] : _(e.node.pnls, ".mm-panel")).forEach(function (e) { var t = e.mmParent; if (t) { var n = g(t, ".mm-counter")[0]; if (n) { var i = []; _(e, ".mm-listview").forEach(function (e) { i.push.apply(i, _(e)) }), n.innerHTML = L(i).length.toString() } } }) }; this.bind("initListview:after", n), this.bind("updateListview", n) } }, dividers: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e }), "object" != typeof e && (e = {}), "panels" == e.addTo && (e.addTo = ".mm-listview"), e }(this.opts.dividers); this.opts.dividers = s(t, S.options.dividers), this.bind("initListview:after", function (t) { _(t).forEach(function (t) { E(t, e.conf.classNames.divider, "mm-divider"), t.matches(".mm-divider") && t.classList.remove("mm-listitem") }) }), t.add && this.bind("initListview:after", function (e) { if (e.matches(t.addTo)) { g(e, ".mm-divider").forEach(function (e) { e.remove() }); var n = ""; L(_(e)).forEach(function (t) { var i = _(t, ".mm-listitem__text")[0].textContent.trim().toLowerCase()[0]; if (i.length && i != n) { n = i; var a = b("li.mm-divider"); a.textContent = i, e.insertBefore(a, t) } }) } }) }, drag: function () { var e = this; if (this.opts.offCanvas) { var t = function (e) { return "boolean" == typeof e && (e = { open: e }), "object" != typeof e && (e = {}), e }(this.opts.drag); this.opts.drag = s(t, S.options.drag), t.open && this.bind("setPage:after", function (n) { (function (e) { var t = this, n = {}, i = !1, a = function () { var e = Object.keys(t.opts.extensions); e.length ? (k(e.join(", "), function () { }, function () { n = re(n, [], t.node.menu) }), e.forEach(function (e) { k(e, function () { n = re(n, t.opts.extensions[e], t.node.menu) }, function () { }) })) : n = re(n, [], t.node.menu) }; se && (N(se, "dragStart"), N(se, "dragMove"), N(se, "dragEnd")), ae = new ie(se = e), a(), a = function () { }, se && (C(se, "dragStart", function (e) { e.detail.direction == n.direction && (i = !0, t.node.wrpr.classList.add("mm-wrapper_dragging"), t._openSetup(), t.trigger("open:start"), oe = t.node.menu["x" == n.axis ? "clientWidth" : "clientHeight"]) }), C(se, "dragMove", function (e) { if (e.detail.axis == n.axis && i) { var t = e.detail["distance" + n.axis.toUpperCase()]; switch (n.position) { case "right": case "bottom": t = Math.min(Math.max(t, -oe), 0); break; default: t = Math.max(Math.min(t, oe), 0) }if ("front" == n.zposition) switch (n.position) { case "right": case "bottom": t += oe; break; default: t -= oe }n.slideOutNodes.forEach(function (e) { e.style.transform = "translate" + n.axis.toUpperCase() + "(" + t + "px)" }) } }), C(se, "dragEnd", function (e) { if (e.detail.axis == n.axis && i) { i = !1, t.node.wrpr.classList.remove("mm-wrapper_dragging"), n.slideOutNodes.forEach(function (e) { e.style.transform = "" }); var a = Math.abs(e.detail["distance" + n.axis.toUpperCase()]) >= .75 * oe; if (!a) { var s = e.detail["movement" + n.axis.toUpperCase()]; switch (n.position) { case "right": case "bottom": a = s <= 0; break; default: a = s >= 0 } } a ? t._openStart() : t.close() } })) }).call(e, t.node || n) }) } }, dropdown: function () { var e = this; if (this.opts.offCanvas) { var t = function (e) { return "boolean" == typeof e && e && (e = { drop: e }), "object" != typeof e && (e = {}), "string" == typeof e.position && (e.position = { of: e.position }), e }(this.opts.dropdown); this.opts.dropdown = s(t, S.options.dropdown); var n = this.conf.dropdown; if (t.drop) { var i; this.bind("initMenu:after", function () { if (e.node.menu.classList.add("mm-menu_dropdown"), "string" != typeof t.position.of) { var n = d(e.node.menu.id); n && (t.position.of = '[href="#' + n + '"]') } if ("string" == typeof t.position.of) { i = g(document.body, t.position.of)[0]; var a = t.event.split(" "); 1 == a.length && (a[1] = a[0]), "hover" == a[0] && i.addEventListener("mouseenter", function () { e.open() }, { passive: !0 }), "hover" == a[1] && e.node.menu.addEventListener("mouseleave", function () { e.close() }, { passive: !0 }) } }), this.bind("open:start", function () { e.node.menu.mmStyle = e.node.menu.getAttribute("style"), e.node.wrpr.classList.add("mm-wrapper_dropdown") }), this.bind("close:finish", function () { e.node.menu.setAttribute("style", e.node.menu.mmStyle), e.node.wrpr.classList.remove("mm-wrapper_dropdown") }); var a = function (e, a) { var s, o, r, c = a[0], l = a[1], m = "x" == e ? "offsetWidth" : "offsetHeight", d = "x" == e ? "left" : "top", p = "x" == e ? "right" : "bottom", f = "x" == e ? "width" : "height", u = "x" == e ? "innerWidth" : "innerHeight", h = "x" == e ? "maxWidth" : "maxHeight", v = null, b = (s = d, i.getBoundingClientRect()[s] + document.body["left" === s ? "scrollLeft" : "scrollTop"]), g = b + i[m], _ = window[u], y = n.offset.button[e] + n.offset.viewport[e]; if (t.position[e]) switch (t.position[e]) { case "left": case "bottom": v = "after"; break; case "right": case "top": v = "before" }return null === v && (v = b + (g - b) / 2 < _ / 2 ? "after" : "before"), "after" == v ? (r = _ - ((o = "x" == e ? b : g) + y), c[d] = o + n.offset.button[e] + "px", c[p] = "auto", t.tip && l.push("mm-menu_tip-" + ("x" == e ? "left" : "top"))) : (r = (o = "x" == e ? g : b) - y, c[p] = "calc( 100% - " + (o - n.offset.button[e]) + "px )", c[d] = "auto", t.tip && l.push("mm-menu_tip-" + ("x" == e ? "right" : "bottom"))), t.fitViewport && (c[h] = Math.min(n[f].max, r) + "px"), [c, l] }; this.bind("open:start", o), window.addEventListener("resize", function (t) { o.call(e) }, { passive: !0 }), this.opts.offCanvas.blockUI || window.addEventListener("scroll", function (t) { o.call(e) }, { passive: !0 }) } } function o() { var e = this; if (this.vars.opened) { this.node.menu.setAttribute("style", this.node.menu.mmStyle); var n = [{}, []]; for (var i in n = a.call(this, "y", n), (n = a.call(this, "x", n))[0]) this.node.menu.style[i] = n[0][i]; t.tip && (["mm-menu_tip-left", "mm-menu_tip-right", "mm-menu_tip-top", "mm-menu_tip-bottom"].forEach(function (t) { e.node.menu.classList.remove(t) }), n[1].forEach(function (t) { e.node.menu.classList.add(t) })) } } }, fixedElements: function () { var e = this; if (this.opts.offCanvas) { var t, n, i = this.conf.fixedElements; this.bind("setPage:after", function (a) { t = e.conf.classNames.fixedElements.fixed, n = g(document, i.insertSelector)[0], g(a, "." + t).forEach(function (e) { E(e, t, "mm-slideout"), n[i.insertMethod](e) }) }) } }, iconbar: function () { var e, t = this, n = function (e) { return "array" == o(e) && (e = { use: !0, top: e }), "object" != o(e) && (e = {}), void 0 === e.use && (e.use = !0), "boolean" == typeof e.use && e.use && (e.use = !0), e }(this.opts.iconbar); if (this.opts.iconbar = s(n, S.options.iconbar), n.use && (["top", "bottom"].forEach(function (t, i) { var a = n[t]; "array" != o(a) && (a = [a]); for (var s = b("div.mm-iconbar__" + t), r = 0, c = a.length; r < c; r++)"string" == typeof a[r] ? s.innerHTML += a[r] : s.append(a[r]); s.children.length && (e || (e = b("div.mm-iconbar")), e.append(s)) }), e)) { this.bind("initMenu:after", function () { t.node.menu.prepend(e) }); var i = "mm-menu_iconbar-" + n.position, a = function () { t.node.menu.classList.add(i), S.sr_aria(e, "hidden", !1) }; if ("boolean" == typeof n.use ? this.bind("initMenu:after", a) : k(n.use, a, function () { t.node.menu.classList.remove(i), S.sr_aria(e, "hidden", !0) }), "tabs" == n.type) { e.classList.add("mm-iconbar_tabs"), e.addEventListener("click", function (e) { var n = e.target; if (n.matches("a")) if (n.matches(".mm-iconbar__tab_selected")) e.stopImmediatePropagation(); else try { var i = t.node.menu.querySelector(n.getAttribute("href"))[0]; i && i.matches(".mm-panel") && (e.preventDefault(), e.stopImmediatePropagation(), t.openPanel(i, !1)) } catch (e) { } }); var r = function (t) { g(e, "a").forEach(function (e) { e.classList.remove("mm-iconbar__tab_selected") }); var n = g(e, '[href="#' + t.id + '"]')[0]; if (n) n.classList.add("mm-iconbar__tab_selected"); else { var i = t.mmParent; i && r(i.closest(".mm-panel")) } }; this.bind("openPanel:start", r) } } }, iconPanels: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e }), "number" != typeof e && "string" != typeof e || (e = { add: !0, visible: e }), "object" != typeof e && (e = {}), e }(this.opts.iconPanels); this.opts.iconPanels = s(t, S.options.iconPanels); var n = !1; if ("first" == t.visible && (n = !0, t.visible = 1), t.visible = Math.min(3, Math.max(1, t.visible)), t.visible++, t.add) { this.bind("initMenu:after", function () { var n = ["mm-menu_iconpanel"]; t.hideNavbar && n.push("mm-menu_hidenavbar"), t.hideDivider && n.push("mm-menu_hidedivider"), n.forEach(function (t) { e.node.menu.classList.add(t) }) }); var i = []; if (!n) for (var a = 0; a <= t.visible; a++)i.push("mm-panel_iconpanel-" + a); this.bind("openPanel:start", function (a) { var s = _(e.node.pnls, ".mm-panel"); if (!(a = a || s[0]).parentElement.matches(".mm-listitem_vertical")) if (n) s.forEach(function (e, t) { e.classList[0 == t ? "add" : "remove"]("mm-panel_iconpanel-first") }); else { s.forEach(function (e) { i.forEach(function (t) { e.classList.remove(t) }) }), s = s.filter(function (e) { return e.matches(".mm-panel_opened-parent") }); var o = !1; s.forEach(function (e) { a === e && (o = !0) }), o || s.push(a), s.forEach(function (e) { e.classList.remove("mm-hidden") }), (s = s.slice(-t.visible)).forEach(function (e, t) { e.classList.add("mm-panel_iconpanel-" + t) }) } }), this.bind("initPanel:after", function (e) { if (t.blockPanel && !e.parentElement.matches(".mm-listitem_vertical") && !_(e, ".mm-panel__blocker")[0]) { var n = b("a.mm-panel__blocker"); n.setAttribute("href", "#" + e.closest(".mm-panel").id), e.prepend(n) } }) } }, keyboardNavigation: function () { var e = this; if (!U) { var t = function (e) { return "boolean" != typeof e && "string" != typeof e || (e = { enable: e }), "object" != typeof e && (e = {}), e }(this.opts.keyboardNavigation); if (this.opts.keyboardNavigation = s(t, S.options.keyboardNavigation), t.enable) { var n = b("button.mm-tabstart.mm-sronly"), i = b("button.mm-tabend.mm-sronly"), a = b("button.mm-tabend.mm-sronly"); this.bind("initMenu:after", function () { t.enhance && e.node.menu.classList.add("mm-menu_keyboardfocus"), ue.call(e, t.enhance) }), this.bind("initOpened:before", function () { e.node.menu.prepend(n), e.node.menu.append(i), _(e.node.menu, ".mm-navbars-top, .mm-navbars-bottom").forEach(function (e) { e.querySelectorAll(".mm-navbar__title").forEach(function (e) { e.setAttribute("tabindex", "-1") }) }) }), this.bind("initBlocker:after", function () { S.node.blck.append(a), _(S.node.blck, "a")[0].classList.add("mm-tabstart") }); var o = "input, select, textarea, button, label, a[href]", r = function (n) { n = n || _(e.node.pnls, ".mm-panel_opened")[0]; var i = null, a = document.activeElement.closest(".mm-navbar"); if (!a || a.closest(".mm-menu") != e.node.menu) { if ("default" == t.enable && ((i = g(n, ".mm-listview a[href]:not(.mm-hidden)")[0]) || (i = g(n, o + ":not(.mm-hidden)")[0]), !i)) { var s = []; _(e.node.menu, ".mm-navbars_top, .mm-navbars_bottom").forEach(function (e) { s.push.apply(s, g(e, o + ":not(.mm-hidden)")) }), i = s[0] } i || (i = _(e.node.menu, ".mm-tabstart")[0]), i && i.focus() } }; this.bind("open:finish", r), this.bind("openPanel:finish", r), this.bind("initOpened:after:sr-aria", function () { [e.node.menu, S.node.blck].forEach(function (e) { _(e, ".mm-tabstart, .mm-tabend").forEach(function (e) { S.sr_aria(e, "hidden", !0), S.sr_role(e, "presentation") }) }) }) } } }, lazySubmenus: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { load: e }), "object" != typeof e && (e = {}), e }(this.opts.lazySubmenus); this.opts.lazySubmenus = s(t, S.options.lazySubmenus), t.load && (this.bind("initMenu:after", function () { var t = []; g(e.node.pnls, "li").forEach(function (n) { t.push.apply(t, _(n, e.conf.panelNodetype.join(", "))) }), t.filter(function (e) { return !e.matches(".mm-listview_inset") }).filter(function (e) { return !e.matches(".mm-nolistview") }).filter(function (e) { return !e.matches(".mm-nopanel") }).forEach(function (e) { ["mm-panel_lazysubmenu", "mm-nolistview", "mm-nopanel"].forEach(function (t) { e.classList.add(t) }) }) }), this.bind("initPanels:before", function () { _(e.node.pnls, e.conf.panelNodetype.join(", ")).forEach(function (e) { var t = ".mm-panel_lazysubmenu", n = g(e, t); e.matches(t) && n.unshift(e), n.filter(function (e) { return !e.matches(".mm-panel_lazysubmenu .mm-panel_lazysubmenu") }).forEach(function (e) { ["mm-panel_lazysubmenu", "mm-nolistview", "mm-nopanel"].forEach(function (t) { e.classList.remove(t) }) }) }) }), this.bind("initOpened:before", function () { var t = []; g(e.node.pnls, "." + e.conf.classNames.selected).forEach(function (e) { t.push.apply(t, y(e, ".mm-panel_lazysubmenu")) }), t.length && (t.forEach(function (e) { ["mm-panel_lazysubmenu", "mm-nolistview", "mm-nopanel"].forEach(function (t) { e.classList.remove(t) }) }), e.initPanel(t[t.length - 1])) }), this.bind("openPanel:before", function (t) { var n = ".mm-panel_lazysubmenu", i = g(t, n); t.matches(n) && i.unshift(t), (i = i.filter(function (e) { return !e.matches(".mm-panel_lazysubmenu .mm-panel_lazysubmenu") })).forEach(function (t) { e.initPanel(t) }) })) }, navbars: ge, pageScroll: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { scroll: e }), "object" != typeof e && (e = {}), e }(this.opts.pageScroll); this.opts.pageScroll = s(t, S.options.pageScroll); var n, i = this.conf.pageScroll; function a() { n && window.scrollTo({ top: n.getBoundingClientRect().top + document.scrollingElement.scrollTop - i.scrollOffset, behavior: "smooth" }), n = null } function o(e) { try { return "#" != e && "#" == e.slice(0, 1) ? S.node.page.querySelector(e) : null } catch (e) { return null } } if (t.scroll && this.bind("close:finish", function () { a() }), this.opts.offCanvas && t.scroll && this.clck.push(function (t, i) { if (n = null, i.inMenu) { var s = t.getAttribute("href"); if (n = o(s)) return e.node.menu.matches(".mm-menu_sidebar-expanded") && e.node.wrpr.matches(".mm-wrapper_sidebar-expanded") ? void a() : { close: !0 } } }), t.update) { var r = []; this.bind("initListview:after", function (e) { w(_(e, ".mm-listitem")).forEach(function (e) { var t = o(e.getAttribute("href")); t && r.unshift(t) }) }); var c = -1; window.addEventListener("scroll", function (t) { for (var n = window.scrollY, a = 0; a < r.length; a++)if (r[a].offsetTop < n + i.updateOffset) { if (c !== a) { c = a; var s = w(g(_(e.node.pnls, ".mm-panel_opened")[0], ".mm-listitem")); (s = s.filter(function (e) { return e.matches('[href="#' + r[a].id + '"]') })).length && e.setSelected(s[0].parentElement) } break } }) } }, searchfield: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e }), "object" != typeof e && (e = {}), "boolean" == typeof e.panel && (e.panel = { add: e.panel }), "object" != typeof e.panel && (e.panel = {}), "panel" == e.addTo && (e.panel.add = !0), e.panel.add && (e.showSubPanels = !1, e.panel.splash && (e.cancel = !0)), e }(this.opts.searchfield); this.opts.searchfield = s(t, S.options.searchfield); this.conf.searchfield; t.add && (this.bind("close:start", function () { g(e.node.menu, ".mm-searchfield").forEach(function (e) { e.blur() }) }), this.bind("initPanel:after", function (n) { var i = null; t.panel.add && (i = Pe.call(e)); var a = null; switch (t.addTo) { case "panels": a = [n]; break; case "panel": a = [i]; break; default: "string" == typeof t.addTo ? a = g(e.node.menu, t.addTo) : "array" == o(t.addTo) && (a = t.addTo) }a.forEach(function (n) { n = Se.call(e, n), t.search && n && Me.call(e, n) }), t.noResults && Ae.call(e, t.panel.add ? i : n) }), this.clck.push(function (t, n) { if (n.inMenu && t.matches(".mm-searchfield__btn")) { if (t.matches(".mm-btn_close")) { var i = g(a = t.closest(".mm-searchfield"), "input")[0]; return i.value = "", e.search(i), !0 } var a; if (t.matches(".mm-btn_next")) return (a = t.closest("form")) && a.submit(), !0 } })) }, sectionIndexer: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { add: e }), "object" != typeof e && (e = {}), e }(this.opts.sectionIndexer); this.opts.sectionIndexer = s(t, S.options.sectionIndexer), t.add && this.bind("initPanels:after", function () { if (!e.node.indx) { var t = ""; "abcdefghijklmnopqrstuvwxyz".split("").forEach(function (e) { t += '<a href="#">' + e + "</a>" }); var n = b("div.mm-sectionindexer"); n.innerHTML = t, e.node.pnls.prepend(n), e.node.indx = n, e.node.indx.addEventListener("click", function (e) { e.target.matches("a") && e.preventDefault() }); var i = function (t) { if (t.target.matches("a")) { var n = t.target.textContent, i = _(e.node.pnls, ".mm-panel_opened")[0], a = -1, s = i.scrollTop; i.scrollTop = 0, g(i, ".mm-divider").filter(function (e) { return !e.matches(".mm-hidden") }).forEach(function (e) { a < 0 && n == e.textContent.trim().slice(0, 1).toLowerCase() && (a = e.offsetTop) }), i.scrollTop = a > -1 ? a : s } }; U ? (e.node.indx.addEventListener("touchstart", i), e.node.indx.addEventListener("touchmove", i)) : e.node.indx.addEventListener("mouseover", i) } e.bind("openPanel:start", function (t) { var n = g(t, ".mm-divider").filter(function (e) { return !e.matches(".mm-hidden") }).length; e.node.indx.classList[n ? "add" : "remove"]("mm-sectionindexer_active") }) }) }, setSelected: function () { var e = this, t = function (e) { return "boolean" == typeof e && (e = { hover: e, parent: e }), "object" != typeof e && (e = {}), e }(this.opts.setSelected); if (this.opts.setSelected = s(t, S.options.setSelected), "detect" == t.current) { var n = function (t) { t = t.split("?")[0].split("#")[0]; var i = e.node.menu.querySelector('a[href="' + t + '"], a[href="' + t + '/"]'); if (i) e.setSelected(i.parentElement); else { var a = t.split("/").slice(0, -1); a.length && n(a.join("/")) } }; this.bind("initMenu:after", function () { n.call(e, window.location.href) }) } else t.current || this.bind("initListview:after", function (e) { _(e, ".mm-listitem_selected").forEach(function (e) { e.classList.remove("mm-listitem_selected") }) }); t.hover && this.bind("initMenu:after", function () { e.node.menu.classList.add("mm-menu_selected-hover") }), t.parent && (this.bind("openPanel:finish", function (t) { g(e.node.pnls, ".mm-listitem_selected-parent").forEach(function (e) { e.classList.remove("mm-listitem_selected-parent") }); for (var n = t.mmParent; n;)n.matches(".mm-listitem_vertical") || n.classList.add("mm-listitem_selected-parent"), n = (n = n.closest(".mm-panel")).mmParent }), this.bind("initMenu:after", function () { e.node.menu.classList.add("mm-menu_selected-parent") })) }, sidebar: function () { var e = this; if (this.opts.offCanvas) { var t = function (e) { return ("string" == typeof e || "boolean" == typeof e && e || "number" == typeof e) && (e = { expanded: e }), "object" != typeof e && (e = {}), "boolean" == typeof e.collapsed && e.collapsed && (e.collapsed = { use: !0 }), "string" != typeof e.collapsed && "number" != typeof e.collapsed || (e.collapsed = { use: e.collapsed }), "object" != typeof e.collapsed && (e.collapsed = {}), "boolean" == typeof e.expanded && e.expanded && (e.expanded = { use: !0 }), "string" != typeof e.expanded && "number" != typeof e.expanded || (e.expanded = { use: e.expanded }), "object" != typeof e.expanded && (e.expanded = {}), e }(this.opts.sidebar); if (this.opts.sidebar = s(t, S.options.sidebar), t.collapsed.use) { this.bind("initMenu:after", function () { if (e.node.menu.classList.add("mm-menu_sidebar-collapsed"), t.collapsed.blockMenu && e.opts.offCanvas && !_(e.node.menu, ".mm-menu__blocker")[0]) { var n = b("a.mm-menu__blocker"); n.setAttribute("href", "#" + e.node.menu.id), e.node.menu.prepend(n) } t.collapsed.hideNavbar && e.node.menu.classList.add("mm-menu_hidenavbar"), t.collapsed.hideDivider && e.node.menu.classList.add("mm-menu_hidedivider") }); var n = function () { e.node.wrpr.classList.add("mm-wrapper_sidebar-collapsed") }, i = function () { e.node.wrpr.classList.remove("mm-wrapper_sidebar-collapsed") }; "boolean" == typeof t.collapsed.use ? this.bind("initMenu:after", n) : k(t.collapsed.use, n, i) } if (t.expanded.use) { this.bind("initMenu:after", function () { e.node.menu.classList.add("mm-menu_sidebar-expanded") }), n = function () { e.node.wrpr.classList.add("mm-wrapper_sidebar-expanded"), e.node.wrpr.matches(".mm-wrapper_sidebar-closed") || e.open() }, i = function () { e.node.wrpr.classList.remove("mm-wrapper_sidebar-expanded"), e.close() }, "boolean" == typeof t.expanded.use ? this.bind("initMenu:after", n) : k(t.expanded.use, n, i), this.bind("close:start", function () { e.node.wrpr.matches(".mm-wrapper_sidebar-expanded") && (e.node.wrpr.classList.add("mm-wrapper_sidebar-closed"), "remember" == t.expanded.initial && window.localStorage.setItem("mmenuExpandedState", "closed")) }), this.bind("open:start", function () { e.node.wrpr.matches(".mm-wrapper_sidebar-expanded") && (e.node.wrpr.classList.remove("mm-wrapper_sidebar-closed"), "remember" == t.expanded.initial && window.localStorage.setItem("mmenuExpandedState", "open")) }); var a = t.expanded.initial; if ("remember" == t.expanded.initial) { var o = window.localStorage.getItem("mmenuExpandedState"); switch (o) { case "open": case "closed": a = o } } "closed" == a && this.bind("initMenu:after", function () { e.node.wrpr.classList.add("mm-wrapper_sidebar-closed") }), this.clck.push(function (n, i) { if (i.inMenu && i.inListview && e.node.wrpr.matches(".mm-wrapper_sidebar-expanded")) return { close: "closed" == t.expanded.initial } }) } } }, toggles: function () { var e = this; this.bind("initPanel:after", function (t) { g(t, "input").forEach(function (t) { E(t, e.conf.classNames.toggles.toggle, "mm-toggle"), E(t, e.conf.classNames.toggles.check, "mm-check") }) }) } }, S.wrappers = { angular: function () { this.opts.onClick = { close: !0, preventDefault: !1, setSelected: !0 } }, bootstrap: function () { var e = this; if (this.node.menu.matches(".navbar-collapse")) { this.conf.offCanvas && (this.conf.offCanvas.clone = !1); var t = b("nav"), n = b("div"); t.append(n), _(this.node.menu).forEach(function (t) { switch (!0) { case t.matches(".navbar-nav"): n.append((i = t, a = b("ul"), g(i, ".nav-item").forEach(function (e) { var t = b("li"); if (e.matches(".active") && t.classList.add("Selected"), !e.matches(".nav-link")) { var n = _(e, ".dropdown-menu")[0]; n && t.append(o(n)), e = _(e, ".nav-link")[0] } t.prepend(s(e)), a.append(t) }), a)); break; case t.matches(".dropdown-menu"): n.append(o(t)); break; case t.matches(".form-inline"): e.conf.searchfield.form = { action: t.getAttribute("action") || null, method: t.getAttribute("method") || null }, e.conf.searchfield.input = { name: t.querySelector("input").getAttribute("name") || null }, e.conf.searchfield.clear = !1, e.conf.searchfield.submit = !0; break; default: n.append(t.cloneNode(!0)) }var i, a }), this.bind("initMenu:before", function () { document.body.prepend(t), e.node.menu = t }); var i = this.node.menu.parentElement; if (i) { var a = i.querySelector(".navbar-toggler"); a && (delete a.dataset.target, a.removeAttribute("aria-controls"), a.outerHTML = a.outerHTML, (a = i.querySelector(".navbar-toggler")).addEventListener("click", function (t) { t.preventDefault(), t.stopImmediatePropagation(), e[e.vars.opened ? "close" : "open"]() })) } } function s(e) { for (var t = b(e.matches("a") ? "a" : "span"), n = ["href", "title", "target"], i = 0; i < n.length; i++)void 0 !== e.getAttribute(n[i]) && t.setAttribute(n[i], e.getAttribute(n[i])); return t.innerHTML = e.innerHTML, g(t, ".sr-only").forEach(function (e) { e.remove() }), t } function o(e) { var t = b("ul"); return _(e).forEach(function (e) { var n = b("li"); e.matches(".dropdown-divider") ? n.classList.add("Divider") : e.matches(".dropdown-item") && n.append(s(e)), t.append(n) }), t } }, olark: function () { this.conf.offCanvas.page.noSelector.push("#olark") }, turbolinks: function () { var e; document.addEventListener("turbolinks:before-visit", function (t) { e = document.querySelector(".mm-wrapper").className.split(" ").filter(function (e) { return /mm-/.test(e) }) }), document.addEventListener("turbolinks:load", function (t) { void 0 !== e && (document.querySelector(".mm-wrapper").className = e) }) }, wordpress: function () { this.conf.classNames.selected = "current-menu-item"; var e = document.getElementById("wpadminbar"); e && (e.style.position = "fixed", e.classList.add("mm-slideout")) } }; var He; t.default = S; window.Mmenu = S, (He = window.jQuery || window.Zepto || null) && (He.fn.mmenu = function (e, t) { var n = He(); return this.each(function (i, a) { if (a.mmApi) return; let s = new S(a, e, t), o = He(s.node.menu); o.data("mmenu", s.API), n = n.add(o) }), n })
}]);;
/* 
Ace Responsive Menu Plugin
Version: 1.0
Author: Samson.Onna 
Email : samson3d@gmail.com
----------------------------------------*/

function hamburgerFix() {
    var webHeaderUlWidth = 0;

    $("#fn-nav-clone .fn-ace-parent-li").each(function (index, el) {
        if (!$(this).hasClass("hide") &&
            $(this).attr("id") != "menu-bar-container-web-container") {
            webHeaderUlWidth += $(this).outerWidth(true);
        }
    });

    var headerWidth = $(".navbar_brand").outerWidth(true);
    var mobileHeaderWidth = $(".nav_logo_img").outerWidth(true);
    headerWidth = headerWidth + 20; //padding right not included
    if (mobileHeaderWidth > headerWidth) {
        headerWidth = mobileHeaderWidth;
    }

    webHeaderUlWidth = webHeaderUlWidth + headerWidth + 5; //5px my account padding

    var currentWidth = $(".header-nav .container nav").outerWidth(true);

    if (currentWidth < webHeaderUlWidth) {
        var mobileScreen = $(window).outerWidth() <= 768;
        if (isMobileOrTable() || mobileScreen) {
            $(".mobile-menu").css('display', 'block');
            $(".main-menu").css('display', 'none');
            $("#page").addClass('show');
            $(".header-nav").css('display', 'none');
            $(".fn-mobile-header").css('display', 'block');
            $("#menu-bar-container-web-container").css('display', 'none');
        } else {
            $("#page").removeClass("show");
            $(".mobile-menu").css('display', 'block');
            $("#my-account-li-web").css('display', 'none');
            $(".fn-mobile-header").css('display', 'none');
            $(".header-nav").css('display', 'block');
            //lets hide all items
            //$("#respMenu .fn-ace-parent-li").css('display', 'none');
            $("#menu-bar-container-web-container").css('display', 'block');
            ///$("#respMenu .sign_up_btn").css('display', 'block');

            var buttonsWidth = 0;
            $("#fn-nav-clone .fn-calc-width").each(function (index, el) {
                if (!$(this).hasClass("hide")) {
                    buttonsWidth += $(this).outerWidth(true);
                }
            });
            var calculateEachLiWidth = buttonsWidth + headerWidth + 60; //50 is mobile bar
            $("#respMenu .fn-ace-parent-li").each(function (index, el) {
                if ($(this).hasClass('fn-ace-children-li')) {
                    //skip leave for future implementation
                } else {
                    var show = $(this).data("sm-show") == true || $(this).attr("id") != "my-account-li-web";
                    if (show) {
                        var liWidth = $(this).outerWidth(true);

                        if (!$(this).hasClass("sign_up_btn") && $(this).attr("id") != "menu-bar-container-web-container") {
                            var calculateEachLiWidth1 = calculateEachLiWidth + liWidth;

                            if (calculateEachLiWidth1 < currentWidth) {
                                $(this).css('display', 'block');
                                calculateEachLiWidth += liWidth;
                            } else {
                                $(this).css('display', 'none');
                            }

                        }
                    }
                }
            });

        }
    } else {
        //lets hide all items, FORCE SHOW
        $("#respMenu .fn-ace-parent-li").css('display', 'block');

        $(".mobile-menu").css('display', 'none');
        $(".main-menu").css('display', 'block');
        $("#page").removeClass('show');
        $(".header-nav").css('display', 'block');
        $("#my-account-li-web").css('display', 'block');
        $("#menu-bar-container-web-container").css('display', 'none');
        $(".fn-mobile-header").css('display', 'none');

        try {
            //try to close left nav if is opened
            if ($("#menu").hasClass("mm-menu_opened")) {
                $("#menu").removeClass("mm-menu_opened");
            }
        } catch (e) {

        }
    }
}

(function ($) {
    $.fn.aceResponsiveMenu = function (options) {
        //plugin's default options
        var defaults = {
            resizeWidth: '768',
            animationSpeed: 'fast',
            accoridonExpAll: false
        };

        //Variables
        var options = $.extend(defaults, options),
            opt = options,
            $resizeWidth = opt.resizeWidth,
            $animationSpeed = opt.animationSpeed,
            $expandAll = opt.accoridonExpAll,
            $aceMenu = $(this),
            $initWidth = $(this).outerWidth(),
            $menuStyle = $(this).attr('data-menu-style');

        // Initilizing        
        $aceMenu.find('ul').addClass("sub-menu");
        $aceMenu.find('ul').siblings('a').append('<span class="arrow "></span>');
        if ($menuStyle == 'accordion') {
             $(this).addClass('collapse');
        }

        // Window resize on menu breakpoint 
        if ($(window).innerWidth() <= $resizeWidth) {
            menuCollapse();
        }

        hamburgerFix();

        setTimeout(function () {
            //first time call, fake nav is not created, lets try to resize one more time to be sure
            hamburgerFix();
        }, 500);

        $(window).resize(function () {
            menuCollapse();
            hamburgerFix();
        });

        // Menu Toggle
        function menuCollapse() {
            var w = $(window).innerWidth();
            if (w <= $resizeWidth) {
                $aceMenu.find('li.menu-active').removeClass('menu-active');
                $aceMenu.find('ul.slide').removeClass('slide').removeAttr('style');
                $aceMenu.addClass('collapse hide-menu');
                $aceMenu.attr('data-menu-style', '');
                $('.menu-toggle').show();
            } else {
                $aceMenu.attr('data-menu-style', $menuStyle);
                $aceMenu.removeClass('collapse hide-menu').removeAttr('style');
                $('.menu-toggle').hide();
                if ($aceMenu.attr('data-menu-style') == 'accordion') {
                    $aceMenu.addClass('collapse');
                    return;
                }
                $aceMenu.find('li.menu-active').removeClass('menu-active');
                $aceMenu.find('ul.slide').removeClass('slide').removeAttr('style');
            }
        }

        //ToggleBtn Click
        $('#menu-btn').click(function () {
            $aceMenu.slideToggle().toggleClass('hide-menu');
        });

        // Main function 
        return this.each(function () {
            // Function for Horizontal menu on mouseenter
            $aceMenu.on('mouseover', '> li a', function () {
                if ($aceMenu.hasClass('collapse') === true) {
                    return false;
                }
                $(this).off('click', '> li a');
                $(this).parent('li').siblings().children('.sub-menu').stop(true, true).slideUp($animationSpeed).removeClass('slide').removeAttr('style').stop();

                var screenWidth = $(window).outerWidth();
                var firstLevelWidth = 215;
                var secondLevelWidth = 215;

                var leftPosition = $(this).parent().position().left;
                var openedAlready = $('.fn-ace-parent-li').hasClass('menu-active');

                if (!openedAlready) {
                    if (leftPosition + firstLevelWidth > screenWidth) {
                        $(this).parent().find('.sub-menu').addClass("menu-right-18");
                    } else {
                        $('.sub-menu').removeClass('menu-right-18');
                    }
                } else {
                    if ($(this).parent().find('.arrow') && !$(this).parent().hasClass('float-right') && $(this).hasClass('parent-header-link')) {
                        leftPosition = $('.float-right ul').position() != null ?  $('.float-right ul').position().left : 0;
                        if (leftPosition + firstLevelWidth + secondLevelWidth > screenWidth) {
                            $(this).parent().find('.sub-menu').addClass("sub-menu-left-minus");
                        } else {
                            $('.sub-menu').removeClass('sub-menu-left-minus');
                        }
                    }
                }

                $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide');

                return;
            });
            $aceMenu.on('mouseleave', 'li', function () {
                if ($aceMenu.hasClass('collapse') === true) {
                    return false;
                }
                $(this).off('click', '> li a');
                $(this).removeClass('menu-active');
                $(this).children('ul.sub-menu').stop(true, true).slideUp($animationSpeed).removeClass('slide').removeAttr('style');
                return;
            });
            //End of Horizontal menu function

            // Function for Vertical/Responsive Menu on mouse click
            $aceMenu.on('click', '> li a', function () {
                if ($aceMenu.hasClass('collapse') === false) {
                    //return false;
                }
                $(this).off('mouseover', '> li a');
                if ($(this).parent().hasClass('menu-active')) {
                    $(this).parent().children('.sub-menu').slideUp().removeClass('slide');
                    $(this).parent().removeClass('menu-active');
                } else {
                    if ($expandAll == true) {
                        $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide');

                        return;
                    }
                    $(this).parent().siblings().removeClass('menu-active');
                    $(this).parent('li').siblings().children('.sub-menu').slideUp().removeClass('slide');
                    $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide');
                }

            })
            //End of responsive menu function
        });
        //End of Main function
    }
})(jQuery);;
!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){!function(e){"use strict";var t,i,s,n=document.createElement("_");if(n.classList.toggle("c3",!1),n.classList.contains("c3")){var o=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(e,t){return 1 in arguments&&!this.contains(e)==!t?t:o.call(this,e)}}function l(e){var t,i=[],s=e&&e.options;if(e.multiple)for(var n=0,o=s.length;n<o;n++)(t=s[n]).selected&&i.push(t.value||t.text);else i=e.value;return i}String.prototype.startsWith||(t=function(){try{var e={},t=Object.defineProperty,i=t(e,e,e)&&t}catch(e){}return i}(),i={}.toString,s=function(e){if(null==this)throw new TypeError;var t=String(this);if(e&&"[object RegExp]"==i.call(e))throw new TypeError;var s=t.length,n=String(e),o=n.length,l=1<arguments.length?arguments[1]:void 0,r=l?Number(l):0;r!=r&&(r=0);var c=Math.min(Math.max(r,0),s);if(s<o+c)return!1;for(var a=-1;++a<o;)if(t.charCodeAt(c+a)!=n.charCodeAt(a))return!1;return!0},t?t(String.prototype,"startsWith",{value:s,configurable:!0,writable:!0}):String.prototype.startsWith=s),Object.keys||(Object.keys=function(e,t,i){for(t in i=[],e)i.hasOwnProperty.call(e,t)&&i.push(t);return i});var r={useDefault:!1,_set:e.valHooks.select.set};e.valHooks.select.set=function(t,i){return i&&!r.useDefault&&e(t).data("selected",!0),r._set.apply(this,arguments)};var c=null,a=function(){try{return new Event("change"),!0}catch(e){return!1}}();function d(e,t,i,s){for(var n=["content","subtext","tokens"],o=!1,l=0;l<n.length;l++){var r=n[l],c=e[r];if(c&&(c=c.toString(),"content"===r&&(c=c.replace(/<[^>]+>/g,"")),s&&(c=p(c)),c=c.toUpperCase(),o="contains"===i?0<=c.indexOf(t):c.startsWith(t)))break}return o}function h(e){return parseInt(e,10)||0}function p(t){return e.each([{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}],function(){t=t?t.replace(this.re,this.ch):""}),t}e.fn.triggerNative=function(e){var t,i=this[0];i.dispatchEvent?(a?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),i.dispatchEvent(t)):i.fireEvent?((t=document.createEventObject()).eventType=e,i.fireEvent("on"+e,t)):this.trigger(e)};var u=function(e){var t=function(t){return e[t]},i="(?:"+Object.keys(e).join("|")+")",s=RegExp(i),n=RegExp(i,"g");return function(e){return e=null==e?"":""+e,s.test(e)?e.replace(n,t):e}},m=u({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"}),f=u({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`"}),v={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},g={success:!1,major:"3"};try{g.full=(e.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),g.major=g.full[0],g.success=!0}catch(t){console.warn("There was an issue retrieving Bootstrap's version. Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.",t)}var b={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title"},w={MENU:"."+b.MENU};"4"===g.major&&(b.DIVIDER="dropdown-divider",b.SHOW="show",b.BUTTONCLASS="btn-light",b.POPOVERHEADER="popover-header");var x=new RegExp("38|40"),I=new RegExp("^9$|27"),k=(new RegExp("13|32"),function(t,i){var s=this;r.useDefault||(e.valHooks.select.set=r._set,r.useDefault=!0),this.$element=e(t),this.$newElement=null,this.$button=null,this.$menu=null,this.options=i,this.selectpicker={main:{map:{newIndex:{},originalIndex:{}}},current:{map:{}},search:{map:{}},view:{},keydown:{keyHistory:"",resetKeyHistory:{start:function(){return setTimeout(function(){s.selectpicker.keydown.keyHistory=""},800)}}}},null===this.options.title&&(this.options.title=this.$element.attr("title"));var n=this.options.windowPadding;"number"==typeof n&&(this.options.windowPadding=[n,n,n,n]),this.val=k.prototype.val,this.render=k.prototype.render,this.refresh=k.prototype.refresh,this.setStyle=k.prototype.setStyle,this.selectAll=k.prototype.selectAll,this.deselectAll=k.prototype.deselectAll,this.destroy=k.prototype.destroy,this.remove=k.prototype.remove,this.show=k.prototype.show,this.hide=k.prototype.hide,this.init()});function $(t){var i,s=arguments,n=t;if([].shift.apply(s),!g.success){try{g.full=(e.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split(".")}catch(t){g.full=k.BootstrapVersion.split(" ")[0].split(".")}g.major=g.full[0],g.success=!0,"4"===g.major&&(b.DIVIDER="dropdown-divider",b.SHOW="show",b.BUTTONCLASS="btn-light",k.DEFAULTS.style=b.BUTTONCLASS="btn-light",b.POPOVERHEADER="popover-header")}var o=this.each(function(){var t=e(this);if(t.is("select")){var o=t.data("selectpicker"),l="object"==typeof n&&n;if(o){if(l)for(var r in l)l.hasOwnProperty(r)&&(o.options[r]=l[r])}else{var c=e.extend({},k.DEFAULTS,e.fn.selectpicker.defaults||{},t.data(),l);c.template=e.extend({},k.DEFAULTS.template,e.fn.selectpicker.defaults?e.fn.selectpicker.defaults.template:{},t.data().template,l.template),t.data("selectpicker",o=new k(this,c))}"string"==typeof n&&(i=o[n]instanceof Function?o[n].apply(o,s):o.options[n])}});return void 0!==i?i:o}k.VERSION="1.13.2",k.BootstrapVersion=g.major,k.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(e,t){return 1==e?"{0} item selected":"{0} items selected"},maxOptionsText:function(e,t){return[1==e?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==t?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:b.BUTTONCLASS,size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",showTick:!1,template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1},"4"===g.major&&(k.DEFAULTS.style="btn-light",k.DEFAULTS.iconBase="",k.DEFAULTS.tickIcon="bs-ok-default"),k.prototype={constructor:k,init:function(){var e=this,t=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createDropdown(),this.createLi(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(w.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu.addClass(b.MENURIGHT),void 0!==t&&this.$button.attr("data-id",t),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide.bs.select",function(){if(e.isVirtual()){var t=e.$menuInner[0],i=t.firstChild.cloneNode(!1);t.replaceChild(i,t.firstChild),t.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(t){e.$menuInner.attr("aria-expanded",!1),e.$element.trigger("hide.bs.select",t)},"hidden.bs.dropdown":function(t){e.$element.trigger("hidden.bs.select",t)},"show.bs.dropdown":function(t){e.$menuInner.attr("aria-expanded",!0),e.$element.trigger("show.bs.select",t)},"shown.bs.dropdown":function(t){e.$element.trigger("shown.bs.select",t)}}),e.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){e.$button.addClass("bs-invalid"),e.$element.on({"shown.bs.select":function(){e.$element.val(e.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&e.$button.removeClass("bs-invalid"),e.$element.off("rendered.bs.select")}}),e.$button.on("blur.bs.select",function(){e.$element.focus().blur(),e.$button.off("blur.bs.select")})}),setTimeout(function(){e.$element.trigger("loaded.bs.select")})},createDropdown:function(){var t=this.multiple||this.options.showTick?" show-tick":"",i=this.autofocus?" autofocus":"",s=this.options.header?'<div class="'+b.POPOVERHEADER+'"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>":"",n=this.options.liveSearch?'<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+m(this.options.liveSearchPlaceholder)+'"')+' role="textbox" aria-label="Search"></div>':"",o=this.multiple&&this.options.actionsBox?'<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn '+b.BUTTONCLASS+'">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn '+b.BUTTONCLASS+'">'+this.options.deselectAllText+"</button></div></div>":"",l=this.multiple&&this.options.doneButton?'<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm '+b.BUTTONCLASS+'">'+this.options.doneButtonText+"</button></div></div>":"",r='<div class="dropdown bootstrap-select'+t+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" '+("static"===this.options.display?'data-display="static"':"")+'data-toggle="dropdown"'+i+' role="button"><div class="filter-option"><div class="filter-option-inner"><div class="filter-option-inner-inner"></div></div> </div>'+("4"===g.major?"":'<span class="bs-caret">'+this.options.template.caret+"</span>")+'</button><div class="'+b.MENU+" "+("4"===g.major?"":b.SHOW)+'" role="combobox">'+s+n+o+'<div class="inner '+b.SHOW+'" role="listbox" aria-expanded="false" tabindex="-1"><ul class="'+b.MENU+" inner "+("4"===g.major?b.SHOW:"")+'"></ul></div>'+l+"</div></div>";return e(r)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var e=0;e<this.selectpicker.current.data.length;e++){var t=this.selectpicker.current.data[e],i=!0;"divider"===t.type?(i=!1,t.height=this.sizeInfo.dividerHeight):"optgroup-label"===t.type?(i=!1,t.height=this.sizeInfo.dropdownHeaderHeight):t.height=this.sizeInfo.liHeight,t.disabled&&(i=!1),this.selectpicker.view.canHighlight.push(i),t.position=(0===e?0:this.selectpicker.current.data[e-1].position)+t.height}},isVirtual:function(){return!1!==this.options.virtualScroll&&this.selectpicker.main.elements.length>=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(t,i){i=i||0;var s=this;this.selectpicker.current=t?this.selectpicker.search:this.selectpicker.main;var n,o,l=[];function r(e,i){var r,c,a,d,h,p,u,m,f,v=s.selectpicker.current.elements.length,g=[],b=void 0,w=!0,x=s.isVirtual();s.selectpicker.view.scrollTop=e,!0===x&&s.sizeInfo.hasScrollBar&&s.$menu[0].offsetWidth>s.sizeInfo.totalMenuWidth&&(s.sizeInfo.menuWidth=s.$menu[0].offsetWidth,s.sizeInfo.totalMenuWidth=s.sizeInfo.menuWidth+s.sizeInfo.scrollBarWidth,s.$menu.css("min-width",s.sizeInfo.menuWidth)),r=Math.ceil(s.sizeInfo.menuInnerHeight/s.sizeInfo.liHeight*1.5),c=Math.round(v/r)||1;for(var I=0;I<c;I++){var k=(I+1)*r;if(I===c-1&&(k=v),g[I]=[I*r+(I?1:0),k],!v)break;void 0===b&&e<=s.selectpicker.current.data[k-1].position-s.sizeInfo.menuInnerHeight&&(b=I)}if(void 0===b&&(b=0),h=[s.selectpicker.view.position0,s.selectpicker.view.position1],a=Math.max(0,b-1),d=Math.min(c-1,b+1),s.selectpicker.view.position0=Math.max(0,g[a][0])||0,s.selectpicker.view.position1=Math.min(v,g[d][1])||0,p=h[0]!==s.selectpicker.view.position0||h[1]!==s.selectpicker.view.position1,void 0!==s.activeIndex&&(o=s.selectpicker.current.elements[s.selectpicker.current.map.newIndex[s.prevActiveIndex]],l=s.selectpicker.current.elements[s.selectpicker.current.map.newIndex[s.activeIndex]],n=s.selectpicker.current.elements[s.selectpicker.current.map.newIndex[s.selectedIndex]],i&&(s.activeIndex!==s.selectedIndex&&(l.classList.remove("active"),l.firstChild&&l.firstChild.classList.remove("active")),s.activeIndex=void 0),s.activeIndex&&s.activeIndex!==s.selectedIndex&&n&&n.length&&(n.classList.remove("active"),n.firstChild&&n.firstChild.classList.remove("active"))),void 0!==s.prevActiveIndex&&s.prevActiveIndex!==s.activeIndex&&s.prevActiveIndex!==s.selectedIndex&&o&&o.length&&(o.classList.remove("active"),o.firstChild&&o.firstChild.classList.remove("active")),(i||p)&&(u=s.selectpicker.view.visibleElements?s.selectpicker.view.visibleElements.slice():[],s.selectpicker.view.visibleElements=s.selectpicker.current.elements.slice(s.selectpicker.view.position0,s.selectpicker.view.position1),s.setOptionStatus(),(t||!1===x&&i)&&(m=u,f=s.selectpicker.view.visibleElements,w=!(m.length===f.length&&m.every(function(e,t){return e===f[t]}))),(i||!0===x)&&w)){var $,E,S=s.$menuInner[0],y=document.createDocumentFragment(),C=S.firstChild.cloneNode(!1),O=!0===x?s.selectpicker.view.visibleElements:s.selectpicker.current.elements;S.replaceChild(C,S.firstChild),I=0;for(var z=O.length;I<z;I++)y.appendChild(O[I]);!0===x&&($=0===s.selectpicker.view.position0?0:s.selectpicker.current.data[s.selectpicker.view.position0-1].position,E=s.selectpicker.view.position1>v-1?0:s.selectpicker.current.data[v-1].position-s.selectpicker.current.data[s.selectpicker.view.position1-1].position,S.firstChild.style.marginTop=$+"px",S.firstChild.style.marginBottom=E+"px"),S.firstChild.appendChild(y)}if(s.prevActiveIndex=s.activeIndex,s.options.liveSearch){if(t&&i){var T,D=0;s.selectpicker.view.canHighlight[D]||(D=1+s.selectpicker.view.canHighlight.slice(1).indexOf(!0)),T=s.selectpicker.view.visibleElements[D],s.selectpicker.view.currentActive&&(s.selectpicker.view.currentActive.classList.remove("active"),s.selectpicker.view.currentActive.firstChild&&s.selectpicker.view.currentActive.firstChild.classList.remove("active")),T&&(T.classList.add("active"),T.firstChild&&T.firstChild.classList.add("active")),s.activeIndex=s.selectpicker.current.map.originalIndex[D]}}else s.$menuInner.focus()}this.setPositionData(),r(i,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(e,t){s.noScroll||r(this.scrollTop,t),s.noScroll=!1}),e(window).off("resize.createView").on("resize.createView",function(){r(s.$menuInner[0].scrollTop)})},createLi:function(){var t,i=this,s=[],n=0,o=0,l=[],r=0,c=0,a=-1;this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option"));var d={span:document.createElement("span"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode(" ")},h=d.span.cloneNode(!1),p=document.createDocumentFragment();h.className=i.options.iconBase+" "+i.options.tickIcon+" check-mark",d.a.appendChild(h),d.a.setAttribute("role","option"),d.subtext.className="text-muted",d.text=d.span.cloneNode(!1),d.text.className="text";var u=function(e,t,i,s){var n=d.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?n.appendChild(e):n.innerHTML=e),void 0!==i&&""!==i&&(n.className=i),null!=s&&n.classList.add("optgroup-"+s),n},f=function(e,t,i){var s=d.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&""!==t&&(s.className=t),"4"===g.major&&s.classList.add("dropdown-item"),i&&s.setAttribute("style",i),s},v=function(e){var t,s,n=d.text.cloneNode(!1);if(e.optionContent)n.innerHTML=e.optionContent;else{if(n.textContent=e.text,e.optionIcon){var o=d.whitespace.cloneNode(!1);(s=d.span.cloneNode(!1)).className=i.options.iconBase+" "+e.optionIcon,p.appendChild(s),p.appendChild(o)}e.optionSubtext&&((t=d.subtext.cloneNode(!1)).innerHTML=e.optionSubtext,n.appendChild(t))}return p.appendChild(n),p};if(this.options.title&&!this.multiple){a--;var w=this.$element[0],x=!1,I=!this.selectpicker.view.titleOption.parentNode;I&&(this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",x=void 0===e(w.options[w.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected")),(I||0!==this.selectpicker.view.titleOption.index)&&w.insertBefore(this.selectpicker.view.titleOption,w.firstChild),x&&(w.selectedIndex=0)}var k=this.$element.find("option");k.each(function(h){var g=e(this);if(a++,!g.hasClass("bs-title-option")){var w,x,I=g.data(),$=this.className||"",E=m(this.style.cssText),S=I.content,y=this.textContent,C=I.tokens,O=I.subtext,z=I.icon,T=g.parent(),D=T[0],H="OPTGROUP"===D.tagName,L=H&&D.disabled,N=this.disabled||L,A=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName,P=T.data();if(!0===I.hidden||i.options.hideDisabled&&(N&&!H||L))w=I.prevHiddenIndex,g.next().data("prevHiddenIndex",void 0!==w?w:h),a--,A||void 0!==w&&(F=k[w].previousElementSibling)&&"OPTGROUP"===F.tagName&&!F.disabled&&(A=!0),A&&"divider"!==l[l.length-1].type&&(a++,s.push(u(!1,0,b.DIVIDER,r+"div")),l.push({type:"divider",optID:r}));else{if(H&&!0!==I.divider){if(i.options.hideDisabled&&N){if(void 0===P.allOptionsDisabled){var R=T.children();T.data("allOptionsDisabled",R.filter(":disabled").length===R.length)}if(T.data("allOptionsDisabled"))return void a--}var W=" "+D.className||"";if(!this.previousElementSibling){r+=1;var B=D.label,M=m(B),U=P.subtext,V=P.icon;0!==h&&0<s.length&&(a++,s.push(u(!1,0,b.DIVIDER,r+"div")),l.push({type:"divider",optID:r})),a++;var j=function(e){var t,s,n=d.text.cloneNode(!1);if(n.innerHTML=e.labelEscaped,e.labelIcon){var o=d.whitespace.cloneNode(!1);(s=d.span.cloneNode(!1)).className=i.options.iconBase+" "+e.labelIcon,p.appendChild(s),p.appendChild(o)}return e.labelSubtext&&((t=d.subtext.cloneNode(!1)).textContent=e.labelSubtext,n.appendChild(t)),p.appendChild(n),p}({labelEscaped:M,labelSubtext:U,labelIcon:V});s.push(u(j,0,"dropdown-header"+W,r)),l.push({content:M,subtext:U,type:"optgroup-label",optID:r}),c=a-1}if(i.options.hideDisabled&&N||!0===I.hidden)return void a--;x=v({text:y,optionContent:S,optionSubtext:O,optionIcon:z}),s.push(u(f(x,"opt "+$+W,E),0,"",r)),l.push({content:S||y,subtext:O,tokens:C,type:"option",optID:r,headerIndex:c,lastIndex:c+D.childElementCount,originalIndex:h,data:I}),n++}else if(!0===I.divider)s.push(u(!1,0,b.DIVIDER)),l.push({type:"divider",originalIndex:h,data:I});else{var F;!A&&i.options.hideDisabled&&void 0!==(w=I.prevHiddenIndex)&&(F=k[w].previousElementSibling)&&"OPTGROUP"===F.tagName&&!F.disabled&&(A=!0),A&&"divider"!==l[l.length-1].type&&(a++,s.push(u(!1,0,b.DIVIDER,r+"div")),l.push({type:"divider",optID:r})),x=v({text:y,optionContent:S,optionSubtext:O,optionIcon:z}),s.push(u(f(x,$,E))),l.push({content:S||y,subtext:O,tokens:C,type:"option",originalIndex:h,data:I}),n++}i.selectpicker.main.map.newIndex[h]=a,i.selectpicker.main.map.originalIndex[a]=h;var G=l[l.length-1];G.disabled=N;var _=0;G.content&&(_+=G.content.length),G.subtext&&(_+=G.subtext.length),z&&(_+=1),o<_&&(o=_,t=s[s.length-1])}}}),this.selectpicker.main.elements=s,this.selectpicker.main.data=l,this.selectpicker.current=this.selectpicker.main,this.selectpicker.view.widestOption=t,this.selectpicker.view.availableOptionsCount=n},findLis:function(){return this.$menuInner.find(".inner > li")},render:function(){var e=this,t=this.$element.find("option"),i=[],s=[];this.togglePlaceholder(),this.tabIndex();for(var n=0,o=this.selectpicker.main.elements.length;n<o;n++){var l=t[this.selectpicker.main.map.originalIndex[n]];if(l&&l.selected&&(i.push(l),s.length<100&&"count"!==e.options.selectedTextFormat||1===i.length)){if(e.options.hideDisabled&&(l.disabled||"OPTGROUP"===l.parentNode.tagName&&l.parentNode.disabled))return;var r,c,a=this.selectpicker.main.data[n].data,d=a.icon&&e.options.showIcon?'<i class="'+e.options.iconBase+" "+a.icon+'"></i> ':"";r=e.options.showSubtext&&a.subtext&&!e.multiple?' <small class="text-muted">'+a.subtext+"</small>":"",c=l.title?l.title:a.content&&e.options.showContent?a.content.toString():d+l.innerHTML.trim()+r,s.push(c)}}var h=this.multiple?s.join(this.options.multipleSeparator):s[0];if(50<i.length&&(h+="..."),this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")){var p=this.options.selectedTextFormat.split(">");if(1<p.length&&i.length>p[1]||1===p.length&&2<=i.length){var u=this.selectpicker.view.availableOptionsCount;h=("function"==typeof this.options.countSelectedText?this.options.countSelectedText(i.length,u):this.options.countSelectedText).replace("{0}",i.length.toString()).replace("{1}",u.toString())}}null==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(h=this.options.title),h||(h=void 0!==this.options.title?this.options.title:this.options.noneSelectedText),this.$button[0].title=f(h.replace(/<[^>]*>?/g,"").trim()),this.$button.find(".filter-option-inner-inner")[0].innerHTML=h,this.$element.trigger("rendered.bs.select")},setStyle:function(e,t){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var i=e||this.options.style;"add"==t?this.$button.addClass(i):"remove"==t?this.$button.removeClass(i):(this.$button.removeClass(this.options.style),this.$button.addClass(i))},liHeight:function(t){if(t||!1!==this.options.size&&!this.sizeInfo){this.sizeInfo||(this.sizeInfo={});var i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("div"),o=document.createElement("ul"),l=document.createElement("li"),r=document.createElement("li"),c=document.createElement("li"),a=document.createElement("a"),d=document.createElement("span"),p=this.options.header&&0<this.$menu.find("."+b.POPOVERHEADER).length?this.$menu.find("."+b.POPOVERHEADER)[0].cloneNode(!0):null,u=this.options.liveSearch?document.createElement("div"):null,m=this.options.actionsBox&&this.multiple&&0<this.$menu.find(".bs-actionsbox").length?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,f=this.options.doneButton&&this.multiple&&0<this.$menu.find(".bs-donebutton").length?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(this.sizeInfo.selectWidth=this.$newElement[0].offsetWidth,d.className="text",a.className="dropdown-item "+this.$element.find("option")[0].className,i.className=this.$menu[0].parentNode.className+" "+b.SHOW,i.style.width=this.sizeInfo.selectWidth+"px","auto"===this.options.width&&(s.style.minWidth=0),s.className=b.MENU+" "+b.SHOW,n.className="inner "+b.SHOW,o.className=b.MENU+" inner "+("4"===g.major?b.SHOW:""),l.className=b.DIVIDER,r.className="dropdown-header",d.appendChild(document.createTextNode("Inner text")),a.appendChild(d),c.appendChild(a),r.appendChild(d.cloneNode(!0)),this.selectpicker.view.widestOption&&o.appendChild(this.selectpicker.view.widestOption.cloneNode(!0)),o.appendChild(c),o.appendChild(l),o.appendChild(r),p&&s.appendChild(p),u){var v=document.createElement("input");u.className="bs-searchbox",v.className="form-control",u.appendChild(v),s.appendChild(u)}m&&s.appendChild(m),n.appendChild(o),s.appendChild(n),f&&s.appendChild(f),i.appendChild(s),document.body.appendChild(i);var w,x=a.offsetHeight,I=r?r.offsetHeight:0,k=p?p.offsetHeight:0,$=u?u.offsetHeight:0,E=m?m.offsetHeight:0,S=f?f.offsetHeight:0,y=e(l).outerHeight(!0),C=!!window.getComputedStyle&&window.getComputedStyle(s),O=s.offsetWidth,z=C?null:e(s),T={vert:h(C?C.paddingTop:z.css("paddingTop"))+h(C?C.paddingBottom:z.css("paddingBottom"))+h(C?C.borderTopWidth:z.css("borderTopWidth"))+h(C?C.borderBottomWidth:z.css("borderBottomWidth")),horiz:h(C?C.paddingLeft:z.css("paddingLeft"))+h(C?C.paddingRight:z.css("paddingRight"))+h(C?C.borderLeftWidth:z.css("borderLeftWidth"))+h(C?C.borderRightWidth:z.css("borderRightWidth"))},D={vert:T.vert+h(C?C.marginTop:z.css("marginTop"))+h(C?C.marginBottom:z.css("marginBottom"))+2,horiz:T.horiz+h(C?C.marginLeft:z.css("marginLeft"))+h(C?C.marginRight:z.css("marginRight"))+2};n.style.overflowY="scroll",w=s.offsetWidth-O,document.body.removeChild(i),this.sizeInfo.liHeight=x,this.sizeInfo.dropdownHeaderHeight=I,this.sizeInfo.headerHeight=k,this.sizeInfo.searchHeight=$,this.sizeInfo.actionsHeight=E,this.sizeInfo.doneButtonHeight=S,this.sizeInfo.dividerHeight=y,this.sizeInfo.menuPadding=T,this.sizeInfo.menuExtras=D,this.sizeInfo.menuWidth=O,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth,this.sizeInfo.scrollBarWidth=w,this.sizeInfo.selectHeight=this.$newElement[0].offsetHeight,this.setPositionData()}},getSelectPosition:function(){var t,i=e(window),s=this.$newElement.offset(),n=e(this.options.container);this.options.container&&!n.is("body")?((t=n.offset()).top+=parseInt(n.css("borderTopWidth")),t.left+=parseInt(n.css("borderLeftWidth"))):t={top:0,left:0};var o=this.options.windowPadding;this.sizeInfo.selectOffsetTop=s.top-t.top-i.scrollTop(),this.sizeInfo.selectOffsetBot=i.height()-this.sizeInfo.selectOffsetTop-this.sizeInfo.selectHeight-t.top-o[2],this.sizeInfo.selectOffsetLeft=s.left-t.left-i.scrollLeft(),this.sizeInfo.selectOffsetRight=i.width()-this.sizeInfo.selectOffsetLeft-this.sizeInfo.selectWidth-t.left-o[1],this.sizeInfo.selectOffsetTop-=o[0],this.sizeInfo.selectOffsetLeft-=o[3]},setMenuSize:function(e){this.getSelectPosition();var t,i,s,n,o,l,r,c=this.sizeInfo.selectWidth,a=this.sizeInfo.liHeight,d=this.sizeInfo.headerHeight,h=this.sizeInfo.searchHeight,p=this.sizeInfo.actionsHeight,u=this.sizeInfo.doneButtonHeight,m=this.sizeInfo.dividerHeight,f=this.sizeInfo.menuPadding,v=0;if(this.options.dropupAuto&&(r=a*this.selectpicker.current.elements.length+f.vert,this.$newElement.toggleClass(b.DROPUP,this.sizeInfo.selectOffsetTop-this.sizeInfo.selectOffsetBot>this.sizeInfo.menuExtras.vert&&r+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot)),"auto"===this.options.size)n=3<this.selectpicker.current.elements.length?3*this.sizeInfo.liHeight+this.sizeInfo.menuExtras.vert-2:0,i=this.sizeInfo.selectOffsetBot-this.sizeInfo.menuExtras.vert,s=n+d+h+p+u,l=Math.max(n-f.vert,0),this.$newElement.hasClass(b.DROPUP)&&(i=this.sizeInfo.selectOffsetTop-this.sizeInfo.menuExtras.vert),t=(o=i)-d-h-p-u-f.vert;else if(this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size){for(var g=0;g<this.options.size;g++)"divider"===this.selectpicker.current.data[g].type&&v++;t=(i=a*this.options.size+v*m+f.vert)-f.vert,o=i+d+h+p+u,s=l=""}"auto"===this.options.dropdownAlignRight&&this.$menu.toggleClass(b.MENURIGHT,this.sizeInfo.selectOffsetLeft>this.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRight<this.$menu[0].offsetWidth-c),this.$menu.css({"max-height":o+"px",overflow:"hidden","min-height":s+"px"}),this.$menuInner.css({"max-height":t+"px","overflow-y":"auto","min-height":l+"px"}),this.sizeInfo.menuInnerHeight=t,this.selectpicker.current.data.length&&this.selectpicker.current.data[this.selectpicker.current.data.length-1].position>this.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth,this.$menu.css("min-width",this.sizeInfo.totalMenuWidth)),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(t){if(this.liHeight(t),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var i,s=this,n=e(window),o=0;this.setMenuSize(),"auto"===this.options.size?(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return s.setMenuSize()}),n.off("resize.setMenuSize scroll.setMenuSize").on("resize.setMenuSize scroll.setMenuSize",function(){return s.setMenuSize()})):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize"),n.off("resize.setMenuSize scroll.setMenuSize")),t?o=this.$menuInner[0].scrollTop:s.multiple||"number"==typeof(i=s.selectpicker.main.map.newIndex[s.$element[0].selectedIndex])&&!1!==s.options.size&&(o=(o=s.sizeInfo.liHeight*i)-s.sizeInfo.menuInnerHeight/2+s.sizeInfo.liHeight/2),s.createView(!1,o)}},setWidth:function(){var e=this;"auto"===this.options.width?requestAnimationFrame(function(){e.$menu.css("min-width","0"),e.liHeight(),e.setMenuSize();var t=e.$newElement.clone().appendTo("body"),i=t.css("width","auto").children("button").outerWidth();t.remove(),e.sizeInfo.selectWidth=Math.max(e.sizeInfo.totalMenuWidth,i),e.$newElement.css("width",e.sizeInfo.selectWidth+"px")}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=e('<div class="bs-container" />');var t,i,s,n=this,o=e(this.options.container),l=function(l){var r={},c=n.options.display||e.fn.dropdown.Constructor.Default.display;n.$bsContainer.addClass(l.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(b.DROPUP,l.hasClass(b.DROPUP)),t=l.offset(),o.is("body")?i={top:0,left:0}:((i=o.offset()).top+=parseInt(o.css("borderTopWidth"))-o.scrollTop(),i.left+=parseInt(o.css("borderLeftWidth"))-o.scrollLeft()),s=l.hasClass(b.DROPUP)?0:l[0].offsetHeight,(g.major<4||"static"===c)&&(r.top=t.top-i.top+s,r.left=t.left-i.left),r.width=l[0].offsetWidth,n.$bsContainer.css(r)};this.$button.on("click.bs.dropdown.data-api",function(){n.isDisabled()||(l(n.$newElement),n.$bsContainer.appendTo(n.options.container).toggleClass(b.SHOW,!n.$button.hasClass(b.SHOW)).append(n.$menu))}),e(window).on("resize scroll",function(){l(n.$newElement)}),this.$element.on("hide.bs.select",function(){n.$menu.data("height",n.$menu.height()),n.$bsContainer.detach()})},setOptionStatus:function(){var e=this,t=this.$element.find("option");if(e.noScroll=!1,e.selectpicker.view.visibleElements&&e.selectpicker.view.visibleElements.length)for(var i=0;i<e.selectpicker.view.visibleElements.length;i++){var s=e.selectpicker.current.map.originalIndex[i+e.selectpicker.view.position0],n=t[s];if(n){var o=this.selectpicker.main.map.newIndex[s],l=this.selectpicker.main.elements[o];e.setDisabled(s,n.disabled||"OPTGROUP"===n.parentNode.tagName&&n.parentNode.disabled,o,l),e.setSelected(s,n.selected,o,l)}}},setSelected:function(e,t,i,s){var n,o,l,r=void 0!==this.activeIndex,c=this.activeIndex===e||t&&!this.multiple&&!r;i||(i=this.selectpicker.main.map.newIndex[e]),s||(s=this.selectpicker.main.elements[i]),l=s.firstChild,t&&(this.selectedIndex=e),s.classList.toggle("selected",t),s.classList.toggle("active",c),c&&(this.selectpicker.view.currentActive=s,this.activeIndex=e),l&&(l.classList.toggle("selected",t),l.classList.toggle("active",c),l.setAttribute("aria-selected",t)),c||!r&&t&&void 0!==this.prevActiveIndex&&(n=this.selectpicker.main.map.newIndex[this.prevActiveIndex],(o=this.selectpicker.main.elements[n]).classList.toggle("selected",t),o.classList.remove("active"),o.firstChild&&(o.firstChild.classList.toggle("selected",t),o.firstChild.classList.remove("active")))},setDisabled:function(e,t,i,s){var n;i||(i=this.selectpicker.main.map.newIndex[e]),s||(s=this.selectpicker.main.elements[i]),n=s.firstChild,s.classList.toggle(b.DISABLED,t),n&&("4"===g.major&&n.classList.toggle(b.DISABLED,t),n.setAttribute("aria-disabled",t),t?n.setAttribute("tabindex",-1):n.setAttribute("tabindex",0))},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var e=this;this.isDisabled()?(this.$newElement.addClass(b.DISABLED),this.$button.addClass(b.DISABLED).attr("tabindex",-1).attr("aria-disabled",!0)):(this.$button.hasClass(b.DISABLED)&&(this.$newElement.removeClass(b.DISABLED),this.$button.removeClass(b.DISABLED).attr("aria-disabled",!1)),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!e.isDisabled()})},togglePlaceholder:function(){var e=this.$element[0],t=e.selectedIndex,i=-1===t;i||e.options[t].value||(i=!0),this.$button.toggleClass("bs-placeholder",i)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&-98!==this.$element.attr("tabindex")&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var t=this,i=e(document);function s(){t.options.liveSearch?t.$searchbox.focus():t.$menuInner.focus()}function n(){t.dropdown&&t.dropdown._popper&&t.dropdown._popper.state.isCreated?s():requestAnimationFrame(n)}i.data("spaceSelect",!1),this.$button.on("keyup",function(e){/(32)/.test(e.keyCode.toString(10))&&i.data("spaceSelect")&&(e.preventDefault(),i.data("spaceSelect",!1))}),this.$newElement.on("show.bs.dropdown",function(){3<g.major&&!t.dropdown&&(t.dropdown=t.$button.data("bs.dropdown"),t.dropdown._menu=t.$menu[0])}),this.$button.on("click.bs.dropdown.data-api",function(){t.$newElement.hasClass(b.SHOW)||t.setSize()}),this.$element.on("shown.bs.select",function(){t.$menuInner[0].scrollTop!==t.selectpicker.view.scrollTop&&(t.$menuInner[0].scrollTop=t.selectpicker.view.scrollTop),3<g.major?requestAnimationFrame(n):s()}),this.$menuInner.on("click","li a",function(i,s){var n=e(this),o=t.isVirtual()?t.selectpicker.view.position0:0,r=t.selectpicker.current.map.originalIndex[n.parent().index()+o],a=l(t.$element[0]),d=t.$element.prop("selectedIndex"),h=!0;if(t.multiple&&1!==t.options.maxOptions&&i.stopPropagation(),i.preventDefault(),!t.isDisabled()&&!n.parent().hasClass(b.DISABLED)){var p=t.$element.find("option"),u=p.eq(r),m=u.prop("selected"),f=u.parent("optgroup"),v=f.find("option"),g=t.options.maxOptions,w=f.data("maxOptions")||!1;if(r===t.activeIndex&&(s=!0),s||(t.prevActiveIndex=t.activeIndex,t.activeIndex=void 0),t.multiple){if(u.prop("selected",!m),t.setSelected(r,!m),n.blur(),!1!==g||!1!==w){var x=g<p.filter(":selected").length,I=w<f.find("option:selected").length;if(g&&x||w&&I)if(g&&1==g){p.prop("selected",!1),u.prop("selected",!0);for(var k=0;k<p.length;k++)t.setSelected(k,!1);t.setSelected(r,!0)}else if(w&&1==w){for(f.find("option:selected").prop("selected",!1),u.prop("selected",!0),k=0;k<v.length;k++){var $=v[k];t.setSelected(p.index($),!1)}t.setSelected(r,!0)}else{var E="string"==typeof t.options.maxOptionsText?[t.options.maxOptionsText,t.options.maxOptionsText]:t.options.maxOptionsText,S="function"==typeof E?E(g,w):E,y=S[0].replace("{n}",g),C=S[1].replace("{n}",w),O=e('<div class="notify"></div>');S[2]&&(y=y.replace("{var}",S[2][1<g?0:1]),C=C.replace("{var}",S[2][1<w?0:1])),u.prop("selected",!1),t.$menu.append(O),g&&x&&(O.append(e("<div>"+y+"</div>")),h=!1,t.$element.trigger("maxReached.bs.select")),w&&I&&(O.append(e("<div>"+C+"</div>")),h=!1,t.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){t.setSelected(r,!1)},10),O.delay(750).fadeOut(300,function(){e(this).remove()})}}}else p.prop("selected",!1),u.prop("selected",!0),t.setSelected(r,!0);!t.multiple||t.multiple&&1===t.options.maxOptions?t.$button.focus():t.options.liveSearch&&t.$searchbox.focus(),h&&(a!=l(t.$element[0])&&t.multiple||d!=t.$element.prop("selectedIndex")&&!t.multiple)&&(c=[r,u.prop("selected"),a],t.$element.triggerNative("change"))}}),this.$menu.on("click","li."+b.DISABLED+" a, ."+b.POPOVERHEADER+", ."+b.POPOVERHEADER+" :not(.close)",function(i){i.currentTarget==this&&(i.preventDefault(),i.stopPropagation(),t.options.liveSearch&&!e(i.target).hasClass("close")?t.$searchbox.focus():t.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(e){e.preventDefault(),e.stopPropagation(),t.options.liveSearch?t.$searchbox.focus():t.$button.focus()}),this.$menu.on("click","."+b.POPOVERHEADER+" .close",function(){t.$button.click()}),this.$searchbox.on("click",function(e){e.stopPropagation()}),this.$menu.on("click",".actions-btn",function(i){t.options.liveSearch?t.$searchbox.focus():t.$button.focus(),i.preventDefault(),i.stopPropagation(),e(this).hasClass("bs-select-all")?t.selectAll():t.deselectAll()}),this.$element.on({change:function(){t.render(),t.$element.trigger("changed.bs.select",c),c=null},focus:function(){t.$button.focus()}})},liveSearchListener:function(){var e=this,t=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){e.$searchbox.val()&&e.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(e){e.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var i=e.$searchbox.val();if(e.selectpicker.search.map.newIndex={},e.selectpicker.search.map.originalIndex={},e.selectpicker.search.elements=[],e.selectpicker.search.data=[],i){var s=[],n=i.toUpperCase(),o={},l=[],r=e._searchStyle(),c=e.options.liveSearchNormalize;e._$lisSelected=e.$menuInner.find(".selected");for(var a=0;a<e.selectpicker.main.data.length;a++){var h=e.selectpicker.main.data[a];o[a]||(o[a]=d(h,n,r,c)),o[a]&&void 0!==h.headerIndex&&-1===l.indexOf(h.headerIndex)&&(0<h.headerIndex&&(o[h.headerIndex-1]=!0,l.push(h.headerIndex-1)),o[h.headerIndex]=!0,l.push(h.headerIndex),o[h.lastIndex+1]=!0),o[a]&&"optgroup-label"!==h.type&&l.push(a)}a=0;for(var p=l.length;a<p;a++){var u=l[a],f=l[a-1],v=(h=e.selectpicker.main.data[u],e.selectpicker.main.data[f]);("divider"!==h.type||"divider"===h.type&&v&&"divider"!==v.type&&p-1!==a)&&(e.selectpicker.search.data.push(h),s.push(e.selectpicker.main.elements[u]),h.hasOwnProperty("originalIndex")&&(e.selectpicker.search.map.newIndex[h.originalIndex]=s.length-1,e.selectpicker.search.map.originalIndex[s.length-1]=h.originalIndex))}e.activeIndex=void 0,e.noScroll=!0,e.$menuInner.scrollTop(0),e.selectpicker.search.elements=s,e.createView(!0),s.length||(t.className="no-results",t.innerHTML=e.options.noneResultsText.replace("{0}",'"'+m(i)+'"'),e.$menuInner[0].firstChild.appendChild(t))}else e.$menuInner.scrollTop(0),e.createView(!1)})},_searchStyle:function(){return this.options.liveSearchStyle||"contains"},val:function(e){return void 0!==e?(this.$element.val(e).triggerNative("change"),this.$element):this.$element.val()},changeAll:function(e){if(this.multiple){void 0===e&&(e=!0);var t=this.$element.find("option"),i=0,s=0,n=l(this.$element[0]);this.$element.addClass("bs-select-hidden");for(var o=0;o<this.selectpicker.current.elements.length;o++){var r=this.selectpicker.current.data[o],a=t[this.selectpicker.current.map.originalIndex[o]];a&&!a.disabled&&"divider"!==r.type&&(a.selected&&i++,a.selected=e,a.selected&&s++)}this.$element.removeClass("bs-select-hidden"),i!==s&&(this.setOptionStatus(),this.togglePlaceholder(),c=[null,null,n],this.$element.triggerNative("change"))}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(e){(e=e||window.event)&&e.stopPropagation(),this.$button.trigger("click.bs.dropdown.data-api")},keydown:function(t){var i,s,n,o,l,r=e(this),c=r.hasClass("dropdown-toggle"),a=(c?r.closest(".dropdown"):r.closest(w.MENU)).data("this"),h=a.findLis(),p=!1,u=9===t.which&&!c&&!a.options.selectOnTab,m=x.test(t.which)||u,f=a.$menuInner[0].scrollTop,g=a.isVirtual(),k=!0===g?a.selectpicker.view.position0:0;if(!(s=a.$newElement.hasClass(b.SHOW))&&(m||48<=t.which&&t.which<=57||96<=t.which&&t.which<=105||65<=t.which&&t.which<=90)&&a.$button.trigger("click.bs.dropdown.data-api"),27===t.which&&s&&(t.preventDefault(),a.$button.trigger("click.bs.dropdown.data-api").focus()),m){if(!h.length)return;void 0===(i=!0===g?h.index(h.filter(".active")):a.selectpicker.current.map.newIndex[a.activeIndex])&&(i=-1),-1!==i&&((n=a.selectpicker.current.elements[i+k]).classList.remove("active"),n.firstChild&&n.firstChild.classList.remove("active")),38===t.which?(-1!==i&&i--,i+k<0&&(i+=h.length),a.selectpicker.view.canHighlight[i+k]||-1==(i=a.selectpicker.view.canHighlight.slice(0,i+k).lastIndexOf(!0)-k)&&(i=h.length-1)):(40===t.which||u)&&(++i+k>=a.selectpicker.view.canHighlight.length&&(i=0),a.selectpicker.view.canHighlight[i+k]||(i=i+1+a.selectpicker.view.canHighlight.slice(i+k+1).indexOf(!0))),t.preventDefault();var $=k+i;38===t.which?0===k&&i===h.length-1?(a.$menuInner[0].scrollTop=a.$menuInner[0].scrollHeight,$=a.selectpicker.current.elements.length-1):p=(l=(o=a.selectpicker.current.data[$]).position-o.height)<f:(40===t.which||u)&&(0===i?$=a.$menuInner[0].scrollTop=0:p=f<(l=(o=a.selectpicker.current.data[$]).position-a.sizeInfo.menuInnerHeight)),(n=a.selectpicker.current.elements[$])&&(n.classList.add("active"),n.firstChild&&n.firstChild.classList.add("active")),a.activeIndex=a.selectpicker.current.map.originalIndex[$],a.selectpicker.view.currentActive=n,p&&(a.$menuInner[0].scrollTop=l),a.options.liveSearch?a.$searchbox.focus():r.focus()}else if(!r.is("input")&&!I.test(t.which)||32===t.which&&a.selectpicker.keydown.keyHistory){var E,S,y=[];t.preventDefault(),a.selectpicker.keydown.keyHistory+=v[t.which],a.selectpicker.keydown.resetKeyHistory.cancel&&clearTimeout(a.selectpicker.keydown.resetKeyHistory.cancel),a.selectpicker.keydown.resetKeyHistory.cancel=a.selectpicker.keydown.resetKeyHistory.start(),S=a.selectpicker.keydown.keyHistory,/^(.)\1+$/.test(S)&&(S=S.charAt(0));for(var C=0;C<a.selectpicker.current.data.length;C++){var O=a.selectpicker.current.data[C];d(O,S,"startsWith",!0)&&a.selectpicker.view.canHighlight[C]&&(O.index=C,y.push(O.originalIndex))}if(y.length){var z=0;h.removeClass("active").find("a").removeClass("active"),1===S.length&&(-1===(z=y.indexOf(a.activeIndex))||z===y.length-1?z=0:z++),E=a.selectpicker.current.map.newIndex[y[z]],0<f-(o=a.selectpicker.current.data[E]).position?(l=o.position-o.height,p=!0):(l=o.position-a.sizeInfo.menuInnerHeight,p=o.position>f+a.sizeInfo.menuInnerHeight),(n=a.selectpicker.current.elements[E]).classList.add("active"),n.firstChild&&n.firstChild.classList.add("active"),a.activeIndex=y[z],n.firstChild.focus(),p&&(a.$menuInner[0].scrollTop=l),r.focus()}}s&&(32===t.which&&!a.selectpicker.keydown.keyHistory||13===t.which||9===t.which&&a.options.selectOnTab)&&(32!==t.which&&t.preventDefault(),a.options.liveSearch&&32===t.which||(a.$menuInner.find(".active a").trigger("click",!0),r.focus(),a.options.liveSearch||(t.preventDefault(),e(document).data("spaceSelect",!0))))},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){var t=e.extend({},this.options,this.$element.data());this.options=t,this.selectpicker.main.map.newIndex={},this.selectpicker.main.map.originalIndex={},this.createLi(),this.checkDisabled(),this.render(),this.setStyle(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var E=e.fn.selectpicker;e.fn.selectpicker=$,e.fn.selectpicker.Constructor=k,e.fn.selectpicker.noConflict=function(){return e.fn.selectpicker=E,this},e(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.select",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',k.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',function(e){e.stopPropagation()}),e(window).on("load.bs.select.data-api",function(){e(".selectpicker").each(function(){var t=e(this);$.call(t,t.data())})})}(e)});;
/*!
 * Snackbar v0.1.14
 * http://polonel.com/Snackbar
 *
 * Copyright 2018 Chris Brame and other contributors
 * Released under the MIT license
 * https://github.com/polonel/Snackbar/blob/master/LICENSE
 */
!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],function(){return a.Snackbar=b()}):"object"==typeof module&&module.exports?module.exports=a.Snackbar=b():a.Snackbar=b()}(this,function(){var a={};a.current=null;var b={text:"Default Text",textColor:"#FFFFFF",width:"auto",showAction:!0,actionText:"Dismiss",actionTextAria:"Dismiss, Description for Screen Readers",actionTextColor:"#4CAF50",showSecondButton:!1,secondButtonText:"",secondButtonAria:"Description for Screen Readers",secondButtonTextColor:"#4CAF50",backgroundColor:"#323232",pos:"bottom-left",duration:5e3,customClass:"",onActionClick:function(a){a.style.opacity=0},onSecondButtonClick:function(a){},onClose:function(a){}};a.show=function(d){var e=c(!0,b,d);a.current&&(a.current.style.opacity=0,setTimeout(function(){var a=this.parentElement;a&&
// possible null if too many/fast Snackbars
a.removeChild(this)}.bind(a.current),500)),a.snackbar=document.createElement("div"),a.snackbar.className="snackbar-container "+e.customClass,a.snackbar.style.width=e.width;var f=document.createElement("p");if(f.style.margin=0,f.style.padding=0,f.style.color=e.textColor,f.style.fontSize="14px",f.style.fontWeight=300,f.style.lineHeight="1em",f.innerHTML=e.text,a.snackbar.appendChild(f),a.snackbar.style.background=e.backgroundColor,e.showSecondButton){var g=document.createElement("button");g.className="action",g.innerHTML=e.secondButtonText,g.setAttribute("aria-label",e.secondButtonAria),g.style.color=e.secondButtonTextColor,g.addEventListener("click",function(){e.onSecondButtonClick(a.snackbar)}),a.snackbar.appendChild(g)}if(e.showAction){var h=document.createElement("button");h.className="action",h.innerHTML=e.actionText,h.setAttribute("aria-label",e.actionTextAria),h.style.color=e.actionTextColor,h.addEventListener("click",function(){e.onActionClick(a.snackbar)}),a.snackbar.appendChild(h)}e.duration&&setTimeout(function(){a.current===this&&(a.current.style.opacity=0,
// When natural remove event occurs let's move the snackbar to its origins
a.current.style.top="-100px",a.current.style.bottom="-100px")}.bind(a.snackbar),e.duration),a.snackbar.addEventListener("transitionend",function(b,c){"opacity"===b.propertyName&&"0"===this.style.opacity&&("function"==typeof e.onClose&&e.onClose(this),this.parentElement.removeChild(this),a.current===this&&(a.current=null))}.bind(a.snackbar)),a.current=a.snackbar,document.body.appendChild(a.snackbar);getComputedStyle(a.snackbar).bottom,getComputedStyle(a.snackbar).top;a.snackbar.style.opacity=1,a.snackbar.className="snackbar-container "+e.customClass+" snackbar-pos "+e.pos},a.close=function(){a.current&&(a.current.style.opacity=0)};
// Pure JS Extend
// http://gomakethings.com/vanilla-javascript-version-of-jquery-extend/
var c=function(){var a={},b=!1,d=0,e=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(b=arguments[0],d++);for(var f=function(d){for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b&&"[object Object]"===Object.prototype.toString.call(d[e])?a[e]=c(!0,a[e],d[e]):a[e]=d[e])};d<e;d++){var g=arguments[d];f(g)}return a};return a});
//# sourceMappingURL=snackbar.min.js.map;
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.SimpleBar=e()}(this,function(){"use strict";var t=function(t){return"object"==typeof t?null!==t:"function"==typeof t},e=function(e){if(!t(e))throw TypeError(e+" is not an object!");return e},i=function(t){try{return!!t()}catch(t){return!0}},r=!i(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function s(t,e){return t(e={exports:{}},e.exports),e.exports}var o=s(function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}),a=o.document,l=t(a)&&t(a.createElement),c=function(t){return l?a.createElement(t):{}},h=!r&&!i(function(){return 7!=Object.defineProperty(c("div"),"a",{get:function(){return 7}}).a}),u=Object.defineProperty,f={f:r?Object.defineProperty:function(i,r,n){if(e(i),r=function(e,i){if(!t(e))return e;var r,n;if("function"==typeof(r=e.toString)&&!t(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!t(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")}(r),e(n),h)try{return u(i,r,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(i[r]=n.value),i}},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},p=r?function(t,e,i){return f.f(t,e,d(1,i))}:function(t,e,i){return t[e]=i,t},v={}.hasOwnProperty,y=function(t,e){return v.call(t,e)},b=0,m=Math.random(),g=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++b+m).toString(36))},x=s(function(t){var e=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=e)}),w=(x.version,s(function(t){var e=g("src"),i="toString",r=Function[i],n=(""+r).split(i);x.inspectSource=function(t){return r.call(t)},(t.exports=function(t,i,r,s){var a="function"==typeof r;a&&(y(r,"name")||p(r,"name",i)),t[i]!==r&&(a&&(y(r,e)||p(r,e,t[i]?""+t[i]:n.join(String(i)))),t===o?t[i]=r:s?t[i]?t[i]=r:p(t,i,r):(delete t[i],p(t,i,r)))})(Function.prototype,i,function(){return"function"==typeof this&&this[e]||r.call(this)})})),E=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t},_=s(function(t){var e="__core-js_shared__",i=o[e]||(o[e]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:x.version,mode:"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})}),O=s(function(t){var e=_("wks"),i=o.Symbol,r="function"==typeof i;(t.exports=function(t){return e[t]||(e[t]=r&&i[t]||(r?i:g)("Symbol."+t))}).store=e}),S=function(t,e,r){var n=O(t),s=r(E,n,""[t]),o=s[0],a=s[1];i(function(){var e={};return e[n]=function(){return 7},7!=""[t](e)})&&(w(String.prototype,t,o),p(RegExp.prototype,n,2==e?function(t,e){return a.call(t,this,e)}:function(t){return a.call(t,this)}))};S("replace",2,function(t,e,i){return[function(r,n){var s=t(this),o=null==r?void 0:r[e];return void 0!==o?o.call(r,s,n):i.call(String(s),r,n)},i]});var k=f.f,A=Function.prototype,L=/^\s*function ([^ (]*)/,M="name";M in A||r&&k(A,M,{configurable:!0,get:function(){try{return(""+this).match(L)[1]}catch(t){return""}}}),S("match",1,function(t,e,i){return[function(i){var r=t(this),n=null==i?void 0:i[e];return void 0!==n?n.call(i,r):new RegExp(i)[e](String(r))},i]});var T=O("unscopables"),j=Array.prototype;null==j[T]&&p(j,T,{});var N=function(t){j[T][t]=!0},R=function(t,e){return{value:e,done:!!t}},W={},C={}.toString,z=function(t){return C.call(t).slice(8,-1)},D=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==z(t)?t.split(""):Object(t)},V=function(t){return D(E(t))},B=function(t,e,i){if(function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!")}(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,r){return t.call(e,i,r)};case 3:return function(i,r,n){return t.call(e,i,r,n)}}return function(){return t.apply(e,arguments)}},P="prototype",F=function(t,e,i){var r,n,s,a,l=t&F.F,c=t&F.G,h=t&F.S,u=t&F.P,f=t&F.B,d=c?o:h?o[e]||(o[e]={}):(o[e]||{})[P],v=c?x:x[e]||(x[e]={}),y=v[P]||(v[P]={});for(r in c&&(i=e),i)s=((n=!l&&d&&void 0!==d[r])?d:i)[r],a=f&&n?B(s,o):u&&"function"==typeof s?B(Function.call,s):s,d&&w(d,r,s,t&F.U),v[r]!=s&&p(v,r,a),u&&y[r]!=s&&(y[r]=s)};o.core=x,F.F=1,F.G=2,F.S=4,F.P=8,F.B=16,F.W=32,F.U=64,F.R=128;var H=F,q=Math.ceil,I=Math.floor,X=function(t){return isNaN(t=+t)?0:(t>0?I:q)(t)},Y=Math.min,G=function(t){return t>0?Y(X(t),9007199254740991):0},$=Math.max,U=Math.min,J=_("keys"),K=function(t){return J[t]||(J[t]=g(t))},Q=(!1,function(t,e,i){var r,n,s=V(t),o=G(s.length),a=(n=o,(r=X(r=i))<0?$(r+n,0):U(r,n));for(0;o>a;a++)if(a in s&&s[a]===e)return a||0;return-1}),Z=K("IE_PROTO"),tt="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),et=Object.keys||function(t){return function(t,e){var i,r=V(t),n=0,s=[];for(i in r)i!=Z&&y(r,i)&&s.push(i);for(;e.length>n;)y(r,i=e[n++])&&(~Q(s,i)||s.push(i));return s}(t,tt)},it=r?Object.defineProperties:function(t,i){e(t);for(var r,n=et(i),s=n.length,o=0;s>o;)f.f(t,r=n[o++],i[r]);return t},rt=o.document,nt=rt&&rt.documentElement,st=K("IE_PROTO"),ot=function(){},at="prototype",lt=function(){var t,e=c("iframe"),i=tt.length;for(e.style.display="none",nt.appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),lt=t.F;i--;)delete lt[at][tt[i]];return lt()},ct=Object.create||function(t,i){var r;return null!==t?(ot[at]=e(t),r=new ot,ot[at]=null,r[st]=t):r=lt(),void 0===i?r:it(r,i)},ht=f.f,ut=O("toStringTag"),ft=function(t,e,i){t&&!y(t=i?t:t.prototype,ut)&&ht(t,ut,{configurable:!0,value:e})},dt={};p(dt,O("iterator"),function(){return this});var pt=function(t){return Object(E(t))},vt=K("IE_PROTO"),yt=Object.prototype,bt=Object.getPrototypeOf||function(t){return t=pt(t),y(t,vt)?t[vt]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?yt:null},mt=O("iterator"),gt=!([].keys&&"next"in[].keys()),xt="values",wt=function(){return this},Et=function(t,e,i,r,n,s,o){var a,l,c;l=e,c=r,(a=i).prototype=ct(dt,{next:d(1,c)}),ft(a,l+" Iterator");var h,u,f,v=function(t){if(!gt&&t in g)return g[t];switch(t){case"keys":case xt:return function(){return new i(this,t)}}return function(){return new i(this,t)}},y=e+" Iterator",b=n==xt,m=!1,g=t.prototype,x=g[mt]||g["@@iterator"]||n&&g[n],E=x||v(n),_=n?b?v("entries"):E:void 0,O="Array"==e&&g.entries||x;if(O&&(f=bt(O.call(new t)))!==Object.prototype&&f.next&&(ft(f,y,!0),"function"!=typeof f[mt]&&p(f,mt,wt)),b&&x&&x.name!==xt&&(m=!0,E=function(){return x.call(this)}),(gt||m||!g[mt])&&p(g,mt,E),W[e]=E,W[y]=wt,n)if(h={values:b?E:v(xt),keys:s?E:v("keys"),entries:_},o)for(u in h)u in g||w(g,u,h[u]);else H(H.P+H.F*(gt||m),e,h);return h},_t=Et(Array,"Array",function(t,e){this._t=V(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,i=this._i++;return!t||i>=t.length?(this._t=void 0,R(1)):R(0,"keys"==e?i:"values"==e?t[i]:[i,t[i]])},"values");W.Arguments=W.Array,N("keys"),N("values"),N("entries");for(var Ot=O("iterator"),St=O("toStringTag"),kt=W.Array,At={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},Lt=et(At),Mt=0;Mt<Lt.length;Mt++){var Tt,jt=Lt[Mt],Nt=At[jt],Rt=o[jt],Wt=Rt&&Rt.prototype;if(Wt&&(Wt[Ot]||p(Wt,Ot,kt),Wt[St]||p(Wt,St,jt),W[jt]=kt,Nt))for(Tt in _t)Wt[Tt]||w(Wt,Tt,_t[Tt],!0)}var Ct=(!0,function(t,e){var i,r,n=String(E(t)),s=X(e),o=n.length;return s<0||s>=o?"":(i=n.charCodeAt(s))<55296||i>56319||s+1===o||(r=n.charCodeAt(s+1))<56320||r>57343?n.charAt(s):n.slice(s,s+2)});Et(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=Ct(e,i),this._i+=t.length,{value:t,done:!1})});var zt=function(t,i,r,n){try{return n?i(e(r)[0],r[1]):i(r)}catch(i){var s=t.return;throw void 0!==s&&e(s.call(t)),i}},Dt=O("iterator"),Vt=Array.prototype,Bt=function(t,e,i){e in t?f.f(t,e,d(0,i)):t[e]=i},Pt=O("toStringTag"),Ft="Arguments"==z(function(){return arguments}()),Ht=O("iterator"),qt=x.getIteratorMethod=function(t){if(null!=t)return t[Ht]||t["@@iterator"]||W[(e=t,void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(i=Object(e),Pt))?r:Ft?z(i):"Object"==(n=z(i))&&"function"==typeof i.callee?"Arguments":n)];var e,i,r,n},It=O("iterator"),Xt=!1;try{[7][It]().return=function(){Xt=!0}}catch(t){}function Yt(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function Gt(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},r=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),r.forEach(function(e){var r,n,s;r=t,n=e,s=i[e],n in r?Object.defineProperty(r,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):r[n]=s})}return t}H(H.S+H.F*!function(t,e){if(!Xt)return!1;var i=!1;try{var r=[7],n=r[It]();n.next=function(){return{done:i=!0}},r[It]=function(){return n}}catch(t){}return i}(),"Array",{from:function(t){var e,i,r,n,s,o=pt(t),a="function"==typeof this?this:Array,l=arguments.length,c=l>1?arguments[1]:void 0,h=void 0!==c,u=0,f=qt(o);if(h&&(c=B(c,l>2?arguments[2]:void 0,2)),null!=f&&(a!=Array||void 0===(s=f)||W.Array!==s&&Vt[Dt]!==s))for(n=f.call(o),i=new a;!(r=n.next()).done;u++)Bt(i,u,h?zt(n,c,[r.value,u],!0):r.value);else for(i=new a(e=G(o.length));e>u;u++)Bt(i,u,h?c(o[u],u):o[u]);return i.length=u,i}});var $t=s(function(t,e){t.exports=function(){if("undefined"==typeof document)return 0;var t,e=document.body,i=document.createElement("div"),r=i.style;return r.position="absolute",r.top=r.left="-9999px",r.width=r.height="100px",r.overflow="scroll",e.appendChild(i),t=i.offsetWidth-i.clientWidth,e.removeChild(i),t}}),Ut="Expected a function",Jt=NaN,Kt="[object Symbol]",Qt=/^\s+|\s+$/g,Zt=/^[-+]0x[0-9a-f]+$/i,te=/^0b[01]+$/i,ee=/^0o[0-7]+$/i,ie=parseInt,re="object"==typeof n&&n&&n.Object===Object&&n,ne="object"==typeof self&&self&&self.Object===Object&&self,se=re||ne||Function("return this")(),oe=Object.prototype.toString,ae=Math.max,le=Math.min,ce=function(){return se.Date.now()};function he(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ue(t){if("number"==typeof t)return t;if("symbol"==typeof(e=t)||(i=e)&&"object"==typeof i&&oe.call(e)==Kt)return Jt;var e,i;if(he(t)){var r="function"==typeof t.valueOf?t.valueOf():t;t=he(r)?r+"":r}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Qt,"");var n=te.test(t);return n||ee.test(t)?ie(t.slice(2),n?2:8):Zt.test(t)?Jt:+t}var fe=function(t,e,i){var r=!0,n=!0;if("function"!=typeof t)throw new TypeError(Ut);return he(i)&&(r="leading"in i?!!i.leading:r,n="trailing"in i?!!i.trailing:n),function(t,e,i){var r,n,s,o,a,l,c=0,h=!1,u=!1,f=!0;if("function"!=typeof t)throw new TypeError(Ut);function d(e){var i=r,s=n;return r=n=void 0,c=e,o=t.apply(s,i)}function p(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function v(){var t,i,r=ce();if(p(r))return y(r);a=setTimeout(v,(i=e-((t=r)-l),u?le(i,s-(t-c)):i))}function y(t){return a=void 0,f&&r?d(t):(r=n=void 0,o)}function b(){var t,i=ce(),s=p(i);if(r=arguments,n=this,l=i,s){if(void 0===a)return c=t=l,a=setTimeout(v,e),h?d(t):o;if(u)return a=setTimeout(v,e),d(l)}return void 0===a&&(a=setTimeout(v,e)),o}return e=ue(e)||0,he(i)&&(h=!!i.leading,s=(u="maxWait"in i)?ae(ue(i.maxWait)||0,e):s,f="trailing"in i?!!i.trailing:f),b.cancel=function(){void 0!==a&&clearTimeout(a),c=0,r=l=n=a=void 0},b.flush=function(){return void 0===a?o:y(ce())},b}(t,e,{leading:r,maxWait:e,trailing:n})},de=NaN,pe="[object Symbol]",ve=/^\s+|\s+$/g,ye=/^[-+]0x[0-9a-f]+$/i,be=/^0b[01]+$/i,me=/^0o[0-7]+$/i,ge=parseInt,xe="object"==typeof n&&n&&n.Object===Object&&n,we="object"==typeof self&&self&&self.Object===Object&&self,Ee=xe||we||Function("return this")(),_e=Object.prototype.toString,Oe=Math.max,Se=Math.min,ke=function(){return Ee.Date.now()};function Ae(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Le(t){if("number"==typeof t)return t;if("symbol"==typeof(e=t)||(i=e)&&"object"==typeof i&&_e.call(e)==pe)return de;var e,i;if(Ae(t)){var r="function"==typeof t.valueOf?t.valueOf():t;t=Ae(r)?r+"":r}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(ve,"");var n=be.test(t);return n||me.test(t)?ge(t.slice(2),n?2:8):ye.test(t)?de:+t}var Me,Te=function(t,e,i){var r,n,s,o,a,l,c=0,h=!1,u=!1,f=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function d(e){var i=r,s=n;return r=n=void 0,c=e,o=t.apply(s,i)}function p(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function v(){var t,i,r=ke();if(p(r))return y(r);a=setTimeout(v,(i=e-((t=r)-l),u?Se(i,s-(t-c)):i))}function y(t){return a=void 0,f&&r?d(t):(r=n=void 0,o)}function b(){var t,i=ke(),s=p(i);if(r=arguments,n=this,l=i,s){if(void 0===a)return c=t=l,a=setTimeout(v,e),h?d(t):o;if(u)return a=setTimeout(v,e),d(l)}return void 0===a&&(a=setTimeout(v,e)),o}return e=Le(e)||0,Ae(i)&&(h=!!i.leading,s=(u="maxWait"in i)?Oe(Le(i.maxWait)||0,e):s,f="trailing"in i?!!i.trailing:f),b.cancel=function(){void 0!==a&&clearTimeout(a),c=0,r=l=n=a=void 0},b.flush=function(){return void 0===a?o:y(ke())},b},je="Expected a function",Ne="__lodash_hash_undefined__",Re="[object Function]",We="[object GeneratorFunction]",Ce=/^\[object .+?Constructor\]$/,ze="object"==typeof n&&n&&n.Object===Object&&n,De="object"==typeof self&&self&&self.Object===Object&&self,Ve=ze||De||Function("return this")(),Be=Array.prototype,Pe=Function.prototype,Fe=Object.prototype,He=Ve["__core-js_shared__"],qe=(Me=/[^.]+$/.exec(He&&He.keys&&He.keys.IE_PROTO||""))?"Symbol(src)_1."+Me:"",Ie=Pe.toString,Xe=Fe.hasOwnProperty,Ye=Fe.toString,Ge=RegExp("^"+Ie.call(Xe).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),$e=Be.splice,Ue=ii(Ve,"Map"),Je=ii(Object,"create");function Ke(t){var e=-1,i=t?t.length:0;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}function Qe(t){var e=-1,i=t?t.length:0;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}function Ze(t){var e=-1,i=t?t.length:0;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}function ti(t,e){for(var i,r,n=t.length;n--;)if((i=t[n][0])===(r=e)||i!=i&&r!=r)return n;return-1}function ei(t,e){var i,r,n=t.__data__;return("string"==(r=typeof(i=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==i:null===i)?n["string"==typeof e?"string":"hash"]:n.map}function ii(t,e){var i,r=null==(i=t)?void 0:i[e];return function(t){return!(!ni(t)||qe&&qe in t)&&((i=ni(e=t)?Ye.call(e):"")==Re||i==We||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?Ge:Ce).test(function(t){if(null!=t){try{return Ie.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e,i}(r)?r:void 0}function ri(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError(je);var i=function(){var r=arguments,n=e?e.apply(this,r):r[0],s=i.cache;if(s.has(n))return s.get(n);var o=t.apply(this,r);return i.cache=s.set(n,o),o};return i.cache=new(ri.Cache||Ze),i}function ni(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}Ke.prototype.clear=function(){this.__data__=Je?Je(null):{}},Ke.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},Ke.prototype.get=function(t){var e=this.__data__;if(Je){var i=e[t];return i===Ne?void 0:i}return Xe.call(e,t)?e[t]:void 0},Ke.prototype.has=function(t){var e=this.__data__;return Je?void 0!==e[t]:Xe.call(e,t)},Ke.prototype.set=function(t,e){return this.__data__[t]=Je&&void 0===e?Ne:e,this},Qe.prototype.clear=function(){this.__data__=[]},Qe.prototype.delete=function(t){var e=this.__data__,i=ti(e,t);return!(i<0||(i==e.length-1?e.pop():$e.call(e,i,1),0))},Qe.prototype.get=function(t){var e=this.__data__,i=ti(e,t);return i<0?void 0:e[i][1]},Qe.prototype.has=function(t){return ti(this.__data__,t)>-1},Qe.prototype.set=function(t,e){var i=this.__data__,r=ti(i,t);return r<0?i.push([t,e]):i[r][1]=e,this},Ze.prototype.clear=function(){this.__data__={hash:new Ke,map:new(Ue||Qe),string:new Ke}},Ze.prototype.delete=function(t){return ei(this,t).delete(t)},Ze.prototype.get=function(t){return ei(this,t).get(t)},Ze.prototype.has=function(t){return ei(this,t).has(t)},Ze.prototype.set=function(t,e){return ei(this,t).set(t,e),this},ri.Cache=Ze;var si=ri,oi=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var i=-1;return t.some(function(t,r){return t[0]===e&&(i=r,!0)}),i}return function(){function e(){this.__entries__=[]}var i={size:{configurable:!0}};return i.size.get=function(){return this.__entries__.length},e.prototype.get=function(e){var i=t(this.__entries__,e),r=this.__entries__[i];return r&&r[1]},e.prototype.set=function(e,i){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=i:this.__entries__.push([e,i])},e.prototype.delete=function(e){var i=this.__entries__,r=t(i,e);~r&&i.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var i=0,r=this.__entries__;i<r.length;i+=1){var n=r[i];t.call(e,n[1],n[0])}},Object.defineProperties(e.prototype,i),e}()}(),ai="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,li="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),ci="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(li):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)},hi=2,ui=["top","right","bottom","left","width","height","size","weight"],fi="undefined"!=typeof MutationObserver,di=function(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(t,e){var i=!1,r=!1,n=0;function s(){i&&(i=!1,t()),r&&a()}function o(){ci(s)}function a(){var t=Date.now();if(i){if(t-n<hi)return;r=!0}else i=!0,r=!1,setTimeout(o,e);n=t}return a}(this.refresh.bind(this),20)};di.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},di.prototype.removeObserver=function(t){var e=this.observers_,i=e.indexOf(t);~i&&e.splice(i,1),!e.length&&this.connected_&&this.disconnect_()},di.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},di.prototype.updateObservers_=function(){var t=this.observers_.filter(function(t){return t.gatherActive(),t.hasActive()});return t.forEach(function(t){return t.broadcastActive()}),t.length>0},di.prototype.connect_=function(){ai&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),fi?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},di.prototype.disconnect_=function(){ai&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},di.prototype.onTransitionEnd_=function(t){var e=t.propertyName;void 0===e&&(e=""),ui.some(function(t){return!!~e.indexOf(t)})&&this.refresh()},di.getInstance=function(){return this.instance_||(this.instance_=new di),this.instance_},di.instance_=null;var pi=function(t,e){for(var i=0,r=Object.keys(e);i<r.length;i+=1){var n=r[i];Object.defineProperty(t,n,{value:e[n],enumerable:!1,writable:!1,configurable:!0})}return t},vi=function(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView||li},yi=wi(0,0,0,0);function bi(t){return parseFloat(t)||0}function mi(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];return e.reduce(function(e,i){return e+bi(t["border-"+i+"-width"])},0)}var gi="undefined"!=typeof SVGGraphicsElement?function(t){return t instanceof vi(t).SVGGraphicsElement}:function(t){return t instanceof vi(t).SVGElement&&"function"==typeof t.getBBox};function xi(t){return ai?gi(t)?wi(0,0,(e=t.getBBox()).width,e.height):function(t){var e=t.clientWidth,i=t.clientHeight;if(!e&&!i)return yi;var r,n=vi(t).getComputedStyle(t),s=function(t){for(var e={},i=0,r=["top","right","bottom","left"];i<r.length;i+=1){var n=r[i],s=t["padding-"+n];e[n]=bi(s)}return e}(n),o=s.left+s.right,a=s.top+s.bottom,l=bi(n.width),c=bi(n.height);if("border-box"===n.boxSizing&&(Math.round(l+o)!==e&&(l-=mi(n,"left","right")+o),Math.round(c+a)!==i&&(c-=mi(n,"top","bottom")+a)),(r=t)!==vi(r).document.documentElement){var h=Math.round(l+o)-e,u=Math.round(c+a)-i;1!==Math.abs(h)&&(l-=h),1!==Math.abs(u)&&(c-=u)}return wi(s.left,s.top,l,c)}(t):yi;var e}function wi(t,e,i,r){return{x:t,y:e,width:i,height:r}}var Ei=function(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=wi(0,0,0,0),this.target=t};Ei.prototype.isActive=function(){var t=xi(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},Ei.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t};var _i=function(t,e){var i,r,n,s,o,a,l,c=(r=(i=e).x,n=i.y,s=i.width,o=i.height,a="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(a.prototype),pi(l,{x:r,y:n,width:s,height:o,top:n,right:r+s,bottom:o+n,left:r}),l);pi(this,{target:t,contentRect:c})},Oi=function(t,e,i){if(this.activeObservations_=[],this.observations_=new oi,"function"!=typeof t)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=e,this.callbackCtx_=i};Oi.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof vi(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new Ei(t)),this.controller_.addObserver(this),this.controller_.refresh())}},Oi.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof vi(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)&&(e.delete(t),e.size||this.controller_.removeObserver(this))}},Oi.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},Oi.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&t.activeObservations_.push(e)})},Oi.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map(function(t){return new _i(t.target,t.broadcastRect())});this.callback_.call(t,e,t),this.clearActive()}},Oi.prototype.clearActive=function(){this.activeObservations_.splice(0)},Oi.prototype.hasActive=function(){return this.activeObservations_.length>0};var Si="undefined"!=typeof WeakMap?new WeakMap:new oi,ki=function(t){if(!(this instanceof ki))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var e=di.getInstance(),i=new Oi(t,e,this);Si.set(this,i)};["observe","unobserve","disconnect"].forEach(function(t){ki.prototype[t]=function(){return(e=Si.get(this))[t].apply(e,arguments);var e}});var Ai=void 0!==li.ResizeObserver?li.ResizeObserver:ki,Li=!("undefined"==typeof window||!window.document||!window.document.createElement),Mi=function(){function t(e,i){var r=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.onScroll=function(){r.scrollXTicking||(window.requestAnimationFrame(r.scrollX),r.scrollXTicking=!0),r.scrollYTicking||(window.requestAnimationFrame(r.scrollY),r.scrollYTicking=!0)},this.scrollX=function(){r.axis.x.isOverflowing&&(r.showScrollbar("x"),r.positionScrollbar("x")),r.scrollXTicking=!1},this.scrollY=function(){r.axis.y.isOverflowing&&(r.showScrollbar("y"),r.positionScrollbar("y")),r.scrollYTicking=!1},this.onMouseEnter=function(){r.showScrollbar("x"),r.showScrollbar("y")},this.onMouseMove=function(t){r.mouseX=t.clientX,r.mouseY=t.clientY,(r.axis.x.isOverflowing||r.axis.x.forceVisible)&&r.onMouseMoveForAxis("x"),(r.axis.y.isOverflowing||r.axis.y.forceVisible)&&r.onMouseMoveForAxis("y")},this.onMouseLeave=function(){r.onMouseMove.cancel(),(r.axis.x.isOverflowing||r.axis.x.forceVisible)&&r.onMouseLeaveForAxis("x"),(r.axis.y.isOverflowing||r.axis.y.forceVisible)&&r.onMouseLeaveForAxis("y"),r.mouseX=-1,r.mouseY=-1},this.onWindowResize=function(){r.scrollbarWidth=$t(),r.hideNativeScrollbar()},this.hideScrollbars=function(){r.axis.x.track.rect=r.axis.x.track.el.getBoundingClientRect(),r.axis.y.track.rect=r.axis.y.track.el.getBoundingClientRect(),r.isWithinBounds(r.axis.y.track.rect)||(r.axis.y.scrollbar.el.classList.remove(r.classNames.visible),r.axis.y.isVisible=!1),r.isWithinBounds(r.axis.x.track.rect)||(r.axis.x.scrollbar.el.classList.remove(r.classNames.visible),r.axis.x.isVisible=!1)},this.onPointerEvent=function(t){var e,i;r.axis.x.scrollbar.rect=r.axis.x.scrollbar.el.getBoundingClientRect(),r.axis.y.scrollbar.rect=r.axis.y.scrollbar.el.getBoundingClientRect(),(r.axis.x.isOverflowing||r.axis.x.forceVisible)&&(i=r.isWithinBounds(r.axis.x.scrollbar.rect)),(r.axis.y.isOverflowing||r.axis.y.forceVisible)&&(e=r.isWithinBounds(r.axis.y.scrollbar.rect)),(e||i)&&(t.preventDefault(),t.stopPropagation(),"mousedown"===t.type&&(e&&r.onDragStart(t,"y"),i&&r.onDragStart(t,"x")))},this.drag=function(e){var i=r.axis[r.draggedAxis].track,n=i.rect[r.axis[r.draggedAxis].sizeAttr],s=r.axis[r.draggedAxis].scrollbar;e.preventDefault(),e.stopPropagation();var o=(("y"===r.draggedAxis?e.pageY:e.pageX)-i.rect[r.axis[r.draggedAxis].offsetAttr]-r.axis[r.draggedAxis].dragOffset)/i.rect[r.axis[r.draggedAxis].sizeAttr]*r.contentEl[r.axis[r.draggedAxis].scrollSizeAttr];"x"===r.draggedAxis&&(o=r.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?o-(n+s.size):o,o=r.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-o:o),r.contentEl[r.axis[r.draggedAxis].scrollOffsetAttr]=o},this.onEndDrag=function(t){t.preventDefault(),t.stopPropagation(),document.removeEventListener("mousemove",r.drag),document.removeEventListener("mouseup",r.onEndDrag)},this.el=e,this.flashTimeout,this.contentEl,this.offsetEl,this.maskEl,this.globalObserver,this.mutationObserver,this.resizeObserver,this.scrollbarWidth,this.minScrollbarWidth=20,this.options=Gt({},t.defaultOptions,i),this.classNames=Gt({},t.defaultOptions.classNames,this.options.classNames),this.isRtl,this.axis={x:{scrollOffsetAttr:"scrollLeft",sizeAttr:"width",scrollSizeAttr:"scrollWidth",offsetAttr:"left",overflowAttr:"overflowX",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}},y:{scrollOffsetAttr:"scrollTop",sizeAttr:"height",scrollSizeAttr:"scrollHeight",offsetAttr:"top",overflowAttr:"overflowY",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}}},this.recalculate=fe(this.recalculate.bind(this),64),this.onMouseMove=fe(this.onMouseMove.bind(this),64),this.hideScrollbars=Te(this.hideScrollbars.bind(this),this.options.timeout),this.onWindowResize=Te(this.onWindowResize.bind(this),64,{leading:!0}),t.getRtlHelpers=si(t.getRtlHelpers),this.getContentElement=this.getScrollElement,this.init()}var e,i,r;return e=t,r=[{key:"getRtlHelpers",value:function(){var e=document.createElement("div");e.innerHTML='<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';var i=e.firstElementChild;document.body.appendChild(i);var r=i.firstElementChild;i.scrollLeft=0;var n=t.getOffset(i),s=t.getOffset(r);i.scrollLeft=999;var o=t.getOffset(r);return{isRtlScrollingInverted:n.left!==s.left&&s.left-o.left!=0,isRtlScrollbarInverted:n.left!==s.left}}},{key:"initHtmlApi",value:function(){this.initDOMLoadedElements=this.initDOMLoadedElements.bind(this),"undefined"!=typeof MutationObserver&&(this.globalObserver=new MutationObserver(function(e){e.forEach(function(e){Array.from(e.addedNodes).forEach(function(e){1===e.nodeType&&(e.hasAttribute("data-simplebar")?!e.SimpleBar&&new t(e,t.getElOptions(e)):Array.from(e.querySelectorAll("[data-simplebar]")).forEach(function(e){!e.SimpleBar&&new t(e,t.getElOptions(e))}))}),Array.from(e.removedNodes).forEach(function(t){1===t.nodeType&&(t.hasAttribute("data-simplebar")?t.SimpleBar&&t.SimpleBar.unMount():Array.from(t.querySelectorAll("[data-simplebar]")).forEach(function(t){t.SimpleBar&&t.SimpleBar.unMount()}))})})}),this.globalObserver.observe(document,{childList:!0,subtree:!0})),"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(this.initDOMLoadedElements):(document.addEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.addEventListener("load",this.initDOMLoadedElements))}},{key:"getElOptions",value:function(t){return Array.from(t.attributes).reduce(function(t,e){var i=e.name.match(/data-simplebar-(.+)/);if(i){var r=i[1].replace(/\W+(.)/g,function(t,e){return e.toUpperCase()});switch(e.value){case"true":t[r]=!0;break;case"false":t[r]=!1;break;case void 0:t[r]=!0;break;default:t[r]=e.value}}return t},{})}},{key:"removeObserver",value:function(){this.globalObserver.disconnect()}},{key:"initDOMLoadedElements",value:function(){document.removeEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.removeEventListener("load",this.initDOMLoadedElements),Array.from(document.querySelectorAll("[data-simplebar]")).forEach(function(e){e.SimpleBar||new t(e,t.getElOptions(e))})}},{key:"getOffset",value:function(t){var e=t.getBoundingClientRect();return{top:e.top+(window.pageYOffset||document.documentElement.scrollTop),left:e.left+(window.pageXOffset||document.documentElement.scrollLeft)}}}],(i=[{key:"init",value:function(){this.el.SimpleBar=this,this.initDOM(),Li&&(this.scrollbarWidth=$t(),this.recalculate(),this.initListeners())}},{key:"initDOM",value:function(){var t=this;if(Array.from(this.el.children).filter(function(e){return e.classList.contains(t.classNames.wrapper)}).length)this.wrapperEl=this.el.querySelector(".".concat(this.classNames.wrapper)),this.contentEl=this.el.querySelector(".".concat(this.classNames.content)),this.offsetEl=this.el.querySelector(".".concat(this.classNames.offset)),this.maskEl=this.el.querySelector(".".concat(this.classNames.mask)),this.placeholderEl=this.el.querySelector(".".concat(this.classNames.placeholder)),this.heightAutoObserverWrapperEl=this.el.querySelector(".".concat(this.classNames.heightAutoObserverWrapperEl)),this.heightAutoObserverEl=this.el.querySelector(".".concat(this.classNames.heightAutoObserverEl)),this.axis.x.track.el=this.el.querySelector(".".concat(this.classNames.track,".").concat(this.classNames.horizontal)),this.axis.y.track.el=this.el.querySelector(".".concat(this.classNames.track,".").concat(this.classNames.vertical));else{for(this.wrapperEl=document.createElement("div"),this.contentEl=document.createElement("div"),this.offsetEl=document.createElement("div"),this.maskEl=document.createElement("div"),this.placeholderEl=document.createElement("div"),this.heightAutoObserverWrapperEl=document.createElement("div"),this.heightAutoObserverEl=document.createElement("div"),this.wrapperEl.classList.add(this.classNames.wrapper),this.contentEl.classList.add(this.classNames.content),this.offsetEl.classList.add(this.classNames.offset),this.maskEl.classList.add(this.classNames.mask),this.placeholderEl.classList.add(this.classNames.placeholder),this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);this.el.firstChild;)this.contentEl.appendChild(this.el.firstChild);this.offsetEl.appendChild(this.contentEl),this.maskEl.appendChild(this.offsetEl),this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),this.wrapperEl.appendChild(this.maskEl),this.wrapperEl.appendChild(this.placeholderEl),this.el.appendChild(this.wrapperEl)}if(!this.axis.x.track.el||!this.axis.y.track.el){var e=document.createElement("div"),i=document.createElement("div");e.classList.add(this.classNames.track),i.classList.add(this.classNames.scrollbar),this.options.autoHide||i.classList.add(this.classNames.visible),e.appendChild(i),this.axis.x.track.el=e.cloneNode(!0),this.axis.x.track.el.classList.add(this.classNames.horizontal),this.axis.y.track.el=e.cloneNode(!0),this.axis.y.track.el.classList.add(this.classNames.vertical),this.el.appendChild(this.axis.x.track.el),this.el.appendChild(this.axis.y.track.el)}this.axis.x.scrollbar.el=this.axis.x.track.el.querySelector(".".concat(this.classNames.scrollbar)),this.axis.y.scrollbar.el=this.axis.y.track.el.querySelector(".".concat(this.classNames.scrollbar)),this.el.setAttribute("data-simplebar","init")}},{key:"initListeners",value:function(){var t=this;this.options.autoHide&&this.el.addEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick","touchstart","touchend","touchmove"].forEach(function(e){t.el.addEventListener(e,t.onPointerEvent,!0)}),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),this.contentEl.addEventListener("scroll",this.onScroll),window.addEventListener("resize",this.onWindowResize),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver(function(e){e.forEach(function(e){e.target!==t.el&&t.isChildNode(e.target)&&!e.addedNodes.length||t.recalculate()})}),this.mutationObserver.observe(this.el,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this.resizeObserver=new Ai(this.recalculate),this.resizeObserver.observe(this.el)}},{key:"recalculate",value:function(){var t=this.heightAutoObserverEl.offsetHeight<=1;this.elStyles=window.getComputedStyle(this.el),this.isRtl="rtl"===this.elStyles.direction,this.contentEl.style.padding="".concat(this.elStyles.paddingTop," ").concat(this.elStyles.paddingRight," ").concat(this.elStyles.paddingBottom," ").concat(this.elStyles.paddingLeft),this.contentEl.style.height=t?"auto":"100%",this.placeholderEl.style.width="".concat(this.contentEl.scrollWidth,"px"),this.placeholderEl.style.height="".concat(this.contentEl.scrollHeight,"px"),this.wrapperEl.style.margin="-".concat(this.elStyles.paddingTop," -").concat(this.elStyles.paddingRight," -").concat(this.elStyles.paddingBottom," -").concat(this.elStyles.paddingLeft),this.axis.x.track.rect=this.axis.x.track.el.getBoundingClientRect(),this.axis.y.track.rect=this.axis.y.track.el.getBoundingClientRect(),this.axis.x.isOverflowing=(this.scrollbarWidth?this.contentEl.scrollWidth:this.contentEl.scrollWidth-this.minScrollbarWidth)>Math.ceil(this.axis.x.track.rect.width),this.axis.y.isOverflowing=(this.scrollbarWidth?this.contentEl.scrollHeight:this.contentEl.scrollHeight-this.minScrollbarWidth)>Math.ceil(this.axis.y.track.rect.height),this.axis.x.isOverflowing="hidden"!==this.elStyles.overflowX&&this.axis.x.isOverflowing,this.axis.y.isOverflowing="hidden"!==this.elStyles.overflowY&&this.axis.y.isOverflowing,this.axis.x.forceVisible="x"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.y.forceVisible="y"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width="".concat(this.axis.x.scrollbar.size,"px"),this.axis.y.scrollbar.el.style.height="".concat(this.axis.y.scrollbar.size,"px"),this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y"),this.hideNativeScrollbar()}},{key:"getScrollbarSize",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",i=this.scrollbarWidth?this.contentEl[this.axis[e].scrollSizeAttr]:this.contentEl[this.axis[e].scrollSizeAttr]-this.minScrollbarWidth,r=this.axis[e].track.rect[this.axis[e].sizeAttr];if(this.axis[e].isOverflowing){var n=r/i;return t=Math.max(~~(n*r),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(t=Math.min(t,this.options.scrollbarMaxSize)),t}}},{key:"positionScrollbar",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",i=this.contentEl[this.axis[e].scrollSizeAttr],r=this.axis[e].track.rect[this.axis[e].sizeAttr],n=parseInt(this.elStyles[this.axis[e].sizeAttr],10),s=this.axis[e].scrollbar,o=this.contentEl[this.axis[e].scrollOffsetAttr],a=(o="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-o:o)/(i-n),l=~~((r-s.size)*a);l="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?l+(r-s.size):l,s.el.style.transform="x"===e?"translate3d(".concat(l,"px, 0, 0)"):"translate3d(0, ".concat(l,"px, 0)")}},{key:"toggleTrackVisibility",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",e=this.axis[t].track.el,i=this.axis[t].scrollbar.el;this.axis[t].isOverflowing||this.axis[t].forceVisible?(e.style.visibility="visible",this.contentEl.style[this.axis[t].overflowAttr]="scroll"):(e.style.visibility="hidden",this.contentEl.style[this.axis[t].overflowAttr]="hidden"),this.axis[t].isOverflowing?i.style.visibility="visible":i.style.visibility="hidden"}},{key:"hideNativeScrollbar",value:function(){if(this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-".concat(this.scrollbarWidth||this.minScrollbarWidth,"px"):0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-".concat(this.scrollbarWidth||this.minScrollbarWidth,"px"):0,!this.scrollbarWidth){var t=[this.isRtl?"paddingLeft":"paddingRight"];this.contentEl.style[t]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"calc(".concat(this.elStyles[t]," + ").concat(this.minScrollbarWidth,"px)"):this.elStyles[t],this.contentEl.style.paddingBottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"calc(".concat(this.elStyles.paddingBottom," + ").concat(this.minScrollbarWidth,"px)"):this.elStyles.paddingBottom}}},{key:"onMouseMoveForAxis",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y";this.axis[t].track.rect=this.axis[t].track.el.getBoundingClientRect(),this.axis[t].scrollbar.rect=this.axis[t].scrollbar.el.getBoundingClientRect(),this.isWithinBounds(this.axis[t].scrollbar.rect)?this.axis[t].scrollbar.el.classList.add(this.classNames.hover):this.axis[t].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[t].track.rect)?(this.showScrollbar(t),this.axis[t].track.el.classList.add(this.classNames.hover)):this.axis[t].track.el.classList.remove(this.classNames.hover)}},{key:"onMouseLeaveForAxis",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y";this.axis[t].track.el.classList.remove(this.classNames.hover),this.axis[t].scrollbar.el.classList.remove(this.classNames.hover)}},{key:"showScrollbar",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"y",e=this.axis[t].scrollbar.el;this.axis[t].isVisible||(e.classList.add(this.classNames.visible),this.axis[t].isVisible=!0),this.options.autoHide&&this.hideScrollbars()}},{key:"onDragStart",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",i=this.axis[e].scrollbar.el,r="y"===e?t.pageY:t.pageX;this.axis[e].dragOffset=r-i.getBoundingClientRect()[this.axis[e].offsetAttr],this.draggedAxis=e,document.addEventListener("mousemove",this.drag),document.addEventListener("mouseup",this.onEndDrag)}},{key:"getScrollElement",value:function(){return this.contentEl}},{key:"removeListeners",value:function(){this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),this.contentEl.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onWindowResize),this.mutationObserver&&this.mutationObserver.disconnect(),this.resizeObserver.disconnect()}},{key:"unMount",value:function(){this.removeListeners(),this.el.SimpleBar=null}},{key:"isChildNode",value:function(t){return null!==t&&(t===this.el||this.isChildNode(t.parentNode))}},{key:"isWithinBounds",value:function(t){return this.mouseX>=t.left&&this.mouseX<=t.left+t.width&&this.mouseY>=t.top&&this.mouseY<=t.top+t.height}}])&&Yt(e.prototype,i),r&&Yt(e,r),t}();return Mi.defaultOptions={autoHide:!0,forceVisible:!1,classNames:{content:"simplebar-content",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3},Li&&Mi.initHtmlApi(),Mi});;
!function(t){"object"==typeof exports?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){"use strict";var e={},i=Math.max,n=Math.min;e.c={},e.c.d=t(document),e.c.t=function(t){return t.originalEvent.touches.length-1},e.o=function(){var i=this;this.o=null,this.$=null,this.i=null,this.g=null,this.v=null,this.cv=null,this.x=0,this.y=0,this.w=0,this.h=0,this.$c=null,this.c=null,this.t=0,this.isInit=!1,this.fgColor=null,this.pColor=null,this.dH=null,this.cH=null,this.eH=null,this.rH=null,this.scale=1,this.relative=!1,this.relativeWidth=!1,this.relativeHeight=!1,this.$div=null,this.run=function(){var e=function(t,e){var n;for(n in e)i.o[n]=e[n];i._carve().init(),i._configure()._draw()};if(!this.$.data("kontroled")){if(this.$.data("kontroled",!0),this.extend(),this.o=t.extend({min:void 0!==this.$.data("min")?this.$.data("min"):0,max:void 0!==this.$.data("max")?this.$.data("max"):100,stopper:!0,readOnly:this.$.data("readonly")||"readonly"===this.$.attr("readonly"),cursor:(!0===this.$.data("cursor")?30:this.$.data("cursor"))||0,thickness:this.$.data("thickness")&&Math.max(Math.min(this.$.data("thickness"),1),.01)||.35,lineCap:this.$.data("linecap")||"butt",width:this.$.data("width")||200,height:this.$.data("height")||200,displayInput:null==this.$.data("displayinput")||this.$.data("displayinput"),displayPrevious:this.$.data("displayprevious"),fgColor:this.$.data("fgcolor")||"#87CEEB",inputColor:this.$.data("inputcolor"),font:this.$.data("font")||"Arial",fontWeight:this.$.data("font-weight")||"bold",inline:!1,step:this.$.data("step")||1,rotation:this.$.data("rotation"),draw:null,change:null,cancel:null,release:null,format:function(t){return t},parse:function(t){return parseFloat(t)}},this.o),this.o.flip="anticlockwise"===this.o.rotation||"acw"===this.o.rotation,this.o.inputColor||(this.o.inputColor=this.o.fgColor),this.$.is("fieldset")?(this.v={},this.i=this.$.find("input"),this.i.each(function(e){var n=t(this);i.i[e]=n,i.v[e]=i.o.parse(n.val()),n.bind("change blur",function(){var t={};t[e]=n.val(),i.val(i._validate(t))})}),this.$.find("legend").remove()):(this.i=this.$,this.v=this.o.parse(this.$.val()),""===this.v&&(this.v=this.o.min),this.$.bind("change blur",function(){i.val(i._validate(i.o.parse(i.$.val())))})),!this.o.displayInput&&this.$.hide(),this.$c=t(document.createElement("canvas")).attr({width:this.o.width,height:this.o.height}),this.$div=t('<div style="'+(this.o.inline?"display:inline;":"")+"width:"+this.o.width+"px;height:"+this.o.height+'px;"></div>'),this.$.wrap(this.$div).before(this.$c),this.$div=this.$.parent(),"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(this.$c[0]),this.c=this.$c[0].getContext?this.$c[0].getContext("2d"):null,!this.c)throw{name:"CanvasNotSupportedException",message:"Canvas not supported. Please use excanvas on IE8.0.",toString:function(){return this.name+": "+this.message}};return this.scale=(window.devicePixelRatio||1)/(this.c.webkitBackingStorePixelRatio||this.c.mozBackingStorePixelRatio||this.c.msBackingStorePixelRatio||this.c.oBackingStorePixelRatio||this.c.backingStorePixelRatio||1),this.relativeWidth=this.o.width%1!=0&&this.o.width.indexOf("%"),this.relativeHeight=this.o.height%1!=0&&this.o.height.indexOf("%"),this.relative=this.relativeWidth||this.relativeHeight,this._carve(),this.v instanceof Object?(this.cv={},this.copy(this.v,this.cv)):this.cv=this.v,this.$.bind("configure",e).parent().bind("configure",e),this._listen()._configure()._xy().init(),this.isInit=!0,this.$.val(this.o.format(this.v)),this._draw(),this}},this._carve=function(){if(this.relative){var t=this.relativeWidth?this.$div.parent().width()*parseInt(this.o.width)/100:this.$div.parent().width(),e=this.relativeHeight?this.$div.parent().height()*parseInt(this.o.height)/100:this.$div.parent().height();this.w=this.h=Math.min(t,e)}else this.w=this.o.width,this.h=this.o.height;return this.$div.css({width:this.w+"px",height:this.h+"px"}),this.$c.attr({width:this.w,height:this.h}),1!==this.scale&&(this.$c[0].width=this.$c[0].width*this.scale,this.$c[0].height=this.$c[0].height*this.scale,this.$c.width(this.w),this.$c.height(this.h)),this},this._draw=function(){var t=!0;i.g=i.c,i.clear(),i.dH&&(t=i.dH()),!1!==t&&i.draw()},this._touch=function(t){var n=function(t){var e=i.xy2val(t.originalEvent.touches[i.t].pageX,t.originalEvent.touches[i.t].pageY);e!=i.cv&&(i.cH&&!1===i.cH(e)||(i.change(i._validate(e)),i._draw()))};return this.t=e.c.t(t),n(t),e.c.d.bind("touchmove.k",n).bind("touchend.k",function(){e.c.d.unbind("touchmove.k touchend.k"),i.val(i.cv)}),this},this._mouse=function(t){var n=function(t){var e=i.xy2val(t.pageX,t.pageY);e!=i.cv&&(i.cH&&!1===i.cH(e)||(i.change(i._validate(e)),i._draw()))};return n(t),e.c.d.bind("mousemove.k",n).bind("keyup.k",function(t){if(27===t.keyCode){if(e.c.d.unbind("mouseup.k mousemove.k keyup.k"),i.eH&&!1===i.eH())return;i.cancel()}}).bind("mouseup.k",function(t){e.c.d.unbind("mousemove.k mouseup.k keyup.k"),i.val(i.cv)}),this},this._xy=function(){var t=this.$c.offset();return this.x=t.left,this.y=t.top,this},this._listen=function(){return this.o.readOnly?this.$.attr("readonly","readonly"):(this.$c.bind("mousedown",function(t){t.preventDefault(),i._xy()._mouse(t)}).bind("touchstart",function(t){t.preventDefault(),i._xy()._touch(t)}),this.listen()),this.relative&&t(window).resize(function(){i._carve().init(),i._draw()}),this},this._configure=function(){return this.o.draw&&(this.dH=this.o.draw),this.o.change&&(this.cH=this.o.change),this.o.cancel&&(this.eH=this.o.cancel),this.o.release&&(this.rH=this.o.release),this.o.displayPrevious?(this.pColor=this.h2rgba(this.o.fgColor,"0.4"),this.fgColor=this.h2rgba(this.o.fgColor,"0.6")):this.fgColor=this.o.fgColor,this},this._clear=function(){this.$c[0].width=this.$c[0].width},this._validate=function(t){var e=~~((0>t?-.5:.5)+t/this.o.step)*this.o.step;return Math.round(100*e)/100},this.listen=function(){},this.extend=function(){},this.init=function(){},this.change=function(t){},this.val=function(t){},this.xy2val=function(t,e){},this.draw=function(){},this.clear=function(){this._clear()},this.h2rgba=function(t,e){var i;return t=t.substring(1,7),"rgba("+(i=[parseInt(t.substring(0,2),16),parseInt(t.substring(2,4),16),parseInt(t.substring(4,6),16)])[0]+","+i[1]+","+i[2]+","+e+")"},this.copy=function(t,e){for(var i in t)e[i]=t[i]}},e.Dial=function(){e.o.call(this),this.startAngle=null,this.xy=null,this.radius=null,this.lineWidth=null,this.cursorExt=null,this.w2=null,this.PI2=2*Math.PI,this.extend=function(){this.o=t.extend({bgColor:this.$.data("bgcolor")||"#EEEEEE",angleOffset:this.$.data("angleoffset")||0,angleArc:this.$.data("anglearc")||360,inline:!0},this.o)},this.val=function(t,e){return null==t?this.v:(t=this.o.parse(t),void(!1!==e&&t!=this.v&&this.rH&&!1===this.rH(t)||(this.cv=this.o.stopper?i(n(t,this.o.max),this.o.min):t,this.v=this.cv,this.$.val(this.o.format(this.v)),this._draw())))},this.xy2val=function(t,e){var s,o;return s=Math.atan2(t-(this.x+this.w2),-(e-this.y-this.w2))-this.angleOffset,this.o.flip&&(s=this.angleArc-s-this.PI2),this.angleArc!=this.PI2&&0>s&&s>-.5?s=0:0>s&&(s+=this.PI2),o=s*(this.o.max-this.o.min)/this.angleArc+this.o.min,this.o.stopper&&(o=i(n(o,this.o.max),this.o.min)),o},this.listen=function(){var e,s,o,r,a=this,l=function(t){t.preventDefault();var o=t.originalEvent,r=o.detail||o.wheelDeltaX,l=o.detail||o.wheelDeltaY,h=a._validate(a.o.parse(a.$.val()))+(r>0||l>0?a.o.step:0>r||0>l?-a.o.step:0);h=i(n(h,a.o.max),a.o.min),a.val(h,!1),a.rH&&(clearTimeout(e),e=setTimeout(function(){a.rH(h),e=null},100),s||(s=setTimeout(function(){e&&a.rH(h),s=null},200)))},h=1,c={37:-a.o.step,38:a.o.step,39:a.o.step,40:-a.o.step};this.$.bind("keydown",function(e){var s=e.keyCode;if(s>=96&&105>=s&&(s=e.keyCode=s-48),o=parseInt(String.fromCharCode(s)),isNaN(o)&&(13!==s&&8!==s&&9!==s&&189!==s&&(190!==s||a.$.val().match(/\./))&&e.preventDefault(),t.inArray(s,[37,38,39,40])>-1)){e.preventDefault();var l=a.o.parse(a.$.val())+c[s]*h;a.o.stopper&&(l=i(n(l,a.o.max),a.o.min)),a.change(a._validate(l)),a._draw(),r=window.setTimeout(function(){h*=2},30)}}).bind("keyup",function(t){isNaN(o)?r&&(window.clearTimeout(r),r=null,h=1,a.val(a.$.val())):a.$.val()>a.o.max&&a.$.val(a.o.max)||a.$.val()<a.o.min&&a.$.val(a.o.min)}),this.$c.bind("mousewheel DOMMouseScroll",l),this.$.bind("mousewheel DOMMouseScroll",l)},this.init=function(){(this.v<this.o.min||this.v>this.o.max)&&(this.v=this.o.min),this.$.val(this.v),this.w2=this.w/2,this.cursorExt=this.o.cursor/100,this.xy=this.w2*this.scale,this.lineWidth=this.xy*this.o.thickness,this.lineCap=this.o.lineCap,this.radius=this.xy-this.lineWidth/2,this.o.angleOffset&&(this.o.angleOffset=isNaN(this.o.angleOffset)?0:this.o.angleOffset),this.o.angleArc&&(this.o.angleArc=isNaN(this.o.angleArc)?this.PI2:this.o.angleArc),this.angleOffset=this.o.angleOffset*Math.PI/180,this.angleArc=this.o.angleArc*Math.PI/180,this.startAngle=1.5*Math.PI+this.angleOffset,this.endAngle=1.5*Math.PI+this.angleOffset+this.angleArc;var t=i(String(Math.abs(this.o.max)).length,String(Math.abs(this.o.min)).length,2)+2;this.o.displayInput&&this.i.css({width:(this.w/2+4>>0)+"px",height:(this.w/3>>0)+"px",position:"absolute","vertical-align":"middle","margin-top":(this.w/3>>0)+"px","margin-left":"-"+(3*this.w/4+2>>0)+"px",border:0,background:"none",font:this.o.fontWeight+" "+(this.w/t>>0)+"px "+this.o.font,"text-align":"center",color:this.o.inputColor||this.o.fgColor,padding:"0px","-webkit-appearance":"none"})||this.i.css({width:"0px",visibility:"hidden"})},this.change=function(t){this.cv=t,this.$.val(this.o.format(t))},this.angle=function(t){return(t-this.o.min)*this.angleArc/(this.o.max-this.o.min)},this.arc=function(t){var e,i;return t=this.angle(t),this.o.flip?i=(e=this.endAngle+1e-5)-t-1e-5:i=(e=this.startAngle-1e-5)+t+1e-5,this.o.cursor&&(e=i-this.cursorExt)&&(i+=this.cursorExt),{s:e,e:i,d:this.o.flip&&!this.o.cursor}},this.draw=function(){var t,e=this.g,i=this.arc(this.cv),n=1;e.lineWidth=this.lineWidth,e.lineCap=this.lineCap,"none"!==this.o.bgColor&&(e.beginPath(),e.strokeStyle=this.o.bgColor,e.arc(this.xy,this.xy,this.radius,this.endAngle-1e-5,this.startAngle+1e-5,!0),e.stroke()),this.o.displayPrevious&&(t=this.arc(this.v),e.beginPath(),e.strokeStyle=this.pColor,e.arc(this.xy,this.xy,this.radius,t.s,t.e,t.d),e.stroke(),n=this.cv==this.v),e.beginPath(),e.strokeStyle=n?this.o.fgColor:this.fgColor,e.arc(this.xy,this.xy,this.radius,i.s,i.e,i.d),e.stroke()},this.cancel=function(){this.val(this.v)}},t.fn.dial=t.fn.knob=function(i){return this.each(function(){var n=new e.Dial;n.o=i,n.$=t(this),n.run()}).parent()}}),function(t,e,i,n){function s(e,i){this.element=e,this.options=t.extend({},r,i),this._defaults=r,this._name=o,this.init()}var o="stellar",r={scrollProperty:"scroll",positionProperty:"position",horizontalScrolling:!0,verticalScrolling:!0,horizontalOffset:0,verticalOffset:0,responsive:!1,parallaxBackgrounds:!0,parallaxElements:!0,hideDistantElements:!0,hideElement:function(t){t.hide()},showElement:function(t){t.show()}},a={scroll:{getLeft:function(t){return t.scrollLeft()},setLeft:function(t,e){t.scrollLeft(e)},getTop:function(t){return t.scrollTop()},setTop:function(t,e){t.scrollTop(e)}},position:{getLeft:function(t){return-1*parseInt(t.css("left"),10)},getTop:function(t){return-1*parseInt(t.css("top"),10)}},margin:{getLeft:function(t){return-1*parseInt(t.css("margin-left"),10)},getTop:function(t){return-1*parseInt(t.css("margin-top"),10)}},transform:{getLeft:function(t){var e=getComputedStyle(t[0])[h];return"none"!==e?-1*parseInt(e.match(/(-?[0-9]+)/g)[4],10):0},getTop:function(t){var e=getComputedStyle(t[0])[h];return"none"!==e?-1*parseInt(e.match(/(-?[0-9]+)/g)[5],10):0}}},l={position:{setLeft:function(t,e){t.css("left",e)},setTop:function(t,e){t.css("top",e)}},transform:{setPosition:function(t,e,i,n,s){t[0].style[h]="translate3d("+(e-i)+"px, "+(n-s)+"px, 0)"}}},h=function(){var e,i=/^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,n=t("script")[0].style,s="";for(e in n)if(i.test(e)){s=e.match(i)[0];break}return"WebkitOpacity"in n&&(s="Webkit"),"KhtmlOpacity"in n&&(s="Khtml"),function(t){return s+(s.length>0?t.charAt(0).toUpperCase()+t.slice(1):t)}}()("transform"),c=t("<div />",{style:"background:#fff"}).css("background-position-x")!==n,f=c?function(t,e,i){t.css({"background-position-x":e,"background-position-y":i})}:function(t,e,i){t.css("background-position",e+" "+i)},u=c?function(t){return[t.css("background-position-x"),t.css("background-position-y")]}:function(t){return t.css("background-position").split(" ")},d=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t){setTimeout(t,1e3/60)};s.prototype={init:function(){this.options.name=o+"_"+Math.floor(1e9*Math.random()),this._defineElements(),this._defineGetters(),this._defineSetters(),this._handleWindowLoadAndResize(),this._detectViewport(),this.refresh({firstLoad:!0}),"scroll"===this.options.scrollProperty?this._handleScrollEvent():this._startAnimationLoop()},_defineElements:function(){this.element===i.body&&(this.element=e),this.$scrollElement=t(this.element),this.$element=this.element===e?t("body"):this.$scrollElement,this.$viewportElement=this.options.viewportElement!==n?t(this.options.viewportElement):this.$scrollElement[0]===e||"scroll"===this.options.scrollProperty?this.$scrollElement:this.$scrollElement.parent()},_defineGetters:function(){var t=this,e=a[t.options.scrollProperty];this._getScrollLeft=function(){return e.getLeft(t.$scrollElement)},this._getScrollTop=function(){return e.getTop(t.$scrollElement)}},_defineSetters:function(){var e=this,i=a[e.options.scrollProperty],n=l[e.options.positionProperty],s=i.setLeft,o=i.setTop;this._setScrollLeft="function"==typeof s?function(t){s(e.$scrollElement,t)}:t.noop,this._setScrollTop="function"==typeof o?function(t){o(e.$scrollElement,t)}:t.noop,this._setPosition=n.setPosition||function(t,i,s,o,r){e.options.horizontalScrolling&&n.setLeft(t,i,s),e.options.verticalScrolling&&n.setTop(t,o,r)}},_handleWindowLoadAndResize:function(){var i=this,n=t(e);i.options.responsive&&n.bind("load."+this.name,function(){i.refresh()}),n.bind("resize."+this.name,function(){i._detectViewport(),i.options.responsive&&i.refresh()})},refresh:function(i){var n=this,s=n._getScrollLeft(),o=n._getScrollTop();i&&i.firstLoad||this._reset(),this._setScrollLeft(0),this._setScrollTop(0),this._setOffsets(),this._findParticles(),this._findBackgrounds(),i&&i.firstLoad&&/WebKit/.test(navigator.userAgent)&&t(e).load(function(){var t=n._getScrollLeft(),e=n._getScrollTop();n._setScrollLeft(t+1),n._setScrollTop(e+1),n._setScrollLeft(t),n._setScrollTop(e)}),this._setScrollLeft(s),this._setScrollTop(o)},_detectViewport:function(){var t=this.$viewportElement.offset(),e=null!==t&&t!==n;this.viewportWidth=this.$viewportElement.width(),this.viewportHeight=this.$viewportElement.height(),this.viewportOffsetTop=e?t.top:0,this.viewportOffsetLeft=e?t.left:0},_findParticles:function(){var e=this;if(this._getScrollLeft(),this._getScrollTop(),this.particles!==n)for(var i=this.particles.length-1;i>=0;i--)this.particles[i].$element.data("stellar-elementIsActive",n);this.particles=[],this.options.parallaxElements&&this.$element.find("[data-stellar-ratio]").each(function(){var i,s,o,r,a,l,h,c,f,u=t(this),d=0,p=0,g=0,v=0;if(u.data("stellar-elementIsActive")){if(u.data("stellar-elementIsActive")!==this)return}else u.data("stellar-elementIsActive",this);e.options.showElement(u),u.data("stellar-startingLeft")?(u.css("left",u.data("stellar-startingLeft")),u.css("top",u.data("stellar-startingTop"))):(u.data("stellar-startingLeft",u.css("left")),u.data("stellar-startingTop",u.css("top"))),o=u.position().left,r=u.position().top,a="auto"===u.css("margin-left")?0:parseInt(u.css("margin-left"),10),l="auto"===u.css("margin-top")?0:parseInt(u.css("margin-top"),10),c=u.offset().left-a,f=u.offset().top-l,u.parents().each(function(){var e=t(this);return!0===e.data("stellar-offset-parent")?(d=g,p=v,h=e,!1):(g+=e.position().left,void(v+=e.position().top))}),i=u.data("stellar-horizontal-offset")!==n?u.data("stellar-horizontal-offset"):h!==n&&h.data("stellar-horizontal-offset")!==n?h.data("stellar-horizontal-offset"):e.horizontalOffset,s=u.data("stellar-vertical-offset")!==n?u.data("stellar-vertical-offset"):h!==n&&h.data("stellar-vertical-offset")!==n?h.data("stellar-vertical-offset"):e.verticalOffset,e.particles.push({$element:u,$offsetParent:h,isFixed:"fixed"===u.css("position"),horizontalOffset:i,verticalOffset:s,startingPositionLeft:o,startingPositionTop:r,startingOffsetLeft:c,startingOffsetTop:f,parentOffsetLeft:d,parentOffsetTop:p,stellarRatio:u.data("stellar-ratio")!==n?u.data("stellar-ratio"):1,width:u.outerWidth(!0),height:u.outerHeight(!0),isHidden:!1})})},_findBackgrounds:function(){var e,i=this,s=this._getScrollLeft(),o=this._getScrollTop();this.backgrounds=[],this.options.parallaxBackgrounds&&(e=this.$element.find("[data-stellar-background-ratio]"),this.$element.data("stellar-background-ratio")&&(e=e.add(this.$element)),e.each(function(){var e,r,a,l,h,c,d,p=t(this),g=u(p),v=0,m=0,y=0,b=0;if(p.data("stellar-backgroundIsActive")){if(p.data("stellar-backgroundIsActive")!==this)return}else p.data("stellar-backgroundIsActive",this);p.data("stellar-backgroundStartingLeft")?f(p,p.data("stellar-backgroundStartingLeft"),p.data("stellar-backgroundStartingTop")):(p.data("stellar-backgroundStartingLeft",g[0]),p.data("stellar-backgroundStartingTop",g[1])),a="auto"===p.css("margin-left")?0:parseInt(p.css("margin-left"),10),l="auto"===p.css("margin-top")?0:parseInt(p.css("margin-top"),10),h=p.offset().left-a-s,c=p.offset().top-l-o,p.parents().each(function(){var e=t(this);return!0===e.data("stellar-offset-parent")?(v=y,m=b,d=e,!1):(y+=e.position().left,void(b+=e.position().top))}),e=p.data("stellar-horizontal-offset")!==n?p.data("stellar-horizontal-offset"):d!==n&&d.data("stellar-horizontal-offset")!==n?d.data("stellar-horizontal-offset"):i.horizontalOffset,r=p.data("stellar-vertical-offset")!==n?p.data("stellar-vertical-offset"):d!==n&&d.data("stellar-vertical-offset")!==n?d.data("stellar-vertical-offset"):i.verticalOffset,i.backgrounds.push({$element:p,$offsetParent:d,isFixed:"fixed"===p.css("background-attachment"),horizontalOffset:e,verticalOffset:r,startingValueLeft:g[0],startingValueTop:g[1],startingBackgroundPositionLeft:isNaN(parseInt(g[0],10))?0:parseInt(g[0],10),startingBackgroundPositionTop:isNaN(parseInt(g[1],10))?0:parseInt(g[1],10),startingPositionLeft:p.position().left,startingPositionTop:p.position().top,startingOffsetLeft:h,startingOffsetTop:c,parentOffsetLeft:v,parentOffsetTop:m,stellarRatio:p.data("stellar-background-ratio")===n?1:p.data("stellar-background-ratio")})}))},_reset:function(){var t,e,i,n,s;for(s=this.particles.length-1;s>=0;s--)e=(t=this.particles[s]).$element.data("stellar-startingLeft"),i=t.$element.data("stellar-startingTop"),this._setPosition(t.$element,e,e,i,i),this.options.showElement(t.$element),t.$element.data("stellar-startingLeft",null).data("stellar-elementIsActive",null).data("stellar-backgroundIsActive",null);for(s=this.backgrounds.length-1;s>=0;s--)(n=this.backgrounds[s]).$element.data("stellar-backgroundStartingLeft",null).data("stellar-backgroundStartingTop",null),f(n.$element,n.startingValueLeft,n.startingValueTop)},destroy:function(){this._reset(),this.$scrollElement.unbind("resize."+this.name).unbind("scroll."+this.name),this._animationLoop=t.noop,t(e).unbind("load."+this.name).unbind("resize."+this.name)},_setOffsets:function(){var i=this,n=t(e);n.unbind("resize.horizontal-"+this.name).unbind("resize.vertical-"+this.name),"function"==typeof this.options.horizontalOffset?(this.horizontalOffset=this.options.horizontalOffset(),n.bind("resize.horizontal-"+this.name,function(){i.horizontalOffset=i.options.horizontalOffset()})):this.horizontalOffset=this.options.horizontalOffset,"function"==typeof this.options.verticalOffset?(this.verticalOffset=this.options.verticalOffset(),n.bind("resize.vertical-"+this.name,function(){i.verticalOffset=i.options.verticalOffset()})):this.verticalOffset=this.options.verticalOffset},_repositionElements:function(){var t,e,i,n,s,o,r,a,l,h,c=this._getScrollLeft(),u=this._getScrollTop(),d=!0,p=!0;if(this.currentScrollLeft!==c||this.currentScrollTop!==u||this.currentWidth!==this.viewportWidth||this.currentHeight!==this.viewportHeight){for(this.currentScrollLeft=c,this.currentScrollTop=u,this.currentWidth=this.viewportWidth,this.currentHeight=this.viewportHeight,h=this.particles.length-1;h>=0;h--)e=(t=this.particles[h]).isFixed?1:0,this.options.horizontalScrolling?a=(o=(c+t.horizontalOffset+this.viewportOffsetLeft+t.startingPositionLeft-t.startingOffsetLeft+t.parentOffsetLeft)*-(t.stellarRatio+e-1)+t.startingPositionLeft)-t.startingPositionLeft+t.startingOffsetLeft:(o=t.startingPositionLeft,a=t.startingOffsetLeft),this.options.verticalScrolling?l=(r=(u+t.verticalOffset+this.viewportOffsetTop+t.startingPositionTop-t.startingOffsetTop+t.parentOffsetTop)*-(t.stellarRatio+e-1)+t.startingPositionTop)-t.startingPositionTop+t.startingOffsetTop:(r=t.startingPositionTop,l=t.startingOffsetTop),this.options.hideDistantElements&&(p=!this.options.horizontalScrolling||a+t.width>(t.isFixed?0:c)&&a<(t.isFixed?0:c)+this.viewportWidth+this.viewportOffsetLeft,d=!this.options.verticalScrolling||l+t.height>(t.isFixed?0:u)&&l<(t.isFixed?0:u)+this.viewportHeight+this.viewportOffsetTop),p&&d?(t.isHidden&&(this.options.showElement(t.$element),t.isHidden=!1),this._setPosition(t.$element,o,t.startingPositionLeft,r,t.startingPositionTop)):t.isHidden||(this.options.hideElement(t.$element),t.isHidden=!0);for(h=this.backgrounds.length-1;h>=0;h--)e=(i=this.backgrounds[h]).isFixed?0:1,n=this.options.horizontalScrolling?(c+i.horizontalOffset-this.viewportOffsetLeft-i.startingOffsetLeft+i.parentOffsetLeft-i.startingBackgroundPositionLeft)*(e-i.stellarRatio)+"px":i.startingValueLeft,s=this.options.verticalScrolling?(u+i.verticalOffset-this.viewportOffsetTop-i.startingOffsetTop+i.parentOffsetTop-i.startingBackgroundPositionTop)*(e-i.stellarRatio)+"px":i.startingValueTop,f(i.$element,n,s)}},_handleScrollEvent:function(){var t=this,e=!1,i=function(){t._repositionElements(),e=!1},n=function(){e||(d(i),e=!0)};this.$scrollElement.bind("scroll."+this.name,n),n()},_startAnimationLoop:function(){var t=this;this._animationLoop=function(){d(t._animationLoop),t._repositionElements()},this._animationLoop()}},t.fn[o]=function(e){var i=arguments;return e===n||"object"==typeof e?this.each(function(){t.data(this,"plugin_"+o)||t.data(this,"plugin_"+o,new s(this,e))}):"string"==typeof e&&"_"!==e[0]&&"init"!==e?this.each(function(){var n=t.data(this,"plugin_"+o);n instanceof s&&"function"==typeof n[e]&&n[e].apply(n,Array.prototype.slice.call(i,1)),"destroy"===e&&t.data(this,"plugin_"+o,null)}):void 0},t[o]=function(){var i=t(e);return i.stellar.apply(i,Array.prototype.slice.call(arguments,0))},t[o].scrollProperty=a,t[o].positionProperty=l,e.Stellar=s}(jQuery,this,document),function(t){var e=t(window),i=e.height();e.resize(function(){i=e.height()}),t.fn.parallax=function(n,s,o){function r(){var o=e.scrollTop();h.each(function(){var e=t(this),r=e.offset().top,c=a(e);o>r+c||r>o+i||h.css("backgroundPosition",n+" "+Math.round((l-o)*s)+"px")})}var a,l,h=t(this);h.each(function(){l=h.offset().top}),a=o?function(t){return t.outerHeight(!0)}:function(t){return t.height()},(arguments.length<1||null===n)&&(n="50%"),(arguments.length<2||null===s)&&(s=.1),(arguments.length<3||null===o)&&(o=!0),e.bind("scroll",r).resize(r),r()}}(jQuery),window.Modernizr=function(t,e,i){function n(t){g.cssText=t}function s(t,e){return typeof t===e}function o(t,e){return!!~(""+t).indexOf(e)}function r(t,e){for(var n in t){var s=t[n];if(!o(s,"-")&&g[s]!==i)return"pfx"!=e||s}return!1}function a(t,e,n){for(var o in t){var r=e[t[o]];if(r!==i)return!1===n?t[o]:s(r,"function")?r.bind(n||e):r}return!1}function l(t,e,i){var n=t.charAt(0).toUpperCase()+t.slice(1),o=(t+" "+y.join(n+" ")+n).split(" ");return s(e,"string")||s(e,"undefined")?r(o,e):a(o=(t+" "+b.join(n+" ")+n).split(" "),e,i)}var h,c,f={},u=e.documentElement,d="modernizr",p=e.createElement(d),g=p.style,v=" -webkit- -moz- -o- -ms- ".split(" "),m="Webkit Moz O ms",y=m.split(" "),b=m.toLowerCase().split(" "),w={},$=[],x=$.slice,_=function(t,i,n,s){var o,r,a,l,h=e.createElement("div"),c=e.body,f=c||e.createElement("body");if(parseInt(n,10))for(;n--;)(a=e.createElement("div")).id=s?s[n]:d+(n+1),h.appendChild(a);return o=["&#173;",'<style id="s',d,'">',t,"</style>"].join(""),h.id=d,(c?h:f).innerHTML+=o,f.appendChild(h),c||(f.style.background="",f.style.overflow="hidden",l=u.style.overflow,u.style.overflow="hidden",u.appendChild(f)),r=i(h,t),c?h.parentNode.removeChild(h):(f.parentNode.removeChild(f),u.style.overflow=l),!!r},k={}.hasOwnProperty;for(var O in c=s(k,"undefined")||s(k.call,"undefined")?function(t,e){return e in t&&s(t.constructor.prototype[e],"undefined")}:function(t,e){return k.call(t,e)},Function.prototype.bind||(Function.prototype.bind=function(t){var e=this;if("function"!=typeof e)throw new TypeError;var i=x.call(arguments,1),n=function(){if(this instanceof n){var s=function(){};s.prototype=e.prototype;var o=new s,r=e.apply(o,i.concat(x.call(arguments)));return Object(r)===r?r:o}return e.apply(t,i.concat(x.call(arguments)))};return n}),w.touch=function(){var i;return"ontouchstart"in t||t.DocumentTouch&&e instanceof DocumentTouch?i=!0:_(["@media (",v.join("touch-enabled),("),d,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(t){i=9===t.offsetTop}),i},w.csstransitions=function(){return l("transition")},w)c(w,O)&&(h=O.toLowerCase(),f[h]=w[O](),$.push((f[h]?"":"no-")+h));return f.addTest=function(t,e){if("object"==typeof t)for(var n in t)c(t,n)&&f.addTest(n,t[n]);else{if(t=t.toLowerCase(),f[t]!==i)return f;e="function"==typeof e?e():e,u.className+=" "+(e?"":"no-")+t,f[t]=e}return f},n(""),p=null,function(t,e){function i(){var t=p.elements;return"string"==typeof t?t.split(" "):t}function n(t){var e=d[t[f]];return e||(e={},u++,t[f]=u,d[u]=e),e}function s(t,i,s){return i||(i=e),a?i.createElement(t):(s||(s=n(i)),!(o=s.cache[t]?s.cache[t].cloneNode():c.test(t)?(s.cache[t]=s.createElem(t)).cloneNode():s.createElem(t)).canHaveChildren||h.test(t)||o.tagUrn?o:s.frag.appendChild(o));var o}function o(t){t||(t=e);var o=n(t);return p.shivCSS&&!r&&!o.hasCSS&&(o.hasCSS=!!function(t,e){var i=t.createElement("p"),n=t.getElementsByTagName("head")[0]||t.documentElement;return i.innerHTML="x<style>"+e+"</style>",n.insertBefore(i.lastChild,n.firstChild)}(t,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),a||function(t,e){e.cache||(e.cache={},e.createElem=t.createElement,e.createFrag=t.createDocumentFragment,e.frag=e.createFrag()),t.createElement=function(i){return p.shivMethods?s(i,t,e):e.createElem(i)},t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+i().join().replace(/[\w\-]+/g,function(t){return e.createElem(t),e.frag.createElement(t),'c("'+t+'")'})+");return n}")(p,e.frag)}(t,o),t}var r,a,l=t.html5||{},h=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,c=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f="_html5shiv",u=0,d={};!function(){try{var t=e.createElement("a");t.innerHTML="<xyz></xyz>",r="hidden"in t,a=1==t.childNodes.length||function(){e.createElement("a");var t=e.createDocumentFragment();return void 0===t.cloneNode||void 0===t.createDocumentFragment||void 0===t.createElement}()}catch(t){r=!0,a=!0}}();var p={elements:l.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==l.shivCSS,supportsUnknownElements:a,shivMethods:!1!==l.shivMethods,type:"default",shivDocument:o,createElement:s,createDocumentFragment:function(t,s){if(t||(t=e),a)return t.createDocumentFragment();for(var o=(s=s||n(t)).frag.cloneNode(),r=0,l=i(),h=l.length;r<h;r++)o.createElement(l[r]);return o}};t.html5=p,o(e)}(this,e),f._version="2.8.3",f._prefixes=v,f._domPrefixes=b,f._cssomPrefixes=y,f.mq=function(e){var i,n=t.matchMedia||t.msMatchMedia;return n?n(e)&&n(e).matches||!1:(_("@media "+e+" { #"+d+" { position: absolute; } }",function(e){i="absolute"==(t.getComputedStyle?getComputedStyle(e,null):e.currentStyle).position}),i)},f.testProp=function(t){return r([t])},f.testAllProps=l,f.testStyles=_,u.className=u.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+" js "+$.join(" "),f}(this,this.document),function(t,e,i){function n(t){return"[object Function]"==v.call(t)}function s(t){return"string"==typeof t}function o(){}function r(t){return!t||"loaded"==t||"complete"==t||"uninitialized"==t}function a(){var t=m.shift();y=1,t?t.t?p(function(){("c"==t.t?u.injectCss:u.injectJs)(t.s,0,t.a,t.x,t.e,1)},0):(t(),a()):y=0}function l(t,i,n,s,o,l,h){function c(e){if(!d&&r(f.readyState)&&(b.r=d=1,!y&&a(),f.onload=f.onreadystatechange=null,e))for(var n in"img"!=t&&p(function(){$.removeChild(f)},50),S[i])S[i].hasOwnProperty(n)&&S[i][n].onload()}h=h||u.errorTimeout;var f=e.createElement(t),d=0,v=0,b={t:n,s:i,e:o,a:l,x:h};1===S[i]&&(v=1,S[i]=[]),"object"==t?f.data=i:(f.src=i,f.type=t),f.width=f.height="0",f.onerror=f.onload=f.onreadystatechange=function(){c.call(this,v)},m.splice(s,0,b),"img"!=t&&(v||2===S[i]?($.insertBefore(f,w?null:g),p(c,h)):S[i].push(f))}function h(t,e,i,n,o){return y=0,e=e||"j",s(t)?l("c"==e?_:x,t,e,this.i++,i,n,o):(m.splice(this.i++,0,t),1==m.length&&a()),this}function c(){var t=u;return t.loader={load:h,i:0},t}var f,u,d=e.documentElement,p=t.setTimeout,g=e.getElementsByTagName("script")[0],v={}.toString,m=[],y=0,b="MozAppearance"in d.style,w=b&&!!e.createRange().compareNode,$=w?d:g.parentNode,x=(d=t.opera&&"[object Opera]"==v.call(t.opera),d=!!e.attachEvent&&!d,b?"object":d?"script":"img"),_=d?"script":x,k=Array.isArray||function(t){return"[object Array]"==v.call(t)},O=[],S={},E={timeout:function(t,e){return e.length&&(t.timeout=e[0]),t}};(u=function(t){function e(t,e,s,o,r){var a=function(t){t=t.split("!");var e,i,n,s=O.length,o=t.pop(),r=t.length;for(o={url:o,origUrl:o,prefixes:t},i=0;i<r;i++)n=t[i].split("="),(e=E[n.shift()])&&(o=e(o,n));for(i=0;i<s;i++)o=O[i](o);return o}(t),l=a.autoCallback;a.url.split(".").pop().split("?").shift(),a.bypass||(e&&(e=n(e)?e:e[t]||e[o]||e[t.split("/").pop().split("?")[0]]),a.instead?a.instead(t,e,s,o,r):(S[a.url]?a.noexec=!0:S[a.url]=1,s.load(a.url,a.forceCSS||!a.forceJS&&"css"==a.url.split(".").pop().split("?").shift()?"c":i,a.noexec,a.attrs,a.timeout),(n(e)||n(l))&&s.load(function(){c(),e&&e(a.origUrl,r,o),l&&l(a.origUrl,r,o),S[a.url]=2})))}function r(t,i){function r(t,o){if(t){if(s(t))o||(f=function(){var t=[].slice.call(arguments);u.apply(this,t),d()}),e(t,f,i,0,h);else if(Object(t)===t)for(l in a=function(){var e,i=0;for(e in t)t.hasOwnProperty(e)&&i++;return i}(),t)t.hasOwnProperty(l)&&(!o&&!--a&&(n(f)?f=function(){var t=[].slice.call(arguments);u.apply(this,t),d()}:f[l]=function(t){return function(){var e=[].slice.call(arguments);t&&t.apply(this,e),d()}}(u[l])),e(t[l],f,i,l,h))}else!o&&d()}var a,l,h=!!t.test,c=t.load||t.both,f=t.callback||o,u=f,d=t.complete||o;r(h?t.yep:t.nope,!!c),c&&r(c)}var a,l,h=this.yepnope.loader;if(s(t))e(t,0,h,0);else if(k(t))for(a=0;a<t.length;a++)s(l=t[a])?e(l,0,h,0):k(l)?u(l):Object(l)===l&&r(l,h);else Object(t)===t&&r(t,h)}).addPrefix=function(t,e){E[t]=e},u.addFilter=function(t){O.push(t)},u.errorTimeout=1e4,null==e.readyState&&e.addEventListener&&(e.readyState="loading",e.addEventListener("DOMContentLoaded",f=function(){e.removeEventListener("DOMContentLoaded",f,0),e.readyState="complete"},0)),t.yepnope=c(),t.yepnope.executeStack=a,t.yepnope.injectJs=function(t,i,n,s,l,h){var c,f,d=e.createElement("script");s=s||u.errorTimeout;for(f in d.src=t,n)d.setAttribute(f,n[f]);i=h?a:i||o,d.onreadystatechange=d.onload=function(){!c&&r(d.readyState)&&(c=1,i(),d.onload=d.onreadystatechange=null)},p(function(){c||(c=1,i(1))},s),l?d.onload():g.parentNode.insertBefore(d,g)},t.yepnope.injectCss=function(t,i,n,s,r,l){var h;s=e.createElement("link"),i=l?a:i||o;for(h in s.href=t,s.rel="stylesheet",s.type="text/css",n)s.setAttribute(h,n[h]);r||(g.parentNode.insertBefore(s,g),p(i,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};;
var CookieNames = {
    EventListScrollBarPosition: "EventListScrollBarPosition",
    OpenMatchListScrollBarPosition: "OpenMatchListScrollBarPosition",
    leagueListScrollBarPosition: "LeagueListScrollBarPosition",
    BookingListScrollBarPosition: "BookingListScrollBarPosition",
}

var Cookie = {
    Create: function (name, value, minutes) {
        if (minutes) {

        } else {
            minutes = 15;
        }

        saveToCookie(name, value, minutes);
    },
    CreateToastr: function (value) {
        saveToCookie("ToastrMsg", value, 1);
    },

    Read: function (name) {
        return getCookieByName(name);
    },

    Erase: function (name) {
        removeCookieById(name);
    },
    Clear: function (name) {
        removeCookieById(name);
    },
};

//clear link cookies
$(document).on("click", ".fn-ace-parent-li a", function () {
    Cookie.Erase(CookieNames.EventListScrollBarPosition);
    Cookie.Erase(CookieNames.OpenMatchListScrollBarPosition);
    Cookie.Erase(CookieNames.LeagueListScrollBarPosition);
    Cookie.Erase(CookieNames.BookingListScrollBarPosition);
});

function getAllCookies() {
    var cookies = {};
    if (document.cookie && document.cookie !== '') {
        var split = document.cookie.split(';');
        for (var i = 0; i < split.length; i++) {
            var nameValue = split[i].split('=');

            var name = nameValue[0].trim();
            cookies[name] = decodeURIComponent(nameValue[1]);
        }
    }
    return cookies;
};
// ===== jquery.scrollTo
//  Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com | Licensed under MIT | @author Ariel Flesler | @version 2.1.2
;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});

// ===== jquery.localScroll
// Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com | Licensed under MIT | @author Ariel Flesler | @version 1.4.0
;(function(a){if(typeof define==='function'&&define.amd){define(['jquery'],a)}else{a(jQuery)}}(function($){var g=location.href.replace(/#.*/,'');var h=$.localScroll=function(a){$('body').localScroll(a)};h.defaults={duration:1000,axis:'y',event:'click',stop:true,target:window};$.fn.localScroll=function(a){a=$.extend({},h.defaults,a);if(a.hash&&location.hash){if(a.target)window.scrollTo(0,0);scroll(0,location,a)}return a.lazy?this.on(a.event,'a,area',function(e){if(filter.call(this)){scroll(e,this,a)}}):this.find('a,area').filter(filter).bind(a.event,function(e){scroll(e,this,a)}).end().end();function filter(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')===g&&(!a.filter||$(this).is(a.filter))}};h.hash=function(){};function scroll(e,a,b){var c=a.hash.slice(1),elem=document.getElementById(c)||document.getElementsByName(c)[0];if(!elem)return;if(e)e.preventDefault();var d=$(b.target);if(b.lock&&d.is(':animated')||b.onBefore&&b.onBefore(e,elem,d)===false)return;if(b.stop){d.stop(true)}if(b.hash){var f=elem.id===c?'id':'name',$a=$('<a> </a>').attr(f,c).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});elem[f]='';$('body').prepend($a);location.hash=a.hash;$a.remove();elem[f]=c}d.scrollTo(elem,b).trigger('notify.serialScroll',[elem])}return h}));;
!function(t){"use strict";t.fn.counterUp=function(e){var n=t.extend({time:400,delay:10},e);return this.each(function(){var e=t(this),r=n;e.waypoint(function(){var t=[],n=r.time/r.delay,i=e.text(),o=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");/^[0-9]+$/.test(i);for(var l=/^[0-9]+\.[0-9]+$/.test(i),s=l?(i.split(".")[1]||[]).length:0,u=n;u>=1;u--){var c=parseInt(i/n*u);if(l&&(c=parseFloat(i/n*u).toFixed(s)),o)for(;/(\d+)(\d{3})/.test(c.toString());)c=c.toString().replace(/(\d+)(\d{3})/,"$1,$2");t.unshift(c)}e.data("counterup-nums",t),e.text("0");e.data("counterup-func",function(){e.text(e.data("counterup-nums").shift()),e.data("counterup-nums").length?setTimeout(e.data("counterup-func"),r.delay):(e.data("counterup-nums"),e.data("counterup-nums",null),e.data("counterup-func",null))}),setTimeout(e.data("counterup-func"),r.delay)},{offset:"100%",triggerOnce:!0})})}}(jQuery),function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1},e=[].slice;!function(t,e){"function"==typeof define&&define.amd?define("waypoints",["jquery"],function(n){return e(n,t)}):e(t.jQuery,t)}(this,function(n,r){var i,o,l,s,u,c,a,f,h,d,p,y,v,w,g,m;return i=n(r),f=t.call(r,"ontouchstart")>=0,s={horizontal:{},vertical:{}},u=1,a={},c="waypoints-context-id",p="resize.waypoints",y="scroll.waypoints",v=1,w="waypoints-waypoint-ids",g="waypoint",m="waypoints",o=function(){function t(t){var e=this;this.$element=t,this.element=t[0],this.didResize=!1,this.didScroll=!1,this.id="context"+u++,this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()},this.waypoints={horizontal:{},vertical:{}},t.data(c,this.id),a[this.id]=this,t.bind(y,function(){var t;if(!e.didScroll&&!f)return e.didScroll=!0,t=function(){return e.doScroll(),e.didScroll=!1},r.setTimeout(t,n[m].settings.scrollThrottle)}),t.bind(p,function(){var t;if(!e.didResize)return e.didResize=!0,t=function(){return n[m]("refresh"),e.didResize=!1},r.setTimeout(t,n[m].settings.resizeThrottle)})}return t.prototype.doScroll=function(){var t,e=this;return t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}},!f||t.vertical.oldScroll&&t.vertical.newScroll||n[m]("refresh"),n.each(t,function(t,r){var i,o,l;return l=[],o=r.newScroll>r.oldScroll,i=o?r.forward:r.backward,n.each(e.waypoints[t],function(t,e){var n,i;return r.oldScroll<(n=e.offset)&&n<=r.newScroll?l.push(e):r.newScroll<(i=e.offset)&&i<=r.oldScroll?l.push(e):void 0}),l.sort(function(t,e){return t.offset-e.offset}),o||l.reverse(),n.each(l,function(t,e){if(e.options.continuous||t===l.length-1)return e.trigger([i])})}),this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}},t.prototype.refresh=function(){var t,e,r,i=this;return r=n.isWindow(this.element),e=this.$element.offset(),this.doScroll(),t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}},n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,u;if(i=r.options.offset,l=r.offset,o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp],n.isFunction(i)?i=i.apply(r.element):"string"==typeof i&&(i=parseFloat(i),r.options.offset.indexOf("%")>-1&&(i=Math.ceil(e.contextDimension*i/100))),r.offset=o-e.contextOffset+e.contextScroll-i,(!r.options.onlyOnScroll||null==l)&&r.enabled)return null!==l&&l<(s=e.oldScroll)&&s<=r.offset?r.trigger([e.backward]):null!==l&&l>(u=e.oldScroll)&&u>=r.offset?r.trigger([e.forward]):null===l&&e.oldScroll>=r.offset?r.trigger([e.forward]):void 0})})},t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical))return this.$element.unbind([p,y].join(" ")),delete a[this.id]},t}(),l=function(){function t(t,e,r){var i,o;"bottom-in-view"===(r=n.extend({},n.fn[g].defaults,r)).offset&&(r.offset=function(){var t;return t=n[m]("viewportHeight"),n.isWindow(e.element)||(t=e.$element.height()),t-n(this).outerHeight()}),this.$element=t,this.element=t[0],this.axis=r.horizontal?"horizontal":"vertical",this.callback=r.handler,this.context=e,this.enabled=r.enabled,this.id="waypoints"+v++,this.offset=null,this.options=r,e.waypoints[this.axis][this.id]=this,s[this.axis][this.id]=this,(i=null!=(o=t.data(w))?o:[]).push(this.id),t.data(w,i)}return t.prototype.trigger=function(t){if(this.enabled)return null!=this.callback&&this.callback.apply(this.element,t),this.options.triggerOnce?this.destroy():void 0},t.prototype.disable=function(){return this.enabled=!1},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0},t.prototype.destroy=function(){return delete s[this.axis][this.id],delete this.context.waypoints[this.axis][this.id],this.context.checkEmpty()},t.getWaypointsByElement=function(t){var e,r;return(r=n(t).data(w))?(e=n.extend({},s.horizontal,s.vertical),n.map(r,function(t){return e[t]})):[]},t}(),d={init:function(t,e){return null==e&&(e={}),null==e.handler&&(e.handler=t),this.each(function(){var t,r,i,s;return t=n(this),i=null!=(s=e.context)?s:n.fn[g].defaults.context,n.isWindow(i)||(i=t.closest(i)),i=n(i),(r=a[i.data(c)])||(r=new o(i)),new l(t,r,e)}),n[m]("refresh"),this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0)return t.push(n[e-1])})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e<n.length-1)return t.push(n[e+1])})},_traverse:function(t,e,i){var o,l;return null==t&&(t="vertical"),null==e&&(e=r),l=h.aggregate(e),o=[],this.each(function(){var e;return e=n.inArray(this,l[t]),i(o,e,l[t])}),this.pushStack(o)},_invoke:function(t,e){return t.each(function(){var t;return t=l.getWaypointsByElement(this),n.each(t,function(t,n){return n[e](),!0})}),this}},n.fn[g]=function(){var t,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],d[r]?d[r].apply(this,t):n.isFunction(r)?d.init.apply(this,arguments):n.isPlainObject(r)?d.init.apply(this,[null,r]):r?n.error("The "+r+" method does not exist in jQuery Waypoints."):n.error("jQuery Waypoints needs a callback function or handler option.")},n.fn[g].defaults={context:r,continuous:!0,enabled:!0,horizontal:!1,offset:0,triggerOnce:!1},h={refresh:function(){return n.each(a,function(t,e){return e.refresh()})},viewportHeight:function(){var t;return null!=(t=r.innerHeight)?t:i.height()},aggregate:function(t){var e,r,i;return e=s,t&&(e=null!=(i=a[n(t).data(c)])?i.waypoints:void 0),e?(r={horizontal:[],vertical:[]},n.each(r,function(t,i){return n.each(e[t],function(t,e){return i.push(e)}),i.sort(function(t,e){return t.offset-e.offset}),r[t]=n.map(i,function(t){return t.element}),r[t]=n.unique(r[t])}),r):[]},above:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset<=t.oldScroll.y})},below:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset>t.oldScroll.y})},left:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;return e=n.extend({},s.vertical,s.horizontal),n.each(e,function(e,n){return n[t](),!0})},_filter:function(t,e,r){var i,o;return(i=a[n(t).data(c)])?(o=[],n.each(i.waypoints[e],function(t,e){if(r(i,e))return o.push(e)}),o.sort(function(t,e){return t.offset-e.offset}),n.map(o,function(t){return t.element})):[]}},n[m]=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],h[n]?h[n].apply(null,t):h.aggregate.call(null,n)},n[m].settings={resizeThrottle:100,scrollThrottle:30},i.load(function(){return n[m]("refresh")})})}.call(this);;
(function(){var t,e,n,i,o,r=function(t,e){return function(){return t.apply(e,arguments)}},s=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};e=function(){function t(){}return t.prototype.extend=function(t,e){var n,i;for(n in e)i=e[n],null==t[n]&&(t[n]=i);return t},t.prototype.isMobile=function(t){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)},t.prototype.createEvent=function(t,e,n,i){var o;return null==e&&(e=!1),null==n&&(n=!1),null==i&&(i=null),null!=document.createEvent?(o=document.createEvent("CustomEvent")).initCustomEvent(t,e,n,i):null!=document.createEventObject?(o=document.createEventObject()).eventType=t:o.eventName=t,o},t.prototype.emitEvent=function(t,e){return null!=t.dispatchEvent?t.dispatchEvent(e):e in(null!=t)?t[e]():"on"+e in(null!=t)?t["on"+e]():void 0},t.prototype.addEvent=function(t,e,n){return null!=t.addEventListener?t.addEventListener(e,n,!1):null!=t.attachEvent?t.attachEvent("on"+e,n):t[e]=n},t.prototype.removeEvent=function(t,e,n){return null!=t.removeEventListener?t.removeEventListener(e,n,!1):null!=t.detachEvent?t.detachEvent("on"+e,n):delete t[e]},t.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},t}(),n=this.WeakMap||this.MozWeakMap||(n=function(){function t(){this.keys=[],this.values=[]}return t.prototype.get=function(t){var e,n,i,o;for(e=n=0,i=(o=this.keys).length;i>n;e=++n)if(o[e]===t)return this.values[e]},t.prototype.set=function(t,e){var n,i,o,r;for(n=i=0,o=(r=this.keys).length;o>i;n=++i)if(r[n]===t)return void(this.values[n]=e);return this.keys.push(t),this.values.push(e)},t}()),t=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(t=function(){function t(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return t.notSupported=!0,t.prototype.observe=function(){},t}()),i=this.getComputedStyle||function(t,e){return this.getPropertyValue=function(e){var n;return"float"===e&&(e="styleFloat"),o.test(e)&&e.replace(o,function(t,e){return e.toUpperCase()}),(null!=(n=t.currentStyle)?n[e]:void 0)||null},this},o=/(\-([a-z]){1})/g,this.WOW=function(){function o(t){null==t&&(t={}),this.scrollCallback=r(this.scrollCallback,this),this.scrollHandler=r(this.scrollHandler,this),this.resetAnimation=r(this.resetAnimation,this),this.start=r(this.start,this),this.scrolled=!0,this.config=this.util().extend(t,this.defaults),null!=t.scrollContainer&&(this.config.scrollContainer=document.querySelector(t.scrollContainer)),this.animationNameCache=new n,this.wowEvent=this.util().createEvent(this.config.boxClass)}return o.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},o.prototype.init=function(){var t;return this.element=window.document.documentElement,"interactive"===(t=document.readyState)||"complete"===t?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},o.prototype.start=function(){var e,n,i,o;if(this.stopped=!1,this.boxes=function(){var t,n,i,o;for(o=[],t=0,n=(i=this.element.querySelectorAll("."+this.config.boxClass)).length;n>t;t++)e=i[t],o.push(e);return o}.call(this),this.all=function(){var t,n,i,o;for(o=[],t=0,n=(i=this.boxes).length;n>t;t++)e=i[t],o.push(e);return o}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(n=0,i=(o=this.boxes).length;i>n;n++)e=o[n],this.applyStyle(e,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new t(function(t){return function(e){var n,i,o,r,s;for(s=[],n=0,i=e.length;i>n;n++)r=e[n],s.push(function(){var t,e,n,i;for(i=[],t=0,e=(n=r.addedNodes||[]).length;e>t;t++)o=n[t],i.push(this.doSync(o));return i}.call(t));return s}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},o.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},o.prototype.sync=function(e){return t.notSupported?this.doSync(this.element):void 0},o.prototype.doSync=function(t){var e,n,i,o,r;if(null==t&&(t=this.element),1===t.nodeType){for(r=[],n=0,i=(o=(t=t.parentNode||t).querySelectorAll("."+this.config.boxClass)).length;i>n;n++)e=o[n],s.call(this.all,e)<0?(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),r.push(this.scrolled=!0)):r.push(void 0);return r}},o.prototype.show=function(t){return this.applyStyle(t),t.className=t.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(t),this.util().emitEvent(t,this.wowEvent),this.util().addEvent(t,"animationend",this.resetAnimation),this.util().addEvent(t,"oanimationend",this.resetAnimation),this.util().addEvent(t,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(t,"MSAnimationEnd",this.resetAnimation),t},o.prototype.applyStyle=function(t,e){var n,i,o,r;return i=t.getAttribute("data-wow-duration"),n=t.getAttribute("data-wow-delay"),o=t.getAttribute("data-wow-iteration"),this.animate((r=this,function(){return r.customStyle(t,e,i,n,o)}))},o.prototype.animate="requestAnimationFrame"in window?function(t){return window.requestAnimationFrame(t)}:function(t){return t()},o.prototype.resetStyle=function(){var t,e,n,i,o;for(o=[],e=0,n=(i=this.boxes).length;n>e;e++)t=i[e],o.push(t.style.visibility="visible");return o},o.prototype.resetAnimation=function(t){var e;return t.type.toLowerCase().indexOf("animationend")>=0?(e=t.target||t.srcElement).className=e.className.replace(this.config.animateClass,"").trim():void 0},o.prototype.customStyle=function(t,e,n,i,o){return e&&this.cacheAnimationName(t),t.style.visibility=e?"hidden":"visible",n&&this.vendorSet(t.style,{animationDuration:n}),i&&this.vendorSet(t.style,{animationDelay:i}),o&&this.vendorSet(t.style,{animationIterationCount:o}),this.vendorSet(t.style,{animationName:e?"none":this.cachedAnimationName(t)}),t},o.prototype.vendors=["moz","webkit"],o.prototype.vendorSet=function(t,e){var n,i,o,r;for(n in i=[],e)o=e[n],t[""+n]=o,i.push(function(){var e,i,s,l;for(l=[],e=0,i=(s=this.vendors).length;i>e;e++)r=s[e],l.push(t[""+r+n.charAt(0).toUpperCase()+n.substr(1)]=o);return l}.call(this));return i},o.prototype.vendorCSS=function(t,e){var n,o,r,s,l,a;for(s=(l=i(t)).getPropertyCSSValue(e),n=0,o=(r=this.vendors).length;o>n;n++)a=r[n],s=s||l.getPropertyCSSValue("-"+a+"-"+e);return s},o.prototype.animationName=function(t){var e;try{e=this.vendorCSS(t,"animation-name").cssText}catch(n){e=i(t).getPropertyValue("animation-name")}return"none"===e?"":e},o.prototype.cacheAnimationName=function(t){return this.animationNameCache.set(t,this.animationName(t))},o.prototype.cachedAnimationName=function(t){return this.animationNameCache.get(t)},o.prototype.scrollHandler=function(){return this.scrolled=!0},o.prototype.scrollCallback=function(){var t;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var e,n,i,o;for(o=[],e=0,n=(i=this.boxes).length;n>e;e++)(t=i[e])&&(this.isVisible(t)?this.show(t):o.push(t));return o}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},o.prototype.offsetTop=function(t){for(var e;void 0===t.offsetTop;)t=t.parentNode;for(e=t.offsetTop;t=t.offsetParent;)e+=t.offsetTop;return e},o.prototype.isVisible=function(t){var e,n,i,o,r;return n=t.getAttribute("data-wow-offset")||this.config.offset,o=(r=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset)+Math.min(this.element.clientHeight,this.util().innerHeight())-n,e=(i=this.offsetTop(t))+t.clientHeight,o>=i&&e>=r},o.prototype.util=function(){return null!=this._util?this._util:this._util=new e},o.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},o}()}).call(this);;
// On document ready setup toggle, checkboxes
(function ($, window, document, undefined) {
	var _commonHelpers = [
		// switch
		function (ctx) {
			ctx.find('input[type=checkbox].toggler:not(.fn-grid-checkbox)').each(function (i, el) {
				var $parent = $(el).parent();

				if (!$parent.hasClass('rowSwitch')) {
					$parent.addClass('rowSwitch');
					var isDisabled = $(this).attr('disabled');

					$(el)
						.wrap('<label class="switch"></label>')
						.after(
							`<span class="switch-toggle ${isDisabled ? 'disabled-switch-toggle' : ''}"></span>`,
						) //data-on="On" data-off="Off"
						.parent()
						.on('click', function (e) {
							if ($(el).is('[readonly]')) {
								e.preventDefault();
							}
						});
				}
			});
		},

		// checkbox
		function (ctx) {
			ctx
				.find('input[type=checkbox]:not(.toggler):not(.fn-grid-checkbox):not(.fn-hide)')
				.each(function (i, el) {
					var $parent = $(el).parent();
					if (!$(el).hasClass('ant-checkbox-input')) {
						if (!$parent.hasClass('rowCheckbox')) {
							$parent.addClass('rowCheckbox');

							var isDisabled = $(this).attr('disabled');

							var wrap = $(el).after(
								`<span class="check-box-helper ${isDisabled ? 'disabled-checkbox' : ''}"></span>`,
							);
						}
					}
				});
		},

		// grid toogler-checkboxes
		function (ctx) {
			ctx.find('input[type=checkbox].fn-grid-checkbox').each(function (i, el) {
				var $parent = $(el).parent();
				if (!$(el).hasClass('ant-checkbox-input')) {
					//added label

					if (
						!$parent.hasClass('fn-grid-checkbox-container') &&
						!$parent.hasClass('rowCheckbox') &&
						!$parent.hasClass('switch')
					) {
						$parent.addClass('fn-grid-checkbox-container');

						var isDisabled = $(this).attr('disabled');
						$(el)
							.wrap('<label class="switch rowCheckbox"></label>')
							.after(
								`<span class="switch-toggle k-mobile-display ${
									isDisabled ? 'disabled-switch-toggle' : ''
								}"></span>`,
							) //data-on="On" data-off="Off"
							.after(
								'<span class="check-box-helper fn-grid-checkbox-span double-check-box-click k-mobile-hide"></span>',
							);
					}
				}
			});
		},

		// radiobutton
		function (ctx) {
			ctx.find('input[type=radio]').each(function (i, el) {
				if (!$(el).hasClass('ant-radio-input')) {
					var $parent = $(el).parent();
					var $parentParent = $parent.parent();

					if (!$parentParent.hasClass('radioData')) {
						$parentParent.addClass('radioData');
					}

					if (!$parent.hasClass('radio-parent')) {
						var wrap = $(el)
							.wrap('<label class="radio-parent"></label>')
							.after('<label class="radio-icon"></label>');
					}
				}
			});
		},

		//tooltip
		function (ctx) {
			ctx.find('[data-toggle="tooltip"]').each(function (i, el) {
				$(this).tooltip();
			});
		},
	];

	window.applyCommonHelpers = function (context) {
		$.each(_commonHelpers, function (i, val) {
			val.call(this, $(context));
		});
	};

	$(document).ready(function () {
		//kendo setup issue, myprofile - > radiobuttons
		setTimeout(function () {
			applyCommonHelpers($('body'));
		}, 100);
	});
})(jQuery, this, document);

$(function () {
	// Ajax activity indicator bound to ajax start/stop document events
	$(document)
		.ajaxSend(function (e, xhr, settings) {
			var url = isNullOrEmpty(settings) ? '' : settings.url;
			if (isNullOrEmpty(settings)) {
				url = 'dashboardcallfake';
			}
			var preventAddLoading = url.toLowerCase().indexOf('getmemberdashboardrealtimedata') >= 0;
			if (!$('body').hasClass('modal-open')) {
				
			}

			$('#ajax-loader').addClass('test-loading');
		})
		.ajaxStop(function () {
			window.setTimeout(function () {
				$('#ajax-loader').removeClass('test-loading');
			}, 500);
		});

	$(document).on('click', '.input-time', function () {
		const timepicker = $(this).data('kendoTimePicker');
		if (timepicker) {
			timepicker.open();
		}
	});
	$(document).on('click', '.input-date', function () {
		const datepicker = $(this).data('kendoDatePicker');
		if (datepicker) {
			datepicker.open();
		}
	});
});

$(document).on('click', '.check-box-helper', function () {
	if (!$(this).hasClass('fn-grid-checkbox-span')) {
		if (!$(this).hasClass('double-check-box-click')) {
			$(this).closest('.rowCheckbox').find('input[type=checkbox]').click();
		}
		if ($(this).hasClass('double-check-box-click')) {
			//wee click on switch and checkbox need to call click 2 times
			$(this).closest('.rowCheckbox').find('input[type=checkbox]').click();
			$(this).closest('.rowCheckbox').find('input[type=checkbox]').click();
		}
	}
});

//$(document).on("click", ".switch-toggle", function () {
//    $(this).closest(".switch").find("input[type=checkbox]").click();
//});

$(document).on('click', '.radio-icon', function () {
	$(this).closest('.radio-parent').find('input[type=radio]').click();
});

function orgChanged(id) {
	saveToCookie('PreferenceOrgId', id, 30000);
	$(`.fn-org-list-item-${id} .fn-day-checkmark`).addClass('hide');
	$(`.fn-org-list-item-${id} .fn-spinner-org`).removeClass('hide');
	$(`[data-id="myaccountmyclubsitem${id}"]`)
		.find('.right-icon .fa-circle-notch')
		.css('opacity', '1');
	$(`[data-id="myaccountmyclubsitem${id}"]`).find('.fa-js-spinner').css('opacity', '1');
	removeCookieById('InternalCalendarDate');
	removeCookieById('EventsCalendarViewType');
	removeCookieById('LessonCalendarViewType');
	Navigation.Clear();
	//  var path = getAbsolutePath();
	window.location.href = '/Online/Portal/Index/' + id + '?clearNav=true'; //path + val;
}
function getAbsolutePath() {
	var loc = window.location;
	var pathNameR = loc.pathname.replace('#', '');
	var pathName = pathNameR.substring(0, pathNameR.lastIndexOf('/') + 1);
	var hrefReplaced = loc.href;
	hrefReplaced = hrefReplaced.replace('#', '');
	return hrefReplaced.substring(
		0,
		hrefReplaced.length - ((pathNameR + loc.search + loc.hash).length - pathName.length),
	);
}
$(function () {
	$('.my-profile-nav')
		.mouseenter(function () {
			$('.my-profile-nav-container').addClass('show');
			$(this).addClass('show');
		})
		.mouseleave(function () {
			$('.my-profile-nav-container').removeClass('show');
			$(this).removeClass('show');
		});
});

$(document).on('click', '.my-profile-nav .dropdown-toggle', function (e) {
	$('.my-profile-nav-container').addClass('show');
	$('.my-profile-nav').addClass('show');
});

$(document).on('click', '.link-k-event', function () {
	var href = $(this).data('href');
	if (href != null) {
		window.location = href;
	}
});

$(document).on('hidden.bs.modal', '.modal', function () {
	$(this).remove();

	if (!$('#member-portal-body').hasClass('modal-open')) {
		$('html').css('overflow', 'overlay');
	}
});

function closeLeftNav() {
	//$(".footer-block").removeClass("hide");
	var $leftNav = $('.left-filter-nav');
	$leftNav.removeClass('is-full-width');
	if ($('#layout-body .modal-backdrop')[0]) {
		$('#layout-body .modal-backdrop').remove();
	}

	$('body').removeClass('modal-open');
	$('#layout-body').css('position', 'initial');
	//leftNav.style.width = "0";
	//leftNav.style.marginLeft = "-30px";
	//document.getElementById("main").style.marginLeft = "0";
	//document.body.style.backgroundColor = "white";
}

function openLeftNav() {
	//$(".footer-block").addClass("hide");
	$('body').toggleClass('modal-open');
	$('#layout-body').append("<div class='modal-backdrop fade show h-100'></div>");
	$('.content_details').toggleClass('is-full-width');
	$('#layout-body').css('position', 'absolute');
}

$(document).on('click', '.modal-backdrop', function () {
	if ($('#layout-body .modal-backdrop')[0]) {
		closeLeftNav();
	}
});

function appendLeftNavToBody(addClear) {
	var htmlToAdd = `<div class="content_details left-filter-nav filter-nav">`;

	htmlToAdd += `<div class="details" id="body-filter-container">`;
	htmlToAdd +=
		`<span class="closebtn fixed-filter-container" style="text-align: inherit;" onclick="closeLeftNav()"><label class="fz18">Filter(s)</label><span class="filter-right-buttons ${
			isMobileLayout ? 'mobile-filter-nav' : ''
		}">` +
		(addClear
			? '<button class="btn btn-danger fn-btn-clear-filter hide" onclick="clearFilter()">Clear</button>'
			: '') +
		`<button class="btn btn-org btn-filter-header" onclick="closeLeftNav()">Filter</button></span></span>`;

	htmlToAdd += `</div> </div>`;

	$('body').append(htmlToAdd);

	var windowSize = $(window).width();

	var iFramePage = false;
	if ($('#iframeMainContainer')[0]) {
		//always true
		iFramePage = true;
	}

	if (windowSize <= 991 || iFramePage) {
		$(function () {
			$(`#filter-navigation-inner-container`).appendTo('#body-filter-container');
			$('#body-filter-container').addClass('data-mobile');

			$(`.fn-canvas-container`).appendTo('#body-filter-container');
		});
	}
}

function appendLeftNavToBodyWithId(elId, addClear) {
	var htmlToAdd = `<div class="content_details left-filter-nav filter-nav" id='${elId}-wrapper'>`;

	htmlToAdd += `<div class="details" id="body-filter-container-${elId}">`;
	htmlToAdd +=
		`<span class="closebtn fixed-filter-container" style="text-align: inherit;" onclick="closeLeftNavWithId('${elId}')"><label class="fz18">Filter(s)</label><span class="filter-right-buttons ${
			isMobileLayout ? 'mobile-filter-nav' : ''
		}">` +
		(addClear
			? '<button class="btn btn-danger fn-btn-clear-filter hide" onclick="clearFilter()">Clear</button>'
			: '') +
		`<button class="btn btn-org btn-filter-header" onclick="closeLeftNavWithId('${elId}')">Filter</button></span></span>`;

	htmlToAdd += `</div> </div>`;

	$('body').append(htmlToAdd);

	var windowSize = $(window).width();

	if (windowSize <= 991) {
		$(function () {
			$(`.${elId}-container`).appendTo(`#body-filter-container-${elId}`);
			$('#body-filter-container').addClass('data-mobile');
		});
	}
}

function openLeftNavWithId(elId) {
	$('body').addClass('modal-open');
	$('#layout-body').append("<div class='modal-backdrop fade show h-100'></div>");
	$(`#${elId}-wrapper`).toggleClass('is-full-width');
	$('#layout-body').css('position', 'absolute');
}

function closeLeftNavWithId(elId) {
	//$(".footer-block").removeClass("hide");
	var $leftNav = $(`#${elId}-wrapper`);
	$leftNav.removeClass('is-full-width');
	if ($('#layout-body .modal-backdrop')[0]) {
		$('#layout-body .modal-backdrop').remove();
	}

	$('body').removeClass('modal-open');
	$('#layout-body').css('position', 'initial');
}

function scrollPage(positionToScroll) {
	if (positionToScroll == null) {
		positionToScroll = 0;
	}

	$('html, body').animate(
		{
			scrollTop: positionToScroll,
		},
		10,
	);
}

function scrollElement(id, positionToScroll) {
	if (isNullOrEmpty(id) || isNullOrEmpty(positionToScroll) || positionToScroll == 0) {
		return;
	}

	$(`#${id}`).animate(
		{
			scrollTop: positionToScroll,
		},
		10,
	);
}
;

var preventChange = false;
var priceSlider = $.widget("ui.priceSlider", $.ui.mouse, {
	version: "1.11.4",
	widgetEventPrefix: "slide",

	options: {
		animate: false,
		distance: 0,
		max: 100,
		min: 0,
		orientation: "horizontal",
		range: false,
		step: 1,
		value: 0,
		values: null,
		prevMinValue: null,
		prevMaxValue: null,

		// callbacks
		change: null,
		slide: null,
		start: null,
		stop: null
	},

	// number of pages in a slider
	// (how many times can you page up/down to go through the whole range)
	numPages: 5,

	_create: function () {
		this._keySliding = false;
		this._mouseSliding = false;
		this._animateOff = true;
		this._handleIndex = null;
		this._detectOrientation();
		this._mouseInit();
		this._calculateNewMax();
		this.options.prevMinValue = this.values(0);
		this.options.prevMaxValue = this.values(1);

        this.element
			.addClass("ui-slider" +
				" ui-slider-" + this.orientation +
				" ui-widget" +
				" ui-widget-content" +
				" ui-corner-all");

		this._refresh();
		this._setOption("disabled", this.options.disabled);

		this._animateOff = false;
	},

	_refresh: function () {
		this._createRange();
		this._createHandles();
		this._setupEvents();
		this._refreshValue();
	},

	_createHandles: function () {
		var i, handleCount,
			options = this.options,
			existingHandles = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
			handle = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",
			handles = [];

		handleCount = (options.values && options.values.length) || 1;

		if (existingHandles.length > handleCount) {
			existingHandles.slice(handleCount).remove();
			existingHandles = existingHandles.slice(0, handleCount);
		}

		for (i = existingHandles.length; i < handleCount; i++) {
			handles.push(handle);
		}

		this.handles = existingHandles.add($(handles.join("")).appendTo(this.element));

		this.handle = this.handles.eq(0);

		this.handles.each(function (i) {
			$(this).data("ui-slider-handle-index", i);
		});
	},

	_createRange: function () {
		var options = this.options,
			classes = "";

		if (options.range) {
			if (options.range === true) {
				if (!options.values) {
					options.values = [this._valueMin(), this._valueMin()];
				} else if (options.values.length && options.values.length !== 2) {
					options.values = [options.values[0], options.values[0]];
				} else if ($.isArray(options.values)) {
					options.values = options.values.slice(0);
				}
			}

			if (!this.range || !this.range.length) {
				this.range = $("<div></div>")
					.appendTo(this.element);

				classes = "ui-slider-range" +
					// note: this isn't the most fittingly semantic framework class for this element,
					// but worked best visually with a variety of themes
					" ui-widget-header ui-corner-all";
			} else {
				this.range.removeClass("ui-slider-range-min ui-slider-range-max")
					// Handle range switching from true to min/max
					.css({
						"left": "",
						"bottom": ""
					});
			}

			this.range.addClass(classes +
				((options.range === "min" || options.range === "max") ? " ui-slider-range-" + options.range : ""));
		} else {
			if (this.range) {
				this.range.remove();
			}
			this.range = null;
		}
	},

	_setupEvents: function () {
		this._off(this.handles);
		this._on(this.handles, this._handleEvents);
		this._hoverable(this.handles);
		this._focusable(this.handles);
	},

	_destroy: function () {
		this.handles.remove();
		if (this.range) {
			this.range.remove();
		}

		this.element
			.removeClass("ui-slider" +
				" ui-slider-horizontal" +
				" ui-slider-vertical" +
				" ui-widget" +
				" ui-widget-content" +
				" ui-corner-all");

		this._mouseDestroy();
	},

	_mouseCapture: function (event) {
		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
			that = this,
			o = this.options;

		if (o.disabled) {
			return false;
		}

		this.elementSize = {
			width: this.element.outerWidth(),
			height: this.element.outerHeight()
		};
		this.elementOffset = this.element.offset();

		position = { x: event.pageX, y: event.pageY };
		normValue = this._normValueFromMouse(position);
		distance = this._valueMax() - this._valueMin() + 1;
		this.handles.each(function (i) {
			var thisDistance = Math.abs(normValue - that.values(i));
			if ((distance > thisDistance) ||
				(distance === thisDistance &&
					(i === that._lastChangedValue || that.values(i) === o.min))) {
				distance = thisDistance;
				closestHandle = $(this);
				index = i;
			}
		});

		allowed = this._start(event, index);
		if (allowed === false) {
			return false;
		}
		this._mouseSliding = true;

		this._handleIndex = index;

		closestHandle
			.addClass("ui-state-active")
			.focus();

		offset = closestHandle.offset();
		mouseOverHandle = !$(event.target).parents().addBack().is(".ui-slider-handle");
		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
			left: event.pageX - offset.left - (closestHandle.width() / 2),
			top: event.pageY - offset.top -
				(closestHandle.height() / 2) -
				(parseInt(closestHandle.css("borderTopWidth"), 10) || 0) -
				(parseInt(closestHandle.css("borderBottomWidth"), 10) || 0) +
				(parseInt(closestHandle.css("marginTop"), 10) || 0)
		};

		if (!this.handles.hasClass("ui-state-hover")) {
			this._slide(event, index, normValue);
		}
		this._animateOff = true;
		return true;
	},

	_mouseStart: function () {
		return true;
	},

	_mouseDrag: function (event) {
		var position = { x: event.pageX, y: event.pageY },
			normValue = this._normValueFromMouse(position);

		this._slide(event, this._handleIndex, normValue);

		return false;
	},

	_mouseStop: function (event) {
		this.handles.removeClass("ui-state-active");
		this._mouseSliding = false;

		this._stop(event, this._handleIndex);
		this._change(event, this._handleIndex);

		this._handleIndex = null;
		this._clickOffset = null;
		this._animateOff = false;

		return false;
	},

	_detectOrientation: function () {
		this.orientation = (this.options.orientation === "vertical") ? "vertical" : "horizontal";
	},

	_normValueFromMouse: function (position) {
		var pixelTotal,
			pixelMouse,
			percentMouse,
			valueTotal,
			valueMouse;

		if (this.orientation === "horizontal") {
			pixelTotal = this.elementSize.width;
			pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
		} else {
			pixelTotal = this.elementSize.height;
			pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
		}

		percentMouse = (pixelMouse / pixelTotal);
		if (percentMouse > 1) {
			percentMouse = 1;
		}
		if (percentMouse < 0) {
			percentMouse = 0;
		}
		if (this.orientation === "vertical") {
			percentMouse = 1 - percentMouse;
		}

		valueTotal = this._valueMax() - this._valueMin();
		valueMouse = this._valueMin() + percentMouse * valueTotal;

		return this._trimAlignValue(valueMouse);
	},

	_start: function (event, index) {
		var uiHash = {
			handle: this.handles[index],
			value: this.value()
		};
		if (this.options.values && this.options.values.length) {
			uiHash.value = this.values(index);
			uiHash.values = this.values();
		}
		return this._trigger("start", event, uiHash);
	},

	_slide: function (event, index, newVal) {
		var otherVal,
			newValues,
			allowed;

		if (this.options.values && this.options.values.length) {
			otherVal = this.values(index ? 0 : 1);

			if ((this.options.values.length === 2 && this.options.range === true) &&
				((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))
			) {
				newVal = otherVal;
			}

			if (newVal !== this.values(index)) {
				newValues = this.values();
				newValues[index] = newVal;
				// A slide can be canceled by returning false from the slide callback
				allowed = this._trigger("slide", event, {
					handle: this.handles[index],
					value: newVal,
					values: newValues
				});
				otherVal = this.values(index ? 0 : 1);
				if (allowed !== false) {
					this.values(index, newVal);
				}
			}
		} else {
			if (newVal !== this.value()) {
				// A slide can be canceled by returning false from the slide callback
				allowed = this._trigger("slide", event, {
					handle: this.handles[index],
					value: newVal
				});
				if (allowed !== false) {
					this.value(newVal);
				}
			}
		}
	},

	_stop: function (event, index) {
		var uiHash = {
			handle: this.handles[index],
			value: this.value()
		};
		if (this.options.values && this.options.values.length) {
			uiHash.value = this.values(index);
			uiHash.values = this.values();
		}

		this._trigger("stop", event, uiHash);
	},

	_change: function (event, index) {
        if (!this._keySliding && !this._mouseSliding) {
			var uiHash = {
				handle: this.handles[index],
				value: this.value()
			};
			if (this.options.values && this.options.values.length) {
				uiHash.value = this.values(index);
				uiHash.values = this.values();
			}

			var changed = false;

			// min value
			if (index == 0) {
				if (this.options.prevMinValue != this.values(index)) {
                    this.options.prevMinValue = this.values(index);
                    changed = true;
                }
			}

			if (index == 1) {
				if (this.options.prevMaxValue != this.values(index)) {
					this.options.prevMaxValue = this.values(index);
                    changed = true;
				}
            }

			if (changed && !preventChange) {
				//store the last changed value index for reference when handles overlap
                this._lastChangedValue = index;

                this._trigger("change", event, uiHash);
            }
		}
	},

	value: function (newValue) {
		if (arguments.length) {
			this.options.value = this._trimAlignValue(newValue);
			this._refreshValue();
			this._change(null, 0);
			return;
		}

		return this._value();
	},

	values: function (index, newValue) {
		var vals,
			newValues,
			i;

		if (arguments.length > 1) {
			this.options.values[index] = this._trimAlignValue(newValue);
			this._refreshValue();
			this._change(null, index);
			return;
		}

		if (arguments.length) {
			if ($.isArray(arguments[0])) {
				vals = this.options.values;
				newValues = arguments[0];
				for (i = 0; i < vals.length; i += 1) {
					vals[i] = this._trimAlignValue(newValues[i]);
					this._change(null, i);
				}
				this._refreshValue();
			} else {
				if (this.options.values && this.options.values.length) {
					return this._values(index);
				} else {
					return this.value();
				}
			}
		} else {
			return this._values();
		}
	},

    destroy: function () {
		this._destroy();
	},

    _setOption: function (key, value) {
		var i,
			valsLength = 0;

		if (key === "range" && this.options.range === true) {
			if (value === "min") {
				this.options.value = this._values(0);
				this.options.values = null;
			} else if (value === "max") {
				this.options.value = this._values(this.options.values.length - 1);
				this.options.values = null;
			}
		}

		if ($.isArray(this.options.values)) {
			valsLength = this.options.values.length;
		}

		if (key === "disabled") {
			this.element.toggleClass("ui-state-disabled", !!value);
		}

		this._super(key, value);

		switch (key) {
			case "orientation":
				this._detectOrientation();
				this.element
					.removeClass("ui-slider-horizontal ui-slider-vertical")
					.addClass("ui-slider-" + this.orientation);
				this._refreshValue();

				// Reset positioning from previous orientation
				this.handles.css(value === "horizontal" ? "bottom" : "left", "");
				break;
			case "value":
				this._animateOff = true;
				this._refreshValue();
				this._change(null, 0);
				this._animateOff = false;
				break;
			case "values":
				this._animateOff = true;
				this._refreshValue();
				for (i = 0; i < valsLength; i += 1) {
					this._change(null, i);
				}
				this._animateOff = false;
				break;
			case "step":
			case "min":
			case "max":
				this._animateOff = true;
				this._calculateNewMax();
				this._refreshValue();
				this._animateOff = false;
				break;
			case "range":
				this._animateOff = true;
				this._refresh();
				this._animateOff = false;
				break;
		}
	},

	//internal value getter
	// _value() returns value trimmed by min and max, aligned by step
	_value: function () {
		var val = this.options.value;
		val = this._trimAlignValue(val);

		return val;
	},

	//internal values getter
	// _values() returns array of values trimmed by min and max, aligned by step
	// _values( index ) returns single value trimmed by min and max, aligned by step
	_values: function (index) {
		var val,
			vals,
			i;

		if (arguments.length) {
			val = this.options.values[index];
			val = this._trimAlignValue(val);

			return val;
		} else if (this.options.values && this.options.values.length) {
			// .slice() creates a copy of the array
			// this copy gets trimmed by min and max and then returned
			vals = this.options.values.slice();
			for (i = 0; i < vals.length; i += 1) {
				vals[i] = this._trimAlignValue(vals[i]);
			}

			return vals;
		} else {
			return [];
		}
	},

    // returns the step-aligned value that val is closest to, between (inclusive) min and max
	_trimAlignValue: function (val) {
		if (val <= this._valueMin()) {
			return this._valueMin();
		}
		if (val >= this._valueMax()) {
			return this._valueMax();
		}
		var step = (this.options.step > 0) ? this.options.step : 1,
			valModStep = (val - this._valueMin()) % step,
			alignValue = val - valModStep;

		if (Math.abs(valModStep) * 2 >= step) {
			alignValue += (valModStep > 0) ? step : (-step);
		}

		// Since JavaScript has problems with large floats, round
		// the final value to 5 digits after the decimal point (see #4124)
		return parseFloat(alignValue.toFixed(5));
	},

	_calculateNewMax: function () {
		var max = this.options.max,
			min = this._valueMin(),
			step = this.options.step,
			aboveMin = Math.floor((+(max - min).toFixed(this._precision())) / step) * step;
		max = aboveMin + min;
		this.max = parseFloat(max.toFixed(this._precision()));
	},

	_precision: function () {
		var precision = this._precisionOf(this.options.step);
		if (this.options.min !== null) {
			precision = Math.max(precision, this._precisionOf(this.options.min));
		}
		return precision;
	},

	_precisionOf: function (num) {
		var str = num.toString(),
			decimal = str.indexOf(".");
		return decimal === -1 ? 0 : str.length - decimal - 1;
	},

	_valueMin: function () {
		return this.options.min;
	},

	_valueMax: function () {
		return this.max;
	},

	_refreshValue: function () {
		var lastValPercent, valPercent, value, valueMin, valueMax,
			oRange = this.options.range,
			o = this.options,
			that = this,
			animate = (!this._animateOff) ? o.animate : false,
			_set = {};

		if (this.options.values && this.options.values.length) {
			this.handles.each(function (i) {
				valPercent = (that.values(i) - that._valueMin()) / (that._valueMax() - that._valueMin()) * 100;
				_set[that.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
				$(this).stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);
				if (that.options.range === true) {
					if (that.orientation === "horizontal") {
						if (i === 0) {
							that.range.stop(1, 1)[animate ? "animate" : "css"]({ left: valPercent + "%" }, o.animate);
						}
						if (i === 1) {
							that.range[animate ? "animate" : "css"]({ width: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
						}
					} else {
						if (i === 0) {
							that.range.stop(1, 1)[animate ? "animate" : "css"]({ bottom: (valPercent) + "%" }, o.animate);
						}
						if (i === 1) {
							that.range[animate ? "animate" : "css"]({ height: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
						}
					}
				}
				lastValPercent = valPercent;
			});
		} else {
			value = this.value();
			valueMin = this._valueMin();
			valueMax = this._valueMax();
			valPercent = (valueMax !== valueMin) ?
				(value - valueMin) / (valueMax - valueMin) * 100 :
				0;
			_set[this.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
			this.handle.stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);

			if (oRange === "min" && this.orientation === "horizontal") {
				this.range.stop(1, 1)[animate ? "animate" : "css"]({ width: valPercent + "%" }, o.animate);
			}
			if (oRange === "max" && this.orientation === "horizontal") {
				this.range[animate ? "animate" : "css"]({ width: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
			}
			if (oRange === "min" && this.orientation === "vertical") {
				this.range.stop(1, 1)[animate ? "animate" : "css"]({ height: valPercent + "%" }, o.animate);
			}
			if (oRange === "max" && this.orientation === "vertical") {
				this.range[animate ? "animate" : "css"]({ height: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
			}
		}
	},

	_handleEvents: {
		keydown: function (event) {
			var allowed, curVal, newVal, step,
				index = $(event.target).data("ui-slider-handle-index");

			switch (event.keyCode) {
				case $.ui.keyCode.HOME:
				case $.ui.keyCode.END:
				case $.ui.keyCode.PAGE_UP:
				case $.ui.keyCode.PAGE_DOWN:
				case $.ui.keyCode.UP:
				case $.ui.keyCode.RIGHT:
				case $.ui.keyCode.DOWN:
				case $.ui.keyCode.LEFT:
					event.preventDefault();
					if (!this._keySliding) {
						this._keySliding = true;
						$(event.target).addClass("ui-state-active");
						allowed = this._start(event, index);
						if (allowed === false) {
							return;
						}
					}
					break;
			}

			step = this.options.step;
			if (this.options.values && this.options.values.length) {
				curVal = newVal = this.values(index);
			} else {
				curVal = newVal = this.value();
			}

			switch (event.keyCode) {
				case $.ui.keyCode.HOME:
					newVal = this._valueMin();
					break;
				case $.ui.keyCode.END:
					newVal = this._valueMax();
					break;
				case $.ui.keyCode.PAGE_UP:
					newVal = this._trimAlignValue(
						curVal + ((this._valueMax() - this._valueMin()) / this.numPages)
					);
					break;
				case $.ui.keyCode.PAGE_DOWN:
					newVal = this._trimAlignValue(
						curVal - ((this._valueMax() - this._valueMin()) / this.numPages));
					break;
				case $.ui.keyCode.UP:
				case $.ui.keyCode.RIGHT:
					if (curVal === this._valueMax()) {
						return;
					}
					newVal = this._trimAlignValue(curVal + step);
					break;
				case $.ui.keyCode.DOWN:
				case $.ui.keyCode.LEFT:
					if (curVal === this._valueMin()) {
						return;
					}
					newVal = this._trimAlignValue(curVal - step);
					break;
			}

			this._slide(event, index, newVal);
		},
		keyup: function (event) {
			var index = $(event.target).data("ui-slider-handle-index");

			if (this._keySliding) {
				this._keySliding = false;
				this._stop(event, index);
				this._change(event, index);
				$(event.target).removeClass("ui-state-active");
			}
		}
	}
});;
$(window).resize(function () {
    var windowHeight = $(window).height();

    if ($("#filter-navigation-inner-container")[0] && $("#body-filter-container")[0]) {
        //append slider to body
        var mobileFilter = $(window).width() <= 991;
        if ($("#iframeMainContainer")[0]) {
            //always true
            mobileFilter = true;
        }
        if (mobileFilter) {
            var isAlreadyMobile = $("#body-filter-container").hasClass("data-mobile");

            if (!isAlreadyMobile) {
                $(`#filter-navigation-inner-container`).detach().appendTo('#body-filter-container');
                $("#body-filter-container").addClass('data-mobile');
            }
        } else {
            var isMobile = $("#body-filter-container").hasClass("data-mobile");
            if (isMobile) {
                $("#body-filter-container").removeClass('data-mobile');
                $(`#filter-navigation-inner-container`).detach().appendTo('#filter-navigation-container');
                closeLeftNav();
            }
        }
    }

    fixTabStripWrapperWidth();
    fixOpenMatchBadges();
    setGuestHeightContainerHeight();
});

function fixTabStripWrapperWidth() {
    if ($('.k-tabstrip-wrapper')[0]) {
        $('.k-tabstrip-wrapper').each(function (i, obj) {
            var tabstripEl = $(this).find('.k-tabstrip');
            if (tabstripEl) {
                var id = tabstripEl.attr('id');
                if ($('#member-portal-body')[0]) {
                    var windowWidth = $(window).outerWidth();

                    //todo ivan children tabstrip wrong width
                    var padding = isMobileLayout ? 0 : 15;
                    //if ($(this).hasClass('fn-chidlren-tabstrip')) {
                    //    padding = 30;
                    //}

                    $('.k-tabstrip-wrapper').css('max-width', windowWidth - padding);
                }

                if (id) {
                    var kendoTabstrip = $(`#${id}`).data('kendoTabStrip');
                    if (kendoTabstrip) {
                        var tsItems = kendoTabstrip.items();

                        if (tsItems) {
                            var tabWidth = 0;
                            for (var i = 0; i < tsItems.length; i++) {
                                tabWidth += tsItems[i].clientWidth;
                            }
                            kendoTabstrip.resize();
                            if (tabWidth < kendoTabstrip.element[0].clientWidth) {
                                kendoTabstrip.element[0].classList.remove('k-tabstrip-scrollable');
                                $('.k-tabstrip-items').css({ 'margin-left': '0px', 'margin-right': '0px' });
                                $('.k-tabstrip-next').css({ 'display': 'none' });
                                $('.k-tabstrip-prev').css({ 'display': 'none' });
                                $('.k-tabstrip-items').css({ 'margin': '0px' });
                            }
                            else {
                                $('.k-tabstrip-items').css({ 'margin-left': '36px', 'margin-right': '38px' });
                                $('.k-tabstrip-next').css({ 'display': 'block' });
                                $('.k-tabstrip-prev').css({ 'display': 'block' });
                                $('.k-tabstrip-items').css({ 'margin': '0px' });
                            }
                        }
                    }
                }
            }
        });
    }
}

var iosDevice = /iPhone|iPad/i.test(navigator.userAgent);;
if (iosDevice) {
    window.onorientationchange = function () {
        setTimeout(function () {
            fixTabStripWrapperWidth();
            fixOpenMatchBadges();
            setGuestHeightContainerHeight();
        }, 500);
    }
}

function setGuestHeightContainerHeight() {
    if (!isMobileLayout) {
        return false;
    }
    var windowHeight = $(window).height();

    if ($('#event-guest-container')[0]) {
        var headerHeight = $('.navbar-custom').outerHeight();
        if (isNullOrEmpty(headerHeight)) {
            headerHeight = 0;
        }
        var heightToSet = windowHeight - headerHeight;
        $('#event-guest-container').css('height', heightToSet);
        $('#event-guest-container').css('max-height', heightToSet);
    }
}

function fixOpenMatchBadges() {
    $('.fn-mm-badges').each(function (i, el) {
        var elHeight = $(this).outerHeight(true);
        var resUid = $(this).data('fnui');
        if (resUid) {
            if (elHeight && elHeight > 20) {
                $(`.fn-sch-rating-badge-${resUid}`).addClass('hide');
                $(`.fn-sch-match-badge-${resUid}`).addClass('hide');
            } else {
                $(`.fn-sch-rating-badge-${resUid}`).removeClass('hide');
                $(`.fn-sch-match-badge-${resUid}`).removeClass('hide');
            }
        }
    });
};
/*
PNotify 3.2.0 sciactive.com/pnotify/
(C) 2015 Hunter Perrin; Google, Inc.
license Apache-2.0
*/
!function (t, i) { "function" == typeof define && define.amd ? define("pnotify", ["jquery"], function (s) { return i(s, t) }) : "object" == typeof exports && "undefined" != typeof module ? module.exports = i(require("jquery"), global || t) : t.PNotify = i(t.jQuery, t) }("undefined" != typeof window ? window : this, function (t, i) { var s = function (i) { var e, o, n = { dir1: "down", dir2: "left", push: "bottom", spacing1: 36, spacing2: 36, context: t("body"), modal: !1 }, a = t(i), r = function () { o = t("body"), c.prototype.options.stack.context = o, a = t(i), a.bind("resize", function () { e && clearTimeout(e), e = setTimeout(function () { c.positionAll(!0) }, 10) }) }, h = function (i) { var s = t("<div />", { class: "ui-pnotify-modal-overlay" }); return s.prependTo(i.context), i.overlay_close && s.click(function () { c.removeStack(i) }), s }, c = function (t) { this.state = "initializing", this.timer = null, this.animTimer = null, this.styles = null, this.elem = null, this.container = null, this.title_container = null, this.text_container = null, this.animating = !1, this.timerHide = !1, this.parseOptions(t), this.init() }; return t.extend(c.prototype, { version: "3.2.0", options: { title: !1, title_escape: !1, text: !1, text_escape: !1, styling: "brighttheme", addclass: "", cornerclass: "", auto_display: !0, width: "300px", min_height: "16px", type: "notice", icon: !0, animation: "fade", animate_speed: "normal", shadow: !0, hide: !0, delay: 8e3, mouse_reset: !0, remove: !0, insert_brs: !0, destroy: !0, stack: n }, modules: {}, runModules: function (t, i) { var s; for (var e in this.modules) s = "object" == typeof i && e in i ? i[e] : i, "function" == typeof this.modules[e][t] && (this.modules[e].notice = this, this.modules[e].options = "object" == typeof this.options[e] ? this.options[e] : {}, this.modules[e][t](this, "object" == typeof this.options[e] ? this.options[e] : {}, s)) }, init: function () { var i = this; return this.modules = {}, t.extend(!0, this.modules, c.prototype.modules), "object" == typeof this.options.styling ? this.styles = this.options.styling : this.styles = c.styling[this.options.styling], this.elem = t("<div />", { class: "ui-pnotify " + this.options.addclass, css: { display: "none" }, "aria-live": "assertive", "aria-role": "alertdialog", mouseenter: function (t) { if (i.options.mouse_reset && "out" === i.animating) { if (!i.timerHide) return; i.cancelRemove() } i.options.hide && i.options.mouse_reset && i.cancelRemove() }, mouseleave: function (t) { i.options.hide && i.options.mouse_reset && "out" !== i.animating && i.queueRemove(), c.positionAll() } }), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-" + this.options.animate_speed), this.container = t("<div />", { class: this.styles.container + " ui-pnotify-container " + ("error" === this.options.type ? this.styles.error : "info" === this.options.type ? this.styles.info : "success" === this.options.type ? this.styles.success : this.styles.notice), role: "alert", "data-testid": "toast-" + this.options.type }).appendTo(this.elem), "" !== this.options.cornerclass && this.container.removeClass("ui-corner-all").addClass(this.options.cornerclass), this.options.shadow && this.container.addClass("ui-pnotify-shadow"), !1 !== this.options.icon && t("<div />", { class: "ui-pnotify-icon" }).append(t("<span />", { class: !0 === this.options.icon ? "error" === this.options.type ? this.styles.error_icon : "info" === this.options.type ? this.styles.info_icon : "success" === this.options.type ? this.styles.success_icon : this.styles.notice_icon : this.options.icon })).prependTo(this.container), this.title_container = t("<h4 />", { class: "ui-pnotify-title" }).appendTo(this.container), !1 === this.options.title ? this.title_container.hide() : this.options.title_escape ? this.title_container.text(this.options.title) : this.title_container.html(this.options.title), this.text_container = t("<div />", { class: "ui-pnotify-text", "aria-role": "alert" }).appendTo(this.container), !1 === this.options.text ? this.text_container.hide() : this.options.text_escape ? this.text_container.text(this.options.text) : this.text_container.html(this.options.insert_brs ? String(this.options.text).replace(/\n/g, "<br />") : this.options.text), "string" == typeof this.options.width && this.elem.css("width", this.options.width), "string" == typeof this.options.min_height && this.container.css("min-height", this.options.min_height), "top" === this.options.stack.push ? c.notices = t.merge([this], c.notices) : c.notices = t.merge(c.notices, [this]), "top" === this.options.stack.push && this.queuePosition(!1, 1), this.options.stack.animation = !1, this.runModules("init"), this.state = "closed", this.options.auto_display && this.open(), this }, update: function (i) { var s = this.options; return this.parseOptions(s, i), this.elem.removeClass("ui-pnotify-fade-slow ui-pnotify-fade-normal ui-pnotify-fade-fast"), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-" + this.options.animate_speed), this.options.cornerclass !== s.cornerclass && this.container.removeClass("ui-corner-all " + s.cornerclass).addClass(this.options.cornerclass), this.options.shadow !== s.shadow && (this.options.shadow ? this.container.addClass("ui-pnotify-shadow") : this.container.removeClass("ui-pnotify-shadow")), !1 === this.options.addclass ? this.elem.removeClass(s.addclass) : this.options.addclass !== s.addclass && this.elem.removeClass(s.addclass).addClass(this.options.addclass), !1 === this.options.title ? this.title_container.slideUp("fast") : this.options.title !== s.title && (this.options.title_escape ? this.title_container.text(this.options.title) : this.title_container.html(this.options.title), !1 === s.title && this.title_container.slideDown(200)), !1 === this.options.text ? this.text_container.slideUp("fast") : this.options.text !== s.text && (this.options.text_escape ? this.text_container.text(this.options.text) : this.text_container.html(this.options.insert_brs ? String(this.options.text).replace(/\n/g, "<br />") : this.options.text), !1 === s.text && this.text_container.slideDown(200)), this.options.type !== s.type && this.container.removeClass(this.styles.error + " " + this.styles.notice + " " + this.styles.success + " " + this.styles.info).addClass("error" === this.options.type ? this.styles.error : "info" === this.options.type ? this.styles.info : "success" === this.options.type ? this.styles.success : this.styles.notice), (this.options.icon !== s.icon || !0 === this.options.icon && this.options.type !== s.type) && (this.container.find("div.ui-pnotify-icon").remove(), !1 !== this.options.icon && t("<div />", { class: "ui-pnotify-icon" }).append(t("<span />", { class: !0 === this.options.icon ? "error" === this.options.type ? this.styles.error_icon : "info" === this.options.type ? this.styles.info_icon : "success" === this.options.type ? this.styles.success_icon : this.styles.notice_icon : this.options.icon })).prependTo(this.container)), this.options.width !== s.width && this.elem.animate({ width: this.options.width }), this.options.min_height !== s.min_height && this.container.animate({ minHeight: this.options.min_height }), this.options.hide ? s.hide || this.queueRemove() : this.cancelRemove(), this.queuePosition(!0), this.runModules("update", s), this }, open: function () { this.state = "opening", this.runModules("beforeOpen"); var t = this; return this.elem.parent().length || this.elem.appendTo(this.options.stack.context ? this.options.stack.context : o), "top" !== this.options.stack.push && this.position(!0), this.animateIn(function () { t.queuePosition(!0), t.options.hide && t.queueRemove(), t.state = "open", t.runModules("afterOpen") }), this }, remove: function (s) { this.state = "closing", this.timerHide = !!s, this.runModules("beforeClose"); var e = this; return this.timer && (i.clearTimeout(this.timer), this.timer = null), this.animateOut(function () { if (e.state = "closed", e.runModules("afterClose"), e.queuePosition(!0), e.options.remove && e.elem.detach(), e.runModules("beforeDestroy"), e.options.destroy && null !== c.notices) { var i = t.inArray(e, c.notices); -1 !== i && c.notices.splice(i, 1) } e.runModules("afterDestroy") }), this }, get: function () { return this.elem }, parseOptions: function (i, s) { this.options = t.extend(!0, {}, c.prototype.options), this.options.stack = c.prototype.options.stack; for (var e, o = [i, s], n = 0; n < o.length && void 0 !== (e = o[n]); n++)if ("object" != typeof e) this.options.text = e; else for (var a in e) this.modules[a] ? t.extend(!0, this.options[a], e[a]) : this.options[a] = e[a] }, animateIn: function (t) { this.animating = "in"; var i = this, s = function () { i.animTimer && clearTimeout(i.animTimer), "in" === i.animating && (i.elem.is(":visible") ? (t && t.call(), i.animating = !1) : i.animTimer = setTimeout(s, 40)) }; "fade" === this.options.animation ? (this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend", s).addClass("ui-pnotify-in"), this.elem.css("opacity"), this.elem.addClass("ui-pnotify-fade-in"), this.animTimer = setTimeout(s, 650)) : (this.elem.addClass("ui-pnotify-in"), s()) }, animateOut: function (i) { this.animating = "out"; var s = this, e = function () { if (s.animTimer && clearTimeout(s.animTimer), "out" === s.animating) if ("0" != s.elem.css("opacity") && s.elem.is(":visible")) s.animTimer = setTimeout(e, 40); else { if (s.elem.removeClass("ui-pnotify-in"), s.options.stack.overlay) { var o = !1; t.each(c.notices, function (t, i) { i != s && i.options.stack === s.options.stack && "closed" != i.state && (o = !0) }), o || s.options.stack.overlay.hide() } i && i.call(), s.animating = !1 } }; "fade" === this.options.animation ? (this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend", e).removeClass("ui-pnotify-fade-in"), this.animTimer = setTimeout(e, 650)) : (this.elem.removeClass("ui-pnotify-in"), e()) }, position: function (t) { var i = this.options.stack, s = this.elem; if (void 0 === i.context && (i.context = o), i) { "number" != typeof i.nextpos1 && (i.nextpos1 = i.firstpos1), "number" != typeof i.nextpos2 && (i.nextpos2 = i.firstpos2), "number" != typeof i.addpos2 && (i.addpos2 = 0); var e = !s.hasClass("ui-pnotify-in"); if (!e || t) { i.modal && (i.overlay ? i.overlay.show() : i.overlay = h(i)), s.addClass("ui-pnotify-move"); var n, r, c; switch (i.dir1) { case "down": c = "top"; break; case "up": c = "bottom"; break; case "left": c = "right"; break; case "right": c = "left" }n = parseInt(s.css(c).replace(/(?:\..*|[^0-9.])/g, "")), isNaN(n) && (n = 0), void 0 !== i.firstpos1 || e || (i.firstpos1 = n, i.nextpos1 = i.firstpos1); var p; switch (i.dir2) { case "down": p = "top"; break; case "up": p = "bottom"; break; case "left": p = "right"; break; case "right": p = "left" }switch (r = parseInt(s.css(p).replace(/(?:\..*|[^0-9.])/g, "")), isNaN(r) && (r = 0), void 0 !== i.firstpos2 || e || (i.firstpos2 = r, i.nextpos2 = i.firstpos2), ("down" === i.dir1 && i.nextpos1 + s.height() > (i.context.is(o) ? a.height() : i.context.prop("scrollHeight")) || "up" === i.dir1 && i.nextpos1 + s.height() > (i.context.is(o) ? a.height() : i.context.prop("scrollHeight")) || "left" === i.dir1 && i.nextpos1 + s.width() > (i.context.is(o) ? a.width() : i.context.prop("scrollWidth")) || "right" === i.dir1 && i.nextpos1 + s.width() > (i.context.is(o) ? a.width() : i.context.prop("scrollWidth"))) && (i.nextpos1 = i.firstpos1, i.nextpos2 += i.addpos2 + (void 0 === i.spacing2 ? 25 : i.spacing2), i.addpos2 = 0), "number" == typeof i.nextpos2 && (i.animation ? s.css(p, i.nextpos2 + "px") : (s.removeClass("ui-pnotify-move"), s.css(p, i.nextpos2 + "px"), s.css(p), s.addClass("ui-pnotify-move"))), i.dir2) { case "down": case "up": s.outerHeight(!0) > i.addpos2 && (i.addpos2 = s.height()); break; case "left": case "right": s.outerWidth(!0) > i.addpos2 && (i.addpos2 = s.width()) }switch ("number" == typeof i.nextpos1 && (i.animation ? s.css(c, i.nextpos1 + "px") : (s.removeClass("ui-pnotify-move"), s.css(c, i.nextpos1 + "px"), s.css(c), s.addClass("ui-pnotify-move"))), i.dir1) { case "down": case "up": i.nextpos1 += s.height() + (void 0 === i.spacing1 ? 25 : i.spacing1); break; case "left": case "right": i.nextpos1 += s.width() + (void 0 === i.spacing1 ? 25 : i.spacing1) } } return this } }, queuePosition: function (t, i) { return e && clearTimeout(e), i || (i = 10), e = setTimeout(function () { c.positionAll(t) }, i), this }, cancelRemove: function () { return this.timer && i.clearTimeout(this.timer), this.animTimer && i.clearTimeout(this.animTimer), "closing" === this.state && (this.state = "open", this.animating = !1, this.elem.addClass("ui-pnotify-in"), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-in")), this }, queueRemove: function () { var t = this; return this.cancelRemove(), this.timer = i.setTimeout(function () { t.remove(!0) }, isNaN(this.options.delay) ? 0 : this.options.delay), this } }), t.extend(c, { notices: [], reload: s, removeAll: function () { t.each(c.notices, function (t, i) { i.remove && i.remove(!1) }) }, removeStack: function (i) { t.each(c.notices, function (t, s) { s.remove && s.options.stack === i && s.remove(!1) }) }, positionAll: function (i) { if (e && clearTimeout(e), e = null, c.notices && c.notices.length) t.each(c.notices, function (t, s) { var e = s.options.stack; e && (e.overlay && e.overlay.hide(), e.nextpos1 = e.firstpos1, e.nextpos2 = e.firstpos2, e.addpos2 = 0, e.animation = i) }), t.each(c.notices, function (t, i) { i.position() }); else { var s = c.prototype.options.stack; s && (delete s.nextpos1, delete s.nextpos2) } }, styling: { brighttheme: { container: "brighttheme", notice: "brighttheme-notice", notice_icon: "brighttheme-icon-notice", info: "brighttheme-info", info_icon: "brighttheme-icon-info", success: "brighttheme-success", success_icon: "brighttheme-icon-success", error: "brighttheme-error", error_icon: "brighttheme-icon-error" }, bootstrap3: { container: "alert", notice: "alert-warning", notice_icon: "glyphicon glyphicon-exclamation-sign", info: "alert-info", info_icon: "glyphicon glyphicon-info-sign", success: "alert-success", success_icon: "glyphicon glyphicon-ok-sign", error: "alert-danger", error_icon: "glyphicon glyphicon-warning-sign" } } }), c.styling.fontawesome = t.extend({}, c.styling.bootstrap3), t.extend(c.styling.fontawesome, { notice_icon: "fa fa-exclamation-circle", info_icon: "fa fa-info", success_icon: "fa fa-check", error_icon: "fa fa-exclamation-triangle" }), i.document.body ? r() : t(r), c }; return s(i) });

// Buttons
!function (o, s) { "function" == typeof define && define.amd ? define("pnotify.buttons", ["jquery", "pnotify"], s) : "object" == typeof exports && "undefined" != typeof module ? module.exports = s(require("jquery"), require("./pnotify")) : s(o.jQuery, o.PNotify) }("undefined" != typeof window ? window : this, function (o, s) { return s.prototype.options.buttons = { closer: !0, closer_hover: !0, sticker: !0, sticker_hover: !0, show_on_nonblock: !1, labels: { close: "Close", stick: "Stick", unstick: "Unstick" }, classes: { closer: null, pin_up: null, pin_down: null } }, s.prototype.modules.buttons = { init: function (s, i) { var n = this; s.elem.on({ mouseenter: function (o) { !n.options.sticker || s.options.nonblock && s.options.nonblock.nonblock && !n.options.show_on_nonblock || n.sticker.trigger("pnotify:buttons:toggleStick").css("visibility", "visible"), !n.options.closer || s.options.nonblock && s.options.nonblock.nonblock && !n.options.show_on_nonblock || n.closer.css("visibility", "visible") }, mouseleave: function (o) { n.options.sticker_hover && n.sticker.css("visibility", "hidden"), n.options.closer_hover && n.closer.css("visibility", "hidden") } }), this.sticker = o("<div />", { class: "ui-pnotify-sticker", "aria-role": "button", "aria-pressed": s.options.hide ? "false" : "true", tabindex: "0", title: s.options.hide ? i.labels.stick : i.labels.unstick, css: { cursor: "pointer", visibility: i.sticker_hover ? "hidden" : "visible" }, click: function () { s.options.hide = !s.options.hide, s.options.hide ? s.queueRemove() : s.cancelRemove(), o(this).trigger("pnotify:buttons:toggleStick") } }).bind("pnotify:buttons:toggleStick", function () { var i = null === n.options.classes.pin_up ? s.styles.pin_up : n.options.classes.pin_up, e = null === n.options.classes.pin_down ? s.styles.pin_down : n.options.classes.pin_down; o(this).attr("title", s.options.hide ? n.options.labels.stick : n.options.labels.unstick).children().attr("class", "").addClass(s.options.hide ? i : e).attr("aria-pressed", s.options.hide ? "false" : "true") }).append("<span />").trigger("pnotify:buttons:toggleStick").prependTo(s.container), (!i.sticker || s.options.nonblock && s.options.nonblock.nonblock && !i.show_on_nonblock) && this.sticker.css("display", "none"), this.closer = o("<div />", { class: "ui-pnotify-closer", "aria-role": "button", tabindex: "0", title: i.labels.close, css: { cursor: "pointer", visibility: i.closer_hover ? "hidden" : "visible" }, click: function () { s.remove(!1), n.sticker.css("visibility", "hidden"), n.closer.css("visibility", "hidden") } }).append(o("<span />", { class: null === i.classes.closer ? s.styles.closer : i.classes.closer })).prependTo(s.container), (!i.closer || s.options.nonblock && s.options.nonblock.nonblock && !i.show_on_nonblock) && this.closer.css("display", "none") }, update: function (o, s) { !s.closer || o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock ? this.closer.css("display", "none") : s.closer && this.closer.css("display", "block"), !s.sticker || o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock ? this.sticker.css("display", "none") : s.sticker && this.sticker.css("display", "block"), this.sticker.trigger("pnotify:buttons:toggleStick"), this.closer.find("span").attr("class", "").addClass(null === s.classes.closer ? o.styles.closer : s.classes.closer), s.sticker_hover ? this.sticker.css("visibility", "hidden") : o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock || this.sticker.css("visibility", "visible"), s.closer_hover ? this.closer.css("visibility", "hidden") : o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock || this.closer.css("visibility", "visible") } }, o.extend(s.styling.brighttheme, { closer: "brighttheme-icon-closer", pin_up: "brighttheme-icon-sticker", pin_down: "brighttheme-icon-sticker brighttheme-icon-stuck" }), o.extend(s.styling.bootstrap3, { closer: "glyphicon glyphicon-remove", pin_up: "glyphicon glyphicon-pause", pin_down: "glyphicon glyphicon-play" }), o.extend(s.styling.fontawesome, { closer: "fa fa-times", pin_up: "fa fa-pause", pin_down: "fa fa-play" }), s });

// Animate
!function (n, i) { "function" == typeof define && define.amd ? define("pnotify.animate", ["jquery", "pnotify"], i) : "object" == typeof exports && "undefined" != typeof module ? module.exports = i(require("jquery"), require("./pnotify")) : i(n.jQuery, n.PNotify) }("undefined" != typeof window ? window : this, function (n, i) { return i.prototype.options.animate = { animate: !1, in_class: "", out_class: "" }, i.prototype.modules.animate = { init: function (n, i) { this.setUpAnimations(n, i), n.attention = function (i, t) { n.elem.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () { n.elem.removeClass(i), t && t.call(n) }).addClass("animated " + i) } }, update: function (n, i, t) { i.animate != t.animate && this.setUpAnimations(n, i) }, setUpAnimations: function (n, i) { if (i.animate) { n.options.animation = "none", n.elem.removeClass("ui-pnotify-fade-slow ui-pnotify-fade-normal ui-pnotify-fade-fast"), n._animateIn || (n._animateIn = n.animateIn), n._animateOut || (n._animateOut = n.animateOut), n.animateIn = this.animateIn.bind(this), n.animateOut = this.animateOut.bind(this); var t = 400; "slow" === n.options.animate_speed ? t = 600 : "fast" === n.options.animate_speed ? t = 200 : n.options.animate_speed > 0 && (t = n.options.animate_speed), t /= 1e3, n.elem.addClass("animated").css({ "-webkit-animation-duration": t + "s", "-moz-animation-duration": t + "s", "animation-duration": t + "s" }) } else n._animateIn && n._animateOut && (n.animateIn = n._animateIn, delete n._animateIn, n.animateOut = n._animateOut, delete n._animateOut, n.elem.addClass("animated")) }, animateIn: function (n) { this.notice.animating = "in"; var i = this; n = function () { i.notice.elem.removeClass(i.options.in_class), this && this.call(), i.notice.animating = !1 }.bind(n), this.notice.elem.show().one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", n).removeClass(this.options.out_class).addClass("ui-pnotify-in").addClass(this.options.in_class) }, animateOut: function (n) { this.notice.animating = "out"; var i = this; n = function () { i.notice.elem.removeClass("ui-pnotify-in " + i.options.out_class), this && this.call(), i.notice.animating = !1 }.bind(n), this.notice.elem.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", n).removeClass(this.options.in_class).addClass(this.options.out_class) } }, i });

// Mobile
!function (i, o) { "function" == typeof define && define.amd ? define("pnotify.mobile", ["jquery", "pnotify"], o) : "object" == typeof exports && "undefined" != typeof module ? module.exports = o(require("jquery"), require("./pnotify")) : o(i.jQuery, i.PNotify) }("undefined" != typeof window ? window : this, function (i, o) { return o.prototype.options.mobile = { swipe_dismiss: !0, styling: !0 }, o.prototype.modules.mobile = { init: function (i, o) { var t = this, e = null, n = null, s = null; this.swipe_dismiss = o.swipe_dismiss, this.doMobileStyling(i, o), i.elem.on({ touchstart: function (o) { t.swipe_dismiss && (e = o.originalEvent.touches[0].screenX, s = i.elem.width(), i.container.css("left", "0")) }, touchmove: function (o) { if (e && t.swipe_dismiss) { var a = o.originalEvent.touches[0].screenX; n = a - e; var c = (1 - Math.abs(n) / s) * i.options.opacity; i.elem.css("opacity", c), i.container.css("left", n) } }, touchend: function () { if (e && t.swipe_dismiss) { if (Math.abs(n) > 40) { var o = n < 0 ? -2 * s : 2 * s; i.elem.animate({ opacity: 0 }, 100), i.container.animate({ left: o }, 100), i.remove() } else i.elem.animate({ opacity: i.options.opacity }, 100), i.container.animate({ left: 0 }, 100); e = null, n = null, s = null } }, touchcancel: function () { e && t.swipe_dismiss && (i.elem.animate({ opacity: i.options.opacity }, 100), i.container.animate({ left: 0 }, 100), e = null, n = null, s = null) } }) }, update: function (i, o) { this.swipe_dismiss = o.swipe_dismiss, this.doMobileStyling(i, o) }, doMobileStyling: function (o, t) { t.styling ? (o.elem.addClass("ui-pnotify-mobile-able"), i(window).width() <= 480 ? (o.options.stack.mobileOrigSpacing1 || (o.options.stack.mobileOrigSpacing1 = o.options.stack.spacing1, o.options.stack.mobileOrigSpacing2 = o.options.stack.spacing2), o.options.stack.spacing1 = 0, o.options.stack.spacing2 = 0) : (o.options.stack.mobileOrigSpacing1 || o.options.stack.mobileOrigSpacing2) && (o.options.stack.spacing1 = o.options.stack.mobileOrigSpacing1, delete o.options.stack.mobileOrigSpacing1, o.options.stack.spacing2 = o.options.stack.mobileOrigSpacing2, delete o.options.stack.mobileOrigSpacing2)) : (o.elem.removeClass("ui-pnotify-mobile-able"), o.options.stack.mobileOrigSpacing1 && (o.options.stack.spacing1 = o.options.stack.mobileOrigSpacing1, delete o.options.stack.mobileOrigSpacing1), o.options.stack.mobileOrigSpacing2 && (o.options.stack.spacing2 = o.options.stack.mobileOrigSpacing2, delete o.options.stack.mobileOrigSpacing2)) } }, o });

$(function () {
	// Adjust initPNotify global defaults
	if (typeof PNotify !== 'undefined') {
		var stack = {
			"dir1": "up",
			"dir2": "right",
			"push": "down",
			"spacing1": 5,
			"spacing2": 16,
			"context": $("body")
		};
		PNotify.prototype.options = $.extend(PNotify.prototype.options, {
			styling: "fontawesome",
			stack: stack,
			addclass: 'stack-bottomleft',
			//addclass: 'stack-bottomright',
			width: "500px",
			mobile: { swipe_dismiss: true, styling: true },
			animate: {
				animate: true,
				in_class: "fadeInDown",
				out_class: "fadeOutLeft",
				//out_class: "fadeOutRight",
			}
		});
	}
});
var wlMobilePaddingTop = 0;
var wlMobileBottom = 10;
var jwtToken = '';
var requestData = '';
var reactGlobalSettings = '';
var reactGlobalUiCulture = '';

function setTopBottomPaddingBasedOnMobileDevice(mobileDevice) {
    if (equalString(mobileDevice, 'android')) {
        wlMobilePaddingTop = 30;
        wlMobileBottom = 0;
    }
    if (equalString(mobileDevice, 'simulatorios')) {
        wlMobilePaddingTop = 40;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone7')) {
        //iphone old one
        wlMobilePaddingTop = 0;
        wlMobileBottom = 0;
    }
    if (equalString(mobileDevice, 'iphone8')) {
        wlMobilePaddingTop = 0;
        wlMobileBottom = 0;
    }
    if (equalString(mobileDevice, 'iphone9')) {
        wlMobilePaddingTop = 30;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone10')) {
        wlMobilePaddingTop = 30;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone11')) {
        wlMobilePaddingTop = 20;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone12')) {
        wlMobilePaddingTop = 30;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone13')) {
        wlMobilePaddingTop = 30;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone14')) {
        wlMobilePaddingTop = 40;
        wlMobileBottom = 20;
    }
    if (equalString(mobileDevice, 'iphone15')) {
        wlMobilePaddingTop = 59;
        wlMobileBottom = 34;
    }

    if (equalString(mobileDevice, 'iphone16')) {
        wlMobilePaddingTop = 40;
        wlMobileBottom = 20;
    }

    if (equalString(mobileDevice, 'iphone17')) {
        wlMobilePaddingTop = 40;
        wlMobileBottom = 20;
    }

    try {
        $(function () {
            document.body.style.setProperty('--webview-bottom-padding', `${wlMobileBottom}px`);
            document.body.style.setProperty('--webview-top-padding', `10px`);
            document.body.style.setProperty('--wl-top-padding', `${wlMobilePaddingTop}px`);
        })
    } catch (e) {

    }
}

function calculateDeviceHeight(onlyTop, onlyBottom) {
    var currentWindowHeight = $(window).height();

    try {

    } catch (e) { }

    if (window.ReactNativeWebView || $('html').hasClass('html-react-webview')) {
        const mobileDevicePaddingToExclude = getMobileDeviceExludeHeight(/*onlyTop*/ onlyTop, /*onlyBottom*/ onlyBottom);

        currentWindowHeight = currentWindowHeight - mobileDevicePaddingToExclude;

        try {
            //iphone > 12 ignoring bottom spacing
            if (equalString(mobileDeviceModelUnq, 'iphone17')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }

            if (equalString(mobileDeviceModelUnq, 'iphone16')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }

            if (equalString(mobileDeviceModelUnq, 'iphone15')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }

            if (equalString(mobileDeviceModelUnq, 'iphone14')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }

            if (equalString(mobileDeviceModelUnq, 'iphone13')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }

            if (equalString(mobileDeviceModelUnq, 'iphone12')) {
                currentWindowHeight = currentWindowHeight + wlMobileBottom;
            }
        } catch (e) {

        }
    }

    return currentWindowHeight;
}

function saveMobileDomains() {

    $(function () {
        try {
            if (window.ReactNativeWebView) {
                const message = JSON.stringify({
									type: 'saveLocalStorage',
									key: 'allowedDomains',
									value: `hcaptcha|tgcstorage.blob.core.windows.net|virtualscreen.optisigns.com|doubleclick.net|arcot.com|ep2.adtrafficquality.google`,
								});
                window.ReactNativeWebView.postMessage(message);
            }
        } catch (e) {

        }
    })
}

function saveMobileTokenKey(tokenKey, tokenIdKey) {
    if (!isNullOrEmpty(tokenKey) && !equalString(tokenKey, 'null')) {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'saveMobileTokenKey', key: tokenKey, id: tokenIdKey });
            window.ReactNativeWebView.postMessage(message);
            //removeCookieById('MobileTokenKey');
            //removeCookieById('MobileTokenIdKey');
        }
    }
}

function mobileFuncSaveIsAdminToStorage(isAdminSide) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'saveLocalStorage', key: 'isadminside', value: `${toBoolean(isAdminSide)}` });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) {}
}

function mobileSaveIsAdminToStorage(isAdminSide) {
    callMultipleTimeout([200, 500, 1000], `mobileFuncSaveIsAdminToStorage(${toBoolean(isAdminSide)})`);
}

function reactGetToken() {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterGetToken' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) {

    }
}

function reactSetBadgeCount(count) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterSetBadgeCount', count: count });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) {

    }
}

function reactClearToken() {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterClearToken' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactUpdateMobileStatusBar(style) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'updateMobileStatusBar', style: style });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactInitFireBase() {
    if (window.ReactNativeWebView) {
        const message = JSON.stringify({ type: 'FlutterInitFirebase' });
        window.ReactNativeWebView.postMessage(message);

        const messageReload = JSON.stringify({ type: 'saveLocalStorage', key: 'initreloadsetting', value: `true` });
        window.ReactNativeWebView.postMessage(messageReload);
    }

    reactUpdateReloadwebViewDuration();
}

function reactUpdateReloadwebViewDuration() {
    if (window.ReactNativeWebView) {
        const messageReload = JSON.stringify({ type: 'saveLocalStorage', key: 'reloadduration', value: `3000` });
        window.ReactNativeWebView.postMessage(messageReload);
    }
}

function reactActivateStatus() {
    if (window.ReactNativeWebView) {
        const message = JSON.stringify({ type: 'activeStateConfirmed' });
        window.ReactNativeWebView.postMessage(message);
    }
}

function reactSendMail(email) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterLaunchMail', email: email });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactCallPhone(phone) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterLaunchTel', telephone: phone });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactOpenMobileCamera() {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'reactTakePhoto' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactPickImage() {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'reactPickImage' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

function reactOpenBrowser(url) {
    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'open_browser', url: url });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
}

window.mobileTakePhotoBaseResult = (base64ImageResponse) => {
    //const imageContainer = document.getElementById('my-profile-page');

    //var img = document.createElement('img');
    //img.src = base64ImageResponse;
    //img.alt = "Base64 Image";
    //img.style.width = "100px"; 
    //img.style.height = "auto";

    //imageContainer.innerHTML = ''; 
    //imageContainer.appendChild(img); 
}

window.mobilePickImageResult = (base64ImageResponse) => {
    //const imageContainer = document.getElementById('my-profile-page');

    //var img = document.createElement('img');
    //img.src = base64ImageResponse;
    //img.alt = "Base64 Image";
    //img.style.width = "100px"; 
    //img.style.height = "auto";

    //imageContainer.innerHTML = ''; 
    //imageContainer.appendChild(img); 
}

function reactConsoleLog(msg) {
    if (window.ReactNativeWebView) {
        const jsonToPost = JSON.stringify({ type: 'ReactConsoleLog', message: msg });
        window.ReactNativeWebView.postMessage(jsonToPost);
    }
}

function logoutMobileData() {
    try {
        FlutterLogout.postMessage('logout');
    } catch (e) { }

    try {
        window.flutter_inappwebview.callHandler("FlutterLogout", []);
    } catch (e) { }

    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'saveMobileTokenKey', key: '', id: '' });
            window.ReactNativeWebView.postMessage(message);
            removeCookieById('MobileTokenKey');
            removeCookieById('MobileTokenIdKey');
        }
    } catch (e) { }

    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'MobileDeleteToken' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }


    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'FlutterLogout' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }


    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'ClearBadgeCount' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
};
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const l=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),t="SweetAlert2:",o=e=>e.charAt(0).toUpperCase()+e.slice(1),a=e=>Array.prototype.slice.call(e),s=e=>{console.warn("".concat(t," ").concat("object"==typeof e?e.join(" "):e))},r=e=>{console.error("".concat(t," ").concat(e))},n=[],i=(e,t)=>{t='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),n.includes(t)||(n.push(t),s(t))},c=e=>"function"==typeof e?e():e,u=e=>e&&"function"==typeof e.toPromise,d=e=>u(e)?e.toPromise():Promise.resolve(e),p=e=>e&&Promise.resolve(e)===e,m=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const h=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),g=e(["success","warning","info","question","error"]),b=()=>document.body.querySelector(".".concat(h.container)),f=e=>{const t=b();return t?t.querySelector(e):null},y=e=>f(".".concat(e)),v=()=>y(h.popup),w=()=>y(h.icon),C=()=>y(h.title),k=()=>y(h["html-container"]),A=()=>y(h.image),B=()=>y(h["progress-steps"]),x=()=>y(h["validation-message"]),E=()=>f(".".concat(h.actions," .").concat(h.confirm)),P=()=>f(".".concat(h.actions," .").concat(h.deny));const S=()=>f(".".concat(h.loader)),T=()=>f(".".concat(h.actions," .").concat(h.cancel)),L=()=>y(h.actions),O=()=>y(h.footer),j=()=>y(h["timer-progress-bar"]),M=()=>y(h.close),D=()=>{const e=a(v().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>(e=parseInt(e.getAttribute("tabindex")),(t=parseInt(t.getAttribute("tabindex")))<e?1:e<t?-1:0));var t=a(v().querySelectorAll('\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex="0"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n')).filter(e=>"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;e<t.length;e++)-1===n.indexOf(t[e])&&n.push(t[e]);return n})(e.concat(t)).filter(e=>G(e))},I=()=>!H()&&!document.body.classList.contains(h["no-backdrop"]),H=()=>document.body.classList.contains(h["toast-shown"]);const q={previousBodyPadding:null},V=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");a(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),a(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},N=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e<n.length;e++)if(!t.classList.contains(n[e]))return!1;return!0},U=(e,t,n)=>{var o,i;if(o=e,i=t,a(o.classList).forEach(e=>{Object.values(h).includes(e)||Object.values(g).includes(e)||Object.values(i.showClass).includes(e)||o.classList.remove(e)}),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return s("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));W(e,t.customClass[n])}},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return K(e,h[t]);case"checkbox":return e.querySelector(".".concat(h.checkbox," input"));case"radio":return e.querySelector(".".concat(h.radio," input:checked"))||e.querySelector(".".concat(h.radio," input:first-child"));case"range":return e.querySelector(".".concat(h.range," input"));default:return K(e,h.input)}},R=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},z=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{e.forEach?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},W=(e,t)=>{z(e,t,!0)},_=(e,t)=>{z(e,t,!1)},K=(t,n)=>{for(let e=0;e<t.childNodes.length;e++)if(N(t.childNodes[e],n))return t.childNodes[e]},Y=(e,t,n)=>{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},Z=(e,t="flex")=>{e.style.display=t},J=e=>{e.style.display="none"},X=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},$=(e,t,n)=>{t?Z(e,n):J(e)},G=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Q=()=>!G(E())&&!G(P())&&!G(T()),ee=e=>!!(e.scrollHeight>e.clientHeight),te=e=>{const t=window.getComputedStyle(e);var n=parseFloat(t.getPropertyValue("animation-duration")||"0"),e=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0<n||0<e},ne=(e,t=!1)=>{const n=j();G(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout(()=>{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))},oe=()=>"undefined"==typeof window||"undefined"==typeof document,ie='\n <div aria-labelledby="'.concat(h.title,'" aria-describedby="').concat(h["html-container"],'" class="').concat(h.popup,'" tabindex="-1">\n   <button type="button" class="').concat(h.close,'"></button>\n   <ul class="').concat(h["progress-steps"],'"></ul>\n   <div class="').concat(h.icon,'"></div>\n   <img class="').concat(h.image,'" />\n   <h2 class="').concat(h.title,'" id="').concat(h.title,'"></h2>\n   <div class="').concat(h["html-container"],'" id="').concat(h["html-container"],'"></div>\n   <input class="').concat(h.input,'" />\n   <input type="file" class="').concat(h.file,'" />\n   <div class="').concat(h.range,'">\n     <input type="range" />\n     <output></output>\n   </div>\n   <select class="').concat(h.select,'"></select>\n   <div class="').concat(h.radio,'"></div>\n   <label for="').concat(h.checkbox,'" class="').concat(h.checkbox,'">\n     <input type="checkbox" />\n     <span class="').concat(h.label,'"></span>\n   </label>\n   <textarea class="').concat(h.textarea,'"></textarea>\n   <div class="').concat(h["validation-message"],'" id="').concat(h["validation-message"],'"></div>\n   <div class="').concat(h.actions,'">\n     <div class="').concat(h.loader,'"></div>\n     <button type="button" class="').concat(h.confirm,'"></button>\n     <button type="button" class="').concat(h.deny,'"></button>\n     <button type="button" class="').concat(h.cancel,'"></button>\n   </div>\n   <div class="').concat(h.footer,'"></div>\n   <div class="').concat(h["timer-progress-bar-container"],'">\n     <div class="').concat(h["timer-progress-bar"],'"></div>\n   </div>\n </div>\n').replace(/(^|\n)\s*/g,""),ae=()=>{cn.isVisible()&&cn.resetValidationMessage()},se=e=>{var t=(()=>{const e=b();return!!e&&(e.remove(),_([document.documentElement,document.body],[h["no-backdrop"],h["toast-shown"],h["has-column"]]),!0)})();if(oe())r("SweetAlert2 requires document to initialize");else{const n=document.createElement("div");n.className=h.container,t&&W(n,h["no-transition"]),V(n,ie);const o="string"==typeof(t=e.target)?document.querySelector(t):t;o.appendChild(n),(e=>{const t=v();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),e=o,"rtl"===window.getComputedStyle(e).direction&&W(b(),h.rtl),(()=>{const e=v(),t=K(e,h.input),n=K(e,h.file),o=e.querySelector(".".concat(h.range," input")),i=e.querySelector(".".concat(h.range," output")),a=K(e,h.select),s=e.querySelector(".".concat(h.checkbox," input")),r=K(e,h.textarea);t.oninput=ae,n.onchange=ae,a.onchange=ae,s.onchange=ae,r.oninput=ae,o.oninput=()=>{ae(),i.value=o.value},o.onchange=()=>{ae(),o.nextSibling.value=o.value}})()}},re=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?ce(e,t):e&&V(t,e)},ce=(e,t)=>{e.jquery?le(t,e):V(t,e.toString())},le=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},ue=(()=>{if(oe())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),de=(e,t)=>{const n=L();var o=S(),i=E(),a=P(),s=T();t.showConfirmButton||t.showDenyButton||t.showCancelButton||J(n),U(n,t,"actions"),pe(i,"confirm",t),pe(a,"deny",t),pe(s,"cancel",t),function(e,t,n,o){if(!o.buttonsStyling)return _([e,t,n],h.styled);W([e,t,n],h.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,W(e,h["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,W(t,h["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,W(n,h["default-outline"]))}(i,a,s,t),t.reverseButtons&&(n.insertBefore(s,o),n.insertBefore(a,o),n.insertBefore(i,o)),V(o,t.loaderHtml),U(o,t,"loader")};function pe(e,t,n){$(e,n["show".concat(o(t),"Button")],"inline-block"),V(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=h[t],U(e,n,"".concat(t,"Button")),W(e,n["".concat(t,"ButtonClass")])}const me=(e,t)=>{var n,o,i=b();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||W([document.documentElement,document.body],h["no-backdrop"]),o=i,(n=t.position)in h?W(o,h[n]):(s('The "position" parameter is not valid, defaulting to "center"'),W(o,h.center)),n=i,!(o=t.grow)||"string"!=typeof o||(o="grow-".concat(o))in h&&W(n,h[o]),U(i,t,"container"))};var he={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const ge=["input","file","range","select","radio","checkbox","textarea"],be=e=>{if(!ke[e.input])return r('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));var t=Ce(e.input);const n=ke[e.input](t,e);Z(n),setTimeout(()=>{R(n)})},fe=(e,t)=>{const n=F(v(),e);if(n){(t=>{for(let e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;["type","value","style"].includes(n)||t.removeAttribute(n)}})(n);for(const o in t)n.setAttribute(o,t[o])}},ye=e=>{var t=Ce(e.input);e.customClass&&W(t,e.customClass.input)},ve=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},we=(e,t,n)=>{if(n.inputLabel){e.id=h.input;const i=document.createElement("label");var o=h["input-label"];i.setAttribute("for",e.id),i.className=o,W(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ce=e=>{e=h[e]||h.input;return K(v(),e)},ke={};ke.text=ke.email=ke.password=ke.number=ke.tel=ke.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:p(t.inputValue)||s('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),we(e,e,t),ve(e,t),e.type=t.input,e),ke.file=(e,t)=>(we(e,e,t),ve(e,t),e),ke.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,we(n,e,t),e},ke.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return we(e,e,t),e},ke.radio=e=>(e.textContent="",e),ke.checkbox=(e,t)=>{const n=F(v(),"checkbox");n.value=1,n.id=h.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return V(o,t.inputPlaceholder),e},ke.textarea=(t,e)=>{t.value=e.inputValue,ve(t,e),we(t,t,e);if("MutationObserver"in window){const n=parseInt(window.getComputedStyle(v()).width);new MutationObserver(()=>{var e,e=t.offsetWidth+(e=t,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>n?v().style.width="".concat(e,"px"):v().style.width=null}).observe(t,{attributes:!0,attributeFilter:["style"]})}return t};const Ae=(e,t)=>{const n=k();U(n,t,"htmlContainer"),t.html?(re(t.html,n),Z(n,"block")):t.text?(n.textContent=t.text,Z(n,"block")):J(n),((e,o)=>{const i=v();e=he.innerParams.get(e);const a=!e||o.input!==e.input;ge.forEach(e=>{var t=h[e];const n=K(i,t);fe(e,o.inputAttributes),n.className=t,a&&J(n)}),o.input&&(a&&be(o),ye(o))})(e,t)},Be=(e,t)=>{for(const n in g)t.icon!==n&&_(e,g[n]);W(e,g[t.icon]),Pe(e,t),xe(),U(e,t,"icon")},xe=()=>{const e=v();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e<n.length;e++)n[e].style.backgroundColor=t},Ee=(e,t)=>{var n;e.textContent="",t.iconHtml?V(e,Se(t.iconHtml)):"success"===t.icon?V(e,'\n      <div class="swal2-success-circular-line-left"></div>\n      <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n      <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n      <div class="swal2-success-circular-line-right"></div>\n    '):"error"===t.icon?V(e,'\n      <span class="swal2-x-mark">\n        <span class="swal2-x-mark-line-left"></span>\n        <span class="swal2-x-mark-line-right"></span>\n      </span>\n    '):(n={question:"?",warning:"!",info:"i"},V(e,Se(n[t.icon])))},Pe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])X(e,n,"backgroundColor",t.iconColor);X(e,".swal2-success-ring","borderColor",t.iconColor)}},Se=e=>'<div class="'.concat(h["icon-content"],'">').concat(e,"</div>"),Te=(e,o)=>{const i=B();if(!o.progressSteps||0===o.progressSteps.length)return J(i);Z(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&s("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{var n,e=(n=e,e=document.createElement("li"),W(e,h["progress-step"]),V(e,n),e);i.appendChild(e),t===o.currentProgressStep&&W(e,h["active-progress-step"]),t!==o.progressSteps.length-1&&(t=(e=>{const t=document.createElement("li");return W(t,h["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(t))})},Le=(e,t)=>{e.className="".concat(h.popup," ").concat(G(e)?t.showClass.popup:""),t.toast?(W([document.documentElement,document.body],h["toast-shown"]),W(e,h.toast)):W(e,h.modal),U(e,t,"popup"),"string"==typeof t.customClass&&W(e,t.customClass),t.icon&&W(e,h["icon-".concat(t.icon)])},Oe=(e,t)=>{var n,o,i;(e=>{var t=b();const n=v();e.toast?(Y(t,"width",e.width),n.style.width="100%",n.insertBefore(S(),w())):Y(n,"width",e.width),Y(n,"padding",e.padding),e.background&&(n.style.background=e.background),J(x()),Le(n,e)})(t),me(0,t),Te(0,t),i=e,n=t,o=he.innerParams.get(i),i=w(),o&&n.icon===o.icon?(Ee(i,n),Be(i,n)):n.icon||n.iconHtml?n.icon&&-1===Object.keys(g).indexOf(n.icon)?(r('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(n.icon,'"')),J(i)):(Z(i),Ee(i,n),Be(i,n),W(i,n.showClass.icon)):J(i),(e=>{const t=A();if(!e.imageUrl)return J(t);Z(t,""),t.setAttribute("src",e.imageUrl),t.setAttribute("alt",e.imageAlt),Y(t,"width",e.imageWidth),Y(t,"height",e.imageHeight),t.className=h.image,U(t,e,"image")})(t),(e=>{const t=C();$(t,e.title||e.titleText,"block"),e.title&&re(e.title,t),e.titleText&&(t.innerText=e.titleText),U(t,e,"title")})(t),(e=>{const t=M();V(t,e.closeButtonHtml),U(t,e,"closeButton"),$(t,e.showCloseButton),t.setAttribute("aria-label",e.closeButtonAriaLabel)})(t),Ae(e,t),de(0,t),i=t,e=O(),$(e,i.footer),i.footer&&re(i.footer,e),U(e,i,"footer"),"function"==typeof t.didRender&&t.didRender(v())};const je=()=>E()&&E().click();const Me=e=>{let t=v();t||cn.fire(),t=v();var n=S();H()?J(w()):De(t,e),Z(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},De=(e,t)=>{var n=L();const o=S();!t&&G(E())&&(t=E()),Z(n),t&&(J(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),W([e,n],h.loading)},Ie={},He=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;Ie.restoreFocusTimeout=setTimeout(()=>{Ie.previousActiveElement&&Ie.previousActiveElement.focus?(Ie.previousActiveElement.focus(),Ie.previousActiveElement=null):document.body&&document.body.focus(),e()},100),window.scrollTo(t,n)});const qe=()=>{if(Ie.timeout)return(()=>{const e=j();var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=parseInt(window.getComputedStyle(e).width),n=parseInt(t/n*100);e.style.removeProperty("transition"),e.style.width="".concat(n,"%")})(),Ie.timeout.stop()},Ve=()=>{if(Ie.timeout){var e=Ie.timeout.start();return ne(e),e}};let Ne=!1;const Ue={};const Fe=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in Ue){var n=e.getAttribute(o);if(n)return void Ue[o].fire({template:n})}},Re={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"&times;",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},ze=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],We={},_e=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Ke=e=>Object.prototype.hasOwnProperty.call(Re,e);const Ye=e=>We[e],Ze=e=>{!e.backdrop&&e.allowOutsideClick&&s('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const o in e)n=o,Ke(n)||s('Unknown parameter "'.concat(n,'"')),e.toast&&(t=o,_e.includes(t)&&s('The parameter "'.concat(t,'" is incompatible with toasts'))),t=o,Ye(t)&&i(t,Ye(t));var t,n};var Je=Object.freeze({isValidParameter:Ke,isUpdatableParameter:e=>-1!==ze.indexOf(e),isDeprecatedParameter:Ye,argsToParams:n=>{const o={};return"object"!=typeof n[0]||m(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||m(t)?o[e]=t:void 0!==t&&r("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>G(v()),clickConfirm:je,clickDeny:()=>P()&&P().click(),clickCancel:()=>T()&&T().click(),getContainer:b,getPopup:v,getTitle:C,getHtmlContainer:k,getImage:A,getIcon:w,getInputLabel:()=>y(h["input-label"]),getCloseButton:M,getActions:L,getConfirmButton:E,getDenyButton:P,getCancelButton:T,getLoader:S,getFooter:O,getTimerProgressBar:j,getFocusableElements:D,getValidationMessage:x,isLoading:()=>v().hasAttribute("data-loading"),fire:function(...e){return new this(...e)},mixin:function(n){class e extends this{_main(e,t){return super._main(e,Object.assign({},n,t))}}return e},showLoading:Me,enableLoading:Me,getTimerLeft:()=>Ie.timeout&&Ie.timeout.getTimerLeft(),stopTimer:qe,resumeTimer:Ve,toggleTimer:()=>{var e=Ie.timeout;return e&&(e.running?qe:Ve)()},increaseTimer:e=>{if(Ie.timeout){e=Ie.timeout.increase(e);return ne(e,!0),e}},isTimerRunning:()=>Ie.timeout&&Ie.timeout.isRunning(),bindClickHandler:function(e="data-swal-template"){Ue[e]=this,Ne||(document.body.addEventListener("click",Fe),Ne=!0)}});function Xe(){var e=he.innerParams.get(this);if(e){const t=he.domCache.get(this);J(t.loader),H()?e.icon&&Z(w()):(e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));if(t.length)Z(t[0],"inline-block");else if(Q())J(e.actions)})(t),_([t.popup,t.actions],h.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}const $e=()=>{null===q.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(q.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(q.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=h["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},Ge=()=>{navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||v().scrollHeight>window.innerHeight-44&&(b().style.paddingBottom="".concat(44,"px"))},Qe=()=>{const e=b();let t;e.ontouchstart=e=>{t=et(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},et=e=>{var t=e.target,n=b();return!tt(e)&&!nt(e)&&(t===n||!(ee(n)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||ee(k())&&k().contains(t)))},tt=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,nt=e=>e.touches&&1<e.touches.length;var ot={swalPromiseResolve:new WeakMap};function it(e,t,n,o){H()?rt(e,o):(He(n).then(()=>rt(e,o)),Ie.keydownTarget.removeEventListener("keydown",Ie.keydownHandler,{capture:Ie.keydownListenerCapture}),Ie.keydownHandlerAdded=!1),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),I()&&(null!==q.previousBodyPadding&&(document.body.style.paddingRight="".concat(q.previousBodyPadding,"px"),q.previousBodyPadding=null),N(document.body,h.iosfix)&&(t=parseInt(document.body.style.top,10),_(document.body,h.iosfix),document.body.style.top="",document.body.scrollTop=-1*t),(()=>{const e=a(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})})()),_([document.documentElement,document.body],[h.shown,h["height-auto"],h["no-backdrop"],h["toast-shown"]])}function at(e){var t=v();if(t){e=void 0!==(o=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},o):{isConfirmed:!1,isDenied:!1,isDismissed:!0};var n=he.innerParams.get(this);if(n&&!N(t,n.hideClass.popup)){const i=ot.swalPromiseResolve.get(this);_(t,n.showClass.popup),W(t,n.hideClass.popup);var o=b();_(o,n.showClass.backdrop),W(o,n.hideClass.backdrop),((e,t,n)=>{const o=b(),i=ue&&te(t);if(typeof n.willClose==="function")n.willClose(t);if(i)st(e,t,o,n.returnFocus,n.didClose);else it(e,o,n.returnFocus,n.didClose)})(this,t,n),i(e)}}}const st=(e,t,n,o,i)=>{Ie.swalCloseEventFinishedCallback=it.bind(null,e,n,o,i),t.addEventListener(ue,function(e){e.target===t&&(Ie.swalCloseEventFinishedCallback(),delete Ie.swalCloseEventFinishedCallback)})},rt=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function ct(e,t,n){const o=he.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function lt(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e<o.length;e++)o[e].disabled=t}else e.disabled=t}class ut{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}var dt={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function pt(e){var t,n;(t=e).inputValidator||Object.keys(dt).forEach(e=>{t.input===e&&(t.inputValidator=dt[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&s("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(s('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("<br />")),se(e)}const mt=["swal-title","swal-html","swal-footer"],ht=e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content;return Ct(e),Object.assign(gt(e),bt(e),ft(e),yt(e),vt(e),wt(e,mt))},gt=e=>{const o={};return a(e.querySelectorAll("swal-param")).forEach(e=>{kt(e,["name","value"]);var t=e.getAttribute("name");let n=e.getAttribute("value");"boolean"==typeof Re[t]&&"false"===n&&(n=!1),"object"==typeof Re[t]&&(n=JSON.parse(n)),o[t]=n}),o},bt=e=>{const n={};return a(e.querySelectorAll("swal-button")).forEach(e=>{kt(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(o(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},ft=e=>{const t={},n=e.querySelector("swal-image");return n&&(kt(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},yt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(kt(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},vt=e=>{const n={},t=e.querySelector("swal-input");t&&(kt(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},a(e).forEach(e=>{kt(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},wt=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(kt(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},Ct=e=>{const t=mt.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);a(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&s("Unrecognized element <".concat(e,">"))})},kt=(t,n)=>{a(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&s(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})},At=e=>{const t=b(),n=v();"function"==typeof e.willOpen&&e.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;Pt(t,n,e),setTimeout(()=>{xt(t,n)},10),I()&&(Et(t,e.scrollbarPadding,o),(()=>{const e=a(document.body.children);e.forEach(e=>{e===b()||e.contains(b())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})})()),H()||Ie.previousActiveElement||(Ie.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout(()=>e.didOpen(n)),_(t,h["no-transition"])},Bt=e=>{const t=v();if(e.target===t){const n=b();t.removeEventListener(ue,Bt),n.style.overflowY="auto"}},xt=(e,t)=>{ue&&te(t)?(e.style.overflowY="hidden",t.addEventListener(ue,Bt)):e.style.overflowY="auto"},Et=(e,t,n)=>{var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!N(document.body,h.iosfix)&&(o=document.body.scrollTop,document.body.style.top="".concat(-1*o,"px"),W(document.body,h.iosfix),Qe(),Ge()),t&&"hidden"!==n&&$e(),setTimeout(()=>{e.scrollTop=0})},Pt=(e,t,n)=>{W(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),Z(t,"grid"),setTimeout(()=>{W(t,n.showClass.popup),t.style.removeProperty("opacity")},10),W([document.documentElement,document.body],h.shown),n.heightAuto&&n.backdrop&&!n.toast&&W([document.documentElement,document.body],h["height-auto"])},St=e=>e.checked?1:0,Tt=e=>e.checked?e.value:null,Lt=e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,Ot=(t,n)=>{const o=v(),i=e=>Mt[n.input](o,Dt(e),n);u(n.inputOptions)||p(n.inputOptions)?(Me(E()),d(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):r("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},jt=(t,n)=>{const o=t.getInput();J(o),d(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),Z(o),o.focus(),t.hideLoading()}).catch(e=>{r("Error in inputValue promise: ".concat(e)),o.value="",Z(o),o.focus(),t.hideLoading()})},Mt={select:(e,t,i)=>{const a=K(e,h.select),s=(e,t,n)=>{const o=document.createElement("option");o.value=n,V(o,t),o.selected=It(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>s(o,e[1],e[0]))}else s(a,n,t)}),a.focus()},radio:(e,t,a)=>{const s=K(e,h.radio);t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label");n.type="radio",n.name=h.radio,n.value=t,It(t,a.inputValue)&&(n.checked=!0);const i=document.createElement("span");V(i,e),i.className=h.label,o.appendChild(n),o.appendChild(i),s.appendChild(o)});const n=s.querySelectorAll("input");n.length&&n[0].focus()}},Dt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Dt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Dt(t)),o.push([e,t])}),o},It=(e,t)=>t&&t.toString()===e.toString(),Ht=(e,t,n)=>{var o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return St(n);case"radio":return Tt(n);case"file":return Lt(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,t);t.inputValidator?qt(e,t,o,n):e.getInput().checkValidity()?("deny"===n?Vt:Ut)(e,t,o):(e.enableButtons(),e.showValidationMessage(t.validationMessage))},qt=(t,n,o,i)=>{t.disableInput();const e=Promise.resolve().then(()=>d(n.inputValidator(o,n.validationMessage)));e.then(e=>{t.enableButtons(),t.enableInput(),e?t.showValidationMessage(e):("deny"===i?Vt:Ut)(t,n,o)})},Vt=(t,e,n)=>{if(e.showLoaderOnDeny&&Me(P()),e.preDeny){const o=Promise.resolve().then(()=>d(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?t.hideLoading():t.closePopup({isDenied:!0,value:void 0===e?n:e})})}else t.closePopup({isDenied:!0,value:n})},Nt=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Ut=(t,e,n)=>{if(e.showLoaderOnConfirm&&Me(),e.preConfirm){t.resetValidationMessage();const o=Promise.resolve().then(()=>d(e.preConfirm(n,e.validationMessage)));o.then(e=>{G(x())||!1===e?t.hideLoading():Nt(t,void 0===e?n:e)})}else Nt(t,n)},Ft=(e,t,n)=>{const o=D();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();v().focus()},Rt=["ArrowRight","ArrowDown"],zt=["ArrowLeft","ArrowUp"],Wt=(e,t,n)=>{var o=he.innerParams.get(e);o&&(o.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?_t(e,t,o):"Tab"===t.key?Kt(t,o):[...Rt,...zt].includes(t.key)?Yt(t.key):"Escape"===t.key&&Zt(t,o,n))},_t=(e,t,n)=>{t.isComposing||t.target&&e.getInput()&&t.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(n.input)||(je(),t.preventDefault()))},Kt=(e,t)=>{var n=e.target,o=D();let i=-1;for(let e=0;e<o.length;e++)if(n===o[e]){i=e;break}e.shiftKey?Ft(0,i,-1):Ft(0,i,1),e.stopPropagation(),e.preventDefault()},Yt=e=>{const t=E(),n=P(),o=T();if([t,n,o].includes(document.activeElement)){e=Rt.includes(e)?"nextElementSibling":"previousElementSibling";const i=document.activeElement[e];i&&i.focus()}},Zt=(e,t,n)=>{c(t.allowEscapeKey)&&(e.preventDefault(),n(l.esc))},Jt=(t,e,n)=>{e.popup.onclick=()=>{var e=he.innerParams.get(t);e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||e.timer||e.input||n(l.close)}};let Xt=!1;const $t=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(Xt=!0)}}},Gt=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(Xt=!0)}}},Qt=(n,o,i)=>{o.container.onclick=e=>{var t=he.innerParams.get(n);Xt?Xt=!1:e.target===o.container&&c(t.allowOutsideClick)&&i(l.backdrop)}};const en=(e,t,n)=>{var o=j();J(o),t.timer&&(e.timeout=new ut(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(Z(o),setTimeout(()=>{e.timeout&&e.timeout.running&&ne(t.timer)})))},tn=(e,t)=>{if(!t.toast)return c(t.allowEnterKey)?void(nn(e,t)||Ft(0,-1,1)):on()},nn=(e,t)=>t.focusDeny&&G(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&G(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!G(e.confirmButton))&&(e.confirmButton.focus(),!0),on=()=>{document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};const an=e=>{for(const t in e)e[t]=new WeakMap};e=Object.freeze({hideLoading:Xe,disableLoading:Xe,getInput:function(e){var t=he.innerParams.get(e||this);return(e=he.domCache.get(e||this))?F(e.popup,t.input):null},close:at,closePopup:at,closeModal:at,closeToast:at,enableButtons:function(){ct(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){ct(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return lt(this.getInput(),!1)},disableInput:function(){return lt(this.getInput(),!0)},showValidationMessage:function(e){const t=he.domCache.get(this);var n=he.innerParams.get(this);V(t.validationMessage,e),t.validationMessage.className=h["validation-message"],n.customClass&&n.customClass.validationMessage&&W(t.validationMessage,n.customClass.validationMessage),Z(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",h["validation-message"]),R(o),W(o,h.inputerror))},resetValidationMessage:function(){var e=he.domCache.get(this);e.validationMessage&&J(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),_(t,h.inputerror))},getProgressSteps:function(){return he.domCache.get(this).progressSteps},_main:function(e,t={}){Ze(Object.assign({},t,e)),Ie.currentInstance&&Ie.currentInstance._destroy(),Ie.currentInstance=this,pt(e=((e,t)=>{const n=ht(e),o=Object.assign({},Re,t,n,e);return o.showClass=Object.assign({},Re.showClass,o.showClass),o.hideClass=Object.assign({},Re.hideClass,o.hideClass),o})(e,t)),Object.freeze(e),Ie.timeout&&(Ie.timeout.stop(),delete Ie.timeout),clearTimeout(Ie.restoreFocusTimeout);var s,r,c,t=(e=>{const t={popup:v(),container:b(),actions:L(),confirmButton:E(),denyButton:P(),cancelButton:T(),loader:S(),closeButton:M(),validationMessage:x(),progressSteps:B()};return he.domCache.set(e,t),t})(this);return Oe(this,e),he.innerParams.set(this,e),s=this,r=t,c=e,new Promise(e=>{const t=e=>{s.closePopup({isDismissed:!0,dismiss:e})};var n,o,i,a;ot.swalPromiseResolve.set(s,e),r.confirmButton.onclick=()=>((e,t)=>{e.disableButtons(),t.input?Ht(e,t,"confirm"):Ut(e,t,!0)})(s,c),r.denyButton.onclick=()=>((e,t)=>{e.disableButtons(),t.returnInputValueOnDeny?Ht(e,t,"deny"):Vt(e,t,!1)})(s,c),r.cancelButton.onclick=()=>((e,t)=>{e.disableButtons(),t(l.cancel)})(s,t),r.closeButton.onclick=()=>t(l.close),n=s,a=r,e=t,he.innerParams.get(n).toast?Jt(n,a,e):($t(a),Gt(a),Qt(n,a,e)),o=s,a=Ie,e=c,i=t,a.keydownTarget&&a.keydownHandlerAdded&&(a.keydownTarget.removeEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!1),e.toast||(a.keydownHandler=e=>Wt(o,e,i),a.keydownTarget=e.keydownListenerCapture?window:v(),a.keydownListenerCapture=e.keydownListenerCapture,a.keydownTarget.addEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!0),e=s,"select"===(a=c).input||"radio"===a.input?Ot(e,a):["text","email","number","tel","textarea"].includes(a.input)&&(u(a.inputValue)||p(a.inputValue))&&(Me(E()),jt(e,a)),At(c),en(Ie,c,t),tn(r,c),setTimeout(()=>{r.container.scrollTop=0})})},update:function(t){var e=v(),n=he.innerParams.get(this);if(!e||N(e,n.hideClass.popup))return s("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o={};Object.keys(t).forEach(e=>{cn.isUpdatableParameter(e)?o[e]=t[e]:s('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=Object.assign({},n,o),Oe(this,n),he.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){var e=he.domCache.get(this);const t=he.innerParams.get(this);t&&(e.popup&&Ie.swalCloseEventFinishedCallback&&(Ie.swalCloseEventFinishedCallback(),delete Ie.swalCloseEventFinishedCallback),Ie.deferDisposalTimer&&(clearTimeout(Ie.deferDisposalTimer),delete Ie.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),delete this.params,delete Ie.keydownHandler,delete Ie.keydownTarget,an(he),an(ot))}});let sn;class rn{constructor(...e){"undefined"!=typeof window&&(sn=this,e=Object.freeze(this.constructor.argsToParams(e)),Object.defineProperties(this,{params:{value:e,writable:!1,enumerable:!0,configurable:!0}}),e=this._main(this.params),he.promise.set(this,e))}then(e){const t=he.promise.get(this);return t.then(e)}finally(e){const t=he.promise.get(this);return t.finally(e)}}Object.assign(rn.prototype,e),Object.assign(rn,Je),Object.keys(e).forEach(t=>{rn[t]=function(...e){if(sn)return sn[t](...e)}}),rn.DismissReason=l,rn.version="11.0.18";const cn=rn;return cn.default=cn,cn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9;pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start     top            top-end\" \"center-start  center         center-end\" \"bottom-start  bottom-center  bottom-end\" \"gap gap gap\";grid-template-rows:auto auto auto .625em;height:100%;padding:.625em .625em 0;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container::after{content:\"\";grid-column:1/4;grid-row:4;height:.625em}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(115,103,240,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(234,84,85,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,125,136,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 0}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 0;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}");;
//     Underscore.js 1.9.1
//     http://underscorejs.org
//     (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
//     Underscore may be freely distributed under the MIT license.
!function(){var n="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},r=n._,e=Array.prototype,o=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,u=e.push,c=e.slice,p=o.toString,i=o.hasOwnProperty,t=Array.isArray,a=Object.keys,l=Object.create,f=function(){},h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"==typeof exports||exports.nodeType?n._=h:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=h),exports._=h),h.VERSION="1.9.1";var v,y=function(u,i,n){if(void 0===i)return u;switch(null==n?3:n){case 1:return function(n){return u.call(i,n)};case 3:return function(n,r,t){return u.call(i,n,r,t)};case 4:return function(n,r,t,e){return u.call(i,n,r,t,e)}}return function(){return u.apply(i,arguments)}},d=function(n,r,t){return h.iteratee!==v?h.iteratee(n,r):null==n?h.identity:h.isFunction(n)?y(n,r,t):h.isObject(n)&&!h.isArray(n)?h.matcher(n):h.property(n)};h.iteratee=v=function(n,r){return d(n,r,1/0)};var g=function(u,i){return i=null==i?u.length-1:+i,function(){for(var n=Math.max(arguments.length-i,0),r=Array(n),t=0;t<n;t++)r[t]=arguments[t+i];switch(i){case 0:return u.call(this,r);case 1:return u.call(this,arguments[0],r);case 2:return u.call(this,arguments[0],arguments[1],r)}var e=Array(i+1);for(t=0;t<i;t++)e[t]=arguments[t];return e[i]=r,u.apply(this,e)}},m=function(n){if(!h.isObject(n))return{};if(l)return l(n);f.prototype=n;var r=new f;return f.prototype=null,r},b=function(r){return function(n){return null==n?void 0:n[r]}},j=function(n,r){return null!=n&&i.call(n,r)},x=function(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0},_=Math.pow(2,53)-1,A=b("length"),w=function(n){var r=A(n);return"number"==typeof r&&0<=r&&r<=_};h.each=h.forEach=function(n,r,t){var e,u;if(r=y(r,t),w(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;e<u;e++)r(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=Array(u),o=0;o<u;o++){var a=e?e[o]:o;i[o]=r(n[a],a,n)}return i};var O=function(c){return function(n,r,t,e){var u=3<=arguments.length;return function(n,r,t,e){var u=!w(n)&&h.keys(n),i=(u||n).length,o=0<c?0:i-1;for(e||(t=n[u?u[o]:o],o+=c);0<=o&&o<i;o+=c){var a=u?u[o]:o;t=r(t,n[a],a,n)}return t}(n,y(r,e,4),t,u)}};h.reduce=h.foldl=h.inject=O(1),h.reduceRight=h.foldr=O(-1),h.find=h.detect=function(n,r,t){var e=(w(n)?h.findIndex:h.findKey)(n,r,t);if(void 0!==e&&-1!==e)return n[e]},h.filter=h.select=function(n,e,r){var u=[];return e=d(e,r),h.each(n,function(n,r,t){e(n,r,t)&&u.push(n)}),u},h.reject=function(n,r,t){return h.filter(n,h.negate(d(r)),t)},h.every=h.all=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(!r(n[o],o,n))return!1}return!0},h.some=h.any=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(r(n[o],o,n))return!0}return!1},h.contains=h.includes=h.include=function(n,r,t,e){return w(n)||(n=h.values(n)),("number"!=typeof t||e)&&(t=0),0<=h.indexOf(n,r,t)},h.invoke=g(function(n,t,e){var u,i;return h.isFunction(t)?i=t:h.isArray(t)&&(u=t.slice(0,-1),t=t[t.length-1]),h.map(n,function(n){var r=i;if(!r){if(u&&u.length&&(n=x(n,u)),null==n)return;r=n[t]}return null==r?r:r.apply(n,e)})}),h.pluck=function(n,r){return h.map(n,h.property(r))},h.where=function(n,r){return h.filter(n,h.matcher(r))},h.findWhere=function(n,r){return h.find(n,h.matcher(r))},h.max=function(n,e,r){var t,u,i=-1/0,o=-1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,c=(n=w(n)?n:h.values(n)).length;a<c;a++)null!=(t=n[a])&&i<t&&(i=t);else e=d(e,r),h.each(n,function(n,r,t){u=e(n,r,t),(o<u||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},h.min=function(n,e,r){var t,u,i=1/0,o=1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,c=(n=w(n)?n:h.values(n)).length;a<c;a++)null!=(t=n[a])&&t<i&&(i=t);else e=d(e,r),h.each(n,function(n,r,t){((u=e(n,r,t))<o||u===1/0&&i===1/0)&&(i=n,o=u)});return i},h.shuffle=function(n){return h.sample(n,1/0)},h.sample=function(n,r,t){if(null==r||t)return w(n)||(n=h.values(n)),n[h.random(n.length-1)];var e=w(n)?h.clone(n):h.values(n),u=A(e);r=Math.max(Math.min(r,u),0);for(var i=u-1,o=0;o<r;o++){var a=h.random(o,i),c=e[o];e[o]=e[a],e[a]=c}return e.slice(0,r)},h.sortBy=function(n,e,r){var u=0;return e=d(e,r),h.pluck(h.map(n,function(n,r,t){return{value:n,index:u++,criteria:e(n,r,t)}}).sort(function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(e<t||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index}),"value")};var k=function(o,r){return function(e,u,n){var i=r?[[],[]]:{};return u=d(u,n),h.each(e,function(n,r){var t=u(n,r,e);o(i,n,t)}),i}};h.groupBy=k(function(n,r,t){j(n,t)?n[t].push(r):n[t]=[r]}),h.indexBy=k(function(n,r,t){n[t]=r}),h.countBy=k(function(n,r,t){j(n,t)?n[t]++:n[t]=1});var S=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;h.toArray=function(n){return n?h.isArray(n)?c.call(n):h.isString(n)?n.match(S):w(n)?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:w(n)?n.length:h.keys(n).length},h.partition=k(function(n,r,t){n[t?0:1].push(r)},!0),h.first=h.head=h.take=function(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[0]:h.initial(n,n.length-r)},h.initial=function(n,r,t){return c.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))},h.last=function(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[n.length-1]:h.rest(n,Math.max(0,n.length-r))},h.rest=h.tail=h.drop=function(n,r,t){return c.call(n,null==r||t?1:r)},h.compact=function(n){return h.filter(n,Boolean)};var M=function(n,r,t,e){for(var u=(e=e||[]).length,i=0,o=A(n);i<o;i++){var a=n[i];if(w(a)&&(h.isArray(a)||h.isArguments(a)))if(r)for(var c=0,l=a.length;c<l;)e[u++]=a[c++];else M(a,r,t,e),u=e.length;else t||(e[u++]=a)}return e};h.flatten=function(n,r){return M(n,r,!1)},h.without=g(function(n,r){return h.difference(n,r)}),h.uniq=h.unique=function(n,r,t,e){h.isBoolean(r)||(e=t,t=r,r=!1),null!=t&&(t=d(t,e));for(var u=[],i=[],o=0,a=A(n);o<a;o++){var c=n[o],l=t?t(c,o,n):c;r&&!t?(o&&i===l||u.push(c),i=l):t?h.contains(i,l)||(i.push(l),u.push(c)):h.contains(u,c)||u.push(c)}return u},h.union=g(function(n){return h.uniq(M(n,!0,!0))}),h.intersection=function(n){for(var r=[],t=arguments.length,e=0,u=A(n);e<u;e++){var i=n[e];if(!h.contains(r,i)){var o;for(o=1;o<t&&h.contains(arguments[o],i);o++);o===t&&r.push(i)}}return r},h.difference=g(function(n,r){return r=M(r,!0,!0),h.filter(n,function(n){return!h.contains(r,n)})}),h.unzip=function(n){for(var r=n&&h.max(n,A).length||0,t=Array(r),e=0;e<r;e++)t[e]=h.pluck(n,e);return t},h.zip=g(h.unzip),h.object=function(n,r){for(var t={},e=0,u=A(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t};var F=function(i){return function(n,r,t){r=d(r,t);for(var e=A(n),u=0<i?0:e-1;0<=u&&u<e;u+=i)if(r(n[u],u,n))return u;return-1}};h.findIndex=F(1),h.findLastIndex=F(-1),h.sortedIndex=function(n,r,t,e){for(var u=(t=d(t,e,1))(r),i=0,o=A(n);i<o;){var a=Math.floor((i+o)/2);t(n[a])<u?i=a+1:o=a}return i};var E=function(i,o,a){return function(n,r,t){var e=0,u=A(n);if("number"==typeof t)0<i?e=0<=t?t:Math.max(t+u,e):u=0<=t?Math.min(t+1,u):t+u+1;else if(a&&t&&u)return n[t=a(n,r)]===r?t:-1;if(r!=r)return 0<=(t=o(c.call(n,e,u),h.isNaN))?t+e:-1;for(t=0<i?e:u-1;0<=t&&t<u;t+=i)if(n[t]===r)return t;return-1}};h.indexOf=E(1,h.findIndex,h.sortedIndex),h.lastIndexOf=E(-1,h.findLastIndex),h.range=function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),i=0;i<e;i++,n+=t)u[i]=n;return u},h.chunk=function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(c.call(n,e,e+=r));return t};var N=function(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var i=m(n.prototype),o=n.apply(i,u);return h.isObject(o)?o:i};h.bind=g(function(r,t,e){if(!h.isFunction(r))throw new TypeError("Bind must be called on a function");var u=g(function(n){return N(r,u,t,this,e.concat(n))});return u}),h.partial=g(function(u,i){var o=h.partial.placeholder,a=function(){for(var n=0,r=i.length,t=Array(r),e=0;e<r;e++)t[e]=i[e]===o?arguments[n++]:i[e];for(;n<arguments.length;)t.push(arguments[n++]);return N(u,a,this,this,t)};return a}),(h.partial.placeholder=h).bindAll=g(function(n,r){var t=(r=M(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=h.bind(n[e],n)}}),h.memoize=function(e,u){var i=function(n){var r=i.cache,t=""+(u?u.apply(this,arguments):n);return j(r,t)||(r[t]=e.apply(this,arguments)),r[t]};return i.cache={},i},h.delay=g(function(n,r,t){return setTimeout(function(){return n.apply(null,t)},r)}),h.defer=h.partial(h.delay,h,1),h.throttle=function(t,e,u){var i,o,a,c,l=0;u||(u={});var f=function(){l=!1===u.leading?0:h.now(),i=null,c=t.apply(o,a),i||(o=a=null)},n=function(){var n=h.now();l||!1!==u.leading||(l=n);var r=e-(n-l);return o=this,a=arguments,r<=0||e<r?(i&&(clearTimeout(i),i=null),l=n,c=t.apply(o,a),i||(o=a=null)):i||!1===u.trailing||(i=setTimeout(f,r)),c};return n.cancel=function(){clearTimeout(i),l=0,i=o=a=null},n},h.debounce=function(t,e,u){var i,o,a=function(n,r){i=null,r&&(o=t.apply(n,r))},n=g(function(n){if(i&&clearTimeout(i),u){var r=!i;i=setTimeout(a,e),r&&(o=t.apply(this,n))}else i=h.delay(a,e,this,n);return o});return n.cancel=function(){clearTimeout(i),i=null},n},h.wrap=function(n,r){return h.partial(r,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},h.after=function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},h.before=function(n,r){var t;return function(){return 0<--n&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}},h.once=h.partial(h.before,2),h.restArguments=g;var I=!{toString:null}.propertyIsEnumerable("toString"),T=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],B=function(n,r){var t=T.length,e=n.constructor,u=h.isFunction(e)&&e.prototype||o,i="constructor";for(j(n,i)&&!h.contains(r,i)&&r.push(i);t--;)(i=T[t])in n&&n[i]!==u[i]&&!h.contains(r,i)&&r.push(i)};h.keys=function(n){if(!h.isObject(n))return[];if(a)return a(n);var r=[];for(var t in n)j(n,t)&&r.push(t);return I&&B(n,r),r},h.allKeys=function(n){if(!h.isObject(n))return[];var r=[];for(var t in n)r.push(t);return I&&B(n,r),r},h.values=function(n){for(var r=h.keys(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e},h.mapObject=function(n,r,t){r=d(r,t);for(var e=h.keys(n),u=e.length,i={},o=0;o<u;o++){var a=e[o];i[a]=r(n[a],a,n)}return i},h.pairs=function(n){for(var r=h.keys(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},h.invert=function(n){for(var r={},t=h.keys(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r},h.functions=h.methods=function(n){var r=[];for(var t in n)h.isFunction(n[t])&&r.push(t);return r.sort()};var R=function(c,l){return function(n){var r=arguments.length;if(l&&(n=Object(n)),r<2||null==n)return n;for(var t=1;t<r;t++)for(var e=arguments[t],u=c(e),i=u.length,o=0;o<i;o++){var a=u[o];l&&void 0!==n[a]||(n[a]=e[a])}return n}};h.extend=R(h.allKeys),h.extendOwn=h.assign=R(h.keys),h.findKey=function(n,r,t){r=d(r,t);for(var e,u=h.keys(n),i=0,o=u.length;i<o;i++)if(r(n[e=u[i]],e,n))return e};var q,K,z=function(n,r,t){return r in t};h.pick=g(function(n,r){var t={},e=r[0];if(null==n)return t;h.isFunction(e)?(1<r.length&&(e=y(e,r[1])),r=h.allKeys(n)):(e=z,r=M(r,!1,!1),n=Object(n));for(var u=0,i=r.length;u<i;u++){var o=r[u],a=n[o];e(a,o,n)&&(t[o]=a)}return t}),h.omit=g(function(n,t){var r,e=t[0];return h.isFunction(e)?(e=h.negate(e),1<t.length&&(r=t[1])):(t=h.map(M(t,!1,!1),String),e=function(n,r){return!h.contains(t,r)}),h.pick(n,e,r)}),h.defaults=R(h.allKeys,!0),h.create=function(n,r){var t=m(n);return r&&h.extendOwn(t,r),t},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,r){return r(n),n},h.isMatch=function(n,r){var t=h.keys(r),e=t.length;if(null==n)return!e;for(var u=Object(n),i=0;i<e;i++){var o=t[i];if(r[o]!==u[o]||!(o in u))return!1}return!0},q=function(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var u=typeof n;return("function"===u||"object"===u||"object"==typeof r)&&K(n,r,t,e)},K=function(n,r,t,e){n instanceof h&&(n=n._wrapped),r instanceof h&&(r=r._wrapped);var u=p.call(n);if(u!==p.call(r))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+r;case"[object Number]":return+n!=+n?+r!=+r:0==+n?1/+n==1/r:+n==+r;case"[object Date]":case"[object Boolean]":return+n==+r;case"[object Symbol]":return s.valueOf.call(n)===s.valueOf.call(r)}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof r)return!1;var o=n.constructor,a=r.constructor;if(o!==a&&!(h.isFunction(o)&&o instanceof o&&h.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in r)return!1}e=e||[];for(var c=(t=t||[]).length;c--;)if(t[c]===n)return e[c]===r;if(t.push(n),e.push(r),i){if((c=n.length)!==r.length)return!1;for(;c--;)if(!q(n[c],r[c],t,e))return!1}else{var l,f=h.keys(n);if(c=f.length,h.keys(r).length!==c)return!1;for(;c--;)if(l=f[c],!j(r,l)||!q(n[l],r[l],t,e))return!1}return t.pop(),e.pop(),!0},h.isEqual=function(n,r){return q(n,r)},h.isEmpty=function(n){return null==n||(w(n)&&(h.isArray(n)||h.isString(n)||h.isArguments(n))?0===n.length:0===h.keys(n).length)},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=t||function(n){return"[object Array]"===p.call(n)},h.isObject=function(n){var r=typeof n;return"function"===r||"object"===r&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],function(r){h["is"+r]=function(n){return p.call(n)==="[object "+r+"]"}}),h.isArguments(arguments)||(h.isArguments=function(n){return j(n,"callee")});var D=n.document&&n.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof D&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return!h.isSymbol(n)&&isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&isNaN(n)},h.isBoolean=function(n){return!0===n||!1===n||"[object Boolean]"===p.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return void 0===n},h.has=function(n,r){if(!h.isArray(r))return j(n,r);for(var t=r.length,e=0;e<t;e++){var u=r[e];if(null==n||!i.call(n,u))return!1;n=n[u]}return!!t},h.noConflict=function(){return n._=r,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(r){return h.isArray(r)?function(n){return x(n,r)}:b(r)},h.propertyOf=function(r){return null==r?function(){}:function(n){return h.isArray(n)?x(r,n):r[n]}},h.matcher=h.matches=function(r){return r=h.extendOwn({},r),function(n){return h.isMatch(n,r)}},h.times=function(n,r,t){var e=Array(Math.max(0,n));r=y(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},h.random=function(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var L={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},P=h.invert(L),W=function(r){var t=function(n){return r[n]},n="(?:"+h.keys(r).join("|")+")",e=RegExp(n),u=RegExp(n,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=W(L),h.unescape=W(P),h.result=function(n,r,t){h.isArray(r)||(r=[r]);var e=r.length;if(!e)return h.isFunction(t)?t.call(n):t;for(var u=0;u<e;u++){var i=null==n?void 0:n[r[u]];void 0===i&&(i=t,u=e),n=h.isFunction(i)?i.call(n):i}return n};var C=0;h.uniqueId=function(n){var r=++C+"";return n?n+r:r},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var J=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},V=/\\|'|\r|\n|\u2028|\u2029/g,$=function(n){return"\\"+U[n]};h.template=function(i,n,r){!n&&r&&(n=r),n=h.defaults({},n,h.templateSettings);var t,e=RegExp([(n.escape||J).source,(n.interpolate||J).source,(n.evaluate||J).source].join("|")+"|$","g"),o=0,a="__p+='";i.replace(e,function(n,r,t,e,u){return a+=i.slice(o,u).replace(V,$),o=u+n.length,r?a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":t?a+="'+\n((__t=("+t+"))==null?'':__t)+\n'":e&&(a+="';\n"+e+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{t=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var u=function(n){return t.call(this,n,h)},c=n.variable||"obj";return u.source="function("+c+"){\n"+a+"}",u},h.chain=function(n){var r=h(n);return r._chain=!0,r};var G=function(n,r){return n._chain?h(r).chain():r};h.mixin=function(t){return h.each(h.functions(t),function(n){var r=h[n]=t[n];h.prototype[n]=function(){var n=[this._wrapped];return u.apply(n,arguments),G(this,r.apply(h,n))}}),h},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(r){var t=e[r];h.prototype[r]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==r&&"splice"!==r||0!==n.length||delete n[0],G(this,n)}}),h.each(["concat","join","slice"],function(n){var r=e[n];h.prototype[n]=function(){return G(this,r.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},h.prototype.valueOf=h.prototype.toJSON=h.prototype.value,h.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}();;
'use strict';

var isMobileLayout = false;
var activeMobileScrolling = false;
var currentUrl = window.location.href;
var isDebugMode = currentUrl.includes("localhost") || currentUrl.includes("83.218.209.97");
var useDrawerForLists = false;
var cardConnectCountries = []; //move here to not throw exceptions
var reactGlobalUiCulture = '';

function rebindAjaxGrid(id) {
    var grid = $("#" + id).data('kendoGrid');
    if (grid) {
        grid.dataSource.read();
    }
}

function getMobileDeviceExludeHeight(onlyTop, onlyBottom) {
    if (onlyTop) {
        return wlMobilePaddingTop;
    }

    if (onlyBottom) {
        return wlMobileBottom;
    }

    //var savedMobileDeviceModel = mobileDeviceModelUnq;
    return wlMobilePaddingTop + wlMobileBottom;
}

function closeModalDialog(id, preventMobileArrayChanges) {
    $('#' + id).modal('toggle');
    $(`#${id} .modal-dialog`).removeAttr("style");

    if (!preventMobileArrayChanges) {
        try {
            tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
        } catch (e) {
             
        }
    }
    $('.k-scheduler-refresh-clone.hide').removeClass('hide');

    setModalBodyHeight();
    setTimeout(function () { setModalBodyHeight(); }, 1000);
}

function closeLastModalDialog(modalToCloseCount, preventMobileArrayChanges) {
    if (modalToCloseCount == null || modalToCloseCount == '') {
        modalToCloseCount = 0;
    }

    var closedModal = 0;
    if ($("#modal6.in")[0] || $("#modal6.show")[0]) {
        closeModalDialog("modal6", preventMobileArrayChanges);
        closedModal = 6;
    }

    if ($("#modal5.in")[0] || $("#modal5.show")[0]) {
        closeModalDialog("modal5", preventMobileArrayChanges);
        closedModal = 5;
    }
    else if ($("#modal4.in")[0] || $("#modal4.show")[0]) {
        closeModalDialog("modal4", preventMobileArrayChanges);
        closedModal = 4;
    }
    else if ($("#modal3.in")[0] || $("#modal3.show")[0]) {
        closeModalDialog("modal3", preventMobileArrayChanges);
        closedModal = 3;
    }
    else if ($("#modal2.in")[0] || $("#modal2.show")[0]) {
        closeModalDialog("modal2", preventMobileArrayChanges);
        closedModal = 2;
    }
    else if ($("#modal1.in")[0] || $("#modal1.show")[0]) {
        closeModalDialog("modal1", preventMobileArrayChanges);
        closedModal = 2;
    }
    else if ($("#action-modal.in")[0] || $("#action-modal.show")[0]) {
        closeModalDialog("action-modal", preventMobileArrayChanges);
        closedModal = 1;
    }

    if (modalToCloseCount == 0 || closedModal == 1) {
        return false;
    }
    if (modalToCloseCount > 0) {
        closeLastModalDialog(modalToCloseCount - 1, preventMobileArrayChanges);
    }
}

function closeAllModalDialogs() {
    const modal6 = $("#modal6");
    const modal5 = $("#modal5");
    const modal4 = $("#modal4");
    const modal3 = $("#modal3");
    const modal2 = $("#modal2");

    const actionModal = $("#action-modal");
    if ($(modal6).hasClass("in")) {
        $(modal6).modal('toggle');
    }
    if ($(modal5).hasClass("in")) {
        $(modal5).modal('toggle');
    }
    if ($(modal4).hasClass("in")) {
        $(modal4).modal('toggle');
    }
    if ($(modal3).hasClass("in")) {
        $(modal3).modal('toggle');
    }
    if ($(modal2).hasClass("in")) {
        $(modal2).modal('toggle');
    }
    if ($(actionModal).hasClass("in")) {
        $(actionModal).modal('toggle');
    }
}

function getLastOpenModalDialogId() {
    const modal5 = $("#modal5");
    const modal4 = $("#modal4");
    const modal3 = $("#modal3");
    const modal2 = $("#modal2");

    const actionModal = $("#action-modal");
    if ($(modal5).hasClass("in")) {
        return modal5;
    }
    if ($(modal4).hasClass("in")) {
        return modal4;
    }
    if ($(modal3).hasClass("in")) {
        return modal3;
    }
    if ($(modal2).hasClass("in")) {
        return modal2;
    }
    if ($(actionModal).hasClass("in")) {
        return actionModal;
    }
}

//function is used only for MemberPortal
function openUrlModalMemberPortal(url, widthClass, htmlData, clickedElement) {
    if (widthClass == null) {
        widthClass = 'md';
    }
    var id = "modal1";
    var widthPixels = 1200;
    var byDeviceWidth = false;

    if ($("#modal1").hasClass("in") || $("#modal1").hasClass("show")) {
        id = "modal2";
    }
    if ($("#modal2").hasClass("in") || $("#modal2").hasClass("show")) {
        id = "modal3";
    }
    if ($("#modal3").hasClass("in") || $("#modal3").hasClass("show")) {
        id = "modal4";
    }
    if ($("#modal4").hasClass("in") || $("#modal4").hasClass("show")) {
        id = "modal5";
    }

    if (widthClass == 'xl') {
        widthPixels = 1200;
    }

    if (widthClass == 'lg') {
        widthPixels = 1000;
    }

    if (widthClass == 'md') {
        widthPixels = 800;
    }

    if (widthClass == 'sm') {
        widthPixels = 600;
    }

    if (widthClass == 'xs') {
        widthPixels = 500;
    }

    if ($(window).width() < widthPixels) {
        byDeviceWidth = true;
    }

    var zIndexAttributeValue = '';
    if (clickedElement) {
        zIndexAttributeValue = $(clickedElement).attr('data-zindex');
    }

    var htmlToAppend = `<div class='modal modal-${id} fade' id=${id} role='dialog' style='padding-left: 0px;' data-timest='${new Date($.now())}'>`;
    htmlToAppend += `<div class='modal-dialog modal-${id}'>`;
    htmlToAppend += `<div class='modal-content' id='${id}-container'>`;
    htmlToAppend += `</div></div></div>`;

    $("body").append(htmlToAppend);
    $(`#${id}`).modal({ backdrop: 'static' });
    $('#' + id).modal('show');
    $(`.modal-${id}`).addClass("modal-loading");

    if (zIndexAttributeValue && isMobileLayout) {
        $(`.modal-${id}`).css("z-index", zIndexAttributeValue);
    }

    //add spinner
    createSpinner(`#${id}-container`, true, true, '', false, true);

    if (isNullOrEmpty(htmlData)) {
        jQuery.ajax({
            url: url,
            type: "GET",
            success: function (data) {
                if (data != null && data.isRedirect == true) {
                    createSpinner(`#${id}`, true, true, '', false, true);
                    window.location.href = data.url;
                } else {
                    $(`.modal-${id}`).removeClass("modal-loading");
                    $(`#${id}-container`).html(data);

                    if (widthClass != null) {
                        if (!byDeviceWidth) {
                            $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
                        } else {
                            $(`#${id} .modal-dialog`).css(`max-width`, ($(window).width() - 40) + 'px');
                        }
                    }

                    $("html").css("overflow", "hidden");
                    $("#ajax-loader").removeClass("loading");
                    setModalBodyHeight();
                    fixMobileKendoInputs();
                    if (typeof (applyCommonHelpers) === typeof (Function)){
                        applyCommonHelpers($(`#${id}`));
                    }
                    if(typeof (loadModalStickyItems) === typeof (Function)){
                        loadModalStickyItems();
                    }
                  
                    overrideDateTimeValidators();
                    $('.k-scheduler-refresh-clone').addClass('hide');
                    setTimeout(function () { setModalBodyHeight(); fixMobileKendoInputs(); }, 1000);
                }
            },
            error: function (error) {
                console.error('Server error', error);
            }
        });
    } else {
        jQuery.ajax({
            url: url,
            type: "POST",
            data: htmlData,
            contentType: "application/json; charset=utf-8",
            async: true,
            success: function (data) {
                if (data != null && data.isRedirect == true) {
                    createSpinner(`#${id}`, true, true, '', false, true);
                    window.location.href = data.url;
                } else {
                    $(`.modal-${id}`).removeClass("modal-loading");
                    $(`#${id}-container`).html(data);

                    if (widthClass != null) {
                        if (!byDeviceWidth) {
                            $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
                        } else {
                            $(`#${id} .modal-dialog`).css(`max-width`, ($(window).width() - 40) + 'px');
                        }
                    }

                    $("html").css("overflow", "hidden");
                    $("#ajax-loader").removeClass("loading");
                    setModalBodyHeight();
                    fixMobileKendoInputs();
                    if (typeof (applyCommonHelpers) === typeof (Function)) {
                        applyCommonHelpers($(`#${id}`));
                    }
                    if (typeof (loadModalStickyItems) === typeof (Function)) {
                        loadModalStickyItems();
                    }
       
                    
                    overrideDateTimeValidators();
                    $('.k-scheduler-refresh-clone').addClass('hide');
                    setTimeout(function () { setModalBodyHeight(); fixMobileKendoInputs(); }, 1000);
                }
            },
            error: function (error) {
                console.error('Server error', error);
            }
        });
    }

}

function openContentModalMemberPortal(content, widthClass, clickedElement, parentClass) {
    if (widthClass == null) {
        widthClass = 'md';
    }
    var id = "modal1";
    var widthPixels = 1200;
    var byDeviceWidth = false;

    if ($("#modal1").hasClass("in") || $("#modal1").hasClass("show")) {
        id = "modal2";
    }
    if ($("#modal2").hasClass("in") || $("#modal2").hasClass("show")) {
        id = "modal3";
    }
    if ($("#modal3").hasClass("in") || $("#modal3").hasClass("show")) {
        id = "modal4";
    }
    if ($("#modal4").hasClass("in") || $("#modal4").hasClass("show")) {
        id = "modal5";
    }

    if (widthClass == 'xl') {
        widthPixels = 1200;
    }

    if (widthClass == 'lg') {
        widthPixels = 1000;
    }

    if (widthClass == 'md') {
        widthPixels = 800;
    }

    if (widthClass == 'sm') {
        widthPixels = 600;
    }

    if (widthClass == 'xs') {
        widthPixels = 500;
    }

    if ($(window).width() < widthPixels) {
        byDeviceWidth = true;
    }

    var zIndexAttributeValue = '';
    if (clickedElement) {
        zIndexAttributeValue = $(clickedElement).attr('data-zindex');
    }

    if (isNullOrEmpty(parentClass)) {
        parentClass = '';
    }

    var htmlToAppend = `<div class='modal modal-${id} fade ${parentClass}' id=${id} role='dialog' style='padding-left: 0px;' data-timest='${new Date($.now())}'>`;
    htmlToAppend += `<div class='modal-dialog modal-${id}'>`;
    htmlToAppend += `<div class='modal-content' id='${id}-container'>`;
    htmlToAppend += `</div></div></div>`;

    $("body").append(htmlToAppend);
    $(`#${id}`).modal({ backdrop: 'static' });
    $('#' + id).modal('show');
    $(`.modal-${id}`).addClass("modal-loading");

    if (zIndexAttributeValue && isMobileLayout) {
        $(`.modal-${id}`).css("z-index", zIndexAttributeValue);
    }

    //add spinner
    createSpinner(`#${id}-container`, true, true, '', false, true);

    if (isNullOrEmpty(content)==false) {
        $(`.modal-${id}`).removeClass("modal-loading");
        $(`#${id}-container`).html(content);

        if (widthClass != null) {
            if (!byDeviceWidth) {
                $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
            } else {
                $(`#${id} .modal-dialog`).css(`max-width`, ($(window).width() - 40) + 'px');
            }
        }

       
        $("#ajax-loader").removeClass("loading");
        setModalBodyHeight();
        fixMobileKendoInputs();
        if (typeof (applyCommonHelpers) === typeof (Function)) {
            $("html").css("overflow", "hidden");
            applyCommonHelpers($(`#${id}`));
        }
        if (typeof (loadModalStickyItems) === typeof (Function)) {
            loadModalStickyItems();
        }

        overrideDateTimeValidators();
        $('.k-scheduler-refresh-clone').addClass('hide');
        setTimeout(function () { setModalBodyHeight(); fixMobileKendoInputs(); }, 1000);
    } 

}


function openModalDialog(url, widthClass, jsonData, clickedElement, useReactModal) {
    //xs, sm, md, lg, xl
    if ($("#member-portal-body")[0] || isMobileLayout) {
        //member portal function
        openUrlModalMemberPortal(url, widthClass, jsonData, clickedElement);
    } else {
        if (widthClass == null) {
            widthClass = 'md';
        }

        var id = "action-modal";
        if ($("#action-modal").hasClass("in")) {
            id = "modal2";
        }
        if ($("#modal2").hasClass("in")) {
            id = "modal3";
        }
        if ($("#modal3").hasClass("in")) {
            id = "modal4";
        }
        if ($("#modal4").hasClass("in")) {
            id = "modal5";
        }

        if (!isNullOrEmpty(clickedElement)) {
            var elModalId = $(clickedElement).attr('data-modalid');
            if (!isNullOrEmpty(elModalId)) {
                id = elModalId;
            }
        }

        if (!toBoolean(useReactModal)) {
            var allowOutsideCloseClick = toBoolean($(clickedElement).attr('data-outclose'));

            if (!allowOutsideCloseClick) {
                $('#' + id).modal({ backdrop: 'static' });
            } else {
                $('#' + id).modal({ backdrop: true });
            }
        }
       
        if (!jsonData || jsonData == null || jsonData == "") {
            jQuery.ajax({
                beforeSend: function () {
                    if (id == "action-modal") {
                        $("#action-modal-content-wrapper").html('');
                    } else {
                        $('#' + id + "-container").html('');
                    }

                    if (toBoolean($(clickedElement).data('modalv3'))) {
                        createSpinner(`.modal-v3-content`, true, true, '', false, true);
                    }
                },
                url: url,
                type: "GET",
                async: true,
                success: function (data) {
                    if (id == "action-modal") {
                        $("#action-modal-content-wrapper").html(data);
                        if (widthClass != null) {
                            $("#action-modal .modal-dialog").addClass(`modal-dialog-${widthClass}`);
                            //try {
                            //    var posibileClasses = ['xs', 'sm', 'md', 'lg', 'xl'];
                            //    for (let i = 0; i < posibileClasses.length; i++) {
                            //        // check if the class is not equeal to the current class
                            //        if (posibileClasses[i] != widthClass) {
                            //            $(`#action-modal .modal-dialog`).removeClass(`modal-${posibileClasses[i]}`);
                            //            $(`#action-modal .modal-dialog`).removeClass(`modal-dialog-${posibileClasses[i]}`);
                            //        }
                            //    }
                            //} catch (e) {

                            //}
                        }
                    } else {
                        if (toBoolean(useReactModal)) {
                            $('body').append(data);

                        } else {
                            $('#' + id + "-container").html(data);

                            if (widthClass != null) {
                                $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
                                $(`#${id} .modal-dialog`).addClass(`modal-${widthClass}`);

                                try {
                                    var posibileClasses = ['xs', 'sm', 'md', 'lg', 'xl'];
                                    for (let i = 0; i < posibileClasses.length; i++) {
                                        // check if the class is not equeal to the current class
                                        if (posibileClasses[i] != widthClass) {
                                            $(`#${id} .modal-dialog`).removeClass(`modal-${posibileClasses[i]}`);
                                            $(`#${id} .modal-dialog`).removeClass(`modal-dialog-${posibileClasses[i]}`);
                                        }
                                    }
                                } catch (e) {

                                }



                                $(`#${id} .modal-dialog`).removeClass(`modal-lg`);

                                if (toBoolean($(clickedElement).data('modalv2'))) {
                                    var customPadding = $(clickedElement).attr('data-padding');
                                    $(clickedElement).attr('padding', '');
                                    if (!isNullOrEmpty(customPadding)) {
                                        $(`#${id} .modal-content`).css('padding', customPadding)
                                    }

                                    $(`#${id} .modal-content`).addClass('modal-v2-content');
                                }
                            }
                        }
                    }

                    if (toBoolean($(clickedElement).data('modalv3'))) {
                        var customPadding = $(clickedElement).attr('data-padding');
                        $(clickedElement).attr('padding', '');
                        if (!isNullOrEmpty(customPadding)) {
                            $(`#${id} .modal-content`).css('padding', customPadding)
                        }

                        $(`#${id} .modal-content`).addClass('modal-v3-content');
                        $(`#${id} .modal-dialog`).addClass('--v3');
                        $(`#${id} .modal-dialog`).css('height', window.originalViewportHeight);
                        $(`#${id} .modal-dialog`).addClass('centered');
                    }
                },
                error: function (error) {
                    console.error('Server error', error);
                }
            });
        }
        else {
            jQuery.ajax({
                beforeSend: function () {
                    if (id == "action-modal") {
                        $("#action-modal-content-wrapper").html('');
                    } else {
                        $('#' + id + "-container").html('');
                    }
                },
                url: url,
                data: jsonData,
                contentType: "application/json; charset=utf-8",
                type: "POST",
                async: true,
                success: function (data) {
                    if (id == "action-modal") {
                        $("#action-modal-content-wrapper").html(data);
                        //     $("#action-modal").modal('show');

                        if (widthClass != null) {
                            $("#action-modal .modal-dialog").addClass(`modal-dialog-${widthClass}`);
                        }
                    } else {
                        $('#' + id + "-container").html(data);
                        //  $('#' + id).modal('show');

                        if (widthClass != null) {
                            $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
                        }
                    }
                },
                error: function (error) {
                    console.error('Server error', error);
                }
            });
        }
    }
}

function openModalDialogContent(content, widthClass, clickedElement, parentClass) {
    //xs, sm, md, lg, xl
    if ($("#member-portal-body")[0] || isMobileLayout) {
        //member portal function
        openContentModalMemberPortal(content, widthClass, clickedElement, parentClass);
    } else {
        if (widthClass == null) {
            widthClass = 'md';
        }

        var id = "action-modal";
        if ($("#action-modal").hasClass("in")) {
            id = "modal2";
        }
        if ($("#modal2").hasClass("in")) {
            id = "modal3";
        }
        if ($("#modal3").hasClass("in")) {
            id = "modal4";
        }
        if ($("#modal4").hasClass("in")) {
            id = "modal5";
        }
        $('#' + id).modal({ backdrop: 'static' });

        if (isNullOrEmpty(content)==false) {
            if (id == "action-modal") {
                $("#action-modal-content-wrapper").html('');
            } else {
                $('#' + id + "-container").html('');
            }

            if (id == "action-modal") {
                $("#action-modal-content-wrapper").html(content);
                //     $("#action-modal").modal('show');

                if (widthClass != null) {
                    $("#action-modal .modal-dialog").addClass(`modal-dialog-${widthClass}`);
                }
            } else {
                $('#' + id + "-container").html(content);
                //  $('#' + id).modal('show');

                if (widthClass != null) {
                    $(`#${id} .modal-dialog`).addClass(`modal-dialog-${widthClass}`);
                }
            }

            if (toBoolean($(clickedElement).data('modalv2'))) {
                var customPadding = $(clickedElement).attr('data-padding');
                $(clickedElement).attr('padding', '');
                if (!isNullOrEmpty(customPadding)) {
                    $(`#${id} .modal-content`).css('padding', customPadding)
                }

                $(`#${id} .modal-content`).addClass('modal-v2-content');
            }
        }
    }
}

function submitForm(formId) {
    jQuery("#" + formId).submit();
}

function displayErrorMessageInModalDialog() {

}

function onAjaxPostFormDisableBtn() {
    const buttons = $("button[type='submit']");
    if (buttons.length > 1) {
        buttons.each(function (index, element) {
            $(element).attr('data-textBefore', $(element).html());
            $(element).html('<i class="fa fa-gear rotate-animation"/>&nbsp;Saving');
            $(element).attr('disabled', true);
        });
    } else {
        buttons.attr('data-textBefore', $(buttons).html());
        buttons.html('<i class="fa fa-gear rotate-animation"/>&nbsp;Saving');
        buttons.attr('disabled', true);
    }
}

function onAjaxPostFormEnableBtn() {
    const buttons = $("button[type='submit']");
    if (buttons.length > 1) {
        buttons.each(function (index, element) {
            $(element).html($(element).attr('data-textBefore'));
            $(element).attr('disabled', false);
        });
    } else {
        buttons.html($(buttons).attr('data-textBefore'));
        buttons.attr('disabled', false);
    }
}

function disableSubmitButton() {
    const id = jQuery(this).closest("form").attr("id");
    const btn = jQuery("#" + id).find(':submit')[0];
    jQuery(btn).prop('disabled', true);
    const oldText = jQuery(btn).html();
    jQuery(btn).attr("oldText", oldText);
    jQuery(btn).html('<i class="fa fa-gear rotate-animation"/>&nbsp;Saving');
}

$(document).on("click", ".fn-disable", function () {
    var btnEl = $(this);
    disableBtn(btnEl);
    var hrefAttr = $(this).attr('href');

    if (isNullOrEmpty(hrefAttr) && isMobileLayout) {
        setTimeout(function () {
            enableBtn(btnEl);
        }, 2000);
    }

    if (btnEl.hasClass("btn-modal")) {
        setTimeout(function () {
            enableBtn(btnEl);
        }, 2000);
    }

    if (btnEl.hasClass("click-modal")) {
        setTimeout(function () {
            enableBtn(btnEl);
        }, 2000);
    }

    if (btnEl.hasClass("fn-swal")) {
        setTimeout(function () {
            enableBtn(btnEl);
        }, 1000);
    }
});

$(document).on("click", ".fn-custom-redirect", function () {
    $(this).find('.fn-click-show').removeClass('hide');
    $(this).find('.fn-click-hide').removeClass('hide');

    window.location = $(this).data("href");
});

$(document).on("click", ".fn-redirect", function () {
    if (!$(this).hasClass('fn-prevent-disable')) {
        var btnEl = $(this);
        disableBtn(btnEl); 
    }

    window.location = $(this).data("href");
});

function disableBtn(btn) {
    if (btn == null) {
        return false;
    }

    var attr = btn.attr('disabled');

    if (typeof attr !== 'undefined' && attr == true || btn.hasClass("fn-btn-disabled")) {
        //already disabled
        return false;
    }
    var width = btn.outerWidth(false);
    var height = btn.outerHeight(/*true*/);

    if (browserIsFirefox()) {
        width = btn.width;
        height = btn.height();
    }

    btn.addClass('fn-btn-disabled');

    btn.prop('disabled', true);
    btn.attr("oldText", btn.html());

    btn.addClass("d-inline-flex");
    btn.addClass("d-flex-inherit");

    if (!isMobileLayout) {
        if (!btn.hasClass('fn-initial-padding')) {
            btn.css('padding', "0px");
        }
    }

    btn.css("width", `${width}px`);
    btn.css("height", `${height}px`);

    btn.html('<span style="opacity:0;width:0px;">-</span><span class="btn-active-spinner"/>');

    return false;
}

function enableBtn(btn) {
    btn.prop('disabled', false);
    if (!isMobileLayout) {
        if (!btn.hasClass("fn-initial-padding")) {
            btn.css('padding', ''); // not valid-take initial
        }
    }

    btn.removeClass("disabled");

    btn.removeClass("d-inline-flex");
    btn.removeClass("d-flex-inherit");

    btn.css('height', '');

    btn.removeClass('fn-btn-disabled');
    btn.html(jQuery(btn).attr("oldText"));
    $('.waves-ripple').remove();

    setTimeout(function () {
        //slow text replace issue
        $('.waves-ripple').remove();
    }, 500);
}

function disableThisButton(e) {
    const btn = $(e);
    $(btn).prop('disabled', true);
    const text = $(btn).text();
    $(btn).attr("oldText", $(btn).text());
    $(btn).html('<i class="fa fa-gear rotate-animation" style="margin-right:6px;"/>' + text);
}

function enableThisButton(e) {
    var btn = $(e);
    jQuery(btn).prop('disabled', false);
    jQuery(btn).html(jQuery(btn).attr("oldText"));
}

function disableButtonsByClass(className = '') {
    if ($("#member-portal-body")[0]) {
        if (className == null || className === '') {
            className = "btn-submit";
        }

        const btns = $("." + className);

        //member portal function
        btns.each(function (index) {
            const btn = $(this);
            disableBtn(btn);
        });

        //return false;
    } else {
        var incName = className;

        if (className == null || className === '') {
            className = "submit-btn";
        }
        var isSubmitButton = className == "submit-btn" || className == "btn-submit";

        const btns = $("." + className);

        btns.each(function (index) {
            const btn = $(this);
            $(btn).prop('disabled', true);
            const text = $(btn).text();
            $(btn).attr("oldText", $(btn).text());
            $(btn).html('<i class="fa fa-gear rotate-animation" style="margin-right:6px;"/>' + text);
        });

        if (isSubmitButton && !isMobileLayout) {
            if (className == "submit-btn") {
                var otherBtns = jQuery(".btn-submit");
                otherBtns.each(function (index) {
                    const btn = $(this);
                    $(btn).prop('disabled', true);
                    const text = $(btn).text();
                    $(btn).attr("oldText", $(btn).text());
                    $(btn).html('<i class="fa fa-gear rotate-animation" style="margin-right:6px;"/>' + text);
                });

            } else {
                var otherBtns = jQuery(".submit-btn");
                otherBtns.each(function (index) {
                    const btn = $(this);
                    $(btn).prop('disabled', true);
                    const text = $(btn).text();
                    $(btn).attr("oldText", $(btn).text());
                    $(btn).html('<i class="fa fa-gear rotate-animation" style="margin-right:6px;"/>' + text);
                });
            }

            var submitOtherBtns = jQuery("button[type='submit']");
            submitOtherBtns.each(function (index) {
                if ($(this).is(":not(:disabled)")) {
                    const btn = $(this);
                    $(btn).prop('disabled', true);
                    const text = $(btn).text();
                    $(btn).attr("oldText", $(btn).text());
                    $(btn).html('<i class="fa fa-gear rotate-animation" style="margin-right:6px;"/>' + text);
                }
            });
        }

        if (incName == 'submit-btn' && isMobileLayout) {

            //new admin template
            const addBtns = $(".btn-submit");

            addBtns.each(function (index) {
                const btn = $(this);
                disableBtn(btn);
            });
        }
    }
}

function manualButtonDisable(className = '', text = '') {
    if (className == null || className === '') {
        className = "submit-btn";
    }
    var btns = $("." + className);
    btns.each(function (index) {
        var btn = $(this);
        $(btn).prop('disabled', true);
        $(btn).attr("oldText", $(btn).text());
        $(btn).html('<i class="fa fa-gear rotate-animation"/>&nbsp;' + text);
    });
}

function enableButtonsByClass(className) {
    if (className == null || className == '') {
        className = "submit-btn";
    }

    var isSubmitButton = className == "submit-btn" || className == "btn-submit";

    var btns = jQuery("." + className);

    if ($("#member-portal-body")[0] || className == 'btn-submit') {
        //member portal function
        btns.each(function (index) {
            var btn = jQuery(this);
            enableBtn(btn);
        });
    } else {
        btns.each(function (index) {
            var btn = $(this);
            jQuery(btn).prop('disabled', false);
            jQuery(btn).html(jQuery(btn).attr("oldText"));
        });

    }

    if (isSubmitButton) {
        if (className == "submit-btn") {
            var otherBtns = jQuery(".btn-submit");
            otherBtns.each(function (index) {
                var btn = $(this);
                jQuery(btn).prop('disabled', false);
                jQuery(btn).html(jQuery(btn).attr("oldText"));
            });

        } else {
            var otherBtns = jQuery(".submit-btn");
            otherBtns.each(function (index) {
                var btn = $(this);
                jQuery(btn).prop('disabled', false);
                jQuery(btn).html(jQuery(btn).attr("oldText"));
            });
        }

        var sumitOtherBtns = jQuery("button[type='submit']");
        sumitOtherBtns.each(function (index) {
            var btn = $(this);
            jQuery(btn).prop('disabled', false);
            jQuery(btn).html(jQuery(btn).attr("oldText"));
        });
    }
}

function enableSubmitButton(ref) {
    const id = jQuery(ref).closest("form").attr("id");
    const btn = jQuery("#" + id).find(':submit')[0];
    jQuery(btn).prop('disabled', false);
    const text = jQuery(btn).attr("oldText");
    jQuery(btn).html(text);
    enableButtonsByClass('submit-btn');
    return false;
}

function getSelectedValFromSelectizeDropdown(id) {
    var item = jQuery('#' + id)[0];
    if (item && item.selectize) {
        return item.selectize.getValue();
    } else {
        return "";
    }

}

function disableBtnById(btnId = '', loadText = '') {
    if (btnId === '') {
        return;
    }
    if (loadText === '') {
        loadText = 'Loading'
    }
    const btn = $(`#${btnId}`);
    btn.attr('data-text-before', $(btn).html());
    btn.html($.parseHTML(`<i class="fa fa-gear rotate-animation"/>&nbsp;${loadText}`));
    btn.attr('disabled', true);
}

function enableBtnById(btnId = '') {
    if (btnId === '') {
        return;
    }
    const btn = $(`#${btnId}`);
    btn.html($.parseHTML($(btn).attr('data-text-before')));
    btn.attr('disabled', false);
}

function isEmpty(obj) {
    if (obj == null) return true;
    if (obj.length > 0) return false;
    if (obj.length === 0) return true;
    for (let key in obj) {
        if (hasOwnProperty.call(obj, key)) return false;
    }
    return true;
}

function rebindSelectize(id) {
    var selectize = jQuery("#" + id)[0].selectize;
    selectize.clearOptions();
    selectize.onSearchChange();
    selectize.setValue("");
}

function disableSelectize(id) {
    const select = $("#" + id).selectize();
    const selectize = select[0].selectize;
    selectize.disable();
}

function enableSelectize(id) {
    var select = $("#" + id).selectize();
    var selectize = select[0].selectize;
    selectize.enable();
}

function displayActionInDialogByModalId(url, id, staticBackdrop = false) {
    if (staticBackdrop || 1==1) {
        $('#' + id).modal({ backdrop: 'static', keyboard: false, show: true });
    } else {
        $('#' + id).modal('show');
    }
    var container = $('#' + id + "-container");
    jQuery.ajax({
        beforeSend: function () {
            $(container).html('');
        },
        url: url,
        type: "GET",
        success: function (data) {
            $('#' + id + "-container").html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function displayActionInDialogByModalIdAndModel(url, id, model) {
    $('#' + id).modal('show');
    const container = $('#' + id + "-container");
    jQuery.ajax({
        beforeSend: function () {
            $(container).html('');
        },
        url: url,
        type: "GET",
        data: model,
        success: function (data) {
            $('#' + id + "-container").html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function hideKendoTooltip(kendoToolTipClass = '') {
    if (kendoToolTipClass !== '' && typeof kendoToolTipClass !== "undefined") {
        $(`.${kendoToolTipClass}`).each((index, item) => {
            $(item).data("kendoTooltip").hide();
        });
    }
}

function displayActionInDialogWithModel(url, model) {
    $('#action-modal').modal('show');
    jQuery.ajax({
        url: url,
        type: "GET",
        data: model,
        success: function (data) {
            $('#action-modal-content-wrapper').html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function displayActionInDialog(url) {
    openModalDialog(url);

    //$('#action-modal').modal({ backdrop: 'static' });

    //jQuery.ajax({
    //    url: url,
    //    type: "GET",
    //    success: function (data) {
    //        $('#action-modal-content-wrapper').html(data);
    //    },
    //    error: function (error) {
    //        console.error('Server error', error);
    //    }
    //});
}

function displayHtmlContentInDialog(content) {
    $('#action-modal').modal({ backdrop: 'static' });
    $('#action-modal-content-wrapper').html(content);

}
function ajaxSuccessCreateOrUpdate(result = {}, gridNamesForRebind = "", type = 'create', message = '') {
    if (result.isValid) {
        if (gridNamesForRebind.indexOf(",") >= 0) {
            var idParts = gridNamesForRebind.split(",");
            for (let i = 0; i < idParts.length; ++i) {
                if ($(`#${idParts[i]}`).length) {
                    rebindAjaxGrid(`${idParts[i]}`);
                }
            }
        } else {
            //just one id
            if (gridNamesForRebind !== "") {
                rebindAjaxGrid(gridNamesForRebind);
            }
        }
        closeLastModalDialog();
        if (type === 'create') {
            showToastrMessage('success', 'Success', message.length ? message : 'Create success');
        } else if (type === 'update') {
            showToastrMessage('success', 'Success', message.length ? message : 'Update success');
        }

    } else {
        showToastrMessage('error', 'Error', result.message);
    }
}

function ajaxSuccessCreateOrUpdateNoModal(result = {}, selectorId = '', actionType = 'create', message = '') {
    if (result.isValid) {
        if (actionType === 'create') {
            showToastrMessage('success', 'Success', message.length ? message : 'Create success');
        } else if (actionType === 'update') {
            showToastrMessage('success', 'Success', message.length ? message : 'Update success');
        }
        if (selectorId !== '') {
            if (typeof result.data !== "undefined") {
                $(`#${selectorId}`).html(result.data);
            }
        }
    } else {
        showToastrMessage('error', 'Error', result.message);
    }
}

function ajaxErrorCreateOrUpdateNoModal(result = {}, selectorId = '', actionType = 'create') {
    if (selectorId !== '') {
        if (typeof result.data !== "undefined") {
            $(`#${selectorId}`).html(result.data);
        }
        if (typeof result.message !== "undefined" && result.message.length) {
            showToastrMessage('error', 'Error', `${result.message}`);
        } else {
            if (actionType === 'create') {
                showToastrMessage('error', 'Error', 'Create success');
            } else if (actionType === 'update') {
                showToastrMessage('error', 'Error', 'Update success');
            }
        }

    }
}

function ajaxErrorUpdate(result = {}) {
    showToastrMessage('error', 'Error', 'Server error!');
}

function displayActionInStaticDialog(url) {
    $('#action-modal').modal({ backdrop: 'static', keyboard: false });

    jQuery.ajax({
        url: url,
        type: "GET",
        success: function (data) {
            $('#action-modal-content-wrapper').html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function activeKendoTabName(tabId) {
    return jQuery("#" + tabId).first("ul").find(".k-state-active").attr("customId");
}

function onKendoTabLoad(tabId) {
    const tabstrip = $("#" + tabId).data("kendoTabStrip");
    let index = jQuery.cookie(tabId);
    if (typeof index === 'undefined') {
        index = 0;
    }

    if (tabstrip && tabstrip.tabGroup) {
        const myTab = tabstrip.tabGroup.children("li").eq(index);
        tabstrip.select(myTab);
    }
}

function rebindActiveKendoTabStrip(tabId) {
    if ($(`#${tabId}`)[0] && $("#" + tabId).data("kendoTabStrip")) {
        var tab = $("#" + tabId).data("kendoTabStrip").select();
        jQuery(tab).trigger("change");
    } 
}

jQuery(document).ready(function () {
    var body = $('body');
    $(body).on("hidden.bs.modal", ".action-modal", function () {        
            $(this).removeData('bs.modal');
            $(".action-modal .modal-dialog .modal-content").empty();
        $("html").css("margin-right", "0px");          
    });

    $(".action-modal").bind("show.bs.modal", function () {
     /*   Nic hanegs this to not have the page jump anymore.*/
        var h1 = $(document).outerHeight();
        var h2 = $(window).height();
        if (h1 > h2) {
            //$("html").css("margin-right", "-15px");
        }
       
        setTimeout(() => {
            $(document).off('focusin.modal');
        }, 500);   
    });

    $(".modal").on("hidden.bs.modal", function () {

        try {
            $(this).data('bs.modal', null);
        } catch (e) {

        }

        if (!$(this).hasClass('right')) {
            var attrId = $(this).attr('id');
            if (attrId) {
                $(`#${attrId} .modal-dialog .modal-content`).empty();

                $(`#${attrId} .modal-dialog`).removeClass("modal-dialog-sm");
                $(`#${attrId} .modal-dialog`).removeClass("--v3");
                $(`#${attrId} .modal-dialog`).css('height', '');
                $(`#${attrId} .modal-dialog`).removeClass("centered");
                $(`#${attrId} .modal-dialog`).removeClass("modal-dialog-md");
                $(`#${attrId} .modal-dialog`).removeClass("modal-dialog-lg");
                $(`#${attrId} .modal-dialog`).removeClass("modal-dialog-xl");
            }
        }          
    });

    $(body).on("hidden.bs.modal-modal3",
        ".modal-modal3",
        function () {
            $(this).removeData('bs.modal3');
            $(".modal-modal3 .modal-dialog .modal-content").empty();
            $("html").css("margin-right", "0px");
        });
});

function removeModalWithClasses(modalIdentifier) {
    $(`${modalIdentifier} .modal-dialog`).removeClass("modal-dialog-sm");
    $(`${modalIdentifier} .modal-dialog`).removeClass("--v3");
    $(`${modalIdentifier} .modal-dialog`).removeClass("modal-dialog-md");
    $(`${modalIdentifier} .modal-dialog`).removeClass("modal-dialog-lg");
    $(`${modalIdentifier} .modal-dialog`).removeClass("modal-dialog-xl");
}

function antiForgeryTokenErrorResponse() {
    if (isMobileLayout) {
        swalSettings().fire({
            title: "Your session is expired. You will have to start over.",
            //text: 'Your session is expired. You will have to start over.',
            icon: "info",
            showCancelButton: false,
            confirmButtonColor: "#3f5872",
            confirmButtonText: "OK"
        }).then((result) => {
            window.location.reload();
        });
    } else {
        showToastrMessage('error', null, 'Your session is expired, please refresh the page and try again.');
    }

    enableButtonsByClass();
    enableButtonsByClass('btn-submit');
}

function showToastrMessage(type, title, message, link, linkText) {
    if ($("#member-portal-body")[0]) {
        pNotify(type, message);
    } else {
        toastr.options = {
            "closeButton": false,
            "debug": false,
            "newestOnTop": false,
            "progressBar": false,
            "positionClass": "toast-v3 toast-bottom-right" + (isNullOrEmpty(message) ? ' --no-message' : ''),
            "preventDuplicates": false,
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "3000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };

        if (!isNullOrEmpty(link) && !isNullOrEmpty(linkText)) {
            message = message + `<a class='toastr-link' href='${link}'><i class='fa-regular fa-eye'></i> ${linkText}</a>`
        }

        toastr[type](message, title);
    }
}

function closeMvcMobileModal() {
    $('#mvc-modal-wrapper').remove();
}

function mvcMobileModal(title, html, customButton) {
    let htmlToAdd = `<div id="mvc-modal-wrapper">
    <div class='mask'></div>
        <div class='mvc-modal-body'>
            <div style="display: flex; gap: 24px; flex-direction: column;">
            <div style="display: flex; gap: 12px; flex-direction: column;">
            <div class="modal-dialog-header">
                <div class="modal-dialog-title">
                    ${title}
                </div>

                <i class="fa-regular fa-xmark" onclick="closeMvcMobileModal();"></i>
            </div>

            <div style="font-size: 14px;color: #535457;font-weight:400">
                ${html}
            </div>

        </div>
            <div style='display:flex; gap:8px; flex-direction:column;'>
                ${!isNullOrEmpty(customButton) ? `${customButton}` : '' }

                <button type='button' class="btn btn-custom-antd-button" onclick="closeMvcMobileModal();">Close</button>
            </div>
            </div>
        </div>
    </div>`

    $('body').append(htmlToAdd);
}

function pNotify(type, message) {
    if (type == "Error" || type == "error") {
        new PNotify({
            text: message,
            type: 'error',
            delay: 5000,
            icon: true
        });
    }

    if (type == "Info" || type == "info") {
        new PNotify({
            text: message,
            type: 'info',
            delay: 3500,
            icon: true
        });
    }

    if (type == "Success" || type == "success") {
        new PNotify({
            text: message,
            type: 'success',
            delay: 3500,
            icon: true
        });
    }
}

function pNotifyInfo(message) {
    if (!isNullOrEmpty(message)) {
        pNotify("Info", message);
    }
}

function pNotifyError(message) {
    if (!isNullOrEmpty(message)) {
        pNotify("Error", message);
    }
}

function pNotifySuccess(message) {
    if (!isNullOrEmpty(message)) {
        pNotify("Success", message);
    }
}

function pToastrSuccess(message) {
    if (message) {
        if (isMobileLayout) {
            pNotifySuccess(message);
        } else {
            return showToastrMessage('success', 'Success!', message);
        }
    }
}

function showSuccessToastr() {
    if (isMobileLayout) {
        pNotifySuccess('Save Successful.');
    } else {
        return showToastrMessage('success', 'Success!', 'Save Successful.');
    }
}
function showSuccessEditToastr(title) {
    if (isMobileLayout) {
        pNotifySuccess('Save Successful.');
    } else {
        return showToastrMessage('success', 'Success!', 'Save Successful.');
    }
}
function showErrorToastr(msg) {
    if (isNullOrEmpty(msg)) {
        return;
    }

    if (isMobileLayout) {
        pNotifyError(msg);
    } else {
        return showToastrMessage('error', 'Error!', msg);
    }
}

function showAjaxFormErrorListToastr(formId) {
    if (formId) {
        var validator = $(`#${formId}`).validate();
        var errList = validator.errorList;
        var errorMessage = '';

        if (errList && errList.length > 0) {

            $.each(errList, function (key, value) {
                if (value && value.message) {
                    errorMessage += `${value.message}</br>`;
                }
            });
        }

        if (!isNullOrEmpty(errorMessage)) {
            if (isMobileLayout) {
                pNotifyError(errorMessage);
            } else {
                return showToastrMessage('error', 'Error!', errorMessage);
            }
        }
    }
}

function showSuccessToastrMsg(msg) {
    if (isMobileLayout) {
        pNotifySuccess(msg);
    } else {
        return showToastrMessage('success', 'Success!', msg);
    }
}

function showSuccessDeleteToastr() {
    if (isMobileLayout) {
        pNotifySuccess('Delete Successful.');
    } else {
        return showToastrMessage('success', 'Success!', 'Delete Successful');
    }
}

function toBoolean(val) {
    if (val == null) {
        return false;
    }

    if (val == true) {
        return true;
    }

    if (val == false) {
        return false;
    }

    switch (val.toLowerCase().trim()) {
        case "true":
        case "yes":
        case "1":
            return true;
        case "false":
        case "no":
        case "0":
        case null:
            return false;
        default:
            return false;
    }
}

function copyToClipboard(valueToCopy = '', text) {
    if (valueToCopy === '') {
        showToastrMessage('error', 'Error!', 'Empty value');
        return;
    }
    const $temp = $("<input>");
    $("body").append($temp);
    $temp.val(valueToCopy).select();
    document.execCommand("copy");
    $temp.remove();

    let textToShow = 'Calendar Link Copied To Clipboard!';
    if (!isNullOrEmpty(text)) {
        textToShow = text;
    }

    showSuccessToastrMsg(textToShow)
}

function parseCustomTime(time) {
    const d = new Date();
    time = time.match(/(\d+)(?::(\d\d))?\s*(p?)/);
    d.setHours(parseInt(time[1]) + (time[3] ? 12 : 0));
    d.setMinutes(parseInt(time[2]) || 0);
    return d;
}

function diff_minutes(dt2, dt1) {
    let minutes = 0;
    jQuery.ajax({
        url: '/Online/Utils/GetDifferenceInMinutesTimeSpan?start=' + dt1 + "&end=" + dt2,
        type: "GET",
        async: false,
        success: function (data) {
            minutes = data;
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
    return minutes;
}

function filterKendoGrid(gridId, filter, v) {
    const grid = $("#" + gridId).data("kendoGrid").dataSource;
    if (v) {
        grid.filter(filter);
    } else {
        grid.filter({});
    }
}

function countKendoGridItems(gridId) {
    var grid = $(`#${gridId}`).data("kendoGrid");
    if (grid && grid.dataSource) {
        var data = grid.dataSource.data();
        return data.length;
    }
    return 0;
}

function countKendoDropdownItems(ddId) {
    var dd = $(`#${ddId}`).data("kendoDropDownList");
    if (dd) {
        try {
            return dd.dataSource._total;
        } catch (e) {
            return 0;
        }
    }
    return 0;
}

function overrideDateTimeValidators() {
    jQuery.extend(jQuery.validator.methods,
        {
            date: function (value, element) {
                return this.optional(element) ||
                    kendo.parseDate(value, "dd/MM/yyyy") != null ||
                    kendo.parseDate(value, "dd-MM-yyyy") != null ||
                    kendo.parseDate(value, "yyyy/MM/dd") != null ||
                    kendo.parseDate(value, "yyyy-MM-dd") != null ||
                    kendo.parseDate(value, "dd.MM.yyyy") != null ||
                    kendo.parseDate(value, "MM/dd/yyyy") != null;
            }
        });
}

//IS USED ONLY FOR DATE OF BIRTH WIDGET
function formatDateOfBirthByUiCulture(day, month, year) {
    if (isNullOrEmpty(day) && isNullOrEmpty(month) && isNullOrEmpty(year)) {
        return '';
    }

    var regionCode = kendo.culture().name;

    if (regionCode == "en-GB" ||
        regionCode == "en-IE" ||
        regionCode == "en-AU" ||
        regionCode == "id-ID" ||
        regionCode == "es-GT" ||
        regionCode == "nl-AW" ||
        regionCode == "en-SG" ||
        regionCode == "en-KE" ||
        regionCode == "es-MX" ||
        regionCode == "en-KY" ||
        regionCode == "en-NZ" ||
        regionCode == "ar-AE") {
        return day +
            "/" +
            month +
            "/" +
            year;
    }
    else if (regionCode == "tr-TR") {
        return day +
            "." +
            month +
            "." +
            year;
    }
    else {
        return month +
            "/" +
            day +
            "/" +
            year;
    }
}

Date.prototype.formatMMDDYYYY = function () {
    var regionCode = kendo.culture().name;

    if (regionCode == "en-GB" ||
        regionCode == "en-IE" ||
        regionCode == "en-AU" ||
        regionCode == "id-ID" ||
        regionCode == "es-GT" ||
        regionCode == "nl-AW" ||
        regionCode == "en-SG" ||
        regionCode == "en-KE" ||
        regionCode == "es-MX" ||
        regionCode == "en-KY" ||
        regionCode == "en-NZ" ||
        regionCode == "ar-AE") {
        return (this.getDate()) +
            "/" +
            (this.getMonth() + 1) +
            "/" +
            this.getFullYear();
    }
    else if (regionCode == "tr-TR") {
        return (this.getDate()) +
            "." +
            (this.getMonth() + 1) +
            "." +
            this.getFullYear();
    }
    else {
        return (this.getMonth() + 1) +
            "/" +
            this.getDate() +
            "/" +
            this.getFullYear();
    }
};

function loadUsingAjax(url, containerId, showloader) {
    jQuery.ajax({
        url: url,
        type: "GET",
        beforeSend: function () {
            if (showloader) {
                jQuery("#" + containerId)
                    .html(
                        "<div style='text-align:center'><img style='max-width:350px' src='/Content/img/LoadingIcon.gif' alt='LoadingIcon'/></div>");
            }
        },
        success: function (data) {
            jQuery("#" + containerId).html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function showCustomSuccessToastr(title, content) {
    return showToastrMessage('success', title, content);
}

function showRedWarningBox(title, content) {
    showToastrMessage('error', title, content);
}

function submitNonAjaxForm(formId) {
    const form = jQuery(`#${formId}`);

    if (form.valid()) {
        const btn = jQuery("#" + formId).find('.submit-btn');
        if ($("#member-portal-body")[0]) {
            const btns = $(".btn-submit");
            //member portal function
            btns.each(function (index) {
                const btnS = $(this);
                disableBtn(btnS);
            });

        } else {
            jQuery.each(btn,
                function (key, val) {
                    jQuery(val).prop('disabled', true);
                    const oldText = jQuery(val).html();
                    const btnName = jQuery(val).text();
                    jQuery(val).attr("oldText", oldText);
                    jQuery(val).html('<i class="fa fa-gear rotate-animation"/>&nbsp;' + btnName);
                });
        }

        form.submit();
    } else {
        enableButtonsByClass("submit-btn");

        if ($("#member-portal-body")[0]) {
            pNotify("Error", 'Fill all required fields.');
            enableButtonsByClass("btn-submit");

            if ($(".input-validation-error")[0]) {
                var notValidInput = $(".input-validation-error:eq(0)").offset().top - 20;
                $('html, body').animate({ scrollTop: notValidInput }, 800);
            }
        }
    }
}
/// <summary>
/// Validate form with out submit
/// </summary>
function validateNonAjaxForm(formId) {
    const form = jQuery(`#${formId}`);

    if (form.valid()) {
        return true;
    } else {
        enableButtonsByClass("submit-btn");

        if ($("#member-portal-body")[0]) {
            pNotify("Error", 'Fill all required fields.');
            enableButtonsByClass("btn-submit");

            if ($(".input-validation-error")[0]) {
                var notValidInput = $(".input-validation-error:eq(0)").offset().top - 20;
                $('html, body').animate({ scrollTop: notValidInput }, 800);
            }
        }
        return false;
    }
}

function startGridBinding(id) {
    $("#" + id).data('kendoGrid').dataSource.read();
}

function saveGridState(id, minutes, gridState) {
    if (gridState) {
        var expirationDateTime = new Date();
        expirationDateTime.setTime(expirationDateTime.getTime() + (minutes * 60 * 1000));
        //do not save Filter Val
        gridState.dataSource.filter = null;
        saveToCookie("state-" + id, id, minutes);
        localStorage[id] = kendo.stringify(gridState);
    }
}

function getSavedGridState(id) {
    var cookieVal = $.cookie("state-" + id);
    if (cookieVal) {
        var options = localStorage[id];
        if (options) {
            return JSON.parse(options);
        }
    } else {
        localStorage.removeItem(id);
    }
    return null;
}

function refreshKendoTabWithGrid(containerId, gridId, url) {
    var container = $("#" + containerId);
    var hasClass = container.hasClass("loaded");
    container.addClass("loaded");
    if (hasClass && $("#" + gridId).data('kendoGrid')) {
        rebindAjaxGrid(gridId);
    } else {
        $.ajax({
            url: url,
            type: "GET",
            success: function (data) {
                container.html(data);
                container.addClass("loaded");
            },
            error: function (error) {
               
            }
        });
    }
}

function refreshKendoTabWithTab(containerId, tabId, url) {
    var container = $("#" + containerId);
    if (container.hasClass("loaded")) {
        rebindActiveKendoTabStrip(tabId);
    } else {
        $.ajax({
            url: url,
            type: "GET",
            success: function (data) {
                container.html(data);
                container.addClass("loaded");
            },
            error: function (error) {
                console.error('Server error', error);
            }
        });
    }
}

function refreshKendoTabWithForm(containerId, url) {
    const container = $("#" + containerId);
    container.html(
        "<div><img style='max-width:350px' class='loading-gif-center' src='/Content/img/LoadingIcon.gif' alt='LoadingIcon'/></div>");
    $.ajax({
        url: url,
        type: "GET",
        success: function (data) {
            container.html(data);
        },
        error: function (error) {
            console.error('Server error', error);
        }
    });
}

function getCookieArray(cookieId) {
    var data = $.cookie(cookieId);
    if (isNullOrEmpty(data)) {
        return [];
    }
    return JSON.parse(data);
}

function getCookieByName(cookieId) {
    return $.cookie(cookieId);
}

function removeCookieById(cookieId) {
    var val = $.removeCookie(cookieId, { path: '/' });
}

function saveToCookie(cookieId, val, minutes) {
    var date = new Date();
    date.setTime(date.getTime() + (minutes * 60 * 1000));
    $.cookie(cookieId, val, { expires: date, path: '/' });
}

function saveSelectedRowId(id, minutes, val) {
    var cookieId = "SelectedId-" + id;
    saveToCookie(cookieId, val, minutes);
}

function getSelectedRowId(id) {
    var cookieVal = $.cookie("SelectedId-" + id);
    if (cookieVal) {
        return parseInt(cookieVal);
    }
    return null;
}

function getCookieById(id) {
    var cookieVal = $.cookie(id);
    if (cookieVal) {
        return parseInt(cookieVal);
    }
    return null;
}

function deleteItemFromCookieArray(cookieId, item, minutes)
{
    if (minutes === 0) {
        minutes = 800;
    }
    var items = getCookieArray(cookieId);
    var date = new Date();
    date.setTime(date.getTime() + (minutes * 60 * 1000));
    var itemIndex = $.inArray(item, items);
    if (itemIndex > -1) {
        items.splice(itemIndex, 1);
        var dataToSave = JSON.stringify(items);
        $.cookie(cookieId, dataToSave, { expires: date, path: '/' });
    }
}

function addItemToCookieArray(cookiedId, item, minutes)
{
    if (minutes === 0) {
        minutes = 800;
    }
    var items = getCookieArray(cookiedId);
    var date = new Date();
    date.setTime(date.getTime() + (minutes * 60 * 1000));
    if ($.inArray(item, items) == -1) {
        items.push(item);
        var dataToSave = JSON.stringify(items);
        $.cookie(cookiedId, dataToSave, { expires: date, path: '/' });
    }
}

function addArrayToCookie(cookiedId, array, minutes) {
    var date = new Date();
    date.setTime(date.getTime() + (minutes * 60 * 1000));
    $.cookie(cookiedId, '[' + array + ']', { expires: date, path: '/' });
}

function rebindScheduler(id) {
    var sch = jQuery('#' + id).data("kendoScheduler");
    if (sch) {
        jQuery('#' + id).data("kendoScheduler").dataSource.read();
    }
}

function rebindKendoListBox(id) {
    var elem = $('#' + id).data('kendoMultiSelect');
    if (elem) {
        elem.dataSource.read();
    }
}

function rebindKendoListBoxWithCheckValues(id) {   
    var elem = $('#' + id).data('kendoMultiSelect');
    if (elem) {
        // Get current values
        var selectedValues = elem.value();

        // Refresh the data source
        elem.dataSource.read().then(function () {
            // Get all available values in the new data source
            var availableValues = elem.dataSource.view().map(item => item[elem.options.dataValueField]);

            // Check if any selected value is no longer available
            var invalidValues = selectedValues.filter(value => availableValues.indexOf(value) === -1);

            if (invalidValues.length > 0) {
                // Clear invalid values
                var validValues = selectedValues.filter(value => availableValues.indexOf(value) !== -1);
                elem.value(validValues);

                // Manually trigger the change event
                elem.trigger("change");
            }
        });
    }
}


function rebindKendoDropdown(id) {
    var elem = $('#' + id).data('kendoDropDownList');
    if (elem) {
        elem.dataSource.read();
    }
}

function rebindKendoDropdownByClass(elClass) {
    $('.' + elClass).each(function (i, obj) {
        var owns = $(this).attr('aria-owns');
        if (!isNullOrEmpty(owns)) {
            var elId = owns.replace('_listbox', '');
            rebindKendoDropdown(elId);
        }
    });
}

function rebindKendoMultiselect(id) {
    var elem = $('#' + id).data('kendoMultiSelect');
    if (elem) {
        elem.dataSource.read();
    }
}

function getKendoDropdownValue(id) {
    var dropdown = jQuery("#" + id);
    if (dropdown) {
        return dropdown.val();
    }
    return null;
}

function getKendoListBoxSelectedData(id)
{
    if (jQuery("#" + id)) {
        var values = jQuery("#" + id).val();
        return values;
    }
}
function removeSelectedValueKendoDropdown(id) {
    var elem = $('#' + id).data('kendoDropDownList');
    if (elem) {
        elem.value(null);
    }
}

function getKendoListBoxSelectedDataJoined(id) {
    if (jQuery("#" + id)) {
        var values = jQuery("#" + id).val();
        if (values && values != null && values != '') {
            var res = values.join();
            if (res == "undefined") {
                return "";
            }
            return res;
        } else {
            return "";
        }
        return values;
    }
    return "";

}

function getKendoDropdownSelectedData(id) {
    return jQuery("#" + id).val();
}

function joinArrayItems(val) {
    if ($.isArray(val)) {
        return val.join(",");
    } else {
        return val;
    }
}

function doNotSubmitOnEnter() {
    $(window).keydown(function (event) {
        if (event.keyCode == 13) {
            event.preventDefault();
            return false;
        }
    });
}

function addMinutes(date, minutes) {
    return new Date(date.getTime() + minutes * 60000);
}

function getRadioButtonValue(name) {
    return $('input[name="' + name + '"]:checked').val();
}

function getKendoMultiSelectAsString(id) {
    const val = jQuery("#" + id).val();
    if (val == null || val == '') {
        return '';
    } else {
        return val.join();
    }
}

$(document).on('click', '.input-time', function () {
    var timepicker = $(this).data("kendoTimePicker");
    if (timepicker) {
        timepicker.open();
    }
});

$(document).on('click',
    '.input-date',
    function () {
        var datepicker = $(this).data("kendoDatePicker");
        
        if (datepicker) {
            datepicker.open();
        } else {
            var datePickerInput = $(this).find('input').data("kendoDatePicker");
            if (datePickerInput) {
                datePickerInput.open();
            } 
        }
    });

const entityMap = {
    "&": "&amp;",
    "<": "&lt;",
    ">": "&gt;",
    '"': '&quot;',
    "'": "&#x27;",
    "/": '&#x2F;',
    "\n": '&#x2F;'
};

function escapeHtml(string) {
    return String(string)
        .replace(/[&<>"'\/]/g,
            function (s) {
                return entityMap[s];
            });
}

const entityMap1 = {
    "&": "",
    "<": "",
    ">": "",
    "#": "",
    '"': "",
    "'": "",
    "/": "",
    "\n": ""
};

function escapeHtmlReplaceWithEmpty(string) {
    return String(string)
        .replace(/[&<>"'\/]/g,
            function (s) {
                return entityMap1[s];
            });
}

function getDifferenceInMinutes(startTime, endTime) {
    const difference = endTime.getTime() - startTime.getTime(); // This will give difference in milliseconds
    return Math.round(difference / 60000);
}

$(document).ready(function () {
    $("body").tooltip({ selector: '[data-toggle=tooltip]', html: true });

    toggleFucn();

    setTimeout(function() {
        toggleFucn();
    }, 100);
    setTimeout(function () {
        toggleFucn();
    }, 200);
    setTimeout(function () {
        toggleFucn();
    }, 500);
});

function toggleFucn() {
    $($('input[data-toggler-for]')).each(function (i, cel) {
        var pnl = $(cel);
        pnl.addClass('collapsible');
        var reverse = pnl.data('toggler-reverse');

        var show = pnl.is(':checked');

        if (reverse) show = !show;
        var elements = pnl.data("toggler-for");

        if (show) {
            pnl.addClass('expanded');

            $(`${elements}`).show();
        } else {
            $(`${elements}`).hide();
        }
    });
}

function tglFunc() {
    toggleFucn();
}

function initializeCheckBoxes() {
    $('input').iCheck({
        checkboxClass: 'icheckbox_minimal-green',
        radioClass: 'iradio_minimal-green'
    });
}

function afterShow() {
    $(this).addClass('expanded');
}

function afterHide() {
    $(this).removeClass('expanded');
}

$(document).on('change', 'input[type=checkbox][data-toggler-for]', function (e) {
    showHideContent(e);
});

$(document).on('change', 'input[type=radio][data-toggler-for]', function (e) {
    showHideContent(e);
});

function showHideContent(e) {
    var ctl = $(e.target),
        show = ctl.is(':checked'),
        reverse = ctl.data('toggler-reverse');

    if (reverse) show = !show;

    var duration = true ? 200 : 0;

    $(ctl.data('toggler-for')).each(function (i, cel) {
        var pnl = $(cel),
            isGroup = pnl.is('body, .collapsible-group');

        pnl.addClass('collapsible');
        if (isGroup) pnl.addClass('collapsible-group');

        if (show) {
            if (!isGroup) {
                pnl.show(duration, afterShow);
            } else {
                var targets = pnl.children()
                    .hide()
                    .filter(':not(.collapsible), .collapsible.expanded');
                pnl.show(0, afterShow);
                targets.show(duration); // animate all items
            }
        } else {
            if (!isGroup) {
                pnl.hide(duration, afterHide);
            } else {
                // hide all children (animated)
                pnl.children().hide(duration).promise().done(function () {
                    pnl.hide(0, afterHide);
                });
            }
        }
    });
}

function classToggler(containerClass) {
    var selectedClass = "." + containerClass;
    if ($(selectedClass)[0]) {
        var show = $(selectedClass).hasClass("expanded");

        //reverse
        show = !show;

        $($(selectedClass)).each(function (i, cel) {
            var pnl = $(cel);

            if (show) {
                pnl.show(200, afterShow);
            } else {
                pnl.hide(200, afterHide);
            }
        });
    }
}

function getPaymentTypeIcon(paymentType) {
    if (paymentType == 1) {
        return "fa fa-money";
    }
    if (paymentType == 2) {
        return "fa fa-cc-visa";
    }
    if (paymentType == 3) {
        return "fa fa-money";
    }
    if (paymentType == 4) {
        return "fa money-check-edit";
    }
    if (paymentType == 5) {
        return "fa fa-money-check";
    }
}

function getPaymentStatusClass(pmtStatus) {
    if (pmtStatus == null || pmtStatus == "") {
        return "";
    }

    if (pmtStatus == "Paid" || pmtStatus.toLowerCase()=="paid") {
        return "paid-cell";
    }
    if (pmtStatus == "Partially Paid" || pmtStatus.toLowerCase() == "partially paid") {
        return "partiallypaid-cell";
    }
    if (pmtStatus == "Pending Refund" || pmtStatus.toLowerCase() == "pending refund") {
        return "pendingrefundcell-cell";
    }
    if (pmtStatus == "Refunded" || pmtStatus.toLowerCase() == "refunded") {
        return "refunded-cell";
    }
    if (pmtStatus == "Unpaid" || pmtStatus.toLowerCase() == "unpaid") {
        return "unpaid-cell";
    }
    if (pmtStatus == "Preauthorized" || pmtStatus.toLowerCase() == "preauthorized") {
        return "preauthorized-cell";
    }
    return "";
}

function focusTextToEnd(id) {
    var elem = jQuery("#" + id);
    elem.focus();
    var $thisVal = elem.val();
    elem.val('').val($thisVal);
    return this;
}

function setDatePickerDates(startDate, endDate, dayInterval, changeEndDate) {

    var startDateValue,
        endDateValue;

    if (changeEndDate) {
        startDateValue = $('#' + startDate).val();
        endDateValue = $("#" + endDate).val();

        startDateValue = new Date(startDateValue);
        endDateValue = new Date(endDateValue);

        if (startDateValue >= endDateValue) {
            startDateValue.setDate(startDateValue.getDate() + dayInterval);
            startDateValue.setMinutes(startDateValue.getMinutes());

            $("#" + endDate).data("kendoDatePicker").value(startDateValue);
        }
    } else {
        startDateValue = $('#' + startDate).val();
        endDateValue = $("#" + endDate).val();
        startDateValue = new Date(startDateValue);
        endDateValue = new Date(endDateValue);

        if (startDateValue >= endDateValue) {

            endDateValue.setDate(endDateValue.getDate() - dayInterval);
            endDateValue.setMinutes(endDateValue.getMinutes());

            $("#" + startDate).data("kendoDatePicker").value(endDateValue);
        }
    }
}

function isNullOrEmptyById(id) {
    if (_.isNull($(`#${id}`).val()) ||
        _.isEmpty($(`#${id}`).val()) ||
        _.isUndefined($(`#${id}`).val()) ||
        _.isNaN($(`#${id}`).val())) {
        return true;
    }
    return false;
}

function isNullOrEmpty(data) {
    if (_.isNull(data) ||
        _.isUndefined(data) ||
        _.isNaN(data) ||
        data.length === 0 ||
        data == 'undefined' ||
        data == 'null' ||
        _.isNumber(data) == false && data == ' ') {
        return true;
    }

    return false;
}

function showSwalNiceError(title, errorMessage)
{
    if (title === null) {
        Swal.fire({
            icon: 'error',
            html: errorMessage,
            confirmButtonColor: "#3f5872",
            confirmButtonText: "OK"
        });
    } else {
        Swal.fire({
            title: title,
            icon: 'error',
            html: errorMessage,
            confirmButtonColor: "#3f5872",
            confirmButtonText: "OK"
        });
    }
}

function displaySwalErrorMessage(errorMessage) {
    Swal.fire({
        title: "Error",
        icon: 'error',
        html: errorMessage,
        confirmButtonColor: "#3f5872",
        confirmButtonText: "OK",
    });
}

function displaySwalMessage(type, title, message) {
    Swal.fire({
        title: title,
        icon: type,
        html: message,
        confirmButtonColor: "#3f5872",
        confirmButtonText: "OK",
    });
}

function displayErrorMessage(data) {
    var message = '';
    if (data.isMessage) {
        message = data.message;
    } else {
        message = 'Error';
    }

    if (message == '' || message == null) {
        message = 'Error';
    }
    Swal.fire({
        title: "",
        html: message,
        icon: "warning",

        confirmButtonColor: "#3f5872",

    }).then((result) => {
        if (result.value) {

        }
    });

}

function removeSpinner(targetIdentifier) {
    if ($(targetIdentifier)[0]) {
        $(targetIdentifier).remove();
    }
}

function removeAppendSpinner(targetIdentifier) {
    if ($(targetIdentifier)[0]) {
        $(targetIdentifier + " .spinner-container.active").remove();
    }
}

function createSpinner(targetIdentifier,
    isVisible,
    fullHeight = false,
    additionalHtml = '',
    isWhite = true,
    addMinHeight = true,
    divStyle = '') {
    
    var style = `position:absolute!important;top:0;border-radius:4px;${divStyle}`;
    if (fullHeight) {
        style = style + "height:100%;";
    }
    if (isWhite) {
        style = style + "background:#fff;";
    }
    if (!addMinHeight) {
        style = style + "height:100%;";
    }

    var minHeight = '';
    if (addMinHeight) {
        minHeight = 'h-300';
    }

    if ($(`${targetIdentifier} .spinner-container.active`)[0]) {
        //already exists
        return false;
    }

    var spinner =
        $(`<div class="spinner-container w-100 ${minHeight} active" style=${style}></div>`)
            .append(generateCircularSpinner(64, isVisible, 2, additionalHtml));
    $(targetIdentifier).append(spinner);
}

function appendFullPageHtml(targetIdentifier= true,
    html = '',
    divStyle = '') {

    var style = `position:absolute!important;top:0;border-radius:4px;${divStyle}`;
    style = style + "height:100%;";
    style = style + "background:#fff;";
    style = style + "height:100%;";

    var blockHtml = $(`<div class="w-100 active spinner-wrapper-full" style=${style}></div>`).append(html);
    $(targetIdentifier).append(blockHtml);
}

function createLotteryHtml(id, isLotteryReservation, description, remainSeconds) {
    if (isLotteryReservation) {
        $('#createReservation-Form').addClass('lottery-msg');

        let titleToShow = 'Lottery in Progress';
        let iconClassToShow = 'fa-light fa-bolt-lightning';

        $('.modal-body').addClass('no-overflow');
        $('.modal-footer-container').addClass('hide');
        $('.modal-body').prop('position', 'static');


        appendFullPageHtml(id, `
            <div class="loader-wrapper">
                <div class="loader-icon mb-6"><i class="${iconClassToShow}"></i></div>
                <div class="loader-title mb-2">${titleToShow}</div>
                <div class="loader-description mb-6">${description}</div>
                <div class="progress-loader mb-4" data-progress="0">
                    <div class="progress-loader-bar"></div>
                </div>
                
                <div class="loader-description-seconds mb-8">
                    Less than ${remainSeconds} seconds remaining
                </div>
                
                <hr class="loader-description-divider mb-8" />
                
                <div class="loader-description-request mb-6">
                   <div class="loader-description-request-wrapper">
                       <i class="fa-regular fa-circle-check" style="color:green"></i>
                       <span> Reservation request submitted.</span>
                   </div>
                </div>
                
                <span class="loader-description-window-wrapper">
                    <div class="loader-description-window">
                        <div class="loader-description-window-icon">
                            <i class="fa-regular fa-clock"></i>
                        </div>
                        <div class="loader-description-window-texts">
                            <b>Keep this window open</b>
                            <div>
                                Final results will be display here once the lottery is complete. Closing this window may prevent updates from appearing.
                            </div>
                        </div>
                    </div>
                </span>
            </div>
        `);

        let secondsLeft = remainSeconds;
        const totalSeconds = remainSeconds;

        const interval = setInterval(() => {
            if (secondsLeft <= 0) {
                clearInterval(interval);
                $('.progress-loader').attr('data-progress', 100);
                $('.progress-loader-bar').css('width', '100%');
                $('.loader-description-seconds').text(`Lottery completed`);
            } else {
                const elapsed = totalSeconds - secondsLeft;
                const progress = Math.floor((elapsed / totalSeconds) * 100);
                $('.progress-loader').attr('data-progress', progress);
                $('.progress-loader-bar').css('width', progress + '%');
                $('.loader-description-seconds').text(`Less than ${secondsLeft} seconds remaining`);
                secondsLeft--;
            }
        }, 1000);

    } else {
        let descriptionToShow = 'We are finalizing your booking. This may take a few more seconds during peak times.';
        let titleToShow = 'Hang Tight!';
        let iconClassToShow = 'fa-regular fa-face-smile';

        $('.modal-body').addClass('no-overflow');
        $('.modal-footer-container').addClass('hide');
        $('.modal-body').prop('position', 'static');

        appendFullPageHtml(id, `
            <div class="loader-wrapper">
                <div class="loader-icon"><i class="${iconClassToShow}"></i></div>
                <div class="loader-title">${titleToShow}</div>
                <div class="loader-description">${descriptionToShow}</div>
                <div class="progress-loader" data-progress="0">
                    <div class="progress-loader-bar"></div>
                </div>
            </div>
        `);

        let progress = 0;
        const interval = setInterval(() => {
            if (progress >= 100) {
                //clearInterval(interval);
            } else {
                progress += Math.floor(Math.random() * (6 - 2 + 1)) + 2;
                $('.progress-loader').attr('data-progress', progress);
                $('.progress-loader-bar').css('width', progress + '%');
            }
        }, 1000);
    }
}


function generateCircularSpinner(size, active, strokeWidth, additionalHtml) {
    const spinner = $('<div class="spinner"></div>');
    if (active) spinner.addClass('active');

    if (!_.isNumber(strokeWidth)) {
        strokeWidth = 4;
    }

    const svg = '<svg style="width:' +
        size +
        'px; height:' +
        size +
        'px" viewBox="0 0 64 64"><circle cx="32" cy="32" r="' +
        (32 - strokeWidth) +
        '" fill="none" stroke-width="' +
        strokeWidth +
        '" stroke-miterlimit="10"></circle></svg>';
    spinner.append($(svg));

    if (additionalHtml != undefined && additionalHtml != "undefined" && additionalHtml != '') {
        spinner.append(additionalHtml);
    }

    return spinner;
}

function getStripeBaseStyles(isV2Version) {
    if (isMobileLayout) {
        return {
            base: {
                color: 'black',
                lineHeight: '1.42857143',
                fontSize: '16px',
                '::placeholder': {
                    color: 'black'
                }
            },
            invalid: {
                color: '#fa755a',
                iconColor: '#9fa19c'
            }
        };
    }

    if (isV2Version) {
        return {
            base: {
                color: '#464646',
                lineHeight: '1.42857143',
                fontSize: '16px',
                '::placeholder': {
                    color: '#9d9d9d'
                }
            },
            invalid: {
                color: '#fa755a',
                iconColor: '#9fa19c'
            }
        };
    }

    return {
        base: {
            color: '#32325d',
            lineHeight: '1.42857143',
            fontSize: '14px',
            '::placeholder': {
                color: '#aab7c4'
            }
        },
        invalid: {
            color: '#fa755a',
            iconColor: '#9fa19c'
        }
    };
}

function rebindAjaxGrids(gridNamesForRebind = "") {
    if (gridNamesForRebind.indexOf(",") >= 0) {
        var idParts = gridNamesForRebind.split(",");
        for (let i = 0; i < idParts.length; ++i) {
            if ($(`#${idParts[i]}`).length) {
                rebindAjaxGrid(`${idParts[i]}`);
            }
        }
    } else {
        //just one id
        if (gridNamesForRebind !== "") {
            rebindAjaxGrid(gridNamesForRebind);
        }
    }
}

function rebindAjaxGridsByIdPattern(idKeyPart) {
    $(".k-grid").each(function () {
        var gridElement = $(this);
        if (gridElement.attr("id").indexOf(idKeyPart) !== -1) {
            rebindAjaxGrid(gridElement.attr("id"));
        }
    });
}

function customStringEncode(string) {
    string = encodeURIComponent(string);
    string = string.replace("'", "%27"); // encodeURIComponent not change ' in some cases
    return string;
}

function clearSelectizeById(id) {
    if ($("#" + id)[0]) {
        var $select = $('#' + id).selectize();
        if ($select && $select[0].selectize) {
            var control = $select[0].selectize;
            control.clear();
        }
    }
}

function membershipFieldsChanged(memberShipStartDateElId = "",
    nexDayPaymentDateElId = "",
    elIdToHide = "",
    membershipStartDateChanged = false) {
    if (memberShipStartDateElId === "" || nexDayPaymentDateElId === "") {
        showErrorToastr("Start Date or End Dane element not found!");
        console.error("membershipFieldsChanged() error!");
        return;
    }

    const memberShipStartDateKendo = $(`#${memberShipStartDateElId}`).data("kendoDatePicker");
    const nexDayPaymentKendo = $(`#${nexDayPaymentDateElId}`).data("kendoDatePicker");
    if ($(`#${memberShipStartDateElId}`).val().length === 0 &&
        $(`#${nexDayPaymentDateElId}`).val().length > 0 &&
        membershipStartDateChanged === false) {
        memberShipStartDateKendo.value(nexDayPaymentKendo.value());
        memberShipStartDateKendo.trigger("change");
        if (nexDayPaymentKendo) {
            nexDayPaymentKendo.min(nexDayPaymentKendo.value());
            nexDayPaymentKendo.trigger("change");
        }

        return;
    }

    if (membershipStartDateChanged) {
        if (nexDayPaymentKendo) {
            nexDayPaymentKendo.min(memberShipStartDateKendo.value());
            nexDayPaymentKendo.value(memberShipStartDateKendo.value());
            nexDayPaymentKendo.trigger("change");
        }

        return;
    }


    new Promise((resolve, reject) => {
        const momentIsLoaded = window.moment;
        if (!momentIsLoaded) {
            $.getScript("/Vendor/moment/min/moment.min.js",
                function (data, textStatus, jqxhr) {
                    if (jqxhr.status === 200) {
                        resolve();
                    } else {
                        console.error("Can`t load moment.js !");
                        reject();
                    }
                });
        } else {
            resolve();
        }
    }).then(() => {
        const createProRatedBillingCycleDiv = $(`#${elIdToHide}`);
        const nextPaymentDateIsAfter = moment(nexDayPaymentKendo.value())
            .isAfter(memberShipStartDateKendo.value(), "day");
        nextPaymentDateIsAfter === true
            ? $(createProRatedBillingCycleDiv).removeClass("hidden")
            : $(createProRatedBillingCycleDiv).addClass("hidden");
    })
        .catch((err) => console.error(err));

}

function loadModalStickyItems() {
    if (typeof (scrollToFixed) === typeof (Function)) {
        $('.modal-sticky').scrollToFixed();
    }
   
}

function setMinValForKendoDatePicker(startDateElId = "", endDateElId = "", dataType = "kendoDatePicker") {
    if (startDateElId === "" || endDateElId === "") {
        console.error("startDateElId or endDateElId is empty!");
        return;
    }
    const startDateKendo = $(`#${startDateElId}`).data(`${dataType}`);
    const endDateKendo = $(`#${endDateElId}`).data(`${dataType}`);
    const startDate = startDateKendo.value();
    const endDate = endDateKendo.value();
    if (new Date(endDate) < new Date(startDate)) {
        endDateKendo.value("");
    }
    endDateKendo.min(startDate);
}

function isMobile() {
    return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
}

function isIosDevices() {
    return /iPhone|iPad/i.test(navigator.userAgent);
}

function isSafari() {
    var userAgent = navigator.userAgent;
    return /^((?!chrome|android).)*safari/i.test(userAgent);
}

function editTransactionById(transactionId) {
    var url = `/Transactions/EditTransactionAmount?transactionId=${transactionId}`;
    openModalDialog(url, 'sm');
}

function membershipChanged() {
    if ($("#member-header-details-container")[0]) {
        try {
            reloadMemberHeaderDetails();
        } catch (e) {

        }
    }
    if (typeof loadMemberBalance === "function") {
        const container = document.getElementById("memberBalanceContainer");
        if (container) {
            loadMemberBalance();
        }
    }

}
function reloadAccountHeaderDetails() {
    if ($("#member-header-details-container")[0]) {
        try {
            reloadMemberHeaderDetails();
        } catch (e) {

        }
    }
}
function rebindMemberActiveTab(result, ref) {
    enableSubmitButton(ref);
    if (result.isValid) {
        closeAllModalDialogs();
        membershipChanged();
        if ($("#MembersGrid")[0]) {
            rebindAjaxGrid("MembersGrid");
            return;
        }
        if ($("#MembersDetailsTab")[0]) {
            rebindActiveKendoTabStrip("MembersDetailsTab");
            return;
        }

    } else {
        if (result.isMessage) {
            showErrorToastr(result.message);
        } else {
            jQuery(jQuery(ref).data("ajax-update")).html(result.data);
        }
    }
}
function rebindActiveMemberTabOnFormSubmit(result, ref) {
    enableSubmitButton(ref);
    if (result.isValid) {
        closeAllModalDialogs();    
        if ($("#MembersGrid")[0]) {
            rebindAjaxGrid("MembersGrid");
            return;
        }
        if ($("#MembersDetailsTab")[0]) {
            rebindActiveKendoTabStrip("MembersDetailsTab");
            return;
        }

    } else {
        if (result.isMessage) {
            showErrorToastr(result.message);
        } else {
            jQuery(jQuery(ref).data("ajax-update")).html(result.data);
        }
    }
}

function rebindFamilyActiveTab(result, ref) {
    enableSubmitButton(ref);
    if (result.isValid) {
        closeAllModalDialogs();
        membershipChanged();
        // Do something if class exists

        if ($("#FamiliesGrid")[0]) {
            rebindAjaxGrid("FamiliesGrid");
            return;
        }
        if ($("#MembersGrid")[0]) {
            rebindAjaxGrid("MembersGrid");
            return;
        }
        if (!$("#FamiliesGrid")[0] && !$("#MembersGrid")[0]) {
            if ($("#FamilyDetailsTab")[0]) {
                rebindActiveKendoTabStrip("FamilyDetailsTab");
                return;
            }
            if ($("#MembersDetailsTab")[0]) {
                rebindActiveKendoTabStrip("MembersDetailsTab");
                return;
            }
        }
    } else {
        if (result.isMessage) {
            showErrorToastr(result.message);
        } else {
            jQuery(jQuery(ref).data("ajax-update")).html(result.data);
        }
    }
}

function revertPayment(trId) {
    displayActionInDialog('/Transactions/RevertPayment/' + trId);
}

function refundPayment(trId) {
    displayActionInDialog('/Refunds/RefundTransaction?transactionId=' + trId);
}

function showTransactionDetailsModal(trId) {
    displayActionInDialog('/Transactions/TransactionDetails/' + trId);
}

function kendoDropDownSelectedData(e) {
    return e.sender.dataItem();
}

function createTerminalHtml(marginAutoButton) {
    return "<h2>Waiting For Card Swipe</h2></br>" +
        `<button type='button' style='${marginAutoButton ? 'margin:auto' : ''}'` +
        `class='btn btn-info clear-terminal-btn' disabled>Cancel</button><script>setTimeout(function(){$('.clear-terminal-btn').prop('disabled',false)}, 3000);</script>`;
}

function createTerminalRefundHtml(marginAutoButton,terminalName) {
    return `<h2>Waiting for customer to present Interac Debit card at ${terminalName}</h2></br>`+
        `<button type='button' style='${marginAutoButton ? 'margin:auto' : ''}'` +
        `class='btn btn-info clear-terminal-btn' disabled>Cancel</button><script>setTimeout(function(){$('.clear-terminal-btn').prop('disabled',false)}, 3000);</script>`;
}

function createProcessPaymentHtml() {
    return "<h2>Process Payment</h2></br>";      
}
function createProcessRefundHtml() {
    return "<h2>Process Refund</h2></br>";
}
//Kendo prevent uploading for file bigger than 5 mb
$(document).on("click", ".k-button", function () {
        setTimeout(function () {

            //binding for input is set every time for the same input just ensure we show one message
            var swalDisplay = false;

            // Attach a select handler to the Upload embedded in the ImageBrowser.
            try {
                $(".k-editor-dialog .k-upload").find("input").data("kendoUpload").bind("select",
                    function (e) {
                        // Prevent the event if the selected file exceeds the specified limit.
                        if (e.files[0].size > 5248576) {
                            if (!swalDisplay) {
                                swalDisplay = true;
                                e.preventDefault();

                                Swal.fire({
                                    title: 'Maximum allowed file size: 5MB',
                                    icon: 'warning',
                                    confirmButtonColor: '#3085d6',
                                    customClass: {
                                        container: 'top-zindex'
                                    }
                                });
                            }

                            swalDisplay = true;
                        }
                    });
            } catch (e) {

            }
        });
    });

//https://stackoverflow.com/a/15287088
function fixedEncodeURIComponent(str) {
    return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}

function printDisclosure() {
    $(".hide-on-print").css('display', 'none');
    var myWindow = window.open('', '', 'height=' + screen.height + ', width=' + screen.width);
    var disclosureName = $("#DisclosureName").val();

    myWindow.document.head.innerHTML = `<title>${disclosureName}</title>`;
    myWindow.document.body.innerHTML = '<body>' + document.getElementById("printarea").innerHTML + '</body>';

    //myWindow.document.write(document.getElementById("printarea").innerHTML);

    myWindow.document.close();
    myWindow.focus();
    myWindow.print();
    //myWindow.close();

    $(".hide-on-print").css('display', 'block');
    var inst = $('[data-remodal-id=disclosure-text]').remodal();
    inst.close();
};
function printDisclosureById(id) {
    $(".hide-on-print").css('display', 'none');
    var myWindow = window.open('', '', 'height=' + screen.height + ', width=' + screen.width);
    var disclosureName = $(`#DisclosureName_${i}`).val();

    myWindow.document.head.innerHTML = `<title>${disclosureName}</title>`;
    myWindow.document.body.innerHTML = '<body>' + document.getElementById("printarea").innerHTML + '</body>';

    //myWindow.document.write(document.getElementById("printarea").innerHTML);

    myWindow.document.close();
    myWindow.focus();
    myWindow.print();
    //myWindow.close();

    $(".hide-on-print").css('display', 'block');
    var inst = $('[data-remodal-id=disclosure-text]').remodal();
    inst.close();
};
function printDisclosureInModal() {
    $(".hide-on-print").css('display', 'none');
    var myWindow = window.open('', '', 'height=' + screen.height + ', width=' + screen.width);
    var disclosureName = $("#DisclosureName").val();

    myWindow.document.head.innerHTML = `<title>${disclosureName}</title>`;
    myWindow.document.body.innerHTML = '<body>' + document.getElementById("printarea").innerHTML + '</body>';

    //myWindow.document.write(document.getElementById("printarea").innerHTML);

    myWindow.document.close();
    myWindow.focus();
    myWindow.print();
    //myWindow.close();

    $(".hide-on-print").css('display', 'block');
    closeModalDialog("action-modal");
};
function showCreateReservationErrorMessage() {
    showSwalNiceError('Error',
        "Sorry, you're currently not allowed to book courts. Please reach out to the organization directly for assistance with your account.");
}

function clearKendoGridItems(id) {
    $("#" + id).data("kendoGrid").dataSource.data([]);
};

function uEncode(str) {
    var encodedString = _.escape(str);
    return encodedString;
}

function uDecode(str) {
    return uDencode(str);
}
function uDencode(str) {
    var decodedString = _.unescape(str);
    if (!isNullOrEmpty(decodedString)) {
        decodedString = decodedString.replace("%27", "'");
    }
    return decodedString;
}

function uniqueArray(value, index, self) {
    return self.indexOf(value) === index;
}

function kendoGridRowTotal(id, type) {
    var sum = 0;
    var kendoGridSource = $("#" + id).data("kendoGrid").dataSource;
    var items = kendoGridSource._data;
    $.each(items,
        function (index, value) {
            var amountString = '';
            if (type == "total") {
                amountString = items[index].Total;
            }
            if (type == "amount") {
                amountString = items[index].Amount;
            }
            if (type == "amountwithnotax") {
                amountString = items[index].AmountWithNoTax;
            }
            if (type == "taxtotal") {
                amountString = items[index].TaxTotal;
            }
            var amount = parseFloat(amountString);
            sum = sum + amount;
        });
    var isNan = isNaN(parseFloat(sum));
    if (isNan) {
        sum = 0;
    }

    return sum.toFixed(2);
}

function footerKendoGridRowTotalWithCurrency(currency, id, type) {
    var total = kendoGridRowTotal(id, type);

    return `Total: ${kendo.toString(parseFloat(total), "c")}`;
}

function kendoGridRowSumWithCurrency(currency, sum) {
    return kendo.toString(parseFloat(sum), "c");
}

function uuidv4() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,
        function (c) {
            var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
            return v.toString(16);
        });
}

function getKendoGridIds(id) {
    return $(`#${id}`).data('kendoGrid').dataSource.data().map(function (x) {
        return x.Id;
    });
}

$(function () {
    if ($(".firstFocus")[0]) {
        setTimeout(function () { $(".firstFocus").focus(); }, 200);
    }
    fixMobileKendoInputs();

    //binding issue
    setTimeout(function() { fixMobileKendoInputs(); }, 1000);

    $(window).on("scroll resize", function (e) {
        //set scheduler filter max-height
        if ($('#customFilterPanel')[0]) {
            let headerHeight = $("#header").height();
            var buttonPosition = $("#clearFilterBtn").height();

            var documentHeight = $("body").height();
            var maxHeight = documentHeight - (headerHeight + buttonPosition + 90); //90 system padding
            $("#customFilterPanel").css('max-height', `${maxHeight}px`);
        }

        setModalBodyHeight();
        fixHeaderTopAligmentItems();
    }).trigger('resize');
});

$(document).on('shown.bs.modal',
    (event) => {
        var modalHtml = event.target;

        //input is not working for absolute blocks
        try {
            $(document).off('focusin.modal');
        } catch (e) { }

        if (!$(modalHtml).find("#main-modal-container").hasClass("not-focus")) {
            if ($(modalHtml).find(".firstFocus")[0]) {
                setTimeout(function () { $(modalHtml).find(".firstFocus").focus(); }, 200);
            }
        }
    });


$(document).on('hide.bs.modal', function (event) {
    try {
        if ($(`#${event.target.id} .modal-v2-content`)[0]) {
            setTimeout(function () { $(`#${event.target.id} .modal-content`).removeClass('modal-v2-content'); }, 500);
        }
    } catch (e) {

    }
});

$(document).on('hide.bs.modal',
    (event) => {
        if (typeof removeSelectedMobileItems == 'function') {
            removeSelectedMobileItems();
        }

        if ($('#render-body-container').hasClass('mobile-modal-v2')) {
            if (isMobileLayout) {
                $('.kendo-dynamic-ul').remove();
            }
        }
    });

function getKendoSafeDates(startDate, endDate, comma) {
    var result = "";
    var startDateValue = '';
    var endDateValue = '';

    try {
        if ($(`#${startDate}`)[0]) {
            startDateValue = $(`#${startDate}`).val();
        }
    } catch (e) {

    }

    try {
        if ($(`#${endDate}`)[0]) {
            endDateValue = $(`#${endDate}`).val();
        }
    } catch (e) {

    }

    if (startDateValue != '' && endDateValue != '') {
        result = `${startDateValue} ${comma} ${endDateValue}`;
    } else if (startDateValue != '') {
        result = `${startDateValue}`;
    } else if (endDateValue != '') {
        result = `${endDateValue}`;
    }

    return result;
}

function fixMobileKendoInputs() {
    if (isMobileLayout) {
        $('input[data-role="timepicker"]').each(function () {
            //$(this).prop('disabled', true);
            //$(this).attr('readonly', true);

            var elId = $(this).attr('id');
            if (elId) {
                var timeKendoDropdown = $(`#${elId}`).data('kendoTimePicker');
                if (timeKendoDropdown) {
                    timeKendoDropdown.readonly();
                }
            }
        });

        $('input[data-role="datepicker"]').each(function () {
            //$(this).prop('disabled', true);
            //$(this).attr('readonly', true);

            var elId = $(this).attr('id');
            if (elId) {
                var timeKendoDropdown = $(`#${elId}`).data('kendoDatePicker');
                if (timeKendoDropdown) {
                    timeKendoDropdown.readonly();
                }
            }
        });

        $('.k-selection-multiple .k-input-inner').attr('disabled', 'disabled');
        $('.selectize-input input').val($('.selectize-input input').attr('placeholder'));
        $('.selectize-input input').attr('disabled', true);

        //$('.k-selection-multiple').children('span').last().addClass('mobile-multiselect-placeholder');

        //$('.k-multiselect.k-input span:last-child').addClass('mobile-multiselect-placeholder');
    }
}

$(document).on('click', 'input[data-role="datepicker"]', function() {
    if (isMobileLayout) {
        var elId = $(this).attr('id');
        if (elId) {
            var timeKendoDropdown = $(`#${elId}`).data('kendoDatePicker');
            if (timeKendoDropdown) {
                timeKendoDropdown.open();
            }
        }
    }
});

var isOpenMiscClicked = false;
$(document).on('click', '#reservationMiscFeesContainer, .misc-items', function () {
    if (!isOpenMiscClicked) {
        isOpenMiscClicked = true;
        if ($(this).hasClass('misc-items')) {
            //admin area
            $('[for="CostTypes"]').click();
        } else {
            $('[for="ReservationMiscFees"]').click();
        }

        setTimeout(function() { isOpenMiscClicked = false }, 1000);
    }
});

var originalViewportHeight = $(window).height();
var originalViewportWidth = $(window).width();
var deviceKeyboardHeight = 0;

// Helper function to detect orientation change
function updateViewportDimensions(excludeFooter) {
    originalViewportHeight = $(window).height();
    originalViewportWidth = $(window).width();
    setModalBodyHeight(excludeFooter);
}

function setModalBodyHeight(excludeFooter) {
    if (isMobileLayout) {
        reactConsoleLog('setModalBodyHeight');

        $(window).on('resize', function () {
            if (isAndroid()) {
                var currentViewportHeight = $(window).height();
                var currentViewportWidth = $(window).width();

                // Check if the aspect ratio has changed significantly (rotation)
                if ((currentViewportHeight > currentViewportWidth && originalViewportHeight < originalViewportWidth) ||
                    (currentViewportHeight < currentViewportWidth && originalViewportHeight > originalViewportWidth)) {
                    deviceKeyboardHeight = 0;
                    updateViewportDimensions(excludeFooter);
                } else {
                    // Detect keyboard appearance based on height changes
                    if (currentViewportHeight < originalViewportHeight) {
                        deviceKeyboardHeight = originalViewportHeight - currentViewportHeight;
                        reactConsoleLog('Keyboard appeared');
                    } else {
                        reactConsoleLog('Keyboard disappeared');
                        deviceKeyboardHeight = 0;
                    }
                }
            }
        });

        var deviceHeight = calculateDeviceHeight(/*onlyTop*/ true, /*onlyBottom*/ false);
        let headerHeight = $('#mobile-header').outerHeight(true);

        var mobileBottomPaddingToExlude = 0;

        try {
            mobileBottomPaddingToExlude = getMobileDeviceExludeHeight(/*onlyTop*/ false, /*onlyBottom*/ true);
            deviceHeight = deviceHeight - mobileBottomPaddingToExlude;
        } catch (e) { }

        if (!isNullOrEmpty(mobileDeviceModelUnq)) {
            $('mobilefooter').css('min-height', 60 + mobileBottomPaddingToExlude);
        }

        var mobileFooterHeight = $('mobilefooter').outerHeight();
        if (isNullOrEmpty(mobileFooterHeight)) {
            mobileFooterHeight = 0;
        }

        if ($('.footer-container')[0]) {
            mobileFooterHeight = $('.footer-container').outerHeight();
        }

        //if ($('.selectlist-ul').hasClass('show')) {
        //    let selectFooterBlockHeight = $('.selectlist-ul.show .ul-footer-container').outerHeight();
        //    mobileFooterHeight = selectFooterBlockHeight;
        //}

        if ($('.fn-inner-scroll')[0]) {
            var mainEl = $('.fn-inner-scroll');
            var messageHeight = $('.fn-inner-scroll-child').outerHeight(true);
            if (isNullOrEmpty(messageHeight)) {
                messageHeight = 0;
            }

            mainEl.css('maxHeight', deviceHeight - mobileFooterHeight - 54 - messageHeight - 55);
            mainEl.css('overflowX', 'hidden');
            mainEl.css('overflowY', 'auto');
        }

        if ($('.modal-footer-container')[0]) {
            let latestModal = null;
            let latestTime = new Date(0);

            let footerHeight = $('.modal-footer-container').outerHeight(true);

            if ($('.modal').hasClass('show')) {
                if ($('.modal[data-timest]').length > 0) {
                    $('.modal[data-timest]').each(function () {
                        var modalTime = new Date($(this).attr('data-timest'));

                        if (modalTime > latestTime) {
                            latestTime = modalTime;
                            latestModal = $(this);
                        }
                    });
                }
            }

            if (!isNullOrEmpty(latestModal)) {
                footerHeight = $(latestModal).find('.modal-footer-container').outerHeight(true);
            }

            deviceHeight = calculateDeviceHeight(/*onlyTop*/ false, /*onlyBottom*/ false);

            //deviceHeight = deviceHeight - getMobileDeviceExludeHeight(/*onlyTop*/ false, /*onlyBottom*/ false);

            let heightWithoutHeader = deviceHeight - headerHeight;
            let heightToSet = heightWithoutHeader - footerHeight;
            $('.modal-body').css('maxHeight', heightToSet);
            $('.modal-body').css('minHeight', heightToSet);
            $('.modal-backdrop').addClass('hide');
            return false;
        }

        if ($('#form-container-update-target')[0]) {
            let footerHeight = $('.footer-container').outerHeight(true);
            deviceHeight = deviceHeight - getMobileDeviceExludeHeight(/*onlyTop*/ true, /*onlyBottom*/ false);
            let heightWithoutHeader = deviceHeight - headerHeight;
            let heightToSet = heightWithoutHeader - footerHeight;
            $('#form-container-update-target').css('maxHeight', heightToSet);
            $('#form-container-update-target').css('minHeight', heightToSet);
        }
        else if ($('.fn-height-setter-form')[0]) {
            deviceHeight = deviceHeight - getMobileDeviceExludeHeight(/*onlyTop*/ true, /*onlyBottom*/ false);

            let footerHeight = $('.footer-container').outerHeight(true);
            let heightWithoutHeader = deviceHeight - headerHeight;
            let heightToSet = heightWithoutHeader - footerHeight;
            $('.fn-height-setter-form').css('maxHeight', heightToSet);
            $('.fn-height-setter-form').css('minHeight', heightToSet);
        }

        if ($('#portal-mobile-footer')[0] || $('#mobilefooter')[0] || $('mobilefooter')[0]) {
            deviceKeyboardHeight = 0;
        }

        if ($('mobilefooter')[0] && deviceKeyboardHeight === 0) {
            var topPosition = deviceHeight;
            var mobileFooterTopPossition = $(window).outerHeight();
            $('mobilefooter').css('top', mobileFooterTopPossition + 1); //bottom border

            //modal page
            if (equalString(mobileFooterHeight, 0) && $('.footer-container')[0]) {
                mobileFooterHeight = $('.footer-container').outerHeight();
            }

            if (mobileFooterHeight > 0) {
                if ($('html').hasClass('rct-html-mobile')) {
                    //prevent margin top set
                } else {
                    //$('mobilefooter').css('margin-top', mobileFooterHeight * -1); //bottom border
                }
            }

            $('mobilefooter').removeClass('hide');
            $('#mobile-dashboard.main-page').css('padding-bottom', mobileFooterHeight);  //bottom border

            if ($('#mobile-dashboard.main-page').hasClass('fn-ignore-footer')) {
                $('#mobile-dashboard.main-page').css('padding-bottom', 10);
            }

            //$('.dynamic-ul').css('max-height', topPosition - mobileFooterHeight);
            $('.dynamic-ul:not(.mobile-bottom-modal)').css('max-height', topPosition - mobileFooterHeight);

            if ($('.footer-container')[0] || $('.modal-footer-container')[0]) {
                $('mobilefooter').addClass('hide');
            } else {
                if ($('#custom-scheduler-page')[0]) {
                    //we set scheduler height calculated
                } else {
                    //$('.mobile-container').css('paddingBottom', "90px");
                }
            }
        }

        if ($('.fn-mobile-calculation')[0]) {
            let tabStripHeight = $('.k-tabstrip-items-wrapper').outerHeight(true);
            if (isNullOrEmpty(tabStripHeight)) {
                tabStripHeight = 0;
            }

            let footerHeight = 0;

            if (!excludeFooter) {
                footerHeight = $('.footer-container').outerHeight(true);
                if (isNullOrEmpty(footerHeight)) {
                    footerHeight = 0;
                }
            }
            deviceHeight = deviceHeight - getMobileDeviceExludeHeight(/*onlyTop*/ true, /*onlyBottom*/ false);
            let heightWithoutHeader = deviceHeight - tabStripHeight - footerHeight - headerHeight;

            if ($('mobilefooter')[0] && !$('mobilefooter').hasClass('hide')) {
                heightWithoutHeader = heightWithoutHeader - mobileFooterHeight;
            }

            $('.fn-form-body-container').css('minHeight', heightWithoutHeader);
            $('.fn-form-body-container').css('maxHeight', heightWithoutHeader);
        }

        if ($('.offcanvas-start')[0]) {
            let footerHeight = $('.modal-footer').outerHeight(true);
            deviceHeight = deviceHeight - getMobileDeviceExludeHeight(/*onlyTop*/ true, /*onlyBottom*/ false);
            let heightToSet = deviceHeight - footerHeight - headerHeight;

            $('#filter-group').css('maxHeight', heightToSet);
            $('#filter-group').css('minHeight', heightToSet);

            $('.fn-filter-group').css('maxHeight', heightToSet);
            $('.fn-filter-group').css('minHeight', heightToSet);
        }

        if ($('.fn-autoheight')[0]) {
            if ($('.fn-autoheight').hasClass('fn-resized')) {
                return false;
            }

            if ($('.fn-autoheight').hasClass('fn-prevent-resize')) {
                $('.fn-autoheight').addClass('fn-resized');
            }

            let footerHeight = $('.modal-footer').outerHeight(true);
            var navBottomHeight = 0;
            if (isNullOrEmpty(footerHeight)) {
                footerHeight = 0;
            }

            if ($('mobilefooter')[0]) {
                if ($('html').hasClass('rct-html-mobile')) {
                    navBottomHeight = 60 + getMobileDeviceExludeHeight(/*onlyTop*/ false, /*onlyBottom*/ true);
                } else if (footerHeight === 0) {
                    if (isMobileLayout && $('mobilefooter')[0]) {
                        footerHeight = $('mobilefooter').outerHeight();
                    }
                }
            }
            if (isNullOrEmpty(headerHeight) || $('.fn-autoheight').hasClass('fn-ignore-header-height')) {
                headerHeight = 0;
            }

            if ($('.fn-autoheight').hasClass('fn-ignore-footer')) {
                navBottomHeight = 0;
            }

            if ($('.footer-container')[0]) {
                footerHeight = $('.footer-container').outerHeight();
            }

            let heightToSet = deviceHeight - footerHeight - headerHeight - navBottomHeight;
            var additionalHeight = 10;
            if ($('.fn-autoheight').hasClass('fn-no-additional')) {
                additionalHeight = 0;
            }

            let additionalExtraHeightToAdd = $('.fn-autoheight').attr('data-extraheight');
            if (!isNullOrEmpty(additionalExtraHeightToAdd)) {
                additionalHeight = parseInt(additionalExtraHeightToAdd);
            }

            if ($('.modern-dashboard-height-setter')[0]) {
                heightToSet = heightToSet + wlMobileBottom;
            }

            if ($('.fn-autoheight-extra-block-exl')[0]) {
                var additionalBlockHeight = $('.fn-autoheight-extra-block-exl').outerHeight();
                additionalHeight = additionalHeight + additionalBlockHeight;
            }

            $('.fn-autoheight').css('maxHeight', heightToSet - additionalHeight);
            $('.fn-autoheight').css('minHeight', heightToSet - additionalHeight);
        }

        if ($('.fn-react-navigation')[0]) {
            let heightToSetNav = calculateDeviceHeight(/*onlyTop*/ false, /*onlyBottom*/ true);
            heightToSetNav = heightToSetNav - $('mobilefooter').outerHeight() + 2; //2 border
            $('.fn-react-navigation').css('maxHeight', heightToSetNav);
            $('.fn-react-navigation').css('minHeight', heightToSetNav);
        }
    }
}

function showPercentage(percentage) {
    var doubleNumber = parseFloat(percentage);
    return doubleNumber.toFixed(2) + "%";
}

function modalScrollToSelected(modalId) {
    var el = $(`#${modalId} table input[checked='checked']`);
    if (el != null && el != "undefined" && el.length > 0) {
        try {
            setTimeout(function () {
                $(el).get(0).scrollIntoView({
                    behavior: 'auto',
                    block: 'center',
                    inline: 'center'
                });
            },
                1000);
        } catch (e) {

        }
    };
}
function setKendoNumberTxt(id, number, trigger, setMinValue, setMaxValue) {
    var textbox = $("#" + id).data("kendoNumericTextBox");
    if (textbox) {
        if (!isNullOrEmpty(setMinValue)) {
            textbox.min(setMinValue);
        }

        if (!isNullOrEmpty(setMaxValue)) {
            textbox.max(setMaxValue);
        }

        textbox.value(number);
        if (trigger) {
            textbox.trigger("change");
        }
    }
}

function getSelectedPeriodByIdentifier(id) {
    if ($(id)[0]) {
        if ($(`${id} .active`)[0]) {
            return $(`${id} .active`).data("value");
        }
        return 0;
    }

    return 0;
}

function updateURLParameter(url, param, paramVal) {
    var TheAnchor = null;
    var newAdditionalURL = "";
    var tempArray = url.split("?");
    var baseURL = tempArray[0];
    var additionalURL = tempArray[1];
    var temp = "";

    if (additionalURL) {
        var tmpAnchor = additionalURL.split("#");
        var TheParams = tmpAnchor[0];
        TheAnchor = tmpAnchor[1];
        if (TheAnchor)
            additionalURL = TheParams;

        tempArray = additionalURL.split("&");

        for (var i = 0; i < tempArray.length; i++) {
            if (tempArray[i].split('=')[0] != param) {
                newAdditionalURL += temp + tempArray[i];
                temp = "&";
            }
        }
    }
    else {
        var tmpAnchor = baseURL.split("#");
        var TheParams = tmpAnchor[0];
        TheAnchor = tmpAnchor[1];

        if (TheParams)
            baseURL = TheParams;
    }

    if (TheAnchor)
        paramVal += "#" + TheAnchor;

    var rows_txt = temp + "" + param + "=" + paramVal;
    return baseURL + "?" + newAdditionalURL + rows_txt;
}


$(document).on("focus", ".kendo-focus .k-input", function () {
    var input = $(this);
    clearTimeout(input.data("selectTimeId")); //stop started time out if any

    var selectTimeId = setTimeout(function () {
        input.select();
        // To make this work on iOS, too, replace the above line with the following one. Discussed in https://stackoverflow.com/q/3272089
        // input[0].setSelectionRange(0, 9999);
    });

    input.data("selectTimeId", selectTimeId);
}).blur(function (e) {
    clearTimeout($(this).data("selectTimeId")); //stop started timeout
});

function addAuditLogToggler(rows) {
    $.each(rows,
        function (i, row) {
            var uid = row.uid;
            if (uid != null) {
                var dataUidString = `[data-uid='${uid}']`;

                var currentItem = $(dataUidString);
                if (currentItem != null) {
                    if ($(`${dataUidString} .event-price-audit`)[0]) {
                        $(`${dataUidString}`).find(`.event-price-audit`).addClass(`a-ep${i}`);

                        //remove br from extracted header text
                        $(`${dataUidString} .a-ep${i}`).eq(0).next().remove();

                        $(`${dataUidString} .a-ep${i}`).eq(1).addClass(`au-start${i}`);
                        $(`${dataUidString} .a-ep${i}:last`).addClass(`au-last${i}`);

                        const dataToExtract = $(`${dataUidString} .au-start${i}`)
                            .nextUntil(`${dataUidString} .au-last${i}`);

                        var firstItem = $(`${dataUidString} .au-start${i}`);
                        var lastItem = $(`${dataUidString} .au-last${i}`);

                        //append to the end
                        var descriptionExport = $(`${dataUidString} [data-field='DescriptionExport']`);

                        $(`<div class='event-price-audit-clp' id='audit-event-price-tgl${i}'></div> <div class='collapse audit-clp' aria-labelledby='audit-event-price-tgl${i}' id='collapsePrice${i}'></div>`).appendTo(descriptionExport);
                        $(`<div class='event-price-audit-clp' id='audit-event-price-tgl${i}'></div> <div class='collapse audit-clp' aria-labelledby='audit-event-price-tgl${i}' id='collapsePrice${i}'></div>`).insertAfter(`.au-last${i}`);

                        $(`#audit-event-price-tgl${i}`).html(`<button class='btn btn-link collapsed btn-audit-event-price' type='button' data-toggle='collapse' data-target='#collapsePrice${i}' aria-controls='collapsePrice${i}'>` + $(`.a-ep${i}`).eq(0).text() + "</button>");

                        ////remove extracted header text
                        $(`${dataUidString} .a-ep${i}`).eq(0).remove();

                        //dataToExtract.css("background-color", "red");
                        var html = dataToExtract.detach();
                        var lastHtmlItem = lastItem.detach();
                        var firstHtmlItem = firstItem.detach();

                        $(`#collapsePrice${i}`).html(firstHtmlItem);
                        $(`#collapsePrice${i}`).append(html);
                        $(`#collapsePrice${i}`).append(lastHtmlItem);

                        $(`#collapsePrice${i}`).next().addClass("item-to-remove");

                        //remove first added br in container
                        $("br.item-to-remove").remove();
                    }

                    if ($(`${dataUidString} .audit-expander`)[0]) {
                        var exceptDataNames = [];
                        var auditExpanderIndex = 0;
                        $.each($(`${dataUidString} .audit-expander`), function () {
                            var textToShow = $(this).attr('data-name');

                            if (!exceptDataNames.includes(textToShow)) {
                                exceptDataNames.push(textToShow);
                                auditExpanderIndex++;
                                $(`${dataUidString} .audit-expander[data-name="${textToShow}"]`).wrapAll(`<div class='collapse audit-clp' aria-labelledby='audit-toggler-${uid}_${auditExpanderIndex}' id='collapseTgl${uid}_${auditExpanderIndex}' />`);
                                $(`#collapseTgl${uid}_${auditExpanderIndex}`).before(`<div class="event-price-audit-clp" id="audit-toggler-${uid}_${auditExpanderIndex}"><button class="btn btn-link collapsed btn-audit-event-price" type="button" data-toggle="collapse" data-target="#collapseTgl${uid}_${auditExpanderIndex}" aria-controls="collapseTgl${uid}_${auditExpanderIndex}">${textToShow}</button></div>`);
                            }
                        });
                    }
                }
            }
        });

    var increment = 0;
    $.each(rows,
        function (i, row) {
            var uid = row.uid;
            if (uid != null) {
                var parentI = i;
                var dataUidString = `[data-uid='${uid}']`;

                var currentItem = $(dataUidString);
                if (currentItem != null) {
                    if ($(`${dataUidString} .expand-audit`)[0]) {
                        increment = 0;
                        $(`${dataUidString} .expand-audit[data-start='true']`).each(function (i, obj) {
                            increment++;
                            //$(this).addClass(`a-ep${increment}`);
                            $(this).addClass(`au-start-${parentI}-${increment}`);
                        });

                        increment = 0;
                        $(`${dataUidString} .expand-audit[data-start='false']`).each(function (i, obj) {
                            increment++;
                            //$(this).addClass(`a-ep${increment}`);
                            $(this).addClass(`au-last-${parentI}-${increment}`);
                        });

                        increment = 0;
                        $(`${dataUidString} .expand-audit[data-start='true']`).each(function (i, obj) {
                            increment++;

                            $(`${dataUidString}`).html($(`${dataUidString}`).html().replace(`<span class="expand-audit au-start-${parentI}-${increment}`, `<div class="wrapper-inner-audit wrapper-${parentI}-${increment}"><span class="expand-audit au-start-${parentI}-${increment}`));
                            $(`${dataUidString}`).html($(`${dataUidString}`).html().replace(`<span class="expand-audit au-last-${parentI}-${increment}" data-start="false">`, `<span class="expand-audit au-last-${parentI}-${increment}" data-start="false"></div>`));

                            var descriptionExport = $(`${dataUidString} [data-field='DescriptionExport']`);

                            $(`<div class='event-price-audit-clp custom-audit-panel' id='audit-event-price-tgl-${parentI}-${increment}'></div> <div class='collapse audit-clp' aria-labelledby='audit-event-price-tgl-${parentI}-${increment}' id='collapsePrice-${parentI}-${increment}'></div>`).appendTo(descriptionExport);
                            $(`<div class='event-price-audit-clp custom-audit-panel' id='audit-event-price-tgl-${parentI}-${increment}'></div> <div class='collapse audit-clp' aria-labelledby='audit-event-price-tgl-${parentI}-${increment}' id='collapsePrice-${parentI}-${increment}'></div>`).insertAfter(`.wrapper-${parentI}-${increment}`);
                            $(`#audit-event-price-tgl-${parentI}-${increment}`).html(`<button class='btn btn-link collapsed btn-audit-event-price' type='button' data-toggle='collapse' data-target='#collapsePrice-${parentI}-${increment}' aria-controls='collapsePrice-${parentI}-${increment}'>` + $(`.au-start-${parentI}-${increment}`).text() + "</button>");

                            var html = $(`.wrapper-${parentI}-${increment}`).detach();
                            $(`#collapsePrice-${parentI}-${increment}`).append(html);
                        });
                    }
                }
            }
        });

    $('.audit-clp .expand-audit').remove();
    $('.audit-clp div br:lt(0)').remove();
}

function toggleDropdownPlaceholder(ddl) {
    var value = ddl.value();

    if (value === "") {
        ddl.wrapper.find(".k-input").addClass("k-placeholder");
    }
    else {
        ddl.wrapper.find(".k-input").removeClass("k-placeholder");
    }
}

function getArrowRight(height) {
    return `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="${height / 2}px" height="${height}px" viewBox="0 0 50 80" xml:space="preserve">
    <polyline fill="none" stroke="black" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" points="
	0.375,0.375 45.63,38.087 0.375,75.8 "></polyline>
  </svg>`;
}

function displayOperationType(data) {
    if (data == null) {
        return "";
    }
    var msg = data.OperationTypeDisplay;

    if (data.HasRefunds) {
        msg += '<a class="fee-has-refunds" title="Refunded" onClick="viewTransactionLinks(' + data.TransactionId + ',true)">(R)</a>';
    }
    return msg;
}

function rebindSchedulerWithRefresh(id) {
    var sch = jQuery('#' + id).data("kendoScheduler");
    if (sch) {
        jQuery('#' + id).data("kendoScheduler").dataSource.read();
        jQuery('#' + id).data('kendoScheduler').refresh();
    }
}

function checkThePayNow(id) {
    return false;
    var url = '/Online/OrganizationsBase/HasPendingUpfrontPayment/' + id;
    jQuery.ajax({
        url: url,
        type: "GET",
        async: true,
        success: function (data) {
            var btn = $(".fn-checkoutBtn");
            if (data == null || !data.isValid || !data.data.HasUnpaidReservations) {
                btn.addClass("hide");
            } else {
                btn.removeClass("hide");
            };

            if ($("#member-portal-body")[0]) {
                try {
                    hamburgerFix();
                } catch(e) {

                }
            }
        }
    });
}

$(document).on("click", ".btn-modal", function (e) {
    if ($(this).hasClass('prevent-top-href')) {
        e.preventDefault();
        e.stopPropagation();
    }

    //on mobile a link can be fired multiple times, lets disable a for 2 seconds
    //sign waiver slow loading
    if (!$(this).hasClass('fn-disable-link')) {
        var btnEl = $(this);
        var url = btnEl.data("href");
        var widthClass = btnEl.data("width");
        btnEl.addClass('fn-disable-link');
        openModalDialog(url, widthClass, null, $(this));

        setTimeout(function() {
            btnEl.removeClass('fn-disable-link');
        }, 1500);
    }
});

function addKioskChangeFeatureBtn() {
    //var html = `<button title="Change feature" class="mainMenu btn-release-index custom-buttons" data-toggle="tooltip" data-placement="bottom"  
    //            style="height: 55px !important;border:none; background-color: transparent;padding: 7px 15px !important;">
    //            <i class="pe-7s-switch" style="font-size: 36px;"></i>
    //            </button>`;

    var html = `<button class="mainMenu btn-release-index custom-buttons" 
                data-toggle="tooltip" data-placement="bottom" title="Home"
                style="height: 55px !important;border:none; background-color: transparent;padding: 7px 15px !important;">
                Home
                </button>`;

    if ($("#left-additional-tabs")[0]) {
        $("#left-additional-tabs").prepend(html);
    }
}



function isMobileOrTable() {
    var isMobileOrTablet = false;
    // device detection
    if (/Android|iPhone|iPad/i.test(navigator.userAgent)) {
        isMobileOrTablet = true;
    }

    return isMobileOrTablet;
}

function isAndroid() {
    var isAndroid = false;
    // device detection
    if (/Android/i.test(navigator.userAgent)) {
        isAndroid = true;
    }

    return isAndroid;
}

$(document).on("click", ".prevent-click", function (e) {
    e.preventDefault();
    e.stopPropagation();
    return false;
});
function numberOnlyInput(id, maxLength) {
    // Get element by id which passed as parameter within HTML element event
    var element = document.getElementById(id);
    // This removes any other character but numbers as entered by user
    element.value = element.value.replace(/[^0-9]/gi, "");

    if (maxLength != null && maxLength > 0) {
        if (element.value.length > maxLength) {
            element.value = element.value.slice(0, maxLength);
        }
    }
}
function persistSchedulerDate(date, uiCulture = null) {
    var dateString = kendo.toString(date, uiCulture);
    saveToCookie("InternalCalendarDate", dateString, 300);
}

function displayFamilyMemberMembership(data) {
    var res = "";
    if (data.OrgMemberToMembershipId == null) {
        res = "-";
    } else {
        res = data.CostTypeName;
        if (data.IsExpired) {
            if (data.IsCancelled) {
                res += " - Canceled";
            } else {
                res += " - Expired";
            }
        } else {
            res += " - Active";
        }
    }
    return res;
}


$(document).on("click", ".disabled-checkbox-container input", function (e) {
    e.preventDefault();
    return false;
});

function kendoDropdownFilterHasValue(identifier) {
    var rtElement = $(identifier).data('kendoDropDownList');
    if (rtElement) {
        if (rtElement.dataSource.filter() != null &&
            rtElement.dataSource.filter().filters[0] != null &&
            rtElement.dataSource.filter().filters[0].value != null) {

            var filterText = rtElement.dataSource.filter().filters[0].value;
            if (filterText.length > 0) {
                return true;
            }
        }
    }
    return false;
}

function kendoDropdownClearFilterText(identifier) {
    var rtElement = $(identifier).data('kendoDropDownList');
    if (rtElement) {
        if (rtElement.dataSource.filter() != null &&
            rtElement.dataSource.filter().filters[0] != null &&
            rtElement.dataSource.filter().filters[0].value != null) {

            var filterText = rtElement.dataSource.filter().filters[0].value;
            if (filterText.length > 0) {
                rtElement.dataSource.filter().filters[0].value = '';
            }
        }
    }
}

function kendoClearNumberic(id) {
    if($(`#${id}`)[0]) {
        $(`#${id}`).data("kendoNumericTextBox").value(null);
    }
}

$(document).on('click', '.fn-grid-see-more', function () {
    hideMobileBottomModal();
    var drawerId = $(this).attr('data-drid');
    $('.fake-modal-backdrop').addClass('drawer-backdrop');
    $('.fake-modal-backdrop').removeClass('hide');
    $(`#${drawerId}`).addClass('show');
});

function gridMoreToDrawerMobile(id, title, maxCount, template, placeholder) {
    if (isMobileLayout) {
        let gridTotalCount = countKendoGridItems(id);
        $(`#${id} .fn-grid-see-more`).remove();
        $(`#${id}_drawer`).remove();

        if (gridTotalCount > maxCount) {
            $(`#${id} tbody`).append(`<span class="fn-grid-see-more" data-drid='${id}_drawer'> See all<span>`);

            let dynamicHtmlDrawerToAdd = `<div class="dynamic-ul mobile-bottom-modal grid-mobile-bottom-modal" id='${id}_drawer'>`;
            dynamicHtmlDrawerToAdd += `<div class="row ${id}_drawer_header">
                            <div class="drawer-handle">
                                <span class="handle-bar"></span>
                                <span class="handle-bar"></span>
                            </div>
                            <div class="col-12 mobile-bottom-modal-wrapper">
                                <div class="modal-icon-title">
                                    <span class="mobile-bottom-modal-title"> </span>
                                    <span class="close-mobile-bottom-modal fn-close-mobile-bottom-modal">x</span>
                                </div>
                                ${isNullOrEmpty(placeholder) ? `` : `<div class="modal-search-row">
                                                                        <input type="text" class="form-control drawer-search-input" />
                                                                        <button type='button' class='drawer-search-input-clear hide'> Clear </button>
                                                                    </div>`}                                
                            </div>
                        </div>`;

            var grid = $(`#${id}`).data("kendoGrid");
            var dataSource = grid.dataSource;
            var dataItems = dataSource.data();

            dynamicHtmlDrawerToAdd += `<div class="${id}_drawer_items drawer-items-wrapper">`

            dataItems.forEach(function (item) {
                dynamicHtmlDrawerToAdd += template(item);
            });

            dynamicHtmlDrawerToAdd += '</div>'
            dynamicHtmlDrawerToAdd += '</div>';

            $('body').append(dynamicHtmlDrawerToAdd);
            $(`#${id}_drawer .mobile-bottom-modal-title`).html(title);
            $(`#${id}_drawer .modal-search-row input`).attr('placeholder', `${placeholder}`);

            $(`.${id}_drawer_items`).css('height', 600 - $(`.${id}_drawer_header`).outerHeight());

            if (!isNullOrEmpty(placeholder)) {
                $(document).on('click', `#${id}_drawer .drawer-search-input-clear`, function () {
                    $(`#${id}_drawer .drawer-search-input`).val('');
                    $(`#${id}_drawer .drawer-search-input`).trigger('input');
                });

                $(document).on('input', `#${id}_drawer .drawer-search-input`, function () {
                    var currentSearchInput = $(this);
                    var searchTerm = currentSearchInput.val().toLowerCase();

                    if (isNullOrEmpty(searchTerm)) {
                        $(`#${id}_drawer .drawer-search-input-clear`).addClass('hide');
                    } else {
                        $(`#${id}_drawer .drawer-search-input-clear`).removeClass('hide');
                    }

                    $(`#${id}_drawer`).css('height', $(`#${id}_drawer`).outerHeight())

                    var filteredItems = dataItems.filter(function (item) {
                        return Object.values(item).some(function (value) {
                            if (typeof value === 'string' || typeof value === 'number') {
                                return value.toString().toLowerCase().includes(searchTerm);
                            }
                            return false;
                        });
                    });

                    var filteredHtmlDrawerToAdd = '';

                    filteredItems.forEach(function (item) {
                        filteredHtmlDrawerToAdd += template(item);
                    });

                    filteredHtmlDrawerToAdd += '';

                    if (isNullOrEmpty(filteredHtmlDrawerToAdd)) {
                        filteredHtmlDrawerToAdd = '<div class="drawer-no-items">No items to display.</div>'
                    }

                    $(`.${id}_drawer_items`).html(filteredHtmlDrawerToAdd);
                });
            }
        }
    }
}

//TODO move to globally "detect event (event listener)"
function gridMobile(id, htmlTable) {
    if ($(`#${id}`)[0]) {
        var tableIdEl = $(`#${id}`);
        var gridRows = tableIdEl.find("td");

        gridRows.each(function (e) {
            if (!$(this).hasClass("k-mobile-td") && !$(this).hasClass("k-hierarchy-cell")) {
                $(this).addClass("k-mobile-td");

                //var fieldKey = $(this).data("field");
                var indexKey = $(this)[0].cellIndex;

                if ($(this).parent().find(".k-hierarchy-cell").length > 0) {
                    indexKey = indexKey - 1;
                }

                //var title = $(`.k-header[data-field="${fieldKey}"]`).attr('title');
                var title = $(`#${id} .k-header[data-index="${indexKey}"]`).attr('title');

                if (htmlTable) {
                    title = $(`#${id} .k-header[data-index="${indexKey}"]`).html();
                }
                var hideGridTitle = $(`#${id} .k-header[data-index="${indexKey}"]`).data("fn-hide-mobile-title");
                //if (isMobileHidden) {
                //    $(this).addClass("k-mobile-hide");
                //}

                //tr elements to add class
                var classToAdd = $(`#${id} .k-header[data-index="${indexKey}"]`).data("class");
                if (classToAdd != null) {
                    $(this).addClass(classToAdd);
                }

                //center all row content based on header
                var alignCenter = $(`#${id} .k-header[data-index="${indexKey}"]`).hasClass("text-center");
                if (alignCenter) {
                    $(this).addClass("text-center");
                }

                var hideForMobile = $(`#${id} .k-header[data-index="${indexKey}"]`).hasClass("mob-layout-none");
                if (hideForMobile) {
                    $(this).addClass("mob-layout-none");
                }

                var alignCenter = $(`#${id} .k-header[data-index="${indexKey}"]`).hasClass("k-mobile-none");
                if (alignCenter) {
                    $(this).addClass("k-mobile-none");
                }

                if ($(this).hasClass("k-row-button") && toBoolean($(`#${id}`).data("hierarchy-mobile"))) {
                    var hierarchy = $(this).parent("tr").find(".k-hierarchy-cell");
                    //todo figure why parent (master-row) not working, and replace tr

                    if (hierarchy != null) {
                        var isHiddenHierarchy = $(hierarchy).hasClass("k-no-hierarchy");
                        if (!isHiddenHierarchy) {
                            $(this).append('<button type="button" class="btn btn-secondary ml-auto k-expand-clone k-mobile-display" style="width: auto;"><span>More Dates</span></button>');
                        }
                    }
                }

                if (!isNullOrEmpty(title)) {
                    var titleHtml = `<span class='k-mobile-title'>${title}</span>`;

                    if (hideGridTitle) {
                        titleHtml = '';
                    }

                    var showButtonLastRow = $(this).find(".fn-grid-buttons-line").length > 0;
                    if (showButtonLastRow) {
                        var buttonsHtml = $(this).find(".fn-grid-buttons-line").detach();

                        $(this).find(".fn-grid-buttons-line").remove();

                        var currentHtml = $(this).html();
                        $(this).html(`<div class="w-100"><div class='d-flex'>${titleHtml}${currentHtml}</div><div class="grid-btn-sm-initial">${buttonsHtml[0].outerHTML}</div></div>`);
                    } else {
                        //FOOTER HTML TABLE
                        var htmlTableFooter = $(this).closest(".fn-table-foot");
                        var isFooterHtmlTable = htmlTableFooter.length == 1;
                        if (isFooterHtmlTable) {
                            if (!htmlTableFooter.hasClass("fn-footer-initialized")) {
                                htmlTableFooter.addClass("fn-footer-initialized");
                                $(".fn-table-foot td").addClass("k-mobile-none");

                                var footerLabel = htmlTableFooter.find(".fn-foot-mobile-title").html();
                                var footerValue = `<span style="float: right;">${htmlTableFooter.find(".fn-foot-mobile-value").html()}</span>`;
                                var html = footerLabel + footerValue;

                                //lets set all info to new td
                                $(this).parent("tr").append(`<td class='k-mobile-display'><span class=''>${html}</span></td>`);
                            }
                        }
                        //FOOTER KENDO GRID TABLE
                        else if ($(this).hasClass("k-foot")) {
                            if ($(this).hasClass("k-mobile-label")) {
                                var footerTr = $(this).parent("tr");
                                var footerLabel = footerTr.find(".k-mobile-label").html();
                                var footerValue = footerTr.find(".k-mobile-value").html();
                                $(this).append(`<span class='ml-auto k-mobile-display'>${footerValue}</span>`);
                            } else {
                                $(this).addClass("k-mobile-none");
                            }
                        } else {
                            if (isEmptyOrSpaces($(this).html())) {
                                $(this).addClass("k-mobile-hide");
                            }

                            $(this).prepend(titleHtml);
                            if (titleHtml == null) {
                                $(this).addClass("k-mobile-hide");
                            }
                        }
                    }
                }
            }
        });

        ////lets hide footer in case if only one page
        //if (kendoDataSource.total() <= kendoDataSource.pageSize()) {
        //    $(`#${id}`).data('kendoGrid').pager.element.hide();
        //} else {
        //    $(`#${id}`).data('kendoGrid').pager.element.show();
        //}

        autosizeKendoGrid(id);
        toggleFucn();
    }
}

function gridAdminMobile(id, htmlTable) {
    if (isMobileLayout) {
        autosizeKendoGrid(id, true);
    }
}

function isEmptyOrSpaces(str) {
    return str === null || str.match(/^ *$/) !== null;
}

function autosizeKendoGrid(id, adminSideCall, ignoreFooter, isVirtualGrid, addHeightToTabClass, ignoreMinHeight, addToGridContent) {
    var windowHeight = calculateDeviceHeight(/*onlyTop*/ true);
    var mobileSize = isMobileLayout ? 500 : 900; //_kendo.scss value, in case if change need to change max-width for variables
    var kendoMinHeight = toBoolean(ignoreMinHeight) ? 10 : 370;
    if (isMobileLayout) {
        kendoMinHeight = 250;
    }
    
    var $el = $(`#${id}`);
    $el.css("height", "auto");
    var fullGridHeight = $el.outerHeight();
    var mobileRowHeightClass = $el.data("mobile-row-css");
    if (mobileRowHeightClass != null) {
        if (windowHeight <= mobileSize) {
            $(`#${id} tbody td`).addClass(mobileRowHeightClass);
        } else {
            $(`#${id} tbody td`).removeClass(mobileRowHeightClass);
        }
    }
    var topPosition = $el.offset().top;
    var mobileFooterHeight = 0;
    if ($('mobilefooter')[0] && !ignoreFooter) {
        mobileFooterHeight = $('mobilefooter').outerHeight();

        if (isNullOrEmpty(mobileFooterHeight)) {
            mobileFooterHeight = 0;
        }
    }

    var searchHeight = 0;
    //if (includeTopSearch) {
    //    var searchHeight = $('.search-container').outerHeight();
    //    if (isNullOrEmpty(searchHeight)) {
    //        searchHeight = 0;
    //    }
    //}

    var heightToSet = windowHeight - topPosition - (isMobileLayout ? 0 : 10) - mobileFooterHeight - searchHeight;

    if (window.ReactNativeWebView) {
        heightToSet = heightToSet + 20;
    }

    if (heightToSet < kendoMinHeight) {
        heightToSet = kendoMinHeight;
    }

    if (toBoolean(ignoreMinHeight)) {
        if (heightToSet > fullGridHeight) {
            heightToSet = fullGridHeight - 4; //bordered line
        }
    }

    if (($(window).height() <= mobileSize || heightToSet > fullGridHeight) && !adminSideCall && !isVirtualGrid) {
        //mobile - or grid is smaller than size of screen, full height 100%
        //top, auto- do nothing
    } else {
        //set new height
        var grid = $el.data('kendoGrid');
        if (grid) {
            if (addToGridContent) {
                $(`#${id} .k-grid-content`).css('height', heightToSet - 68);
            }

            if (isNullOrEmpty(addHeightToTabClass)) {
                grid.element.height(heightToSet);
            } else {
                $(`#${id} .${addHeightToTabClass}`).css('min-height', toBoolean(ignoreMinHeight) ? 0 : 300);
                $(`#${id} .${addHeightToTabClass}`).css('height', heightToSet - 90);
            }
            
        }
    }
}

//history remove
function removeUrlParameters(stringArray) {
    var url = window.location.href.split('?')[0] + '?';
    var reloadNavigation = false;
    if (window.location.href.indexOf("&") >= 0) {
        var defTitle = document.title;
        var sPageURL = decodeURIComponent(window.location.search.substring(1)),
            sURLVariables = sPageURL.split('&'),
            sParameterName,
            i;

        for (i = 0; i < sURLVariables.length; i++) {
            sParameterName = sURLVariables[i].split('=');
            if (stringArray.indexOf(sParameterName[0]) > -1) {
                //exists remove
                reloadNavigation = true;
            } else {
                url = url + sParameterName[0] + '=' + sParameterName[1] + '&';
            }
        }

        if (reloadNavigation) {
            router.navigate(url.substring(0, url.length - 1));
            document.title = defTitle;
        }
    } else {
        if (window.location.href.indexOf("?") >= 0) {
            var defTitle = document.title;
            var sPageURL = decodeURIComponent(window.location.search.substring(1)),
                sURLVariables = sPageURL.split('?'),
                sParameterName,
                i;

            for (i = 0; i < sURLVariables.length; i++) {
                sParameterName = sURLVariables[i].split('=');
                if (stringArray.indexOf(sParameterName[0]) > -1) {
                    //exists remove
                    reloadNavigation = true;
                } else {
                    url = url + sParameterName[0] + '=' + sParameterName[1] + '&';
                }
            }

            if (reloadNavigation) {
                router.navigate(url.substring(0, url.length - 1));
                document.title = defTitle;
            }
        }
    }
}

function swalSettings(confirmButtonClass) {
    if (!isNullOrEmpty(confirmButtonClass)) {
        return Swal.mixin({
            customClass: {
                container: 'input-swal-class',
                confirmButton: confirmButtonClass,
                //cancelButton: 'btn btn-secondary ml-2'
            },
            buttonsStyling: false,
        });
    }

    return Swal.mixin({
        customClass: {
            container: 'input-swal-class',
            //confirmButton: 'btn btn-primary',
            //cancelButton: 'btn btn-secondary ml-2'
        },
        //buttonsStyling: false,
    });
}

function newSwalFire(settings, cancelButtonText) {
    var customSettings = null;
    if (!isMobileLayout) {
        const mixin = {
            customClass: {
                container: 'input-swal-class',
            }
        };

        return Swal.fire({
            ...mixin,
            ...settings
        });
    }

    const mixin = {
        customClass: {
            container: `input-swal-class-v2 ${settings.isRow ? 'row-buttons-swal-v2' : ''}`, container: `input-swal-class-v2 ${!isNullOrEmpty(customSettings) && customSettings.isRow ? 'row-buttons-swal-v2' : ''}`,            confirmButton: 'btn',
            cancelButton: 'btn btn-transparent-blue btn-shadow',
        },
        buttonsStyling: false,
        confirmButtonText: 'Confirm',
        cancelButtonText: 'Cancel',
        reverseButtons: true
    };

    settings.cancelButtonText = mixin.cancelButtonText;
    settings.confirmButtonText = mixin.confirmButtonText;

    if (!isNullOrEmpty(customSettings)) {
        if (!isNullOrEmpty(customSettings.confirmButtonText)) {
            settings.confirmButtonText = customSettings.confirmButtonText;
        }

        if (!isNullOrEmpty(customSettings.cancelButtonText)) {
            settings.cancelButtonText = customSettings.cancelButtonText;
        }
    }

    if (!isNullOrEmpty(cancelButtonText)) {
        settings.cancelButtonText = cancelButtonText;
    }

    return Swal.fire({
        ...mixin,
        ...settings
    });
}

function fixMobileSchedulerDatePicker() {
    if (isMobileLayout) {
        if ($('.k-scheduler .k-nav-current')[0]) {
            $('.k-scheduler .k-nav-current').removeClass('clone-obj');
            $('.k-scheduler .k-nav-current').removeClass('parent-obj');

            $('.k-scheduler .k-nav-current.child-clone').remove();

            if (!$('.k-scheduler .k-nav-current').hasClass('clone-obj')) {
                $('.k-scheduler .k-nav-current').addClass('clone-obj');
                $('.k-scheduler .k-nav-current').addClass('child-clone');

                var refreshHtml = $('.k-scheduler .k-nav-current').clone();

                $('.k-scheduler .k-nav-current').removeClass('child-clone');
                $('.k-scheduler .k-nav-current').addClass('parent-obj');
                $('.k-scheduler .k-nav-prev').after(refreshHtml);
            }

            var leftPadding = $('.k-scheduler .k-nav-current.child-clone').offset().left;

            $('.k-scheduler .k-nav-current.parent-obj').css('left', leftPadding);

            $('body').removeClass('fn-k-scheduler-dayview');
            $('body').removeClass('fn-k-scheduler-weekview');
            $('.k-scheduler').removeClass('fn-scheduler-weekview');
            $('body').removeClass('fn-k-scheduler-monthview');
            $('body').removeClass('fn-k-scheduler-agendaview');

            if ($('.k-scheduler-dayview')[0]) {
                $('body').addClass('fn-k-scheduler-dayview');
            }
            if ($('.k-scheduler-weekview')[0]) {
                $('body').addClass('fn-k-scheduler-weekview');
                $('.k-scheduler').addClass('fn-scheduler-weekview');
            }
            if ($('.k-scheduler-monthview')[0]) {
                $('body').addClass('fn-k-scheduler-monthview');
            }
            if ($('.k-scheduler-agendaview')[0]) {
                $('body').addClass('fn-k-scheduler-agendaview');
            }
        }

        checkSchedulerUtils(/*forceFixes*/ true);
        schedulerOverrides(/*forceFixes*/ true);
    }
}

var firstSetDatePaddingLeft = null;
function appendReloadToMobileView(appendToHeader) {
    var isMultipleSchedulers = false;

    var containerElClassAndId = '.k-scheduler';
    if ($(`#OrgReservationViewtypes-tab-1`)[0] && $(`#OrgReservationViewtypes-tab-1`).hasClass('k-state-active')) {
        containerElClassAndId = `#CourtSchedulerContainer`;
        isMultipleSchedulers = true;
        firstSetDatePaddingLeft = null;
    }

    if ($(`#OrgReservationViewtypes-tab-2`)[0] && $(`#OrgReservationViewtypes-tab-2`).hasClass('k-state-active')) {
        containerElClassAndId = `#ConsolidatedScheduler`;
        isMultipleSchedulers = true;
        firstSetDatePaddingLeft = null;
    }

    if (isMobileLayout) {
        if ($('.k-scheduler .k-nav-current')[0]) {
            if (!$(`${containerElClassAndId} .k-nav-current`).hasClass('clone-obj')) {
                $(`${containerElClassAndId} .k-nav-current`).addClass('clone-obj');
                $(`${ containerElClassAndId } .k-nav-current`).addClass('child-clone');

                let refreshHtml = $(`${containerElClassAndId} .k-nav-current`).clone();
                $(`${containerElClassAndId} .k-nav-current`).removeClass('child-clone');
                $(`${ containerElClassAndId } .k-nav-current`).addClass('parent-obj');
                refreshHtml.data('testid', 'mobile-reload')
                $(`${containerElClassAndId} .k-nav-prev`).after(refreshHtml);
            }

            if (isNullOrEmpty(firstSetDatePaddingLeft)) {
                firstSetDatePaddingLeft = $(`${containerElClassAndId} .k-nav-current.child-clone`).offset().left;
            }
       
            if (isMultipleSchedulers) {
                firstSetDatePaddingLeft = firstSetDatePaddingLeft - 20; //padding issue
            }

            $(`${containerElClassAndId} .k-nav-current.parent-obj`).css('left', firstSetDatePaddingLeft);
        }
    }

    var cellToAppend = $(`${containerElClassAndId} .k-scheduler-layout tbody tr:first-child .k-scheduler-times tbody tr:first-child`);
    let refreshHtml = $(`${containerElClassAndId} .k-scheduler-refresh`).clone();

    if ($(`${containerElClassAndId} .k-scheduler-refresh`)[0] && !$('.k-icon-button').hasClass('k-scheduler-refresh-clone')) {
        if (!cellToAppend.hasClass("refresh-icon-added")) {
            cellToAppend.addClass("refresh-icon-added");

            if (appendToHeader) {
                $('.topnav-menu-left').append(`<li class="k-sched-reload refresh-icon-added fn-header-btn-right"><span class="k-scheduler-refresh-sm button-menu-mobile">${refreshHtml[0].outerHTML}</span></li>`);
            } else {
                cellToAppend.html(`<span class="k-scheduler-refresh-sm">${refreshHtml[0].outerHTML}</span>`);
            }

            var addedButtonEl = $(`${containerElClassAndId} .refresh-icon-added .k-scheduler-refresh`);
            addedButtonEl.removeAttr("href");
            addedButtonEl.removeClass("k-scheduler-refresh");
            addedButtonEl.addClass("k-scheduler-refresh-clone");

            var headerHeight = $(`${containerElClassAndId} .k-scheduler-group-cell`).outerHeight();
            $(`${containerElClassAndId} .refresh-icon-added`).css("height", `${headerHeight}px`);
        }

        $(window).resize(function () {
            checkSchedulerUtils();
        });

        checkSchedulerUtils();
    }
}

function checkSchedulerUtils(forceFixes) {

    if (!isMobileLayout || forceFixes) {
        var schedulerWidth = $('.k-scheduler-toolbar').outerWidth(true);
        var navButtonsWidth = $('.k-scheduler-navigation').outerWidth();
        var datePickerWidth = $('.k-nav-current').outerWidth();
        var schedulerNameWidth = $('.fn-scheduler-toolbar-name .fn-inner-text').outerWidth();
        var refreshBtnWidth = $('.k-scheduler-refresh').outerWidth(true);

        if (refreshBtnWidth < 100) {
            refreshBtnWidth = 100;
        }

        if (!schedulerNameWidth) {
            schedulerNameWidth = 0;
        } else {
            schedulerNameWidth = schedulerNameWidth + 10; // add left padding
        }

        var mainWidth = parseInt(schedulerWidth) - parseInt(navButtonsWidth) - parseInt(datePickerWidth);
        var isWrapped = (mainWidth - parseInt(schedulerNameWidth) - parseInt(refreshBtnWidth)) <= 0;
        if (isWrapped) {
            if (mainWidth - schedulerNameWidth >= 10) {
                $('.k-scheduler-navigation').css('margin-right', 'initial');
                $('.k-scheduler-navigation').css('margin', 'initial');
                $('.k-nav-current').css('margin', 'initial');
                $('.fn-inner-text').css('margin', 'initial');
                $(".fn-scheduler-toolbar-name").css("margin-left", "10px");
                $(".fn-scheduler-toolbar-name").css("width", "auto");
                $(".fn-scheduler-toolbar-name").css("margin-top", "0px");
            } else {
                $('.k-scheduler-navigation').css('margin', 'auto');
                $('.fn-inner-text').css('margin', 'auto');
                $('.k-nav-current').css('margin-right', 'auto');
                $('.k-scheduler-navigation').css('margin-right', '0px');
                $(".fn-scheduler-toolbar-name").css("margin-left", "0px");
                $(".fn-scheduler-toolbar-name").css("width", "100%");
                $(".fn-scheduler-toolbar-name").css("margin-top", "10px");
            }

            //reload always is wrapped
            $(".k-scheduler-refresh").addClass("hide");
            $(".k-scheduler-refresh-clone").removeClass("hide");
        } else {
            $(".k-scheduler-refresh-clone").addClass("hide");
            $(".fn-scheduler-toolbar-name").css("margin-left", "10px");
            $(".k-scheduler-refresh").removeClass("hide");
            $(".k-scheduler-refresh").css("display", "block");
        }
    }
}

function scrollToTime(formattedTime, isCurrentDate) {
    if (formattedTime != null && isCurrentDate && firstDataBound) {
        if ($('.k-scheduler-times')[0]) {
            if ($(".fn-embed-code")[0]) {
                //wee not set height scroll html to current line
                $('html, body').animate({
                    scrollTop: $(".k-current-time").offset().top - 30
                });
            } else {
                // $('th:not(.k-slot-cell), .k-scheduler-times:eq(1)').each(function () {
                $('.k-scheduler-table tr').each(function () {
                    if ($(this).text() == formattedTime) {
                        var that = $(this);
                        $('.k-scheduler-content').animate({
                            scrollTop: that.position().top - 30
                        });

                        return false;
                    }
                });
            }
        }

        //lets set anyway false
        setTimeout(function () {
            firstDataBound = false;
        }, 1000);
    }
    appendReloadToMobileView();
}

$(document).on({
    mouseenter: function () {
        var pickedColor = $(this).data('color');
        var btnTextColor = $(this).data('text');
        $(this).css("background-color", pickedColor);
        $(this).css("color", btnTextColor);
    },
    mouseleave: function () {
        var pickedColor = $(this).data('color');
        var btnTextColor = $(this).data('text');

// ReSharper disable once InvalidValue - ivan saying is the right syntax
        $(this).css("background-color", 'rgb(1 1 1 / 1%)');
        $(this).css("color", pickedColor);
    }
}, '.fn-btn-outline');

var previousSchedulerHeight = null;
var consolidateSchedulerHeightTimer;

function resizeConsolidateScheduler(minusHeight, id, useAdditionalPadding = true, forceHeightSet = false) {
    if (minusHeight == null) {
        minusHeight = 0;
    }
    
    var schedulerId = 'ConsolidatedScheduler';
    if (id != null) {
        schedulerId = id;
    }
    window.clearTimeout(consolidateSchedulerHeightTimer);
    //var millisecBeforeRedirect = 10000; 
    consolidateSchedulerHeightTimer = window.setTimeout(function () {
        var sch = $(`#${schedulerId}`).data("kendoScheduler");

        $(`#${schedulerId}`).removeClass("fn-scheduler-weekview");

        if ($(`#${schedulerId} .k-scheduler-weekview`)[0]) {
            $(`#${schedulerId}`).addClass("fn-scheduler-weekview");
        }

        var windowHeight = $(window).height();
        var schedulerToolbarHeight = 0;
        if (schedulerToolbarHeight == null) {
            schedulerToolbarHeight = 0;
        }

        if (minusHeight == 0) {
            minusHeight = $(".header-nav").outerHeight();
            if (minusHeight == null) {
                minusHeight = 0;
            }
        }

        if (minusHeight == 0) {
            minusHeight = $("header").outerHeight();
            if (minusHeight == null) {
                minusHeight = 0;
            }
        }

        var poweredHeight = $(".powered-by-section").outerHeight();
        if (poweredHeight == null) {
            poweredHeight = 0;
        }

        var footerHeight = $('mobilefooter').outerHeight();

        //var footerHeight = 0;
        if (footerHeight == null) {
            footerHeight = 0;
        }
        var responsiveTopPadding = 0;

        if (useAdditionalPadding) {
            responsiveTopPadding = 40;
        }

        var height = $(window).height() - minusHeight - poweredHeight - footerHeight - responsiveTopPadding; //30 padding top, 5 padding bottom

        if (isMobileLayout) {
            height = height - getMobileDeviceExludeHeight(false, false);

            if ($('.k-scheduler-dayview .k-scheduler-content')[0]) {
                height = height + 24; //min height for second row, is hidden
            }

            //height = height - 20;
        }

        if (sch && (previousSchedulerHeight != height || forceHeightSet)) {
            if (previousSchedulerHeight != height) {

                previousSchedulerHeight = height;
                sch.element.height(height);
                sch.refresh();
            }

            try {
                //$(".k-scheduler-toolbar").height(schedulerToolbarHeight);
                //$(".k-scheduler-toolbar").css("min-height", `${schedulerToolbarHeight}px`);
            } catch (e){

            }

            try {
                scrollToCurrentTime();
            } catch(e) {

            }


            setModalBodyHeight();

            //if (isMobileLayout) {
            //    $('.k-scheduler-dayview .k-scheduler-content').height(height - $('.k-scheduler-toolbar').outerHeight(true) - 5);
            //    $('.k-scheduler-dayview tbody tr:nth-child(2) .k-scheduler-times').height(height - $('.k-scheduler-toolbar').outerHeight(true) - 5);
            //}
        }
    }, 100);
}

function openIframeModal(url, widthClass) {

    var id = "iframe-modal";
    var modal = $('#' + id);
    var screenHeight = $(window).outerHeight();

    if (modal.length === 0) {
        var html = [
            '<div id="' + id + '" class="modal fade" data-backdrop="true" role="dialog" aria-hidden="true" tabindex="-1" style="border-radius: 0;height:' + (screenHeight - 40) + 'px;">',
/*            '<a href="javascript:void(0)" data-dismiss="modal" title="Close" id="modal-closer">&times;</a>',*/
            '<div class="modal-dialog modal-lg modal-dialog-' + widthClass + '" role="document" style="height:' + (screenHeight - 40) + 'px;">',
            '<div class="modal-content" style="height: 89%;">',
            '<div class="modal-body" style="padding: 0px !important;height: 100%;">',
            '<iframe style="width: 100%;height: 100%;" frameborder="0" src="' + url + '" />',
            '<div class="iframe-modal-footer-container"><div class="modal-title-buttons"><button type="reset" class="btn btn-secondary" data-dismiss="modal">Close</button></div></div>' +
            '</div>',
            '</div>',
            '</div>',
            '</div>'
        ].join("");

        modal = $(html).appendTo('body').on('hidden.bs.modal', function (e) {
            // Cleanup
            $(modal.find('iframe').attr('src', 'about:blank')).remove();
            modal.remove();
        });

        // Create spinner
        createSpinner(`#${id}`, true, true, '', false, true);

        modal.find('.modal-body > iframe').on('load', function (e) {
            $(`#${id} .spinner-container`).remove();
        });
    }
    else {
        var iframe = modal.find('.modal-body > iframe');
        modal.find('.modal-body > .spinner-container').addClass('active');
        iframe.attr('src', url);
    }

    modal.modal('show');
}

function removeAnnouncementBadge(removeAnnouncementBadge) {
    if (removeAnnouncementBadge != null) {
        var hideBadge = toBoolean(removeAnnouncementBadge);
        if (hideBadge) {
            $(".fn-announcementsBadge").remove();
        }
    }

    return false;
}

//TODO change to extend browser.isFireFox, browser.isChrome
function browserIsFirefox() {
    return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
}

var classHolder = $(document.documentElement);
var fullscreenChange = "webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange";
$(document).bind(fullscreenChange, $.proxy(classHolder.toggleClass, classHolder, 'k-fullscreen'));

function toggleEditorFullScreen() {
    var docEl = document.documentElement;

    var fullscreenElement =
        document.fullscreenElement ||
        document.mozFullScreenElement ||
        document.webkitFullscreenElement ||
        document.msFullscreenElement;

    var requestFullScreen = docEl.requestFullscreen ||
        docEl.msRequestFullscreen ||
        docEl.mozRequestFullScreen ||
        docEl.webkitRequestFullscreen;

    var exitFullScreen = document.exitFullscreen ||
        document.msExitFullscreen ||
        document.mozCancelFullScreen ||
        document.webkitExitFullscreen;

    if (!requestFullScreen) {
        return;
    }

    if (!fullscreenElement) {
        requestFullScreen.call(docEl, Element.ALLOW_KEYBOARD_INPUT);
    } else {
        exitFullScreen.call(document);
    }
}

function fixCurrentTimeMarker() {
    try {
        var width = $(".k-scheduler-header .k-scheduler-table tbody tr:first-child").width();
        if (width && width > 80) {
            $(".k-scheduler-content .k-current-time").css("width", `${width}px`);
        }
    } catch (e){

    }
}

function currentTimeOverride() {
    fixCurrentTimeMarker();

    if ($(".k-scheduler-content .k-current-time")[0]) {
        var foo = document.querySelectorAll(".k-scheduler-content .k-current-time")[0];

        var observer = new MutationObserver(function (mutations) {
            fixCurrentTimeMarker();
        });

        observer.observe(foo, {
            attributes: true
        });
    }
}

function admin_copyToClipboard(text) {
    const elem = document.createElement('textarea');
    elem.value = text;
    document.body.appendChild(elem);
    elem.select();
    document.execCommand('copy');
    document.body.removeChild(elem);
    showToastrMessage('success', 'Success!', "Successfully copied to clipboard");
}


function partialActionLoad(id, url) {
    if ($(`#${id}`)[0]) {

        createSpinner(`#${id}`, true, false, '', false);

        $.ajax({
            url: url,
            dataType: "html",
            success: function (data) {
                $(`#${id}`).html(data);
            }
        });
    }
}

function resizeIframeHeight(id, height) {
    let calculatedHeight = height;
    calculatedHeight = calculatedHeight + 20;
    if ($('#news-details-page')[0]) {
        var footerHeight = $('mobilefooter').outerHeight();
        if (isNullOrEmpty(footerHeight)) {
            footerHeight = 0;
        }
        calculatedHeight = calculatedHeight + footerHeight;
    }
    $(`#${id}`).css("height", `${calculatedHeight}px`);
}

function resizeIframe(id, setHeight) {
    setTimeout(function () {
        if ($(`#${id}`)[0]) {
            var iFrameID = document.getElementById(id);

            if (Array.isArray(availableFontSelectFonts)) {
                availableFontSelectFonts.forEach(function (font) {
                    if (!equalString(font, 'Axiforma')) {
                        var link = window.document.createElement('link');
                        link.rel = 'stylesheet';
                        link.href = 'https://fonts.googleapis.com/css?family=' + font;
                        iFrameID.contentWindow.document.head.appendChild(link);
                    }
                });
            }

            var smallAdditionalPadding = $(`#${id}`).data("small-padding");
            var noAdditionalPadding = $(`#${id}`).data("no-padding");
            if ($("#member-portal-body")[0]) {
                iFrameID.contentWindow.document.body.style.margin = 0;
                iFrameID.contentWindow.document.body.style.display = "inline-block";
                iFrameID.contentWindow.document.body.style.width = "100%";

                if (setHeight) {
                    iFrameID.height = "";
                    try {
                        const doc = iFrameID.contentWindow.document;
                        const h = Math.max(
                            doc.body.scrollHeight,
                            doc.documentElement.scrollHeight,
                            doc.body.offsetHeight,
                            doc.documentElement.offsetHeight
                        );

                        iFrameID.style.height = (15 + h) + "px";
                    } catch (e) {
                        iFrameID.height = 15 + iFrameID.contentWindow.document.body.scrollHeight + "px";
                    }
                }
                if (workingFontFamily != null && !isNullOrEmpty(workingFontFamily)) {
                    iFrameID.contentWindow.document.body.style.fontFamily = workingFontFamily;
                    var link = document.createElement("link");
                    if (equalString('Inter', workingFontFamily)) {
                        link.href ='https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap'
                    }
                    else if (equalString('Axiforma', workingFontFamily)) {
                        let currentBaseUrl = 'https://app.courtreserve.com/';
                        try {
                            currentBaseUrl = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + '/';
                        } catch (e) {
                            currentBaseUrl = 'https://app.courtreserve.com/';
                        }
                        link.href = currentBaseUrl + `fonts/axiforma/stylesheet.css`;
                    } else {
                        link.href = `https://fonts.googleapis.com/css?family=${workingFontFamily}`;
                    }
                    link.rel = "stylesheet";
                    link.type = "text/css";
                    iFrameID.contentWindow.document.head.appendChild(link);
                } else {
                    iFrameID.contentWindow.document.body.style.fontFamily = "Nunito, sans-serif";
                    var link2 = document.createElement("link");
                    link2.href = "https://fonts.googleapis.com/css?family=Nunito:400,600,800&amp;subset=vietnamese";
                    link2.rel = "stylesheet";
                    link2.type = "text/css";
                    iFrameID.contentWindow.document.head.appendChild(link2);

                    var link = document.createElement("link");
                    link.href = "https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700";
                    link.rel = "stylesheet";
                    link.type = "text/css";
                    iFrameID.contentWindow.document.head.appendChild(link);
                }
            } else {
                //OBOSLETE USE TOP HEIGHT SET
                iFrameID.contentWindow.document.body.style.margin = "0px";
                iFrameID.contentWindow.document.body.style.overflow = "hidden";

                iFrameID.height = "";

                if (noAdditionalPadding) {
                    iFrameID.height = 15 + iFrameID.contentWindow.document.body.scrollHeight + "px"; //font family not loaded add 5
                }
                else if (smallAdditionalPadding) {
                    iFrameID.height =
                        25 + iFrameID.contentWindow.document.body.scrollHeight + "px"; //font family not loaded add 25px
                } else {
                    iFrameID.height = 60 + iFrameID.contentWindow.document.body.scrollHeight + "px";
                }

                try {
                    if ($("#fn-admin-area")[0]) {
                        var link = document.createElement("link");
                        if (link) {
                            link.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap'
                            iFrameID.contentWindow.document.body.style.fontFamily = 'Inter,"Axiforma", Nunito,sans-serif';
                            link.rel = "stylesheet";
                            link.type = "text/css";
                            iFrameID.contentWindow.document.head.appendChild(link);
                        }
                    }
                } catch (e) {
                }
            }

            //lets make all link blank target
            var doc = iFrameID.contentWindow.document;
            var $body = $('body', doc);
            $('a', $body).attr('target', '_blank');
        }
    }, 10);
}

function getFileInfo(e) {
    return $.map(e.files, function (file) {
        var info = file.name;

        // File size is not available in all browsers.
        if (file.size > 0) {
            info += " (" + Math.ceil(file.size / 1024) + " KB)";
        }
        return info;
    }).join(", ");
}

function closeSchedulerDatePicker() {
    try {
        $(".k-calendar-container.k-popup").data("kendoPopup").close();
        //console.log($('.k-scheduler-calendar').closest('.k-animation-container'))

        //$('.k-scheduler-calendar').closest('.k-animation-container').css('display', 'none !important');
        //$('.k-scheduler-calendar').closest('.k-animation-container').addClass('hide');
    } catch (e) {

    }
}

function createElSpinner(size, white) {
    var spinner = $('<div class="spinner white active"></div>');

    var strokeWidth = 4;

    var svg = $(`<svg style="width:${size}px; height:${size}px" viewBox="0 0 64 64"><circle class="circle" cx="32" cy="32" r="${(32 - strokeWidth)}" fill="none" stroke-width="${strokeWidth}"></circle></svg>`);

    spinner.append($(svg));
    return spinner;
}

function decodeHtml(string) {
    var decodedText = _.unescape(string);

    return decodedText.replace(/&#39;/g, "'");
}

function decodeCurrency(string) {
    if (string == '&#163;') {
        return '£';
    }
    return string;
}

function setPageTitle(textToSet) {
    try {
        if (isNullOrEmpty(textToSet)) {
            textToSet = "CourtReserve - Reserve & Play";
        } else {
            textToSet = decodeHtml(textToSet);

        }


        document.title = textToSet;
    } catch (e) {
        document.title = textToSet;
    }
}
function cc_format(id) {
    $('#' + id).on('keyup', function (e) {
        var val = $(this).val();
        var newval = '';
        val = val.replace(/\s/g, '');

        // iterate to letter-spacing after every 4 digits
        for (var i = 0; i < val.length; i++) {
            if (i % 4 == 0 && i > 0) newval = newval.concat(' ');
            newval = newval.concat(val[i]);
        }

        // format in same input field
        $(this).val(newval);
    });
}

$(document).on('click', '.dob-input', function()
{
    var datepicker = $(this).data("kendoDatePicker");

    if (datepicker) {
        datepicker.open();
    }
});

$(document).on("keydown", '.dob-input', function (e) {
    e.preventDefault();
});

function globalExportGridEvent(e) {
    var sheet = e.workbook.sheets[0];
    var gridId = e.sender.element[0].id;

    var paymentTypeIndex = null;

    for (var i = 0; i < e.sender.columns.length; i++) {
        if (e.sender.columns[i] && !isNullOrEmpty(e.sender.columns[i].attributes) && !isNullOrEmpty(e.sender.columns[i].attributes.class) && e.sender.columns[i].attributes.class.indexOf("['PaymentType']") >= 0) {
            paymentTypeIndex = i;
            break;
        }
    }

    if (paymentTypeIndex) {
        var template = kendo.template(e.sender.columns[paymentTypeIndex].template);
        var data = null;

        var dataSenderView = e.sender.dataSource.view();

        try {
            data = new kendo.data.Query(e.sender.dataSource.data()).sort(e.sender.dataSource.sort()).filter(e.sender.dataSource.filter()).data;
        } catch (e) {
            data = dataSenderView;
        }

        if ($(`${gridId} .k-hierarchy-cell`)[0]) {
            paymentTypeIndex = paymentTypeIndex - 1;
        }

        for (var i = 0; i < data.length; i++) {
            //check is is grouped
            try {
                if (sheet.rows[i + 1].cells[paymentTypeIndex].value) {
                    sheet.rows[i + 1].cells[paymentTypeIndex].value = template(data[i]);
                }
            } catch (e) {

            }
        }
    }
}

function daysInMonth(month, year) {
    return new Date(year, month, 0).getDate();
}

$(document).on("click", ".fn-global-redirect", function (e) {

    if ($($(e)[0].target).hasClass('btn') ||
        $($(e)[0].target).hasClass('fa-pencil') ||
        $($(e)[0].target).hasClass('fn-prevent-global-redirect') ||
        $($(e)[0].target).hasClass('m-web-auto') ||
        $($(e)[0].target).hasClass('fa-trash')) {
        
    } else {
        var url = $(this).data("url");
        if (url) {
            if ($(this).hasClass('add-right-arrow'))
            {
                //change to spinner
                $(this).addClass('fn-arrow-to-spinner');
            }

            window.location.href = url;
        } else {
            var modalHref = $(this).data('href');
            if (modalHref) {
                openModalDialog(modalHref);
            }
        }
    }
});

var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

$(document).on("click", ".k-scheduler-refresh-clone", function () {
    $(".k-scheduler-refresh").click();
});

function schedulerOverrides(force) {
    var addPaddingClass = false;
    if ($(".k-scheduler-header")[0]) {
        var paddingDisplay = $('.k-scheduler-header').css('padding-right') == "17px";
        if (paddingDisplay || force == true) {
            if (!$('.k-scheduler-header').hasClass("scheduler-padding")) {
                addPaddingClass = true;
            }
        }

        setTimeout(function () {
            if ($(".k-scheduler-weekview")[0]) {
                addPaddingClass = true;
            }
        }, 500);

        setTimeout(function () {
            if ($(".k-scheduler-dayview")[0]) {
                if ($(".k-scheduler-dayview").hasClass("k-scrollbar-v")) {
                    addPaddingClass = true;
                }
            }
        }, 500);

        if (force != true) {
            if (paddingDisplay) {

            } else {
                addPaddingClass = false;
            }
        }

        if ($('.k-scheduler-header').hasClass("scheduler-padding")) {
            if (force == false) {
                addPaddingClass = true;
            }
        }

        //need to set timeout, sometimes information is blocking and not fixed padding issue
        setTimeout(function () {
            var paddingDisplay = $('.k-scheduler-header').css('padding-right') == "17px";
            if (paddingDisplay) {
                addPaddingClass = true;
            }
        }, 500);

        if (addPaddingClass) {
            setTimeout(function() {
                    $('.k-scheduler-header').addClass("scheduler-padding");
                },
                3000);
        } else {
            $('.k-scheduler-header').removeClass("scheduler-padding");
        }
    }

    if ($(".k-scheduler-toolbar")[0]) {
        //if ($(".k-scheduler-toolbar").outerHeight() > 70) {
        //    $(".k-scheduler-toolbar").addClass("small-buttons");
        //}

        //if ($(".k-scheduler-toolbar").hasClass("small-buttons")) {
        //    var windowWidth = $(window).width();
        //    if (windowWidth > 624) {
        //        $(".k-scheduler-toolbar").removeClass("small-buttons");
        //    }
        //}
    }

    //add short days Monday - Mon
    if ($(".k-scheduler-monthview")[0]) {
        $(".k-scheduler-monthview .k-scheduler-header-wrap tbody tr th").each(function (index) {
            if (!$(this).hasClass("scr-initialized")) {
                $(this).addClass("scr-initialized");
                $(this).attr("data-long", $(this).text());
                $(this).attr("data-short", $(this).text().slice(0, 3));
            }
        });
    }
}
function scrollToEl($el) {
    if ($el) {
        var notValidInput = $el.offset().top - 20;
        $('html, body').animate({ scrollTop: notValidInput }, 800);
    }
}


function isNumber(val) {
    return (val >= 0 || val < 0);
}

function globalKendoDDOpen(e, title, secondLayer) {
    if (isMobileLayout/* && !activeMobileScrolling*/) {
        e.preventDefault();

        if (useDrawerForLists) {
            createAndOpenMobileDrawer(e, title);
        } else {
            createSelectListPage(e, title, secondLayer);
        }
    } else {
        try {
            var id = e.sender.element[0].id;
            var $ulContainer = $(`#${id}_listbox`);
            if ($ulContainer) {
                $ulContainer.attr('data-testid', `${id}-container`);
            }

            var $container = $(".k-animation-container");
            if ($container) {
                $container.attr('data-testid', 'options-container');
            }

            var $defaultValue = $(".k-list-optionlabel");
            if ($defaultValue) {
                $defaultValue.attr('data-testid', 'default-option');
            }
        } catch (e) {

        }
    }
}

function globalKendoMultiselectOpen(e, title) {
    if (isMobileLayout) {
        e.preventDefault();

        const $multiselect = $(e.sender.element).parent();

        // Check for the loading spinner icon inside the widget
        if ($multiselect.find(".k-i-loading:visible").length > 0) {
            e.preventDefault();
            return;
        }

        if (!activeMobileScrolling) {
            if (useDrawerForLists) {
                createAndOpenMobileDrawer(e, title, /*isMultiSelect*/ true);
            } else {
                createSelectListPage(e, title, /*secondLayer*/ false, /*isMultiSelect*/ true);
            }
        }
    } else {
        try {
            var id = e.sender.element[0].id;
            var $ulContainer = $(`#${id}_listbox`);
            if ($ulContainer) {
                $ulContainer.attr('data-testid', `${id}Container`);
            }
        } catch (e) {

        }
    }
}

function globalSelectizeOpen(e) {
   //fixes.js -> activeMobileScrolling

    if (isMobileLayout) {
        if (!activeMobileScrolling) {
            // you can add your logic here to conditionally close the drop down
            //e.close();
            // I had to set it to false because when it is true, this will run into infinite loop since while the input is in focus, it will trigger to open the drop down.
            //e.settings.openOnFocus = false;
            createSelectizeListPage(e);
        }
    }
}

function globalTimePickerOpen(e, secondLayer) {
    if (isMobileLayout && !activeMobileScrolling) {
        e.preventDefault();

        var elId = e.sender.element[0].id;

        var text = $(`label[for="${elId}"]`).text();

        if (useDrawerForLists) {
            createAndOpenMobileDrawer(e, text, null, true);
            return;
        }

        showSpinnerPage();
        var $ulContainer = $('.selectlist-ul');
        if (secondLayer) {
            $ulContainer = $('.selectlist-ul2');
        }

        //timepicker fire open two times need to check if already opened
        var currentBindId = $ulContainer.attr('data-bindid');
        if (currentBindId == elId) {
            return false;
        }

        $ulContainer.addClass('fn-time-picker-ul');

        //back not clear attribute
        //setTimeout(function() {
        //    $ulContainer.attr('data-bindid', '');
        //}, 1000);

        var isRequired = $(e.sender.element[0]).hasClass('fn-required-dd-item');
        var innerHtml = e.sender.timeView.ul[0].innerHTML;
        if (!isRequired) {
            var classToAdd = "k-item";
            var noSelectedItems = isNullOrEmpty($(`#${elId}`).val());
            if (noSelectedItems) {
                classToAdd = "k-item k-state-focused k-selected";
            }

            innerHtml = `<li tabindex="-1" class="${classToAdd}" role="option" data-offset-index="-1">${Organization.DropdownNoneItemLabel}</li>` + innerHtml;
        }

        $ulContainer.html(innerHtml);
        scrollToUlClass($ulContainer, '.k-selected');
        $ulContainer.attr('data-bindid', elId);
        $("#mobile-header").attr("data-activeid", 'selectlistpage');
        $("#mobile-header .fn-navigation-wrapper").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
        $ulContainer.addClass('show');
        //scrollToUlClass($ulContainer, '.k-selected');
        $ulContainer.attr('data-timest', new Date($.now()));
        tglMobileArray(/*addTitle*/ text, /*pageKey*/ 'selectlistpage');
    }
}

function arrayAddOrRemove(arr, id) {
    if (arr && !isNullOrEmpty(id)) {
        if ($.inArray(id, arr) != -1) {
            // found it

            arr = jQuery.grep(arr, function (value) {
                return value != id;
            });
        } else {
            arr.push(id);
        }
    }

    return arr;
}

function arrayRemove(arr, id) {
    if (arr && !isNullOrEmpty(id)) {
        arr = jQuery.grep(arr, function (value) {
            return value != id;
        });
    }

    return arr;
}

function clearInputAndTrigger(elId) {
    $(`#${elId}`).val('');
    $(`#${elId}`).trigger('input');
    $(`#${elId}`).focus();
}

var flutterStatusCalled = false;
function FlutterActivateState() {
    //method fired multiple times, add some timeout for variable setter
    if (typeof checkPushNotificationsCount == 'function' && !flutterStatusCalled) {
        flutterStatusCalled = true;
        checkPushNotificationsCount();

        setTimeout(function () { flutterStatusCalled = false; }, 1000);
    }

    try {
        window.flutter_inappwebview.callHandler("FlutterStatus", []);
    } catch (e) {

    }
    try {
        FlutterStatus.postMessage('active');
    } catch (e) { }

    return true;
}

function isHiddenElementInDOM(el) {
    return (el.offsetParent === null)
}
$(document).on('click', '.combobox-li-create-res .btn', function () {
    var elWithData = $(this).parent('li');

    selectedMembers.push({
        OrgMemberId: elWithData.attr('value'),
        FullName: elWithData.attr('text'),
        MembershipNameDisplay: elWithData.attr('membership'),
        InvalidMembership: elWithData.attr('isinvalidmembership'),
    });

    calculateReservationCost();
    rebindGuestFields(false);
    tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
});

$(document).on('click', '.combobox-li-edit-res .btn', function () {
    var elWithData = $(this).parent('li');

    selectedMembers.push({
        OrgMemberId: elWithData.attr('value'),
        FullName: elWithData.attr('text'),
        MembershipNameDisplay: elWithData.attr('membership'),
        InvalidMembership: elWithData.attr('isinvalidmembership'),
    });

    calculateReservationCost();
    rebindGuestFields(false);
    tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
});

function equalString(str1, str2) {
    if (isNullOrEmpty(str1) && isNullOrEmpty(str2)) {
        return true;
    }

    if (!isNullOrEmpty(str1) && isNullOrEmpty(str2)) {
        return false;
    }

    if (isNullOrEmpty(str1) && !isNullOrEmpty(str2)) {
        return false;
    }
    str1 = str1.toString();
    str2 = str2.toString();

    var lowerText1 = str1.toLowerCase();
    var lowerText2 = str2.toLowerCase();

    return lowerText1 === lowerText2;
}


$(function () {
    if (typeof kendo !== 'undefined') {
        kendo.ui.MultiSelect.fn.isSelected = function (key) {
            var selectedItems = this.value();
            return selectedItems.indexOf(key) > -1;
        };
    }
})

function historyBackOr(urlToNav) {
    if (document.referrer == "") {
        window.location = urlToNav;
    } else {
        history.back();
    }
}

function fixHeaderTopAligmentItems() {
    if (!isMobileLayout) {
        //without ready doc
        var topHeight = $('#header').outerHeight(true);
        $('.body-wrapper').css('top', topHeight);
        $('#trackerStatusBar').css('top', topHeight);
    }
}

function exportGridExcel(id, args, showRows) {
    var exportFlagEqCosts = false;
    var grid = $(`#${id}`).data('kendoGrid');
    if (!grid) {
        return;
    }
    $(`#${id}`).data("kendoGrid").bind("excelExport", function (e) {
        var columns = e.workbook.sheets[0].columns;
        var rows = e.workbook.sheets[0].rows;

        columns.forEach(function (column) {
            if ((isNullOrEmpty(column.width) || column.width < 150) && !column.autoWidth) {
                  column.width = 150;
                
            }
        });

        rows.forEach(function (row) {
            if (row.type === "group-footer" || row.type === "footer") {
                for (var ci = 0; ci < row.cells.length; ci++) {
                    var cell = row.cells[ci];
                    if (cell.value) {
                        try {
                            cell.value = $(cell.value).text();
                        } catch (e) {

                        }
                    }
                }
            }
        });

        if (!exportFlagEqCosts) {
            $.each(args, function (index, arg) {
                e.sender.hideColumn(arg);
            });


            if (!isNullOrEmpty(showRows)) {
                $.each(showRows, function (index, arg) {
                    e.sender.showColumn(arg);
                });
            }

            e.preventDefault();
            exportFlagEqCosts = true;
            setTimeout(function () {
                e.sender.saveAsExcel();
            });
        } else {
            $.each(args, function (index, arg) {
                e.sender.showColumn(arg);
            });

            if (!isNullOrEmpty(showRows)) {
                $.each(showRows, function (index, arg) {
                    e.sender.hideColumn(arg);
                });
            }

            exportFlagEqCosts = false;
        }
    });
}


function showEventTotalDue(orgSymbol,
    hasDifferentPrices,
    signedUpMembersCount,
    countSignedEvents,
    membersCost,
    memberCostWithoutFreeDates,
    freeReservationsCount,
    guestCost,
    memberCalculatedCost) {
    var total = 0;

    if (!isNullOrEmpty(memberCalculatedCost)) {
        total = memberCalculatedCost;
    } else {
        if (hasDifferentPrices) {
            total = countSignedEvents * membersCost;
        } else {
            total = signedUpMembersCount * countSignedEvents * membersCost;
        }
    }

    if (isNullOrEmpty(guestCost)) {
        guestCost = 0;
    }

    guestCost = guestCost * countSignedEvents;

    total += guestCost;

    if (total > 0) {
        $("#totalDueRowContainer").removeClass("hide");
    } else {
        $("#totalDueRowContainer").addClass("hide");
    }

    if (isNullOrEmpty(freeReservationsCount)) {
        freeReservationsCount = 0;
    }

    if (freeReservationsCount === 0) {
        $(".total-due-amount").html(orgSymbol + total.toFixed(2));
    } else {
        $(".total-due-amount").html(orgSymbol + memberCostWithoutFreeDates.toFixed(2));

        //var tooltipHtml = `<span>${freeReservationsCount} free date(s)</span>
        //                    </br>
        //                    <span>Initial Cost: ${orgSymbol}${total.toFixed(2)}</span>`;

        //var htmlToAdd = `<span style='position-relative'>
        //                        <span>${orgSymbol}${memberCostWithoutFreeDates.toFixed(2)}</span>
        //                        <span data-toggle="tooltip" class="fa-regular fa-circle-info" data-html="true" title="${tooltipHtml}"></span>
        //                 </span>`

        //$(".total-due-amount").html(htmlToAdd);
    }
}



function is_function(func) {
    return typeof window[func] !== 'undefined' && $.isFunction(window[func]);
}

function colorTransactionCells(row,currentRow) {
    var paidDate = row.PaidDate;
    var operationType = row.OperationType;

    if (paidDate === null && !row.IsVoided && row.Amount > 0) {
        currentRow.find('.paidDateCell').addClass("notPaidTransaction");
    }
   
    if (operationType == '1') {
        currentRow.find(".transactionTypeCell").addClass("debitTransaction");
    }
    if (operationType == '5') {
        currentRow.find(".transactionTypeCell").addClass("debitTransaction");
    }
    if (operationType == '2' && row.IsVoided!=true ||
        operationType == '8' || 
        operationType == '16'
            ) {
        currentRow.find(".transactionTypeCell").addClass("creditTransaction");
    }
    if (operationType == '10') {
        currentRow.find(".transactionTypeCell").addClass("preauthorizationTransaction");
    }
    if (operationType == '2' && row.IsVoided) {
        currentRow.find(".transactionTypeCell").addClass("creditTransaction-reverted");
    }
    if (operationType == '16' && row.IsVoided) {
        currentRow.find(".transactionTypeCell").addClass("creditTransaction-reverted");
    }
    if (operationType == '4') {
        currentRow.find(".transactionTypeCell").addClass("membershipFeeTransaction");
    }
}
function viewPackageDetailsModal(packageId,packageSaleId,includeUsage) {
    var url = '/AccountPackages/PackagePunchDetails?packageID=' + packageId + "&includeUsage=" + includeUsage + "&packageSaleId=" + packageSaleId;
    openModalDialog(url,'lg');
}
function viewPortalPackageDetailsModal(id,packageId, packageSaleId, includeUsage) {
    var url = '/Online/MyBalance/PortalPackagePunchDetails?id='+id+'&packageID=' + packageId + "&includeUsage=" + includeUsage + "&packageSaleId=" + packageSaleId;
    openModalDialog(url, 'lg');
}
function displayPackagePaymentStatus(data) {
    var feeStatus = data.FeeStatus;
    var html = "";
    var showPayBtn = false;
    if (feeStatus === 1) {
        //Waiting for payment
        html = "<span class='badge  badge-unpaid badge-payment-status-" + data.FeeStatus + "'>UNPAID</span>";
        showPayBtn = true;
    }

    if (feeStatus === 2) {
        //Paid
        html = "<div class=''><span class='badge align-center badge-unpaid badge-payment-status-" + data.FeeStatus + "'>PAID</span></div>";
        showPayBtn = false;
    }
    var isPartiallyPaid = false;
    if (feeStatus === 3) {
        //PartiallyPaid
        html = "<div class='align-center'><span class='badge badge-unpaid badge-payment-status-" + data.FeeStatus + "'>PARTIALLY PAID</span></div>";
        showPayBtn = true;
        isPartiallyPaid = true;
    }
    if (showPayBtn) {
        if (isPartiallyPaid) {
            html += "<div style='padding:2px;text-align:center'>";
        }
        html +=
            "<a style='margin-left:15px' class='btn btn-xs btn-primary btn-modal' data-width='xl' data-href='/Transactions/PayPackageTransaction?transactionId=" + data.FeeId + "&packageID=" + data.Id + "'>Pay</a>";
        if (isPartiallyPaid) {
            html += "</div>";
        }

    }
    return html;
    return "";
}

function displayPackagePaymentStatusInPortal(id,data, onlyStatus, onlyButton) {
    var feeStatus = data.FeeStatus;
    var html = "";
    var showPayBtn = false;
    if (feeStatus === 1) {
        //Waiting for payment
        html = "<span class='badge mtb-auto badge-90 badge-unpaid badge-payment-status-" + data.FeeStatus + "'>UNPAID</span>";
        showPayBtn = true;
    }

    if (feeStatus === 2) {
        //Paid
        html = "<span class='badge mtb-auto badge-90 badge-unpaid badge-payment-status-" + data.FeeStatus + "'>PAID</span>";
        showPayBtn = false;
    }

    if (feeStatus === 3) {
        //PartiallyPaid
        html = "<span class='badge mtb-auto badge-90 badge-unpaid badge-payment-status-" + data.FeeStatus + "'>PARTIALLY PAID</span>";
        showPayBtn = true;
    }

    if (onlyButton) {
        html = "";
    }

    if (onlyStatus) {
        return html;
    }

    if (showPayBtn) {
        html +=
            `<a style='width: 50px;${isMobileLayout ? "margin: 4px 0px;" : "padding: 4px 0px;"} ${onlyButton ? '' : 'margin-left:15px;'}' class='btn btn-secondary fn-disable ${isMobileLayout ? 'btn-70' : 'btn-50'}' href='/Online/MyBalance/ProcessTransactionPayments?id=${id}&payments=${data.FeeId}'>Pay</a>`;
    }
    return html;
}

function refreshActiveMemberTab()
{
    rebindActiveKendoTabStrip("MembersDetailsTab");
}

function refreshActiveFamilyTab()
{
    rebindActiveKendoTabStrip("FamilyDetailsTab");
}

function buildPackageStatus(status) {
    var row = "<span class='badge package-badge package-badge-"+status;

    row += "'>" + " "+status+"</span>";

    return row;
}
function buildPackageStatusPortal(status) {
    var row = "<span style='text-transform: uppercase;' class='badge mtb-auto badge-90 package-badge-" + status;

    row += "'>" + " " + status + "</span>";

    return row;
}

function selectedDropdownText(elId) {
    var dd = $(`#${elId}`).data("kendoDropDownList");
    if (dd) {
        return dd.text();
    }

    return "";
}

function selectedChecboxGroupLabel(elId) {
    try {
        var el = $(elId);
        if ($(el)[0]) {
            var selected = $(`${elId}:checked`);
            if (selected) {
                return $(selected[0].parentElement).find('label').html();
            }
        }
    } catch (e) {

    }

    return "";
}

function callMultipleTimeout(times, funcToExec) {
    $.each(times, function (index, time) {
        setTimeout(function () {
            eval(funcToExec);
        }, time);
    });
}

function distinctArrayIds(array) {
    return $.grep(array, function (el, index) {
        return index === $.inArray(el, array);
    });
}

function formatCurrency(total, currencyIcon, noDecimailsIfZero) {
    var neg = false;
    if (total < 0) {
        neg = true;
        total = Math.abs(total);
    }
    if (isNullOrEmpty(currencyIcon)) {
        currencyIcon = '$';
    }

    var cost = parseFloat(total, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString();
    if (!isNullOrEmpty(cost) && noDecimailsIfZero) {
        cost = cost.replace('.00', '');
    }

    if (neg) {
        return `(${currencyIcon + cost})`;
    } else {
        return currencyIcon + cost;
    }
}

function nospaces(t) {
    if (t.value.match(/\s/g)) {
        t.value = t.value.replace(/\s/g, '');
    }
}

function exportAutoWidthChange(e) {
    var columns = e.workbook.sheets[0].columns;
    columns.forEach(function (column) {
        delete column.width;
        column.autoWidth = true;
        column.autoFitColumn = true;

    });
}

function fixUrl(url) {
    // First replace encoded ampersands
    return url.replace(/&amp;/g, '&');
}

function fixLeadingSlash(url) {
    return url.replace(/^\/\//, '/');
}


function getAgeToDisplay(dob, currentDateTime) {
    var ageObj = getAgeAndMonth(dob, currentDateTime);
    var age = ageObj.age;
    var month = ageObj.month;
    if (age == 0 || isNullOrEmpty(age)) {
        return '';
    }

    if (age >= 18 || month === 0 || isNullOrEmpty(month)) {
        return `${age}-yr`;
    }
    return `${age}-yr ${month}-m`;
}

function getAge(dob, currentDateTime) {
    var today = new Date(currentDateTime);
    var birthdate = new Date(dob);
    var age = today.getFullYear() - birthdate.getFullYear();
    var m = today.getMonth() - birthdate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthdate.getDate())) {
        age--;
    }
    return age;
}

function getAgeAndMonth(dob, currentDateTime) {
    var today = new Date(currentDateTime);
    var birthdate = new Date(dob);
    var age = today.getFullYear() - birthdate.getFullYear();
    var m = today.getMonth() - birthdate.getMonth();
    if (today.getDate() < birthdate.getDate()) {
        m--;
    }
    if (m < 0 || (m === 0 && today.getDate() < birthdate.getDate())) {
        age--;
        m = 12 + m;
    }
    return { age: age, month: m };
}


function calculateConvenienceFee(amount, fixedAmount, feePercentage) {
    if (isNullOrEmpty(amount)) {
        return 0;
    }

    //prevent empty fee call
    if (isNullOrEmpty(fixedAmount)) {
        fixedAmount = 0;
    }

    amount = parseFloat(amount) + parseFloat(fixedAmount);

    if (isNullOrEmpty(feePercentage)) {
        feePercentage = 0;
    }

    if (parseFloat(feePercentage) > 0) {
        amount = (amount * parseFloat(feePercentage) / 100);
    }

    return parseFloat(amount);
}

function displayLeagueStatus(data) {
    if (isNullOrEmpty(data)) {
        return "";
    }

    return `<span class='badge cr-badge league-status-bg league-status-bg-${data.Status}'>${data.StatusDisplay}</span>`;
}

function displayOptInOutStatus(data, forceMobileLayout, authOrgMemberIds, gameDayIsCancelled) {
    if (isNullOrEmpty(data)) {
        return "";
    }
    isSessionPlayDateUnlocked = toBoolean(isSessionPlayDateUnlocked); //- isLocked -> SessionTab.cshtml

    //PlayersTab.cshtml -> changeLeagueRegistrationStatus
    var func = ` onclick='changeLeagueRegistrationStatus(${data.LeagueSessionRegistrationId},${data.OrganizationMemberId},${data.ReservationMemberId},\"${escapeHtmlReplaceWithEmpty(data.FullName)}\")'`;
    var html = '';

    if (isMobileLayout || forceMobileLayout) {
        if (!isNullOrEmpty(authOrgMemberIds)) {
            var isFamilyMember = authOrgMemberIds.find(obj => equalString(obj, data.OrganizationMemberId));

            if (isFamilyMember == null) {
                return html;
            }
        }

        let mobileInOutButtonHtml = `<button ${func} type='button' style='width: 100px; min-width: 100px;' class='btn prevent-redirect btn-xs ${!isNullOrEmpty(data.ReservationMemberId)
                                        ? 'btn-danger'
                                        : 'btn-success'}'>
                            ${!isNullOrEmpty(data.ReservationMemberId) ? 'OPT-OUT' : 'OPT-IN'}
                        </button>`
        if (toBoolean(gameDayIsCancelled)) {
            mobileInOutButtonHtml = `<span class=''></span>`
        }

        html = `<span class='opt-in-out-container_${data.ReservationId} ${(isSessionPlayDateUnlocked ? '' : 'hide')}'>
                        ${mobileInOutButtonHtml}
                </span>`;
        return html;
    } else {
        if (toBoolean(gameDayIsCancelled)) {
            if (isNullOrEmpty(data.ReservationMemberId)) {
                html = `<span class='badge cr-badge color-black league-reg-status-out'>OUT</span>`;
            } else {
                html = `<span class='badge cr-badge color-black league-reg-status-in'>IN</span>`;
            }
        } else {
            if (isNullOrEmpty(data.ReservationMemberId)) {
                html = `<span class='badge cr-badge color-black league-reg-status-out'>OUT</span> <a ${func}><i data-original-title="Opt-In" data-toggle="tooltip" data-placement="right" class='fn-opt-lock fa fa-check mb-2 ml-2 ${(isSessionPlayDateUnlocked ? '' : 'hide')}' style='font-size: 12px;margin-left: 6px;'></i></span></a>`;
                return html;
            }

            if (!isNullOrEmpty(data.ReservationMemberId)) {
                html = `<span  class='badge cr-badge color-black league-reg-status-in'>IN </span>
                <a style="vertical-align: text-top;" class='fn-opt-lock ${(isSessionPlayDateUnlocked ? '' : 'hide')}' data-original-title="Opt-Out" data-toggle="tooltip" data-placement="right"
                   ${func}> 
                   <i class="fa fa-undo icon-danger"></i></a>`;
                return html;
            }
        }
    }

    return html;
}

function testPrintHide() {
    $('.fn-print-hide').addClass('hide');
    $('.fn-print-opacity').css('opacity', 0);
    disableButtonsByClass('fn-print-button');
}

function createPDFFromIdentify(ident, name, byClassSeparator) {
    var classToSeparate = 'fn-page-break';

    $('.fn-print-hide').addClass('hide');
    $('.fn-print-opacity').css('opacity', 0);
    $('.match-item-container').addClass('fn-print');
    disableButtonsByClass('fn-print-button');
    $(".team-1-score-field").attr('placeholder', ' ');
    $(".team-2-score-field").attr('placeholder', ' ');
    window.jsPDF = window.jspdf.jsPDF;

    $("input.team-1-score-field").css('padding-top', 10);
    $("input.team-2-score-field").css('padding-top', 10);

    let elements = Array.from(document.querySelectorAll(`.${classToSeparate}`));
    let pdf = new jsPDF('p', 'pt', 'a4');
    let padding = 10; // Your padding in pt

    let elementPromises = elements.map((element, i) => {
        return html2canvas(element, { dpi: 195, letterRendering: true, logging: isDebugMode }).then(canvas => {
            let imgData = canvas.toDataURL('image/png');

            // Get pdf page dimensions
            let pdfWidth = pdf.internal.pageSize.getWidth() - 2 * padding;
            let pdfHeight = pdf.internal.pageSize.getHeight() - 2 * padding;

            // Calculate scale factors for width and height
            let scaleX = pdfWidth / canvas.width;
            let scaleY = pdfHeight / canvas.height;

            // Use the smaller scale factor to ensure the whole canvas fits on the page
            let scale = Math.min(scaleX, scaleY);

            // Calculate image width and height
            let imgWidth = canvas.width * scale;
            let imgHeight = canvas.height * scale;

            // Add image to pdf
            pdf.addImage(imgData, 'PNG', padding, padding, imgWidth, imgHeight);

            // Add new page for next element unless it's the last element
            if (i !== elements.length - 1) {
                pdf.addPage();
            }
        });
    });

    Promise.all(elementPromises).then(() => {
        pdf.save(`${name}.pdf`);

        $('.match-item-container').removeClass('fn-print');
        $('.fn-print-hide').removeClass('hide');
        $('.fn-print-opacity').css('opacity', 1);
        enableButtonsByClass('fn-print-button');

        $(".team-1-score-field").attr('placeholder', '-');
        $(".team-2-score-field").attr('placeholder', '-');

        $("input.team-1-score-field").css('padding-top', '');
        $("input.team-2-score-field").css('padding-top', '');
    });
}

$(document).on('click', '.fn-panel-item', function () {
    var pnlId = $(this).data('pnl');
    if (pnlId) {
        var container = $(`#${pnlId}`);
        if (container) {
            var isExpanded = container.attr('data-expanded');
            var icon = $(this).find('.fn-icon');
            $(this).attr('expanded', !toBoolean(isExpanded))

            if (toBoolean(isExpanded)) {
                icon.addClass('fa-plus');
                icon.removeClass('fa-minus');
                container.attr('data-expanded', false);
                container.slideUp(100);
            } else {
                icon.removeClass('fa-plus');
                icon.addClass('fa-minus');
                container.attr('data-expanded', true);
                container.slideDown(100);
            }
        }
    }
});

function isScrolledToBottom(excludeHeight) {
    const scrollHeight = document.documentElement.scrollHeight;
    const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    const clientHeight = document.documentElement.clientHeight;

    if (isNullOrEmpty(excludeHeight)) {
        excludeHeight = 0;
    }

    return scrollTop + clientHeight >= scrollHeight - excludeHeight;
}

function getRadioValue(name)
{
    var value = $('input[name=' + name + ']:checked').val();
    return value;
}

function initAdminCbToggles() {
    $.each($(".fn-checkboxes-toggle input[type=checkbox].toggler"), function (i, el) {
        var $parent = $(el).parent();

        if (!$parent.hasClass("rowSwitch")) {
            $parent.addClass("rowSwitch");
            var isDisabled = $(this).attr("disabled");

            $(el)
                .wrap('<label class="switch-tgl"></label>')
                .after(`<span class="switch-toggle ${isDisabled ? 'disabled-switch-toggle' : ''}"></span>`) //data-on="On" data-off="Off"
                .parent().on('click', function (e) { if ($(el).is('[readonly]')) { e.preventDefault(); } });
        }
    });
}
function onMailtoButtonClick(editorId) {
    Swal.fire({
        title: 'Enter Email Address',
        input: 'email',
        inputPlaceholder: 'example@example.com',
        showCancelButton: true,
        confirmButtonText: 'Insert',
        cancelButtonText: 'Cancel'
    }).then((result) => {
        if (result && result.value) {
            insertMailtoLink(editorId, result.value);
        }
    });
}
function insertMailtoLink(editorId, emailAddress) {
    var editor = $("#" + editorId).data("kendoEditor");
    if (editor) {
        editor.exec("inserthtml", { value: '<a target="_blank" href="mailto:' + emailAddress + '">' + emailAddress + '</a>' });
    } else {
        console.error("Kendo Editor instance not found with the given ID:", editorId);
    }
}

function showAjaxModelStateErrors(incErrorsArray) {
    if (incErrorsArray && incErrorsArray) {
        $.each(incErrorsArray, function (index, errorItem) {
            var errorMessages = errorItem.Errors.join(', ');
            // Select the span with data-valmsg-for attribute corresponding to the error item's key
            var spanElement = $('span[data-valmsg-for="' + errorItem.Key + '"]');

            // Check if the span has a data-role attribute set to "dropdownlist"
            if (spanElement.attr('data-role') !== 'dropdownlist') {
                spanElement.removeClass('field-validation-valid').addClass('field-validation-error').text(errorMessages);
            }

            var inputElement = $('input[name="' + errorItem.Key + '"]');
            if (inputElement.attr('data-role') !== 'dropdownlist') {
                inputElement.addClass('field-validation-error');
            }
            
        });
    }
}



function addModelStateError(item) {
    var parentDiv = $(`input[name="${item.Key}"]`).parent().parent();
    parentDiv.append(
        `<span class="field-validation-error block ajax-inv-field" data-attrname="${item.Key}" data-valmsg-for="${item.Key}" data-valmsg-replace="true"><span for="${
        item.Key}" class="">${item.ErrorMessage}</span></span>`);

    $(`input[name="${item.Key}"]`).on('input change', function () {
        $(`.field-validation-error[data-attrname="${item.Key}"]`).remove();
    });
}

function checkAndGoToNotValidAnimatedTab(tabId) {
    $.each($(`#${tabId} .field-validation-error`), function (index, item) {
        var parent = $(item).closest('.animated-tab-pane');
        if (parent) {
            var selectedPrevTab = $(`#${tabId}Items .tab-nav-item.active .tab-nav-link`).data('container');
            var newSelectedTab = parent.attr('id');
            if (selectedPrevTab != newSelectedTab) {
                $(`#${tabId}Items .tab-nav-item`).removeClass('active');
                $(`.tab-nav-item[data-container="${newSelectedTab}"]`).addClass('active');

                updateAnimatedTabsBackgroundPosition(tabId, /*prevContainerId*/ selectedPrevTab, /*speed*/ 500, /*deviceArea*/ 6);
                return false;
            }
        }

        $(`#${tabId}`).css('height', $(`#${newSelectedTab}`).outerHeight(true) + 10);
        return false;
    })
}

function calculateRemainFreeMobileSpace(isChildTab) {
    var windowHeight = $(window).height();
    var tabTopPosition = $(`.custom-animated-tabs-wrap`).position().top;
    var foterHeight = $('mobilefooter').outerHeight();
    var tabsHeight = isChildTab ? $(`.custom-animated-tabs-wrap`).outerHeight(true) : 0;
    var excludeHeight = 50;

    if (isChildTab) {
        $('.fn-mobile-autoheight-add').each(function () {
            excludeHeight += $(this).outerHeight(true);
        })
    }

    var calculatedHeight = windowHeight - tabTopPosition - foterHeight - tabsHeight - excludeHeight;
    return calculatedHeight;
}

var isHeightSetting = false;;
var isFirstTabLoad = true;
function updateAnimatedTabsBackgroundPosition(tabId, prevContainerId, speed, deviceArea) {
    var itemsTabId = `${tabId}Items`;
    var isChildTab = $(`#${itemsTabId}`).closest('.custom-animated-tabs-wrap').hasClass('fn-child-tab');

    setTimeout(function () {
        const selectedItemWidth = $(`#${itemsTabId} .tab-nav-item.active`).outerWidth(true);

        let newPosition = 0;
        if ($(`#${itemsTabId} .tab-nav-item.active`)[0]) {
            newPosition = $(`#${itemsTabId} .tab-nav-item.active`).position().left;
        }

        $(`#${itemsTabId} .tabs-bg-color`)
            .css('left', newPosition + 'px')
            .css('width', selectedItemWidth)
            .css('opacity', '1');
    }, isFirstTabLoad ? 300 : 0); //padding style loading timeout

    isFirstTabLoad = false;

    var prevItemIndex = -1;
    var selectedItemIndex = -1;

    var $old_tab = $(`#${prevContainerId}`);
    var $new_tab = $(`#${itemsTabId} .tab-nav-item.active .tab-nav-link`).data('container');

    var parent = document.getElementById(tabId);
    var selectedTabId = $new_tab;
    let calculatedRemainHeigth = null;

    if (isMobileLayout && $(`#${selectedTabId}`).hasClass('fn-remain-height')) {
        calculatedRemainHeigth = calculateRemainFreeMobileSpace(isChildTab);
    }

    for (var i = 0; i < parent.children.length; i++) {
        var child = parent.children[i];
        if (child.id === prevContainerId && prevItemIndex < 0) {
            prevItemIndex = i;
        }
        if (child.id === selectedTabId && selectedItemIndex < 0) {
            selectedItemIndex = i;
        }
        if (prevItemIndex >= 0 && selectedItemIndex >= 0) {
            break;
        }
    }

    var speedTransition = isNullOrEmpty(prevContainerId) ? 0 : isNullOrEmpty(speed) ? 5000 : speed;
    var mobileScreenHeight = 0;
    if (isMobileLayout) {

        let tabsToPossition = $(`#${tabId}Items`).position().top;
        let footerheightToSetToTransition = $('mobilefooter').outerHeight(true) + 40;

        if ($('#portal-mobile-footer')[0]) {
            footerheightToSetToTransition = $('#portal-mobile-footer').outerHeight(true) + 40;
        }

        if (footerheightToSetToTransition > 65) {
            footerheightToSetToTransition = 65;
        }

        mobileScreenHeight = calculateDeviceHeight(/*onlyTop*/ false, /*onlyBottom*/ false) - tabsToPossition - footerheightToSetToTransition;
        if (equalString('sessionDetailsTabs', tabId)) {
            mobileScreenHeight = mobileScreenHeight - 50;
        }



        $(`#${tabId}`).css('height', mobileScreenHeight);
    }

    if (selectedItemIndex < prevItemIndex) {
        $old_tab.animate(
            { "left": "100%" },
            {
                duration: speedTransition,
                specialEasing: {},
                complete: function () {
                    $old_tab.hide().css("left", 0);
                },
            }
        );

        //$old_tab.hide("slide", { direction: "right" }, speedTransition);
        $(`#${selectedTabId}`).css('left', '-100%').css('display', 'initial');

        if (isMobileLayout) {
            if (calculatedRemainHeigth) {
                $(`#${tabId}`).css('oveflow', 'initial');
            } else {
                $(`#${tabId}`).css('oveflow', 'hidden');
            }
        }

        $(`#${selectedTabId}`).animate({ "left": "0%" }, speedTransition, function () {
            $(`#${selectedTabId}`).css("left", 0).removeAttr("style");

            var newTabHeight = $(`#${selectedTabId}`).outerHeight(true);
            if (isMobileLayout) {
                if (mobileScreenHeight > newTabHeight) {
                    newTabHeight = mobileScreenHeight;
                }

                if (calculatedRemainHeigth) {
                    newTabHeight = calculatedRemainHeigth;
                }
            }
            $(`#${tabId}`).css('height', newTabHeight);  

            setTimeout(function () {
                try { setHeightWithTimeout(); } catch (e) { }
            }, 500);
        });
    }
    else {
        $old_tab.animate(
            { "left": "-100%" },
            {
                duration: speedTransition,
                specialEasing: {},
                complete: function () {
                    $old_tab.hide().css("left", 0);
                }
            }
        );

        //$old_tab.hide("slide", { direction: "left" }, speedTransition);
        $(`#${selectedTabId}`).css('left', '100%').css('display', 'initial');

        if (isMobileLayout) {
            if (calculatedRemainHeigth) {
                $(`#${tabId}`).css('oveflow', 'initial');
            } else {
                $(`#${tabId}`).css('oveflow', 'hidden');
            }
        }

        setTimeout(function () {
            $(`#${selectedTabId}`).animate({ "left": "0%" }, speedTransition, function () {
                $(`#${selectedTabId}`).css("left", 0).removeAttr("style");
                var newTabHeight = $(`#${selectedTabId}`).outerHeight(true);
                if (isMobileLayout) {
                    if (mobileScreenHeight > newTabHeight) {
                        newTabHeight = mobileScreenHeight;
                    }

                    if (calculatedRemainHeigth) {
                        newTabHeight = calculatedRemainHeigth;
                    }
                }
                $(`#${tabId}`).css('height', newTabHeight);  

                setTimeout(function () {
                    try { setHeightWithTimeout(); } catch (e) { }
                }, 500);
            });
        }, 100);
    }

    var oldTabHeight = $old_tab.outerHeight(true);
    var newTabHeight = $(`#${selectedTabId}`).outerHeight(true);

    if (newTabHeight > oldTabHeight && !isNullOrEmpty(prevContainerId)) {
        var containerHeightToSet = oldTabHeight > newTabHeight ? oldTabHeight : newTabHeight;
        if (isMobileLayout) {
            if (mobileScreenHeight > containerHeightToSet) {
                containerHeightToSet = mobileScreenHeight - 10;
            }
        }

        if (calculatedRemainHeigth) {
            containerHeightToSet = calculatedRemainHeigth;
        }
        if (isDebugMode) {
            console.log('init-height' + containerHeightToSet);
        }

        $(`#${tabId}`).css('height', containerHeightToSet + (isNullOrEmpty(prevContainerId) ? 10 : 0));

        setTimeout(function () {
            try { setHeightWithTimeout(); } catch (e) { }
        }, 500);
    }

    setTimeout(function () {
        setAbsoluteContainerHeight(tabId, $old_tab, selectedTabId, prevContainerId, mobileScreenHeight, calculatedRemainHeigth)
    }, speedTransition + 300);

    setTimeout(function () {
        setAbsoluteContainerHeight(tabId, $old_tab, selectedTabId, prevContainerId, mobileScreenHeight, calculatedRemainHeigth)
    }, speedTransition + 1000);

    if (isNullOrEmpty(prevContainerId)) {
        let preventResizeOnTabClick = false;

        $(document).on('click', `*`, function (e) {
            const isChild = isChildTab;

            if ($(this).hasClass('tab-nav-link')) {
                preventResizeOnTabClick = true;

                setTimeout(function () {
                    preventResizeOnTabClick = false;
                }, speedTransition + 100);
            }

            if (!preventResizeOnTabClick) {
                if (!isHeightSetting) {
                    isHeightSetting = true;
                    setTimeout(function () {
                        var newHeightToSet = $(`#${tabId} .fn-visible-container`).outerHeight(true);
                        if (mobileScreenHeight > newHeightToSet) {
                            newHeightToSet = mobileScreenHeight;
                        }

                        if (calculatedRemainHeigth) {
                            newHeightToSet = calculateRemainFreeMobileSpace(isChild);
                        }

                        if (isDebugMode) {
                            console.log('click-height' + newHeightToSet);
                        }

                        $(`#${tabId}`).css('height', newHeightToSet);
                    }, 300);

                    setTimeout(function () {
                        isHeightSetting = false;
                    }, 500);
                }
            }
        });
    }
}

function setAbsoluteContainerHeight(tabId, $old_tab, selectedTabId, prevContainerId, mobileScreenHeight, calculatedRemainHeigth) {
    $old_tab.removeClass('fn-visible-container');
    $(`#${selectedTabId}`).addClass('fn-visible-container');

    oldTabHeight = $old_tab.outerHeight(true);
    newTabHeight = $(`#${selectedTabId}`).outerHeight(true);

    if (isNullOrEmpty(prevContainerId) || isMobileLayout) {
        var containerHeightToSet = oldTabHeight > newTabHeight ? oldTabHeight : newTabHeight;
        containerHeightToSet = containerHeightToSet + (isNullOrEmpty(prevContainerId) ? 10 : 0);

        if (isMobileLayout) {
            if (mobileScreenHeight > containerHeightToSet) {
                containerHeightToSet = mobileScreenHeight;
            }

            if (calculatedRemainHeigth) {
                containerHeightToSet = calculatedRemainHeigth;
            }

            if (isMobileLayout) {

                if ($(`#${selectedTabId} iframe`)[0]) {
                    var iframeHeight = $(`#${selectedTabId} iframe`).outerHeight();
                    //not sure why is that
                    //for iframe set screen size
                    if (!isNullOrEmpty(iframeHeight) && iframeHeight > 0) {
                        containerHeightToSet = mobileScreenHeight;
                    }
                }
            }
        }

        if (isDebugMode) {
            console.log('timeout-height' + containerHeightToSet);
        }

        $(`#${tabId}`).css('height', containerHeightToSet);

        setTimeout(function () {
            try { setHeightWithTimeout(); } catch (e) { }
        }, 500);
    }
}

function focusLastInput(team1Field) {
    setTimeout(function () {
        $(`#${team1Field}`).siblings('input:visible').focus();
    }, 100);
}

function getFullNameInitials(firstName, lastName, fullName) {
    if (!fullName || fullName.trim() === '') {
        fullName = `${firstName} ${lastName}`;
    }

    try {
        const words = fullName.split(/\s+/);
        if (words.length === 1) {
            return words[0].charAt(0).toUpperCase(); 
        }
        return (words[0].charAt(0) + words[1].charAt(0)).toUpperCase(); 
    } catch (e) {
        console.log(e);
        return '';
    }
}

function getResponsFeeOwnerName(firstName, lastName) {
    if (isNullOrEmpty(firstName) && isNullOrEmpty(lastName)) {
        return "";
    }

    if (!isNullOrEmpty(firstName) && isNullOrEmpty(lastName)) {
        return firstName;
    }

    if (isNullOrEmpty(firstName) && !isNullOrEmpty(lastName)) {
        return lastName;
    }

    return `${firstName.charAt(0).toUpperCase()}. ${lastName}`;
}

function displayStartEndTimes(startDateString, endDateString, uiCulture) {
    var startTime = formatTime(startDateString, uiCulture);
    var endTime = formatTime(endDateString, uiCulture);

    return `${startTime} - ${endTime}`;
}

function formatTime(dateTimeString, uiCulture) {
    var date = new Date(dateTimeString);

    var hours = date.getHours();
    var minutes = date.getMinutes();
    var ampm = hours >= 12 ? ' PM' : ' AM';

    if (equalString(uiCulture, 'en-GB')) {
        ampm = '';
    }

    hours = hours % 12;
    hours = hours ? hours : 12; 
    minutes = minutes < 10 ? '0' + minutes : minutes;
    return hours + ':' + minutes + ampm;
}

$(document).on('click',
    '.fn-expander-item',
    function() {
        var containerClass = `.fn_exp_` + $(this).data('expitem');

        if (!isNullOrEmpty(containerClass)) {
            var isColapsed = $(this).hasClass('fn-colapsed');

            if (!isColapsed) {
                $(this).addClass('fn-colapsed');
                $(`${containerClass}`)
                    .animate({ 'left': '100px' }, 500)
                    .slideUp({ duration: 0, queue: false });
            } else {
                $(this).removeClass('fn-colapsed');

                $(`${containerClass}`)
                    .animate({ 'left': '100px' }, 500)
                    .slideDown({ duration: 1000, queue: false });
            }
        }
    });


function handleDynamicFunctionCall(funcString) {
    try {
        // Use Function constructor to safely execute the function call
        var dynamicFunction = new Function("return " + funcString);
        dynamicFunction(); // Call the dynamic function
        if (isDebugMode) {
            console.log('call' + funcString);
        }
    } catch (error) {
        if (isDebugMode) {
            console.error("Error executing dynamic function: " + error);
        }
    }
}

function clearTimeoutSafe(timeOutId) {
    try {
        clearTimeout(timeOutId);
    } catch (e) {

    }
}

function closeFooterModal() {
    $('.fake-modal-backdrop').addClass('hide');
    $('.fake-modal-backdrop').removeClass('drawer-backdrop')
    $('.mobile-bottom-modal').removeClass('show');
}

function removeSelectedMobileItems() {
    if (isMobileLayout) {
        if ($('#createReservation-Form-container')[0]) {
            $('.k-list-item').removeClass('k-selected');
        }
    }
}

function injectKendoEditorFonts(elId) {
    var kendoEditorEl = $(`#${elId}`).data('kendoEditor');
    if (kendoEditorEl) {
        var iframe = $('iframe.k-content');
        if (iframe.length) { // Check if the iframe is found
            var iframeHead = iframe.contents().find("head");

            //jquery.fontselect.js
            var fonts = availableFontSelectFonts;

            fonts.forEach(function (font) {
                var link = document.createElement('link');
                link.rel = 'stylesheet';
                link.href = 'https://fonts.googleapis.com/css?family=' + font;
                iframeHead.append(link); // Use jQuery's append for consistency
            });
        }
    }
}

function getPeriodBarDropdownValue(elId) {
    var selectedValue = $(`#${elId} .period-buttons-wrapper input:checked`).val();

    if (selectedValue > 0) {
        return selectedValue;
    }

    return null;
}

function formatDateByUiCulture(incDate, regionCode) {
    const date = incDate;
    const year = date.getFullYear();
    const day = date.getDate();
    const month = date.getMonth() + 1;

    if (equalString(regionCode, "en-GB") ||
        equalString(regionCode, "en-IE") ||
        equalString(regionCode, "en-AU") ||
        equalString(regionCode, "id-ID") ||
        equalString(regionCode, "es-GT") ||
        equalString(regionCode, "nl-AW") ||
        equalString(regionCode, "en-SG") ||
        equalString(regionCode, "es-MX") ||
        equalString(regionCode, "en-KY"  ||
        equalString(regionCode, "ar-AE"))) {
        return day +
            "/" +
            month +
            "/" +
            year;
    }
    else if (equalString(regionCode, "tr-TR")) {
        return day +
            "." +
            month +
            "." +
            year;
    }
    else {
        return month +
            "/" +
            day +
            "/" +
            year;
    }
}

function setFieldsReadonly(className) {   
       
    var elemsTypes = ['input', 'textarea', 'select', 'input[type="checkbox"]'];

    // Create a selector for the elements within the specified class
    var elements = document.querySelectorAll(
        elemsTypes.map(type => `.${className} ${type}`).join(', ')
    );

    // Iterate over each element and set the readonly or disabled attribute
    elements.forEach(function (input) {
        if (input.type === 'checkbox') {
            input.disabled = true; // Checkboxes don't support readonly, so use disabled
        } else {
            input.setAttribute('readonly', true);
        }
    });

    // Call the function to disable checkboxes and create hidden inputs
    disableCheckboxes(className);
}
// Function to handle disabling Kendo UI controls

function disableCheckboxes(className) {
    // Select all checkbox inputs
    var checkboxes = document.querySelectorAll('.' + className +' input[type=checkbox]');

    checkboxes.forEach(function (checkbox) {
        // Disable the checkbox
        checkbox.disabled = true;

        // If the checkbox is checked, create a corresponding hidden input
        if (checkbox.checked) {
            var hiddenInput = document.createElement('input');
            hiddenInput.type = 'hidden';
            hiddenInput.name = checkbox.name;
            hiddenInput.value = checkbox.value;

            // Append the hidden input to the form
            checkbox.closest('form').appendChild(hiddenInput);
        }
    });
}

function scrollToSchedulerCurrentTimeLine() {
    if ($('.k-scheduler .k-current-time')[0]) {
        try {
            let currentTopPossition = $('.k-scheduler .k-current-time').position().top;
            if (currentTopPossition && currentTopPossition > 100) {
                $('.k-scheduler-content').animate({
                    scrollTop: currentTopPossition - 30
                });
            }
        } catch (e) { }
    }
}

function isValidEmail(email) {
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return regex.test(email);
}


function arraysAreEqual(array1, array2) {
    // Check if the arrays are the same length
    if (array1.length !== array2.length) {
        return false;
    }

    // Check each element in the arrays
    for (let i = 0; i < array1.length; i++) {
        // Use === to check for equality of elements and their types
        if (array1[i] !== array2[i]) {
            return false;
        }
    }

    // If we've made it this far, the arrays are equal
    return true;
}

function navigateToFirstKendoGridPageById(gridId) {
    if (gridId) {
        var grid = $(`#${gridId}`).data('kendoGrid');
        if (grid) {
            if ($(`.k-link[data-page="1"]`)[0]) {
                $(`.k-link[data-page="1"]`).click();
            }
        }
    }
}

function navigateToFirstKendoGridPage() {
    if ($('.k-grid')[0]) {
        var gridLength = $('.k-grid').length;
        if (gridLength == 1) {
            var gridId = $('.k-grid').attr('id');
            if (gridId) {
                var grid = $(`#${gridId}`).data('kendoGrid');
                if (grid && !equalString(grid.dataSource.page(), 1)) {
                    if ($('.k-link[data-page="1"]')[0]) {
                        $('.k-link[data-page="1"]').click();
                    }
                }
            }
        }
    }
}
function parseAndRoundUp(value, decimals = 2) {
    if (value === null || value === undefined || value === '' || isNaN(parseFloat(value))) {
        return (0).toFixed(decimals);
    }

    const number = parseFloat(value);
    const factor = Math.pow(10, decimals);
    const rounded = Math.ceil(number * factor) / factor;

    // If the value is already at the desired precision, don't change it
    if (number.toFixed(decimals) == number) {
        return number.toFixed(decimals);
    }

    return rounded.toFixed(decimals);
}


$(document).on('click', '.fn-expand-nav-li', function () {
    var parentEl = $(this).closest('.fn-expand-nav-parent');

    $(parentEl).toggleClass('expanded-li');
    if ($(parentEl).hasClass('expanded-li')) {
        $(parentEl).find('.fn-expand-nav-block').show();
    } else {
        $(parentEl).find('.fn-expand-nav-block').hide();
    }
});

$(document).on('click', '.fn-admin-disable', function () {
    const btns = $(".fn-admin-disable");

    btns.each(function (index) {
        const btn = $(this);
        $(btn).prop('disabled', true);
        $(btn).attr("oldText", $(btn).text());
        $(btn).css("width", btn.outerWidth());
        $(btn).addClass('btn-disabled-animation');
        $(btn).html('<i class="fa-regular fa-circle-notch rotate-animation" />');
    });
});

$(document).on('click', '.fn-skeleton-card', function () {
    if (isMobileLayout) {
        $(this).addClass('animate-card-skeleton');
    }
});

function isEmptyBeeFreeHtml(content) {
    if (isNullOrEmpty(content)) {
        return true;
    }

    const firstModulesIndex = content.indexOf('"modules":');
    if (firstModulesIndex === -1) {
        // If "modules" is not found, return false
        return true;
    }
    const substringFromModules = content.substring(firstModulesIndex);

    // Check if the  starts with "modules":[] using a regular expression
    const emptyModulesRegex = /^"modules":\[\]/;
    const isEmptyModules = emptyModulesRegex.test(substringFromModules);

    return isEmptyModules;
};

$(document).on('click', '.fn-pointer', function () {
    var forEl = $(this).attr('for');
    if (forEl) {
        var switchWidget = $(`#${forEl}`).data("kendoSwitch");
        if (switchWidget) {
            switchWidget.toggle();
        }
    }
});

function roundCost(incAmt) {
    return Math.round(parseFloat(incAmt) * 100) / 100;
}


$(document).on('click', '.fa-click-spinner', function () {
    $('.no-acc-create-link-spin').removeClass('hide');
})

function inputDebounce(func, delay) {
    let timeout;
    return function (...args) {
        clearTimeout(timeout);
        timeout = setTimeout(() => func.apply(this, args), delay);
    };
}

$(document).on('input', '.form-phone-number', function (e) {
    let value = this.value.replace(/[^0-9\+\-\(\)\s]/g, '');

    let valueOrig = this.value;

    let plusCount = (value.match(/\+/g) || []).length;
    if (plusCount > 1) {
        value = value.replace(/\+/g, function (match, offset) {
            return offset === value.indexOf('+') ? match : '';
        });
    }

    let openBracketCount = (value.match(/\(/g) || []).length;
    if (openBracketCount > 1) {
        value = value.replace(/\(/g, function (match, offset) {
            return offset === value.indexOf('(') ? match : '';
        });
    }

    let closeBracketCount = (value.match(/\)/g) || []).length;
    if (closeBracketCount > 1) {
        value = value.replace(/\)/g, function (match, offset) {
            return offset === value.indexOf(')') ? match : '';
        });
    }

    if (/--+/g.test(value)) {
        value = value.replace(/-+/g, '-');
    }

    let invalidSequence = plusCount > 1 || openBracketCount > 1 || closeBracketCount > 1 || /--+/g.test(valueOrig);

    if (/[^\d\+\-\(\)\s]/.test(valueOrig) || invalidSequence) {
        let enteredInput = this;

        if (!$(enteredInput).parent().hasClass('form-icon-block')) {
            $(enteredInput).wrap('<div class="form-icon-block form-invalid-icon"></div>');
            $(enteredInput).focus();
        } else {
            $(enteredInput).parent().addClass("form-invalid-icon");
        }

        setTimeout(() => {
            $(enteredInput).parent().removeClass("form-invalid-icon");
        }, 100); 
    } else {
        $(this).parent().removeClass("form-invalid-icon");
    }

    this.value = value;
})


function getMonthIndex(monthName) {

    if (isNullOrEmpty(monthName)) {
        return -1;
    }

    switch (monthName.trim()) {
        case "January":
            return 1;
        case "February":
            return 2;
        case "March":
            return 3;
        case "April":
            return 4;
        case "May":
            return 5;
        case "June":
            return 6;
        case "July":
            return 7;
        case "August":
            return 8;
        case "September":
            return 9;
        case "October":
            return 10;
        case "November":
            return 11;
        case "December":
            return 12;
        default:
            return -1; // Return -1 for invalid month names
    }
}
function initializeStripe(connectAccountId, publicKey, publishableKey) {
    var stripe;
    try {
        if (connectAccountId && isNullOrEmpty(connectAccountId)==false) {
            stripe = Stripe(publicKey, { stripeAccount: connectAccountId });
        } else {
            stripe = Stripe(publishableKey);
        }
    } catch (e) {
        console.log(e);
    }
    return stripe;
}




$(document).on('click', '.grid-v5.grid-reload .k-pager-info', function (event) {
    const offset = $(this).offset();
    const relativeX = event.pageX - offset.left;
    const relativeY = event.pageY - offset.top;

    // Check if click is within the pseudo-element area (right -38px, 28x28 size)
    if (relativeX >= $(this).outerWidth() - 0 && relativeX <= $(this).outerWidth() + 50 &&
        relativeY >= 0 && relativeY <= 28) {

        const kGridEl = $(this).closest('.k-grid');
        if (kGridEl) {
            const kGridElId = $(kGridEl).attr('id');
            if (kGridElId) {
                rebindAjaxGrid(kGridElId);
            }
        }
    }
})

function dateRangeDates(containerId, orgUiCultureStartWithDay) {
    let dateRangePicker = $(`#${containerId}`).data('daterangepicker');
    let dateRangeStart = moment(dateRangePicker.currentStartDate()).format((toBoolean(orgUiCultureStartWithDay) ? 'D/MM/yyyy' : 'MM/D/yyyy'));
    let dateRangeEnd = moment(dateRangePicker.currentEndDate()).format((toBoolean(orgUiCultureStartWithDay) ? 'D/MM/yyyy' : 'MM/D/yyyy'));

    return {
        startDate: dateRangeStart,
        endDate: dateRangeEnd,
    }
}

function addNotificationButtonsToReports(emailPlayers, textPlayers, pushNotification) {
    let htmlToAdd = '';

    if (toBoolean(emailPlayers)) {
        htmlToAdd += `<button type="button" onclick="sendEmail();" class="k-button">
                        <i class="fa fa-envelope"></i>&nbsp;&nbsp;Email Players
                      </button>`;
    }

    if (toBoolean(textPlayers)) {
        htmlToAdd += `<button type="button" onclick="sendSms();" class="k-button">
                        <i class="fa fa-envelope"></i>&nbsp;&nbsp;Text Players
                      </button>`;
    }

    if (toBoolean(pushNotification)) {
        htmlToAdd += `<button type="button" onclick="sendBulkPush();" class="k-button">
                        <i class="fa fa-envelope"></i>&nbsp;&nbsp;Push Notification
                      </button>`;
    }

    return htmlToAdd;
}

function addSkeletonLoader(elId, text, isError) {
    $(elId).html(`<div class='skeleton-loader'><div class='center-loader-block'><div class='loader-block'><span class='fa-regular fa-circle-notch fa-spin'></span></div><div class='loader-text'>${text}</div></div></div>`);
}

function objectToQueryString(obj) {
    const params = Object.entries(obj)
        .filter(([_, value]) => value !== undefined && value !== null) // Skip null/undefined
        .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
        .join('&');
    return params ? `?${params}` : '';
}
;

//Transaction
function openTransactionFeePrinterSwal(id, organizationMemberId) {
    var url = '/Print/ReceiptByFeeId?feeId=' + id;
    jQuery.ajax({
        url: url,
        type: "GET",
        success: function (data) {
            if (data.isValid) {
                var transactionId = data.data;

                Swal.fire({
                    title: "Printer",
                    showConfirmButton: false,
                    html: '<div class="printer-popup-container">' +
                        `<button type="button" onclick="printTransactionPrinterReport('receipt', ${transactionId})" class="swal2-confirm fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94); border-left-color: rgb(52, 73, 94); border-right-color: rgb(52, 73, 94);">Receipt Printer (3 1/8")</button>` +
                        `<button type="button" onclick="printTransactionPrinterReport('standard', ${transactionId})" class="swal2-cancel fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94);">Standard Printer (8.5" x 11")</button>` +
                        `<button type="button" onclick="emailTransactionReceipt(${transactionId},${organizationMemberId})" class="swal2-cancel fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94);">Email</button>` +
                        '</div>',
                    showClass: {
                        popup: 'printer-popup'
                    },
                }).then((result) => {
                    if (result.dismiss == "backdrop") {
                        return false; // outside click
                    }
                });

            } else {
                showToastrMessage('error', 'Error!', data.message);
            }
        }
    });
}

function emailTransactionReceipt(transactionId, organizationMemberId) {
    SweetAlert.close();
    var url = '/Print/SendEmailReceipt?id=' + transactionId + '&organizationMemberId=' + organizationMemberId;

    displayActionInDialogByModalId(url, "modal4");
}

function printTransactionPrinterReport(type, transactionId) {
    var url = '/Print/Receipt?id=' + transactionId +
        '&type=' +
        type;

    window.open(url, '_blank');
}

$(document).on("change", ".event-includeTransactionRefunds", function () {
    var id = $(this).data("gridid");
    rebindAjaxGrid(id);
});

//Event
function noDropInCheckIfWaitListIsFull() {
    const eventId = getSelectedEventId();

    const url = `/EventsAjax/CheckIfEventIsFull?eventId=${eventId}`;
    $.ajax({
        url: url,
        type: "GET",
        success: function (data) {
            if (data.isValid) {
                var addMemberToWaitList =
                    `/Events/AddMemberToWaitList?eventId=${eventId}`;
                window.location.href = addMemberToWaitList;
            } else {

                Swal.fire({
                    title: "Event Is Not Full!",
                    icon: "info",
                    confirmButtonColor: "#3f5872"
                }).then((result) => {
                    if (result.value) {

                    }
                });
            }
        }
    });
}

function redirectToToNameTarget(orgMemberId, orgMemberFamilyId) {

    if (orgMemberFamilyId != null && orgMemberFamilyId != 0) {
        var orgFamilyMemberUrl = `/families/details/${orgMemberFamilyId}`;
        window.open(orgFamilyMemberUrl, '_blank');
    }

    if (orgMemberId != null && orgMemberId != 0) {
        var orgMemberUrl = `/member/detailsbyorgmemberId/${orgMemberId}`;
        window.open(orgMemberUrl, '_blank');
    }
}

//DISPLAY MEMBERS IN MEMBER
function displayReservationMembers(data, isOpenMatch) {

    var result = "";
    var j = data.Members.length;
    result += "<table class='noborder' cellspacing='0' cellpadding='0' style='height:35px'>";
    for (var i = 0; i < j; i++) {

        var member = data.Members[i];
        result += "<tr>";
        if (member.IsGuest) {
            result +=
                "<td style='min-width:110px; border:none !important'> " +
                "" +
                member.FirstName.slice(0, 1).toUpperCase() +
                ". " +
                member.LastName.substr(0, 1).toUpperCase() +
                member.LastName.substr(1) +
                " (G)" +
                "</td>";
        } else {
            result +=
                "<td style='min-width:110px; border:none !important'> <a href=/Member/Details?id=" +
                parseInt(member.MemberId) +
                " target='_blank'>" +
                member.FirstName.slice(0, 1).toUpperCase() +
                ". " +
                member.LastName.substr(0, 1).toUpperCase() +
                member.LastName.substr(1) +
                "</a>" +
                "</td>";
        }

        result += "<td style='border:none !important'>";

        if (member.IsOverriden) {
            result += "<i  data-original-title='" +
                member.OverridenAmountMessage +
                "' data-toggle='tooltip' data-placement='right' class='fa fa-exclamation-triangle' style='padding-top: 2px;float:left;font-size:13px;cursor:pointer;padding-right: 5px;'></i>";
        } else {
            if (member.IsMonthlyFree) {
                result += " " + "<span class='label label-success'><i class='fa-solid fa-tag' style='font-size: 11px;margin-right: 4px;vertical-align: text-top;'></i>Free</span>";
            }
        }

        if (member.PriceToPay != 0 && member.PriceToPay > 0) {
            result += member.PriceToPayDisplay;

            if (member.PriceToPay > 0 && member.IsPaid) {

                if (!member.IsPendingRefund && !member.IsRefunded) {
                    result += " " + "<span class='label label-success'>Paid</span>";
                }
                if (member.IsPendingRefund) {
                    result += " " + "<span class='label label-warning'>Pending Refund</span>";
                }
                if (member.IsRefunded) {
                    result += " " + "<span class='label label-primary'>Refunded</span>";
                }

                /*if (member.PaymentTypeDisplay == 1) {
                    result += " <i class='fa fa-money' title='Cash'></i>";
                } else {
                    result += " <i class='fa fa-cc-visa' title='Credit Card'></i>";
                }*/
            } else {

                result += " " +
                    "<div style='padding-left:5px; display: -webkit-inline-box;'>" +
                    "<a class='btn btn-xs btn-primary k-pdf-exp-hide btn-modal' data-width='xl' data-href='/Transactions/PayTransactionByReservation?reservationMemberId=" +
                    member.ReservationMemberId +
                    "&isGuest=" + member.IsGuest + "&preauthorize=" + member.IsEligibleForPreauthorization + " '>";
                var textButton = "Pay";
                if (member.IsEligibleForPreauthorization) {
                    textButton = "Preauthorize";
                }

                result += textButton + "</a></div>";
            }
        }
        result += "</td>";


        if (!member.IsCancelled) {
            var firstName = escapeHtmlReplaceWithEmpty(member.FirstName);
            var lastName = escapeHtmlReplaceWithEmpty(member.LastName);
            var reservationType = escapeHtmlReplaceWithEmpty(data.ReservationTypeName);
            //var displayDateTime = escapeHtml(data.ReservationStartEndTimesDisplay);
            var displayDateTime = data.ReservationDateDisplay + " " + data.ReservationTimeDisplay;
            displayDateTime = escapeHtml(displayDateTime);


            if (!isOpenMatch) {
                result +=
                    "<td style='width:100px !important; border-left: 1px solid #ccc !important; border-right:none !important; border-top:none !important;border-bottom:none !important'>";

                if (member.IsCheckedIn) {
                    var checkedInOnDisplay = escapeHtml(member.CheckedInOnDisplay);
                    var checkInByName = escapeHtml(member.CheckedinByName);
                    var checkedInToDisplay = escapeHtml(member.CheckedinStatusToDisplay);
                    var chTextColor = member.CheckedInStatusTextColor;
                    var chColor = member.CheckedInStatusColor;
                    if (isNullOrEmpty(checkedInToDisplay)) {
                        checkedInToDisplay = "Checked-in";
                    }
                    result +=
                        "<label class=\'label label-success\' style=\'margin-left:5px;background:" + chColor + ";color:" + chTextColor + "\' data-toggle=\'tooltip\' data-placement=\'left\' data-html=\'true\' title=\'Checked-in on: " +
                        checkedInOnDisplay +
                        " <br> By: " +
                        checkInByName +
                        "\'>" + checkedInToDisplay + "</label>" +
                        "" +
                        "<button style='' class=\'revert-button k-pdf-exp-hide\' title=\'Revert Check-in\' data-toggle=\'tooltip\' data-placement=\'right\' onclick=\"setCheckedInOutUserInReservation(" +
                        member.ReservationId +
                        ", " + member.OrganizationMemberId + ", '" + firstName + "',  '" + lastName + "', false, '" + reservationType +
                        "', '" + displayDateTime + "'," + member.IsGuest + "," + member.ReservationMemberId + ");\"><i class=\'fa fa-undo icon-danger\'></i></button>";
                    result += "</td>";
                } else {
                    result +=
                        "<button class=\"btn btn-primary btn-xs k-pdf-exp-hide\" style=\'margin-left:10px\' onclick=\"setCheckedInOutUserInReservation(" +
                        member.ReservationId +
                        ", " +
                        member.OrganizationMemberId +
                        ", '" +
                        firstName +
                        "',  '" +
                        lastName +
                        "', true, '" +
                        reservationType +
                        "', '" +
                        displayDateTime +
                        "'," + member.IsGuest + "," + member.ReservationMemberId + ",null," + data.IsUsingCheckInStatus + ");\">Check-in</button>";

                }
            }

        }


        if (!isOpenMatch) {

        }

        result += "</td>";
        result += "</tr>";
    }
    result += "</table>";
    return result;
}

function setCheckedInOutUserInReservation(reservationId,
    organizationMemberId,
    firstName,
    lastName,
    isCheckedIn,
    reservationType,
    date,
    isGuest,
    rmId,
    rebindGridId, usingCheckInStatus) {

    if (usingCheckInStatus && isCheckedIn === true) {
        var url = '/ReservationMemberCheckIn/ReservationMemberSetCheckInStatus?reservationId=' +
            reservationId +
            '&organizationMemberId=' +
            organizationMemberId + "&isGuest=" + isGuest + "&rmId=" + rmId;
        openModalDialog(url, 'sm');
        return;
    }
    var displayTitle = "";
    var secondText = "";
    if (isCheckedIn === true) {
        displayTitle = "Check-in " + firstName + " " + lastName + "?";
        secondText = "" + reservationType + " − " + date;
    }
    else {
        displayTitle = "Revert check-in for " + firstName + " " + lastName + "?";
        secondText = "" + reservationType + " − " + date;
    }
    Swal.fire({
        title: displayTitle,
        text: secondText,
        icon: "info",
        showCancelButton: true,
        confirmButtonColor: "#3f5872",
        confirmButtonText: "Yes"

    }).then((result) => {
        if (result.value) {
            var url = '/ReservationMemberCheckIn/ReservationMemberCheckIn?reservationId=' +
                reservationId +
                '&organizationMemberId=' +
                organizationMemberId + "&isCheckedIn=" + isCheckedIn + "&isGuest=" + isGuest + "&rmId=" + rmId;
            jQuery.ajax({
                url: url,
                type: "POST",
                success: function (data) {
                    if (data.isValid) {
                        if (rebindGridId && rebindGridId != "") {
                            rebindAjaxGrid(rebindGridId);
                        } else {
                            rebindActiveKendoTabStrip("MembersDetailsTab");
                        }

                        rebindAjaxGrid("CourtReservationGrid");
                        rebindActiveKendoTabStrip("MemberReservationsTabGrid");
                        rebindActiveKendoTabStrip("FamilyReservationsTab");
                        rebindActiveKendoTabStrip("ResourceReservationGrid");

                        rebindActiveKendoTabStrip("FamilyEventsTab");
                        const gridId = `ReservationSignUpMembersGrid_${reservationId}`;
                        rebindAjaxGrid(gridId);
                        if ($('#ReservationPlayersGrid')[0]) {
                            rebindAjaxGrid('ReservationPlayersGrid');
                        }
                        if ($('#LessonsGrid')[0]) {
                            rebindAjaxGrid('LessonsGrid');
                        }

                    }
                    else {
                        showToastrMessage('error', 'Error!', data.message);
                    }
                }
            });
        } else {
            enableButtonsByClass();
        }
    });

}

//period - past,canceled,upcoming
function reservationGridActionButtons(period, model) {
    var isPastTab = period == 'past';
    var isCanceledTab = period == 'canceled';
    var isUpcomingTab = period == 'upcoming';

    var reservationId = model.Id;
    var recurrenceDetailsId = model.ReservationRecurrenceDetailsId;
    var isCancelled = model.IsCanceled;
    if (isCanceledTab) {
        $('.tree-dots-cancel-reservation').addClass('hide');
    } else {
        $('.tree-dots-cancel-reservation').removeClass('hide');
    }
    if (isPastTab || isCanceledTab || isUpcomingTab) {
        if (isCancelled) {
            return '---';
        } else {
            return `<div class=\"pointer reservation-row-actions k-pdf-exp-hide\" data-isCanceled=\"${isCancelled}\" data-reservationid=\"${reservationId}\" data-recurrencedetailsid=\"${recurrenceDetailsId}\" title=\"Click here for row actions\"><span style=\"font-size: 20px;font-weight: bold;color:\\#23527c\" class=\"k-icon k-i-more-vertical\"></span></div>`;
        }
    }

}

$(document).on("click", ".reservation-row-actions", function () {
    var gridId = "";
    if ($("#past-member-res-tab").hasClass("k-state-active")) {
        gridId = "PastMemberReservationsGrid";
    }

    if ($("#upcoming-member-res-tab").hasClass("k-state-active")) {
        gridId = "UpcomingMemberReservationsGrid";
    }

    if ($("#canceled-member-res-tab").hasClass("k-state-active")) {
        gridId = "CanceledMemberReservationsGrid";
    }

    if ($("#canceled-family-res-tab").hasClass("k-state-active")) {
        gridId = "CanceledFamilyReservationsGrid";
    }

    if ($("#past-family-res-tab").hasClass("k-state-active")) {
        gridId = "PastFamilyReservationsGrid";
    }

    if ($("#upcoming-family-res-tab").hasClass("k-state-active")) {
        gridId = "UpcomingFamilyReservationsGrid";
    }
    if (gridId != null) {
        jQuery("#ReservationGridOptions").kendoContextMenu({
            "select": reservationContextMenu_OnSelect, "animation": { "open": { "duration": 100, "effects": "fade:in" } },
            "target": "#" + gridId, "filter": ".reservation-row-actions", "showOn": "click"
        });
    }
});

function addReservationContextMenu() {
    var html = `<ul class="k-widget k-reset k-header k-menu k-context-menu k-popup k-group k-menu-vertical" id="ReservationGridOptions" data-role="contextmenu" tabindex="0" role="menubar" style="display: none; position: absolute;" aria-hidden="true">` +
        `<li class="k-item k-state-default k-menu-item k-first" role="menuitem"><span class="k-link k-menu-link">Update</span></li>` +
        `<li class="k-item k-state-default k-menu-item" role="menuitem"><span class="k-link k-menu-link">Audit Log</span></li>` +
        `<li class="k-item k-state-default k-menu-item tree-dots-cancel-reservation" role="menuitem"><span class="k-link k-menu-link">Cancel</span></li>` +
        `</ul>`;

    $("body").append(html);

    jQuery("#ReservationGridOptions").kendoContextMenu({
        "select": reservationContextMenu_OnSelect,
        "animation": {
            "open": {
                "duration": 100,
                "effects": "fade:in"
            }
        },
        //"target": "#" + gridId,
        "filter": ".reservation-row-actions",
        "showOn": "click"
    });
}

function reservationContextMenu_OnSelect(e) {
    var reservationId = $(e.target).context.getAttribute("data-reservationid");
    var recurrenceDetailsId = $(e.target).context.getAttribute("data-recurrencedetailsid");

    var editType = null;
    if (recurrenceDetailsId != null && recurrenceDetailsId > 0) {
        editType = 1;
    }

    if (e.item.innerText == "Update") {
        var url = `/Reservation/UpdateReservation?reservationId=${reservationId}`;
        openModalDialog(url, 'xl');
    }

    if (e.item.innerText == "Audit Log") {
        var url = `/Audit/ModalEntityReport?customReservationId=${reservationId}&recurrenceDetailsId=${recurrenceDetailsId}&editType=${editType}`;
        openModalDialog(url, 'xl');
    }
    if (e.item.innerText == "Cancel") {
        var url = `/Reservation/CancelReservation?reservationId=${reservationId}&editOption=${editType}`;
        openModalDialog(url, 'xl');
    }
    return false;
}

function editRegistrantAmount(reservationMemberId, reservationId = null, isGuest = false, isFree = false) {
    var url = `/Transactions/EditTransactionAmountByReservationMemberId?reservationMemberId=${reservationMemberId}&reservationId=${reservationId}&isGuest=${isGuest}`;
    if (isFree) {
        url = `/Transactions/EditFreeRegistration?reservationMemberId=${reservationMemberId}&reservationId=${reservationId}&isGuest=${isGuest}`
    }
    openModalDialog(url, 'sm');
}

//CHECK IN/OUT MEMBER
function setCheckedInOutUserInAllReservation(reservationId,
    organizationMemberId,
    firstName,
    lastName,
    isCheckedIn,
    reservationType,
    date,
    isGuest,
    rmId,
    isEventScheduler = false,
    displayHiddenButtons = false,
    usingCheckInStatus = false,
    disableCheckInConfirmationStatus = false) {

    if (usingCheckInStatus && isCheckedIn === true) {
        var url = '/ReservationMemberCheckIn/ReservationMemberSetCheckInStatus?reservationId=' +
            reservationId +
            '&organizationMemberId=' +
            organizationMemberId + "&isGuest=" + isGuest + "&rmId=" + rmId;
        openModalDialog(url, 'sm');
        return;
    }

    var displayTitle = "";
    var secondText = "";
    if (isCheckedIn === true) {
        displayTitle = `Check-in ${firstName} ${lastName}?`;
        secondText = "" + reservationType + " − " + date;
    } else {
        displayTitle = `Are you sure you want to revert check-in for ${firstName} ${lastName}?`;
        secondText = "" + reservationType + " − " + date;
    }

    // inner function
    function confirmAndSubmitCheckIn() {

        const url = `/ReservationMemberCheckIn/ReservationMemberCheckIn?reservationId=${reservationId}
                        &organizationMemberId=${organizationMemberId}
                        &isCheckedIn=${isCheckedIn}
                        &isGuest=${isGuest}
                        &rmId=${rmId}`;
        jQuery.ajax({
            url: url,
            type: "POST",
            success: function (data) {
                if (data.isValid) {
                    if ($('#ReservationPlayersGrid')[0]) {
                        if (isMobileLayout) {
                            rebindAjaxGrid('ReservationPlayersGrid');
                        }
                    }

                    else if (isMobileLayout) {
                        /*Navigation.RemoveCurrentUrl();*/
                        window.location.href = '/Reservation/GetReservationMembers?reservationId=' + reservationId;

                        return false;
                    }
                    rebindAjaxGrid(`EventSignUpMembersGrid_${reservationId}`);

                    if (isGuest && $(`#GuestsEventCheckinMembersGrid_${reservationId}`)[0]) {
                        rebindAjaxGrid(`GuestsEventCheckinMembersGrid_${reservationId}`);
                    } else {
                        rebindAjaxGrid(`EventCheckinMembersGrid_${reservationId}`);
                    }

                    rebindAjaxGrid(`LeagueDayPlayerGrid`);

                    //try to rebind kiosk check-in success grid
                    if (typeof rebindKioskGrid == 'function') {
                        rebindKioskGrid('success');
                    }

                    if (isEventScheduler) {
                        rebindScheduler("OrganizationEventsScheduler");
                    }

                    if (typeof displayHiddenButtons == 'function') {
                        displayHiddenButtons();
                    }
                    if ($('#ReservationPlayersGrid')[0]) {

                        //rebindAjaxGrid('ReservationPlayersGrid');
                    }
                } else {
                    showToastrMessage('error', 'Error!', data.message);
                }
            }
        });
    }

    if (disableCheckInConfirmationStatus == true) {
        confirmAndSubmitCheckIn();
    } else {
        Swal.fire({
            title: displayTitle,
            text: secondText,
            icon: "info",
            showCancelButton: true,
            confirmButtonColor: "#3f5872",
            confirmButtonText: "Yes"

        }).then((result) => {
            if (result.value) {
                confirmAndSubmitCheckIn();
            } else {
                enableButtonsByClass();
            }
        });
    }

}



function openPay(reservationMemberId, isEligibleForPreauthorization, isGuest, page) {
    const url = `/Transactions/PayTransactionByReservation?reservationMemberId=${reservationMemberId}&modalId=modal2&preauthorize=${isEligibleForPreauthorization}&isGuest=${isGuest}&page=${page}`;

    openModalDialog(url, 'xl');
}

function openPrinterSwal(id, organizationMemberId,isGuest=false) {
    var isGuest = organizationMemberId == null || organizationMemberId == 0 || isGuest==true;

    var url = `/Print/ReceiptByRmId?reservationMemberId=${id}&isGuest=${isGuest}`;

    jQuery.ajax({
        url: url,
        type: "GET",
        success: function (data) {
            if (data.isValid) {
                var transactionId = data.data;

                Swal.fire({
                    title: "Printer",
                    showCancelButton: false,
                    showConfirmButton: false,
                    html: '<div class="printer-popup-container">' +
                        `<button type="button" onclick="printTransactionPrinterReport('receipt', ${transactionId})" class="swal2-confirm fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94); border-left-color: rgb(52, 73, 94); border-right-color: rgb(52, 73, 94);">Receipt Printer (3 1/8")</button>` +
                        `<button type="button" onclick="printTransactionPrinterReport('standard', ${transactionId})" class="swal2-cancel fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94);">Standard Printer (8.5" x 11")</button>` +
                        `<button type="button" onclick="emailTransactionReceipt(${transactionId},${organizationMemberId})" class="swal2-cancel fs-12 swal2-styled" aria-label="" style="display: inline-block; background-color: rgb(52, 73, 94);">Email</button>` +
                        '</div>',
                    showClass: {
                        popup: 'printer-popup'
                    },
                }).then((result) => {
                    if (result.dismiss == "backdrop") {
                        return false; // outside click
                    }
                });

            } else {
                showToastrMessage('error', 'Error!', data.message);
            }
        }
    });
}

$(document).on("click", ".btn-release-index", function () {
    window.location = '/Kiosk/Home/Index';
});

function generateMemberFamilyInvoice(isFamilyTab) {
    var orgMemberId = null;
    var memberFamilyId = null;

    if (isFamilyTab) {
        var data = getFamilySelectRowData();
        memberFamilyId = data.memberFamilyId;
        orgMemberId = data.OrgMemberId;
    }

    if (!isFamilyTab) {
        var data = getSelectedMemberRowData();
        orgMemberId = data.OrgMemberId;
    }

    var url = `/BatchBilling/GenerateMemberFamilyInvoice?orgMemberId=${orgMemberId}&memberFamilyId=${memberFamilyId}`;

    openModalDialog(url, 'lg');
}

function onInvoiceDueDaysChanges(e) {
    var days = $('#InvoiceDueDays').val();
    var organizationId = getWorkingOrganizationId();
    var url = `/Utils/GetNextDays?id=${organizationId}&days=${days}`;
    if (days) {
        $.ajax({
            url:url ,
            type: "GET",
            async: true,
            success: function (data) {
                $('#pre-view-data').removeClass('hide');
                $('#pre-view-data-label').text(data.data);
            },
            error: function (error) {
                console.error('Server error', error);
            }
        });


    } else {
        $('#pre-view-data').addClass('hide');
    }
}

function rebindPortalEventUdfs(organizationId, showUdfContent, eventId, allowGuests, isDropDownChange) {

    var showUdfs = toBoolean(showUdfContent);

    if (showUdfs) {
        var memberList = [];
        var selectedMembers = [];
        var guests = [];
        var memberUdfTable = $("#member-udf-table-container");

        $(memberUdfTable).find(".member-udf-item").each((index, element) => {
            var memberUdf = {
                OrganizationMemberId: $(element).find($("input[name$='OrganizationMemberId'")).val(),
                UdfId: $(element).find($("input[name$='.Id'")).val(),
                UdfValue: $(element).find($("[name$='Value'")).val(),
                GuestId: $(element).find($("[name$='.GuestId'")).val(),
                GuestGuid: $(element).find($("[name$='.GuestGuid'")).val(),
            }
            memberList.push(memberUdf);
        });

        $('.sign-up-member').each(function () {
            if ($(this).is(":checked")) {
                var memberObj = {
                    OrganizationMemberId: $(this).data("organizationmemberid"),
                    FirstName: $(this).data("firstname"),
                    LastName: $(this).data("lastname")
                }
                selectedMembers.push(memberObj);
            }
        });

        if (allowGuests == true) {
            guests = getGuestsArray(`guestsTable`);
        }
        var postData = {
            /*            Udfs: udfList,*/
            MemberListWithValues: memberList,
            SelectedMembers: selectedMembers,
            EventId: eventId,
            guests: guests
        };
        var url = `/Online/Events/GetUdfList/${organizationId}`;
        jQuery.ajax({
            url: url,
            type: "POST",
            data: postData,
            success: function (data) {
                $("#event-udfs-container").html(data.data);

                if (isDropDownChange) {
                    var selectedNumberOfGuests = $('#SelectedNumberOfGuests').val();
                    if (isMobileLayout && !isNullOrEmpty(selectedNumberOfGuests) && selectedNumberOfGuests > 0) {
                        setTimeout(function () {
                            try {
                                refreshGuestGrid();

                                setTimeout(function () {
                                    removeAppendSpinner(`#guestsListDiv`);
                                }, 500)
                            } catch (ee) {
                                removeAppendSpinner(`#guestsListDiv`);
                            }
                        }, 500);
                    } else {
                        removeAppendSpinner(`#guestsListDiv`);
                    }
                }
            }
        });
    }
}
function getGuestsArray(tableId) {
    var guests = [];
    var guestsTable = $(`#${tableId}`);
    $(guestsTable).find('tbody > tr').each((index, element) => {
        const obj = {
            FirstName: $(element).find($(`#ReservationGuests_${index}__FirstName`)).val(),
            LastName: $(element).find($(`#ReservationGuests_${index}__LastName`)).val(),
            PhoneNumber: $(element).find($(`#ReservationGuests_${index}__PhoneNumber`)).val(),
            GuestOwnerId: $(element).find($(`#ReservationGuests_${index}__GuestOwnerId`)).val(),
            Id: $(element).find($(`#ReservationGuests_${index}__Id`)).val(),
            Guid: $(element).find($(`#ReservationGuests_${index}__Guid`)).val(),
            OwnerCostTypeId: $(element).find($(`#ReservationGuests_${index}__OwnerCostTypeId`)).val(),
            OverriddenPrice: $(`.guest_override-input_${index}`).val(),
            IsOverriden: $(element).find($(`#ReservationGuests_${index}__IsOverriden`)).is(':checked'),
        }
        guests.push(obj);
    });
    return guests;
}
function succesEventSignUpChange(result, ref, reservationNumber) {
    if (result.isValid) {
        Navigation.RemoveCurrentUrl();
        var organizationId = getWorkingOrganizationId();

        var actionType = 2; //2 change signup
        if (result.anyItemsToPay) {
            actionType = 3; //3 change required payment
        }
        var url = `/Online/Events/Details/${organizationId}?number=${reservationNumber}&evAction=${actionType}`;
        if (isMobileLayout) {
            url = `/Online/Events/RedirectAfterRegistration/${organizationId}?evAction=${actionType}`;
        }

        window.location = url;
    } else {
        enableButtonsByClass('btn-submit');
        if (result.isMessage) {
            pNotify('Error', result.message);
        } else {
            if ($('#event-changesignup-wrapper')) {
                jQuery("#event-changesignup-wrapper").replaceHtml(result.data);
            } else {
                jQuery("#form-container-update-target").replaceHtml(result.data);
            }
        }
    }
}



function succesEventSignUp(result, ref, reservationNumber) {
    Navigation.RemoveCurrentUrl();
    if (result.isValid) {
        var organizationId = getWorkingOrganizationId();
        //debugger;
        var actionType = 1; //1 signup
        if (result.data.RequireOnlinePayment) {
            actionType = 4;

            //redirect to payment page
            var url = `/Online/Payments/ProcessPayment/${organizationId}?evAction=${actionType}`;
            window.location = url;

        } else {
            if (result.data.RequiresApproval) {
                actionType = 5;
            }
        }

        if (!result.data.RequireOnlinePayment) {

            //USTA ONLY
            if (typeof logUstaSatelliteDataAndRedirect === 'function' && !result.data.IsOrganizedPlayEvent) {
                logUstaSatelliteDataAndRedirect(result.data, actionType, reservationNumber)
            } else {
                if (result.data.IsOrganizedPlayEvent) {
                    url = `/Online/Events/Details/${organizationId}?number=${reservationNumber}&evAction=${actionType}`;
                } else {
                    url = `/Online/Events/RedirectAfterRegistration/${organizationId}?evAction=${actionType}`;
                }

                window.location = url;
            }


        }

    } else {
        enableButtonsByClass('btn-submit');
        if (result.isMessage) {
            displayAjaxSwalMessage(result);
        } else {
            jQuery("#form-container-update-target").replaceHtml(result.data);

            try {
                reloadDisclosures();
            } catch (e) {

            }
        }
    }
}

function successPullOutFromEvent(result, ref, evId, notificationMessage) {
    if (result.isValid) {

        if (isMobileLayout) {
            if (!isNullOrEmpty(result.toastrEncoded)) {
                Cookie.CreateToastr(result.toastrEncoded);
            }
            Navigation.GoToDashboard(true);
        } else {
            pNotify('Success', `Successfully ${notificationMessage}.`);

            enableButtonsByClass('btn-submit');
            closeLastModalDialog();
            //jQuery("#main-eventSignup-container").html(result.data);
            reloadEventReservation(evId);
        }
    } else {
        enableButtonsByClass('btn-submit');

        if (result.isMessage) {
            pNotifyError(result.message);
        } else {
            jQuery("#form-container-update-target").replaceHtml(result.data);
        }
    }
}

function succesSignUpToWaitingList(result, ref, evId) {
    enableButtonsByClass('btn-submit');
    if (result.isValid) {
        if (isMobileLayout) {
            Navigation.GoToDashboard(true);
            return false;
        }
        pNotify('Success', 'Waitlist status successfully updated');
        closeLastModalDialog();
        //jQuery("#main-eventWaitingListSignUp-container").html(result.data);
        if (evId != null) {
            try {
                reloadEventReservation(evId);
            } catch (e) {

            }
        }

        if ($("#OrganizationEventsScheduler")[0]) {
            rebindScheduler("OrganizationEventsScheduler");
        }

        if ($("#CourtsScheduler")[0]) {
            rebindScheduler("CourtsScheduler");
        }

    } else {
        if (result.isMessage) {
            displayAjaxSwalMessage(result);
        } else {
            jQuery("#form-container-update-target").replaceHtml(result.data);
        }

    }
}

function successPullOutFromWaitingList(result, ref, evId) {
    enableButtonsByClass('btn-submit');
    if (result.isValid) {
        pNotify('Success', 'Successfully withdrawn from waitlist.');
        closeLastModalDialog();
        reloadEventReservation(evId);
    } else {
        jQuery("#form-container-update-target").replaceHtml(result.data);
    }
}

//Disclosure
function openSignatureModal(index, disclosureId, currentEl) {
    if ($("#fn-admin-area")[0]) {
        var url = `/PublicWaiver/SignatureModal?index=${index}&disclosureId=${disclosureId}`;
        openModalDialog(/*url*/ url, /*widthClass*/ "sm", /*jsonData*/ null, /*clickedElement*/ currentEl);
    } else {
        var organizationId = Organization.Id;
        var url = `/Online/Disclosures/SignatureModal?id=${organizationId}&index=${index}&disclosureId=${disclosureId}`;
        openModalDialog(/*url*/ url, /*widthClass*/ "sm", /*jsonData*/ null, /*clickedElement*/ currentEl);
    }
}

function displayDisclosureDetails(disclosureId, currentEl) {
    if ($("#fn-admin-area")[0]) {
        var url = `/PublicWaiver/GetDisclosureDetailsById?disclosureId=${disclosureId}`;
        openModalDialog(/*url*/ url, /*widthClass*/ "sm", /*jsonData*/ null, /*clickedElement*/ currentEl);
    } else {
        var organizationId = Organization.Id;
        var url = `/Online/Disclosures/GetDisclosureDetailsById?id=${organizationId}&disclosureId=${disclosureId}`;
        openModalDialog(/*url*/ url, /*widthClass*/ "md", /*jsonData*/ null, /*clickedElement*/ currentEl);
    }
}

function setSignatureValue(index, value, isNullValue) {
    var currentDateTime = $("#Org_CurrentDateTime").val();
    var signingMemberFullName = $("#SigningMemberFullName").val();

    var $signupLabel = $(`#click-to-signup-container_${index}`);
    var $signatureCanvasContainer = $(`#signature-canvas_${index}_container`);
    var $imageSignature = $(`#imported_signup_${index}_image`);
    var $timeStamp = $(`#signature_${index}_stamp .signature-stamp-time`);
    var $timeHiddenInput = $(`#Disclosures_${index}__SignedOn`);

    var dataJoined = null;
    var imageSrc = null;
    if (value != null) {
        dataJoined = value;
        imageSrc = $(`#signature-modal-body`).jSignature("getData");
    }
    if (isNullValue || dataJoined == null) {
        $(`#signature_data_url_${index}`).val('');
        $(`#signature_${index}_container`).addClass('signature-not-valid-container');
        $(`#signature_${index}_container`).removeClass('signature-valid-container');
        $signupLabel.removeClass('hide');
        $signatureCanvasContainer.addClass('hide');
        $imageSignature.attr("src", "");
        $timeHiddenInput.val("");
        $timeStamp.html("");
    } else {
        if (dataJoined) {
            $(`#signature_data_url_${index}`).val(value);
            $imageSignature.attr("src", imageSrc);
            $(`#signature_${index}_container`).removeClass('signature-not-valid-container');
            $(`#signature_${index}_container`).addClass('signature-valid-container');
            $signupLabel.addClass('hide');
            $signatureCanvasContainer.removeClass('hide');

            $timeHiddenInput.val(currentDateTime);
            $timeStamp.html(currentDateTime);
        } else {
            $signupLabel.removeClass('hide');
            $signatureCanvasContainer.addClass('hide');
            $imageSignature.attr("src", "");
            $timeHiddenInput.val("");
            $timeStamp.html("");
        }
    }
    if (signingMemberFullName != null) {
        $(".sign-member-details").removeClass("hide");
        $(".sign-member-details-value").html(signingMemberFullName);
    }
}

function openWaiverModal(memberId, reservationMemberId, reservationId, disclosureQueueId, status, eventId, selectedDates) {
    //  NoWaiverToSign = 1
    //  RequireWaiverToSign = 2
    //  HasAdditionalWaiversToSign = 3

    if (status == null || status == 1 || memberId == null || memberId <= 0) {
        return;
    } else {
        openModalDialog(`/RegistrationHelper/PendingWaivers?memberId=${memberId}
                        &disclosureQueueId=${disclosureQueueId}
                        &reservationId=${reservationId}
                        &reservationMemberId=${reservationMemberId}
                        &eventId=${eventId}
                        &selectedDatesString=${selectedDates}`,
            'md');
    }
}

function registrantWaiverTooltipTitle(status) {
    //  NoWaiverToSign = 1
    //  RequireWaiverToSign = 2
    //  HasAdditionalWaiversToSign = 3

    if (status == 1) {
        return "No Signature Needed";
    }
    if (status == 2) {
        return "Pending Signature";
    }

    if (status == 3) {
        return "﻿Currently in the Signing Queue";
    }
}

function successEditMemberVaccination() {

}


function updateCovidStatus(organizationMemberId) {
    var orgId = getWorkingOrganizationId();

    var url = `/Online/MyProfile/UpdateCovidStatus?id=${orgId}&organizationMemberId=${organizationMemberId}`;
    openUrlModalMemberPortal(url);
}

function checkToAllocateCourtsAndPlayers(e) {
    var url = $(e).data('url');
    jQuery.ajax({
        url: url,
        type: "POST",
        success: function (data) {
            if (data.isValid) {
                Swal.fire({
                    title: "",
                    text: `Are you sure you wish to allocate courts and view court assignments?`,
                    icon: "info",
                    showCancelButton: true,
                    cancelButtonColor: "#6c6c6f",
                    confirmButtonColor: "#3f5872",
                    confirmButtonText: "Yes"
                }).then((result) => {
                    if (result.value) {
                        window.location = data.data;
                    }
                });

            } else {
                if (data.isMessage) {
                    showToastrMessage('error', 'Error!', data.message);
                } else {

                }
            }
        }
    });
}

function deleteAttendance(thisBtn, fullName) {
    var url = $(thisBtn).data('url');
    Swal.fire({
        title: 'Are you sure you want to delete attendance for ' + fullName,
        //text: secondText,
        icon: "info",
        showCancelButton: true,
        confirmButtonColor: "#3f5872",
        confirmButtonText: "Yes"

    }).then((result) => {
        if (result.value) {
            jQuery.ajax({
                url: url,
                type: "POST",
                success: function (data) {
                    if (data.isValid) {
                        rebindAjaxGrid("AttendanceGrid");
                        showSuccessToastrMsg('Successfully delete attendance.');
                    }
                    else {
                        showToastrMessage('error', 'Error!', data.message);
                    }
                }
            });
        } else {
            enableButtonsByClass();
        }
    });
}
function displayWaitListFromScheduler(reservationId) {
    var url = `/Reservation/GetReservationMembers?reservationId=${reservationId}&tab=waitlist`;
    openModalDialog(url, 'xl');
}

function displayInstructors(instructors) {
    try {
        var result = [];
        if (isNullOrEmpty(instructors) == false) {
            $.each(instructors,
                function (index, item) {
                    if (isNullOrEmpty(item) == false) {
                        var instructorName = item.LastName;
                        var instructorFullName = item.FullName;
                        var instructorTime = item.InstructorTimeToDisplay;
                        if (isNullOrEmpty(instructorTime) == false) {
                            instructorFullName = `${instructorFullName} </br> (${instructorTime})`;
                        }
                        if (toBoolean(item.IsTimeOverride)) {
                            var toggle =
                                `<span data-toggle="tooltip" data-html="true" data-placement="top" data-original-title="${instructorFullName}">${item.LastName} <i class="fa fa-exclamation-triangle"></i></span>`;
                            instructorName = toggle;
                        }
                        result.push(instructorName);
                    }
                });
        }
        if (result.length > 0) {
            return result.join(', ');
        }
    } catch (e) {

    }

    return '';
}
// send data from grid
function displayPlayerImageInGrid(data, pictureUrlContainer) {
    var result = '';
    if (isNullOrEmpty(data.AzureImageName) == false) {
        var url = `${pictureUrlContainer}/${data.AzureImageName}`;
        result = `<span class=\"profile-picture-template-grid\">` +
            `<img class=\"hover-image\" src=\"${url}\" style=\"max-width: 200px; display: block;border-radius:40px\" alt=\"Avatar\">` +
            `</span>`;
        var titleTemplate = `<span class=\"\">` +
            `<img class=\"hover-image\" src=\"${url}\" style=\"max-width: 200px; display: block\" alt=\"Avatar\">` +
            `</span>`;
        return `<span class='no-transparent-tooltip'><span data-toggle="tooltip" style="opacity: 1 !important;" data-placement="bottom" data-html="true" title='${titleTemplate}'>${result}</span></span>`;
    } else {
        var firstName = data.FirstName;
        var lastName = data.LastName;
        if (firstName != null && lastName != null) {
            var intials = firstName.charAt(0) + lastName.charAt(0);
            if (isNullOrEmpty(intials)) {
                intials = 'N/A'
            }

            result = `<span class=\"no-profile-picture-template-grid\">` +
                intials +
                ` </span>`;
        }

    }
    return result;
}


function displayLastGames(item) {
    //-1 lost, 0 incomplete, 1 win, 99 not played,-2 equal
    var matchResults = item.LastMatchResults;
    var arrWithMatches = matchResults.length > 0 ? matchResults.split(",") : [];
    var resultHtml = '<span class="last-game-icons">';
    var currentIndex = arrWithMatches.length;

    $.each(arrWithMatches, function (index, value) {
        if (index < 6) {
            if (equalString(value, '-1')) {
                resultHtml = resultHtml + `<span class="last-game-icon lost-game-icon" style='z-index:${6 - index}'>L</span>`;
            } else if (equalString(value, '1')) {
                resultHtml = resultHtml + `<span class="last-game-icon win-game-icon" style='z-index:${6 - index}'>W</span>`;
            }
            else if (equalString(value, '0')) {
                resultHtml = resultHtml + `<span class="last-game-icon incomplete-game-icon" style='z-index:${6 - index}'>I</span>`;
            }
            else if (equalString(value, '-2')) {
                resultHtml = resultHtml + `<span class="last-game-icon equal-game-icon" style='z-index:${6 - index}'>T</span>`;
            } else {
                resultHtml = resultHtml +
                    `<span class="last-game-icon none-game-icon" style='z-index:${6 - index}'>--</span>`;
            }
        }
    });

    if (currentIndex < 6) {
        for (var i = currentIndex; i < 6; i++) {
            resultHtml = resultHtml + `<span class="last-game-icon none-game-icon" style='z-index:${6 - i}'>--</span>`;
        }
    }

    resultHtml = resultHtml + "</span>"

    return resultHtml;
}
function dateTimeToSweetFormat(currentDate, uiCulture) {

    if (isNullOrEmpty(uiCulture)) {
        uiCulture = 'en-US';
    }
    const formattedDateTime = currentDate.toLocaleString(uiCulture, {
        weekday: 'short', // abbreviated day of the week (e.g., Wed)
        month: 'short',   // abbreviated month name (e.g., Jun)
        day: 'numeric'    // numeric day of the month (e.g., 21)
    });

    var [, p1, p2, p3] = formattedDateTime.match(/(.+), (.+) (.+)/);

    let p11, p22, p33;

    if (!isNaN(parseInt(p1))) {
        const dayOfMonth = parseInt(p1);
        const suffix = getDaySuffix(dayOfMonth);
        p11 = `${p1}${suffix}`;
    } else {
        p11 = p1;
    }

    if (!isNaN(parseInt(p2))) {
        const dayOfMonth = parseInt(p2);
        const suffix = getDaySuffix(dayOfMonth);
        p22 = `${p2}${suffix}`;
    } else {
        p22 = p2;
    }

    if (!isNaN(parseInt(p3))) {
        const dayOfMonth = parseInt(p3);
        const suffix = getDaySuffix(dayOfMonth);
        p33 = `${p3}${suffix}`;
    } else {
        p33 = p3;
    }

    const formattedDate = `${p11}, ${p22} ${p33}`;
    return formattedDate;
}

function getDaySuffix(dayOfMonth) {
    let daySuffix;
    switch (dayOfMonth % 10) {
        case 1:
            daySuffix = 'st';
            break;
        case 2:
            daySuffix = 'nd';
            break;
        case 3:
            daySuffix = 'rd';
            break;
        default:
            daySuffix = 'th';
            break;
    }

    return daySuffix;
}


function displayOnlyDate(date, uiCulture = null, view = 'MmDdYyyy', excludeYear = false) {
    debugger;
    const day = date.getDate();
    const month = date.getMonth() + 1; // Months are 0-based in JavaScript
    const year = date.getFullYear();

    function getOrdinal(day) {
        if (day >= 11 && day <= 13) {
            return 'th';
        }
        switch (day % 10) {
            case 1:
                return 'st';
            case 2:
                return 'nd';
            case 3:
                return 'rd';
            default:
                return 'th';
        }
    }

    function formatTime() {
        // Implement your time formatting logic here
        // You can use date.getHours(), date.getMinutes(), and date.getSeconds() to get time components
        // You can also use uiCulture to format the time according to culture
    }

    function formatWithYear(formatString) {
        if (!excludeYear) {
            return `${formatString} ${year}`;
        }
        return formatString;
    }

    function formatWithoutYear(formatString) {
        return formatString;
    }

    switch (view) {
        case 'Friendly':
            {
                const ordinal = getOrdinal(day);
                if (year !== new Date().getFullYear() && !excludeYear) {
                    return formatWithYear(`${date.toDateString()}${ordinal}`);
                }
                return formatWithoutYear(`${date.toDateString()}, ${date.toDateString()}${ordinal}`);
            }

        case 'FriendlyShort':
        case 'FriendlyShortNoTime':
            {
                if (!excludeYear) {
                    excludeYear = year === new Date().getFullYear();
                }
                const shortOrdinal = getOrdinal(day);
                const dateString = `${date.toDateString()}, ${date.toDateString()}${shortOrdinal}`;
                if (year !== new Date().getFullYear() && !excludeYear) {
                    const timeString = view !== 'FriendlyShortNoTime' ? `, ${formatTime()}` : '';
                    return formatWithYear(`${dateString}${timeString}`);
                } else {
                    const timeString = view !== 'FriendlyShortNoTime' ? `, ${formatTime()}` : '';
                    return formatWithoutYear(`${dateString}${timeString}`);
                }
            }

        case 'MmDdYyyShort':
            {
                const monthDayOrdinal = getOrdinal(day);
                if (year !== new Date().getFullYear() && !excludeYear) {
                    return formatWithYear(`${month}/${day}${monthDayOrdinal} ${year}`);
                }
                return formatWithoutYear(`${month}/${day}${monthDayOrdinal}`);
            }

        case 'MmDd':
            return `${month}/${day}`;

        case 'DdMm':
            return `${day}/${month}`;

        case 'FriendlyWithDay':
            {
                if (year !== new Date().getFullYear() && !excludeYear) {
                    return formatWithYear(date.toLocaleDateString(uiCulture, { weekday: 'short', day: 'numeric', month: 'numeric', year: '2-digit' }));
                }
                return formatWithoutYear(date.toLocaleDateString(uiCulture, { weekday: 'short', day: 'numeric', month: 'numeric' }));

            }
        case 'MD':
            {
                if (excludeYear) {
                    return `${month}/${day}`;
                }
                return `${month}/${day}/${year}`;
            }

        default:
            {
                if (excludeYear) {
                    return date.toLocaleDateString(uiCulture, { month: '2-digit', day: '2-digit' });
                } else {
                    return date.toLocaleDateString(uiCulture, { month: 'short', day: 'numeric' });
                }
            }
    }


}
// Function to add a suffix to the day (e.g., 1st, 2nd, 3rd, 4th)
function getDayWithSuffix(day) {
    if (day >= 11 && day <= 13) {
        return day + 'th';
    }
    switch (day % 10) {
        case 1:
            return day + 'st';
        case 2:
            return day + 'nd';
        case 3:
            return day + 'rd';
        default:
            return day + 'th';
    }
}

function formatDateWithTimeZone(date, uiCulture, timeZone) {
    const options = {
        weekday: 'short',
        month: 'short',
        day: 'numeric',
    };

    // Format the date with the specified options
    const formattedDate = date.toLocaleDateString(uiCulture, options);

    // Get the day with a suffix (e.g., 13th)
    const day = date.getDate();
    const dayWithSuffix = getDayWithSuffix(day);

    return formattedDate.replace(day.toString(), dayWithSuffix);
}

var currentPlayersCountVariable = null;
var currentReservationTypeMinVariable = null;
var currentReservationTypeMaxVariable = null;
var applyNumberOfPlayersBasedOnNumberOfCourtsVariable = null;

function setReservationMinMaxPlayersLabel(isMaxSet, reservationTypeData, currentPlayersCount, isPlayersSet) {
    if (isMobileLayout) {
        if (toBoolean(isMaxSet)) {

            if (reservationTypeData && reservationTypeData) {
                $('.edit-criteria-btn').addClass('hide');
            }

            var minMatchmakerPlayerDropdown = $("#MatchMakerMinNumberOfPlayers").data("kendoDropDownList");
            var maxMatchmakerPlayerDropdown = $("#MatchMakerMaxNumberOfPlayers").data("kendoDropDownList");

            if (minMatchmakerPlayerDropdown && maxMatchmakerPlayerDropdown) {
                if (!isNullOrEmpty(reservationTypeData) &&
                    (!isNullOrEmpty(reservationTypeData.MinimumNumberOfPlayers) || !isNullOrEmpty(reservationTypeData.MaximumNumberOfPlayers)) &&
                    reservationTypeData.MinimumNumberOfPlayers == reservationTypeData.MaximumNumberOfPlayers) {
                    //disable
                    minMatchmakerPlayerDropdown.enable(false);
                    maxMatchmakerPlayerDropdown.enable(false);
                } else {
                    minMatchmakerPlayerDropdown.enable(true);
                    maxMatchmakerPlayerDropdown.enable(true);
                }
            }

            currentReservationTypeMinVariable = null;
            currentReservationTypeMaxVariable = null;
            applyNumberOfPlayersBasedOnNumberOfCourtsVariable = null;

            if (!isNullOrEmpty(reservationTypeData) && (!isNullOrEmpty(reservationTypeData.MinimumNumberOfPlayers) || !isNullOrEmpty(reservationTypeData.MaximumNumberOfPlayers))) {
                currentReservationTypeMinVariable = reservationTypeData.MinimumNumberOfPlayers;
                currentReservationTypeMaxVariable = reservationTypeData.MaximumNumberOfPlayers;
                applyNumberOfPlayersBasedOnNumberOfCourtsVariable = reservationTypeData.ApplyNumberOfPlayersBasedOnNumberOfCourts;
            }
        }
        if (toBoolean(isPlayersSet)) {
            currentPlayersCountVariable = currentPlayersCount;
        }

        tglSetReservationMinMaxPlayersLabel();
    }
}

function tglSetReservationMinMaxPlayersLabel() {
    if (!isNullOrEmpty(currentReservationTypeMinVariable) || !isNullOrEmpty(currentReservationTypeMaxVariable)) {
        var minVariableToSet = currentReservationTypeMinVariable;
        var maxVariableToSet = currentReservationTypeMaxVariable;

        if (!isNullOrEmpty(maxVariableToSet)) {
            if (parseInt(currentPlayersCountVariable) >= parseInt(maxVariableToSet)) {
                $('.fn-add-players-mob-btn').text('Edit Players');
            } else {
                $('.fn-add-players-mob-btn').text('Add Players');
            }
        }

        if (toBoolean(applyNumberOfPlayersBasedOnNumberOfCourtsVariable)) {
            try {
                var courtId = $('#CourtIds').val();
                var courtsLengthToCheck = 0;

                if (isNullOrEmpty(courtId) && $('#CourtId')[0]) {
                    try {
                        const courtIdsString = $('#CourtId').val();
                        var idsArray = courtIdsString.split(',');
                        courtsLengthToCheck = idsArray.length;
                    } catch (e) {
                        courtsLengthToCheck = 1;
                    }
                } else {
                    var courtsLengthToCheck = courtId.length;
                }

                if (isNullOrEmpty(courtsLengthToCheck) || parseInt(courtsLengthToCheck) <= 0) {
                    courtsLengthToCheck = 1;
                }

                if (!isNullOrEmpty(minVariableToSet)) {
                    minVariableToSet = parseInt(minVariableToSet) * courtsLengthToCheck;
                }

                if (!isNullOrEmpty(maxVariableToSet)) {
                    maxVariableToSet = parseInt(maxVariableToSet) * courtsLengthToCheck;
                }
            } catch (e) { }
        }

        if (!isNullOrEmpty(minVariableToSet) && !isNullOrEmpty(maxVariableToSet)) {
            $('.fn-total-allowed-players-count').removeClass('hide');
            $('.fn-players-count').html(`(${currentPlayersCountVariable}/${maxVariableToSet})`);

            if (minVariableToSet > 1) {
                $('.fn-total-allowed-players-count').html(` Min ${minVariableToSet}`);
            } else {
                $('.fn-total-allowed-players-count').html(``);
            }


            $('.fn-player-with-paranthese').addClass('hide');
            $('.fn-player-without-paranthese').removeClass('hide');

        }
        else if (!isNullOrEmpty(minVariableToSet)) {
            $('.fn-total-allowed-players-count').removeClass('hide');
            $('.fn-players-count').html(`(${currentPlayersCountVariable})`);

            $('.fn-total-allowed-players-count').html(` Min ${minVariableToSet}`);
            $('.fn-player-with-paranthese').addClass('hide');
            $('.fn-player-without-paranthese').removeClass('hide');
        }

        else if (!isNullOrEmpty(maxVariableToSet)) {
            $('.fn-total-allowed-players-count').removeClass('hide');
            $('.fn-players-count').html(`${currentPlayersCountVariable}`);
            $('.fn-total-allowed-players-count').html(`/${maxVariableToSet}`);
            $('.fn-player-with-paranthese').removeClass('hide');
            $('.fn-player-without-paranthese').addClass('hide');
        }
    } else {
        $('.fn-players-count').html(currentPlayersCountVariable);
        $('.fn-player-with-paranthese').removeClass('hide');
        $('.fn-player-without-paranthese').addClass('hide');
        $('.fn-total-allowed-players-count').addClass('hide');
    }
};

router = new Router(); // do not use strict 
(function ($) {
    
    "use strict";
   

    /* ----- Navbar Scroll To Fixed ----- */
    function navbarScrollfixed() {
        $('.navbar-scrolltofixed').scrollToFixed();
        var summaries = $('.summary');
        summaries.each(function(i) {
            var summary = $(summaries[i]);
            var next = summaries[i + 1];
            summary.scrollToFixed({
                marginTop: $('.navbar-scrolltofixed').outerHeight(true) + 10,
                limit: function() {
                    var limit = 0;
                    if (next) {
                        limit = $(next).offset().top - $(this).outerHeight(true) - 10;
                    } else {
                        limit = $('.footer').offset().top - $(this).outerHeight(true) - 10;
                    }
                    return limit;
                },
                zIndex: 999
            });
        });
    }

    /** Main Menu Custom Script Start **/
    $(document).on('ready', function () {
        $("#respMenu").aceResponsiveMenu({
            resizeWidth: '768', // Set the same in Media query
            animationSpeed: 'fast', //slow, medium, fast
            accoridonExpAll: false //Expands all the accordion menu on click
        });

        $("#fn-nav-clone").aceResponsiveMenu({
            resizeWidth: '0', // Set the same in Media query
            animationSpeed: 'fast', //slow, medium, fast
            accoridonExpAll: false //Expands all the accordion menu on click
        });
    });

    /* ----- Tags Bar Code for job list 1 page ----- */
    $('.tags-bar > span i').on('click', function(){
        $(this).parent().fadeOut();
    });

    /* ----- Footer height for body ----- */
    $(window).on('resize', function () {
        var footerHeight = $(".footer-block").outerHeight();
        if (footerHeight != null) {
            $("#mm-0").css("padding-bottom", `${footerHeight}px`);
        }
    });

    /* ----- This code for menu ----- */
    $(window).on('scroll', function() {
        if ($('.scroll-to-top').length) {
            var strickyScrollPos = 100;
            if ($(window).scrollTop() > strickyScrollPos) {
                $('.scroll-to-top').fadeIn(500);
            } else if ($(this).scrollTop() <= strickyScrollPos) {
                $('.scroll-to-top').fadeOut(500);
            }
        };
        if ($('.stricky').length) {
            var headerScrollPos = $('.header-navigation').next().offset().top;
            var stricky = $('.stricky');
            if ($(window).scrollTop() > headerScrollPos) {
                stricky.removeClass('slideIn animated');
                stricky.addClass('stricky-fixed slideInDown animated');
            } else if ($(this).scrollTop() <= headerScrollPos) {
                stricky.removeClass('stricky-fixed slideInDown animated');
                stricky.addClass('slideIn animated');
            }
        };
    });

    /** Main Menu Custom Script End **/
    
    /* ----- Blog innerpage sidebar according ----- */
    $(document).on('ready', function() {
        $('.collapse').on('show.bs.collapse', function () {
            $(this).siblings('.card-header').addClass('active');
        });

        $('.collapse').on('hide.bs.collapse', function () {
            $(this).siblings('.card-header').removeClass('active');
        });
    });

    /* ----- fact-counter ----- */
    function counterNumber() {
        $('div.timer').counterUp({
            delay: 5,
            time: 2000
        });
    }

    /* ----- Mobile Nav ----- */    
    $(function () {

        if ($("#menu")[0]) {
/*            var menu = new Mmenu(document.getElementById("menu"));*/

            var menu =new Mmenu(document.getElementById("menu"), {
                "navbars": [
                    {
                        "position": "bottom",
                        "content": [
                            "<div class='mmenu-custom-bottom-container'></div>"
                        ]
                    }
                ]
            });

            //slow load mmenu on appearing, need to add than remove hide class
            $('#menu').removeClass('hide');
            if ($(".fn-footer-item")[0]) {
                $('.fn-footer-item').addClass('hide');
                $('.mmenu-custom-bottom-container').html($('.fn-footer-item').html());
                $('.mmenu-custom-bottom-container .fn-footer-item').removeClass('hide');
            }
        }
    });

    /* ----- Progress Bar ----- */
    if($('.progress-levels .progress-box .bar-fill').length){
        $(".progress-box .bar-fill").each(function() {
            var progressWidth = $(this).attr('data-percent');
            $(this).css('width',progressWidth+'%');
            $(this).children('.percent').html(progressWidth+'%');
        });
    }

    /* ----- Background Parallax ----- */
    var isMobile = {
        Android: function() {
            return navigator.userAgent.match(/Android/i);
        },
        BlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        iOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        Opera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        Windows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        any: function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
        }
    };

    jQuery(document).on('ready',function(){
        jQuery(window).stellar({ 
            horizontalScrolling: false,
            hideDistantElements: true,
            verticalScrolling: !isMobile.any(),
            scrollProperty: 'scroll',
            responsive: true
        });          
    });

    /* ----- Wow animation ----- */
    function wowAnimation() {
        var wow = new WOW({
            animateClass: 'animated',
            mobile: true, // trigger animations on mobile devices (default is true)
            offset:       0
        });
        wow.init();
    }
    
    /* ----- Date & time Picker ----- */
    if($('.datepicker').length){
        $('.datepicker').datetimepicker();
    }

    /* ----- PG Slider ----- */
    if($('#js-main-slider').length){
        $('#js-main-slider').pogoSlider({
            autoplay: true,
            autoplayTimeout: 5000,
            displayProgess: true,
            generateNav: false,
            preserveTargetSize: true,
            targetWidth: 1000,
            targetHeight: 300,
            responsive: true
        }).data('plugin_pogoSlider');
    }

    /*  Testimonial-Slider-Owl-carousel  */
    if($('.testimonial_slider').length){
        $('.testimonial_slider').owlCarousel({
            loop:true,
            margin:15,
            dots:true,
            nav:false,
            rtl:false,
            autoplayHoverPause:false,
            autoplay: false,
            singleItem: true,
            smartSpeed: 1200,
            navText: [
              '<i class="fa fa-arrow-left"></i>',
              '<i class="fa fa-arrow-right"></i>'
            ],
            responsive: {
                0: {
                    items: 1,
                    center: false
                },
                480:{
                    items:1,
                    center: false
                },
                600: {
                    items: 1,
                    center: false
                },
                767: {
                    items: 1
                },
                768: {
                    items: 2
                },
                992: {
                    items: 2
                },
                1200: {
                    items: 2
                }
            }
        })
    }

    /*  Expert-Freelancer-Owl-carousel  */
    if($('.ef_slider').length){
        $('.ef_slider').owlCarousel({
            loop:true,
            margin:15,
            dots:true,
            nav:false,
            rtl:false,
            autoplayHoverPause:false,
            autoplay: true,
            singleItem: true,
            smartSpeed: 1200,
            navText: [
              '<i class="fa fa-arrow-left"></i>',
              '<i class="fa fa-arrow-right"></i>'
            ],
            responsive: {
                0: {
                    items: 1,
                    center: false
                },
                480:{
                    items:1,
                    center: false
                },
                600: {
                    items: 1,
                    center: false
                },
                768: {
                    items: 2
                },
                992: {
                    items: 3
                },
                1200: {
                    items: 3
                }
            }
        })
    }

    /*  Expert-Freelancer-Owl-carousel  */
    if($('.ef_slider2').length){
        $('.ef_slider2').owlCarousel({
            loop:true,
            margin:15,
            dots:false,
            nav:true,
            rtl:false,
            autoplayHoverPause:false,
            autoplay: true,
            singleItem: true,
            smartSpeed: 1200,
            navText: [
              '<i class="flaticon-left-arrow"></i>',
              '<i class="flaticon-right-arrow"></i>'
            ],
            responsive: {
                0: {
                    items: 1,
                    center: false
                },
                480:{
                    items:1,
                    center: false
                },
                600: {
                    items: 1,
                    center: false
                },
                768: {
                    items: 2
                },
                992: {
                    items: 3
                },
                1200: {
                    items: 3
                }
            }
        })
    }

    /* ----- Scroll To top ----- */
    function scrollToTop() {
        $(window).scroll(function(){
            if ($(this).scrollTop() > 600) {
                $('.scrollToHome').fadeIn();
            } else {
                $('.scrollToHome').fadeOut();
            }
        });
        
        //Click event to scroll to top
        $('.scrollToHome').on('click',function(){
            $('html, body').animate({scrollTop : 0},800);
            return false;
        });
    }


/* ======
   When document is ready, do
   ====== */
    $(document).on('ready', function() {
        // add your functions
        navbarScrollfixed();
        scrollToTop();
        wowAnimation();

        // extending for text toggle
        $.fn.extend({
            toggleText: function(a, b){
                return this.text(this.text() == b ? a : b);
            }
        });
        if ($('.showFilter').length) {
            $('.showFilter').on('click', function () {
                $(this).toggleText('Show Filter', 'Hide Filter');
                $(this).toggleClass('flaticon-close flaticon-filter-1 sidebarOpended sidebarClosed');
                $('.job_list_three.sidenav').toggleClass('opened');
                $('body').toggleClass('translated');
            });
        }
    });
})(window.jQuery);;
/*!
 * pulltorefreshjs v0.1.19
 * (c) Rafael Soto
 * Released under the MIT License.
 */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = global || self, global.PullToRefresh = factory());
}(this, function () { 'use strict';

  var _shared = {
    pullStartY: null,
    pullMoveY: null,
    handlers: [],
    styleEl: null,
    events: null,
    dist: 0,
    state: 'pending',
    timeout: null,
    distResisted: 0,
    supportsPassive: false,
    supportsPointerEvents: !!window.PointerEvent
  };

  try {
    window.addEventListener('test', null, {
      get passive() {
        // eslint-disable-line getter-return
        _shared.supportsPassive = true;
      }

    });
  } catch (e) {// do nothing
  }

  function setupDOM(handler) {
    if (!handler.ptrElement) {
      var ptr = document.createElement('div');

      if (handler.mainElement !== document.body) {
        handler.mainElement.parentNode.insertBefore(ptr, handler.mainElement);
      } else {
        document.body.insertBefore(ptr, document.body.firstChild);
      }

      ptr.classList.add(((handler.classPrefix) + "ptr"));
      ptr.innerHTML = handler.getMarkup().replace(/__PREFIX__/g, handler.classPrefix);
      handler.ptrElement = ptr;

      if (typeof handler.onInit === 'function') {
        handler.onInit(handler);
      } // Add the css styles to the style node, and then
      // insert it into the dom


      if (!_shared.styleEl) {
        _shared.styleEl = document.createElement('style');

        _shared.styleEl.setAttribute('id', 'pull-to-refresh-js-style');

        document.head.appendChild(_shared.styleEl);
      }

      _shared.styleEl.textContent = handler.getStyles().replace(/__PREFIX__/g, handler.classPrefix).replace(/\s+/g, ' ');
    }

    return handler;
  }

  function onReset(handler) {
    handler.ptrElement.classList.remove(((handler.classPrefix) + "refresh"));
    handler.ptrElement.style[handler.cssProp] = '0px';
    setTimeout(function () {
      // remove previous ptr-element from DOM
      if (handler.ptrElement && handler.ptrElement.parentNode) {
        handler.ptrElement.parentNode.removeChild(handler.ptrElement);
        handler.ptrElement = null;
      } // reset state


      _shared.state = 'pending';
    }, handler.refreshTimeout);
  }

  function update(handler) {
    var iconEl = handler.ptrElement.querySelector(("." + (handler.classPrefix) + "icon"));
    var textEl = handler.ptrElement.querySelector(("." + (handler.classPrefix) + "text"));

    if (iconEl) {
      if (_shared.state === 'refreshing') {
        iconEl.innerHTML = handler.iconRefreshing;
      } else {
        iconEl.innerHTML = handler.iconArrow;
      }
    }

    if (textEl) {
      if (_shared.state === 'releasing') {
        textEl.innerHTML = handler.instructionsReleaseToRefresh;
      }

      if (_shared.state === 'pulling' || _shared.state === 'pending') {
        textEl.innerHTML = handler.instructionsPullToRefresh;
      }

      if (_shared.state === 'refreshing') {
        textEl.innerHTML = handler.instructionsRefreshing;
      }
    }
  }

  var _ptr = {
    setupDOM: setupDOM,
    onReset: onReset,
    update: update
  };

  var _timeout;

  var screenY = function screenY(event) {
    if (_shared.pointerEventsEnabled && _shared.supportsPointerEvents) {
      return event.screenY;
    }

    return event.touches[0].screenY;
  };

  var _setupEvents = (function () {
    var _el;

    function _onTouchStart(e) {
      // here, we must pick a handler first, and then append their html/css on the DOM
      var target = _shared.handlers.filter(function (h) { return h.contains(e.target); })[0];

      _shared.enable = !!target;

      if (target && _shared.state === 'pending') {
        _el = _ptr.setupDOM(target);

        if (target.shouldPullToRefresh()) {
          _shared.pullStartY = screenY(e);
        }

        clearTimeout(_shared.timeout);

        _ptr.update(target);
      }
    }

    function _onTouchMove(e) {
      if (!(_el && _el.ptrElement && _shared.enable)) {
        return;
      }

      if (!_shared.pullStartY) {
        if (_el.shouldPullToRefresh()) {
          _shared.pullStartY = screenY(e);
        }
      } else {
        _shared.pullMoveY = screenY(e);
      }

      if (_shared.state === 'refreshing') {
        if (e.cancelable && _el.shouldPullToRefresh() && _shared.pullStartY < _shared.pullMoveY) {
          e.preventDefault();
        }

        return;
      }

      if (_shared.state === 'pending') {
        _el.ptrElement.classList.add(((_el.classPrefix) + "pull"));

        _shared.state = 'pulling';

        _ptr.update(_el);
      }

      if (_shared.pullStartY && _shared.pullMoveY) {
        _shared.dist = _shared.pullMoveY - _shared.pullStartY;
      }

      _shared.distExtra = _shared.dist - _el.distIgnore;

      if (_shared.distExtra > 0) {
        if (e.cancelable) {
          e.preventDefault();
        }

        _el.ptrElement.style[_el.cssProp] = (_shared.distResisted) + "px";
        _shared.distResisted = _el.resistanceFunction(_shared.distExtra / _el.distThreshold) * Math.min(_el.distMax, _shared.distExtra);

        if (_shared.state === 'pulling' && _shared.distResisted > _el.distThreshold) {
          _el.ptrElement.classList.add(((_el.classPrefix) + "release"));

          _shared.state = 'releasing';

          _ptr.update(_el);
        }

        if (_shared.state === 'releasing' && _shared.distResisted < _el.distThreshold) {
          _el.ptrElement.classList.remove(((_el.classPrefix) + "release"));

          _shared.state = 'pulling';

          _ptr.update(_el);
        }
      }
    }

    function _onTouchEnd() {
      if (!(_el && _el.ptrElement && _shared.enable)) {
        return;
      } // wait 1/2 sec before unmounting...


      clearTimeout(_timeout);
      _timeout = setTimeout(function () {
        if (_el && _el.ptrElement && _shared.state === 'pending') {
          _ptr.onReset(_el);
        }
      }, 500);

      if (_shared.state === 'releasing' && _shared.distResisted > _el.distThreshold) {
        _shared.state = 'refreshing';
        _el.ptrElement.style[_el.cssProp] = (_el.distReload) + "px";

        _el.ptrElement.classList.add(((_el.classPrefix) + "refresh"));

        _shared.timeout = setTimeout(function () {
          var retval = _el.onRefresh(function () { return _ptr.onReset(_el); });

          if (retval && typeof retval.then === 'function') {
            retval.then(function () { return _ptr.onReset(_el); });
          }

          if (!retval && !_el.onRefresh.length) {
            _ptr.onReset(_el);
          }
        }, _el.refreshTimeout);
      } else {
        if (_shared.state === 'refreshing') {
          return;
        }

        _el.ptrElement.style[_el.cssProp] = '0px';
        _shared.state = 'pending';
      }

      _ptr.update(_el);

      _el.ptrElement.classList.remove(((_el.classPrefix) + "release"));

      _el.ptrElement.classList.remove(((_el.classPrefix) + "pull"));

      _shared.pullStartY = _shared.pullMoveY = null;
      _shared.dist = _shared.distResisted = 0;
    }

    function _onScroll() {
      if (_el) {
        _el.mainElement.classList.toggle(((_el.classPrefix) + "top"), _el.shouldPullToRefresh());
      }
    }

    var _passiveSettings = _shared.supportsPassive ? {
      passive: _shared.passive || false
    } : undefined;

    if (_shared.pointerEventsEnabled && _shared.supportsPointerEvents) {
      window.addEventListener('pointerup', _onTouchEnd);
      window.addEventListener('pointerdown', _onTouchStart);
      window.addEventListener('pointermove', _onTouchMove, _passiveSettings);
    } else {
      window.addEventListener('touchend', _onTouchEnd);
      window.addEventListener('touchstart', _onTouchStart);
      window.addEventListener('touchmove', _onTouchMove, _passiveSettings);
    }

    window.addEventListener('scroll', _onScroll);
    return {
      onTouchEnd: _onTouchEnd,
      onTouchStart: _onTouchStart,
      onTouchMove: _onTouchMove,
      onScroll: _onScroll,

      destroy: function destroy() {
        if (_shared.pointerEventsEnabled && _shared.supportsPointerEvents) {
          window.removeEventListener('pointerdown', _onTouchStart);
          window.removeEventListener('pointerup', _onTouchEnd);
          window.removeEventListener('pointermove', _onTouchMove, _passiveSettings);
        } else {
          window.removeEventListener('touchstart', _onTouchStart);
          window.removeEventListener('touchend', _onTouchEnd);
          window.removeEventListener('touchmove', _onTouchMove, _passiveSettings);
        }

        window.removeEventListener('scroll', _onScroll);
      }

    };
  });

  var _ptrMarkup = "\n<div class=\"__PREFIX__box\">\n  <div class=\"__PREFIX__content\">\n    <div class=\"__PREFIX__icon\"></div>\n    <div class=\"__PREFIX__text\"></div>\n  </div>\n</div>\n";

  var _ptrStyles = "\n.__PREFIX__ptr {\n  box-shadow: inset 0 -3px 5px rgba(0, 0, 0, 0.12);\n  pointer-events: none;\n  font-size: 0.85em;\n  font-weight: bold;\n  top: 0;\n  height: 0;\n  transition: height 0.3s, min-height 0.3s;\n  text-align: center;\n  width: 100%;\n  overflow: hidden;\n  display: flex;\n  align-items: flex-end;\n  align-content: stretch;\n}\n\n.__PREFIX__box {\n  padding: 10px;\n  flex-basis: 100%;\n}\n\n.__PREFIX__pull {\n  transition: none;\n}\n\n.__PREFIX__text {\n  margin-top: .33em;\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.__PREFIX__icon {\n  color: rgba(0, 0, 0, 0.3);\n  transition: transform .3s;\n}\n\n/*\nWhen at the top of the page, disable vertical overscroll so passive touch\nlisteners can take over.\n*/\n.__PREFIX__top {\n  touch-action: pan-x pan-down pinch-zoom;\n}\n\n.__PREFIX__release .__PREFIX__icon {\n  transform: rotate(180deg);\n}\n";

  var _defaults = {
    distThreshold: 60,
    distMax: 80,
    distReload: 50,
    distIgnore: 0,
    mainElement: 'body',
    triggerElement: 'body',
    ptrElement: '.ptr',
    classPrefix: 'ptr--',
    cssProp: 'min-height',
    iconArrow: '&#8675;',
    iconRefreshing: '&hellip;',
    instructionsPullToRefresh: 'Pull down to refresh',
    instructionsReleaseToRefresh: 'Release to refresh',
    instructionsRefreshing: 'Refreshing',
    refreshTimeout: 500,
    getMarkup: function () { return _ptrMarkup; },
    getStyles: function () { return _ptrStyles; },
    onInit: function () {},
    onRefresh: function () { return location.reload(); },
    resistanceFunction: function (t) { return Math.min(1, t / 2.5); },
    shouldPullToRefresh: function () { return !window.scrollY; }
  };

  var _methods = ['mainElement', 'ptrElement', 'triggerElement'];
  var _setupHandler = (function (options) {
    var _handler = {}; // merge options with defaults

    Object.keys(_defaults).forEach(function (key) {
      _handler[key] = options[key] || _defaults[key];
    }); // normalize timeout value, even if it is zero

    _handler.refreshTimeout = typeof options.refreshTimeout === 'number' ? options.refreshTimeout : _defaults.refreshTimeout; // normalize elements

    _methods.forEach(function (method) {
      if (typeof _handler[method] === 'string') {
        _handler[method] = document.querySelector(_handler[method]);
      }
    }); // attach events lazily


    if (!_shared.events) {
      _shared.events = _setupEvents();
    }

    _handler.contains = function (target) {
      return _handler.triggerElement.contains(target);
    };

    _handler.destroy = function () {
      // stop pending any pending callbacks
      clearTimeout(_shared.timeout); // remove handler from shared state

      var offset = _shared.handlers.indexOf(_handler);

      _shared.handlers.splice(offset, 1);
    };

    return _handler;
  });

  var index = {
    setPassiveMode: function setPassiveMode(isPassive) {
      _shared.passive = isPassive;
    },

    setPointerEventsMode: function setPointerEventsMode(isEnabled) {
      _shared.pointerEventsEnabled = isEnabled;
    },

    destroyAll: function destroyAll() {
      if (_shared.events) {
        _shared.events.destroy();

        _shared.events = null;
      }

      _shared.handlers.forEach(function (h) {
        h.destroy();
      });
    },

    init: function init(options) {
      if ( options === void 0 ) options = {};

      var handler = _setupHandler(options);

      _shared.handlers.push(handler);

      return handler;
    },

    // export utils for testing
    _: {
      setupHandler: _setupHandler,
      setupEvents: _setupEvents,
      setupDOM: _ptr.setupDOM,
      onReset: _ptr.onReset,
      update: _ptr.update
    }
  };

  return index;

}));
;
/*!
 * ASP.NET SignalR JavaScript Library v2.2.1
 * http://signalr.net/
 *
 * Copyright (c) .NET Foundation. All rights reserved.
 * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 *
 */
(function(n,t,i){function w(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function b(n){return n==="http:"?80:n==="https:"?443:void 0}function a(n,t){return t.match(/:\d+$/)?t:t+":"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server.  Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if(typeof n!="function")throw new Error(f.nojQuery);var r,h,o=t.document.readyState==="complete",e=n(t),c="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},v=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<arguments.length-1;n++)t=t.replace("{"+n+"}",arguments[n+1]);return t},firefoxMajorVersion:function(n){var t=n.match(/Firefox\/(\d+)/);return!t||!t.length||t.length<2?0:parseInt(t[1],10)},configurePingInterval:function(i){var f=i._.config,e=function(t){n(i).triggerHandler(u.onError,[t])};f&&!i._.pingIntervalId&&f.pingInterval&&(i._.pingIntervalId=t.setInterval(function(){r.transports._logic.pingServer(i).fail(e)},f.pingInterval))}},r.events=u,r.resources=f,r.ajaxDefaults={processData:!0,timeout:null,async:!0,global:!1,cache:!1},r.changeState=s,r.isDisconnecting=y,r.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},r.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"1.5",reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},d,y=a._deferral||n.Deferred(),b=t.document.createElement("a"),k,g;if(a.lastError=null,a._deferral=y,!a.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(v,i),n.type(v.callback)==="function"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind("load",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),b.href=a.url,b.protocol&&b.protocol!==":"?(a.protocol=b.protocol,a.host=b.host):(a.protocol=t.document.location.protocol,a.host=b.host||t.document.location.host),a.baseUrl=a.protocol+"//"+a.host,a.wsProtocol=a.protocol==="https:"?"wss://":"ws://",v.transport==="auto"&&v.jsonp===!0&&(v.transport="longPolling"),a.url.indexOf("//")===0&&(a.url=t.location.protocol+a.url,a.log("Protocol relative URL detected, normalizing it to '"+a.url+"'.")),this.isCrossDomain(a.url)&&(a.log("Auto detected cross domain url."),v.transport==="auto"&&(v.transport=["webSockets","serverSentEvents","longPolling"]),typeof v.withCredentials=="undefined"&&(v.withCredentials=!0),v.jsonp||(v.jsonp=!n.support.cors,v.jsonp&&a.log("Using jsonp because this browser doesn't support CORS.")),a.contentType=r._.defaultContentType),a.withCredentials=v.withCredentials,a.ajaxDataType=v.jsonp?"jsonp":"text",n(a).bind(u.onStart,function(){n.type(h)==="function"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),d=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log("No transports supported by the server were selected."):o===1?a.log("No fallback transports were selected."):a.log("Fallback transports exhausted.");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){d(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var i=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,f=!!a.withCredentials&&i;a.log("The start request succeeded. Transitioning to the connected state.");l(a)&&r.transports._logic.monitorKeepAlive(a);r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log("WARNING! The connection was not in the connecting state.");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind("unload",function(){a.log("Window unloading, stopping the connection.");a.stop(f)});i&&e.bind("beforeunload",function(){t.setTimeout(function(){a.stop(f)},0)})},v)}catch(w){a.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},k=a.url+"/negotiate",g=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),k=r.transports._logic.prepareQueryString(a,k),a.log("Negotiating with '"+k+"'."),a._.negotiateRequest=r.transports._logic.ajax(a,{url:k,error:function(n,t){t!==c?g(n,a):y.reject(r._.error(f.stoppedWhileNegotiating,null,a._.negotiateRequest))},success:function(t){var i,e,h,o=[],s=[];try{i=a._parseResponse(t)}catch(c){g(r._.error(f.errorParsingNegotiateResponse,c),a);return}if(e=a._.keepAliveData,a.appRelativeUrl=i.Url,a.id=i.ConnectionId,a.token=i.ConnectionToken,a.webSocketServerUrl=i.WebSocketServerUrl,a._.pollTimeout=i.ConnectionTimeout*1e3+1e4,a.disconnectTimeout=i.DisconnectTimeout*1e3,a._.totalTransportConnectTimeout=a.transportConnectTimeout+i.TransportConnectTimeout*1e3,i.KeepAliveTimeout?(e.activated=!0,e.timeout=i.KeepAliveTimeout*1e3,e.timeoutWarning=e.timeout*a.keepAliveWarnAt,a._.beatInterval=(e.timeout-e.timeoutWarning)/3):e.activated=!1,a.reconnectWindow=a.disconnectTimeout+(e.timeout||0),!i.ProtocolVersion||i.ProtocolVersion!==a.clientProtocol){h=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,i.ProtocolVersion));n(a).triggerHandler(u.onError,[h]);y.reject(h);return}n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!i.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport==="auto"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);d(o)}}),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind("load",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log("Stopping connection."),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out.  Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o="__Start Aborted__",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,t){if(typeof n.transport!="undefined"){t=typeof t=="undefined"?!0:t;var i=e(n,"/abort");u.ajax(n,{url:i,async:t,timeout:1e3,type:"POST"});n.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response==="started"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,r){var f;u.markLastMessage(t);i&&(f=u.maximizePersistentResponse(i),u.updateGroups(t,f.GroupsToken),f.MessageId&&(t.messageId=f.MessageId),f.Messages&&(n.each(f.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,f,r)))},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime()},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if((new Date).getTime()-t._.lastActiveAt>=t.reconnectWindow){var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1}return!0},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new h(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,f=n.signalR.changeState,i=r.transports._logic;r.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=i.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[r._.transportError(r.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=i.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");i.clearReconnectTimeout(e);f(e,r.connectionState.reconnecting,r.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var i;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(i=r._.transportError(r.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(i)||(i&&n(e).triggerHandler(u.onError,[i]),l.reconnect(e)))},e.socket.onmessage=function(t){var r;try{r=e._parseResponse(t.data)}catch(u){i.handleParseFailure(e,t.data,u,s,t);return}r&&(n.isEmptyObject(r)||r.M?i.processMessages(e,r,o):i.triggerReceived(e,r))})},reconnect:function(n){i.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){i.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.body&&t.document.body.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+".  Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+e}function s(n,t,i){for(var f=n.length,u=[],r=0;r<f;r+=1)n.hasOwnProperty(r)&&(u[r]=t.call(i,n[r],r,n));return u}function h(t){return n.isFunction(t)?null:n.type(t)==="undefined"?null:t}function u(n){for(var t in n)if(n.hasOwnProperty(t))return!0;return!1}function f(n,t){var i=n._.invocationCallbacks,r,f;u(i)&&n.log("Clearing hub invocation callbacks with error: "+t+".");n._.invocationCallbackId=0;delete n._.invocationCallbacks;n._.invocationCallbacks={};for(f in i)r=i[f],r.method.call(r.scope,{E:t})}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||"")+"/signalr"),new t.fn.init(i,u)}var e=".hubProxy",o=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i){var u=this,f=u._.callbackMap;return t=t.toLowerCase(),f[t]||(f[t]={}),f[t][i]=function(n,t){i.apply(u,t)},n(u).bind(r(t),f[t][i]),u},off:function(t,i){var e=this,o=e._.callbackMap,f;return t=t.toLowerCase(),f=o[t],f&&(f[i]?(n(e).unbind(r(t),f[i]),delete f[i],u(f)||delete o[t]):i||(n(e).unbind(r(t)),delete o[t])),e},invoke:function(t){var i=this,r=i.connection,e=n.makeArray(arguments).slice(1),c=s(e,h),f={H:i.hubName,M:t,A:c,I:r._.invocationCallbackId},u=n.Deferred(),l=function(f){var e=i._maximizeHubResponse(f),h,s;n.extend(i.state,e.State);e.Progress?u.notifyWith?u.notifyWith(i,[e.Progress.Data]):r._.progressjQueryVersionLogged||(r.log("A hub method invocation progress update was received but the version of jQuery in use ("+n.prototype.jquery+") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),r._.progressjQueryVersionLogged=!0):e.Error?(e.StackTrace&&r.log(e.Error+"\n"+e.StackTrace+"."),h=e.IsHubException?"HubException":"Exception",s=o._.error(e.Error,h),s.data=e.ErrorData,r.log(i.hubName+"."+t+" failed to execute. Error: "+s.message),u.rejectWith(i,[s])):(r.log("Invoked "+i.hubName+"."+t),u.resolveWith(i,[e.Result]))};return r._.invocationCallbacks[r._.invocationCallbackId.toString()]={scope:i,method:l},r._.invocationCallbackId+=1,n.isEmptyObject(i.state)||(f.S=i.state),r.log("Invoking "+i.hubName+"."+t),r.send(f),u.promise()},_maximizeHubResponse:function(n){return{State:n.S,Result:n.R,Progress:n.P?{Id:n.P.I,Data:n.P.D}:null,Id:n.I,IsHubException:n.H,Error:n.E,StackTrace:n.T,ErrorData:n.D}}};i.fn.init.prototype=i.fn;t.fn=t.prototype=n.connection();t.fn.init=function(t,i){var e={qs:null,logging:!1,useDefaultPath:!0},u=this;n.extend(e,i);n.signalR.fn.init.call(u,t,e.qs,e.logging);u.proxies={};u._.invocationCallbackId=0;u._.invocationCallbacks={};u.received(function(t){var f,o,e,i,s,h;t&&(typeof t.P!="undefined"?(e=t.P.I.toString(),i=u._.invocationCallbacks[e],i&&i.method.call(i.scope,t)):typeof t.I!="undefined"?(e=t.I.toString(),i=u._.invocationCallbacks[e],i&&(u._.invocationCallbacks[e]=null,delete u._.invocationCallbacks[e],i.method.call(i.scope,t))):(f=this._maximizeClientHubInvocation(t),u.log("Triggering client hub event '"+f.Method+"' on hub '"+f.Hub+"'."),s=f.Hub.toLowerCase(),h=f.Method.toLowerCase(),o=this.proxies[s],n.extend(o.state,f.State),n(o).triggerHandler(r(h),[f.Args])))});u.error(function(n,t){var i,r;t&&(i=t.I,r=u._.invocationCallbacks[i],r&&(u._.invocationCallbacks[i]=null,delete u._.invocationCallbacks[i],r.method.call(r.scope,{E:n})))});u.reconnecting(function(){u.transport&&u.transport.name==="webSockets"&&f(u,"Connection started reconnecting before invocation result was received.")});u.disconnected(function(){f(u,"Connection was disconnected before invocation result was received.")})};t.fn._maximizeClientHubInvocation=function(n){return{Hub:n.H,Method:n.M,Args:n.A,State:n.S}};t.fn._registerSubscribedHubs=function(){var t=this;t._subscribedToHubs||(t._subscribedToHubs=!0,t.starting(function(){var i=[];n.each(t.proxies,function(n){this.hasSubscriptions()&&(i.push({name:n}),t.log("Client subscribed to hub '"+n+"'."))});i.length===0&&t.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");t.data=t.json.stringify(i)}))};t.fn.createHubProxy=function(n){n=n.toLowerCase();var t=this.proxies[n];return t||(t=i(this,n),this.proxies[n]=t),this._registerSubscribedHubs(),t};t.fn.init.prototype=t.fn;n.hubConnection=t}(window.jQuery,window),function(n){n.signalR.version="2.2.1"}(window.jQuery);
function swalWithBootstrapButtons() {
    return Swal.mixin({
        customClass: {
            container: 'input-swal-class',
            confirmButton: 'btn btn-primary',
            cancelButton: 'btn btn-secondary ml-2'
        },
        buttonsStyling: false
    });
}

function displayAjaxSwalMessage(ajaxResponse) {
    if (ajaxResponse) {
        var isSuccess = ajaxResponse.isValid;
        var message = ajaxResponse.message;
        var title = ajaxResponse.title;

        if (!title || title === null || title === "") {
            if (isSuccess) {
                title = "Success";
            } else {
                title = "Error";
            }
        }

        swalWithBootstrapButtons().fire({
            title: title,
            icon: isSuccess ? 'success' : 'error',
            showCancelButton: false,
            confirmButtonText: 'OK',
            confirmButtonColor: "#3f5872",
            html: message
        });
    }
}

function setScriptKendoOverrides(isFirst) {
    $(".k-grid").each(function(index) {
        if ($(this).find(".fn-kendo-web-height").length > 0) {
            var screenWidth = $(window).width();
            if (screenWidth <= 900) {
                $(this).find(".fn-kendo-web-height").removeClass("fn-kendo-web-overrides");
            } else {
                var heightToSet = $(this).find(".fn-kendo-web-height").data("height");
                $(this).find(".fn-kendo-web-height").addClass("fn-kendo-web-overrides");

                if (isFirst) {
                    if ($(this).find(".fn-kendo-web-height").hasClass("fn-initial-height")) {
                        //nothing
                    } else {
                        var currentGridHeight = $(this).find(".fn-kendo-web-height").outerHeight();
                        if (currentGridHeight < heightToSet) {
                            $(this).find(".fn-kendo-web-height").addClass("fn-initial-height");
                        } else {
                            $(this).find(".fn-kendo-web-height").css("height", `${heightToSet}px`);
                        }
                    }
                } else {
                    $(this).find(".fn-kendo-web-height").css("height", `${heightToSet}px`);
                }
            }
        }
    });
}

function tryToSetHeaderHeight() {
    try {
        var showDoubleLines = mobileHeaderDoubleLines;
        var screenWidth = $(window).outerWidth();
        var buttonsWidth = $(".mobile-header-buttons").outerWidth();
        var menuBarWidth = $("#menu-bar-container").outerWidth();
        var iconWidth = $(".nav_logo_img").outerWidth();
        var totalWidth = buttonsWidth + menuBarWidth + iconWidth + 30; //padding right

        if (showDoubleLines == true) {
            if (totalWidth > screenWidth) {
                $("#page").css("height", "140px");
                $(".fn-mobile-header .mobile-header-buttons").css("margin-top", "70px");
                $(".fn-mobile-header .bg-thm.btn-org").css("margin-top", "70px");
                $(".mobile-header-buttons").addClass('fn-small-buttons');
            } else {
                $("#page").css("height", "");
                $(".fn-mobile-header .mobile-header-buttons").css("margin-top", "");
                $(".fn-mobile-header .bg-thm.btn-org").css("margin-top", "");
                $(".mobile-header-buttons").removeClass('fn-small-buttons');
            }
        }
    } catch (e) {

    }
}

function heroContentAdjustImageHeight() {
    if ($(".fn-hero-height")[0]) {
        var windowWidth = $(window).outerWidth();
        var heightToSet = windowWidth / 3.096;
        if (heightToSet < 250) {
            heightToSet = 250;
        }
        $(".fn-hero-height").each(function (index) {
            $(this).css("min-height", `${heightToSet}px`);
        });
    }
}

function resizeFnIframes() {
    if ($(".fn-resize-iframe")[0]) {
        $(".fn-resize-iframe").each(function (index) {
            var iFrameId = $(this).attr("id");
            resizeIframe(iFrameId);
        });
    }
}

//https://stackoverflow.com/questions/19305821/multiple-modals-overlay
$(document).on({
    'show.bs.modal': function () {
        var zIndex = 1040 + (10 * $('.modal:visible').length);
        $(this).css('z-index', zIndex);
        setTimeout(function () {
            $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
        }, 0);
    },
    'hidden.bs.modal': function () {
        if ($('.modal:visible').length > 0) {
            // restore the modal-open class to the body element, so that scrolling works
            // properly after de-stacking a modal.
            setTimeout(function () {
                $(document.body).addClass('modal-open');
            }, 0);
        }
    }
}, '.modal');

//after doc ready
$(function() {
    $('.tools-scrolltofixed').scrollToFixed();

    //$('.k-scheduler-toolbar').scrollToFixed({
    //    limit: function() {
    //        var limit = $(this).parent().outerHeight(true) - 53;

    //        return limit;
    //        //var classUntilIsFixed = (this).data("scroll-fixed-parent");
    //    }
    //});

    //resizeIframe multiple times
    setTimeout(function () {
        resizeFnIframes();
    }, 2000);

    setTimeout(function() {
        resizeFnIframes();
    }, 5000);

    //setScriptKendoOverrides(true);
    //tryToSetHeaderHeight();
    fixPoweredBySection();
    heroContentAdjustImageHeight();

    //$(window).resize(function () {
    //    resizeFnIframes();
    //    schedulerOverrides();

    //    // resize kendo grid height
    //    $(".k-grid").each(function (index) {
    //        if ($(this).find(".fn-kendo-web-height").length > 0) {
    //            if (!$(this).find(".fn-kendo-web-height").hasClass("fn-initial-height")) {
    //                setScriptKendoOverrides();
    //            }
    //        } else {
    //            var gridId = $(this).attr("id");
    //            if (gridId != null) {
    //                try {
    //                    autosizeKendoGrid(gridId);
    //                } catch (ex) {
    //                    //do not remove, lets see all ex message for now
    //                    //console.log(ex);
    //                }
    //            }
    //        }
    //    });

    //    tryToSetHeaderHeight();

    //    //show powered by always at the bottom
    //    fixPoweredBySection();

    //    heroContentAdjustImageHeight();
    //});
    
    function fixPoweredBySection() {
        if ($("#footer-container")[0]) {
            //nothing
        } else {
            var height = $(".powered-by-section").outerHeight();
            var windowHeight = $(window).height();
            //add min height to body container
            $("#render-body-container").css("min-height", windowHeight - height);
        }
    }

    //Date expire input
    $(document).on('keypress', ".fn-card-date-mask", function (event) {
        if (event.charCode >= 48 && event.charCode <= 57) {
            if ($(this).val().length === 1) {
                $(this).val($(this).val() + event.key + "/");
            } else if ($(this).val().length === 0) {
                if (event.key == 1 || event.key == 0) {
                    month = event.key;
                    return event.charCode;
                } else {
                    $(this).val(0 + event.key + "/");
                }
            } else if ($(this).val().length > 2 && $(this).val().length < 9) {
                return event.charCode;
            }
        }
        return false;
    });

    $(".fn-card-date-mask").on('drop', function (event) {
        event.preventDefault();
    });

    $(".fn-card-date-mask").on("cut copy paste", function (e) {
        e.preventDefault();
    });
});

/*$(window).on('popstate', function (event) {
    try {
        var parameters = [];
        parameters.push('evAction');
        parameters.push('ajaxCall');
        parameters.push('modalHtml');
        removeUrlParameters(parameters);
    } catch (e) {

    } 

    window.history.back();
});*/

var stripe = null;
var card = null;

jQuery.fn.extend({
    replaceHtml: function(value) {
        $(this).html(value);

        applyCommonHelpers($(`body`));
        setModalBodyHeight();
        //todo add scroll to label in case if alert dialog not exists but wee return model state not valid by key 
        if ($(".alert-danger")[0]) {
            var notValidForm = $(".alert-danger").offset().top - 10;
            $('html, body').animate({ scrollTop: notValidForm }, 800);
        }
        return false;
    },

    initializeStripe: function (publishableKey, hidePostalCode, connectAccountId, accPublishableKey) {
        var id = $(this).attr("id");

        if (connectAccountId && isNullOrEmpty(connectAccountId)==false) {
            stripe = Stripe(accPublishableKey, { stripeAccount: connectAccountId });
        } else {
            stripe = Stripe(publishableKey);
        }

        var elements = stripe.elements();
        if (workingFontFamily != null && !equalString(workingFontFamily, 'Axiforma')) {
            elements = stripe.elements({
                fonts: [
                    {
                        cssSrc: 'https://fonts.googleapis.com/css?family=' + encodeURIComponent(workingFontFamily),
                    }
                ],
                // Stripe's examples are localized to specific languages, but if
                // you wish to have Elements automatically detect your user's locale,
                // use `locale: 'auto'` instead.
                locale: window.__exampleLocale
            });
        }

        card = elements.create('card', { style: getMemberPortalStripeBaseStyles(), hidePostalCode: hidePostalCode});
        card.mount(`#${id}`);
        // Handle real-time validation errors from the card Element.
        card.addEventListener('change',
            function (event) {
                const displayError = document.getElementById('card-errors');
                if (event.error) {
                    displayError.textContent = event.error.message;
                } else {
                    displayError.textContent = '';
                }
            });
    }
});

function getMemberPortalStripeBaseStyles() {
    var font = workingFontFamily;

    if (font != null && font.includes("+")) {
        font = font.replaceAll("+", " ");
    }

    if (isMobileLayout) {
        return {
            base: {
                color: 'black',
                fontFamily: font,
                fontSize: '16px',
                lineHeight: '1.42857143',
                padding: "8px",
                letterSpacing: "0.2px",
                '::placeholder': {
                    color: 'black'
                }
            },
            invalid: {
                color: '#fa755a',
                iconColor: '#9fa19c'
            }
        };
    }

    return {
        base: {
            fontFamily: font,
            fontSize: '16px',
            padding: "8px",
            letterSpacing: "0.2px",
            '::placeholder': {
                color: '#aab7c4'
            }
        },
        invalid: {
            color: '#fa755a',
            iconColor: '#9fa19c'
        }
    };
}

function fixModalHeader() {
    var isOver = isOverlapping($(".modal-title-span"), $(".modal-title-buttons"));
    if (isOver) {
        $(".modal-header-container").addClass("d-grid");
    } else {
        $(".modal-header-container").removeClass("d-grid");
    }
}

function isOverlapping(div1, div2) {
    let d1Offset = div1.offset();
    let d1Height = div1.outerHeight(true);
    let d1Width = div1.outerWidth(true);
    let d1Top = d1Offset.top + d1Height;
    let d1Left = d1Offset.left + d1Width;

    let d2Offset = div2.offset();
    let d2Height = div2.outerHeight(true);
    let d2Width = div2.outerWidth(true);
    let d2Top = d2Offset.top + d2Height;
    let d2Left = d2Offset.left + d2Width;

    return !(d1Top < d2Offset.top || d1Offset.top > d2Top || d1Left < d2Offset.left || d1Offset.left > d2Left);
};

function resizeTabStrip(id, parentId) {
    //resize.js ->

    //if ($(`#${id}`)[0]) {
    //    $(`#${id}`).data('kendoTabStrip').resize();
    //    var tsItems = $(`#${id}`).data('kendoTabStrip').items();
    //    var ts = $(`#${id}`).data('kendoTabStrip');

    //    ts.resize();
    //    var tabWidth = 0;
    //    for (var i = 0; i < tsItems.length; i++) {
    //        tabWidth += tsItems[i].clientWidth;
    //    }

    //    var widthToSet = $("#page-inner").outerWidth();
    //    var bodyWidth = $("#mm-0").outerWidth();
    //    var screenWidth = $(window).width();
    //    if (bodyWidth < widthToSet) {
    //        widthToSet = bodyWidth;
    //    }

    //    if (parentId != null) {
    //        $(`#${parentId}`).css("width", `${widthToSet - 2}px`);
    //    }

    //    if (screenWidth < 560) {
    //        if (parentId != null) {
    //            $(`#${parentId}`).css("width", `${widthToSet - 10}px`);
    //        }
    //    }

    //    var paddingToExclude = 30 + 30; //container-fluid + container

    //    if (parentId != null) {
    //        $(`#${id}`).css("width", `${widthToSet - 30}px`);
    //    } else {
    //        //wee set only if screen is smaller than 800
    //        //if is > than 800 use standart container
    //        if (screenWidth < 800) {
    //            $(".fn-parent-tabstrip").css("width", `${screenWidth - paddingToExclude}px`);
    //        } else {
    //            //remove added with in case if is added
    //            $(".fn-parent-tabstrip").css("width", ``);
    //        }
    //    }

    //    if (parentId != null) {
    //        if (tabWidth < ts.element[0].clientWidth) {
    //            //ts.element[0].classList.remove('k-tabstrip-scrollable');
    //            $(`#${id} .k-tabstrip-items`).removeClass("ov-k-tabstrip-items");
    //            $(`#${id} .k-tabstrip-next`).css({ 'display': 'none' });
    //            $(`#${id} .k-tabstrip-prev`).css({ 'display': 'none' });
    //        } else {
    //            $(`#${id} .k-tabstrip-items`).addClass("ov-k-tabstrip-items");
    //            $(`#${id} .k-tabstrip-next`).css({ 'display': 'block' });
    //            $(`#${id} .k-tabstrip-prev`).css({ 'display': 'block' });
    //        }
    //    } else {
    //        if (tabWidth < screenWidth) {
    //            //ts.element[0].classList.remove('k-tabstrip-scrollable');
    //            $(`#${id} .k-tabstrip-items`).removeClass("ov-k-tabstrip-items");
    //            $(`#${id} .k-tabstrip-next`).css({ 'display': 'none' });
    //            $(`#${id} .k-tabstrip-prev`).css({ 'display': 'none' });
    //        } else {
    //            $(`#${id} .k-tabstrip-items`).addClass("ov-k-tabstrip-items");
    //            $(`#${id} .k-tabstrip-next`).css({ 'display': 'block' });
    //            $(`#${id} .k-tabstrip-prev`).css({ 'display': 'block' });
    //        }
    //    }
    //}
}

$(document).on("click", ".k-expand-clone", function() {
    if ($(this).hasClass("fn-expanded")) {
        $(this).removeClass("fn-expanded");
        $(this).html('<span>More Dates</span>');
    } else {
        $(this).addClass("fn-expanded");
        $(this).html('<span>Hide Dates</span>');
    }

    $(this).closest(".k-master-row").find(".k-hierarchy-cell").find(".k-icon").click();
});

$(document).on("click", ".custom-accordion", function () {
    var parentDiv = $(this).parent();
    $(parentDiv).find(".fn-resize-iframe").each((index, element) => {
        setTimeout(function () {
            var iFrameId = element.id;
            resizeIframe(iFrameId);
        }, 10) //swipe
    });
});

$(document).on("click", ".fn-readonly-clickable-time", function () {
    try {
        var id = $(this).find(".input-time").prop('id');
        if (id != null) {
            var picker = $("#" + id).data("kendoTimePicker");
            if (picker) {
                picker.open();
            }
        }
    } catch (e) {

    } 
})


$(document).on("click", ".selectize-label", function () {
    var idToOpen = $(this).attr("for");
    if ($(`#${idToOpen}`)[0]) {
        try {
            $(this).parent().find('.selectize-input').click();

        } catch (e) {

        } 
    }
})


$(document).on("click", "label", function() {
    var elementId = $(this).attr("for");
    if (elementId) {
        try {
            focusTextToEnd(elementId);
        } catch (e) {

        } 
    }
});

function isValidEmail(email) {
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return regex.test(email);
}

$(document).on('click', 'input[role="combobox"]', function() {
    var ariaControl = $(this).attr('aria-controls');
    if (ariaControl) {
        var identifier = ariaControl.replace('_listbox', '');
        if (identifier) {
            var comboBox = $(`#${identifier}`).data("kendoComboBox");

            if (comboBox) {
                var openSelector = true;
                if (comboBox.options.minLength) {
                    if ($(`#${identifier}`).val().length >= comboBox.options.minLength) {

                    } else {
                        openSelector = false;
                    }
                }

                if (openSelector) {
                    comboBox.open();
                }
            }
        }
    }
});

$(document).on('input', '.fn-combo-input', function () {
    var ariaControl = $(this).attr('aria-controls');
    if (ariaControl) {
        var identifier = ariaControl.replace('_listbox', '');
        if (identifier) {
            var comboBox = $(`#${identifier}`).data("kendoComboBox");

            if (comboBox) {
                var openSelector = true;
                if (comboBox.options.minLength) {
                    if ($(this).val().length >= comboBox.options.minLength) {

                    } else {
                        openSelector = false;
                    }
                }

                if (openSelector) {
                    comboBox.open();
                } else {
                    comboBox.close();
                }
            }
        }
    }
});

//$(document).on("click", ".k-icon", function () {
//    console.log(1);
//    var isExpanded = $(this).attr("aria-expanded");
//    console.log(isExpanded);
//});
;
/*
 * jQuery.fontselect - A font selector for the Google Web Fonts api
 * Tom Moor, http://tommoor.com
 * Copyright (c) 2011 Tom Moor
 * MIT Licensed
 * @version 0.1
*/

var availableFontSelectFonts = [
    "Inter",
    "Axiforma",
    "Nunito",
    "Roboto",
    "Nunito+Sans",
    "Arimo",
    "Open+Sans",
    "Lato",
    "Slabo+27px",
    "Oswald",
    "Source+Sans+Pro",
    "Montserrat",
    "Raleway",
    "PT+Sans",
    "Lora",
    "Noto+Sans",
    "Concert+One",
    "Prompt",
    "Work+Sans",
    "Aclonica",
    "Allan",
    "Annie+Use+Your+Telescope",
    "Anonymous+Pro",
    "Allerta+Stencil",
    "Allerta",
    "Amaranth",
    "Anton",
    "Architects+Daughter",
    "Artifika",
    "Arvo",
    "Asset",
    "Astloch",
    "Bangers",
    "Bentham",
    "Bevan",
    "Bigshot+One",
    "Bowlby+One",
    "Bowlby+One+SC",
    "Brawler",
    "Cabin",
    "Calligraffitti",
    "Candal",
    "Cantarell",
    "Cardo",
    "Carter One",
    "Caudex",
    "Cedarville+Cursive",
    "Cherry+Cream+Soda",
    "Chewy",
    "Coda",
    "Coming+Soon",
    "Copse",
    "Corben",
    "Cousine",
    "Covered+By+Your+Grace",
    "Crafty+Girls",
    "Crimson+Text",
    "Crushed",
    "Cuprum",
    "Damion",
    "Dancing+Script",
    "Dawning+of+a+New+Day",
    "Didact+Gothic",
    "Droid+Sans",
    "Droid+Sans+Mono",
    "Droid+Serif",
    "EB+Garamond",
    "Expletus+Sans",
    "Fontdiner+Swanky",
    "Forum",
    "Francois+One",
    "Geo",
    "Give+You+Glory",
    "Goblin+One",
    "Goudy+Bookletter+1911",
    "Gravitas+One",
    "Gruppo",
    "Hammersmith+One",
    "Holtwood+One+SC",
    "Homemade+Apple",
    "Inconsolata",
    "Indie+Flower",
    "IM+Fell+DW+Pica",
    "IM+Fell+DW+Pica+SC",
    "IM+Fell+Double+Pica",
    "IM+Fell+Double+Pica+SC",
    "IM+Fell+English",
    "IM+Fell+English+SC",
    "IM+Fell+French+Canon",
    "IM+Fell+French+Canon+SC",
    "IM+Fell+Great+Primer",
    "IM+Fell+Great+Primer+SC",
    "Irish+Grover",
    "Irish+Growler",
    "Istok+Web",
    "Josefin+Sans",
    "Josefin+Slab",
    "Judson",
    "Jura",
    "Just+Another+Hand",
    "Just+Me+Again+Down+Here",
    "Kameron",
    "Kenia",
    "Kranky",
    "Kreon",
    "Kristi",
    "La+Belle+Aurore",
    "League+Script",
    "Lekton",
    "Limelight",
    "Lobster",
    "Lobster Two",
    "Love+Ya+Like+A+Sister",
    "Loved+by+the+King",
    "Luckiest+Guy",
    "Maiden+Orange",
    "Mako",
    "Maven+Pro",
    "Meddon",
    "MedievalSharp",
    "Megrim",
    "Merriweather",
    "Metrophobic",
    "Michroma",
    "Miltonian Tattoo",
    "Miltonian",
    "Modern Antiqua",
    "Monofett",
    "Molengo",
    "Mountains of Christmas",
    "Muli",
    "Neucha",
    "Neuton",
    "News+Cycle",
    "Nixie+One",
    "Nobile",
    "Nova+Cut",
    "Nova+Flat",
    "Nova+Mono",
    "Nova+Oval",
    "Nova+Round",
    "Nova+Script",
    "Nova+Slim",
    "Nova+Square",
    "OFL+Sorts+Mill+Goudy+TT",
    "Old+Standard+TT",
    "Orbitron",
    "Over+the+Rainbow",
    "Reenie+Beanie",
    "Pacifico",
    "Patrick+Hand",
    "Paytone+One",
    "Permanent+Marker",
    "Philosopher",
    "Play",
    "Playfair+Display",
    "Podkova",
    "PT+Serif",
    "PT+Serif Caption",
    "Puritan",
    "Quattrocento",
    "Quattrocento+Sans",
    "Radley",
    "Redressed",
    "Rock+Salt",
    "Rokkitt",
    "Ruslan+Display",
    "Schoolbell",
    "Shadows+Into+Light",
    "Shanti",
    "Sigmar+One",
    "Six+Caps",
    "Slackey",
    "Smythe",
    "Special+Elite",
    "Stardos+Stencil",
    "Sue+Ellen+Francisco",
    "Sunshiney",
    "Swanky+and+Moo+Moo",
    "Syncopate",
    "Tangerine",
    "Tenor+Sans",
    "Terminal+Dosis+Light",
    "The+Girl+Next+Door",
    "Tinos",
    "Ubuntu",
    "Ultra",
    "Unkempt",
    "UnifrakturMaguntia",
    "Varela",
    "Varela Round",
    "Vibur",
    "Vollkorn",
    "VT323",
    "Waiting+for+the+Sunrise",
    "Wallpoet",
    "Walter+Turncoat",
    "Wire+One",
    "Yanone+Kaffeesatz",
    "Yeseva+One",
    "Zeyada"
];

(function($){

  $.fn.fontselect = function(options) {  

    var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

      var settings = {
          style: 'font-select',
          placeholder: 'Select a font',
          lookahead: 2,
          api: 'https://fonts.googleapis.com/css?family=',
          fonts: availableFontSelectFonts
      };

      if (options) {
          $.extend(settings, options);
          if (settings.customFont) {
              settings.fonts.unshift(settings.customFont);
          }
      }

    var Fontselect = (function(){
        function Fontselect(original, o) {
        this.$original = $(original);
        this.options = o;
        this.active = false;
        this.setupHtml();
        this.getVisibleFonts();
        this.bindEvents();
        this.appendToBodyFonts();

        var font = this.$original.val();
        if (font) {
          this.updateSelected();
          this.addFontLink(font);
        }
      }
      
      Fontselect.prototype.bindEvents = function(){
        var self = this;
        // Close dropdown automatically on clicks outside dropdown
        $(document).click(function(event){
          if(self.active && !$(event.target).parents('#fontSelect-'+ self.$original.id).length){
            self.toggleDrop();
          }
        });
        
        $('li', this.$results)
        .click(__bind(this.selectFont, this))
        .mouseenter(__bind(this.activateFont, this))
        .mouseleave(__bind(this.deactivateFont, this));
        
        $('span', this.$select).click(__bind(this.toggleDrop, this));
        this.$arrow.click(__bind(this.toggleDrop, this));
      };
      
      Fontselect.prototype.toggleDrop = function(ev){
        
        if(this.active){
          this.$element.removeClass('font-select-active');
          this.$drop.hide();
          clearInterval(this.visibleInterval);
        } else {
          this.$element.addClass('font-select-active');
          this.$drop.show();
          this.visibleInterval = setInterval(__bind(this.getVisibleFonts, this), 500);
        }
        
        this.active = !this.active;
      };
      
      Fontselect.prototype.selectFont = function(){
        
        var font = $('li.active', this.$results).data('value');
        this.$original.val(font).change();
        this.updateSelected();
        this.toggleDrop();
      };
      
        Fontselect.prototype.appendToBodyFonts = function() {

            var $body = $("body");
            var htmlToAdd = '';

            var l = this.options.fonts.length;
            var api = this.options.api;

            for (var i = 0; i < l; i++) {
                var indexF = this.toStyle(this.options.fonts[i]);

                if (settings && settings.customFont === this.options.fonts[i]) {
                    htmlToAdd += `<link href="/Content/memberportal/fonts/custom_fonts/` + indexF['font-family'] + `.css" rel="stylesheet" type="text/css">`;
                } else {
                    htmlToAdd += `<link href="` + api + indexF['font-family'] + `" rel="stylesheet" type="text/css">`;
                }
            }
            $body.prepend(htmlToAdd);
        };
      
      Fontselect.prototype.activateFont = function(ev){
        $('option.active', this.$results).removeClass('active');
        $(ev.currentTarget).addClass('active');
      };
      
      Fontselect.prototype.deactivateFont = function(ev){
        
        $(ev.currentTarget).removeClass('active');
      };
      
      Fontselect.prototype.updateSelected = function(){
        
        var font = this.$original.val();
        $('span', this.$element).text(this.toReadable(font)).css(this.toStyle(font));
      };
      
        Fontselect.prototype.setupHtml = function () {
        this.$original.empty().hide();
        this.$element = $('<div>', {'id': 'fontSelect-'+this.$original.id, 'class': this.options.style});
        this.$arrow = $('<div><b></b></div>');
        this.$drop = $('<div>', { 'class': 'fs-drop' });
        this.$results = $('<select>', { 'id': this.$original[0].id+"-wrapper" });
        this.$original.after(this.$results.append(this.fontsAsHtml()));
      };
      
      Fontselect.prototype.fontsAsHtml = function(){
        
        var l = this.options.fonts.length;
        var r, s, h = '';
        
        for(var i=0; i<l; i++){
            r = this.toReadable(this.options.fonts[i]);
            s = this.toStyle(this.options.fonts[i]);

            h += '<option value="' + this.options.fonts[i] + '" style="font-family: ' + s['font-family'] + '; font-weight: ' + s['font-weight'] + '">' + r + '</option>';
        }
        
        return h;
      };
      
      Fontselect.prototype.toReadable = function(font){
        return font.replace(/[\+|:]/g, ' ');
      };
      
      Fontselect.prototype.toStyle = function(font){
        var t = font.split(':');
        return {'font-family': this.toReadable(t[0]), 'font-weight': (t[1] || 400)};
      };
      
      Fontselect.prototype.getVisibleFonts = function(){
      
        if(this.$results.is(':hidden')) return;
        
        var fs = this;
        var top = this.$results.scrollTop();
        var bottom = top + this.$results.height();
        
        if(this.options.lookahead){
          var li = $('option', this.$results).first().height();
          bottom += li*this.options.lookahead;
        }
       
          $('option', this.$results).each(function(){

          var ft = $(this).position().top+top;
          var fb = ft + $(this).height();

          if ((fb >= top) && (ft <= bottom)){
            var font = $(this).data('value');
            fs.addFontLink(font);
          }
          
        });
      };
      
      Fontselect.prototype.addFontLink = function(font){
          if (settings && settings.customFont === font) {
              console.log(44);
          } else {
              var link = this.options.api + font;

              if (font) {
                  if ($("link[href*='" + font + "']").length === 0) {
                      $('link:last').after('<link href="' + link + '" rel="stylesheet" type="text/css">');
                  }
              }
          }
      };
    
      return Fontselect;
    })();

    return this.each(function() {        
      // If options exist, lets merge them
      if (options) $.extend( settings, options );
      
      return new Fontselect(this, settings);
    });

  };
})(jQuery);
;
var mobileTitleArray = [];
var loadPushNotificationInfo = false;
var mobileKeyboardOpened = false;
var mobileKeyboardHeight = 0;

function decodeHtmlTitle(title) {
     // Create a temporary element to decode HTML entities
    try {
        // Handle null or undefined title
        if (title == null || typeof title !== 'string') {
            return ''; // Return an empty string for invalid inputs
        }

        // Use DOMParser to decode HTML entities
        const parser = new DOMParser();
        const doc = parser.parseFromString(`<!doctype html><body>${title}`, 'text/html');
        return doc.body.textContent || '';
    } catch (error) {
        return ''; // Return an empty string if an error occurs
    }
}

function barcodeDraw(id) {
    var canvas = document.getElementById(id);
    if (canvas && canvas.getContext) {
        var ctx = canvas.getContext('2d');

        // Filled triangle
        ctx.beginPath();
        /*ctx.moveTo(0, ctx.moveTo(0, window.screen.width - (window.screen.width * 0.45)));*/
        $(`#${id}`).attr('width', window.screen.width);
        $(`#${id}`).attr('height', window.screen.height);
        ctx.moveTo(0, ctx.moveTo(0, window.screen.height - (window.screen.height * 0.48)));
        ctx.lineTo(window.screen.width, window.screen.height - (window.screen.height * 0.51));
        ctx.lineTo(window.screen.width, window.screen.height);
        ctx.lineTo(0, window.screen.height);
        ctx.fillStyle = Organization.BaseBackgroundColor;
        ctx.fill();
    }
}

function scrollToUlClass($container, scrollToClass) {
    const $scrollTo = $(scrollToClass);
    
    try {
        $container.animate({ scrollTop: $scrollTo.offset().top - $container.offset().top + $container.scrollTop(), scrollLeft: 0 }, 300);
    } catch (e) {

    } 
}

var previousHtmlById = {};
function createAndOpenMobileDrawer(e, title, isMultiSelect, isTimePicker) {
    var id = e.sender.element[0].id;
    var innerHtml = null;

    if (isTimePicker) {
        innerHtml = e.sender.timeView.ul[0].innerHTML;
    } else {
        innerHtml = e.sender.ul[0].innerHTML;
    }

    // Check if the HTML content has changed, dropdown changed values or somthing
    if (previousHtmlById[id] !== innerHtml) {
        $(`.dynamic-ul-${id}`).remove();
        previousHtmlById[id] = innerHtml;
    }

    var isRequired = false;
    var addTimeoutToBackdrop = $(`#${id}`).hasClass('fn-backdrop-timeout');

    var text = $(`label[for="${id}"]`).text();

    if ($(`label[for="${id}"]`).length > 1) {
        text = $(`label[for="${id}"]`).first().text();
    }

    if (!isNullOrEmpty(title)) {
        text = title;
    }

    if (isNullOrEmpty(innerHtml)) {
        //empty list
        innerHtml = noItemsContainer(text);
    } else {

        if (!isMultiSelect && !isRequired) {
            var classToAdd = "k-item";
            var noSelectedItems = isNullOrEmpty($(`#${id}`).val());
            if (noSelectedItems) {
                classToAdd = "k-item k-state-focused k-selected";
            }

            //innerHtml = `<li tabindex="-1" class="${classToAdd}" role="option" data-offset-index="-1">${Organization.DropdownNoneItemLabel}</li>` + innerHtml;
        }
    }

    var dynamicUlClass = $(`.dynamic-ul-${id}`);

    if (dynamicUlClass[0]) {
        $('.fake-modal-backdrop').removeClass('hide');
        $('.fake-modal-backdrop').addClass('drawer-backdrop');
        dynamicUlClass.addClass('show');
        return;
    }

    var buttonHtml = '';

    if (toBoolean(isMultiSelect)) {
        buttonHtml = `<div class="modal-footer-row d-block btn-lg-container" data-testid="confirm-btn">
                            <a type="button" class="btn btn-success btn-shadow fn-hidefottermodal">
                                CONFIRM
                            </a>
                       </div>`;
    }



    var drawerHtml = `<div class='dynamic-ul dynamic-ul-${id} mobile-bottom-modal kendo-dynamic-ul' data-bindid='${id}' data-testid="${id}-container">
                        <div class="row">
                            <div class="drawer-handle">
                                <span class="handle-bar"></span>
                                <span class="handle-bar"></span>
                            </div>
                            <div class="col-12 mobile-bottom-modal-wrapper">
                                <div class="modal-icon-title">
                                    <span class="mobile-bottom-modal-title">${text}</span>
                                    <span class="close-mobile-bottom-modal fn-close-mobile-bottom-modal" data-testid="close">x</span>
                                </div>
                            </div>
                        </div>
                        <div class="mobile-bottom-modal-container lower-padding" data-testid="list-item">
                            <div class="drawer-max-height-wrapper kendo-drawer-list-wrapper ${(isMultiSelect ? '--multiple-kendo-drawer' : '--single-kendo-drawer')}" data-test='list-static-parent'>
                                ${addCustomAttributeToLi(innerHtml)}
                            </div>
                             ${buttonHtml}
                        </div>
                      </div>`;

    $('body').append(drawerHtml);

    var timeoutInterval = addTimeoutToBackdrop ? 100 : 0

    setTimeout(function () {
        $('.fake-modal-backdrop').removeClass('hide');
        $('.fake-modal-backdrop').addClass('drawer-backdrop');
    }, timeoutInterval)

    setTimeout(function () {
        var elementToScroll = $(`.dynamic-ul-${id} .kendo-drawer-list-wrapper .k-selected`);
        if (elementToScroll.length != 0) {
            elementToScroll[0].scrollIntoView({ behavior: 'auto', block: 'nearest', inline: 'start' });
        }

        $('.fake-modal-backdrop').removeClass('hide');
        $('.fake-modal-backdrop').addClass('drawer-backdrop');
    }, 100)

    setTimeout(function () {
        $(`.dynamic-ul-${id}`).addClass('show');
    }, 100);
}

$(document).on('click', '.kendo-dynamic-ul li', function (e) {
    var parentContainer = $(this).closest('.kendo-dynamic-ul');
    var bindItemId = parentContainer.attr('data-bindid');
    var isSecondPage = parentContainer.hasClass('fn-second-page');
    let ddList = $(`#${bindItemId}`).data("kendoDropDownList");
    if ($('.selectlist-ul2[data-bindid="guestlist"]').hasClass('show') && !equalString(bindItemId, 'SelectedNumberOfGuests')) {
        ddList = $(`.selectlist-ul2 #${bindItemId}`).data("kendoDropDownList");
    }

    var selectedItemIndex = $(this)[0].dataset.offsetIndex;

    if (ddList) {
        ddList.select(ddList.ul.children().eq(selectedItemIndex));
        ddList.trigger('change');
        if (isSecondPage) {
            $(`.fake-modal`).removeClass('show');
            $(`.fake-modal-body`).text('');
            // remove all atributes
            $(`.fake-modal-body`).removeAttr('data-bindid');
        } else {
            closeFooterModal();
        }
        $(parentContainer).find('li').removeClass('k-selected');
        $(this).addClass('k-selected');
    } else {

        const multiSelectList = $(`#${bindItemId}`).data("kendoMultiSelect");

        if (multiSelectList) {
            const selectedItem = multiSelectList.dataSource._view[selectedItemIndex];
            if (selectedItem) {
                let selectValue = selectedItem.Id;
                const dataValueField = multiSelectList.options.dataValueField;
                if (!selectValue) {
                    selectValue = selectedItem[dataValueField];
                }
                if (!selectValue) {
                    selectValue = selectedItem.Value;
                }

                if (selectValue) {
                    let currentValueIds = multiSelectList.value() || [];

                    const isSelected = currentValueIds.some(obj => equalString(obj, selectValue));

                    $(this).toggleClass('k-selected');

                    if (isSelected) {
                        currentValueIds = currentValueIds.filter(elem => !equalString(elem, selectValue));
                    } else {
                        currentValueIds.push(selectValue);
                    }

                    multiSelectList.value(currentValueIds);
                    $(`#${bindItemId}`).val(currentValueIds);
                    multiSelectList.trigger('change');
                }
            }

            //var selectedItemWithIndex = multiSelectList.dataSource._view[selectedItemIndex];
            //if (selectedItemWithIndex) {
            //    var selectValue = null; // selectedItemWithIndex.Id; not always by id
            //    if (isNullOrEmpty(selectValue)) {
            //        var dataValueField = multiSelectList.options.dataValueField;
            //        selectValue = selectedItemWithIndex[`${dataValueField}`];
            //    }

            //    if (isNullOrEmpty(selectValue)) {
            //        //all possible variables
            //        selectValue = selectedItemWithIndex.Value;
            //    }

            //    if (selectValue) {
            //        var currentValueIds = $(`#${bindItemId}`).val();

            //        if ($(this).hasClass('k-selected')) {
            //            $(this).removeClass('k-selected');
            //            if (isNullOrEmpty(currentValueIds)) {
            //                currentValueIds = [];
            //            }

            //            currentValueIds = currentValueIds.filter(function (elem) {
            //                return elem != selectValue;
            //            });

            //            multiSelectList.value(currentValueIds);
            //        } else {
            //            $(this).addClass('k-selected');
            //            if (isNullOrEmpty(currentValueIds)) {
            //                currentValueIds = [];
            //            }
            //            currentValueIds.push(selectValue);
            //            multiSelectList.value(currentValueIds);
            //        }
            //    }

            //    multiSelectList.trigger('change');
            //}
        } else {
            const timePickerList = $(`#${bindItemId}`).data("kendoTimePicker");
            if (timePickerList) {
                timePickerList.value($(this)[0].textContent);
                timePickerList.trigger('change');
                if (isSecondPage) {
                    $(`.fake-modal`).removeClass('show');
                    $(`.fake-modal-body`).text('');
                    // remove all atributes
                    $(`.fake-modal-body`).removeAttr('data-bindid');
                } else {
                    closeFooterModal();
                }
            }
        }
    }

});

function addCustomAttributeToLi(innerHtml) {
    const container = document.createElement('div');
    container.innerHTML = innerHtml;

    const listItems = container.querySelectorAll('li');

    listItems.forEach(li => {
        const span = li.querySelector('span');
        if (span) {
            const text = span.textContent.trim();
            li.setAttribute('data-testid', 'option');
        }
    });

    return container.innerHTML;
}

function createSelectListPage(e, title, secondLayer, isMultiSelect) {
    showSpinnerPage();
    var id = e.sender.element[0].id;

    var text = $(`label[for="${id}"]`).text();
    if (!isNullOrEmpty(title)) {
        text = title;
    }

    var $ulContainer = $('.selectlist-ul');
    if (secondLayer) {
        $ulContainer = $('.selectlist-ul2');
    }

    /*.hasClass('fn-required-dd-item')*/
    var isRequired = $(e.sender.element[0]).hasClass('fn-required-dd-item');
    var innerHtml = addCustomAttributeToLi(e.sender.ul[0].innerHTML);
    if (isNullOrEmpty(innerHtml)) {
        //empty list
        innerHtml = noItemsContainer(text);
    } else {

        if (!isMultiSelect && !isRequired) {
            var classToAdd = "k-item";
            var noSelectedItems = isNullOrEmpty($(`#${id}`).val());
            if (noSelectedItems) {
                classToAdd = "k-item k-state-focused k-selected";
            }

            innerHtml = `<li tabindex="-1" data-testid="none" class="${classToAdd}" role="option" data-offset-index="-1">${Organization.DropdownNoneItemLabel}</li>` + innerHtml;
        }
    }

    var pageKey = "selectlistpage";
    var elPageKey = $(`#${id}`).data('pagekey');

    if (elPageKey) {
        pageKey = elPageKey;
    }

    $ulContainer.html(innerHtml);
    $ulContainer.attr('data-bindid', id);
    $ulContainer.attr('data-testid', `${id}Container`);
    $("#mobile-header").attr("data-activeid", pageKey);
    $("#mobile-header .fn-navigation-wrapper").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
    /*$("#mobile-header .page-title").text(text);*/

    var el = $ulContainer.find('.k-selected');
    if (el != null && el != "undefined" && el.length > 0) {
        try {
            setTimeout(function () {
                    $(el).get(0).scrollIntoView({
                        behavior: 'auto',
                        block: 'center',
                        inline: 'center'
                    });
                },
                1000);
        } catch (e) {

        }
    };

    $ulContainer.addClass('show');
    $ulContainer.attr('data-timest', new Date($.now()));
    tglMobileArray(/*addTitle*/ text, /*pageKey*/ pageKey);
}

function createSelectizeListPage(e) {
    showSpinnerPage();
    var htmlToAdd = '';
    var elId = e.$input[0].id;
    var text = $(`label[for="${elId}"]`).text();

    var $select = $(`#${elId}`).selectize();
    var selectize = $select[0].selectize;
    var currentSelectedIds = selectize.getValue();

    $.each(e.options, function (index, option) {
        var countHtml = '';
        var selectedOptionCount = currentSelectedIds.filter(x => x === option.value).length;

        let disabledDecreaseClass = equalString(selectedOptionCount, 0) ? 'disabled' : '';

        htmlToAdd += `<li ${countHtml} value='${option.value}' data-text='${option.text}'><span class='selectize-text'>${option.text}</span> <span class='select-right-block'><span class='decrease-count ${disabledDecreaseClass}'></span><span class='selectize-count' data-count='${selectedOptionCount}'></span><span class='increase-count'></span></span></li>`;
    });

    $('.selectlist-ul').html(htmlToAdd);
    $('.selectlist-ul').attr('data-bindid', e.$input[0].id);
    $('.selectlist-ul').attr('data-testid', `${e.$input[0].id}Container`);
    $("#mobile-header").attr("data-activeid", 'selectlistpage');
    $("#mobile-header").attr('data-type', 'selectize');
    $("#mobile-header .fn-navigation-wrapper").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
    /*$("#mobile-header .page-title").text(text);*/
    $('.selectlist-ul').addClass('show');
    scrollToUlClass($('.selectlist-ul'), '.k-selected');

    $('.selectlist-ul').attr('data-timest', new Date($.now()));
    tglMobileArray(/*addTitle*/ text, /*pageKey*/ 'selectlistpage');
}

function noItemsContainer(title) {
    //note! don't use li
    return `<span class='no-li-items'>No ${title}</span>`;
}

$(document).on('click', '.selectlist-ul li', function (e) {
    if ($(e.target).hasClass('selectize-remove') || $(e.target).hasClass('combobox-li') || $(e.target).hasClass('btn') ) {
        e.preventDefault();
        return;
    }
    if ($("#mobile-header").attr('data-type') == 'selectize') {
        //nothing use icons for inc/decr

    } else {
        var selectedItemIndex = $(this)[0].dataset.offsetIndex;
        var bindItemId = $('.selectlist-ul').attr('data-bindid');
        const ddList = $(`#${bindItemId}`).data("kendoDropDownList");
        if (ddList) {
            if (selectedItemIndex == "-1") {
                // none value for non required dropdowns
                $(`#${bindItemId}`).data("kendoDropDownList").value('');
            } else {
                ddList.select($(`#${bindItemId}`).data("kendoDropDownList").ul.children().eq(selectedItemIndex));
            }
            
            ddList.trigger('change');

            /*$('.selectlist-ul').removeClass('show');*/
            $('.selectlist-ul').attr('data-bindid', '');
            /*$('.selectlist-ul').attr('data-type', '');*/
            tglMobileArray(/*addTitle*/ null,/*pageKey*/ null,/*removeLast*/ true);
        } else {
            const multiSelectList = $(`#${bindItemId}`).data("kendoMultiSelect");
            if (multiSelectList) {
                var selectedItemWithIndex = multiSelectList.dataSource._view[selectedItemIndex];
                if (selectedItemWithIndex) {
                    var selectValue = null; // selectedItemWithIndex.Id; not always by id
                    if (isNullOrEmpty(selectValue)) {
                        var dataValueField = multiSelectList.options.dataValueField;
                        selectValue = selectedItemWithIndex[`${dataValueField}`];
                    }

                    if (isNullOrEmpty(selectValue)) {
                        //all possible variables
                        selectValue = selectedItemWithIndex.Value;
                    }

                    if (selectValue) {
                        var currentValueIds = $(`#${bindItemId}`).val();

                        if ($(this).hasClass('k-selected')) {
                            $(this).removeClass('k-selected');
                            if (isNullOrEmpty(currentValueIds)) {
                                currentValueIds = [];
                            }

                            currentValueIds = currentValueIds.filter(function (elem) {
                                return elem != selectValue;
                            });

                            multiSelectList.value(currentValueIds);
                        } else {
                            $(this).addClass('k-selected');
                            if (isNullOrEmpty(currentValueIds)) {
                                currentValueIds = [];
                            }
                            currentValueIds.push(selectValue);
                            multiSelectList.value(currentValueIds);
                        }
                    }

                    multiSelectList.trigger('change');
                }
            } else {
                const timePickerList = $(`#${bindItemId}`).data("kendoTimePicker");
                if (timePickerList) {
                    timePickerList.value($(this)[0].textContent);
                    timePickerList.trigger('change');

                    $('.selectlist-ul').attr('data-bindid', '');
                    tglMobileArray(/*addTitle*/ null,/*pageKey*/ null,/*removeLast*/ true);
                }
            }
        }
    }
});

$(document).on('click', '.selectlist-ul2 li', function (e) {
    if ($(e.target).hasClass('selectize-remove') || $(e.target).hasClass('combobox-li') || $(e.target).hasClass('btn')) {
        e.preventDefault();
        return;
    }
    if ($("#mobile-header").attr('data-type') == 'selectize') {

    } else {
        var selectedItemIndex = $(this)[0].dataset.offsetIndex;
        var bindItemId = $('.selectlist-ul2').attr('data-bindid');
        const ddList = $(`#${bindItemId}`).data("kendoDropDownList");
        ddList.select($(`#${bindItemId}`).data("kendoDropDownList").ul.children().eq(selectedItemIndex));
        ddList.trigger('change');

        /*$('.selectlist-ul').removeClass('show');*/
        $('.selectlist-ul2').attr('data-bindid', '');
        /*$('.selectlist-ul').attr('data-type', '');*/
        tglMobileArray(/*addTitle*/ null,/*pageKey*/ null,/*removeLast*/ true);
    }
});

function createComboUlContainer(items, itemTemplate, entitySearchText, noItemsMsg, showPlayersHeaderCountLabel) {
    var resultHtml = '';

    $.each(items, function (index, option) {
        if (!isNullOrEmpty(itemTemplate)) {
            resultHtml += window[`${itemTemplate}`](option);
        } else {
            resultHtml += `<li class='combobox-li' text='${customStringEncode(option.FullName)}' value='${(isNullOrEmpty(option.MemberOrgId) ? option.OrgMemberId : option.MemberOrgId)}'>${option.FullName} <button type="button" class='btn btn-secondary add-combobox-li-btn'>ADD</button></li>`;
        }
    });

    if (isNullOrEmpty(entitySearchText)) {
        entitySearchText = Organization.MembersEntity.toLowerCase();
    }

    if (isNullOrEmpty(items) || items.length == 0) {
        if (isNullOrEmpty(noItemsMsg)) {
            resultHtml = `<span class='ul-no-data-found'>No ${entitySearchText} found.</span>`;
        } else {
            resultHtml = `${noItemsMsg}`;
        }
    } else if (toBoolean(showPlayersHeaderCountLabel) && $('#SwapWithMemberIdSearch')[0]) {
        let currentEnteredValue = $('#SwapWithMemberIdSearch').val();
        if (isNullOrEmpty(currentEnteredValue)) {
            resultHtml = `<div class='search-header-label-count'>My Favorites (${items.length})</div>` + resultHtml;
        } else {
            resultHtml = `<div class='search-header-label-count'>Players Found (${items.length})</div>` + resultHtml;
        }
    }

    $('.combobox-items-container').html(`${resultHtml}`);
}

function createSearchComboInputDynamicFunction(elId) {
    if (typeof onMobileSearchType == 'function') {
        onMobileSearchType(elId);
    }
}

function createSearchComboInput(selfInput, appendToParent, triggerInput) {
    var elId = selfInput.data('id');
    var itemTemplate = selfInput.data('itemtemplate');
    var beforeScript = selfInput.data('beforescript');
    var placeHolderText = selfInput.data('placeholder');
    var padding = selfInput.data('padding');
    var isVersion2 = toBoolean(selfInput.data('newsearch'));
    var testId = selfInput.data('testid');

    if (isNullOrEmpty(padding)) {
        padding = '5px;';
    }

    if (isNullOrEmpty(placeHolderText)) {
        placeHolderText = 'Enter at least 3 letters';
    }

    if (isNullOrEmpty(elId)) {
        elId = "comobox-search-input";
    }

    var text = $(`label[for="${elId}"]`).text();
    if (isNullOrEmpty(text)) {
        text = selfInput.data('title');
    }

    var url = selfInput.data('url');
    var functionName = selfInput.data('params');
    var afterFunc = selfInput.data('afterfunc');
    var entityName = selfInput.data('entityname');
    var emptySearch = toBoolean(selfInput.data('emptyseach'));
    var noItemsMsg = selfInput.data('noitemsmsg');

    var minLength = 3;

    var htmlToAdd = `<div class="combobox-container-selected"></div>`;

    htmlToAdd += `<div class="combobox-container" data-testid="combobox-container">
                          <span class='search-container' style='padding:${padding};position:relative'>
                                ` + (isVersion2 ? `` : `<button class="btn clear-${elId}Search-btn search-grid-clear-btn hide" onclick="clearInputAndTrigger('${elId}')" type="button">Clear</button>`) + `
                                    <input autocomplete="off" data-testid="search-input" class="form-control fn-search-input ${(isVersion2 ? 'search-form-v2' : '')}" id="${elId}" placeholder="${placeHolderText}" type="text"/>
                                ` + (isVersion2 ? `<a class="clear-${elId}Search-btn search-absolute-icon hide" onclick="clearInputAndTrigger('${elId}')" type="button"><i class="fa-solid fa-circle-xmark"></i></a>
                                                   <a class="clear-${elId}Search-place-btn search-absolute-icon" type="button"><i class="fa-regular fa-magnifying-glass"></i></a>` : ``) + `
                                ` + (isVersion2 ? '' : `<button class="search-icon" type="button"><span class="flaticon-search"></span></button>`) + `
                          </span>
                          <div class="combobox-items-container" data-testid="search-container"></div>`;
    /*<div class="combobox-items-container"><span class="no-items"><span>Enter at least 3 letters</span></span></div>*/
    /*<span>Enter at least 3 letters</span>*/
    htmlToAdd += `<script>$('#` + elId + `').on('input', function(){ if($(this).val().length == 0){$('.clear-${elId}Search-btn').addClass('hide');$('.clear-${elId}Search-place-btn').removeClass('hide');}else{$('.clear-${elId}Search-btn').removeClass('hide');$('.clear-${elId}Search-place-btn').addClass('hide');}
                                if($(this).val().length == 0 && ${!emptySearch}){$('.combobox-items-container').html('<span class="no-items"> </span>'); return false;}
                                else if(($(this).val().length !== 0 && $(this).val().length < ${minLength}) && ${emptySearch}){$('.combobox-items-container').html('<span class="no-items"> </span>'); return false;}
                                else if($(this).val().length < ${minLength} && ${!emptySearch}){$('.combobox-items-container').html('<span class="no-items"> </span>'); return false;}
                                createSpinner('.combobox-items-container', true, true, '', false, true);   jQuery.ajax({ url: '${url}', type: "GET", async: true, data: ${(isNullOrEmpty(functionName) ? null : functionName + '()')}, success: function (data) { createComboUlContainer(data,'${itemTemplate}','${entityName}', '${noItemsMsg}') } });
                          });$(function() {` +
        `setTimeout(function() { $('#` + elId + `').focus();}, 1000)` +
        `});</script>`;
    if (afterFunc) {
        htmlToAdd += `<script>$(function(){${afterFunc}})</script>`;
    }


    htmlToAdd += "</div>";

    if (toBoolean(appendToParent)) {
        selfInput.parent().append(htmlToAdd);
    } else {
        $('.selectlist-ul').html(htmlToAdd);
        $('.selectlist-ul').attr('data-testid', testId);
    }

    if (!isNullOrEmpty(beforeScript)) {
        window[`${beforeScript}`]();
    }

    if (!toBoolean(appendToParent)) {
        $('.selectlist-ul').addClass('show');
        $('.selectlist-ul').attr('data-timest', new Date($.now()));
        //unable to click input from admin side
        if (!$("#member-portal-body")[0]) {
            setTimeout(function () {
                $('.modal.show').addClass('hide');
                $('.modal.show').addClass('fn-modal-hide');
            }, 500);
        }

        tglMobileArray(/*addTitle*/ text, /*pageKey*/ 'selectlistpage');

        if (emptySearch) {
            clearInputAndTrigger(`${elId}`)
            $(`.clear-${elId}Search-btn`).addClass('hide');
        }
    }

    if (toBoolean(triggerInput)) {
        $(`#${elId}`).trigger('input');
    }
}

$(document).on('click', '.fn-combobox-search-parent-container', function (e) {
    showSpinnerPage();
    var selfInput = $(this).find('.combobox-search-parent-input');
    createSearchComboInput(selfInput);
});

$(document).on('click', '.fn-dynamic-container', function (e) {
    var selfInput = $(this).find('.fn-dynamic-input');
    var text = selfInput.data('title');
    var elToShow = selfInput.data('modalclass');
    var focusInputId = selfInput.data('focusel');
    var gridId = selfInput.data('gridid'); // to resize on appearing
    var hideFooter = selfInput.data('hidefooter'); // to resize on appearing
    var preventClass = selfInput.data('preventclass');
    var noModalBodyOverflow = selfInput.data('mbnooverflow');

    if (toBoolean(noModalBodyOverflow)) {
        $('.modal-body').addClass('fn-prevent-save');
        $('.modal-body').addClass('ul-overflow-hidden');
        $('.modal-body').attr('data-prevent-save', true);
    }

    var preventRedirect = false;
    if (!isNullOrEmpty(preventClass)) {
        var preventClassClicked = $(e.target).hasClass(preventClass);

        if (preventClassClicked) {
            preventRedirect = true;
        }
    }

    if (equalString(elToShow, 'dynamic-ul-open-reservation')) {
        $('.modal-title-buttons .btn-primary.btn-submit').text('Save');
    }

    if (!preventRedirect) {
        $('.fn-dynamic-page-hide').addClass('hide');

        showSpinnerPage();
        $(`.${elToShow}`).addClass('show');
        $(`.${elToShow}`).parent().addClass('fn-opened-dynamic-ul');
        $(`.${elToShow}`).attr('data-timest', new Date($.now()));
        tglMobileArray(/*addTitle*/ text, /*pageKey*/ 'selectlistpage');
        if ($('.fn-modal-mobile-scrolling-issue')[0]) {
            $('.modal-body.fn-modal-mobile-scrolling-issue').addClass('overflow-hidden');
        }

        if (!isNullOrEmpty(focusInputId)) {
            $(focusInputId).focus();
        }

        if (toBoolean(hideFooter)) {
            $('.modal-footer-container').addClass('mobile-nav-hide');
            var deviceHeight = $(window).height();
            let headerHeight = $('#mobile-header').outerHeight(true);
            let heightWithoutHeader = deviceHeight - headerHeight;
            $('.modal-body').css('maxHeight', heightWithoutHeader);
            $('.modal-body').css('minHeight', heightWithoutHeader);
        }

        if (!isNullOrEmpty(gridId)) {
            autosizeKendoGrid(`${gridId}`, /*adminSideCall*/ true, /*ignoreFooter*/ toBoolean(hideFooter));
        }
    }
});
function getNavData() {
    var historyData = Navigation.GetData();
}
$(document).on('click', '.fn-dynamic-li', function () {
    var selfInput = $(this);
    var text = selfInput.data('title');
    var elToShow = selfInput.data('modalclass');
    var elIdKey = 'selectlistpage';
    if (selfInput.data('key')) {
        elIdKey = selfInput.data('key');
    }
    var activeId = $('#mobile-header').attr('data-activeid');
    var previousSelectedIsFooter = false;

    if (activeId) {
        previousSelectedIsFooter = activeId.indexOf("footer") >= 0;
    }

    var isFooterElement = elIdKey.indexOf("footer") >= 0;
    if ($('.fn-dynamic-more .mobile-parent-ul.show')[0]) {
        mobileTitleArray = [];
        mobileTitleArray.push({ key: 'main', title: 'Dashboard' });

        $('.fn-dynamic-more .mobile-parent-ul.show').removeClass('show');
        $('.fn-dynamic-more.show').removeClass('show');
        previousSelectedIsFooter = true;
    }

    if (previousSelectedIsFooter && isFooterElement) {
        hideLastDynamicOrListPage();
        $('mobilefooter .fn-dynamic-li').removeClass('footer-selected-color');
        Navigation.RemoveOneItem();

        mobileTitleArray = jQuery.grep(mobileTitleArray, function (value) {
            return value.key != activeId;
        });

        //mobileTitleArray = mobileTitleArray[mobileTitleArray.length - 1];
        $('#mobile-header').attr('data-activeid', '');

        //tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
    }

    if (isFooterElement) {
        selfInput.addClass('footer-selected-color');
        $('#mobile-header').attr('data-activeid', elIdKey);
    }

    $(`.${elToShow}`).addClass('show');
    $(`.${elToShow}`).attr('data-timest', new Date($.now()));
    tglMobileArray(/*addTitle*/ text, /*pageKey*/ elIdKey);
});

$(document).on('click', '.increase-count', function (e) {
    var parentLi = $(this).closest('li');
    var selectedIdToADd = parentLi.attr('value');

    if (selectedIdToADd) {
        var selectElId = $('.selectlist-ul.show').attr('data-bindid');
        var $select = $(`#${selectElId}`).selectize();
        var selectize = $select[0].selectize;

        var prevSelectedIds = selectize.getValue();

        if (isNullOrEmpty(prevSelectedIds)) {
            prevSelectedIds = [];
        }

        prevSelectedIds.push(selectedIdToADd);

        var miscCount = prevSelectedIds.filter(function (itemId) {
            return equalString(itemId, selectedIdToADd);
        }).length;

        $(this).closest('li').find('.selectize-count').attr('data-count', miscCount);
        $(this).closest('li').find('.decrease-count').removeClass('disabled');
        selectize.setValue(prevSelectedIds);
    }
});

$(document).on('click', '.decrease-count', function (e) {
    var parentLi = $(this).closest('li');
    var selectedIdToRemove = parentLi.attr('value');

    if (selectedIdToRemove) {
        var selectElId = $('.selectlist-ul.show').attr('data-bindid');
        var $select = $(`#${selectElId}`).selectize();
        var selectize = $select[0].selectize;

        var prevSelectedIds = selectize.getValue();

        if (isNullOrEmpty(prevSelectedIds)) {
            prevSelectedIds = [];
        }

        var selectedItems = [];
        var removed = false;
        $.each(prevSelectedIds.reverse(), function (index, value) {
            if (value == selectedIdToRemove) {
                if (removed) {
                    selectedItems.push(value);
                } else {
                    removed = true
                }
            } else {
                selectedItems.push(value);
            }
        });

        var miscCount = selectedItems.filter(function (itemId) {
            return equalString(itemId, selectedIdToRemove);
        }).length;

        $(this).closest('li').find('.selectize-count').attr('data-count', miscCount);
        if (equalString(miscCount, 0)) {
            $(this).closest('li').find('.decrease-count').addClass('disabled');
        } else {
            $(this).closest('li').find('.decrease-count').removeClass('disabled');
        }


        selectize.setValue(selectedItems);
    }
});

$(function () {
    isMobileLayout = $('html').hasClass('mobile-html');

    if (isMobileLayout) {
        //SELECT LIST ITEM
        $(document).on('click', '.k-dropdown', function(e) {
            e.preventDefault();
        });
        fixMobileKendoInputs();
        fixDropDownScrollClickIssue(); //fixes.js

        //var parameters = [];
        //parameters.push('forceDashboard');
        //parameters.push('forceIndex');
        //removeUrlParameters(parameters);
    }

    try {
        if (window.ReactNativeWebView) {
            const message = JSON.stringify({ type: 'reactHideSplash' });
            window.ReactNativeWebView.postMessage(message);
        }
    } catch (e) { }
});

$(document).on("click", "label", function () {
    var forElId = $(this).attr('for');
    if (forElId) {
        var $el = $(`#${forElId}`);
        if ($el[0]) {
            if ($el.data('kendoMultiSelect')) {
                $el.data('kendoMultiSelect').open();
            }
            if ($el.hasClass('selectized')) {
                var selectizedItemToOpen = $el.selectize();
                if (selectizedItemToOpen) {
                    selectizedItemToOpen[0].selectize.open();
                }
            }
        }
    }
});

$(document).on('click', '.barcode-page', function () {
    if (isMobileLayout) {
        var id = 'barcodepage';
        $(`.mobile-parent-ul[data-parent-id='${id}']`).addClass('show');
        $(`.mobile-parent-ul[data-parent-id='${id}']`).attr('data-timest', new Date($.now()));
        tglMobileArray($(this).data('name'), id);
        $("#mobile-header .hamburger-container").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
        $("#mobile-header").attr("data-activeid", ""); //always need to clear, DOM cache
        $("#mobile-header").attr("data-activeid", id);
        $("#mobile-header .right-part").addClass('hide');
        $("#render-body-container").removeClass('fn-first-index');
        $("html").addClass('no-overflow');
    }
});

$(document).on('click', '.fn-mobile-modal-close', function (e) {
    if (isMobileLayout) {
        e.preventDefault();
        if ($('.selectlist-ul[data-bindid="ReservationTypeId"]').hasClass('show')) {
            var reservationTypeIdValue = $('#ReservationTypeId').val();

            if (isNullOrEmpty(reservationTypeIdValue)) {
                var resTypeLabel = $('label[for="ReservationTypeId"]').text();
                newSwalFire({
                    title: `${resTypeLabel} is required.`,
                    icon: 'info',
                    html: `﻿`,
                    showCancelButton: true,
                    showConfirmButton: false,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                }, /*cancelButtonText*/ 'Close').then((result) => {
                   
                });
                return;
            }
        }

        if ($('.dynamic-ul-open-reservation').hasClass('show')) {
            var isPrivateMatch = $('#MatchMakerIsPrivateMatch').is(':checked');
            var matchMakerJoinCode = $('#MatchMakerJoinCode').val();

            if (isPrivateMatch && isNullOrEmpty(matchMakerJoinCode)) {
                newSwalFire({
                    title: `Join Code is required.`,
                    icon: 'info',
                    html: `﻿`,
                    showCancelButton: true,
                    showConfirmButton: false,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                }, /*cancelButtonText*/ 'Close').then((result) => {

                });
                return;
            }
        }

        tglMobileArray(/*addTitle*/ null,/*pageKey*/ null,/*removeLast*/ true);
    }
});

$(document).on('click', '#guestsTable .fn-item-redirect', function (e) {
    if (isMobileLayout &&
            !$(e.target).hasClass('fa-trash-alt') && //member side
            !$(e.target).hasClass('fa-trash') && //admin side
            !$(e.target).hasClass('btn-guest-remove')) { //button wrapper

        const parentContainer = $(this).closest('.fn-guest-tr-container');
        parentContainer.addClass('show');
        parentContainer.attr('data-timest', new Date($.now()));
        const guestIndex = parentContainer.find('.guest-redirect').attr('data-guestindex');

        var firstName = $(`#ReservationGuests__${guestIndex}__FirstName`).val();
        var lastName = $(`#ReservationGuests__${guestIndex}__LastName`).val();
        var title = `Guest #${parseInt(guestIndex) + 1}`;

        if (!isNullOrEmpty(firstName) || !isNullOrEmpty(lastName)) {
            title = `${firstName} ${lastName}`;
        }

        tglMobileArray(/*addTitle*/ title, /*pageKey*/ 'selectlistpage');
    }
});

$(document).on('click', '#membersTable .fn-item-redirect', function (e) {
    if (isMobileLayout) {
        const parentContainer = $(this).closest('.fn-member-tr-container');
        parentContainer.addClass('show');
        parentContainer.attr('data-timest', new Date($.now()));
        const title = parentContainer.find('.member-redirect').attr('data-fullname');

        tglMobileArray(/*addTitle*/ title, /*pageKey*/ 'selectlistpage');
    }
});

function columnFakeTemplateFunction(indexTemplate) {
    var input = `<span style="width:200px;"><input class="guestOwnerDropDown" name="ReservationGuests[${indexTemplate}].GuestOwnerId_Fake" id="ReservationGuests__${indexTemplate}__GuestOwnerId_Fake"/></span>`;
    return input;
};

$(document).on('input', '.guest-fake-input', function () {
    var uid = $(this).attr('uid');
    var baseIdentifier = $(this).attr('baseidentifier');
    var fakeIdentifier = $(this).attr('fakeidentifier');
    var parsedInt = parseInt(uid) + 1;

    $(baseIdentifier).val($(this).val());
    $(fakeIdentifier).val($(this).val());
    $(fakeIdentifier).prop("defaultValue", $(this).val());

    var firstName = $(`.guest-fn-${uid}`).val();
    var lastName = $(`.guest-ln-${uid}`).val();

    var $el = $(`.guest-label-${uid}`);

    if (isNullOrEmpty(firstName) && isNullOrEmpty(lastName)) {
        $el.html(`Guest #${parsedInt}`);
    } else {
        $el.html(`${firstName} ${lastName}`);
    }
});

$(document).on('click', '.hamburger-container', function () {
    tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
});

$(document).on('click', '.fn-admin-hamburger-container', function () {
    if ($(this).hasClass('fn-prevent-redirect')) {

    } else {
        $('.modal-footer-container').removeClass('mobile-nav-hide');
        tglMobileArray(/*addTitle*/ null, /*pageKey*/ null, /*removeLast*/ true);
    }
});

$(document).on('click', 'i[data-toggle="tooltip"]', function (e) {
    if (isMobileLayout) {
        e.preventDefault();
    }
});

function removeFirstMobileModalFromArray() {
    mobileTitleArray = $.each(mobileTitleArray, function (idx, item) {
        if (item.key == 'modal') {
            mobileTitleArray.splice(idx, 1);
            return false;
        }
    });
}

function hideLastDynamicOrListPage(showPageTitle, showOnlyLastPage) {
    var allItems = [];
 
    $('.show').each(function (i, item) {
        var attr = $(this).attr('data-timest');
        if (attr) {
            if (typeof attr !== 'undefined' && attr !== false) {
                allItems.push(item);
            }
        }
    });

    var dates = allItems.map(function (x) {
         return new Date($(x).attr('data-timest'));
    });

    setTimeout(function() {
        $(window).trigger('resize');
    },1000);

    if (!showOnlyLastPage) {
        var maxAttr = new Date(Math.max.apply(null, dates));
        if ($(`[data-timest="${maxAttr}"]`).hasClass('modal')) {
            closeLastModalDialog(/*modalToCloseCount*/ null, /*preventMobileArrayChanges*/ true);
        } else {
            $(`[data-timest="${maxAttr}"]`).removeClass('show');
            $(`[data-timest="${maxAttr}"]`).attr('data-timest', '');
        }
    }

    if (showPageTitle) {
        setMobileTitle();
    }
}

function removeArrayLastItem() {
    if (isMobileLayout) {
        mobileTitleArray = mobileTitleArray.slice(0, -1);
        setMobileTitle();
    }
}

function setMobileTitle() {
    if (isMobileLayout) {
        var currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];
        $("#mobile-header .page-title").text(decodeHtmlTitle(currentArrayItemToShow.title));
        $("#mobile-header").attr("data-activeid", currentArrayItemToShow.key);
    }
}

$(document).on('click', '.btn-mobile-filter', function () {
    if ($('.selectlist-ul.show')[0]) {
        closeShowedFilterUl();
    }
});

function closeShowedFilterUl() {
    //remove dynamic page

    $('.selectlist-ul.show').attr('data-timest', '');
    $('.selectlist-ul.show').removeClass('show');
    removeArrayLastItem();
}

function tglMobileArray(addTitle, pageKey, removeLast) {
    if (isMobileLayout) {
        var initialMobileTitleArray = mobileTitleArray;

        var activeId = $('#mobile-header').attr('data-activeid');
        if (!isNullOrEmpty(activeId) && activeId.startsWith('react-')) {
            //override from react
            var event = new Event('reactTglMobileArray');
            document.dispatchEvent(event);
            return;
        }

        //ON TOP ALWAYS!!!!!!!!!!!!!!!!!
        if (removeLast) {
            $('.fn-time-picker-ul.show').attr('data-bindid', '');
            $('.fn-time-picker-ul.show').removeClass('fn-time-picker-ul');
        }

        if (removeLast && $('.selectlist-ul[data-bindid="ReservationTypeId"]').hasClass('show')) {
            var reservationTypeIdValue = $('#ReservationTypeId').val();

            if (isNullOrEmpty(reservationTypeIdValue)) {
                mobileTitleArray = mobileTitleArray.slice(0, -2);
                //res type selection
                hideLastDynamicOrListPage(/*showPageTitle*/ true);

                //create res modal
                hideLastDynamicOrListPage(/*showPageTitle*/ true);
                return;
            }
        }

        if (removeLast && $('.dynamic-ul-open-reservation').hasClass('show')) {
            var isPrivateMatch = $('#MatchMakerIsPrivateMatch').is(':checked');
            var matchMakerJoinCode = $('#MatchMakerJoinCode').val();

            if (isPrivateMatch && isNullOrEmpty(matchMakerJoinCode)) {
                newSwalFire({
                    title: `Join Code is required.`,
                    icon: 'info',
                    html: `﻿`,
                    showCancelButton: true,
                    showConfirmButton: false,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                }, /*cancelButtonText*/ 'Close').then((result) => {

                });
                return;
            }

            setTimeout(function () {
                $('.panel-group').removeClass('fn-opened-dynamic-ul');
            }, 500);
        }

        if (addTitle) {
            var lastArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];
            if (lastArrayItemToShow && lastArrayItemToShow.key == pageKey && lastArrayItemToShow.title == addTitle) {
                //fired multiple times
                return false;
            }
        }

        if (removeLast && $('#event-filter-modal')[0] && $('#event-filter-modal').hasClass("show")) {
            if ($('.selectlist-ul.show')[0]) {
                closeShowedFilterUl();
                return false;
            }

            $('.btn-mobile-filter').trigger("click");
            return false;
        }

        if (removeLast && $('#round-robin-filter-modal')[0] && $('#round-robin-filter-modal').hasClass("show")) {
            if ($('.selectlist-ul.show')[0]) {
                closeShowedFilterUl();
                return false;
            }

            $('.btn-mobile-filter').trigger("click");
            return false;
        }
        if (removeLast && $('#calendar-filter-modal')[0] && $('#calendar-filter-modal').hasClass("show")) {
            $('.btn-mobile-filter').trigger("click");
            return false;
        }
        if (removeLast && typeof closeLeftNav === "function" && $(".filter-nav.is-full-width")[0]) {
            // safe to use the function
            closeLeftNav();
            return false;
        }

        var currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];
        if (currentArrayItemToShow && currentArrayItemToShow.key == 'guestowner' && !removeLast) {
            return false;
        }

        var lastNavigationUrl = Navigation.GetLatestRedirect();
        if (removeLast && !isNullOrEmpty(lastNavigationUrl) && lastNavigationUrl.toLowerCase().indexOf("disclosures/pending") >= 0) {
            Cookie.Create("EventWaiverSignup", true, 1);
        }

        fixMobileKendoInputs();

        if ($('.fn-dynamic-page-redirect')[0] && $('.fn-dynamic-page-redirect').hasClass('show') && removeLast) {
            mobileTitleArray = mobileTitleArray.slice(0, -1);
            hideLastDynamicOrListPage(/*showPageTitle*/ true);
            return false;
        }

        if ($('.fn-member-tr-container')[0] && $('.fn-member-tr-container').hasClass('show') && removeLast) {
            mobileTitleArray = mobileTitleArray.slice(0, -1);
            hideLastDynamicOrListPage(/*showPageTitle*/ true);
            return false;
        }

        if ($('.modal-body')[0] && $('.modal-body').hasClass('fn-prevent-save') && removeLast) {
            var currentModalItem = mobileTitleArray[mobileTitleArray.length - 1];
            if (equalString(currentModalItem.title, 'Open Reservation')) {
                $('.modal-title-buttons .btn-primary.btn-submit').text('Confirm');
            }

            $('.modal-body').removeClass('fn-prevent-save');
            $('.modal-body').removeClass('ul-overflow-hidden');
            mobileTitleArray = mobileTitleArray.slice(0, -1);
            hideLastDynamicOrListPage(/*showPageTitle*/ true);
            return false;
        }

        if ($('.selectlist-ul2[data-bindid="guestlist"]').hasClass('show') && removeLast) {
            var isValidGuestForm = true;
            if ($('#render-body-container').hasClass('mobile-modal-v2')) {
                var notFilledGuestIndexes = [];

                $.each($('.mobile-parent-ul[data-bindid="guestlist"] .fn-guest-tr-container'), function (index, el) {
                    var currentGuestTr = $(el);

                    if ($('html').hasClass('html-modern-template')) {
                        let addGuestToDelete = false;
                        var firstName = currentGuestTr.find(`.guest-${index}-firstname`).val();
                        var lastName = currentGuestTr.find(`.guest-${index}-lastname`).val();
                        var guestOwnerId = currentGuestTr.find(`#ReservationGuests_${index}__GuestOwnerId`).val();
                        const allowGuestOwnerToBeSelected = currentGuestTr.data('allowowner');

                        if (isNullOrEmpty(firstName) && isNullOrEmpty(lastName)) {
                            if (toBoolean(allowGuestOwnerToBeSelected)) {
                                if (!$('.guest-Owner').hasClass('hide') && isNullOrEmpty(guestOwnerId)) {
                                    addGuestToDelete = true;
                                } else {
                                    addGuestToDelete = true;
                                }
                            } else {
                                addGuestToDelete = true;
                            }
                        }

                        if (!addGuestToDelete) {
                            if (isNullOrEmpty(firstName)) {
                                isValidGuestForm = false;
                                mvcMobileModal(`Validation Error`, `First Name is required for Guest #${parseInt(index)+1}`)
                                return;
                            }

                            if (isNullOrEmpty(lastName)) {
                                isValidGuestForm = false;
                                mvcMobileModal(`Validation Error`, `Last Name is required for Guest #${parseInt(index) + 1}`)
                                return;
                            }

                            if (toBoolean(allowGuestOwnerToBeSelected)) {
                                if (!$('.guest-Owner').hasClass('hide') && isNullOrEmpty(guestOwnerId)) {
                                    isValidGuestForm = false;
                                    mvcMobileModal(`Validation Error`, `Guest Owner is required for Guest #${parseInt(index) + 1}`)
                                    return;
                                }
                            }
                        }

                        if (addGuestToDelete) {
                            notFilledGuestIndexes.push(index);
                        }
                    } else {
                        var firstName = currentGuestTr.find(`.guest-${index}-firstname`).val();
                        var lastName = currentGuestTr.find(`.guest-${index}-lastname`).val();
                        var guestOwnerId = currentGuestTr.find(`#ReservationGuests_${index}__GuestOwnerId`).val();

                        if (isNullOrEmpty(firstName)) {
                            pNotifyError(`First Name is required for guest #${index + 1}`);
                            isValidGuestForm = false;
                            return false;
                        }

                        if (isNullOrEmpty(lastName)) {
                            pNotifyError(`Last Name is required for guest #${index + 1}`);
                            isValidGuestForm = false;
                            return false;
                        }

                        const allowGuestOwnerToBeSelected = currentGuestTr.data('allowowner');

                        if (toBoolean(allowGuestOwnerToBeSelected)) {
                            if (!$('.guest-Owner').hasClass('hide') && isNullOrEmpty(guestOwnerId)) {
                                pNotifyError(`Owner is required for guest #${index + 1}`);
                                isValidGuestForm = false;
                                return false;
                            }
                        }
                    }
                });

                if (notFilledGuestIndexes && notFilledGuestIndexes.length > 0) {
                    if ($('#createReservation-Form-container')[0]) {
                        //create reservation
                        guestsPartialView(/*removeGuestAtIndex*/ null, /*forceRemove*/ true, notFilledGuestIndexes);
                    } else {
                        //update reservation
                        guestsPartialView(/*removeGuestAtIndex*/ null, null, /*forceRemove*/ true, notFilledGuestIndexes);
                    }
                }
            }

            if (!isValidGuestForm) {
                return false;
            }

            $('.selectlist-ul2[data-bindid="guestlist"]').removeClass('show');
            $('.selectlist-ul').addClass('show');
            //display guests on all 3 pages
            addMobilePlayersHtml();
            fixMobileGuests();
            mobileTitleArray = mobileTitleArray.slice(0, -1);
            currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];
            $("#mobile-header .page-title").text(decodeHtmlTitle(currentArrayItemToShow.title));
            //hideLastDynamicOrListPage(/*showPageTitle*/ true);
            return false;
        }

        if ($('.fn-guest-tr-container')[0] && $('.fn-guest-tr-container').hasClass('show') && removeLast) {
            var isOwnerDDSelected = currentArrayItemToShow.key == "guestowner";
            var isUdfOpened = currentArrayItemToShow.key == "selectlistpage";
            if (!isOwnerDDSelected && !isUdfOpened) {

                showSpinnerPage();
                var identifier = $('.fn-guest-tr-container.show').data('uid');
                var firstName = $(`#ReservationGuests_${identifier}__FirstName`).val();
                var lastName = $(`#ReservationGuests_${identifier}__LastName`).val();
                var title = `Guest #${parseInt(identifier) + 1}`;

                if (!isNullOrEmpty(firstName) || !isNullOrEmpty(lastName)) {
                    title = `${firstName} ${lastName} (G)`;
                }
                $(`.guest-label-${identifier}`).text(title);
                $('.fn-guest-tr-container.show').attr('data-timest', '');
                $('.fn-guest-tr-container.show').removeClass('show');

                mobileTitleArray = mobileTitleArray.slice(0, -1);
                currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];

                $("#mobile-header .page-title").text(decodeHtmlTitle(currentArrayItemToShow.title));
                return false;
            }
        }

        var isModalClose = false;
        if (removeLast) {
            //revert hide from search players
            $('.modal.show.fn-modal-hide').removeClass('hide');
            $('.modal.show.fn-modal-hide').removeClass('fn-modal-hide');
            $('.fn-dynamic-page-hide').removeClass('hide');

            const arrayToRemove = mobileTitleArray[mobileTitleArray.length - 1];
            isModalClose = arrayToRemove.key == 'modal';

            mobileTitleArray = mobileTitleArray.slice(0, -1);
        }

        if (addTitle) {
            mobileTitleArray.push({ title: addTitle, key: pageKey });
            if (pageKey == 'main') {
                $("#render-body-container").addClass('fn-first-index');
            } else {
                $("#render-body-container").removeClass('fn-first-index');
                $('#mobile-header').attr('data-activeid', pageKey);
            }
        }

        if (!isNullOrEmpty(activeId)) {
            activeId = activeId.toLowerCase();
        }

        currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];

        if (removeLast && !isNullOrEmpty(activeId)) {
            var isFooterItemOpened = activeId.includes('footer');
            if (isFooterItemOpened) {
                hideLastDynamicOrListPage();
                checkNavigationLastItem(activeId, currentArrayItemToShow);
                hideLastDynamicOrListPage(/*showPageTitle*/true, /*showOnlyLastPage*/true);
                return false;
            }
        }

        if (removeLast && currentArrayItemToShow && currentArrayItemToShow.key == 'main' && isModalClose) {
            var lastArrayItemToShow = initialMobileTitleArray[initialMobileTitleArray.length - 1];
            if (lastArrayItemToShow && (lastArrayItemToShow.title == 'Opt-In' || lastArrayItemToShow.title == 'Opt-Out')) {
                hideLastDynamicOrListPage();
                checkNavigationLastItem(activeId, currentArrayItemToShow);
                hideLastDynamicOrListPage(/*showPageTitle*/true, /*showOnlyLastPage*/true);
                return false;
            }
        }

        if (removeLast && currentArrayItemToShow && currentArrayItemToShow.key == 'main') {
            Navigation.Back($("#member-portal-body")[0] != null ? true : false);
            return false;
        }

        //return to main page
        if ((isNullOrEmpty(currentArrayItemToShow) || isNullOrEmpty(currentArrayItemToShow.key)) && !isModalClose && removeLast) {
            $('html').addClass('mobile-redirect');
            createSpinner(/*targetIdentifier*/'#page-spinner', /*isVisible*/ true, /*fullHeight*/ true, /*additionalHtml*/ '', /*isWhite*/ true, /*addMinHeight*/ false);
            Navigation.Back();

        } else {
            //set title page
            $("#mobile-header .page-title").text(decodeHtmlTitle(currentArrayItemToShow.title));
            var checkIsLastItem = false;

            if (mobileTitleArray.length > 1) {
                $("#mobile-header .fn-navigation-wrapper").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
            }

            //close modal
            if (isModalClose) {
                $('.fn-modal-hide').removeClass('hide');
                hideLastDynamicOrListPage(/*showPageTitle*/ true);
                return false;
            }
            else if (removeLast) {
                showSpinnerPage();
                var isMenuItemsSecondLevel = activeId == 'myaccountmyeventslist' || activeId == 'myaccountmybalancelist' || activeId == 'myaccountmyclubsindex';
                if (isMenuItemsSecondLevel) {
                    checkIsLastItem = true;
                }
                else if ($('.dynamic-ul').hasClass('show') &&
                    (!$('.dynamic-ul.show').hasClass('fn-dynamic-ul-my-bookings') || activeId == 'footermybookings') &&
                    ((!$('.dynamic-ul.show').hasClass('fn-dynamic-more')  || ($('.dynamic-ul.show').hasClass('fn-dynamic-more') && (activeId == 'footermore' || activeId == 'my-account-li-web')))) ||
                    ((!$('.dynamic-ul.show').hasClass('fn-dynamic-reservations') || ($('.dynamic-ul.show').hasClass('fn-dynamic-reservations') && (activeId == 'footermyreservations' || activeId == 'my-account-li-web'))))) {
                    hideLastDynamicOrListPage();
                    $('.modal-body.fn-modal-mobile-scrolling-issue').removeClass('overflow-hidden');
                    checkIsLastItem = true;

                    if ($("#mobile-header").attr('data-type') == 'selectize') {
                        $("#mobile-header").removeAttr('data-type');
                    }
                } else {
                    $('.combobox-container').html('');

                    if ($('.selectlist-ul').hasClass('show')) {
                        if ($('.selectlist-ul2').hasClass('show')) {
                            $('.selectlist-ul2.show').html('');
                            $('.selectlist-ul2.show').attr('data-bindid', '');
                            $('.selectlist-ul2').attr('data-timest', '');
                            $('.selectlist-ul2').removeClass('show');
                        } else {
                            if ($("#mobile-header").attr('data-type') == 'selectize') {
                                var selectElId = $('.selectlist-ul.show').attr('data-bindid');
                                var $select = $(`#${selectElId}`).selectize();
                                var selectize = $select[0].selectize;
                                selectize.close();
                            }

                            $('.selectlist-ul.show').html('');
                            $('.selectlist-ul.show').attr('data-bindid', '');
                            $('.selectlist-ul').attr('data-timest', '');
                            $('.selectlist-ul').removeClass('show');
                            $("#mobile-header").removeAttr('data-type');
                            checkIsLastItem = true;
                        }
                    }
                    else {
                        checkIsLastItem = true;
                    }
                }
            }
            if (checkIsLastItem) {
                checkNavigationLastItem(activeId, currentArrayItemToShow);
            }
        }
    }
}

$(document).on('click', '.fake-modal-backdrop', function (e) {
    if ($(this).hasClass('fn-prevent-action')) {
        return false;
    }

    hideMobileBottomModal();
});

$(document).on('click', '.fn-hidefottermodal', function () {
    hideMobileBottomModal();
});

$(document).on('click', '.fn-close-mobile-bottom-modal', function () {
    hideMobileBottomModal();
});

function hideMobileBottomModal() {
    $('.mobile-bottom-modal').removeClass('show');
    $('.fake-modal-backdrop').addClass('hide');
    $('.fake-modal-backdrop').removeClass('drawer-backdrop');
    $('.fake-modal-backdrop').css('height', '100%');
    $('.fn-drawer-handle-open').removeClass('show');

    if ($('.dynamic-ul-Reservation-Payment')[0]) {
        $('.dynamic-ul-Reservation-Payment').removeClass('opened');
        $('.dynamic-ul-Reservation-Payment.mobile-bottom-modal').css('height', $('.modal-footer-container').outerHeight(true) + 20);
    }
    

    try {
        window['onFakeModalBackdropHide']();
    } catch (e) {

    }
}

function checkNavigationLastItem(activeId, currentArrayItemToShow) {
    $(`.mobile-parent-ul[data-parent-id='${activeId}']`).attr('data-timest', '');

    if (currentArrayItemToShow.key != 'footermore') {
        $('mobilefooter .fn-dynamic-li').removeClass('color-org');
    }

    $(`.mobile-parent-ul[data-parent-id='${activeId}']`).removeClass('show');
    $("#mobile-header").attr("data-activeid", ""); //always need to clear, DOM cache

    if (mobileTitleArray.length > 1) {
        $('#mobile-header').attr('data-activeid', currentArrayItemToShow.key);
    } else {
        if ($("#mobile-header").attr('data-forcedashboard')) {
            $("#mobile-header .fn-navigation-wrapper").html("<i class='fas fa-home fa-fw'></i>");
        } else {
            $("#mobile-header .fn-navigation-wrapper").html("<i class='fas fa-bars fa-fw'></i>");
        }

        $("#mobile-header .right-part").removeClass('hide');

        //TODO(IV) FIX!!!!!!!!!!!
        $(`.mobile-parent-ul[data-parent-id="myaccountbase"]`).attr('data-timest', '');

        $(`.mobile-parent-ul[data-parent-id="myaccountbase"]`).removeClass('show');

        $("#render-body-container").addClass('fn-first-index');
        $(".mobile-html").removeClass('no-overflow');
    }
}

function pushMobileArrayTitle(title, pageKey) {
    tglMobileArray(title, pageKey);
}

$(document).on("click", ".fn-mobile-redirect", function (e) {
    if ($(e.target).hasClass('prevent-redirect')) {
        e.stopPropagation();
        e.preventDefault();
        return;
    }

    var childrenCount = $(this).data("count");
    var url = $(this).data("url");
    var id = $(this).data("id");
    var thisEl = $(this);

    if (childrenCount && childrenCount > 0 && !url) {
        $(`.mobile-parent-ul[data-parent-id='${id}']`).addClass('show');
        $(`.mobile-parent-ul[data-parent-id='${id}']`).attr('data-timest', new Date($.now()));
        $("#mobile-header .page-title").text($(this).data('name'));
        $("#mobile-header .fn-navigation-wrapper").html("<i class='fa-solid fa-angle-left fa-fw'></i>");
        $("#mobile-header").attr("data-activeid", ""); //always need to clear, DOM cache
        $("#mobile-header").attr("data-activeid", id);
        $("#mobile-header .right-part").addClass('hide');
        pushMobileArrayTitle(/*title*/ $(this).data('name'), /*pageKey*/ id);
    }
    else if (url) {
        thisEl.find('.right-icon .fa-circle-notch').css('opacity', "1");
        thisEl.find('.right-icon .fa-js-spinner').css('opacity', "1");
        thisEl.find('.right-icon .fa-chevron-right').css('opacity', "0");

        setTimeout(function() {
            thisEl.find('.right-icon .fa-circle-notch').css('opacity', "0");
            thisEl.find('.right-icon .fa-js-spinner').css('opacity', "0");
            thisEl.find('.right-icon .fa-chevron-right').css('opacity', "1");
        }, 5000);

        thisEl.find('.right-container-items').html('<i class="fas fa-circle-notch rotate-animation"></i>');
        window.location.href = url;
    }
});

$(document).on('click', ".panel-heading", function(){
    if (isMobileLayout) {
        $(this).toggleClass('opened');
        var parentEl = $(this).parent('.panel-default');
        var el = parentEl.find('.panel-collapse');
        el.toggleClass('show');
    }
});

$(document).on('click', ".fn-portal-reservation-container", function (e) {
    if (isMobileLayout) {

        if (e && e.target && !$(e.target).hasClass('fn-btn-waitlist')) {
            var evnumber = $(this).data('evnumber');
            var orgid = $(this).data('orgid');

            if (evnumber) {
                var url = `/Online/Events/Details/${orgid}/${evnumber}`;
                window.location = url;
            }
        }
    }
});

$(document).on('click', ".reservation-container", function () {
    if (isMobileLayout) {
        var reservationId = $(this).data('reservationid');
        var closureId = $(this).data('closureid');
        var instructorId = $(this).data('instructorid');
        if (isNullOrEmpty(reservationId)) {
            reservationId = null;
        }

        if (isNullOrEmpty(closureId)) {
            closureId = null;
        }

        if (isNullOrEmpty(instructorId)) {
            instructorId = null;
        }

        if (reservationId || closureId) {
            var url = AdminUrl.ReservationDetailsUrl + `?reservationId=${reservationId}&closureId=${closureId}&instructorId=${instructorId}`;
            window.location = url;
        }
    }
});

$(document).on('click', '.fn-dynamic-page-redirect', function() {
    $(this).addClass('show');
    $(this).attr('data-timest', new Date($.now()));
    var title = $(this).data('modal-title');
    var id = $(this).data('modal-id');

    pushMobileArrayTitle(/*title*/ title, /*pageKey*/ id);
});

$(document).on('click', '.scheduler-header-open-time-icon', function() {
    var textToShow = $(this).data('text');
    new PNotify({
        text: textToShow,
        type: $(this).data('loaded') == true ? 'success' : 'info',
        delay: 3500,
        icon: true,
        addclass: 'pnotify-scheduler-time-msg',
    });
});

$(document).on('click', '.fn-custom-header-redirect', function () {
    var dataAttr = $(this).data('id');
    if (dataAttr) {
        $(`[data-id="${dataAttr}"]`).find('.right-icon .fa-circle-notch').css('opacity', "1");
    }
});

$(document).on('click', 'mobilefooter .fn-mobile-redirect', function (e) {
    $(this).find('.fn-icon').removeClass().addClass('rotate-animation mobile-footer-spinner').html('<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><path d="M215.1 26.3c3.6 12.7-3.7 26-16.5 29.7C111.6 80.9 48 161.1 48 256c0 114.9 93.1 208 208 208s208-93.1 208-208c0-94.9-63.6-175.1-150.6-200c-12.7-3.6-20.1-16.9-16.5-29.7s16.9-20.1 29.7-16.5C433.6 40.5 512 139.1 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 139.1 78.4 40.5 185.4 9.9c12.7-3.6 26 3.7 29.7 16.5z"></path></svg>');
    $(this).find('.fn-icon .fn-announcementsBadge').remove();
    $(this).find('.fn-push-badge-count').remove();
});

$(document).on('click', 'label[for="comobox-search-input"]', function() {
    $('#comobox-search-input').click();
});

//function debounce(func, wait) {
//    var timeout;

//    return function executedFunction() {
//        var context = this;
//        var args = arguments;

//        var later = function () {
//            timeout = null;
//            func.apply(context, args);
//        };

//        clearTimeout(timeout);
//        timeout = setTimeout(later, wait);
//    };
//};

//$(function () {
//    var initialHeight = window.innerHeight;

//    if (isMobileLayout && isAndroid()) {
//        var handleResize = debounce(function () {
//            var newHeight = window.innerHeight;
//            if (newHeight < initialHeight) {
//                $('input:focus, textarea:focus').each(function () {
//                    FlutterScrollToFocus();
//                });
//            }
//            initialHeight = newHeight;
//        }, 250);

//        $(window).resize(handleResize);
//    }
//})

var forceFirstHighlight = false;

function FlutterScrollToFocus() {
    var device = $(window).height();
    var focusedItem = $(':focus');
    var elId = focusedItem.attr('id');
    
    if (elId) {
        var labelFor = $(`label[for="${elId}"]`);

        var topFocused = labelFor.offset().top;

        var scrollTo = device - (device - topFocused + 56 + 35);

        setTimeout(function () {
            if ($('#member-portal-body')[0]) {
                $('.mobile-container').animate({ scrollTop: scrollTo }, 100);
            } else {
                $('.body-wrapper').animate({ scrollTop: scrollTo -30 }, 100);
            }
        }, 200);
    }
}

$(document).on('click', '.fn-undo-loading', function() {
    if (isMobileLayout) {
        var thisEl = $(this);

        setTimeout(function() {
            thisEl.find('.fa-circle-notch').css('opacity', 0);
        }, 1000);
    }
});

$(window).resize(function () {
    if (isMobileLayout) {
        $('.k-widget.k-grid').each(function () {
            if (!$(this).hasClass('fn-prevent-resize-grid')) {
                var kendoGridId = $(this).attr('id');

                if (kendoGridId) {
                    setTimeout(function () {
                        autosizeKendoGrid(kendoGridId, true);
                    }, 800);
                }
            }
        });
    }
});

function showSpinnerPage() {
    if (isMobileLayout) {
        $('html').addClass('fn-page-redirect-action');

        setTimeout(function () {
            $('html').removeClass('fn-page-redirect-action');
        }, 500);
    }
}

function flutterGetToken() {
    try {
        window.flutter_inappwebview.callHandler("FlutterGetToken", []);
    } catch (e) {

    }


    reactGetToken();
}

function flutterOnTokenReceive(token) {
    //token can be = 'null'!

    //alert(token);
}
function flutterSetBadgeCount(data) {
    if (isMobileLayout) {
        var count = 0;
        if (data == null || isNullOrEmpty(data.unseenPushNotificationsCount) || equalString(data.unseenPushNotificationsCount, 0)) {
            $('.fn-push-badge-count').addClass('hide');
            $('.fn-push-count').html(0);
        } else {
            $('.fn-push-badge-count').removeClass('hide');
            $('.fn-push-count').html(data.unseenPushNotificationsCount);
            count = data.unseenPushNotificationsCount;
        }

        try {
            window.flutter_inappwebview.callHandler("FlutterSetBadgeCount", [`${parseInt(count)}`]);
        } catch (e) { }

        try {
            window.addEventListener('flutterInAppWebViewPlatformReady', function (event) {
                window.flutter_inappwebview.callHandler("FlutterSetBadgeCount", [`${parseInt(count)}`]);
            });
        } catch (e) { }

        try {
            FlutterSetBadgeCount.postMessage(`${parseInt(count)}`);
        } catch (e) { }


        reactSetBadgeCount(count);

        try {
            FlutterSetBadgeCount.postMessage(`${parseInt(count)}`);
        } catch (e) { }
    }
}

function flutterUpdateBadgeCount(incValue) {
    //called when mobile recieve push notification and is with already oppend appplication
    if (!isNullOrEmpty(incValue)) {
        try {
            var unseenCount = parseInt(incValue);
            if (unseenCount > 0) {
                $('.fn-push-badge-count').removeClass('hide');
                $('.fn-push-count').html(unseenCount);
            }
        } catch (e) {

        }
    }
}

function deleteFirebaseToken(deviceId, token) {
    //const url = `/MobileSso/DeleteFirebaseToken?deviceId=${deviceId}&token=${token}`;

    //$.ajax({
    //    url: url,
    //    type: "POST",
    //    success: function (data) {

    //    }
    //});
}

function flutterSaveToken(token) {
    var args = [];
    if (!isNullOrEmpty(token)) {
        args.push(token);
        window.flutter_inappwebview.callHandler("FlutterSaveToken", args);

        window.addEventListener('flutterInAppWebViewPlatformReady', function (event) {
            window.flutter_inappwebview.callHandler("FlutterSaveToken", args);
        });
    }
}
function flutterClearToken() {
    try {
        window.flutter_inappwebview.callHandler("FlutterClearToken", []);
    } catch (e) { }

    try {
        window.addEventListener('flutterInAppWebViewPlatformReady', function (event) {
            window.flutter_inappwebview.callHandler("FlutterClearToken", []);
        });
    } catch (e) { }


    reactClearToken();
}


function updateMobileStatusBar(style) {
    reactUpdateMobileStatusBar(style);
}

$(document).on('click', '#organizersTable .fn-item-redirect', function (e) {
    if (isMobileLayout) {
        const parentContainer = $(this).closest('.fn-member-tr-container');
        parentContainer.addClass('show');
        parentContainer.attr('data-timest', new Date($.now()));
        const title = parentContainer.find('.member-redirect').attr('data-fullname');

        tglMobileArray(/*addTitle*/ title, /*pageKey*/ 'selectlistpage');
    }
});

function clearMobilePushNotificationUrl() {
    if (isMobileLayout) {
        try {
            window.addEventListener('flutterInAppWebViewPlatformReady', function (event) {
                window.flutter_inappwebview.callHandler("SetPushNotificationUrlNull", []);
            });
        } catch (e) { }
    }
}

function initMobileFireBase() {    
    if (isMobileLayout) {
        try {
            window.addEventListener('flutterInAppWebViewPlatformReady', function (event) {
                window.flutter_inappwebview.callHandler("FlutterInitFirebase", []);
            });
        } catch (e) { }    


        reactInitFireBase();
    }
}

let startY;
let drawer = '';

$(document).on('touchstart', '.fn-drawer-handle-open', function (e) {
    drawer = $(e.target).closest('.mobile-bottom-modal');
    startY = e.touches[0].clientY;
});

$(document).on('touchmove', '.fn-drawer-handle-open', function (e) {
    //drawer = $(e.target).closest('.mobile-bottom-modal');
    //startY = e.touches[0].clientY;
});

$(document).on('touchend', '.fn-drawer-handle-open', function (e) {
    var windowHeight = $(window).height();

    if (e.changedTouches[0].clientY < startY) {
        $(this).addClass('show');
        var bodyHeight = $('.mobile-drawer-open-body').outerHeight() + 50;
        $('.mobile-drawer-open-body').css('margin-bottom', $('.modal-footer-container').outerHeight(true))
        var maxHeight = $(window).height() / 2;
        if (bodyHeight > maxHeight) {
            bodyHeight = maxHeight;
        }

        $(e.target).closest('.mobile-bottom-modal').css('height', $('.modal-footer-container').outerHeight(true) + bodyHeight);
        $('.fake-modal-backdrop').removeClass('hide');
        $('.fake-modal-backdrop').addClass('drawer-backdrop');
        $('.fake-modal-backdrop').css('height', windowHeight - $('.dynamic-ul-Reservation-Payment').outerHeight());
        $('.dynamic-ul-Reservation-Payment').addClass('opened');
    } else {
        $('.fake-modal-backdrop').addClass('hide');
        $('.fake-modal-backdrop').removeClass('drawer-backdrop');
        $('.fake-modal-backdrop').css('height', '100%');
        $(this).removeClass('show');
        $(e.target).closest('.mobile-bottom-modal').css('height', $('.modal-footer-container').outerHeight(true) + 20);
        $('.dynamic-ul-Reservation-Payment').removeClass('opened');
        $('.drawer-handle').removeClass('show');
        $('.mobile-drawer-open-body').css('margin-bottom', '')
    }

    //var windowHeight = $(window).height();
    //console.log(e.changedTouches[0].clientY);
    //var dividedStartY = windowHeight - startY;
    //dividedStartY = dividedStartY - 20;  //(dividedStartY / 4) + dividedStartY
    //if (dividedStartY > e.changedTouches[0].clientY) {
    //    $('.fake-modal-backdrop').addClass('hide');
    //    $(drawer).removeClass('show');

    //    setTimeout(function () {
    //        $(drawer).css('height', '');
    //    }, 1000);
    //} else {
    //    $(drawer).css('height', '');
    //}
});

$(document).on('touchstart', '.drawer-handle', function (e) {
    if (!$(this).hasClass('fn-drawer-handle-open')) {
        drawer = $(e.target).closest('.mobile-bottom-modal');
        startY = e.touches[0].clientY;
    }
});

$(document).on('touchmove', '.drawer-handle', function (e) {
    if (!$(this).hasClass('fn-drawer-handle-open')) {
        const deltaY = e.touches[0].clientY - startY;
        if (deltaY > 0) {
            $(drawer).css('height', window.innerHeight - e.touches[0].clientY);
        }
    }
});

$(document).on('touchend', '.drawer-handle', function (e) {
    if (!$(this).hasClass('fn-drawer-handle-open')) {
        var windowHeight = $(window).height();

        var dividedStartY = windowHeight - startY;
        dividedStartY = dividedStartY - 10;  //(dividedStartY / 4) + dividedStartY
        if (dividedStartY < e.changedTouches[0].clientY) {
            $('.fake-modal-backdrop').addClass('hide');
            $('.fake-modal-backdrop').removeClass('drawer-backdrop');
            $(drawer).removeClass('show');

            setTimeout(function () {
                $(drawer).css('height', '');
            }, 1000);
        } else {
            $(drawer).css('height', '');
        }
    }
});

jQuery.fn.fastClick = function (handler) {
    return this.each(function () {
        var $this = jQuery(this);

        $this.on('touchstart click', function (event) {
            event.stopPropagation();
            event.preventDefault();

            if (event.handled !== true) {
                handler.apply(this, arguments);
                event.handled = true;
            } else {
                return false;
            }
        });
    });
};

function setMobileTitleName(title) {

    if (isMobileLayout) {
        var decodedTitle = uDecode(title);
        if (!isNullOrEmpty(decodedTitle)) {
            $('#mobile-header .left-part .page-title').html(decodedTitle);
            $('.topnav-menu .page-title').html(decodedTitle);

            //need to change current item name from nav state
            var currentArrayItemToShow = mobileTitleArray[mobileTitleArray.length - 1];

            if (!isNullOrEmpty(currentArrayItemToShow)) {
                currentArrayItemToShow.title = decodedTitle;
            }
        } 
    }
}

$(document).on('click', '.fn-add-guest-btn', function (e) {
    e.preventDefault();
    var currentVal = $('#SelectedNumberOfGuests').val();

    try {
        let currentInvalue = parseInt(currentVal);
        if (isNullOrEmpty(currentInvalue)) {
            currentInvalue = 0;
        }

        if (currentInvalue === 0 && $('.guest-number-chip[data-value="1"]')[0]) {
            var guestsDropdownList = $("#SelectedNumberOfGuests").data("kendoDropDownList");
            guestsDropdownList.select(1);

            $('.guest-number-chip[data-value="1"]').click();
            $("#SelectedNumberOfGuests").data("kendoDropDownList").trigger('change');
        }

    } catch (e) {

    }

    var text = $(this).data('title');
    var blockToShow = $(this).data('modalclass');

    var pageKey = "selectlistpage";
    var elPageKey = 'guestlist';
    var $ulContainer = $('.selectlist-ul2');


    if ($('ul[data-bindid="guestlist"] .guest-number-of-guest-wrapper')[0]) {

    } else {
        $ulContainer.html($(`.${blockToShow}`).html());
        //$('ul[data-bindid="guestlist"] #SelectedNumberOfGuests').data('kendoDropDownList').value(currentVal);

        //try {
        //    intializeGuestOwnerDropDowns();
        //} catch (e) { } 
    }
    
    $ulContainer.attr('data-bindid', elPageKey);
    $("#mobile-header").attr("data-activeid", elPageKey);

    $ulContainer.addClass('show');
    $ulContainer.attr('data-timest', new Date($.now()));
    tglMobileArray(/*addTitle*/ text, /*pageKey*/ pageKey);

    var addFooterButtons = $(this).data('addfooter');
    setTimeout(function () {
        if (toBoolean(addFooterButtons)) {
            addCustomUlMobileFooter($ulContainer);
        }
    }, 500);
});

function addCustomUlMobileFooter($ulContainer) {
    var bodyContainer = $ulContainer.find('.fn-dynamic-ul-body');
    if (bodyContainer.length) {
        var deviceHeight = calculateDeviceHeight();
        var topPosition = bodyContainer.position().top;
        var footerHeight = $('mobilefooter').outerHeight();
        var maxHeight = deviceHeight - $('#mobile-header').outerHeight(true) - topPosition - footerHeight;

        try {
            //mobileBottomPaddingToExlude = getMobileDeviceExludeHeight(/*onlyTop*/ false, /*onlyBottom*/ true);
            //maxHeight = maxHeight - mobileBottomPaddingToExlude;
        } catch (e) { }

        bodyContainer.css('max-height', maxHeight + 'px');
        bodyContainer.css('overflow-y', 'auto');

        if (!$ulContainer.find('.ul-footer-container').length) {
            bodyContainer.after(`
            <div class="ul-footer-container modal-footer-shadow">
                <div class="modal-title-buttons f-gap-12 btn-no-margins">
                    <button type="button" class="btn btn-primary btn-v2-green w-100 fn-mobile-modal-close" data-testid="saveBtn">Save</button>
                </div>
            </div>
        `);
        }
    }
}

function fixMobileGuests() {
    $.each($('ul[data-bindid="guestlist"] .fn-guest-tr-container'), function (index, el) {
        var currentGuestIndex = $(el).attr('data-uid');
        var firstName = $(`ul[data-bindid="guestlist"] .guest-${currentGuestIndex}-firstname`).val();
        var lastName = $(`ul[data-bindid="guestlist"] .guest-${currentGuestIndex}-lastname`).val();
        var phoneNumber = $(`ul[data-bindid="guestlist"] .guest-pn-${currentGuestIndex}`).val();

        $(`.guest-${currentGuestIndex}-firstname`).val(firstName)
        $(`.guest-${currentGuestIndex}-lastname`).val(lastName)
        $(`.guest-pn-${currentGuestIndex}`).val(phoneNumber)

        var fullName = ``;
        if (!isNullOrEmpty(firstName)) {
            fullName += firstName;
        }

        if (!isNullOrEmpty(lastName)) {
            fullName += ` ${lastName}`;
        }

        if (isNullOrEmpty(fullName)) {
            fullName = `Guest #${parseInt(currentGuestIndex) + 1}`;
        }

        $(`.guest-label-${currentGuestIndex}`).html(fullName);
    });
}

$(document).on('input', 'ul[data-bindid="guestlist"] .fn-change-input', function() {
    var classToChange = $(this).attr('data-classchange');
    if (classToChange) {
        $(`.${classToChange}`).val($(this).val());

        fixMobileGuests();
    }
});

var miscCostsData = null;
function displayMiscItems(data, loadFromVariable) {
    if (isMobileLayout) {
        var container = $('.misc-items-html');
        container.html('');

        var htmlToAdd = '';
        var anyItems = false;

        $('ul[data-bindid="ReservationMiscFees"] .li-misc-price').remove();

        if (loadFromVariable) {
            data = miscCostsData;
        } else {
            miscCostsData = data;
        }

        var isModernVersion22 = $('html').hasClass('modal-v22');
        let totalCount = 0; 

        if (!isNullOrEmpty(data) && !isNullOrEmpty(data.miscCosts)) {
            $.each(data.miscCosts, function (index, el) {
                var elCount = el.Count;
                if (elCount && parseInt(elCount) > 0) {
                    totalCount = parseInt(elCount) + totalCount;

                    if (el.Cost > 0) {
                        //$(`<span class='li-misc-price'><span class='price-chip'>${el.DisplayCost}</span></span>`).insertBefore(`li[value="${el.MiscItemId}"] .decrease-count`);
                    }

                    anyItems = true;
                    if (isModernVersion22) {
                        htmlToAdd += `<li class='mob-misc-item pr-0'>
                        <span class='mob-misc-value'>
                            <span class='misc-name'>${el.Name} <div class='misc-count'>x ${el.Count}</div></span>  
                            <button class='btn remove-misc-btn-v2 link-color' type='button'><i class='fa-regular fa-minus red'> </i></button>
                        </span>
                    </li>`;
                    } else {
                        htmlToAdd += `<li class='mob-misc-item'>
                            <span class='mob-misc-value'><span class='misc-name'>(${el.Count}) ${el.Name}</span></span>
                        </li>`;
                    }



                    //htmlToAdd += `<li class='mob-misc-item'>
                    //    <span class='mob-misc-value'><span class='misc-name'>(${el.Count}) ${el.Name}</span>${el.Cost > 0 ? `<span class='misc-item-cost'>${el.DisplayItemCost}</span>` : ``}</span>
                    //    ${el.Cost > 0 ? `<span class='price-chip'>${el.DisplayCost}</span>` : ``}
                    //</li>`;
                }
            });
        }


        if (anyItems) {
            container.html(`<ul class='misc-items-html-ul'>${htmlToAdd}</ul>`);
            $('.fn-misc-items').html('Edit Miscellaneous Items');
            $('.fn-add-miscitems-label').html('Edit Items');
        } else {
            container.html(``);
            $('.fn-misc-items').html('Add Miscellaneous Items');
            $('.fn-add-miscitems-label').html('Add Items');
        }

        let htmlLabelCountHtml = totalCount > 0 ? `<span class='misc-items-count'>(${totalCount})</span>` : '';
        $('.fn-misc-items-label').html(`Miscellaneous Items ${htmlLabelCountHtml}`)
    }
}

function onDatePickerOpen(e) {
    if (isMobileLayout) {
        $('.fake-modal-backdrop').addClass('drawer-backdrop');
        $('.fake-modal-backdrop').removeClass('hide');
        $('.fake-modal-backdrop').addClass('fn-prevent-action');

        //check if has class custom-mob-datepicker and if has, then do not initialize again
        if (e.sender.dateView.popup.wrapper.closest('.k-animation-container').hasClass('custom-mob-datepicker')) {
            return;
        }

        var dateView = e.sender.dateView;
        setTimeout(function () {
            $('.fake-modal-backdrop').addClass('drawer-backdrop');
            $('.fake-modal-backdrop').removeClass('hide');
            $('.fake-modal-backdrop').addClass('fn-prevent-action');
            let allowClose = false;

            dateView.popup.wrapper.closest('.k-animation-container').addClass('custom-mob-datepicker');

            // Remove existing footer
            dateView.popup.wrapper.find('.k-footer').remove();

            // Find the k-calendar widget within the popup wrapper
            var calendarWidget = dateView.popup.wrapper.find('.k-widget.k-calendar.k-calendar-md');

            // Remove existing footer, if any
            calendarWidget.find('.custom-footer').remove();

            // Add custom footer
            var footer = $('<div class="custom-footer"><button type="button" class="btn btn-shadow btn-white-color w-100 text-center">Confirm</button></div>');
            calendarWidget.append(footer);  // Append custom footer inside k-calendar widget

            footer.find('button').on('click', function () {
                allowClose = true;

                dateView.close();

                $('.fake-modal-backdrop').addClass('hide');
                $('.fake-modal-backdrop').removeClass('drawer-backdrop')
                $('.fake-modal-backdrop').removeClass('fn-prevent-action');
                allowClose = false;
            });

            // Set popup width to full available width of parent container

            var deviceWidth = $(window).outerWidth();

            dateView.popup.wrapper.closest('.k-animation-container').css('width', deviceWidth - 15 - 25);
            dateView.popup.wrapper.find('.k-calendar-container').css('width', '100%');

            // Prevent closing on outside click
            dateView.popup.bind("close", function (e) {
                if (!allowClose) {
                    e.preventDefault();
                }
            });
        }, 0);
    }
}

$(document).on('click', 'button[data-dismiss="modal"]', function () {
    removeSelectedMobileItems();
});

$(".modal").on("hidden.bs.modal", function () {
    removeSelectedMobileItems();
});

$(document).on('click', '.modern-dashboard-block-header-link a', function () {
    $(this).after('<i class="fas fa-circle-notch rotate-animation" style="color: #435C74;"></i>');
})

function initSlickSliderById(elementId) {
    var $element = $('#' + elementId);
    var transformCount = 0;

    $element.off('init beforeChange');

    $element.on('init', function () {
        var dots = $(this).find('ul.slick-dots li');
        if (dots.length > 5) {
            $(this).find('ul.slick-dots').wrap("<div class='slick-dots-container'></div>");
            $(this).trigger('beforeChange', [null, null, 0, 0]);
        }
    });

    $element.on('beforeChange', function (event, slick, currentSlide, nextSlide) {
        var dots = $(this).find('ul.slick-dots li');
        transformCount = 0;

        if (dots.length > 5) {
            if (nextSlide >= 5) {
                // Slide the dots over one position for every slide past the 5th
                transformCount = -20 * (nextSlide - 4);

                if (transformCount % 10 == 0) {

                } else {
                    transformCount = transformCount - 5;
                }

                if (transformCount  < -40) {
                    transformCount = -40;
                }
            }
            else if (nextSlide < 3) {
                if (nextSlide == 2) {
                    transformCount = 20;
                } else {
                    transformCount = 40;
                }
            }

            var isOddNumber = dots.length % 2 === 1;
            if (isOddNumber) {

            } else {
                if (nextSlide >= (dots.length - 5) && nextSlide <= dots.length) {
                    if (nextSlide == 1) {
                        transformCount = transformCount - 30;
                    } else {
                        transformCount = transformCount - 10;
                    }
                } else {
                    if (nextSlide == 0) {
                        transformCount = transformCount - 30;
                    } else {
                        transformCount = transformCount - 40;
                    }
                }
            }

            $(this).find('ul.slick-dots').css('transform', 'translateX(' + transformCount + 'px)');
        }
    });

    $element.slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        dots: true,
        focusOnSelect: true,
        infinite: false,
        accessibility: false
    });
}

document.addEventListener('click', function (event) {
    // Check if the clicked element has the class 'card' or is inside a 'card'
    if (event.target.closest('.fn-click-effect')) {
        // Create the effect element
        var effect = document.createElement('div');
        var circleWidth = 50;
        effect.className = 'click-shadow-effect';

        effect.style.width = effect.style.height = `${circleWidth}px`; // Size of the effect
        effect.style.left = event.pageX - (circleWidth / 2) + 'px'; // Center the effect on the cursor
        effect.style.top = event.pageY - (circleWidth / 2) + 'px'; // Center the effect on the cursor

        document.body.appendChild(effect);
        setTimeout(function () {
            document.body.removeChild(effect);
        }, 600);
    }
});

$(document).on('click', ".fn-mobile-action", function () {
    if ($(this).data("typeemail") == true) {
        var email = $(this).data("email");
        var showOnSwalT = true;
        if (isValidEmail(email)) {
            if (window.ReactNativeWebView) {
                reactSendMail(email);
            }
            else if (showOnSwalT) {
                try {
                    window.flutter_inappwebview.callHandler("FlutterLaunchMail", [`${email}`]);
                } catch (e) { }
            }
            else {
                document.location.href = 'mailto:' + email;
            }
        }
    }

    if ($(this).data("typephone") == true) {
        var phoneNumber = $(this).data("phone");
        if (!isNullOrEmpty(phoneNumber)) {
            if (isAndroid() && isMobileLayout) {
                if (window.ReactNativeWebView) {
                    reactCallPhone(phoneNumber);
                } else {
                    try {
                        window.flutter_inappwebview.callHandler("FlutterLaunchTel", [`${phoneNumber}`]);
                    } catch (e) { }
                }
            } else {
                document.location.href = 'tel:' + phoneNumber;
            }
        }
    }
});

var currentFooterContainerTopPossition = null;

function getLastOpenedCustomPage() {
    let latestCustomPage = null;
    let latestTime = new Date(0);

    if ($('.dynamic-ul').hasClass('show')) {
        if ($('.dynamic-ul[data-timest].show').length > 0) {
            $('.dynamic-ul[data-timest].show').each(function () {
                var modalTime = new Date($(this).attr('data-timest'));

                if (modalTime > latestTime) {
                    latestCustomPage = $(this);
                    latestTime = modalTime;
                }
            });
        }
    }

    return latestCustomPage;
}

$(function () {
    if (typeof FlutterNewLogin !== "undefined" && isMobile) {
        if (toBoolean(isIOS)) {

            setTimeout(function () {
                $('input').on('focus', function () {
                    this.scrollIntoView({ behavior: 'smooth', block: 'center' });
                });
            }, 100)
        }
    }
})

function isElementInViewport(el, keyboardHeight) {
    const rect = el.getBoundingClientRect();
    let heightResized = (window.innerHeight || document.documentElement.clientHeight);
    heightResized = heightResized - keyboardHeight;

    reactConsoleLog('ViewPort: ' + heightResized);
    return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= heightResized &&
        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
}

var iosInputFocusing = false;
window.onReactNativeKeyboardShow = function (isIOS, keyboardHeight) {
    reactConsoleLog('onReactNativeKeyboardShow');

    if (toBoolean(isIOS)) {
        mobileKeyboardHeight = keyboardHeight;
    }

    //custom actions
    const event = new CustomEvent('onReactNativeKeyboardShowCustom', { detail: { isIOS: isIOS, keyboardHeight: keyboardHeight } });
    window.dispatchEvent(event);
    setTimeout(function () {
        //need time to setup scrolling before change
        mobileKeyboardOpened = true;
    }, 1000);

    if (toBoolean(isIOS)) {
        var isButtonExists = false;
        var footerButtonHeight = 0;
        var extraDefaultPadding = 40;

        if ($('.footer-container')[0]) {
            isButtonExists = true;
            footerButtonHeight = $('.footer-container').outerHeight();
        }

        if ($('.fn-no-extra')[0]) {
            extraDefaultPadding = 40;
        } else {
            extraDefaultPadding = 10;
        }

        //if (isButtonExists && $('.footer-container').hasClass('fn-current-top')) {
        //    currentFooterContainerTopPossition = $('.footer-container.fn-current-top').css('top');
        //}

        var maxHeight = $(window).height() - keyboardHeight - 40 - footerButtonHeight;
        $('.mobile-container').css('max-height', maxHeight);
        $('.mobile-html #wrapper').css('height', maxHeight);

        $('.keyboard-resizer').css('max-height', maxHeight - 40);
        $('.keyboard-resizer').css('min-height', maxHeight - 40);
        $('.keyboard-resizer').css('overflow', 'auto');
        reactConsoleLog('Max-Height' + maxHeight);

        //if (isButtonExists) {
        //    var buttonBottomPossition = $(window).height() - keyboardHeight - 50;
        //    $('.footer-container').css('top', buttonBottomPossition);
        //}

        if ($('.fn-react-page')[0]) {
            //do nothing
        } else {
            var isGuestPage = $('.selectlist-ul2[data-bindid="guestlist"]').hasClass('show');
            let latestCustomPage = getLastOpenedCustomPage();
            const headerMobileToExludeCustom = $('#mobile-header').outerHeight();
            var heightToShow = calculateDeviceHeight(/*onlyTop*/ true, /*onlyBottom*/ false) - keyboardHeight - headerMobileToExludeCustom;

            if (isGuestPage) {
                $('.selectlist-ul2[data-bindid="guestlist"] .fn-dynamic-ul-body').addClass('scollable-card-body');
                $('.selectlist-ul2[data-bindid="guestlist"] .fn-dynamic-ul-body').css('height', heightToShow);
            }
            else if (latestCustomPage) {

                if (latestCustomPage.hasClass('dynamic-ul-open-reservation')) {
                    $('.dynamic-ul-open-reservation .card-body').addClass('scollable-card-body');
                    $('.dynamic-ul-open-reservation .card-body').css('height', heightToShow);
                }
                else {
                    $(latestCustomPage).css('height', heightToShow);
                }

                if (!iosInputFocusing) {
                    iosInputFocusing = true;
                    const focusedElement = document.activeElement;
                    if (!isElementInViewport(focusedElement, keyboardHeight)) {
                        focusedElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
                    }

                    setTimeout(function () {
                        //prevent double scrolling
                        iosInputFocusing = false;
                    }, 1000);
                }


            } else {
                try {
                    if (!iosInputFocusing) {
                        iosInputFocusing = true;

                        const focusedElement = document.activeElement;
                        if (!isElementInViewport(focusedElement, keyboardHeight)) {
                            focusedElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
                        }

                        setTimeout(function () {
                            //prevent double scrolling
                            iosInputFocusing = false;
                        }, 1000);
                    }
                } catch (e) { }
            }
        }
    }
};

window.onReactNativeKeyboardHide = function (isIOS) {
    if (toBoolean(isIOS)) {
        mobileKeyboardHeight = 0;
    }

    const event = new CustomEvent('onReactNativeKeyboardHideCustom', { detail: { isIOS: isIOS } });
    window.dispatchEvent(event);
    reactConsoleLog('onReactNativeKeyboardHide');

    setTimeout(function () {
        //need time to setup scrolling before change
        mobileKeyboardOpened = false;
    }, 100);

    const headerMobileToExludeCustom = $('#mobile-header').outerHeight();
    var isGuestPage = $('.selectlist-ul2[data-bindid="guestlist"]').hasClass('show');
    var heightToShow = calculateDeviceHeight(/*onlyTop*/ true, /*onlyBottom*/ false) - headerMobileToExludeCustom;
    let latestCustomPage = getLastOpenedCustomPage();

    if (isGuestPage) {
        $('.selectlist-ul2[data-bindid="guestlist"] .fn-dynamic-ul-body').removeClass('scollable-card-body');
        $('.selectlist-ul2[data-bindid="guestlist"] .fn-dynamic-ul-body').css('height', '');
    }
    else if (latestCustomPage) {
        if (latestCustomPage.hasClass('dynamic-ul-open-reservation')) {
            $('.dynamic-ul-open-reservation .card-body').removeClass('scollable-card-body');
            $('.dynamic-ul-open-reservation .card-body').css('height', '');
        } else {
            $(latestCustomPage).css('height', heightToShow);
        }
    }

    $('.mobile-container').css('max-height', '100vh');
    $('.mobile-html #wrapper').css('height', '100%');

    if (isIOS) {
        var footerButtonHeight = 0;
        var extraDefaultPadding = 40;

        if ($('.footer-container')[0]) {
            footerButtonHeight = $('.footer-container').outerHeight();
        }

        var maxHeight = $(window).height() - 40 - footerButtonHeight;

        $('.keyboard-resizer').css('max-height', '');
        $('.keyboard-resizer').css('min-height', '');
        $('.keyboard-resizer').css('overflow', 'initial');
    }

    //if (isNullOrEmpty(currentFooterContainerTopPossition)) {
    //    $('.footer-container').css('top', '');
    //    $('.fn-absolute-footer-button').css('top', '');
    //} else {
    //    $('.footer-container').css('top', currentFooterContainerTopPossition);
    //    $('.fn-absolute-footer-button').css('top', currentFooterContainerTopPossition);
    //}
};

window.flutterDeleteMobileToken = function (tokKey, tokIdKey) {
    const tokenModel = {
        TokenKey: tokKey,
        TokenIdKey: tokIdKey
    };

    $.ajax({
        url: deleteMobileTokenUrl,
        type: "POST",
        data: tokenModel,
        success: function (data) {

        }
    });
}

$(window).on('message', function (event) {
    if (event.originalEvent.data === 'mobileNavigateBack') {
        if ($('.fn-starter-page')[0] || $('.fn-react-back')[0]) {

        } else {
            tglMobileArray(null, null, true);
        }
    }
});;
