/* Minification failed. Returning unminified contents.
(13114,11-12): run-time error JS1005: Expected '(': {
(13116,1-2): run-time error JS1006: Expected ')': }
(13116,1-2): run-time error JS1008: Expected '{': }
(13350,1): run-time error JS1009: Expected '}'
(13350,1): run-time error JS1107: Expecting more source characters
(13098,1-36): run-time error JS1301: End of file encountered before function is properly closed: function updateSliders(rs, val, st)
(13350,1): run-time error JS1107: Expecting more source characters
(565,527-534): run-time error JS1019: Can't have 'break' outside of loop: break a
(556,379-386): run-time error JS1019: Can't have 'break' outside of loop: break a
(552,719-726): run-time error JS1019: Can't have 'break' outside of loop: break a
(374,207-214): run-time error JS1019: Can't have 'break' outside of loop: break a
(287,405-412): run-time error JS1019: Can't have 'break' outside of loop: break a
(234,271-278): run-time error JS1019: Can't have 'break' outside of loop: break a
(133,71-78): run-time error JS1019: Can't have 'break' outside of loop: break a
(64,262-269): run-time error JS1019: Can't have 'break' outside of loop: break a
(58,218-225): run-time error JS1019: Can't have 'break' outside of loop: break a
(48,340-347): run-time error JS1019: Can't have 'break' outside of loop: break a
(47,256-263): run-time error JS1019: Can't have 'break' outside of loop: break a
(16,1347-1354): run-time error JS1019: Can't have 'break' outside of loop: break a
 */
/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
;
var firebase = null; (function() { var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},k="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,l=function(){l=function(){};k.Symbol||(k.Symbol=ba)},ca=0,ba=function(a){return"jscomp_symbol_"+(a||"")+ca++},n=function(){l();var a=k.Symbol.iterator;a||(a=k.Symbol.iterator=
k.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return m(this)}});n=function(){}},m=function(a){var b=0;return da(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})},da=function(a){n();a={next:a};a[k.Symbol.iterator]=function(){return this};return a},q=this,r=function(){},t=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);
if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},v=function(a){return"function"==t(a)},ea=function(a,
b,c){return a.call.apply(a.bind,arguments)},fa=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},w=function(a,b,c){w=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ea:fa;return w.apply(null,arguments)},x=function(a,b){var c=Array.prototype.slice.call(arguments,
1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},y=function(a,b){function c(){}c.prototype=b.prototype;a.ha=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,h){for(var e=Array(arguments.length-2),d=2;d<arguments.length;d++)e[d-2]=arguments[d];return b.prototype[c].apply(a,e)}};var A;A="undefined"!==typeof window?window:"undefined"!==typeof self?self:global;
var __extends=function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},__assign=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++){b=arguments[c];for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e])}return a},__rest=function(a,b){var c={},d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"===typeof Object.getOwnPropertySymbols){var e=
0;for(d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&(c[d[e]]=a[d[e]])}return c},__decorate=function(a,b,c,d){var e=arguments.length,h=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;g=A.Reflect;if("object"===typeof g&&"function"===typeof g.decorate)h=g.decorate(a,b,c,d);else for(var f=a.length-1;0<=f;f--)if(g=a[f])h=(3>e?g(h):3<e?g(b,c,h):g(b,c))||h;return 3<e&&h&&Object.defineProperty(b,c,h),h},__metadata=function(a,b){var c=A.Reflect;if("object"===typeof c&&"function"===
typeof c.metadata)return c.metadata(a,b)},__param=function(a,b){return function(c,d){b(c,d,a)}},__awaiter=function(a,b,c,d){return new (c||(c=Promise))(function(e,h){function g(a){try{p(d.next(a))}catch(u){h(u)}}function f(a){try{p(d["throw"](a))}catch(u){h(u)}}function p(a){a.done?e(a.value):(new c(function(b){b(a.value)})).then(g,f)}p((d=d.apply(a,b)).next())})},__generator=function(a,b){function c(a){return function(b){return d([a,b])}}function d(c){if(h)throw new TypeError("Generator is already executing.");
for(;e;)try{if(h=1,g&&(f=g[c[0]&2?"return":c[0]?"throw":"next"])&&!(f=f.call(g,c[1])).done)return f;if(g=0,f)c=[0,f.value];switch(c[0]){case 0:case 1:f=c;break;case 4:return e.label++,{value:c[1],done:!1};case 5:e.label++;g=c[1];c=[0];continue;case 7:c=e.G.pop();e.I.pop();continue;default:if(!(f=e.I,f=0<f.length&&f[f.length-1])&&(6===c[0]||2===c[0])){e=0;continue}if(3===c[0]&&(!f||c[1]>f[0]&&c[1]<f[3]))e.label=c[1];else if(6===c[0]&&e.label<f[1])e.label=f[1],f=c;else if(f&&e.label<f[2])e.label=f[2],
e.G.push(c);else{f[2]&&e.G.pop();e.I.pop();continue}}c=b.call(a,e)}catch(z){c=[6,z],g=0}finally{h=f=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}var e={label:0,ga:function(){if(f[0]&1)throw f[1];return f[1]},I:[],G:[]},h,g,f;return{next:c(0),"throw":c(1),"return":c(2)}};
"undefined"!==typeof A.S&&A.S||(A.__extends=__extends,A.__assign=__assign,A.__rest=__rest,A.__extends=__extends,A.__decorate=__decorate,A.__metadata=__metadata,A.__param=__param,A.__awaiter=__awaiter,A.__generator=__generator);var B=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,B);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};y(B,Error);B.prototype.name="CustomError";var ga=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};var C=function(a,b){b.unshift(a);B.call(this,ga.apply(null,b));b.shift()};y(C,B);C.prototype.name="AssertionError";var ha=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),h=d;else a&&(e+=": "+a,h=b);throw new C(""+e,h||[]);},D=function(a,b,c){a||ha("",null,b,Array.prototype.slice.call(arguments,2))},E=function(a,b,c){v(a)||ha("Expected function but got %s: %s.",[t(a),a],b,Array.prototype.slice.call(arguments,2))};var F=function(a,b,c){this.Y=c;this.T=a;this.Z=b;this.s=0;this.o=null};F.prototype.get=function(){var a;0<this.s?(this.s--,a=this.o,this.o=a.next,a.next=null):a=this.T();return a};F.prototype.put=function(a){this.Z(a);this.s<this.Y&&(this.s++,a.next=this.o,this.o=a)};var G;a:{var ia=q.navigator;if(ia){var ja=ia.userAgent;if(ja){G=ja;break a}}G=""};var ka=function(a){q.setTimeout(function(){throw a;},0)},H,la=function(){var a=q.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==G.indexOf("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+
"//"+b.location.host,a=w(function(a){if(("*"==d||a.origin==d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&-1==G.indexOf("Trident")&&-1==G.indexOf("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.J;c.J=null;a()}};return function(a){d.next={J:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
document.createElement("SCRIPT")?function(a){var b=document.createElement("SCRIPT");b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){q.setTimeout(a,0)}};var I=function(){this.v=this.g=null},ma=new F(function(){return new J},function(a){a.reset()},100);I.prototype.add=function(a,b){var c=ma.get();c.set(a,b);this.v?this.v.next=c:(D(!this.g),this.g=c);this.v=c};I.prototype.remove=function(){var a=null;this.g&&(a=this.g,this.g=this.g.next,this.g||(this.v=null),a.next=null);return a};var J=function(){this.next=this.scope=this.B=null};J.prototype.set=function(a,b){this.B=a;this.scope=b;this.next=null};
J.prototype.reset=function(){this.next=this.scope=this.B=null};var M=function(a,b){K||na();L||(K(),L=!0);oa.add(a,b)},K,na=function(){if(-1!=String(q.Promise).indexOf("[native code]")){var a=q.Promise.resolve(void 0);K=function(){a.then(pa)}}else K=function(){var a=pa;!v(q.setImmediate)||q.Window&&q.Window.prototype&&-1==G.indexOf("Edge")&&q.Window.prototype.setImmediate==q.setImmediate?(H||(H=la()),H(a)):q.setImmediate(a)}},L=!1,oa=new I,pa=function(){for(var a;a=oa.remove();){try{a.B.call(a.scope)}catch(b){ka(b)}ma.put(a)}L=!1};var O=function(a,b){this.b=0;this.R=void 0;this.j=this.h=this.u=null;this.m=this.A=!1;if(a!=r)try{var c=this;a.call(b,function(a){N(c,2,a)},function(a){try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(e){}N(c,3,a)})}catch(d){N(this,3,d)}},qa=function(){this.next=this.context=this.i=this.f=this.child=null;this.w=!1};qa.prototype.reset=function(){this.context=this.i=this.f=this.child=null;this.w=!1};
var ra=new F(function(){return new qa},function(a){a.reset()},100),sa=function(a,b,c){var d=ra.get();d.f=a;d.i=b;d.context=c;return d},ua=function(a,b,c){ta(a,b,c,null)||M(x(b,a))};O.prototype.then=function(a,b,c){null!=a&&E(a,"opt_onFulfilled should be a function.");null!=b&&E(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return va(this,v(a)?a:null,v(b)?b:null,c)};O.prototype.then=O.prototype.then;O.prototype.$goog_Thenable=!0;
O.prototype.ba=function(a,b){return va(this,null,a,b)};var xa=function(a,b){a.h||2!=a.b&&3!=a.b||wa(a);D(null!=b.f);a.j?a.j.next=b:a.h=b;a.j=b},va=function(a,b,c,d){var e=sa(null,null,null);e.child=new O(function(a,g){e.f=b?function(c){try{var e=b.call(d,c);a(e)}catch(z){g(z)}}:a;e.i=c?function(b){try{var e=c.call(d,b);a(e)}catch(z){g(z)}}:g});e.child.u=a;xa(a,e);return e.child};O.prototype.da=function(a){D(1==this.b);this.b=0;N(this,2,a)};
O.prototype.ea=function(a){D(1==this.b);this.b=0;N(this,3,a)};
var N=function(a,b,c){0==a.b&&(a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself")),a.b=1,ta(c,a.da,a.ea,a)||(a.R=c,a.b=b,a.u=null,wa(a),3!=b||ya(a,c)))},ta=function(a,b,c,d){if(a instanceof O)return null!=b&&E(b,"opt_onFulfilled should be a function."),null!=c&&E(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),xa(a,sa(b||r,c||null,d)),!0;var e;if(a)try{e=!!a.$goog_Thenable}catch(g){e=!1}else e=!1;if(e)return a.then(b,c,d),
!0;e=typeof a;if("object"==e&&null!=a||"function"==e)try{var h=a.then;if(v(h))return za(a,h,b,c,d),!0}catch(g){return c.call(d,g),!0}return!1},za=function(a,b,c,d,e){var h=!1,g=function(a){h||(h=!0,c.call(e,a))},f=function(a){h||(h=!0,d.call(e,a))};try{b.call(a,g,f)}catch(p){f(p)}},wa=function(a){a.A||(a.A=!0,M(a.V,a))},Aa=function(a){var b=null;a.h&&(b=a.h,a.h=b.next,b.next=null);a.h||(a.j=null);null!=b&&D(null!=b.f);return b};
O.prototype.V=function(){for(var a;a=Aa(this);){var b=this.b,c=this.R;if(3==b&&a.i&&!a.w){var d;for(d=this;d&&d.m;d=d.u)d.m=!1}if(a.child)a.child.u=null,Ba(a,b,c);else try{a.w?a.f.call(a.context):Ba(a,b,c)}catch(e){Ca.call(null,e)}ra.put(a)}this.A=!1};var Ba=function(a,b,c){2==b?a.f.call(a.context,c):a.i&&a.i.call(a.context,c)},ya=function(a,b){a.m=!0;M(function(){a.m&&Ca.call(null,b)})},Ca=ka;function P(a,b){if(!(b instanceof Object))return b;switch(b.constructor){case Date:return new Date(b.getTime());case Object:void 0===a&&(a={});break;case Array:a=[];break;default:return b}for(var c in b)b.hasOwnProperty(c)&&(a[c]=P(a[c],b[c]));return a};O.all=function(a){return new O(function(b,c){var d=a.length,e=[];if(d)for(var h=function(a,c){d--;e[a]=c;0==d&&b(e)},g=function(a){c(a)},f=0,p;f<a.length;f++)p=a[f],ua(p,x(h,f),g);else b(e)})};O.resolve=function(a){if(a instanceof O)return a;var b=new O(r);N(b,2,a);return b};O.reject=function(a){return new O(function(b,c){c(a)})};O.prototype["catch"]=O.prototype.ba;var Q=O;"undefined"!==typeof Promise&&(Q=Promise);var Da=Q;function Ea(a,b){a=new R(a,b);return a.subscribe.bind(a)}var R=function(a,b){var c=this;this.a=[];this.P=0;this.task=Da.resolve();this.l=!1;this.F=b;this.task.then(function(){a(c)}).catch(function(a){c.error(a)})};R.prototype.next=function(a){S(this,function(b){b.next(a)})};R.prototype.error=function(a){S(this,function(b){b.error(a)});this.close(a)};R.prototype.complete=function(){S(this,function(a){a.complete()});this.close()};
R.prototype.subscribe=function(a,b,c){var d=this,e;if(void 0===a&&void 0===b&&void 0===c)throw Error("Missing Observer.");e=Fa(a)?a:{next:a,error:b,complete:c};void 0===e.next&&(e.next=T);void 0===e.error&&(e.error=T);void 0===e.complete&&(e.complete=T);a=this.fa.bind(this,this.a.length);this.l&&this.task.then(function(){try{d.K?e.error(d.K):e.complete()}catch(h){}});this.a.push(e);return a};
R.prototype.fa=function(a){void 0!==this.a&&void 0!==this.a[a]&&(delete this.a[a],--this.P,0===this.P&&void 0!==this.F&&this.F(this))};var S=function(a,b){if(!a.l)for(var c=0;c<a.a.length;c++)Ga(a,c,b)},Ga=function(a,b,c){a.task.then(function(){if(void 0!==a.a&&void 0!==a.a[b])try{c(a.a[b])}catch(d){"undefined"!==typeof console&&console.error&&console.error(d)}})};R.prototype.close=function(a){var b=this;this.l||(this.l=!0,void 0!==a&&(this.K=a),this.task.then(function(){b.a=void 0;b.F=void 0}))};
function Fa(a){if("object"!==typeof a||null===a)return!1;var b;b=["next","error","complete"];n();var c=b[Symbol.iterator];b=c?c.call(b):m(b);for(c=b.next();!c.done;c=b.next())if(c=c.value,c in a&&"function"===typeof a[c])return!0;return!1}function T(){};var Ha=Error.captureStackTrace,V=function(a,b){this.code=a;this.message=b;if(Ha)Ha(this,U.prototype.create);else{var c=Error.apply(this,arguments);this.name="FirebaseError";Object.defineProperty(this,"stack",{get:function(){return c.stack}})}};V.prototype=Object.create(Error.prototype);V.prototype.constructor=V;V.prototype.name="FirebaseError";var U=function(a,b,c){this.$=a;this.aa=b;this.U=c;this.pattern=/\{\$([^}]+)}/g};
U.prototype.create=function(a,b){void 0===b&&(b={});var c=this.U[a];a=this.$+"/"+a;var c=void 0===c?"Error":c.replace(this.pattern,function(a,c){a=b[c];return void 0!==a?a.toString():"<"+c+"?>"}),c=this.aa+": "+c+" ("+a+").",c=new V(a,c),d;for(d in b)b.hasOwnProperty(d)&&"_"!==d.slice(-1)&&(c[d]=b[d]);return c};var W=Q,X=function(a,b,c){var d=this;this.M=c;this.N=!1;this.c={};this.D=b;this.H=P(void 0,a);a="serviceAccount"in this.H;("credential"in this.H||a)&&"undefined"!==typeof console&&console.log("The '"+(a?"serviceAccount":"credential")+"' property specified in the first argument to initializeApp() is deprecated and will be removed in the next major version. You should instead use the 'firebase-admin' package. See https://firebase.google.com/docs/admin/setup for details on how to get started.");Object.keys(c.INTERNAL.factories).forEach(function(a){var b=
c.INTERNAL.useAsService(d,a);null!==b&&(b=d.X.bind(d,b),d[a]=b)})};X.prototype.delete=function(){var a=this;return(new W(function(b){Y(a);b()})).then(function(){a.M.INTERNAL.removeApp(a.D);var b=[];Object.keys(a.c).forEach(function(c){Object.keys(a.c[c]).forEach(function(d){b.push(a.c[c][d])})});return W.all(b.map(function(a){return a.INTERNAL.delete()}))}).then(function(){a.N=!0;a.c={}})};
X.prototype.X=function(a,b){Y(this);"undefined"===typeof this.c[a]&&(this.c[a]={});var c=b||"[DEFAULT]";return"undefined"===typeof this.c[a][c]?(b=this.M.INTERNAL.factories[a](this,this.W.bind(this),b),this.c[a][c]=b):this.c[a][c]};X.prototype.W=function(a){P(this,a)};var Y=function(a){a.N&&Z("app-deleted",{name:a.D})};k.Object.defineProperties(X.prototype,{name:{configurable:!0,enumerable:!0,get:function(){Y(this);return this.D}},options:{configurable:!0,enumerable:!0,get:function(){Y(this);return this.H}}});
X.prototype.name&&X.prototype.options||X.prototype.delete||console.log("dc");
function Ia(){function a(a){a=a||"[DEFAULT]";var b=d[a];void 0===b&&Z("no-app",{name:a});return b}function b(a,b){Object.keys(e).forEach(function(d){d=c(a,d);if(null!==d&&h[d])h[d](b,a)})}function c(a,b){if("serverAuth"===b)return null;var c=b;a=a.options;"auth"===b&&(a.serviceAccount||a.credential)&&(c="serverAuth","serverAuth"in e||Z("sa-not-supported"));return c}var d={},e={},h={},g={__esModule:!0,initializeApp:function(a,c){void 0===c?c="[DEFAULT]":"string"===typeof c&&""!==c||Z("bad-app-name",
{name:c+""});void 0!==d[c]&&Z("duplicate-app",{name:c});a=new X(a,c,g);d[c]=a;b(a,"create");void 0!=a.INTERNAL&&void 0!=a.INTERNAL.getToken||P(a,{INTERNAL:{getUid:function(){return null},getToken:function(){return W.resolve(null)},addAuthTokenListener:function(){},removeAuthTokenListener:function(){}}});return a},app:a,apps:null,Promise:W,SDK_VERSION:"0.0.0",INTERNAL:{registerService:function(b,c,d,u){e[b]&&Z("duplicate-service",{name:b});e[b]=c;u&&(h[b]=u);c=function(c){void 0===c&&(c=a());return c[b]()};
void 0!==d&&P(c,d);return g[b]=c},createFirebaseNamespace:Ia,extendNamespace:function(a){P(g,a)},createSubscribe:Ea,ErrorFactory:U,removeApp:function(a){b(d[a],"delete");delete d[a]},factories:e,useAsService:c,Promise:O,deepExtend:P}};g["default"]=g;Object.defineProperty(g,"apps",{get:function(){return Object.keys(d).map(function(a){return d[a]})}});a.App=X;return g}function Z(a,b){throw Ja.create(a,b);}
var Ja=new U("app","Firebase",{"no-app":"No Firebase App '{$name}' has been created - call Firebase App.initializeApp()","bad-app-name":"Illegal App name: '{$name}","duplicate-app":"Firebase App named '{$name}' already exists","app-deleted":"Firebase App named '{$name}' already deleted","duplicate-service":"Firebase service named '{$name}' already registered","sa-not-supported":"Initializing the Firebase SDK with a service account is only allowed in a Node.js environment. On client devices, you should instead initialize the SDK with an api key and auth domain"});"undefined"!==typeof firebase&&(firebase=Ia()); }).call(this);
firebase.SDK_VERSION = "3.7.1";
(function(){var h,aa=aa||{},l=this,ba=function(){},m=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&
!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},ca=function(a){return null===a},da=function(a){return"array"==m(a)},ea=function(a){var b=m(a);return"array"==b||"object"==b&&"number"==typeof a.length},p=function(a){return"string"==typeof a},fa=function(a){return"number"==typeof a},q=function(a){return"function"==m(a)},ga=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},ha=function(a,b,
c){return a.call.apply(a.bind,arguments)},ia=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},r=function(a,b,c){r=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ha:ia;return r.apply(null,arguments)},ja=function(a,b){var c=Array.prototype.slice.call(arguments,
1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},ka=Date.now||function(){return+new Date},t=function(a,b){function c(){}c.prototype=b.prototype;a.pd=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.Hf=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var u=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,u);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};t(u,Error);u.prototype.name="CustomError";var la=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")},ma=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},na=/&/g,oa=/</g,pa=/>/g,qa=/"/g,ra=/'/g,sa=/\x00/g,ta=/[\x00&<>"']/,v=function(a,b){return-1!=a.indexOf(b)},ua=function(a,b){return a<b?-1:a>b?1:0};var va=function(a,b){b.unshift(a);u.call(this,la.apply(null,b));b.shift()};t(va,u);va.prototype.name="AssertionError";
var wa=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new va(""+e,f||[]);},w=function(a,b,c){a||wa("",null,b,Array.prototype.slice.call(arguments,2))},xa=function(a,b){throw new va("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));},ya=function(a,b,c){fa(a)||wa("Expected number but got %s: %s.",[m(a),a],b,Array.prototype.slice.call(arguments,2));return a},za=function(a,b,c){p(a)||wa("Expected string but got %s: %s.",[m(a),a],b,Array.prototype.slice.call(arguments,
2))},Aa=function(a,b,c){q(a)||wa("Expected function but got %s: %s.",[m(a),a],b,Array.prototype.slice.call(arguments,2))};var Ba=Array.prototype.indexOf?function(a,b,c){w(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(p(a))return p(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},x=Array.prototype.forEach?function(a,b,c){w(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=p(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},Ca=function(a,b){for(var c=p(a)?
a.split(""):a,d=a.length-1;0<=d;--d)d in c&&b.call(void 0,c[d],d,a)},Da=Array.prototype.map?function(a,b,c){w(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=p(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e},Ea=Array.prototype.some?function(a,b,c){w(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=p(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1},
Ga=function(a){var b;a:{b=Fa;for(var c=a.length,d=p(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:p(a)?a.charAt(b):a[b]},Ha=function(a,b){return 0<=Ba(a,b)},Ja=function(a,b){b=Ba(a,b);var c;(c=0<=b)&&Ia(a,b);return c},Ia=function(a,b){w(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length},Ka=function(a,b){var c=0;Ca(a,function(d,e){b.call(void 0,d,e,a)&&Ia(a,e)&&c++})},La=function(a){return Array.prototype.concat.apply([],arguments)},
Ma=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};var Na=function(a,b){for(var c in a)b.call(void 0,a[c],c,a)},Oa=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b},Pa=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b},Qa=function(a){for(var b in a)return!1;return!0},Ra=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(c in b)if(!(c in a))return!1;return!0},Sa=function(a){var b={},c;for(c in a)b[c]=a[c];return b},Ta="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),
Ua=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<Ta.length;f++)c=Ta[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};var Va;a:{var Wa=l.navigator;if(Wa){var Ya=Wa.userAgent;if(Ya){Va=Ya;break a}}Va=""}var y=function(a){return v(Va,a)};var Za=function(a){Za[" "](a);return a};Za[" "]=ba;var ab=function(a,b){var c=$a;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var bb=y("Opera"),z=y("Trident")||y("MSIE"),cb=y("Edge"),db=cb||z,eb=y("Gecko")&&!(v(Va.toLowerCase(),"webkit")&&!y("Edge"))&&!(y("Trident")||y("MSIE"))&&!y("Edge"),fb=v(Va.toLowerCase(),"webkit")&&!y("Edge"),gb=function(){var a=l.document;return a?a.documentMode:void 0},hb;
a:{var ib="",jb=function(){var a=Va;if(eb)return/rv\:([^\);]+)(\)|;)/.exec(a);if(cb)return/Edge\/([\d\.]+)/.exec(a);if(z)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(fb)return/WebKit\/(\S+)/.exec(a);if(bb)return/(?:Version)[ \/]?(\S+)/.exec(a)}();jb&&(ib=jb?jb[1]:"");if(z){var kb=gb();if(null!=kb&&kb>parseFloat(ib)){hb=String(kb);break a}}hb=ib}
var lb=hb,$a={},B=function(a){return ab(a,function(){for(var b=0,c=ma(String(lb)).split("."),d=ma(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||"",k=d[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];k=/(\d*)(\D*)(.*)/.exec(k)||["","","",""];if(0==g[0].length&&0==k[0].length)break;b=ua(0==g[1].length?0:parseInt(g[1],10),0==k[1].length?0:parseInt(k[1],10))||ua(0==g[2].length,0==k[2].length)||ua(g[2],k[2]);g=g[3];k=k[3]}while(0==b)}return 0<=b})},mb;var nb=l.document;
mb=nb&&z?gb()||("CSS1Compat"==nb.compatMode?parseInt(lb,10):5):void 0;var ob=function(a){return Da(a,function(a){a=a.toString(16);return 1<a.length?a:"0"+a}).join("")};var pb=null,qb=null,sb=function(a){var b="";rb(a,function(a){b+=String.fromCharCode(a)});return b},rb=function(a,b){function c(b){for(;d<a.length;){var c=a.charAt(d++),e=qb[c];if(null!=e)return e;if(!/^[\s\xa0]*$/.test(c))throw Error("Unknown base64 encoding at char: "+c);}return b}tb();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),k=c(64);if(64===k&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=k&&b(g<<6&192|k))}},tb=function(){if(!pb){pb={};qb={};for(var a=0;65>a;a++)pb[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a),
qb[pb[a]]=a,62<=a&&(qb["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(a)]=a)}};var ub=function(){this.za=-1};var xb=function(a,b){this.za=64;this.Wb=l.Uint8Array?new Uint8Array(this.za):Array(this.za);this.Ac=this.$a=0;this.h=[];this.Ze=a;this.Ld=b;this.Af=l.Int32Array?new Int32Array(64):Array(64);void 0!==vb||(vb=l.Int32Array?new Int32Array(wb):wb);this.reset()},vb;t(xb,ub);for(var yb=[],zb=0;63>zb;zb++)yb[zb]=0;var Ab=La(128,yb);xb.prototype.reset=function(){this.Ac=this.$a=0;this.h=l.Int32Array?new Int32Array(this.Ld):Ma(this.Ld)};
var Bb=function(a){var b=a.Wb;w(b.length==a.za);for(var c=a.Af,d=0,e=0;e<b.length;)c[d++]=b[e]<<24|b[e+1]<<16|b[e+2]<<8|b[e+3],e=4*d;for(b=16;64>b;b++){var e=c[b-15]|0,d=c[b-2]|0,f=(c[b-16]|0)+((e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3)|0,g=(c[b-7]|0)+((d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10)|0;c[b]=f+g|0}for(var d=a.h[0]|0,e=a.h[1]|0,k=a.h[2]|0,n=a.h[3]|0,A=a.h[4]|0,Xa=a.h[5]|0,Gb=a.h[6]|0,f=a.h[7]|0,b=0;64>b;b++)var gh=((d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10))+(d&e^d&k^e&k)|0,g=A&Xa^~A&Gb,f=f+((A>>>6|
A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))|0,g=g+(vb[b]|0)|0,g=f+(g+(c[b]|0)|0)|0,f=Gb,Gb=Xa,Xa=A,A=n+g|0,n=k,k=e,e=d,d=g+gh|0;a.h[0]=a.h[0]+d|0;a.h[1]=a.h[1]+e|0;a.h[2]=a.h[2]+k|0;a.h[3]=a.h[3]+n|0;a.h[4]=a.h[4]+A|0;a.h[5]=a.h[5]+Xa|0;a.h[6]=a.h[6]+Gb|0;a.h[7]=a.h[7]+f|0};
xb.prototype.update=function(a,b){void 0===b&&(b=a.length);var c=0,d=this.$a;if(p(a))for(;c<b;)this.Wb[d++]=a.charCodeAt(c++),d==this.za&&(Bb(this),d=0);else if(ea(a))for(;c<b;){var e=a[c++];if(!("number"==typeof e&&0<=e&&255>=e&&e==(e|0)))throw Error("message must be a byte array");this.Wb[d++]=e;d==this.za&&(Bb(this),d=0)}else throw Error("message must be string or array");this.$a=d;this.Ac+=b};
xb.prototype.digest=function(){var a=[],b=8*this.Ac;56>this.$a?this.update(Ab,56-this.$a):this.update(Ab,this.za-(this.$a-56));for(var c=63;56<=c;c--)this.Wb[c]=b&255,b/=256;Bb(this);for(c=b=0;c<this.Ze;c++)for(var d=24;0<=d;d-=8)a[b++]=this.h[c]>>d&255;return a};
var wb=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,
4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var Db=function(){xb.call(this,8,Cb)};t(Db,xb);var Cb=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];var Eb=!z||9<=Number(mb),Fb=z&&!B("9");!fb||B("528");eb&&B("1.9b")||z&&B("8")||bb&&B("9.5")||fb&&B("528");eb&&!B("8")||z&&B("9");var Hb=function(){this.Ba=this.Ba;this.nc=this.nc};Hb.prototype.Ba=!1;Hb.prototype.isDisposed=function(){return this.Ba};Hb.prototype.Wa=function(){if(this.nc)for(;this.nc.length;)this.nc.shift()()};var Ib=function(a,b){this.type=a;this.currentTarget=this.target=b;this.defaultPrevented=this.gb=!1;this.Wd=!0};Ib.prototype.preventDefault=function(){this.defaultPrevented=!0;this.Wd=!1};var Jb=function(a,b){Ib.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.Xa=this.state=null;a&&this.init(a,b)};t(Jb,Ib);
Jb.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=b;if(b=a.relatedTarget){if(eb){var e;a:{try{Za(b.nodeName);e=!0;break a}catch(f){}e=!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;null===d?(this.offsetX=fb||void 0!==a.offsetX?a.offsetX:a.layerX,this.offsetY=fb||void 0!==a.offsetY?a.offsetY:a.layerY,this.clientX=void 0!==a.clientX?a.clientX:
a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0):(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.state=a.state;this.Xa=
a;a.defaultPrevented&&this.preventDefault()};Jb.prototype.preventDefault=function(){Jb.pd.preventDefault.call(this);var a=this.Xa;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Fb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};Jb.prototype.Ee=function(){return this.Xa};var Kb="closure_listenable_"+(1E6*Math.random()|0),Lb=0;var Mb=function(a,b,c,d,e){this.listener=a;this.rc=null;this.src=b;this.type=c;this.capture=!!d;this.dc=e;this.key=++Lb;this.lb=this.Vb=!1},Nb=function(a){a.lb=!0;a.listener=null;a.rc=null;a.src=null;a.dc=null};var Ob=function(a){this.src=a;this.D={};this.Rb=0};Ob.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.D[f];a||(a=this.D[f]=[],this.Rb++);var g=Pb(a,b,d,e);-1<g?(b=a[g],c||(b.Vb=!1)):(b=new Mb(b,this.src,f,!!d,e),b.Vb=c,a.push(b));return b};Ob.prototype.remove=function(a,b,c,d){a=a.toString();if(!(a in this.D))return!1;var e=this.D[a];b=Pb(e,b,c,d);return-1<b?(Nb(e[b]),Ia(e,b),0==e.length&&(delete this.D[a],this.Rb--),!0):!1};
var Qb=function(a,b){var c=b.type;c in a.D&&Ja(a.D[c],b)&&(Nb(b),0==a.D[c].length&&(delete a.D[c],a.Rb--))};Ob.prototype.Oc=function(a,b,c,d){a=this.D[a.toString()];var e=-1;a&&(e=Pb(a,b,c,d));return-1<e?a[e]:null};var Pb=function(a,b,c,d){for(var e=0;e<a.length;++e){var f=a[e];if(!f.lb&&f.listener==b&&f.capture==!!c&&f.dc==d)return e}return-1};var Rb="closure_lm_"+(1E6*Math.random()|0),Sb={},Tb=0,Ub=function(a,b,c,d,e){if(da(b))for(var f=0;f<b.length;f++)Ub(a,b[f],c,d,e);else c=Vb(c),a&&a[Kb]?a.listen(b,c,d,e):Wb(a,b,c,!1,d,e)},Wb=function(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=!!e,k=Xb(a);k||(a[Rb]=k=new Ob(a));c=k.add(b,c,d,e,f);if(!c.rc){d=Yb();c.rc=d;d.src=a;d.listener=c;if(a.addEventListener)a.addEventListener(b.toString(),d,g);else if(a.attachEvent)a.attachEvent(Zb(b.toString()),d);else throw Error("addEventListener and attachEvent are unavailable.");
Tb++}},Yb=function(){var a=$b,b=Eb?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b},ac=function(a,b,c,d,e){if(da(b))for(var f=0;f<b.length;f++)ac(a,b[f],c,d,e);else c=Vb(c),a&&a[Kb]?bc(a,b,c,d,e):Wb(a,b,c,!0,d,e)},cc=function(a,b,c,d,e){if(da(b))for(var f=0;f<b.length;f++)cc(a,b[f],c,d,e);else c=Vb(c),a&&a[Kb]?a.aa.remove(String(b),c,d,e):a&&(a=Xb(a))&&(b=a.Oc(b,c,!!d,e))&&dc(b)},dc=function(a){if(!fa(a)&&a&&!a.lb){var b=a.src;if(b&&
b[Kb])Qb(b.aa,a);else{var c=a.type,d=a.rc;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent&&b.detachEvent(Zb(c),d);Tb--;(c=Xb(b))?(Qb(c,a),0==c.Rb&&(c.src=null,b[Rb]=null)):Nb(a)}}},Zb=function(a){return a in Sb?Sb[a]:Sb[a]="on"+a},fc=function(a,b,c,d){var e=!0;if(a=Xb(a))if(b=a.D[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.lb&&(f=ec(f,d),e=e&&!1!==f)}return e},ec=function(a,b){var c=a.listener,d=a.dc||a.src;a.Vb&&dc(a);return c.call(d,
b)},$b=function(a,b){if(a.lb)return!0;if(!Eb){if(!b)a:{b=["window","event"];for(var c=l,d;d=b.shift();)if(null!=c[d])c=c[d];else{b=null;break a}b=c}d=b;b=new Jb(d,this);c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.currentTarget;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;!b.gb&&0<=e;e--){b.currentTarget=d[e];var f=fc(d[e],a,!0,b),c=c&&f}for(e=0;!b.gb&&e<d.length;e++)b.currentTarget=
d[e],f=fc(d[e],a,!1,b),c=c&&f}return c}return ec(a,new Jb(b,this))},Xb=function(a){a=a[Rb];return a instanceof Ob?a:null},gc="__closure_events_fn_"+(1E9*Math.random()>>>0),Vb=function(a){w(a,"Listener can not be null.");if(q(a))return a;w(a.handleEvent,"An object listener must have handleEvent method.");a[gc]||(a[gc]=function(b){return a.handleEvent(b)});return a[gc]};var hc=/^[+a-zA-Z0-9_.!#$%&'*\/=?^`{|}~-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,63}$/;var jc=function(){this.xc="";this.me=ic};jc.prototype.hc=!0;jc.prototype.bc=function(){return this.xc};jc.prototype.toString=function(){return"Const{"+this.xc+"}"};var kc=function(a){if(a instanceof jc&&a.constructor===jc&&a.me===ic)return a.xc;xa("expected object of type Const, got '"+a+"'");return"type_error:Const"},ic={},lc=function(a){var b=new jc;b.xc=a;return b};lc("");var nc=function(){this.qc="";this.ne=mc};nc.prototype.hc=!0;nc.prototype.bc=function(){return this.qc};nc.prototype.toString=function(){return"TrustedResourceUrl{"+this.qc+"}"};var mc={};var pc=function(){this.ma="";this.le=oc};pc.prototype.hc=!0;pc.prototype.bc=function(){return this.ma};pc.prototype.toString=function(){return"SafeUrl{"+this.ma+"}"};
var qc=function(a){if(a instanceof pc&&a.constructor===pc&&a.le===oc)return a.ma;xa("expected object of type SafeUrl, got '"+a+"' of type "+m(a));return"type_error:SafeUrl"},rc=/^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i,tc=function(a){if(a instanceof pc)return a;a=a.hc?a.bc():String(a);rc.test(a)||(a="about:invalid#zClosurez");return sc(a)},oc={},sc=function(a){var b=new pc;b.ma=a;return b};sc("about:blank");var vc=function(){this.ma="";this.ke=uc};vc.prototype.hc=!0;vc.prototype.bc=function(){return this.ma};vc.prototype.toString=function(){return"SafeHtml{"+this.ma+"}"};var wc=function(a){if(a instanceof vc&&a.constructor===vc&&a.ke===uc)return a.ma;xa("expected object of type SafeHtml, got '"+a+"' of type "+m(a));return"type_error:SafeHtml"},uc={};vc.prototype.Pe=function(a){this.ma=a;return this};var xc="StopIteration"in l?l.StopIteration:{message:"StopIteration",stack:""},yc=function(){};yc.prototype.next=function(){throw xc;};yc.prototype.oe=function(){return this};var zc=function(a,b){this.ba={};this.w=[];this.sb=this.o=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&this.addAll(a)};zc.prototype.X=function(){Ac(this);for(var a=[],b=0;b<this.w.length;b++)a.push(this.ba[this.w[b]]);return a};zc.prototype.ka=function(){Ac(this);return this.w.concat()};zc.prototype.ub=function(a){return Bc(this.ba,a)};
zc.prototype.remove=function(a){return Bc(this.ba,a)?(delete this.ba[a],this.o--,this.sb++,this.w.length>2*this.o&&Ac(this),!0):!1};var Ac=function(a){if(a.o!=a.w.length){for(var b=0,c=0;b<a.w.length;){var d=a.w[b];Bc(a.ba,d)&&(a.w[c++]=d);b++}a.w.length=c}if(a.o!=a.w.length){for(var e={},c=b=0;b<a.w.length;)d=a.w[b],Bc(e,d)||(a.w[c++]=d,e[d]=1),b++;a.w.length=c}};h=zc.prototype;h.get=function(a,b){return Bc(this.ba,a)?this.ba[a]:b};
h.set=function(a,b){Bc(this.ba,a)||(this.o++,this.w.push(a),this.sb++);this.ba[a]=b};h.addAll=function(a){var b;a instanceof zc?(b=a.ka(),a=a.X()):(b=Pa(a),a=Oa(a));for(var c=0;c<b.length;c++)this.set(b[c],a[c])};h.forEach=function(a,b){for(var c=this.ka(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};h.clone=function(){return new zc(this)};
h.oe=function(a){Ac(this);var b=0,c=this.sb,d=this,e=new yc;e.next=function(){if(c!=d.sb)throw Error("The map has changed since the iterator was created");if(b>=d.w.length)throw xc;var e=d.w[b++];return a?e:d.ba[e]};return e};var Bc=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var Cc=function(a){if(a.X&&"function"==typeof a.X)return a.X();if(p(a))return a.split("");if(ea(a)){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}return Oa(a)},Dc=function(a){if(a.ka&&"function"==typeof a.ka)return a.ka();if(!a.X||"function"!=typeof a.X){if(ea(a)||p(a)){var b=[];a=a.length;for(var c=0;c<a;c++)b.push(c);return b}return Pa(a)}},Ec=function(a,b){if(a.forEach&&"function"==typeof a.forEach)a.forEach(b,void 0);else if(ea(a)||p(a))x(a,b,void 0);else for(var c=Dc(a),d=Cc(a),e=
d.length,f=0;f<e;f++)b.call(void 0,d[f],c&&c[f],a)};var Fc=function(a,b,c,d,e){this.reset(a,b,c,d,e)};Fc.prototype.Cd=null;var Gc=0;Fc.prototype.reset=function(a,b,c,d,e){"number"==typeof e||Gc++;d||ka();this.Bb=a;this.We=b;delete this.Cd};Fc.prototype.$d=function(a){this.Bb=a};var Hc=function(a){this.Xe=a;this.Id=this.Jc=this.Bb=this.s=null},Ic=function(a,b){this.name=a;this.value=b};Ic.prototype.toString=function(){return this.name};var Jc=new Ic("SEVERE",1E3),Kc=new Ic("CONFIG",700),Lc=new Ic("FINE",500);Hc.prototype.getParent=function(){return this.s};Hc.prototype.$d=function(a){this.Bb=a};var Mc=function(a){if(a.Bb)return a.Bb;if(a.s)return Mc(a.s);xa("Root logger has no level set.");return null};
Hc.prototype.log=function(a,b,c){if(a.value>=Mc(this).value)for(q(b)&&(b=b()),a=new Fc(a,String(b),this.Xe),c&&(a.Cd=c),c="log:"+a.We,l.console&&(l.console.timeStamp?l.console.timeStamp(c):l.console.markTimeline&&l.console.markTimeline(c)),l.msWriteProfilerMark&&l.msWriteProfilerMark(c),c=this;c;){var d=c,e=a;if(d.Id)for(var f=0;b=d.Id[f];f++)b(e);c=c.getParent()}};
var Nc={},Oc=null,Pc=function(a){Oc||(Oc=new Hc(""),Nc[""]=Oc,Oc.$d(Kc));var b;if(!(b=Nc[a])){b=new Hc(a);var c=a.lastIndexOf("."),d=a.substr(c+1),c=Pc(a.substr(0,c));c.Jc||(c.Jc={});c.Jc[d]=b;b.s=c;Nc[a]=b}return b};var C=function(a,b){a&&a.log(Lc,b,void 0)};var Sc=function(a){var b=[];Qc(new Rc,a,b);return b.join("")},Rc=function(){this.tc=void 0},Qc=function(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if(da(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),e=d[f],Qc(a,a.tc?a.tc.call(d,String(f),e):e,c),e=",";c.push("]");return}if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();else{c.push("{");f="";for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(e=b[d],"function"!=typeof e&&(c.push(f),
Tc(d,c),c.push(":"),Qc(a,a.tc?a.tc.call(b,d,e):e,c),f=","));c.push("}");return}}switch(typeof b){case "string":Tc(b,c);break;case "number":c.push(isFinite(b)&&!isNaN(b)?String(b):"null");break;case "boolean":c.push(String(b));break;case "function":c.push("null");break;default:throw Error("Unknown type: "+typeof b);}}},Uc={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},Vc=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g,
Tc=function(a,b){b.push('"',a.replace(Vc,function(a){var b=Uc[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),Uc[a]=b);return b}),'"')};var Wc=function(){};Wc.prototype.td=null;var Xc=function(a){return a.td||(a.td=a.Uc())};var Yc,Zc=function(){};t(Zc,Wc);Zc.prototype.Xb=function(){var a=$c(this);return a?new ActiveXObject(a):new XMLHttpRequest};Zc.prototype.Uc=function(){var a={};$c(this)&&(a[0]=!0,a[1]=!0);return a};
var $c=function(a){if(!a.Kd&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],c=0;c<b.length;c++){var d=b[c];try{return new ActiveXObject(d),a.Kd=d}catch(e){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return a.Kd};Yc=new Zc;var ad=function(){};t(ad,Wc);ad.prototype.Xb=function(){var a=new XMLHttpRequest;if("withCredentials"in a)return a;if("undefined"!=typeof XDomainRequest)return new bd;throw Error("Unsupported browser");};ad.prototype.Uc=function(){return{}};
var bd=function(){this.qa=new XDomainRequest;this.readyState=0;this.onreadystatechange=null;this.responseText="";this.status=-1;this.statusText=this.responseXML=null;this.qa.onload=r(this.Ge,this);this.qa.onerror=r(this.Hd,this);this.qa.onprogress=r(this.He,this);this.qa.ontimeout=r(this.Ie,this)};h=bd.prototype;h.open=function(a,b,c){if(null!=c&&!c)throw Error("Only async requests are supported.");this.qa.open(a,b)};
h.send=function(a){if(a)if("string"==typeof a)this.qa.send(a);else throw Error("Only string data is supported");else this.qa.send()};h.abort=function(){this.qa.abort()};h.setRequestHeader=function(){};h.Ge=function(){this.status=200;this.responseText=this.qa.responseText;cd(this,4)};h.Hd=function(){this.status=500;this.responseText="";cd(this,4)};h.Ie=function(){this.Hd()};h.He=function(){this.status=200;cd(this,1)};var cd=function(a,b){a.readyState=b;if(a.onreadystatechange)a.onreadystatechange()};!eb&&!z||z&&9<=Number(mb)||eb&&B("1.9.1");z&&B("9");var ed=function(a,b){Na(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:dd.hasOwnProperty(d)?a.setAttribute(dd[d],b):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,b):a[d]=b})},dd={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};var fd=function(a,b,c){this.Te=c;this.ue=a;this.jf=b;this.mc=0;this.ec=null};fd.prototype.get=function(){var a;0<this.mc?(this.mc--,a=this.ec,this.ec=a.next,a.next=null):a=this.ue();return a};fd.prototype.put=function(a){this.jf(a);this.mc<this.Te&&(this.mc++,a.next=this.ec,this.ec=a)};var gd=function(a){l.setTimeout(function(){throw a;},0)},hd,id=function(){var a=l.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!y("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+"//"+b.location.host,
a=r(function(a){if(("*"==d||a.origin==d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&!y("Trident")&&!y("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.wd;c.wd=null;a()}};return function(a){d.next={wd:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?
function(a){var b=document.createElement("SCRIPT");b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){l.setTimeout(a,0)}};var jd=function(){this.Dc=this.Ra=null},ld=new fd(function(){return new kd},function(a){a.reset()},100);jd.prototype.add=function(a,b){var c=ld.get();c.set(a,b);this.Dc?this.Dc.next=c:(w(!this.Ra),this.Ra=c);this.Dc=c};jd.prototype.remove=function(){var a=null;this.Ra&&(a=this.Ra,this.Ra=this.Ra.next,this.Ra||(this.Dc=null),a.next=null);return a};var kd=function(){this.next=this.scope=this.Nc=null};kd.prototype.set=function(a,b){this.Nc=a;this.scope=b;this.next=null};
kd.prototype.reset=function(){this.next=this.scope=this.Nc=null};var qd=function(a,b){md||nd();od||(md(),od=!0);pd.add(a,b)},md,nd=function(){if(-1!=String(l.Promise).indexOf("[native code]")){var a=l.Promise.resolve(void 0);md=function(){a.then(rd)}}else md=function(){var a=rd;!q(l.setImmediate)||l.Window&&l.Window.prototype&&!y("Edge")&&l.Window.prototype.setImmediate==l.setImmediate?(hd||(hd=id()),hd(a)):l.setImmediate(a)}},od=!1,pd=new jd,rd=function(){for(var a;a=pd.remove();){try{a.Nc.call(a.scope)}catch(b){gd(b)}ld.put(a)}od=!1};var sd=function(a){a.prototype.then=a.prototype.then;a.prototype.$goog_Thenable=!0},td=function(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};var D=function(a,b){this.M=0;this.na=void 0;this.Ua=this.ja=this.s=null;this.cc=this.Mc=!1;if(a!=ba)try{var c=this;a.call(b,function(a){ud(c,2,a)},function(a){if(!(a instanceof vd))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(e){}ud(c,3,a)})}catch(d){ud(this,3,d)}},wd=function(){this.next=this.context=this.bb=this.Ja=this.child=null;this.tb=!1};wd.prototype.reset=function(){this.context=this.bb=this.Ja=this.child=null;this.tb=!1};
var xd=new fd(function(){return new wd},function(a){a.reset()},100),yd=function(a,b,c){var d=xd.get();d.Ja=a;d.bb=b;d.context=c;return d},E=function(a){if(a instanceof D)return a;var b=new D(ba);ud(b,2,a);return b},F=function(a){return new D(function(b,c){c(a)})},Ad=function(a,b,c){zd(a,b,c,null)||qd(ja(b,a))},Bd=function(a){return new D(function(b){var c=a.length,d=[];if(c)for(var e=function(a,e,f){c--;d[a]=e?{Ce:!0,value:f}:{Ce:!1,reason:f};0==c&&b(d)},f=0,g;f<a.length;f++)g=a[f],Ad(g,ja(e,f,!0),
ja(e,f,!1));else b(d)})};D.prototype.then=function(a,b,c){null!=a&&Aa(a,"opt_onFulfilled should be a function.");null!=b&&Aa(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return Cd(this,q(a)?a:null,q(b)?b:null,c)};sd(D);var Ed=function(a,b){b=yd(b,b,void 0);b.tb=!0;Dd(a,b);return a};D.prototype.f=function(a,b){return Cd(this,null,a,b)};D.prototype.cancel=function(a){0==this.M&&qd(function(){var b=new vd(a);Fd(this,b)},this)};
var Fd=function(a,b){if(0==a.M)if(a.s){var c=a.s;if(c.ja){for(var d=0,e=null,f=null,g=c.ja;g&&(g.tb||(d++,g.child==a&&(e=g),!(e&&1<d)));g=g.next)e||(f=g);e&&(0==c.M&&1==d?Fd(c,b):(f?(d=f,w(c.ja),w(null!=d),d.next==c.Ua&&(c.Ua=d),d.next=d.next.next):Gd(c),Hd(c,e,3,b)))}a.s=null}else ud(a,3,b)},Dd=function(a,b){a.ja||2!=a.M&&3!=a.M||Id(a);w(null!=b.Ja);a.Ua?a.Ua.next=b:a.ja=b;a.Ua=b},Cd=function(a,b,c,d){var e=yd(null,null,null);e.child=new D(function(a,g){e.Ja=b?function(c){try{var e=b.call(d,c);a(e)}catch(A){g(A)}}:
a;e.bb=c?function(b){try{var e=c.call(d,b);void 0===e&&b instanceof vd?g(b):a(e)}catch(A){g(A)}}:g});e.child.s=a;Dd(a,e);return e.child};D.prototype.xf=function(a){w(1==this.M);this.M=0;ud(this,2,a)};D.prototype.yf=function(a){w(1==this.M);this.M=0;ud(this,3,a)};
var ud=function(a,b,c){0==a.M&&(a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself")),a.M=1,zd(c,a.xf,a.yf,a)||(a.na=c,a.M=b,a.s=null,Id(a),3!=b||c instanceof vd||Jd(a,c)))},zd=function(a,b,c,d){if(a instanceof D)return null!=b&&Aa(b,"opt_onFulfilled should be a function."),null!=c&&Aa(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),Dd(a,yd(b||ba,c||null,d)),!0;if(td(a))return a.then(b,c,d),!0;if(ga(a))try{var e=a.then;if(q(e))return Kd(a,
e,b,c,d),!0}catch(f){return c.call(d,f),!0}return!1},Kd=function(a,b,c,d,e){var f=!1,g=function(a){f||(f=!0,c.call(e,a))},k=function(a){f||(f=!0,d.call(e,a))};try{b.call(a,g,k)}catch(n){k(n)}},Id=function(a){a.Mc||(a.Mc=!0,qd(a.xe,a))},Gd=function(a){var b=null;a.ja&&(b=a.ja,a.ja=b.next,b.next=null);a.ja||(a.Ua=null);null!=b&&w(null!=b.Ja);return b};D.prototype.xe=function(){for(var a;a=Gd(this);)Hd(this,a,this.M,this.na);this.Mc=!1};
var Hd=function(a,b,c,d){if(3==c&&b.bb&&!b.tb)for(;a&&a.cc;a=a.s)a.cc=!1;if(b.child)b.child.s=null,Ld(b,c,d);else try{b.tb?b.Ja.call(b.context):Ld(b,c,d)}catch(e){Md.call(null,e)}xd.put(b)},Ld=function(a,b,c){2==b?a.Ja.call(a.context,c):a.bb&&a.bb.call(a.context,c)},Jd=function(a,b){a.cc=!0;qd(function(){a.cc&&Md.call(null,b)})},Md=gd,vd=function(a){u.call(this,a)};t(vd,u);vd.prototype.name="cancel";/*
 Portions of this code are from MochiKit, received by
 The Closure Authors under the MIT license. All other code is Copyright
 2005-2009 The Closure Authors. All Rights Reserved.
*/
var Nd=function(a,b){this.uc=[];this.Qd=a;this.zd=b||null;this.wb=this.Ya=!1;this.na=void 0;this.md=this.sd=this.Hc=!1;this.Bc=0;this.s=null;this.Ic=0};Nd.prototype.cancel=function(a){if(this.Ya)this.na instanceof Nd&&this.na.cancel();else{if(this.s){var b=this.s;delete this.s;a?b.cancel(a):(b.Ic--,0>=b.Ic&&b.cancel())}this.Qd?this.Qd.call(this.zd,this):this.md=!0;this.Ya||Od(this,new Pd)}};Nd.prototype.xd=function(a,b){this.Hc=!1;Qd(this,a,b)};
var Qd=function(a,b,c){a.Ya=!0;a.na=c;a.wb=!b;Rd(a)},Td=function(a){if(a.Ya){if(!a.md)throw new Sd;a.md=!1}};Nd.prototype.callback=function(a){Td(this);Ud(a);Qd(this,!0,a)};
var Od=function(a,b){Td(a);Ud(b);Qd(a,!1,b)},Ud=function(a){w(!(a instanceof Nd),"An execution sequence may not be initiated with a blocking Deferred.")},Yd=function(a){var b=Vd("https://apis.google.com/js/client.js?onload="+Wd);Xd(b,null,a,void 0)},Xd=function(a,b,c,d){w(!a.sd,"Blocking Deferreds can not be re-used");a.uc.push([b,c,d]);a.Ya&&Rd(a)};Nd.prototype.then=function(a,b,c){var d,e,f=new D(function(a,b){d=a;e=b});Xd(this,d,function(a){a instanceof Pd?f.cancel():e(a)});return f.then(a,b,c)};
sd(Nd);
var Zd=function(a){return Ea(a.uc,function(a){return q(a[1])})},Rd=function(a){if(a.Bc&&a.Ya&&Zd(a)){var b=a.Bc,c=$d[b];c&&(l.clearTimeout(c.xb),delete $d[b]);a.Bc=0}a.s&&(a.s.Ic--,delete a.s);for(var b=a.na,d=c=!1;a.uc.length&&!a.Hc;){var e=a.uc.shift(),f=e[0],g=e[1],e=e[2];if(f=a.wb?g:f)try{var k=f.call(e||a.zd,b);void 0!==k&&(a.wb=a.wb&&(k==b||k instanceof Error),a.na=b=k);if(td(b)||"function"===typeof l.Promise&&b instanceof l.Promise)d=!0,a.Hc=!0}catch(n){b=n,a.wb=!0,Zd(a)||(c=!0)}}a.na=b;d&&
(k=r(a.xd,a,!0),d=r(a.xd,a,!1),b instanceof Nd?(Xd(b,k,d),b.sd=!0):b.then(k,d));c&&(b=new ae(b),$d[b.xb]=b,a.Bc=b.xb)},Sd=function(){u.call(this)};t(Sd,u);Sd.prototype.message="Deferred has already fired";Sd.prototype.name="AlreadyCalledError";var Pd=function(){u.call(this)};t(Pd,u);Pd.prototype.message="Deferred was canceled";Pd.prototype.name="CanceledError";var ae=function(a){this.xb=l.setTimeout(r(this.wf,this),0);this.O=a};
ae.prototype.wf=function(){w($d[this.xb],"Cannot throw an error that is not scheduled.");delete $d[this.xb];throw this.O;};var $d={};var Vd=function(a){var b=new nc;b.qc=a;return be(b)},be=function(a){var b={},c=b.document||document,d;a instanceof nc&&a.constructor===nc&&a.ne===mc?d=a.qc:(xa("expected object of type TrustedResourceUrl, got '"+a+"' of type "+m(a)),d="type_error:TrustedResourceUrl");var e=document.createElement("SCRIPT");a={Xd:e,Qb:void 0};var f=new Nd(ce,a),g=null,k=null!=b.timeout?b.timeout:5E3;0<k&&(g=window.setTimeout(function(){de(e,!0);Od(f,new ee(1,"Timeout reached for loading script "+d))},k),a.Qb=g);e.onload=
e.onreadystatechange=function(){e.readyState&&"loaded"!=e.readyState&&"complete"!=e.readyState||(de(e,b.If||!1,g),f.callback(null))};e.onerror=function(){de(e,!0,g);Od(f,new ee(0,"Error while loading script "+d))};a=b.attributes||{};Ua(a,{type:"text/javascript",charset:"UTF-8",src:d});ed(e,a);fe(c).appendChild(e);return f},fe=function(a){var b;return(b=(a||document).getElementsByTagName("HEAD"))&&0!=b.length?b[0]:a.documentElement},ce=function(){if(this&&this.Xd){var a=this.Xd;a&&"SCRIPT"==a.tagName&&
de(a,!0,this.Qb)}},de=function(a,b,c){null!=c&&l.clearTimeout(c);a.onload=ba;a.onerror=ba;a.onreadystatechange=ba;b&&window.setTimeout(function(){a&&a.parentNode&&a.parentNode.removeChild(a)},0)},ee=function(a,b){var c="Jsloader error (code #"+a+")";b&&(c+=": "+b);u.call(this,c);this.code=a};t(ee,u);var ge=function(){Hb.call(this);this.aa=new Ob(this);this.pe=this;this.$c=null};t(ge,Hb);ge.prototype[Kb]=!0;h=ge.prototype;h.addEventListener=function(a,b,c,d){Ub(this,a,b,c,d)};h.removeEventListener=function(a,b,c,d){cc(this,a,b,c,d)};
h.dispatchEvent=function(a){he(this);var b,c=this.$c;if(c){b=[];for(var d=1;c;c=c.$c)b.push(c),w(1E3>++d,"infinite loop")}c=this.pe;d=a.type||a;if(p(a))a=new Ib(a,c);else if(a instanceof Ib)a.target=a.target||c;else{var e=a;a=new Ib(d,c);Ua(a,e)}var e=!0,f;if(b)for(var g=b.length-1;!a.gb&&0<=g;g--)f=a.currentTarget=b[g],e=ie(f,d,!0,a)&&e;a.gb||(f=a.currentTarget=c,e=ie(f,d,!0,a)&&e,a.gb||(e=ie(f,d,!1,a)&&e));if(b)for(g=0;!a.gb&&g<b.length;g++)f=a.currentTarget=b[g],e=ie(f,d,!1,a)&&e;return e};
h.Wa=function(){ge.pd.Wa.call(this);if(this.aa){var a=this.aa,b=0,c;for(c in a.D){for(var d=a.D[c],e=0;e<d.length;e++)++b,Nb(d[e]);delete a.D[c];a.Rb--}}this.$c=null};h.listen=function(a,b,c,d){he(this);return this.aa.add(String(a),b,!1,c,d)};
var bc=function(a,b,c,d,e){a.aa.add(String(b),c,!0,d,e)},ie=function(a,b,c,d){b=a.aa.D[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.lb&&g.capture==c){var k=g.listener,n=g.dc||g.src;g.Vb&&Qb(a.aa,g);e=!1!==k.call(n,d)&&e}}return e&&0!=d.Wd};ge.prototype.Oc=function(a,b,c,d){return this.aa.Oc(String(a),b,c,d)};var he=function(a){w(a.aa,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};var je=function(a,b,c){if(q(a))c&&(a=r(a,c));else if(a&&"function"==typeof a.handleEvent)a=r(a.handleEvent,a);else throw Error("Invalid listener argument");return 2147483647<Number(b)?-1:l.setTimeout(a,b||0)},ke=function(a){var b=null;return(new D(function(c,d){b=je(function(){c(void 0)},a);-1==b&&d(Error("Failed to schedule timer."))})).f(function(a){l.clearTimeout(b);throw a;})};var le=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/,me=function(a,b){if(a){a=a.split("&");for(var c=0;c<a.length;c++){var d=a[c].indexOf("="),e,f=null;0<=d?(e=a[c].substring(0,d),f=a[c].substring(d+1)):e=a[c];b(e,f?decodeURIComponent(f.replace(/\+/g," ")):"")}}};var G=function(a){ge.call(this);this.headers=new zc;this.Fc=a||null;this.ra=!1;this.Ec=this.b=null;this.Ab=this.Od=this.kc="";this.Fa=this.Sc=this.ic=this.Lc=!1;this.ob=0;this.zc=null;this.Vd="";this.Cc=this.ef=this.je=!1};t(G,ge);var ne=G.prototype,oe=Pc("goog.net.XhrIo");ne.T=oe;var pe=/^https?$/i,qe=["POST","PUT"];
G.prototype.send=function(a,b,c,d){if(this.b)throw Error("[goog.net.XhrIo] Object is active with another request="+this.kc+"; newUri="+a);b=b?b.toUpperCase():"GET";this.kc=a;this.Ab="";this.Od=b;this.Lc=!1;this.ra=!0;this.b=this.Fc?this.Fc.Xb():Yc.Xb();this.Ec=this.Fc?Xc(this.Fc):Xc(Yc);this.b.onreadystatechange=r(this.Sd,this);this.ef&&"onprogress"in this.b&&(this.b.onprogress=r(function(a){this.Rd(a,!0)},this),this.b.upload&&(this.b.upload.onprogress=r(this.Rd,this)));try{C(this.T,re(this,"Opening Xhr")),
this.Sc=!0,this.b.open(b,String(a),!0),this.Sc=!1}catch(f){C(this.T,re(this,"Error opening Xhr: "+f.message));this.O(5,f);return}a=c||"";var e=this.headers.clone();d&&Ec(d,function(a,b){e.set(b,a)});d=Ga(e.ka());c=l.FormData&&a instanceof l.FormData;!Ha(qe,b)||d||c||e.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");e.forEach(function(a,b){this.b.setRequestHeader(b,a)},this);this.Vd&&(this.b.responseType=this.Vd);"withCredentials"in this.b&&this.b.withCredentials!==this.je&&(this.b.withCredentials=
this.je);try{se(this),0<this.ob&&(this.Cc=te(this.b),C(this.T,re(this,"Will abort after "+this.ob+"ms if incomplete, xhr2 "+this.Cc)),this.Cc?(this.b.timeout=this.ob,this.b.ontimeout=r(this.Qb,this)):this.zc=je(this.Qb,this.ob,this)),C(this.T,re(this,"Sending request")),this.ic=!0,this.b.send(a),this.ic=!1}catch(f){C(this.T,re(this,"Send error: "+f.message)),this.O(5,f)}};var te=function(a){return z&&B(9)&&fa(a.timeout)&&void 0!==a.ontimeout},Fa=function(a){return"content-type"==a.toLowerCase()};
G.prototype.Qb=function(){"undefined"!=typeof aa&&this.b&&(this.Ab="Timed out after "+this.ob+"ms, aborting",C(this.T,re(this,this.Ab)),this.dispatchEvent("timeout"),this.abort(8))};G.prototype.O=function(a,b){this.ra=!1;this.b&&(this.Fa=!0,this.b.abort(),this.Fa=!1);this.Ab=b;ue(this);ve(this)};var ue=function(a){a.Lc||(a.Lc=!0,a.dispatchEvent("complete"),a.dispatchEvent("error"))};
G.prototype.abort=function(){this.b&&this.ra&&(C(this.T,re(this,"Aborting")),this.ra=!1,this.Fa=!0,this.b.abort(),this.Fa=!1,this.dispatchEvent("complete"),this.dispatchEvent("abort"),ve(this))};G.prototype.Wa=function(){this.b&&(this.ra&&(this.ra=!1,this.Fa=!0,this.b.abort(),this.Fa=!1),ve(this,!0));G.pd.Wa.call(this)};G.prototype.Sd=function(){this.isDisposed()||(this.Sc||this.ic||this.Fa?we(this):this.af())};G.prototype.af=function(){we(this)};
var we=function(a){if(a.ra&&"undefined"!=typeof aa)if(a.Ec[1]&&4==xe(a)&&2==ye(a))C(a.T,re(a,"Local request error detected and ignored"));else if(a.ic&&4==xe(a))je(a.Sd,0,a);else if(a.dispatchEvent("readystatechange"),4==xe(a)){C(a.T,re(a,"Request complete"));a.ra=!1;try{var b=ye(a),c;a:switch(b){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:c=!0;break a;default:c=!1}var d;if(!(d=c)){var e;if(e=0===b){var f=String(a.kc).match(le)[1]||null;if(!f&&l.self&&l.self.location)var g=l.self.location.protocol,
f=g.substr(0,g.length-1);e=!pe.test(f?f.toLowerCase():"")}d=e}if(d)a.dispatchEvent("complete"),a.dispatchEvent("success");else{var k;try{k=2<xe(a)?a.b.statusText:""}catch(n){C(a.T,"Can not get status: "+n.message),k=""}a.Ab=k+" ["+ye(a)+"]";ue(a)}}finally{ve(a)}}};G.prototype.Rd=function(a,b){w("progress"===a.type,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(ze(a,"progress"));this.dispatchEvent(ze(a,b?"downloadprogress":"uploadprogress"))};
var ze=function(a,b){return{type:b,lengthComputable:a.lengthComputable,loaded:a.loaded,total:a.total}},ve=function(a,b){if(a.b){se(a);var c=a.b,d=a.Ec[0]?ba:null;a.b=null;a.Ec=null;b||a.dispatchEvent("ready");try{c.onreadystatechange=d}catch(e){(a=a.T)&&a.log(Jc,"Problem encountered resetting onreadystatechange: "+e.message,void 0)}}},se=function(a){a.b&&a.Cc&&(a.b.ontimeout=null);fa(a.zc)&&(l.clearTimeout(a.zc),a.zc=null)},xe=function(a){return a.b?a.b.readyState:0},ye=function(a){try{return 2<xe(a)?
a.b.status:-1}catch(b){return-1}},Ae=function(a){try{return a.b?a.b.responseText:""}catch(b){return C(a.T,"Can not get responseText: "+b.message),""}},re=function(a,b){return b+" ["+a.Od+" "+a.kc+" "+ye(a)+"]"};var Be=function(a,b){this.$=this.Pa=this.da="";this.eb=null;this.Ea=this.ta="";this.R=this.Se=!1;var c;a instanceof Be?(this.R=void 0!==b?b:a.R,Ce(this,a.da),c=a.Pa,H(this),this.Pa=c,De(this,a.$),Ee(this,a.eb),Fe(this,a.ta),Ge(this,a.V.clone()),a=a.Ea,H(this),this.Ea=a):a&&(c=String(a).match(le))?(this.R=!!b,Ce(this,c[1]||"",!0),a=c[2]||"",H(this),this.Pa=He(a),De(this,c[3]||"",!0),Ee(this,c[4]),Fe(this,c[5]||"",!0),Ge(this,c[6]||"",!0),a=c[7]||"",H(this),this.Ea=He(a)):(this.R=!!b,this.V=new I(null,
0,this.R))};Be.prototype.toString=function(){var a=[],b=this.da;b&&a.push(Ie(b,Je,!0),":");var c=this.$;if(c||"file"==b)a.push("//"),(b=this.Pa)&&a.push(Ie(b,Je,!0),"@"),a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),c=this.eb,null!=c&&a.push(":",String(c));if(c=this.ta)this.$&&"/"!=c.charAt(0)&&a.push("/"),a.push(Ie(c,"/"==c.charAt(0)?Ke:Le,!0));(c=this.V.toString())&&a.push("?",c);(c=this.Ea)&&a.push("#",Ie(c,Me));return a.join("")};
Be.prototype.resolve=function(a){var b=this.clone(),c=!!a.da;c?Ce(b,a.da):c=!!a.Pa;if(c){var d=a.Pa;H(b);b.Pa=d}else c=!!a.$;c?De(b,a.$):c=null!=a.eb;d=a.ta;if(c)Ee(b,a.eb);else if(c=!!a.ta){if("/"!=d.charAt(0))if(this.$&&!this.ta)d="/"+d;else{var e=b.ta.lastIndexOf("/");-1!=e&&(d=b.ta.substr(0,e+1)+d)}e=d;if(".."==e||"."==e)d="";else if(v(e,"./")||v(e,"/.")){for(var d=0==e.lastIndexOf("/",0),e=e.split("/"),f=[],g=0;g<e.length;){var k=e[g++];"."==k?d&&g==e.length&&f.push(""):".."==k?((1<f.length||
1==f.length&&""!=f[0])&&f.pop(),d&&g==e.length&&f.push("")):(f.push(k),d=!0)}d=f.join("/")}else d=e}c?Fe(b,d):c=""!==a.V.toString();c?Ge(b,a.V.clone()):c=!!a.Ea;c&&(a=a.Ea,H(b),b.Ea=a);return b};Be.prototype.clone=function(){return new Be(this)};
var Ce=function(a,b,c){H(a);a.da=c?He(b,!0):b;a.da&&(a.da=a.da.replace(/:$/,""))},De=function(a,b,c){H(a);a.$=c?He(b,!0):b},Ee=function(a,b){H(a);if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.eb=b}else a.eb=null},Fe=function(a,b,c){H(a);a.ta=c?He(b,!0):b},Ge=function(a,b,c){H(a);b instanceof I?(a.V=b,a.V.ld(a.R)):(c||(b=Ie(b,Ne)),a.V=new I(b,0,a.R))},J=function(a,b,c){H(a);a.V.set(b,c)},Oe=function(a,b){return a.V.get(b)},Pe=function(a,b){H(a);a.V.remove(b)},H=function(a){if(a.Se)throw Error("Tried to modify a read-only Uri");
};Be.prototype.ld=function(a){this.R=a;this.V&&this.V.ld(a);return this};
var Qe=function(a){return a instanceof Be?a.clone():new Be(a,void 0)},Re=function(a,b){var c=new Be(null,void 0);Ce(c,"https");a&&De(c,a);b&&Fe(c,b);return c},He=function(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""},Ie=function(a,b,c){return p(a)?(a=encodeURI(a).replace(b,Se),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null},Se=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)},Je=/[#\/\?@]/g,Le=/[\#\?:]/g,Ke=/[\#\?]/g,Ne=/[\#\?@]/g,
Me=/#/g,I=function(a,b,c){this.o=this.l=null;this.N=a||null;this.R=!!c},Te=function(a){a.l||(a.l=new zc,a.o=0,a.N&&me(a.N,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))},Ve=function(a){var b=Dc(a);if("undefined"==typeof b)throw Error("Keys are undefined");var c=new I(null,0,void 0);a=Cc(a);for(var d=0;d<b.length;d++){var e=b[d],f=a[d];da(f)?Ue(c,e,f):c.add(e,f)}return c};h=I.prototype;
h.add=function(a,b){Te(this);this.N=null;a=this.P(a);var c=this.l.get(a);c||this.l.set(a,c=[]);c.push(b);this.o=ya(this.o)+1;return this};h.remove=function(a){Te(this);a=this.P(a);return this.l.ub(a)?(this.N=null,this.o=ya(this.o)-this.l.get(a).length,this.l.remove(a)):!1};h.ub=function(a){Te(this);a=this.P(a);return this.l.ub(a)};h.ka=function(){Te(this);for(var a=this.l.X(),b=this.l.ka(),c=[],d=0;d<b.length;d++)for(var e=a[d],f=0;f<e.length;f++)c.push(b[d]);return c};
h.X=function(a){Te(this);var b=[];if(p(a))this.ub(a)&&(b=La(b,this.l.get(this.P(a))));else{a=this.l.X();for(var c=0;c<a.length;c++)b=La(b,a[c])}return b};h.set=function(a,b){Te(this);this.N=null;a=this.P(a);this.ub(a)&&(this.o=ya(this.o)-this.l.get(a).length);this.l.set(a,[b]);this.o=ya(this.o)+1;return this};h.get=function(a,b){a=a?this.X(a):[];return 0<a.length?String(a[0]):b};var Ue=function(a,b,c){a.remove(b);0<c.length&&(a.N=null,a.l.set(a.P(b),Ma(c)),a.o=ya(a.o)+c.length)};
I.prototype.toString=function(){if(this.N)return this.N;if(!this.l)return"";for(var a=[],b=this.l.ka(),c=0;c<b.length;c++)for(var d=b[c],e=encodeURIComponent(String(d)),d=this.X(d),f=0;f<d.length;f++){var g=e;""!==d[f]&&(g+="="+encodeURIComponent(String(d[f])));a.push(g)}return this.N=a.join("&")};I.prototype.clone=function(){var a=new I;a.N=this.N;this.l&&(a.l=this.l.clone(),a.o=this.o);return a};I.prototype.P=function(a){a=String(a);this.R&&(a=a.toLowerCase());return a};
I.prototype.ld=function(a){a&&!this.R&&(Te(this),this.N=null,this.l.forEach(function(a,c){var b=c.toLowerCase();c!=b&&(this.remove(c),Ue(this,b,a))},this));this.R=a};var We=function(){var a=K();return z&&!!mb&&11==mb||/Edge\/\d+/.test(a)},Xe=function(){return l.window&&l.window.location.href||""},Ye=function(a,b){b=b||l.window;var c="about:blank";a&&(c=qc(tc(a)));b.location.href=c},Ze=function(a,b){var c=[],d;for(d in a)d in b?typeof a[d]!=typeof b[d]?c.push(d):da(a[d])?Ra(a[d],b[d])||c.push(d):"object"==typeof a[d]&&null!=a[d]&&null!=b[d]?0<Ze(a[d],b[d]).length&&c.push(d):a[d]!==b[d]&&c.push(d):c.push(d);for(d in b)d in a||c.push(d);return c},af=function(){var a;
a=K();a="Chrome"!=$e(a)?null:(a=a.match(/\sChrome\/(\d+)/i))&&2==a.length?parseInt(a[1],10):null;return a&&30>a?!1:!z||!mb||9<mb},bf=function(a){a=(a||K()).toLowerCase();return a.match(/android/)||a.match(/webos/)||a.match(/iphone|ipad|ipod/)||a.match(/blackberry/)||a.match(/windows phone/)||a.match(/iemobile/)?!0:!1},cf=function(a){a=a||l.window;try{a.close()}catch(b){}},df=function(a,b,c){var d=Math.floor(1E9*Math.random()).toString();b=b||500;c=c||600;var e=(window.screen.availHeight-c)/2,f=(window.screen.availWidth-
b)/2;b={width:b,height:c,top:0<e?e:0,left:0<f?f:0,location:!0,resizable:!0,statusbar:!0,toolbar:!1};c=K().toLowerCase();d&&(b.target=d,v(c,"crios/")&&(b.target="_blank"));"Firefox"==$e(K())&&(a=a||"http://localhost",b.scrollbars=!0);var g;c=a||"about:blank";(d=b)||(d={});a=window;b=c instanceof pc?c:tc("undefined"!=typeof c.href?c.href:String(c));c=d.target||c.target;e=[];for(g in d)switch(g){case "width":case "height":case "top":case "left":e.push(g+"="+d[g]);break;case "target":case "noreferrer":break;
default:e.push(g+"="+(d[g]?1:0))}g=e.join(",");(y("iPhone")&&!y("iPod")&&!y("iPad")||y("iPad")||y("iPod"))&&a.navigator&&a.navigator.standalone&&c&&"_self"!=c?(g=a.document.createElement("A"),"undefined"!=typeof HTMLAnchorElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&(e=g&&(g instanceof HTMLAnchorElement||!(g instanceof Location||g instanceof Element)),f=ga(g)?g.constructor.displayName||g.constructor.name||Object.prototype.toString.call(g):void 0===g?"undefined":null===g?"null":
typeof g,w(e,"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",f)),b=b instanceof pc?b:tc(b),g.href=qc(b),g.setAttribute("target",c),d.noreferrer&&g.setAttribute("rel","noreferrer"),d=document.createEvent("MouseEvent"),d.initMouseEvent("click",!0,!0,a,1),g.dispatchEvent(d),g={}):d.noreferrer?(g=a.open("",c,g),d=qc(b),g&&(db&&v(d,";")&&(d="'"+d.replace(/'/g,"%27")+"'"),g.opener=null,a=lc("b/12014412, meta tag with sanitized URL"),ta.test(d)&&(-1!=d.indexOf("&")&&(d=d.replace(na,
"&amp;")),-1!=d.indexOf("<")&&(d=d.replace(oa,"&lt;")),-1!=d.indexOf(">")&&(d=d.replace(pa,"&gt;")),-1!=d.indexOf('"')&&(d=d.replace(qa,"&quot;")),-1!=d.indexOf("'")&&(d=d.replace(ra,"&#39;")),-1!=d.indexOf("\x00")&&(d=d.replace(sa,"&#0;"))),d='<META HTTP-EQUIV="refresh" content="0; url='+d+'">',za(kc(a),"must provide justification"),w(!/^[\s\xa0]*$/.test(kc(a)),"must provide non-empty justification"),g.document.write(wc((new vc).Pe(d))),g.document.close())):g=a.open(qc(b),c,g);if(g)try{g.focus()}catch(k){}return g},
ef=function(a){return new D(function(b){var c=function(){ke(2E3).then(function(){if(!a||a.closed)b();else return c()})};return c()})},ff=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,gf=function(){var a=null;return(new D(function(b){"complete"==l.document.readyState?b():(a=function(){b()},ac(window,"load",a))})).f(function(b){cc(window,"load",a);throw b;})},jf=function(){return hf(void 0)?gf().then(function(){return new D(function(a,b){var c=l.document,d=setTimeout(function(){b(Error("Cordova framework is not ready."))},
1E3);c.addEventListener("deviceready",function(){clearTimeout(d);a()},!1)})}):F(Error("Cordova must run in an Android or iOS file scheme."))},hf=function(a){a=a||K();return!("file:"!==kf()||!a.toLowerCase().match(/iphone|ipad|ipod|android/))},lf=function(){var a=l.window;try{return!(!a||a==a.top)}catch(b){return!1}},L=function(){return firebase.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":firebase.INTERNAL.hasOwnProperty("node")?"Node":"Browser"},mf=function(){var a=L();return"ReactNative"===
a||"Node"===a},$e=function(a){var b=a.toLowerCase();if(v(b,"opera/")||v(b,"opr/")||v(b,"opios/"))return"Opera";if(v(b,"iemobile"))return"IEMobile";if(v(b,"msie")||v(b,"trident/"))return"IE";if(v(b,"edge/"))return"Edge";if(v(b,"firefox/"))return"Firefox";if(v(b,"silk/"))return"Silk";if(v(b,"blackberry"))return"Blackberry";if(v(b,"webos"))return"Webos";if(!v(b,"safari/")||v(b,"chrome/")||v(b,"crios/")||v(b,"android"))if(!v(b,"chrome/")&&!v(b,"crios/")||v(b,"edge/")){if(v(b,"android"))return"Android";
if((a=a.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==a.length)return a[1]}else return"Chrome";else return"Safari";return"Other"},nf=function(a){var b=L();return("Browser"===b?$e(K()):b)+"/JsCore/"+a},K=function(){return l.navigator&&l.navigator.userAgent||""},M=function(a,b){a=a.split(".");b=b||l;for(var c=0;c<a.length&&"object"==typeof b&&null!=b;c++)b=b[a[c]];c!=a.length&&(b=void 0);return b},qf=function(){var a;if(a=(of()||"chrome-extension:"===kf()||hf()&&!1)&&!mf())a:{try{var b=l.localStorage,
c=pf();if(b){b.setItem(c,"1");b.removeItem(c);a=We()?!!l.indexedDB:!0;break a}}catch(d){}a=!1}return a},of=function(){return"http:"===kf()||"https:"===kf()},kf=function(){return l.location&&l.location.protocol||null},rf=function(a){a=a||K();return bf(a)||"Firefox"==$e(a)?!1:!0},sf=function(a){return"undefined"===typeof a?null:Sc(a)},tf=function(a){var b={},c;for(c in a)a.hasOwnProperty(c)&&null!==a[c]&&void 0!==a[c]&&(b[c]=a[c]);return b},uf=function(a){if(null!==a)return JSON.parse(a)},pf=function(a){return a?
a:""+Math.floor(1E9*Math.random()).toString()},vf=function(a){a=a||K();return"Safari"==$e(a)||a.toLowerCase().match(/iphone|ipad|ipod/)?!1:!0},wf=function(){var a=l.___jsl;if(a&&a.H)for(var b in a.H)if(a.H[b].r=a.H[b].r||[],a.H[b].L=a.H[b].L||[],a.H[b].r=a.H[b].L.concat(),a.CP)for(var c=0;c<a.CP.length;c++)a.CP[c]=null},xf=function(){return l.navigator&&"boolean"===typeof l.navigator.onLine?l.navigator.onLine:!0},yf=function(a,b,c,d){if(a>b)throw Error("Short delay should be less than long delay!");
this.tf=a;this.Ve=b;a=c||K();d=d||L();this.Re=bf(a)||"ReactNative"===d};yf.prototype.get=function(){return this.Re?this.Ve:this.tf};
var zf=function(){var a=l.document;return a&&"undefined"!==typeof a.visibilityState?"visible"==a.visibilityState:!0},Af=function(){var a=l.document,b=null;return zf()||!a?E():(new D(function(c){b=function(){zf()&&(a.removeEventListener("visibilitychange",b,!1),c())};a.addEventListener("visibilitychange",b,!1)})).f(function(c){a.removeEventListener("visibilitychange",b,!1);throw c;})};var Bf;try{var Cf={};Object.defineProperty(Cf,"abcd",{configurable:!0,enumerable:!0,value:1});Object.defineProperty(Cf,"abcd",{configurable:!0,enumerable:!0,value:2});Bf=2==Cf.abcd}catch(a){Bf=!1}
var N=function(a,b,c){Bf?Object.defineProperty(a,b,{configurable:!0,enumerable:!0,value:c}):a[b]=c},Df=function(a,b){if(b)for(var c in b)b.hasOwnProperty(c)&&N(a,c,b[c])},Ef=function(a){var b={},c;for(c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b},Ff=function(a,b){if(!b||!b.length)return!0;if(!a)return!1;for(var c=0;c<b.length;c++){var d=a[b[c]];if(void 0===d||null===d||""===d)return!1}return!0},Gf=function(a){var b=a;if("object"==typeof a&&null!=a){var b="length"in a?[]:{},c;for(c in a)N(b,c,
Gf(a[c]))}return b};var Hf="oauth_consumer_key oauth_nonce oauth_signature oauth_signature_method oauth_timestamp oauth_token oauth_version".split(" "),If=["client_id","response_type","scope","redirect_uri","state"],Jf={Df:{Fb:500,Eb:600,providerId:"facebook.com",hd:If},Ef:{Fb:500,Eb:620,providerId:"github.com",hd:If},Ff:{Fb:515,Eb:680,providerId:"google.com",hd:If},Gf:{Fb:485,Eb:705,providerId:"twitter.com",hd:Hf}},Kf=function(a){for(var b in Jf)if(Jf[b].providerId==a)return Jf[b];return null};var O=function(a,b){this.code="auth/"+a;this.message=b||Lf[a]||""};t(O,Error);O.prototype.C=function(){return{code:this.code,message:this.message}};O.prototype.toJSON=function(){return this.C()};
var Mf=function(a){var b=a&&a.code;return b?new O(b.substring(5),a.message):null},Lf={"argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","cordova-not-ready":"Cordova framework is not ready.",
"cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-already-in-use":"The email address is already in use by another account.",
"expired-action-code":"The action code has expired. ","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal error has occurred.","invalid-user-token":"The user's credential is no longer valid. The user must sign in again.","invalid-auth-event":"An internal error has occurred.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.",
"invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-email":"The email address is badly formatted.","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-credential":"The supplied auth credential is malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.",
"invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.",
"invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","missing-iframe-start":"An internal error has occurred.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.",
"app-deleted":"This instance of FirebaseApp has been deleted.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network error (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal error has occurred.","no-such-provider":"User was not linked to an account with the given provider.",
"operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.",
"popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.",
"too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","user-cancelled":"User did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.",
"web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled."};var P=function(a,b,c,d,e){this.ga=a;this.F=b||null;this.qb=c||null;this.kd=d||null;this.O=e||null;if(this.qb||this.O){if(this.qb&&this.O)throw new O("invalid-auth-event");if(this.qb&&!this.kd)throw new O("invalid-auth-event");}else throw new O("invalid-auth-event");};P.prototype.ac=function(){return this.kd};P.prototype.getError=function(){return this.O};P.prototype.C=function(){return{type:this.ga,eventId:this.F,urlResponse:this.qb,sessionId:this.kd,error:this.O&&this.O.C()}};
var Nf=function(a){a=a||{};return a.type?new P(a.type,a.eventId,a.urlResponse,a.sessionId,a.error&&Mf(a.error)):null};var Of=function(a){var b="unauthorized-domain",c=void 0,d=Qe(a);a=d.$;d=d.da;"chrome-extension"==d?c=la("This chrome extension ID (chrome-extension://%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",a):"http"==d||"https"==d?c=la("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",a):b=
"operation-not-supported-in-this-environment";O.call(this,b,c)};t(Of,O);var Pf=function(a){this.Ue=a.sub;ka();this.Yb=a.email||null};var Qf=function(a,b){if(b.idToken||b.accessToken)b.idToken&&N(this,"idToken",b.idToken),b.accessToken&&N(this,"accessToken",b.accessToken);else if(b.oauthToken&&b.oauthTokenSecret)N(this,"accessToken",b.oauthToken),N(this,"secret",b.oauthTokenSecret);else throw new O("internal-error","failed to construct a credential");N(this,"provider",a)};Qf.prototype.$b=function(a){return Rf(a,Sf(this))};Qf.prototype.Pd=function(a,b){var c=Sf(this);c.idToken=b;return Tf(a,c)};
var Sf=function(a){var b={};a.idToken&&(b.id_token=a.idToken);a.accessToken&&(b.access_token=a.accessToken);a.secret&&(b.oauth_token_secret=a.secret);b.providerId=a.provider;return{postBody:Ve(b).toString(),requestUri:"http://localhost"}};Qf.prototype.C=function(){var a={provider:this.provider};this.idToken&&(a.oauthIdToken=this.idToken);this.accessToken&&(a.oauthAccessToken=this.accessToken);this.secret&&(a.oauthTokenSecret=this.secret);return a};
var Uf=function(a,b){this.hf=b||[];Df(this,{providerId:a,isOAuthProvider:!0});this.yd={}};Uf.prototype.setCustomParameters=function(a){this.yd=Sa(a);return this};var Q=function(a){Uf.call(this,a,If);this.jd=[]};t(Q,Uf);Q.prototype.addScope=function(a){Ha(this.jd,a)||this.jd.push(a);return this};Q.prototype.Gd=function(){return Ma(this.jd)};
Q.prototype.credential=function(a,b){if(!a&&!b)throw new O("argument-error","credential failed: must provide the ID token and/or the access token.");return new Qf(this.providerId,{idToken:a||null,accessToken:b||null})};var Vf=function(){Q.call(this,"facebook.com")};t(Vf,Q);N(Vf,"PROVIDER_ID","facebook.com");var Wf=function(a){if(!a)throw new O("argument-error","credential failed: expected 1 argument (the OAuth access token).");return(new Vf).credential(null,a)},Xf=function(){Q.call(this,"github.com")};
t(Xf,Q);N(Xf,"PROVIDER_ID","github.com");var Yf=function(a){if(!a)throw new O("argument-error","credential failed: expected 1 argument (the OAuth access token).");return(new Xf).credential(null,a)},Zf=function(){Q.call(this,"google.com");this.addScope("profile")};t(Zf,Q);N(Zf,"PROVIDER_ID","google.com");var $f=function(a,b){return(new Zf).credential(a,b)},ag=function(){Uf.call(this,"twitter.com",Hf)};t(ag,Uf);N(ag,"PROVIDER_ID","twitter.com");
var bg=function(a,b){if(!a||!b)throw new O("argument-error","credential failed: expected 2 arguments (the OAuth access token and secret).");return new Qf("twitter.com",{oauthToken:a,oauthTokenSecret:b})},cg=function(a,b){this.Yb=a;this.ad=b;N(this,"provider","password")};cg.prototype.$b=function(a){return R(a,dg,{email:this.Yb,password:this.ad})};cg.prototype.Pd=function(a,b){return R(a,eg,{idToken:b,email:this.Yb,password:this.ad})};cg.prototype.C=function(){return{email:this.Yb,password:this.ad}};
var fg=function(){Df(this,{providerId:"password",isOAuthProvider:!1})};Df(fg,{PROVIDER_ID:"password"});
var gg=function(a){var b=a&&a.providerId;if(!b||"password"===b)return null;var c=a&&a.oauthAccessToken,d=a&&a.oauthTokenSecret;a=a&&a.oauthIdToken;try{switch(b){case "google.com":return $f(a,c);case "facebook.com":return Wf(c);case "github.com":return Yf(c);case "twitter.com":return bg(c,d);default:return(new Q(b)).credential(a,c)}}catch(e){return null}},hg=function(a){if(!a.isOAuthProvider)throw new O("invalid-oauth-provider");};var ig=function(a,b,c,d){O.call(this,a,d);N(this,"email",b);N(this,"credential",c)};t(ig,O);ig.prototype.C=function(){var a={code:this.code,message:this.message,email:this.email},b=this.credential&&this.credential.C();b&&(Ua(a,b),a.providerId=b.provider,delete a.provider);return a};ig.prototype.toJSON=function(){return this.C()};var jg=function(a){if(a.code){var b=a.code||"";0==b.indexOf("auth/")&&(b=b.substring(5));return a.email?new ig(b,a.email,gg(a),a.message):new O(b,a.message||void 0)}return null};var kg=function(a){this.Cf=a};t(kg,Wc);kg.prototype.Xb=function(){return new this.Cf};kg.prototype.Uc=function(){return{}};
var S=function(a,b,c){var d;d="Node"==L();d=l.XMLHttpRequest||d&&firebase.INTERNAL.node&&firebase.INTERNAL.node.XMLHttpRequest;if(!d)throw new O("internal-error","The XMLHttpRequest compatibility library was not found.");this.j=a;a=b||{};this.pf=a.secureTokenEndpoint||"https://securetoken.googleapis.com/v1/token";this.qf=a.secureTokenTimeout||lg;this.Yd=Sa(a.secureTokenHeaders||mg);this.Ae=a.firebaseEndpoint||"https://www.googleapis.com/identitytoolkit/v3/relyingparty/";this.Be=a.firebaseTimeout||
ng;this.Ed=Sa(a.firebaseHeaders||og);c&&(this.Ed["X-Client-Version"]=c,this.Yd["X-Client-Version"]=c);this.te=new ad;this.Bf=new kg(d)},pg,lg=new yf(3E4,6E4),mg={"Content-Type":"application/x-www-form-urlencoded"},ng=new yf(3E4,6E4),og={"Content-Type":"application/json"},rg=function(a,b,c,d,e,f,g){xf()?(af()?a=r(a.sf,a):(pg||(pg=new D(function(a,b){qg(a,b)})),a=r(a.rf,a)),a(b,c,d,e,f,g)):c&&c(null)};
S.prototype.sf=function(a,b,c,d,e,f){var g="Node"==L(),k=mf()?g?new G(this.Bf):new G:new G(this.te),n;f&&(k.ob=Math.max(0,f),n=setTimeout(function(){k.dispatchEvent("timeout")},f));k.listen("complete",function(){n&&clearTimeout(n);var a=null;try{a=JSON.parse(Ae(this))||null}catch(Xa){a=null}b&&b(a)});bc(k,"ready",function(){n&&clearTimeout(n);this.Ba||(this.Ba=!0,this.Wa())});bc(k,"timeout",function(){n&&clearTimeout(n);this.Ba||(this.Ba=!0,this.Wa());b&&b(null)});k.send(a,c,d,e)};
var Wd="__fcb"+Math.floor(1E6*Math.random()).toString(),qg=function(a,b){((window.gapi||{}).client||{}).request?a():(l[Wd]=function(){((window.gapi||{}).client||{}).request?a():b(Error("CORS_UNSUPPORTED"))},Yd(function(){b(Error("CORS_UNSUPPORTED"))}))};
S.prototype.rf=function(a,b,c,d,e){var f=this;pg.then(function(){window.gapi.client.setApiKey(f.j);var g=window.gapi.auth.getToken();window.gapi.auth.setToken(null);window.gapi.client.request({path:a,method:c,body:d,headers:e,authType:"none",callback:function(a){window.gapi.auth.setToken(g);b&&b(a)}})}).f(function(a){b&&b({error:{message:a&&a.message||"CORS_UNSUPPORTED"}})})};
var tg=function(a,b){return new D(function(c,d){"refresh_token"==b.grant_type&&b.refresh_token||"authorization_code"==b.grant_type&&b.code?rg(a,a.pf+"?key="+encodeURIComponent(a.j),function(a){a?a.error?d(sg(a)):a.access_token&&a.refresh_token?c(a):d(new O("internal-error")):d(new O("network-request-failed"))},"POST",Ve(b).toString(),a.Yd,a.qf.get()):d(new O("internal-error"))})},ug=function(a,b,c,d,e){var f=Qe(a.Ae+b);J(f,"key",a.j);e&&J(f,"cb",ka().toString());var g="GET"==c;if(g)for(var k in d)d.hasOwnProperty(k)&&
J(f,k,d[k]);return new D(function(b,e){rg(a,f.toString(),function(a){a?a.error?e(sg(a)):b(a):e(new O("network-request-failed"))},c,g?void 0:Sc(tf(d)),a.Ed,a.Be.get())})},vg=function(a){if(!hc.test(a.email))throw new O("invalid-email");},wg=function(a){"email"in a&&vg(a)},yg=function(a,b){return R(a,xg,{identifier:b,continueUri:of()?Xe():"http://localhost"}).then(function(a){return a.allProviders||[]})},Ag=function(a){return R(a,zg,{}).then(function(a){return a.authorizedDomains||[]})},Bg=function(a){if(!a.idToken)throw new O("internal-error");
};S.prototype.signInAnonymously=function(){return R(this,Cg,{})};S.prototype.updateEmail=function(a,b){return R(this,Dg,{idToken:a,email:b})};S.prototype.updatePassword=function(a,b){return R(this,eg,{idToken:a,password:b})};var Eg={displayName:"DISPLAY_NAME",photoUrl:"PHOTO_URL"};S.prototype.updateProfile=function(a,b){var c={idToken:a},d=[];Na(Eg,function(a,f){var e=b[f];null===e?d.push(a):f in b&&(c[f]=e)});d.length&&(c.deleteAttribute=d);return R(this,Dg,c)};
S.prototype.sendPasswordResetEmail=function(a){return R(this,Fg,{requestType:"PASSWORD_RESET",email:a})};S.prototype.sendEmailVerification=function(a){return R(this,Gg,{requestType:"VERIFY_EMAIL",idToken:a})};
var Ig=function(a,b,c){return R(a,Hg,{idToken:b,deleteProvider:c})},Jg=function(a){if(!a.requestUri||!a.sessionId&&!a.postBody)throw new O("internal-error");},Kg=function(a){var b=null;a.needConfirmation?(a.code="account-exists-with-different-credential",b=jg(a)):"FEDERATED_USER_ID_ALREADY_LINKED"==a.errorMessage?(a.code="credential-already-in-use",b=jg(a)):"EMAIL_EXISTS"==a.errorMessage&&(a.code="email-already-in-use",b=jg(a));if(b)throw b;if(!a.idToken)throw new O("internal-error");},Rf=function(a,
b){b.returnIdpCredential=!0;return R(a,Lg,b)},Tf=function(a,b){b.returnIdpCredential=!0;return R(a,Mg,b)},Ng=function(a){if(!a.oobCode)throw new O("invalid-action-code");};S.prototype.confirmPasswordReset=function(a,b){return R(this,Og,{oobCode:a,newPassword:b})};S.prototype.checkActionCode=function(a){return R(this,Pg,{oobCode:a})};S.prototype.applyActionCode=function(a){return R(this,Qg,{oobCode:a})};
var Qg={endpoint:"setAccountInfo",K:Ng,nb:"email"},Pg={endpoint:"resetPassword",K:Ng,va:function(a){if(!a.email||!a.requestType)throw new O("internal-error");}},Rg={endpoint:"signupNewUser",K:function(a){vg(a);if(!a.password)throw new O("weak-password");},va:Bg,wa:!0},xg={endpoint:"createAuthUri"},Sg={endpoint:"deleteAccount",mb:["idToken"]},Hg={endpoint:"setAccountInfo",mb:["idToken","deleteProvider"],K:function(a){if(!da(a.deleteProvider))throw new O("internal-error");}},Tg={endpoint:"getAccountInfo"},
Gg={endpoint:"getOobConfirmationCode",mb:["idToken","requestType"],K:function(a){if("VERIFY_EMAIL"!=a.requestType)throw new O("internal-error");},nb:"email"},Fg={endpoint:"getOobConfirmationCode",mb:["requestType"],K:function(a){if("PASSWORD_RESET"!=a.requestType)throw new O("internal-error");vg(a)},nb:"email"},zg={se:!0,endpoint:"getProjectConfig",Le:"GET"},Og={endpoint:"resetPassword",K:Ng,nb:"email"},Dg={endpoint:"setAccountInfo",mb:["idToken"],K:wg,wa:!0},eg={endpoint:"setAccountInfo",mb:["idToken"],
K:function(a){wg(a);if(!a.password)throw new O("weak-password");},va:Bg,wa:!0},Cg={endpoint:"signupNewUser",va:Bg,wa:!0},Lg={endpoint:"verifyAssertion",K:Jg,va:Kg,wa:!0},Mg={endpoint:"verifyAssertion",K:function(a){Jg(a);if(!a.idToken)throw new O("internal-error");},va:Kg,wa:!0},Ug={endpoint:"verifyCustomToken",K:function(a){if(!a.token)throw new O("invalid-custom-token");},va:Bg,wa:!0},dg={endpoint:"verifyPassword",K:function(a){vg(a);if(!a.password)throw new O("wrong-password");},va:Bg,wa:!0},R=
function(a,b,c){if(!Ff(c,b.mb))return F(new O("internal-error"));var d=b.Le||"POST",e;return E(c).then(b.K).then(function(){b.wa&&(c.returnSecureToken=!0);return ug(a,b.endpoint,d,c,b.se||!1)}).then(function(a){return e=a}).then(b.va).then(function(){if(!b.nb)return e;if(!(b.nb in e))throw new O("internal-error");return e[b.nb]})},sg=function(a){var b,c;c=(a.error&&a.error.errors&&a.error.errors[0]||{}).reason||"";var d={keyInvalid:"invalid-api-key",ipRefererBlocked:"app-not-authorized"};if(c=d[c]?
new O(d[c]):null)return c;c=a.error&&a.error.message||"";d={INVALID_CUSTOM_TOKEN:"invalid-custom-token",CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_EMAIL:"invalid-email",INVALID_PASSWORD:"wrong-password",USER_DISABLED:"user-disabled",MISSING_PASSWORD:"internal-error",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",
FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",INVALID_MESSAGE_PAYLOAD:"invalid-message-payload",INVALID_RECIPIENT_EMAIL:"invalid-recipient-email",INVALID_SENDER:"invalid-sender",EMAIL_NOT_FOUND:"user-not-found",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",
CORS_UNSUPPORTED:"cors-unsupported",DYNAMIC_LINK_NOT_ACTIVATED:"dynamic-link-not-activated",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",WEAK_PASSWORD:"weak-password",OPERATION_NOT_ALLOWED:"operation-not-allowed",USER_CANCELLED:"user-cancelled"};b=(b=c.match(/^[^\s]+\s*:\s*(.*)$/))&&1<b.length?b[1]:void 0;for(var e in d)if(0===c.indexOf(e))return new O(d[e],b);!b&&a&&(b=sf(a));return new O("internal-error",b)};var Vg=function(a){this.U=a};Vg.prototype.value=function(){return this.U};Vg.prototype.ae=function(a){this.U.style=a;return this};var Wg=function(a){this.U=a||{}};Wg.prototype.value=function(){return this.U};Wg.prototype.ae=function(a){this.U.style=a;return this};var Yg=function(a){this.zf=a;this.gc=null;this.Zc=Xg(this)},Zg=function(a){var b=new Wg;b.U.where=document.body;b.U.url=a.zf;b.U.messageHandlersFilter=M("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER");b.U.attributes=b.U.attributes||{};(new Vg(b.U.attributes)).ae({position:"absolute",top:"-100px",width:"1px",height:"1px"});b.U.dontclear=!0;return b},Xg=function(a){return $g().then(function(){return new D(function(b,c){M("gapi.iframes.getContext")().open(Zg(a).value(),function(d){a.gc=d;a.gc.restyle({setHideOnLeave:!1});
var e=setTimeout(function(){c(Error("Network Error"))},ah.get()),f=function(){clearTimeout(e);b()};d.ping(f).then(f,function(){c(Error("Network Error"))})})})})};Yg.prototype.sendMessage=function(a){var b=this;return this.Zc.then(function(){return new D(function(c){b.gc.send(a.type,a,c,M("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER"))})})};
var bh=function(a,b){a.Zc.then(function(){a.gc.register("authEvent",b,M("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER"))})},ch=new yf(3E4,6E4),ah=new yf(5E3,15E3),$g=function(){return new D(function(a,b){if(xf()){var c=function(){wf();M("gapi.load")("gapi.iframes",{callback:a,ontimeout:function(){wf();b(Error("Network Error"))},timeout:ch.get()})};if(M("gapi.iframes.Iframe"))a();else if(M("gapi.load"))c();else{var d="__iframefcb"+Math.floor(1E6*Math.random()).toString();l[d]=function(){M("gapi.load")?
c():b(Error("Network Error"))};E(Vd("https://apis.google.com/js/api.js?onload="+d)).f(function(){b(Error("Network Error"))})}}else b(Error("Network Error"))})};var dh=function(a,b,c){this.v=a;this.j=b;this.B=c;this.Qa=null;this.Sb=Re(this.v,"/__/auth/iframe");J(this.Sb,"apiKey",this.j);J(this.Sb,"appName",this.B)};dh.prototype.setVersion=function(a){this.Qa=a;return this};dh.prototype.toString=function(){this.Qa?J(this.Sb,"v",this.Qa):Pe(this.Sb,"v");return this.Sb.toString()};var eh=function(a,b,c,d,e){this.v=a;this.j=b;this.B=c;this.re=d;this.Qa=this.F=this.fd=null;this.Ib=e};eh.prototype.setVersion=function(a){this.Qa=a;return this};
eh.prototype.toString=function(){var a=Re(this.v,"/__/auth/handler");J(a,"apiKey",this.j);J(a,"appName",this.B);J(a,"authType",this.re);if(this.Ib.isOAuthProvider){J(a,"providerId",this.Ib.providerId);var b=this.Ib,c=tf(b.yd),d;for(d in c)c[d]=c[d].toString();b=b.hf;c=Sa(c);for(d=0;d<b.length;d++){var e=b[d];e in c&&delete c[e]}Qa(c)||J(a,"customParameters",sf(c))}"function"===typeof this.Ib.Gd&&(b=this.Ib.Gd(),b.length&&J(a,"scopes",b.join(",")));this.fd?J(a,"redirectUrl",this.fd):Pe(a,"redirectUrl");
this.F?J(a,"eventId",this.F):Pe(a,"eventId");this.Qa?J(a,"v",this.Qa):Pe(a,"v");if(this.Tb)for(var f in this.Tb)this.Tb.hasOwnProperty(f)&&!Oe(a,f)&&J(a,f,this.Tb[f]);return a.toString()};
var fh=function(a,b,c,d){this.v=a;this.j=b;this.B=c;this.De=(this.Aa=d||null)?nf(this.Aa):null;d=this.Aa;this.Me=(new dh(a,b,c)).setVersion(d).toString();this.ia=[];this.g=new S(b,null,this.De);this.jc=this.sa=null},hh=function(a){var b=Xe();return Ag(a).then(function(a){a:{for(var c=Qe(b),e=c.da,c=c.$,f=0;f<a.length;f++){var g;var k=a[f];g=c;var n=e;0==k.indexOf("chrome-extension://")?g=Qe(k).$==g&&"chrome-extension"==n:"http"!=n&&"https"!=n?g=!1:ff.test(k)?g=g==k:(k=k.split(".").join("\\."),g=(new RegExp("^(.+\\."+
k+"|"+k+")$","i")).test(g));if(g){a=!0;break a}}a=!1}if(!a)throw new Of(Xe());})};h=fh.prototype;h.zb=function(){if(this.jc)return this.jc;var a=this;return this.jc=gf().then(function(){a.fc=new Yg(a.Me);ih(a)})};h.Nb=function(a,b,c){var d=new O("popup-closed-by-user"),e=new O("web-storage-unsupported"),f=this,g=!1;return this.Ga().then(function(){jh(f).then(function(c){c||(a&&cf(a),b(e),g=!0)})}).f(function(){}).then(function(){if(!g)return ef(a)}).then(function(){if(!g)return ke(c).then(function(){b(d)})})};
h.be=function(){var a=K();return!rf(a)&&!vf(a)};h.Jd=function(){return!1};h.Gb=function(a,b,c,d,e,f,g){if(!a)return F(new O("popup-blocked"));if(g&&!rf())return this.Ga().f(function(b){cf(a);e(b)}),d(),E();this.sa||(this.sa=hh(this.g));var k=this;return this.sa.then(function(){var b=k.Ga().f(function(b){cf(a);e(b);throw b;});d();return b}).then(function(){hg(c);if(!g){var d=kh(k.v,k.j,k.B,b,c,null,f,k.Aa);Ye(d,a)}}).f(function(a){"auth/network-request-failed"==a.code&&(k.sa=null);throw a;})};
h.Hb=function(a,b,c){this.sa||(this.sa=hh(this.g));var d=this;return this.sa.then(function(){hg(b);var e=kh(d.v,d.j,d.B,a,b,Xe(),c,d.Aa);Ye(e)})};h.Ga=function(){var a=this;return this.zb().then(function(){return a.fc.Zc}).f(function(){a.sa=null;throw new O("network-request-failed");})};h.ee=function(){return!0};
var kh=function(a,b,c,d,e,f,g,k,n){a=new eh(a,b,c,d,e);a.fd=f;a.F=g;f=a.setVersion(k);f.Tb=Sa(n||null);return f.toString()},ih=function(a){if(!a.fc)throw Error("IfcHandler must be initialized!");bh(a.fc,function(b){var c={};if(b&&b.authEvent){var d=!1;b=Nf(b.authEvent);for(c=0;c<a.ia.length;c++)d=a.ia[c](b)||d;c={};c.status=d?"ACK":"ERROR";return E(c)}c.status="ERROR";return E(c)})},jh=function(a){var b={type:"webStorageSupport"};return a.zb().then(function(){return a.fc.sendMessage(b)}).then(function(a){if(a&&
a.length&&"undefined"!==typeof a[0].webStorageSupport)return a[0].webStorageSupport;throw Error();})};fh.prototype.Sa=function(a){this.ia.push(a)};fh.prototype.Lb=function(a){Ka(this.ia,function(b){return b==a})};var lh=function(a){this.A=a||firebase.INTERNAL.reactNative&&firebase.INTERNAL.reactNative.AsyncStorage;if(!this.A)throw new O("internal-error","The React Native compatibility library was not found.");};h=lh.prototype;h.get=function(a){return E(this.A.getItem(a)).then(function(a){return a&&uf(a)})};h.set=function(a,b){return E(this.A.setItem(a,sf(b)))};h.remove=function(a){return E(this.A.removeItem(a))};h.Ta=function(){};h.Na=function(){};var mh=function(){this.A={}};h=mh.prototype;h.get=function(a){return E(this.A[a])};h.set=function(a,b){this.A[a]=b;return E()};h.remove=function(a){delete this.A[a];return E()};h.Ta=function(){};h.Na=function(){};var oh=function(){if(!nh()){if("Node"==L())throw new O("internal-error","The LocalStorage compatibility library was not found.");throw new O("web-storage-unsupported");}this.A=l.localStorage||firebase.INTERNAL.node.localStorage},nh=function(){var a="Node"==L(),a=l.localStorage||a&&firebase.INTERNAL.node&&firebase.INTERNAL.node.localStorage;if(!a)return!1;try{return a.setItem("__sak","1"),a.removeItem("__sak"),!0}catch(b){return!1}};h=oh.prototype;
h.get=function(a){var b=this;return E().then(function(){var c=b.A.getItem(a);return uf(c)})};h.set=function(a,b){var c=this;return E().then(function(){var d=sf(b);null===d?c.remove(a):c.A.setItem(a,d)})};h.remove=function(a){var b=this;return E().then(function(){b.A.removeItem(a)})};h.Ta=function(a){l.window&&Ub(l.window,"storage",a)};h.Na=function(a){l.window&&cc(l.window,"storage",a)};var ph=function(){this.A={}};h=ph.prototype;h.get=function(){return E(null)};h.set=function(){return E()};h.remove=function(){return E()};h.Ta=function(){};h.Na=function(){};var rh=function(){if(!qh()){if("Node"==L())throw new O("internal-error","The SessionStorage compatibility library was not found.");throw new O("web-storage-unsupported");}this.A=l.sessionStorage||firebase.INTERNAL.node.sessionStorage},qh=function(){var a="Node"==L(),a=l.sessionStorage||a&&firebase.INTERNAL.node&&firebase.INTERNAL.node.sessionStorage;if(!a)return!1;try{return a.setItem("__sak","1"),a.removeItem("__sak"),!0}catch(b){return!1}};h=rh.prototype;
h.get=function(a){var b=this;return E().then(function(){var c=b.A.getItem(a);return uf(c)})};h.set=function(a,b){var c=this;return E().then(function(){var d=sf(b);null===d?c.remove(a):c.A.setItem(a,d)})};h.remove=function(a){var b=this;return E().then(function(){b.A.removeItem(a)})};h.Ta=function(){};h.Na=function(){};var sh=function(a,b,c,d,e,f){if(!window.indexedDB)throw new O("web-storage-unsupported");this.ve=a;this.Yc=b;this.Kc=c;this.ie=d;this.sb=e;this.Y={};this.Ob=[];this.Cb=0;this.Ne=f||l.indexedDB},th,uh=function(a){return new D(function(b,c){var d=a.Ne.open(a.ve,a.sb);d.onerror=function(a){c(Error(a.target.errorCode))};d.onupgradeneeded=function(b){b=b.target.result;try{b.createObjectStore(a.Yc,{keyPath:a.Kc})}catch(f){c(f)}};d.onsuccess=function(a){b(a.target.result)}})},vh=function(a){a.Md||(a.Md=
uh(a));return a.Md},wh=function(a,b){return b.objectStore(a.Yc)},xh=function(a,b,c){return b.transaction([a.Yc],c?"readwrite":"readonly")},yh=function(a){return new D(function(b,c){a.onsuccess=function(a){a&&a.target?b(a.target.result):b()};a.onerror=function(a){c(Error(a.target.errorCode))}})};h=sh.prototype;
h.set=function(a,b){var c=!1,d,e=this;return Ed(vh(this).then(function(b){d=b;b=wh(e,xh(e,d,!0));return yh(b.get(a))}).then(function(f){var g=wh(e,xh(e,d,!0));if(f)return f.value=b,yh(g.put(f));e.Cb++;c=!0;f={};f[e.Kc]=a;f[e.ie]=b;return yh(g.add(f))}).then(function(){e.Y[a]=b}),function(){c&&e.Cb--})};h.get=function(a){var b=this;return vh(this).then(function(c){return yh(wh(b,xh(b,c,!1)).get(a))}).then(function(a){return a&&a.value})};
h.remove=function(a){var b=!1,c=this;return Ed(vh(this).then(function(d){b=!0;c.Cb++;return yh(wh(c,xh(c,d,!0))["delete"](a))}).then(function(){delete c.Y[a]}),function(){b&&c.Cb--})};
h.vf=function(){var a=this;return vh(this).then(function(b){var c=wh(a,xh(a,b,!1));return c.getAll?yh(c.getAll()):new D(function(a,b){var d=[],e=c.openCursor();e.onsuccess=function(b){(b=b.target.result)?(d.push(b.value),b["continue"]()):a(d)};e.onerror=function(a){b(Error(a.target.errorCode))}})}).then(function(b){var c={},d=[];if(0==a.Cb){for(d=0;d<b.length;d++)c[b[d][a.Kc]]=b[d][a.ie];d=Ze(a.Y,c);a.Y=c}return d})};h.Ta=function(a){0==this.Ob.length&&this.nd();this.Ob.push(a)};
h.Na=function(a){Ka(this.Ob,function(b){return b==a});0==this.Ob.length&&this.wc()};h.nd=function(){var a=this;this.wc();var b=function(){a.bd=ke(800).then(r(a.vf,a)).then(function(b){0<b.length&&x(a.Ob,function(a){a(b)})}).then(b).f(function(a){"STOP_EVENT"!=a.message&&b()});return a.bd};b()};h.wc=function(){this.bd&&this.bd.cancel("STOP_EVENT")};var Ch=function(){this.Bd={Browser:zh,Node:Ah,ReactNative:Bh}[L()]},Dh,zh={I:oh,qd:rh},Ah={I:oh,qd:rh},Bh={I:lh,qd:ph};var Eh=function(a){var b={},c=a.email,d=a.newEmail;a=a.requestType;if(!c||!a)throw Error("Invalid provider user info!");b.fromEmail=d||null;b.email=c;N(this,"operation",a);N(this,"data",Gf(b))};var Fh="First Second Third Fourth Fifth Sixth Seventh Eighth Ninth".split(" "),T=function(a,b){return{name:a||"",fa:"a valid string",optional:!!b,ha:p}},Gh=function(a){return{name:a||"",fa:"a valid object",optional:!1,ha:ga}},Hh=function(a,b){return{name:a||"",fa:"a function",optional:!!b,ha:q}},Ih=function(){return{name:"",fa:"null",optional:!1,ha:ca}},Jh=function(){return{name:"credential",fa:"a valid credential",optional:!1,ha:function(a){return!(!a||!a.$b)}}},Kh=function(){return{name:"authProvider",
fa:"a valid Auth provider",optional:!1,ha:function(a){return!!(a&&a.providerId&&a.hasOwnProperty&&a.hasOwnProperty("isOAuthProvider"))}}},Lh=function(a,b,c,d){return{name:c||"",fa:a.fa+" or "+b.fa,optional:!!d,ha:function(c){return a.ha(c)||b.ha(c)}}};var Mh=function(a,b,c,d,e,f){this.bf=a;this.kf=b;this.Fe=c;this.lc=d;this.rd=e;this.lf=!!f;this.cb=null;this.Ha=this.lc;if(this.rd<this.lc)throw Error("Proactive refresh lower bound greater than upper bound!");};Mh.prototype.start=function(){this.Ha=this.lc;Nh(this,!0)};
var Oh=function(a,b){if(b)return a.Ha=a.lc,a.Fe();b=a.Ha;a.Ha*=2;a.Ha>a.rd&&(a.Ha=a.rd);return b},Nh=function(a,b){a.stop();a.cb=ke(Oh(a,b)).then(function(){return a.lf?E():Af()}).then(function(){return a.bf()}).then(function(){Nh(a,!0)}).f(function(b){a.kf(b)&&Nh(a,!1)})};Mh.prototype.stop=function(){this.cb&&(this.cb.cancel(),this.cb=null)};var U=function(a,b){for(var c in b){var d=b[c].name;a[d]=Ph(d,a[c],b[c].a)}},V=function(a,b,c,d){a[b]=Ph(b,c,d)},Ph=function(a,b,c){if(!c)return b;var d=Qh(a);a=function(){var a=Array.prototype.slice.call(arguments),e;a:{e=Array.prototype.slice.call(a);var k;k=0;for(var n=!1,A=0;A<c.length;A++)if(c[A].optional)n=!0;else{if(n)throw new O("internal-error","Argument validator encountered a required argument after an optional argument.");k++}n=c.length;if(e.length<k||n<e.length)e="Expected "+(k==n?1==
k?"1 argument":k+" arguments":k+"-"+n+" arguments")+" but got "+e.length+".";else{for(k=0;k<e.length;k++)if(n=c[k].optional&&void 0===e[k],!c[k].ha(e[k])&&!n){e=c[k];if(0>k||k>=Fh.length)throw new O("internal-error","Argument validator received an unsupported number of arguments.");e=Fh[k]+" argument "+(e.name?'"'+e.name+'" ':"")+"must be "+e.fa+".";break a}e=null}}if(e)throw new O("argument-error",d+" failed: "+e);return b.apply(this,a)};for(var e in b)a[e]=b[e];for(e in b.prototype)a.prototype[e]=
b.prototype[e];return a},Qh=function(a){a=a.split(".");return a[a.length-1]};var Rh=function(a,b,c,d){this.Ye=a;this.Zd=b;this.mf=c;this.Mb=d;this.S={};Dh||(Dh=new Ch);a=Dh;try{var e;We()?(th||(th=new sh("firebaseLocalStorageDb","firebaseLocalStorage","fbase_key","value",1)),e=th):e=new a.Bd.I;this.La=e}catch(f){this.La=new mh,this.Mb=!0}try{this.yc=new a.Bd.qd}catch(f){this.yc=new mh}this.od=r(this.ce,this);this.Y={}},Sh,Th=function(){Sh||(Sh=new Rh("firebase",":",!vf(K())&&lf()?!0:!1,rf()));return Sh};h=Rh.prototype;
h.P=function(a,b){return this.Ye+this.Zd+a.name+(b?this.Zd+b:"")};h.get=function(a,b){return(a.I?this.La:this.yc).get(this.P(a,b))};h.remove=function(a,b){b=this.P(a,b);a.I&&!this.Mb&&(this.Y[b]=null);return(a.I?this.La:this.yc).remove(b)};h.set=function(a,b,c){var d=this.P(a,c),e=this,f=a.I?this.La:this.yc;return f.set(d,b).then(function(){return f.get(d)}).then(function(b){a.I&&!this.Mb&&(e.Y[d]=b)})};
h.addListener=function(a,b,c){a=this.P(a,b);this.Mb||(this.Y[a]=l.localStorage.getItem(a));Qa(this.S)&&this.nd();this.S[a]||(this.S[a]=[]);this.S[a].push(c)};h.removeListener=function(a,b,c){a=this.P(a,b);this.S[a]&&(Ka(this.S[a],function(a){return a==c}),0==this.S[a].length&&delete this.S[a]);Qa(this.S)&&this.wc()};h.nd=function(){this.La.Ta(this.od);this.Mb||We()||Uh(this)};
var Uh=function(a){Vh(a);a.Xc=setInterval(function(){for(var b in a.S){var c=l.localStorage.getItem(b),d=a.Y[b];c!=d&&(a.Y[b]=c,c=new Jb({type:"storage",key:b,target:window,oldValue:d,newValue:c,df:!0}),a.ce(c))}},1E3)},Vh=function(a){a.Xc&&(clearInterval(a.Xc),a.Xc=null)};Rh.prototype.wc=function(){this.La.Na(this.od);Vh(this)};
Rh.prototype.ce=function(a){if(a&&a.Ee){var b=a.Xa.key;"undefined"!==typeof a.Xa.df?this.La.Na(this.od):Vh(this);if(this.mf){var c=l.localStorage.getItem(b);a=a.Xa.newValue;a!=c&&(a?l.localStorage.setItem(b,a):a||l.localStorage.removeItem(b))}this.Y[b]=l.localStorage.getItem(b);this.ud(b)}else x(a,r(this.ud,this))};Rh.prototype.ud=function(a){this.S[a]&&x(this.S[a],function(a){a()})};var Wh=function(a,b){this.u=a;this.i=b||Th()},Xh={name:"authEvent",I:!0},Yh=function(a){return a.i.get(Xh,a.u).then(function(a){return Nf(a)})};Wh.prototype.Sa=function(a){this.i.addListener(Xh,this.u,a)};Wh.prototype.Lb=function(a){this.i.removeListener(Xh,this.u,a)};var Zh=function(a){this.i=a||Th()},$h={name:"sessionId",I:!1};Zh.prototype.ac=function(a){return this.i.get($h,a)};var ai=function(a,b,c,d,e,f){this.v=a;this.j=b;this.B=c;this.Aa=d||null;this.de=b+":"+c;this.nf=new Zh;this.Fd=new Wh(this.de);this.Tc=null;this.ia=[];this.Qe=e||500;this.ff=f||2E3;this.yb=this.oc=null},bi=function(a){return new O("invalid-cordova-configuration",a)};
ai.prototype.Ga=function(){return this.Vc?this.Vc:this.Vc=jf().then(function(){if("function"!==typeof M("universalLinks.subscribe",l))throw bi("cordova-universal-links-plugin is not installed");if("undefined"===typeof M("BuildInfo.packageName",l))throw bi("cordova-plugin-buildinfo is not installed");if("function"!==typeof M("cordova.plugins.browsertab.openUrl",l))throw bi("cordova-plugin-browsertab is not installed");if("function"!==typeof M("cordova.InAppBrowser.open",l))throw bi("cordova-plugin-inappbrowser is not installed");
},function(){throw new O("cordova-not-ready");})};var ci=function(){for(var a=20,b=[];0<a;)b.push("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(Math.floor(62*Math.random()))),a--;return b.join("")},di=function(a){var b=new Db;b.update(a);return ob(b.digest())};h=ai.prototype;h.Nb=function(a,b){b(new O("operation-not-supported-in-this-environment"));return E()};h.Gb=function(){return F(new O("operation-not-supported-in-this-environment"))};h.ee=function(){return!1};h.be=function(){return!0};
h.Jd=function(){return!0};
h.Hb=function(a,b,c){if(this.oc)return F(new O("redirect-operation-pending"));var d=this,e=l.document,f=null,g=null,k=null,n=null;return this.oc=Ed(E().then(function(){hg(b);return ei(d)}).then(function(){return fi(d,a,b,c)}).then(function(){return(new D(function(a,b){g=function(){var b=M("cordova.plugins.browsertab.close",l);a();"function"===typeof b&&b();d.yb&&"function"===typeof d.yb.close&&(d.yb.close(),d.yb=null);return!1};d.Sa(g);k=function(){f||(f=ke(d.ff).then(function(){b(new O("redirect-cancelled-by-user"))}))};n=
function(){zf()&&k()};e.addEventListener("resume",k,!1);K().toLowerCase().match(/android/)||e.addEventListener("visibilitychange",n,!1)})).f(function(a){return gi(d).then(function(){throw a;})})}),function(){k&&e.removeEventListener("resume",k,!1);n&&e.removeEventListener("visibilitychange",n,!1);f&&f.cancel();g&&d.Lb(g);d.oc=null})};
var fi=function(a,b,c,d){var e=ci(),f=new P(b,d,null,e,new O("no-auth-event")),g=M("BuildInfo.packageName",l);if("string"!==typeof g)throw new O("invalid-cordova-configuration");var k=M("BuildInfo.displayName",l),n={};if(K().toLowerCase().match(/iphone|ipad|ipod/))n.ibi=g;else if(K().toLowerCase().match(/android/))n.apn=g;else return F(new O("operation-not-supported-in-this-environment"));k&&(n.appDisplayName=k);e=di(e);n.sessionId=e;var A=kh(a.v,a.j,a.B,b,c,null,d,a.Aa,n);return a.Ga().then(function(){var b=
a.de;return a.nf.i.set(Xh,f.C(),b)}).then(function(){var b=M("cordova.plugins.browsertab.isAvailable",l);if("function"!==typeof b)throw new O("invalid-cordova-configuration");var c=null;b(function(b){if(b){c=M("cordova.plugins.browsertab.openUrl",l);if("function"!==typeof c)throw new O("invalid-cordova-configuration");c(A)}else{c=M("cordova.InAppBrowser.open",l);if("function"!==typeof c)throw new O("invalid-cordova-configuration");b=c;var d;d=K();d=!(!d.match(/(iPad|iPhone|iPod).*OS 7_\d/i)&&!d.match(/(iPad|iPhone|iPod).*OS 8_\d/i));
a.yb=b(A,d?"_blank":"_system","location=yes")}})})},hi=function(a,b){for(var c=0;c<a.ia.length;c++)try{a.ia[c](b)}catch(d){}},ei=function(a){a.Tc||(a.Tc=a.Ga().then(function(){return new D(function(b){var c=function(d){b(d);a.Lb(c);return!1};a.Sa(c);ii(a)})}));return a.Tc},gi=function(a){var b=null;return Yh(a.Fd).then(function(c){b=c;c=a.Fd;return c.i.remove(Xh,c.u)}).then(function(){return b})},ii=function(a){var b=M("universalLinks.subscribe",l);if("function"!==typeof b)throw new O("invalid-cordova-configuration");
var c=new P("unknown",null,null,null,new O("no-auth-event")),d=!1,e=ke(a.Qe).then(function(){return gi(a).then(function(){d||hi(a,c)})}),f=function(b){d=!0;e&&e.cancel();gi(a).then(function(d){var e=c;if(d&&b&&b.url){var e=null,f;f=b.url;var g=Qe(f),k=Oe(g,"link"),n=Oe(Qe(k),"link"),g=Oe(g,"deep_link_id");f=Oe(Qe(g),"link")||g||n||k||f;-1!=f.indexOf("/__/auth/callback")&&(e=Qe(f),e=uf(Oe(e,"firebaseError")||null),e=(e="object"===typeof e?Mf(e):null)?new P(d.ga,d.F,null,null,e):new P(d.ga,d.F,f,d.ac()));
e=e||c}hi(a,e)})},g=l.handleOpenURL;l.handleOpenURL=function(a){0==a.indexOf(M("BuildInfo.packageName",l)+"://")&&f({url:a});if("function"===typeof g)try{g(a)}catch(n){console.error(n)}};b(null,f)};ai.prototype.Sa=function(a){this.ia.push(a);ei(this).f(function(){})};ai.prototype.Lb=function(a){Ka(this.ia,function(b){return b==a})};var ji=function(a){this.u=a;this.i=Th()},ki={name:"pendingRedirect",I:!1},li=function(a){return a.i.set(ki,"pending",a.u)},mi=function(a){return a.i.remove(ki,a.u)},ni=function(a){return a.i.get(ki,a.u).then(function(a){return"pending"==a})};var W=function(a,b,c){this.v=a;this.j=b;this.B=c;this.Pb=[];this.ab=!1;this.Gc=r(this.Qc,this);this.hb=new oi(this);this.Td=new pi(this);this.Db=new ji(this.j+":"+this.B);this.pb={};this.pb.unknown=this.hb;this.pb.signInViaRedirect=this.hb;this.pb.linkViaRedirect=this.hb;this.pb.signInViaPopup=this.Td;this.pb.linkViaPopup=this.Td;this.G=qi(this.v,this.j,this.B)},qi=function(a,b,c){var d=firebase.SDK_VERSION||null;return hf()?new ai(a,b,c,d):new fh(a,b,c,d)};
W.prototype.reset=function(){this.ab=!1;this.G.Lb(this.Gc);this.G=qi(this.v,this.j,this.B)};W.prototype.zb=function(){var a=this;this.ab||(this.ab=!0,this.G.Sa(this.Gc));var b=this.G;return this.G.Ga().f(function(c){a.G==b&&a.reset();throw c;})};var ti=function(a){a.G.be()&&a.zb().f(function(b){var c=new P("unknown",null,null,null,new O("operation-not-supported-in-this-environment"));ri(b)&&a.Qc(c)});a.G.Jd()||si(a.hb)};
W.prototype.subscribe=function(a){Ha(this.Pb,a)||this.Pb.push(a);if(!this.ab){var b=this;ni(this.Db).then(function(a){a?mi(b.Db).then(function(){b.zb().f(function(a){var c=new P("unknown",null,null,null,new O("operation-not-supported-in-this-environment"));ri(a)&&b.Qc(c)})}):ti(b)}).f(function(){ti(b)})}};W.prototype.unsubscribe=function(a){Ka(this.Pb,function(b){return b==a})};
W.prototype.Qc=function(a){if(!a)throw new O("invalid-auth-event");for(var b=!1,c=0;c<this.Pb.length;c++){var d=this.Pb[c];if(d.vd(a.ga,a.F)){(b=this.pb[a.ga])&&b.Ud(a,d);b=!0;break}}si(this.hb);return b};var ui=new yf(2E3,1E4),vi=new yf(3E4,6E4);W.prototype.getRedirectResult=function(){return this.hb.getRedirectResult()};W.prototype.Gb=function(a,b,c,d,e){var f=this;return this.G.Gb(a,b,c,function(){f.ab||(f.ab=!0,f.G.Sa(f.Gc))},function(){f.reset()},d,e)};
var ri=function(a){return a&&"auth/cordova-not-ready"==a.code?!0:!1};W.prototype.Hb=function(a,b,c){var d=this,e;return li(this.Db).then(function(){return d.G.Hb(a,b,c).f(function(a){if(ri(a))throw new O("operation-not-supported-in-this-environment");e=a;return mi(d.Db).then(function(){throw e;})}).then(function(){return d.G.ee()?new D(function(){}):mi(d.Db).then(function(){return d.getRedirectResult()}).then(function(){}).f(function(){})})})};
W.prototype.Nb=function(a,b,c,d){return this.G.Nb(c,function(c){a.Oa(b,null,c,d)},ui.get())};var wi={},xi=function(a,b,c){var d=b+":"+c;wi[d]||(wi[d]=new W(a,b,c));return wi[d]},oi=function(a){this.i=a;this.kb=null;this.Kb=[];this.Jb=[];this.ib=null;this.ed=!1};oi.prototype.reset=function(){this.kb=null;this.ib&&(this.ib.cancel(),this.ib=null)};
oi.prototype.Ud=function(a,b){if(!a)return F(new O("invalid-auth-event"));this.reset();this.ed=!0;var c=a.ga,d=a.F,e=a.getError()&&"auth/web-storage-unsupported"==a.getError().code,f=a.getError()&&"auth/operation-not-supported-in-this-environment"==a.getError().code;"unknown"!=c||e||f?a=a.O?this.cd(a,b):b.vb(c,d)?this.dd(a,b):F(new O("invalid-auth-event")):(yi(this,!1,null,null),a=E());return a};var si=function(a){a.ed||(a.ed=!0,yi(a,!1,null,null))};
oi.prototype.cd=function(a){yi(this,!0,null,a.getError());return E()};oi.prototype.dd=function(a,b){var c=this,d=a.ga;b=b.vb(d,a.F);var e=a.qb;a=a.ac();var f="signInViaRedirect"==d||"linkViaRedirect"==d;return b(e,a).then(function(a){yi(c,f,a,null)}).f(function(a){yi(c,f,null,a)})};
var zi=function(a,b){a.kb=function(){return F(b)};if(a.Jb.length)for(var c=0;c<a.Jb.length;c++)a.Jb[c](b)},Ai=function(a,b){a.kb=function(){return E(b)};if(a.Kb.length)for(var c=0;c<a.Kb.length;c++)a.Kb[c](b)},yi=function(a,b,c,d){b?d?zi(a,d):Ai(a,c):Ai(a,{user:null});a.Kb=[];a.Jb=[]};oi.prototype.getRedirectResult=function(){var a=this;return new D(function(b,c){a.kb?a.kb().then(b,c):(a.Kb.push(b),a.Jb.push(c),Bi(a))})};
var Bi=function(a){var b=new O("timeout");a.ib&&a.ib.cancel();a.ib=ke(vi.get()).then(function(){a.kb||yi(a,!0,null,b)})},pi=function(a){this.i=a};pi.prototype.Ud=function(a,b){if(!a)return F(new O("invalid-auth-event"));var c=a.ga,d=a.F;return a.O?this.cd(a,b):b.vb(c,d)?this.dd(a,b):F(new O("invalid-auth-event"))};pi.prototype.cd=function(a,b){b.Oa(a.ga,null,a.getError(),a.F);return E()};
pi.prototype.dd=function(a,b){var c=a.F,d=a.ga,e=b.vb(d,c),f=a.qb;a=a.ac();return e(f,a).then(function(a){b.Oa(d,a,null,c)}).f(function(a){b.Oa(d,null,a,c)})};var Ci=function(a){this.g=a;this.xa=this.W=null;this.Ca=0};Ci.prototype.C=function(){return{apiKey:this.g.j,refreshToken:this.W,accessToken:this.xa,expirationTime:this.Ca}};
var Ei=function(a,b){var c=b.idToken,d=b.refreshToken;b=Di(b.expiresIn);a.xa=c;a.Ca=b;a.W=d},Di=function(a){return ka()+1E3*parseInt(a,10)},Fi=function(a,b){return tg(a.g,b).then(function(b){a.xa=b.access_token;a.Ca=Di(b.expires_in);a.W=b.refresh_token;return{accessToken:a.xa,expirationTime:a.Ca,refreshToken:a.W}}).f(function(b){"auth/user-token-expired"==b.code&&(a.W=null);throw b;})};
Ci.prototype.getToken=function(a){a=!!a;return this.xa&&!this.W?F(new O("user-token-expired")):a||!this.xa||ka()>this.Ca-3E4?this.W?Fi(this,{grant_type:"refresh_token",refresh_token:this.W}):E(null):E({accessToken:this.xa,expirationTime:this.Ca,refreshToken:this.W})};var Gi=function(a,b,c,d,e){Df(this,{uid:a,displayName:d||null,photoURL:e||null,email:c||null,providerId:b})},Hi=function(a,b){Ib.call(this,a);for(var c in b)this[c]=b[c]};t(Hi,Ib);
var X=function(a,b,c){this.Z=[];this.j=a.apiKey;this.B=a.appName;this.v=a.authDomain||null;a=firebase.SDK_VERSION?nf(firebase.SDK_VERSION):null;this.g=new S(this.j,null,a);this.ea=new Ci(this.g);Ii(this,b.idToken);Ei(this.ea,b);N(this,"refreshToken",this.ea.W);Ji(this,c||{});ge.call(this);this.pc=!1;this.v&&qf()&&(this.m=xi(this.v,this.j,this.B));this.vc=[];this.oa=null;this.fb=Ki(this);this.rb=r(this.Rc,this)};t(X,ge);X.prototype.Rc=function(){this.fb.cb&&(this.fb.stop(),this.fb.start())};
var Ki=function(a){return new Mh(function(){return a.getToken(!0)},function(a){return a&&"auth/network-request-failed"==a.code?!0:!1},function(){var b=a.ea.Ca-ka()-3E5;return 0<b?b:0},3E4,96E4,!1)},Li=function(a){a.Ad||a.fb.cb||(a.fb.start(),cc(a,"tokenChanged",a.rb),Ub(a,"tokenChanged",a.rb))},Mi=function(a){cc(a,"tokenChanged",a.rb);a.fb.stop()},Ii=function(a,b){a.Nd=b;N(a,"_lat",b)},Ni=function(a,b){Ka(a.vc,function(a){return a==b})},Oi=function(a){for(var b=[],c=0;c<a.vc.length;c++)b.push(a.vc[c](a));
return Bd(b).then(function(){return a})},Pi=function(a){a.m&&!a.pc&&(a.pc=!0,a.m.subscribe(a))},Ji=function(a,b){Df(a,{uid:b.uid,displayName:b.displayName||null,photoURL:b.photoURL||null,email:b.email||null,emailVerified:b.emailVerified||!1,isAnonymous:b.isAnonymous||!1,providerData:[]})};N(X.prototype,"providerId","firebase");
var Qi=function(){},Ri=function(a){return E().then(function(){if(a.Ad)throw new O("app-deleted");})},Si=function(a){return Da(a.providerData,function(a){return a.providerId})},Ui=function(a,b){b&&(Ti(a,b.providerId),a.providerData.push(b))},Ti=function(a,b){Ka(a.providerData,function(a){return a.providerId==b})},Vi=function(a,b,c){("uid"!=b||c)&&a.hasOwnProperty(b)&&N(a,b,c)};
X.prototype.copy=function(a){var b=this;b!=a&&(Df(this,{uid:a.uid,displayName:a.displayName,photoURL:a.photoURL,email:a.email,emailVerified:a.emailVerified,isAnonymous:a.isAnonymous,providerData:[]}),x(a.providerData,function(a){Ui(b,a)}),this.ea=a.ea,N(this,"refreshToken",this.ea.W))};X.prototype.reload=function(){var a=this;return this.c(Ri(this).then(function(){return Wi(a).then(function(){return Oi(a)}).then(Qi)}))};
var Wi=function(a){return a.getToken().then(function(b){var c=a.isAnonymous;return Xi(a,b).then(function(){c||Vi(a,"isAnonymous",!1);return b})})};X.prototype.getToken=function(a){var b=this;return this.c(Ri(this).then(function(){return b.ea.getToken(a)}).then(function(a){if(!a)throw new O("internal-error");a.accessToken!=b.Nd&&(Ii(b,a.accessToken),b.Ia());Vi(b,"refreshToken",a.refreshToken);return a.accessToken}))};
var Yi=function(a,b){b.idToken&&a.Nd!=b.idToken&&(Ei(a.ea,b),a.Ia(),Ii(a,b.idToken),Vi(a,"refreshToken",a.ea.W))};X.prototype.Ia=function(){this.dispatchEvent(new Hi("tokenChanged"))};var Xi=function(a,b){return R(a.g,Tg,{idToken:b}).then(r(a.cf,a))};
X.prototype.cf=function(a){a=a.users;if(!a||!a.length)throw new O("internal-error");a=a[0];Ji(this,{uid:a.localId,displayName:a.displayName,photoURL:a.photoUrl,email:a.email,emailVerified:!!a.emailVerified});for(var b=Zi(a),c=0;c<b.length;c++)Ui(this,b[c]);Vi(this,"isAnonymous",!(this.email&&a.passwordHash)&&!(this.providerData&&this.providerData.length))};
var Zi=function(a){return(a=a.providerUserInfo)&&a.length?Da(a,function(a){return new Gi(a.rawId,a.providerId,a.email,a.displayName,a.photoUrl)}):[]};
X.prototype.reauthenticate=function(a){var b=this;return this.c(a.$b(this.g).then(function(a){var c;a:{var e=a.idToken.split(".");if(3==e.length){for(var e=e[1],f=(4-e.length%4)%4,g=0;g<f;g++)e+=".";try{var k=JSON.parse(sb(e));if(k.sub&&k.iss&&k.aud&&k.exp){c=new Pf(k);break a}}catch(n){}}c=null}if(!c||b.uid!=c.Ue)throw new O("user-mismatch");Yi(b,a);b.oa=null;return b.reload()}),!0)};
var $i=function(a,b){return Wi(a).then(function(){if(Ha(Si(a),b))return Oi(a).then(function(){throw new O("provider-already-linked");})})};h=X.prototype;h.link=function(a){var b=this;return this.c($i(this,a.provider).then(function(){return b.getToken()}).then(function(c){return a.Pd(b.g,c)}).then(r(this.Dd,this)))};h.Dd=function(a){Yi(this,a);var b=this;return this.reload().then(function(){return b})};
h.updateEmail=function(a){var b=this;return this.c(this.getToken().then(function(c){return b.g.updateEmail(c,a)}).then(function(a){Yi(b,a);return b.reload()}))};h.updatePassword=function(a){var b=this;return this.c(this.getToken().then(function(c){return b.g.updatePassword(c,a)}).then(function(a){Yi(b,a);return b.reload()}))};
h.updateProfile=function(a){if(void 0===a.displayName&&void 0===a.photoURL)return Ri(this);var b=this;return this.c(this.getToken().then(function(c){return b.g.updateProfile(c,{displayName:a.displayName,photoUrl:a.photoURL})}).then(function(a){Yi(b,a);Vi(b,"displayName",a.displayName||null);Vi(b,"photoURL",a.photoUrl||null);return Oi(b)}).then(Qi))};
h.unlink=function(a){var b=this;return this.c(Wi(this).then(function(c){return Ha(Si(b),a)?Ig(b.g,c,[a]).then(function(a){var c={};x(a.providerUserInfo||[],function(a){c[a.providerId]=!0});x(Si(b),function(a){c[a]||Ti(b,a)});return Oi(b)}):Oi(b).then(function(){throw new O("no-such-provider");})}))};
h["delete"]=function(){var a=this;return this.c(this.getToken().then(function(b){return R(a.g,Sg,{idToken:b})}).then(function(){a.dispatchEvent(new Hi("userDeleted"))})).then(function(){for(var b=0;b<a.Z.length;b++)a.Z[b].cancel("app-deleted");a.Z=[];a.Ad=!0;Mi(a);N(a,"refreshToken",null);a.m&&a.m.unsubscribe(a)})};h.vd=function(a,b){return"linkViaPopup"==a&&(this.la||null)==b&&this.ca||"linkViaRedirect"==a&&(this.sc||null)==b?!0:!1};
h.Oa=function(a,b,c,d){"linkViaPopup"==a&&d==(this.la||null)&&(c&&this.Ka?this.Ka(c):b&&!c&&this.ca&&this.ca(b),this.J&&(this.J.cancel(),this.J=null),delete this.ca,delete this.Ka)};h.vb=function(a,b){return"linkViaPopup"==a&&b==(this.la||null)||"linkViaRedirect"==a&&(this.sc||null)==b?r(this.ye,this):null};h.Zb=function(){return pf(this.uid+":::")};
h.linkWithPopup=function(a){if(!qf())return F(new O("operation-not-supported-in-this-environment"));if(this.oa)return F(this.oa);var b=this,c=Kf(a.providerId),d=this.Zb(),e=null;(!rf()||lf())&&this.v&&a.isOAuthProvider&&(e=kh(this.v,this.j,this.B,"linkViaPopup",a,null,d,firebase.SDK_VERSION||null));var f=df(e,c&&c.Fb,c&&c.Eb),c=$i(this,a.providerId).then(function(){return Oi(b)}).then(function(){aj(b);return b.getToken()}).then(function(){return b.m.Gb(f,"linkViaPopup",a,d,!!e)}).then(function(){return new D(function(a,
c){b.Oa("linkViaPopup",null,new O("cancelled-popup-request"),b.la||null);b.ca=a;b.Ka=c;b.la=d;b.J=b.m.Nb(b,"linkViaPopup",f,d)})}).then(function(a){f&&cf(f);return a}).f(function(a){f&&cf(f);throw a;});return this.c(c)};
h.linkWithRedirect=function(a){if(!qf())return F(new O("operation-not-supported-in-this-environment"));if(this.oa)return F(this.oa);var b=this,c=null,d=this.Zb(),e=$i(this,a.providerId).then(function(){aj(b);return b.getToken()}).then(function(){b.sc=d;return Oi(b)}).then(function(a){b.Ma&&(a=b.Ma,a=a.i.set(bj,b.C(),a.u));return a}).then(function(){return b.m.Hb("linkViaRedirect",a,d)}).f(function(a){c=a;if(b.Ma)return cj(b.Ma);throw c;}).then(function(){if(c)throw c;});return this.c(e)};
var aj=function(a){if(!a.m||!a.pc){if(a.m&&!a.pc)throw new O("internal-error");throw new O("auth-domain-config-required");}};X.prototype.ye=function(a,b){var c=this;this.J&&(this.J.cancel(),this.J=null);var d=null,e=this.getToken().then(function(d){return Tf(c.g,{requestUri:a,sessionId:b,idToken:d})}).then(function(a){d=gg(a);return c.Dd(a)}).then(function(a){return{user:a,credential:d}});return this.c(e)};
X.prototype.sendEmailVerification=function(){var a=this;return this.c(this.getToken().then(function(b){return a.g.sendEmailVerification(b)}).then(function(b){if(a.email!=b)return a.reload()}).then(function(){}))};X.prototype.c=function(a,b){var c=this,d=dj(this,a,b);this.Z.push(d);Ed(d,function(){Ja(c.Z,d)});return d};
var dj=function(a,b,c){return a.oa&&!c?(b.cancel(),F(a.oa)):b.f(function(b){!b||"auth/user-disabled"!=b.code&&"auth/user-token-expired"!=b.code||(a.oa||a.dispatchEvent(new Hi("userInvalidated")),a.oa=b);throw b;})};X.prototype.toJSON=function(){return this.C()};
X.prototype.C=function(){var a={uid:this.uid,displayName:this.displayName,photoURL:this.photoURL,email:this.email,emailVerified:this.emailVerified,isAnonymous:this.isAnonymous,providerData:[],apiKey:this.j,appName:this.B,authDomain:this.v,stsTokenManager:this.ea.C(),redirectEventId:this.sc||null};x(this.providerData,function(b){a.providerData.push(Ef(b))});return a};
var ej=function(a){if(!a.apiKey)return null;var b={apiKey:a.apiKey,authDomain:a.authDomain,appName:a.appName},c={};if(a.stsTokenManager&&a.stsTokenManager.accessToken&&a.stsTokenManager.expirationTime)c.idToken=a.stsTokenManager.accessToken,c.refreshToken=a.stsTokenManager.refreshToken||null,c.expiresIn=(a.stsTokenManager.expirationTime-ka())/1E3;else return null;var d=new X(b,c,a);a.providerData&&x(a.providerData,function(a){if(a){var b={};Df(b,a);Ui(d,b)}});a.redirectEventId&&(d.sc=a.redirectEventId);
return d},fj=function(a,b,c){var d=new X(a,b);c&&(d.Ma=c);return d.reload().then(function(){return d})};var gj=function(a){this.u=a;this.i=Th()},bj={name:"redirectUser",I:!1},cj=function(a){return a.i.remove(bj,a.u)},hj=function(a,b){return a.i.get(bj,a.u).then(function(a){a&&b&&(a.authDomain=b);return ej(a||{})})};var ij=function(a){this.u=a;this.i=Th()},jj={name:"authUser",I:!0},kj=function(a,b){return a.i.set(jj,b.C(),a.u)},lj=function(a){return a.i.remove(jj,a.u)},mj=function(a,b){return a.i.get(jj,a.u).then(function(a){a&&b&&(a.authDomain=b);return ej(a||{})})};var rj=function(a){this.Va=!1;N(this,"app",a);if(Y(this).options&&Y(this).options.apiKey)a=firebase.SDK_VERSION?nf(firebase.SDK_VERSION):null,this.g=new S(Y(this).options&&Y(this).options.apiKey,null,a);else throw new O("invalid-api-key");this.Z=[];this.ya=[];this.$e=firebase.INTERNAL.createSubscribe(r(this.Oe,this));nj(this,null);this.pa=new ij(Y(this).options.apiKey+":"+Y(this).name);this.jb=new gj(Y(this).options.apiKey+":"+Y(this).name);this.Ub=this.c(oj(this));this.ua=this.c(pj(this));this.Wc=
!1;this.Pc=r(this.uf,this);this.he=r(this.Za,this);this.rb=r(this.Rc,this);this.fe=r(this.Je,this);this.ge=r(this.Ke,this);qj(this);this.INTERNAL={};this.INTERNAL["delete"]=r(this["delete"],this);this.Da=0};rj.prototype.toJSON=function(){return{apiKey:Y(this).options.apiKey,authDomain:Y(this).options.authDomain,appName:Y(this).name,currentUser:Z(this)&&Z(this).C()}};
var sj=function(a){return a.we||F(new O("auth-domain-config-required"))},qj=function(a){var b=Y(a).options.authDomain,c=Y(a).options.apiKey;b&&qf()&&(a.we=a.Ub.then(function(){if(!a.Va)return a.m=xi(b,c,Y(a).name),a.m.subscribe(a),Z(a)&&Pi(Z(a)),a.gd&&(Pi(a.gd),a.gd=null),a.m}))};h=rj.prototype;h.vd=function(a,b){switch(a){case "unknown":case "signInViaRedirect":return!0;case "signInViaPopup":return this.la==b&&!!this.ca;default:return!1}};
h.Oa=function(a,b,c,d){"signInViaPopup"==a&&this.la==d&&(c&&this.Ka?this.Ka(c):b&&!c&&this.ca&&this.ca(b),this.J&&(this.J.cancel(),this.J=null),delete this.ca,delete this.Ka)};h.vb=function(a,b){return"signInViaRedirect"==a||"signInViaPopup"==a&&this.la==b&&this.ca?r(this.ze,this):null};
h.ze=function(a,b){var c=this;a={requestUri:a,sessionId:b};this.J&&(this.J.cancel(),this.J=null);var d=null,e=Rf(c.g,a).then(function(a){d=gg(a);return a});a=c.Ub.then(function(){return e}).then(function(a){return tj(c,a)}).then(function(){return{user:Z(c),credential:d}});return this.c(a)};h.Zb=function(){return pf()};
h.signInWithPopup=function(a){if(!qf())return F(new O("operation-not-supported-in-this-environment"));var b=this,c=Kf(a.providerId),d=this.Zb(),e=null;(!rf()||lf())&&Y(this).options.authDomain&&a.isOAuthProvider&&(e=kh(Y(this).options.authDomain,Y(this).options.apiKey,Y(this).name,"signInViaPopup",a,null,d,firebase.SDK_VERSION||null));var f=df(e,c&&c.Fb,c&&c.Eb),c=sj(this).then(function(b){return b.Gb(f,"signInViaPopup",a,d,!!e)}).then(function(){return new D(function(a,c){b.Oa("signInViaPopup",null,
new O("cancelled-popup-request"),b.la);b.ca=a;b.Ka=c;b.la=d;b.J=b.m.Nb(b,"signInViaPopup",f,d)})}).then(function(a){f&&cf(f);return a}).f(function(a){f&&cf(f);throw a;});return this.c(c)};h.signInWithRedirect=function(a){if(!qf())return F(new O("operation-not-supported-in-this-environment"));var b=this,c=sj(this).then(function(){return b.m.Hb("signInViaRedirect",a)});return this.c(c)};
h.getRedirectResult=function(){if(!qf())return F(new O("operation-not-supported-in-this-environment"));var a=this,b=sj(this).then(function(){return a.m.getRedirectResult()});return this.c(b)};
var tj=function(a,b){var c={};c.apiKey=Y(a).options.apiKey;c.authDomain=Y(a).options.authDomain;c.appName=Y(a).name;return a.Ub.then(function(){return fj(c,b,a.jb)}).then(function(b){if(Z(a)&&b.uid==Z(a).uid)return Z(a).copy(b),a.Za(b);nj(a,b);Pi(b);return a.Za(b)}).then(function(){a.Ia()})},nj=function(a,b){Z(a)&&(Ni(Z(a),a.he),cc(Z(a),"tokenChanged",a.rb),cc(Z(a),"userDeleted",a.fe),cc(Z(a),"userInvalidated",a.ge),Mi(Z(a)));b&&(b.vc.push(a.he),Ub(b,"tokenChanged",a.rb),Ub(b,"userDeleted",a.fe),
Ub(b,"userInvalidated",a.ge),0<a.Da&&Li(b));N(a,"currentUser",b)};rj.prototype.signOut=function(){var a=this,b=this.ua.then(function(){if(!Z(a))return E();nj(a,null);return lj(a.pa).then(function(){a.Ia()})});return this.c(b)};
var uj=function(a){var b=hj(a.jb,Y(a).options.authDomain).then(function(b){if(a.gd=b)b.Ma=a.jb;return cj(a.jb)});return a.c(b)},oj=function(a){var b=Y(a).options.authDomain,c=uj(a).then(function(){return mj(a.pa,b)}).then(function(b){return b?(b.Ma=a.jb,b.reload().then(function(){return kj(a.pa,b).then(function(){return b})}).f(function(c){return"auth/network-request-failed"==c.code?b:lj(a.pa)})):null}).then(function(b){nj(a,b||null)});return a.c(c)},pj=function(a){return a.Ub.then(function(){return a.getRedirectResult()}).f(function(){}).then(function(){if(!a.Va)return a.Pc()}).f(function(){}).then(function(){if(!a.Va){a.Wc=
!0;var b=a.pa;b.i.addListener(jj,b.u,a.Pc)}})};h=rj.prototype;h.uf=function(){var a=this;return mj(this.pa,Y(this).options.authDomain).then(function(b){if(!a.Va){var c;if(c=Z(a)&&b){c=Z(a).uid;var d=b.uid;c=void 0===c||null===c||""===c||void 0===d||null===d||""===d?!1:c==d}if(c)return Z(a).copy(b),Z(a).getToken();if(Z(a)||b)nj(a,b),b&&(Pi(b),b.Ma=a.jb),a.m&&a.m.subscribe(a),a.Ia()}})};h.Za=function(a){return kj(this.pa,a)};h.Rc=function(){this.Ia();this.Za(Z(this))};h.Je=function(){this.signOut()};
h.Ke=function(){this.signOut()};var vj=function(a,b){return a.c(b.then(function(b){return tj(a,b)}).then(function(){return Z(a)}))};h=rj.prototype;h.Oe=function(a){var b=this;this.addAuthTokenListener(function(){a.next(Z(b))})};h.onAuthStateChanged=function(a,b,c){var d=this;this.Wc&&firebase.Promise.resolve().then(function(){q(a)?a(Z(d)):q(a.next)&&a.next(Z(d))});return this.$e(a,b,c)};
h.getToken=function(a){var b=this,c=this.ua.then(function(){return Z(b)?Z(b).getToken(a).then(function(a){return{accessToken:a}}):null});return this.c(c)};h.signInWithCustomToken=function(a){var b=this;return this.ua.then(function(){return vj(b,R(b.g,Ug,{token:a}))}).then(function(a){Vi(a,"isAnonymous",!1);return b.Za(a)}).then(function(){return Z(b)})};h.signInWithEmailAndPassword=function(a,b){var c=this;return this.ua.then(function(){return vj(c,R(c.g,dg,{email:a,password:b}))})};
h.createUserWithEmailAndPassword=function(a,b){var c=this;return this.ua.then(function(){return vj(c,R(c.g,Rg,{email:a,password:b}))})};h.signInWithCredential=function(a){var b=this;return this.ua.then(function(){return vj(b,a.$b(b.g))})};h.signInAnonymously=function(){var a=Z(this),b=this;return a&&a.isAnonymous?E(a):this.ua.then(function(){return vj(b,b.g.signInAnonymously())}).then(function(a){Vi(a,"isAnonymous",!0);return b.Za(a)}).then(function(){return Z(b)})};
var Y=function(a){return a.app},Z=function(a){return a.currentUser};h=rj.prototype;h.getUid=function(){return Z(this)&&Z(this).uid||null};h.Ia=function(){if(this.Wc)for(var a=0;a<this.ya.length;a++)if(this.ya[a])this.ya[a](Z(this)&&Z(this)._lat||null)};h.qe=function(a){this.addAuthTokenListener(a);this.Da++;0<this.Da&&Z(this)&&Li(Z(this))};h.gf=function(a){var b=this;x(this.ya,function(c){c==a&&b.Da--});0>this.Da&&(this.Da=0);0==this.Da&&Z(this)&&Mi(Z(this));this.removeAuthTokenListener(a)};
h.addAuthTokenListener=function(a){var b=this;this.ya.push(a);this.c(this.ua.then(function(){b.Va||Ha(b.ya,a)&&a(Z(b)&&Z(b)._lat||null)}))};h.removeAuthTokenListener=function(a){Ka(this.ya,function(b){return b==a})};h["delete"]=function(){this.Va=!0;for(var a=0;a<this.Z.length;a++)this.Z[a].cancel("app-deleted");this.Z=[];this.pa&&(a=this.pa,a.i.removeListener(jj,a.u,this.Pc));this.m&&this.m.unsubscribe(this);return firebase.Promise.resolve()};
h.c=function(a){var b=this;this.Z.push(a);Ed(a,function(){Ja(b.Z,a)});return a};h.fetchProvidersForEmail=function(a){return this.c(yg(this.g,a))};h.verifyPasswordResetCode=function(a){return this.checkActionCode(a).then(function(a){return a.data.email})};h.confirmPasswordReset=function(a,b){return this.c(this.g.confirmPasswordReset(a,b).then(function(){}))};h.checkActionCode=function(a){return this.c(this.g.checkActionCode(a).then(function(a){return new Eh(a)}))};h.applyActionCode=function(a){return this.c(this.g.applyActionCode(a).then(function(){}))};
h.sendPasswordResetEmail=function(a){return this.c(this.g.sendPasswordResetEmail(a).then(function(){}))};U(rj.prototype,{applyActionCode:{name:"applyActionCode",a:[T("code")]},checkActionCode:{name:"checkActionCode",a:[T("code")]},confirmPasswordReset:{name:"confirmPasswordReset",a:[T("code"),T("newPassword")]},createUserWithEmailAndPassword:{name:"createUserWithEmailAndPassword",a:[T("email"),T("password")]},fetchProvidersForEmail:{name:"fetchProvidersForEmail",a:[T("email")]},getRedirectResult:{name:"getRedirectResult",a:[]},onAuthStateChanged:{name:"onAuthStateChanged",a:[Lh(Gh(),Hh(),"nextOrObserver"),
Hh("opt_error",!0),Hh("opt_completed",!0)]},sendPasswordResetEmail:{name:"sendPasswordResetEmail",a:[T("email")]},signInAnonymously:{name:"signInAnonymously",a:[]},signInWithCredential:{name:"signInWithCredential",a:[Jh()]},signInWithCustomToken:{name:"signInWithCustomToken",a:[T("token")]},signInWithEmailAndPassword:{name:"signInWithEmailAndPassword",a:[T("email"),T("password")]},signInWithPopup:{name:"signInWithPopup",a:[Kh()]},signInWithRedirect:{name:"signInWithRedirect",a:[Kh()]},signOut:{name:"signOut",
a:[]},toJSON:{name:"toJSON",a:[T(null,!0)]},verifyPasswordResetCode:{name:"verifyPasswordResetCode",a:[T("code")]}});
U(X.prototype,{"delete":{name:"delete",a:[]},getToken:{name:"getToken",a:[{name:"opt_forceRefresh",fa:"a boolean",optional:!0,ha:function(a){return"boolean"==typeof a}}]},link:{name:"link",a:[Jh()]},linkWithPopup:{name:"linkWithPopup",a:[Kh()]},linkWithRedirect:{name:"linkWithRedirect",a:[Kh()]},reauthenticate:{name:"reauthenticate",a:[Jh()]},reload:{name:"reload",a:[]},sendEmailVerification:{name:"sendEmailVerification",a:[]},toJSON:{name:"toJSON",a:[T(null,!0)]},unlink:{name:"unlink",a:[T("provider")]},
updateEmail:{name:"updateEmail",a:[T("email")]},updatePassword:{name:"updatePassword",a:[T("password")]},updateProfile:{name:"updateProfile",a:[Gh("profile")]}});U(D.prototype,{f:{name:"catch"},then:{name:"then"}});V(fg,"credential",function(a,b){return new cg(a,b)},[T("email"),T("password")]);U(Vf.prototype,{addScope:{name:"addScope",a:[T("scope")]},setCustomParameters:{name:"setCustomParameters",a:[Gh("customOAuthParameters")]}});V(Vf,"credential",Wf,[Lh(T(),Gh(),"token")]);
U(Xf.prototype,{addScope:{name:"addScope",a:[T("scope")]},setCustomParameters:{name:"setCustomParameters",a:[Gh("customOAuthParameters")]}});V(Xf,"credential",Yf,[Lh(T(),Gh(),"token")]);U(Zf.prototype,{addScope:{name:"addScope",a:[T("scope")]},setCustomParameters:{name:"setCustomParameters",a:[Gh("customOAuthParameters")]}});V(Zf,"credential",$f,[Lh(T(),Ih(),"idToken",!0),Lh(T(),Ih(),"accessToken",!0)]);U(ag.prototype,{setCustomParameters:{name:"setCustomParameters",a:[Gh("customOAuthParameters")]}});
V(ag,"credential",bg,[Lh(T(),Gh(),"token"),T("secret",!0)]);U(O.prototype,{toJSON:{name:"toJSON",a:[T(null,!0)]}});U(ig.prototype,{toJSON:{name:"toJSON",a:[T(null,!0)]}});U(Of.prototype,{toJSON:{name:"toJSON",a:[T(null,!0)]}});
(function(){if("undefined"!==typeof firebase&&firebase.INTERNAL&&firebase.INTERNAL.registerService){var a={Auth:rj,Error:O};V(a,"EmailAuthProvider",fg,[]);V(a,"FacebookAuthProvider",Vf,[]);V(a,"GithubAuthProvider",Xf,[]);V(a,"GoogleAuthProvider",Zf,[]);V(a,"TwitterAuthProvider",ag,[]);firebase.INTERNAL.registerService("auth",function(a,c){a=new rj(a);c({INTERNAL:{getUid:r(a.getUid,a),getToken:r(a.getToken,a),addAuthTokenListener:r(a.qe,a),removeAuthTokenListener:r(a.gf,a)}});return a},a,function(a,
c){if("create"===a)try{c.auth()}catch(d){}});firebase.INTERNAL.extendNamespace({User:X})}else throw Error("Cannot find the firebase namespace; be sure to include firebase-app.js before this library.");})();}).call(this);
(function() {var g,aa=this;function n(a){return void 0!==a}function ba(){}function ca(a){a.Vb=function(){return a.Ye?a.Ye:a.Ye=new a}}
function da(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function ea(a){return"array"==da(a)}function fa(a){var b=da(a);return"array"==b||"object"==b&&"number"==typeof a.length}function p(a){return"string"==typeof a}function ga(a){return"number"==typeof a}function ha(a){return"function"==da(a)}function ia(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function ja(a,b,c){return a.call.apply(a.bind,arguments)}
function ka(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function q(a,b,c){q=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ja:ka;return q.apply(null,arguments)}
function la(a,b){function c(){}c.prototype=b.prototype;a.wg=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.sg=function(a,c,f){for(var h=Array(arguments.length-2),k=2;k<arguments.length;k++)h[k-2]=arguments[k];return b.prototype[c].apply(a,h)}};function r(a,b){for(var c in a)b.call(void 0,a[c],c,a)}function ma(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function na(a,b){for(var c in a)if(!b.call(void 0,a[c],c,a))return!1;return!0}function oa(a){var b=0,c;for(c in a)b++;return b}function pa(a){for(var b in a)return b}function qa(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function ra(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}function sa(a,b){for(var c in a)if(a[c]==b)return!0;return!1}
function ta(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d}function ua(a,b){var c=ta(a,b,void 0);return c&&a[c]}function va(a){for(var b in a)return!1;return!0}function wa(a){var b={},c;for(c in a)b[c]=a[c];return b};var t=Array.prototype,xa=t.indexOf?function(a,b,c){return t.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(p(a))return p(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},ya=t.forEach?function(a,b,c){t.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=p(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},za=t.filter?function(a,b,c){return t.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,h=p(a)?
a.split(""):a,k=0;k<d;k++)if(k in h){var l=h[k];b.call(c,l,k,a)&&(e[f++]=l)}return e},Aa=t.map?function(a,b,c){return t.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=p(a)?a.split(""):a,h=0;h<d;h++)h in f&&(e[h]=b.call(c,f[h],h,a));return e},Ba=t.reduce?function(a,b,c,d){for(var e=[],f=1,h=arguments.length;f<h;f++)e.push(arguments[f]);d&&(e[0]=q(b,d));return t.reduce.apply(a,e)}:function(a,b,c,d){var e=c;ya(a,function(c,h){e=b.call(d,e,c,h,a)});return e},Ca=t.every?function(a,b,
c){return t.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=p(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};function Da(a,b){var c=Ea(a,b,void 0);return 0>c?null:p(a)?a.charAt(c):a[c]}function Ea(a,b,c){for(var d=a.length,e=p(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1}function Fa(a,b){var c=xa(a,b);0<=c&&t.splice.call(a,c,1)}function Ga(a,b,c){return 2>=arguments.length?t.slice.call(a,b):t.slice.call(a,b,c)}
function Ha(a,b){a.sort(b||Ia)}function Ia(a,b){return a>b?1:a<b?-1:0};function Ja(){this.Wa=-1};function Ka(){this.Wa=-1;this.Wa=64;this.M=[];this.Wd=[];this.Af=[];this.zd=[];this.zd[0]=128;for(var a=1;a<this.Wa;++a)this.zd[a]=0;this.Pd=this.$b=0;this.reset()}la(Ka,Ja);Ka.prototype.reset=function(){this.M[0]=1732584193;this.M[1]=4023233417;this.M[2]=2562383102;this.M[3]=271733878;this.M[4]=3285377520;this.Pd=this.$b=0};
function La(a,b,c){c||(c=0);var d=a.Af;if(p(b))for(var e=0;16>e;e++)d[e]=b.charCodeAt(c)<<24|b.charCodeAt(c+1)<<16|b.charCodeAt(c+2)<<8|b.charCodeAt(c+3),c+=4;else for(e=0;16>e;e++)d[e]=b[c]<<24|b[c+1]<<16|b[c+2]<<8|b[c+3],c+=4;for(e=16;80>e;e++){var f=d[e-3]^d[e-8]^d[e-14]^d[e-16];d[e]=(f<<1|f>>>31)&4294967295}b=a.M[0];c=a.M[1];for(var h=a.M[2],k=a.M[3],l=a.M[4],m,e=0;80>e;e++)40>e?20>e?(f=k^c&(h^k),m=1518500249):(f=c^h^k,m=1859775393):60>e?(f=c&h|k&(c|h),m=2400959708):(f=c^h^k,m=3395469782),f=(b<<
5|b>>>27)+f+l+m+d[e]&4294967295,l=k,k=h,h=(c<<30|c>>>2)&4294967295,c=b,b=f;a.M[0]=a.M[0]+b&4294967295;a.M[1]=a.M[1]+c&4294967295;a.M[2]=a.M[2]+h&4294967295;a.M[3]=a.M[3]+k&4294967295;a.M[4]=a.M[4]+l&4294967295}
Ka.prototype.update=function(a,b){if(null!=a){n(b)||(b=a.length);for(var c=b-this.Wa,d=0,e=this.Wd,f=this.$b;d<b;){if(0==f)for(;d<=c;)La(this,a,d),d+=this.Wa;if(p(a))for(;d<b;){if(e[f]=a.charCodeAt(d),++f,++d,f==this.Wa){La(this,e);f=0;break}}else for(;d<b;)if(e[f]=a[d],++f,++d,f==this.Wa){La(this,e);f=0;break}}this.$b=f;this.Pd+=b}};var v;a:{var Ma=aa.navigator;if(Ma){var Na=Ma.userAgent;if(Na){v=Na;break a}}v=""};var Oa=-1!=v.indexOf("Opera")||-1!=v.indexOf("OPR"),Pa=-1!=v.indexOf("Trident")||-1!=v.indexOf("MSIE"),Qa=-1!=v.indexOf("Gecko")&&-1==v.toLowerCase().indexOf("webkit")&&!(-1!=v.indexOf("Trident")||-1!=v.indexOf("MSIE")),Ra=-1!=v.toLowerCase().indexOf("webkit");
(function(){var a="",b;if(Oa&&aa.opera)return a=aa.opera.version,ha(a)?a():a;Qa?b=/rv\:([^\);]+)(\)|;)/:Pa?b=/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/:Ra&&(b=/WebKit\/(\S+)/);b&&(a=(a=b.exec(v))?a[1]:"");return Pa&&(b=(b=aa.document)?b.documentMode:void 0,b>parseFloat(a))?String(b):a})();var Sa=null,Ta=null,Ua=null;function Va(a,b){if(!fa(a))throw Error("encodeByteArray takes an array as a parameter");Wa();for(var c=b?Ta:Sa,d=[],e=0;e<a.length;e+=3){var f=a[e],h=e+1<a.length,k=h?a[e+1]:0,l=e+2<a.length,m=l?a[e+2]:0,u=f>>2,f=(f&3)<<4|k>>4,k=(k&15)<<2|m>>6,m=m&63;l||(m=64,h||(k=64));d.push(c[u],c[f],c[k],c[m])}return d.join("")}
function Wa(){if(!Sa){Sa={};Ta={};Ua={};for(var a=0;65>a;a++)Sa[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a),Ta[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(a),Ua[Ta[a]]=a,62<=a&&(Ua["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a)]=a)}};function Xa(a){a=String(a);if(/^\s*$/.test(a)?0:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,"")))try{return eval("("+a+")")}catch(b){}throw Error("Invalid JSON string: "+a);}function Ya(){this.Fd=void 0}
function Za(a,b,c){switch(typeof b){case "string":$a(b,c);break;case "number":c.push(isFinite(b)&&!isNaN(b)?b:"null");break;case "boolean":c.push(b);break;case "undefined":c.push("null");break;case "object":if(null==b){c.push("null");break}if(ea(b)){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++)c.push(e),e=b[f],Za(a,a.Fd?a.Fd.call(b,String(f),e):e,c),e=",";c.push("]");break}c.push("{");d="";for(f in b)Object.prototype.hasOwnProperty.call(b,f)&&(e=b[f],"function"!=typeof e&&(c.push(d),$a(f,c),
c.push(":"),Za(a,a.Fd?a.Fd.call(b,f,e):e,c),d=","));c.push("}");break;case "function":break;default:throw Error("Unknown type: "+typeof b);}}var ab={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},bb=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
function $a(a,b){b.push('"',a.replace(bb,function(a){if(a in ab)return ab[a];var b=a.charCodeAt(0),e="\\u";16>b?e+="000":256>b?e+="00":4096>b&&(e+="0");return ab[a]=e+b.toString(16)}),'"')};var cb=firebase.Promise;function db(){var a=this;this.reject=this.resolve=null;this.ra=new cb(function(b,c){a.resolve=b;a.reject=c})}function eb(a,b){return function(c,d){c?a.reject(c):a.resolve(d);ha(b)&&(fb(a.ra),1===b.length?b(c):b(c,d))}}function fb(a){a.then(void 0,ba)};function gb(a){return"undefined"!==typeof JSON&&n(JSON.parse)?JSON.parse(a):Xa(a)}function w(a){if("undefined"!==typeof JSON&&n(JSON.stringify))a=JSON.stringify(a);else{var b=[];Za(new Ya,a,b);a=b.join("")}return a};function x(a,b,c,d){var e;d<b?e="at least "+b:d>c&&(e=0===c?"none":"no more than "+c);if(e)throw Error(a+" failed: Was called with "+d+(1===d?" argument.":" arguments.")+" Expects "+e+".");}function y(a,b,c){var d="";switch(b){case 1:d=c?"first":"First";break;case 2:d=c?"second":"Second";break;case 3:d=c?"third":"Third";break;case 4:d=c?"fourth":"Fourth";break;default:throw Error("errorPrefix called with argumentNumber > 4.  Need to update it?");}return a=a+" failed: "+(d+" argument ")}
function A(a,b,c,d){if((!d||n(c))&&!ha(c))throw Error(y(a,b,d)+"must be a valid function.");}function hb(a,b,c){if(n(c)&&(!ia(c)||null===c))throw Error(y(a,b,!0)+"must be a valid context object.");};function ib(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function B(a,b){if(Object.prototype.hasOwnProperty.call(a,b))return a[b]}function jb(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(c,a[c])};function kb(a){var b=[];jb(a,function(a,d){ea(d)?ya(d,function(d){b.push(encodeURIComponent(a)+"="+encodeURIComponent(d))}):b.push(encodeURIComponent(a)+"="+encodeURIComponent(d))});return b.length?"&"+b.join("&"):""};function lb(a,b){if(!a)throw mb(b);}function mb(a){return Error("Firebase Database ("+firebase.SDK_VERSION+") INTERNAL ASSERT FAILED: "+a)};function nb(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);55296<=e&&56319>=e&&(e-=55296,d++,lb(d<a.length,"Surrogate pair missing trail surrogate."),e=65536+(e<<10)+(a.charCodeAt(d)-56320));128>e?b[c++]=e:(2048>e?b[c++]=e>>6|192:(65536>e?b[c++]=e>>12|224:(b[c++]=e>>18|240,b[c++]=e>>12&63|128),b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b}function ob(a){for(var b=0,c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b++:2048>d?b+=2:55296<=d&&56319>=d?(b+=4,c++):b+=3}return b};function pb(a){this.te=a;this.Bd=[];this.Qb=0;this.Yd=-1;this.Fb=null}function qb(a,b,c){a.Yd=b;a.Fb=c;a.Yd<a.Qb&&(a.Fb(),a.Fb=null)}function rb(a,b,c){for(a.Bd[b]=c;a.Bd[a.Qb];){var d=a.Bd[a.Qb];delete a.Bd[a.Qb];for(var e=0;e<d.length;++e)if(d[e]){var f=a;sb(function(){f.te(d[e])})}if(a.Qb===a.Yd){a.Fb&&(clearTimeout(a.Fb),a.Fb(),a.Fb=null);break}a.Qb++}};function tb(){return"undefined"!==typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test("undefined"!==typeof navigator&&"string"===typeof navigator.userAgent?navigator.userAgent:"")};function ub(a,b){this.committed=a;this.snapshot=b};function vb(a,b,c){this.type=wb;this.source=a;this.path=b;this.Ga=c}vb.prototype.Mc=function(a){return this.path.e()?new vb(this.source,C,this.Ga.Q(a)):new vb(this.source,D(this.path),this.Ga)};vb.prototype.toString=function(){return"Operation("+this.path+": "+this.source.toString()+" overwrite: "+this.Ga.toString()+")"};function xb(a,b){this.type=yb;this.source=a;this.path=b}xb.prototype.Mc=function(){return this.path.e()?new xb(this.source,C):new xb(this.source,D(this.path))};xb.prototype.toString=function(){return"Operation("+this.path+": "+this.source.toString()+" listen_complete)"};function zb(){this.tc={}}function Ab(a,b,c){n(c)||(c=1);ib(a.tc,b)||(a.tc[b]=0);a.tc[b]+=c}zb.prototype.get=function(){return wa(this.tc)};function Bb(a){this.Ef=a;this.rd=null}Bb.prototype.get=function(){var a=this.Ef.get(),b=wa(a);if(this.rd)for(var c in this.rd)b[c]-=this.rd[c];this.rd=a;return b};function Cb(a){this.uc=a;this.Cd="firebase:"}g=Cb.prototype;g.set=function(a,b){null==b?this.uc.removeItem(this.Cd+a):this.uc.setItem(this.Cd+a,w(b))};g.get=function(a){a=this.uc.getItem(this.Cd+a);return null==a?null:gb(a)};g.remove=function(a){this.uc.removeItem(this.Cd+a)};g.Ze=!1;g.toString=function(){return this.uc.toString()};function Db(){this.pc={}}Db.prototype.set=function(a,b){null==b?delete this.pc[a]:this.pc[a]=b};Db.prototype.get=function(a){return ib(this.pc,a)?this.pc[a]:null};Db.prototype.remove=function(a){delete this.pc[a]};Db.prototype.Ze=!0;function Eb(a){try{if("undefined"!==typeof window&&"undefined"!==typeof window[a]){var b=window[a];b.setItem("firebase:sentinel","cache");b.removeItem("firebase:sentinel");return new Cb(b)}}catch(c){}return new Db}var Fb=Eb("localStorage"),Gb=Eb("sessionStorage");function Hb(a,b,c,d,e){this.host=a.toLowerCase();this.domain=this.host.substr(this.host.indexOf(".")+1);this.Sc=b;this.pe=c;this.qg=d;this.gf=e||"";this.$a=Fb.get("host:"+a)||this.host}function Ib(a,b){b!==a.$a&&(a.$a=b,"s-"===a.$a.substr(0,2)&&Fb.set("host:"+a.host,a.$a))}
function Jb(a,b,c){E("string"===typeof b,"typeof type must == string");E("object"===typeof c,"typeof params must == object");if("websocket"===b)b=(a.Sc?"wss://":"ws://")+a.$a+"/.ws?";else if("long_polling"===b)b=(a.Sc?"https://":"http://")+a.$a+"/.lp?";else throw Error("Unknown connection type: "+b);a.host!==a.$a&&(c.ns=a.pe);var d=[];r(c,function(a,b){d.push(b+"="+a)});return b+d.join("&")}
Hb.prototype.toString=function(){var a=(this.Sc?"https://":"http://")+this.host;this.gf&&(a+="<"+this.gf+">");return a};function Kb(a){this.oc=a}Kb.prototype.getToken=function(a){return this.oc.INTERNAL.getToken(a).then(null,function(a){return a&&"auth/token-not-initialized"===a.code?(G("Got auth/token-not-initialized error.  Treating as null token."),null):Promise.reject(a)})};function Lb(a,b){a.oc.INTERNAL.addAuthTokenListener(b)};function Mb(a,b,c){this.A=a;this.da=b;this.Sb=c}function Nb(a){return a.da}function Ob(a){return a.Sb}function Pb(a,b){return b.e()?a.da&&!a.Sb:Qb(a,H(b))}function Qb(a,b){return a.da&&!a.Sb||a.A.Da(b)}Mb.prototype.j=function(){return this.A};function Rb(a,b,c,d){this.ae=b;this.Md=c;this.Dd=d;this.hd=a}Rb.prototype.Yb=function(){var a=this.Md.wb();return"value"===this.hd?a.path:a.getParent().path};Rb.prototype.ge=function(){return this.hd};Rb.prototype.Tb=function(){return this.ae.Tb(this)};Rb.prototype.toString=function(){return this.Yb().toString()+":"+this.hd+":"+w(this.Md.be())};function Sb(a,b,c){this.ae=a;this.error=b;this.path=c}Sb.prototype.Yb=function(){return this.path};Sb.prototype.ge=function(){return"cancel"};
Sb.prototype.Tb=function(){return this.ae.Tb(this)};Sb.prototype.toString=function(){return this.path.toString()+":cancel"};function Tb(){this.vb=[]}function Ub(a,b){for(var c=null,d=0;d<b.length;d++){var e=b[d],f=e.Yb();null===c||f.Z(c.Yb())||(a.vb.push(c),c=null);null===c&&(c=new Vb(f));c.add(e)}c&&a.vb.push(c)}function Wb(a,b,c){Ub(a,c);Xb(a,function(a){return a.Z(b)})}function Yb(a,b,c){Ub(a,c);Xb(a,function(a){return a.contains(b)||b.contains(a)})}
function Xb(a,b){for(var c=!0,d=0;d<a.vb.length;d++){var e=a.vb[d];if(e)if(e=e.Yb(),b(e)){for(var e=a.vb[d],f=0;f<e.jd.length;f++){var h=e.jd[f];if(null!==h){e.jd[f]=null;var k=h.Tb();Zb&&G("event: "+h.toString());sb(k)}}a.vb[d]=null}else c=!1}c&&(a.vb=[])}function Vb(a){this.qa=a;this.jd=[]}Vb.prototype.add=function(a){this.jd.push(a)};Vb.prototype.Yb=function(){return this.qa};function I(a,b,c,d){this.type=a;this.Ja=b;this.Xa=c;this.qe=d;this.Dd=void 0}function $b(a){return new I(ac,a)}var ac="value";function bc(){}bc.prototype.Te=function(){return null};bc.prototype.fe=function(){return null};var cc=new bc;function dc(a,b,c){this.xf=a;this.Ka=b;this.yd=c}dc.prototype.Te=function(a){var b=this.Ka.N;if(Qb(b,a))return b.j().Q(a);b=null!=this.yd?new Mb(this.yd,!0,!1):this.Ka.w();return this.xf.qc(a,b)};dc.prototype.fe=function(a,b,c){var d=null!=this.yd?this.yd:ec(this.Ka);a=this.xf.Xd(d,b,1,c,a);return 0===a.length?null:a[0]};function fc(){this.Jd=J}fc.prototype.j=function(a){return this.Jd.P(a)};fc.prototype.toString=function(){return this.Jd.toString()};function gc(a,b){this.La=a;this.ba=b?b:hc}g=gc.prototype;g.Oa=function(a,b){return new gc(this.La,this.ba.Oa(a,b,this.La).X(null,null,!1,null,null))};g.remove=function(a){return new gc(this.La,this.ba.remove(a,this.La).X(null,null,!1,null,null))};g.get=function(a){for(var b,c=this.ba;!c.e();){b=this.La(a,c.key);if(0===b)return c.value;0>b?c=c.left:0<b&&(c=c.right)}return null};
function ic(a,b){for(var c,d=a.ba,e=null;!d.e();){c=a.La(b,d.key);if(0===c){if(d.left.e())return e?e.key:null;for(d=d.left;!d.right.e();)d=d.right;return d.key}0>c?d=d.left:0<c&&(e=d,d=d.right)}throw Error("Attempted to find predecessor key for a nonexistent key.  What gives?");}g.e=function(){return this.ba.e()};g.count=function(){return this.ba.count()};g.Gc=function(){return this.ba.Gc()};g.ec=function(){return this.ba.ec()};g.ha=function(a){return this.ba.ha(a)};
g.Wb=function(a){return new jc(this.ba,null,this.La,!1,a)};g.Xb=function(a,b){return new jc(this.ba,a,this.La,!1,b)};g.Zb=function(a,b){return new jc(this.ba,a,this.La,!0,b)};g.We=function(a){return new jc(this.ba,null,this.La,!0,a)};function jc(a,b,c,d,e){this.Hd=e||null;this.le=d;this.Pa=[];for(e=1;!a.e();)if(e=b?c(a.key,b):1,d&&(e*=-1),0>e)a=this.le?a.left:a.right;else if(0===e){this.Pa.push(a);break}else this.Pa.push(a),a=this.le?a.right:a.left}
function K(a){if(0===a.Pa.length)return null;var b=a.Pa.pop(),c;c=a.Hd?a.Hd(b.key,b.value):{key:b.key,value:b.value};if(a.le)for(b=b.left;!b.e();)a.Pa.push(b),b=b.right;else for(b=b.right;!b.e();)a.Pa.push(b),b=b.left;return c}function kc(a){if(0===a.Pa.length)return null;var b;b=a.Pa;b=b[b.length-1];return a.Hd?a.Hd(b.key,b.value):{key:b.key,value:b.value}}function lc(a,b,c,d,e){this.key=a;this.value=b;this.color=null!=c?c:!0;this.left=null!=d?d:hc;this.right=null!=e?e:hc}g=lc.prototype;
g.X=function(a,b,c,d,e){return new lc(null!=a?a:this.key,null!=b?b:this.value,null!=c?c:this.color,null!=d?d:this.left,null!=e?e:this.right)};g.count=function(){return this.left.count()+1+this.right.count()};g.e=function(){return!1};g.ha=function(a){return this.left.ha(a)||a(this.key,this.value)||this.right.ha(a)};function mc(a){return a.left.e()?a:mc(a.left)}g.Gc=function(){return mc(this).key};g.ec=function(){return this.right.e()?this.key:this.right.ec()};
g.Oa=function(a,b,c){var d,e;e=this;d=c(a,e.key);e=0>d?e.X(null,null,null,e.left.Oa(a,b,c),null):0===d?e.X(null,b,null,null,null):e.X(null,null,null,null,e.right.Oa(a,b,c));return nc(e)};function oc(a){if(a.left.e())return hc;a.left.ea()||a.left.left.ea()||(a=pc(a));a=a.X(null,null,null,oc(a.left),null);return nc(a)}
g.remove=function(a,b){var c,d;c=this;if(0>b(a,c.key))c.left.e()||c.left.ea()||c.left.left.ea()||(c=pc(c)),c=c.X(null,null,null,c.left.remove(a,b),null);else{c.left.ea()&&(c=qc(c));c.right.e()||c.right.ea()||c.right.left.ea()||(c=rc(c),c.left.left.ea()&&(c=qc(c),c=rc(c)));if(0===b(a,c.key)){if(c.right.e())return hc;d=mc(c.right);c=c.X(d.key,d.value,null,null,oc(c.right))}c=c.X(null,null,null,null,c.right.remove(a,b))}return nc(c)};g.ea=function(){return this.color};
function nc(a){a.right.ea()&&!a.left.ea()&&(a=sc(a));a.left.ea()&&a.left.left.ea()&&(a=qc(a));a.left.ea()&&a.right.ea()&&(a=rc(a));return a}function pc(a){a=rc(a);a.right.left.ea()&&(a=a.X(null,null,null,null,qc(a.right)),a=sc(a),a=rc(a));return a}function sc(a){return a.right.X(null,null,a.color,a.X(null,null,!0,null,a.right.left),null)}function qc(a){return a.left.X(null,null,a.color,null,a.X(null,null,!0,a.left.right,null))}
function rc(a){return a.X(null,null,!a.color,a.left.X(null,null,!a.left.color,null,null),a.right.X(null,null,!a.right.color,null,null))}function tc(){}g=tc.prototype;g.X=function(){return this};g.Oa=function(a,b){return new lc(a,b,null)};g.remove=function(){return this};g.count=function(){return 0};g.e=function(){return!0};g.ha=function(){return!1};g.Gc=function(){return null};g.ec=function(){return null};g.ea=function(){return!1};var hc=new tc;function uc(a,b){return a&&"object"===typeof a?(E(".sv"in a,"Unexpected leaf node or priority contents"),b[a[".sv"]]):a}function vc(a,b){var c=new wc;xc(a,new L(""),function(a,e){yc(c,a,zc(e,b))});return c}function zc(a,b){var c=a.C().H(),c=uc(c,b),d;if(a.J()){var e=uc(a.Ca(),b);return e!==a.Ca()||c!==a.C().H()?new Ac(e,M(c)):a}d=a;c!==a.C().H()&&(d=d.fa(new Ac(c)));a.O(N,function(a,c){var e=zc(c,b);e!==c&&(d=d.T(a,e))});return d};var Bc=function(){var a=1;return function(){return a++}}(),E=lb,Cc=mb;
function Dc(a){try{var b;Wa();for(var c=Ua,d=[],e=0;e<a.length;){var f=c[a.charAt(e++)],h=e<a.length?c[a.charAt(e)]:0;++e;var k=e<a.length?c[a.charAt(e)]:64;++e;var l=e<a.length?c[a.charAt(e)]:64;++e;if(null==f||null==h||null==k||null==l)throw Error();d.push(f<<2|h>>4);64!=k&&(d.push(h<<4&240|k>>2),64!=l&&d.push(k<<6&192|l))}if(8192>d.length)b=String.fromCharCode.apply(null,d);else{a="";for(c=0;c<d.length;c+=8192)a+=String.fromCharCode.apply(null,Ga(d,c,c+8192));b=a}return b}catch(m){G("base64Decode failed: ",
m)}return null}function Ec(a){var b=nb(a);a=new Ka;a.update(b);var b=[],c=8*a.Pd;56>a.$b?a.update(a.zd,56-a.$b):a.update(a.zd,a.Wa-(a.$b-56));for(var d=a.Wa-1;56<=d;d--)a.Wd[d]=c&255,c/=256;La(a,a.Wd);for(d=c=0;5>d;d++)for(var e=24;0<=e;e-=8)b[c]=a.M[d]>>e&255,++c;return Va(b)}function Fc(a){for(var b="",c=0;c<arguments.length;c++)b=fa(arguments[c])?b+Fc.apply(null,arguments[c]):"object"===typeof arguments[c]?b+w(arguments[c]):b+arguments[c],b+=" ";return b}var Zb=null,Gc=!0;
function Hc(a,b){lb(!b||!0===a||!1===a,"Can't turn on custom loggers persistently.");!0===a?("undefined"!==typeof console&&("function"===typeof console.log?Zb=q(console.log,console):"object"===typeof console.log&&(Zb=function(a){console.log(a)})),b&&Gb.set("logging_enabled",!0)):ha(a)?Zb=a:(Zb=null,Gb.remove("logging_enabled"))}function G(a){!0===Gc&&(Gc=!1,null===Zb&&!0===Gb.get("logging_enabled")&&Hc(!0));if(Zb){var b=Fc.apply(null,arguments);Zb(b)}}
function Ic(a){return function(){G(a,arguments)}}function Jc(a){if("undefined"!==typeof console){var b="FIREBASE INTERNAL ERROR: "+Fc.apply(null,arguments);"undefined"!==typeof console.error?console.error(b):console.log(b)}}function Kc(a){var b=Fc.apply(null,arguments);throw Error("FIREBASE FATAL ERROR: "+b);}function O(a){if("undefined"!==typeof console){var b="FIREBASE WARNING: "+Fc.apply(null,arguments);"undefined"!==typeof console.warn?console.warn(b):console.log(b)}}
function Lc(a){var b,c,d,e,f,h=a;f=c=a=b="";d=!0;e="https";if(p(h)){var k=h.indexOf("//");0<=k&&(e=h.substring(0,k-1),h=h.substring(k+2));k=h.indexOf("/");-1===k&&(k=h.length);b=h.substring(0,k);f="";h=h.substring(k).split("/");for(k=0;k<h.length;k++)if(0<h[k].length){var l=h[k];try{l=decodeURIComponent(l.replace(/\+/g," "))}catch(m){}f+="/"+l}h=b.split(".");3===h.length?(a=h[1],c=h[0].toLowerCase()):2===h.length&&(a=h[0]);k=b.indexOf(":");0<=k&&(d="https"===e||"wss"===e)}"firebase"===a&&Kc(b+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead");
c&&"undefined"!=c||Kc("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com");d||"undefined"!==typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&O("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().");return{jc:new Hb(b,d,c,"ws"===e||"wss"===e),path:new L(f)}}function Mc(a){return ga(a)&&(a!=a||a==Number.POSITIVE_INFINITY||a==Number.NEGATIVE_INFINITY)}
function Nc(a){if("complete"===document.readyState)a();else{var b=!1,c=function(){document.body?b||(b=!0,a()):setTimeout(c,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&c()}),window.attachEvent("onload",c))}}
function Oc(a,b){if(a===b)return 0;if("[MIN_NAME]"===a||"[MAX_NAME]"===b)return-1;if("[MIN_NAME]"===b||"[MAX_NAME]"===a)return 1;var c=Pc(a),d=Pc(b);return null!==c?null!==d?0==c-d?a.length-b.length:c-d:-1:null!==d?1:a<b?-1:1}function Qc(a,b){if(b&&a in b)return b[a];throw Error("Missing required key ("+a+") in object: "+w(b));}
function Rc(a){if("object"!==typeof a||null===a)return w(a);var b=[],c;for(c in a)b.push(c);b.sort();c="{";for(var d=0;d<b.length;d++)0!==d&&(c+=","),c+=w(b[d]),c+=":",c+=Rc(a[b[d]]);return c+"}"}function Sc(a,b){if(a.length<=b)return[a];for(var c=[],d=0;d<a.length;d+=b)d+b>a?c.push(a.substring(d,a.length)):c.push(a.substring(d,d+b));return c}function Tc(a,b){if(ea(a))for(var c=0;c<a.length;++c)b(c,a[c]);else r(a,b)}
function Uc(a){E(!Mc(a),"Invalid JSON number");var b,c,d,e;0===a?(d=c=0,b=-Infinity===1/a?1:0):(b=0>a,a=Math.abs(a),a>=Math.pow(2,-1022)?(d=Math.min(Math.floor(Math.log(a)/Math.LN2),1023),c=d+1023,d=Math.round(a*Math.pow(2,52-d)-Math.pow(2,52))):(c=0,d=Math.round(a/Math.pow(2,-1074))));e=[];for(a=52;a;--a)e.push(d%2?1:0),d=Math.floor(d/2);for(a=11;a;--a)e.push(c%2?1:0),c=Math.floor(c/2);e.push(b?1:0);e.reverse();b=e.join("");c="";for(a=0;64>a;a+=8)d=parseInt(b.substr(a,8),2).toString(16),1===d.length&&
(d="0"+d),c+=d;return c.toLowerCase()}var Vc=/^-?\d{1,10}$/;function Pc(a){return Vc.test(a)&&(a=Number(a),-2147483648<=a&&2147483647>=a)?a:null}function sb(a){try{a()}catch(b){setTimeout(function(){O("Exception was thrown by user callback.",b.stack||"");throw b;},Math.floor(0))}}function Wc(a,b,c){Object.defineProperty(a,b,{get:c})}function Xc(a,b){var c=setTimeout(a,b);"object"===typeof c&&c.unref&&c.unref();return c};function Yc(a){var b={},c={},d={},e="";try{var f=a.split("."),b=gb(Dc(f[0])||""),c=gb(Dc(f[1])||""),e=f[2],d=c.d||{};delete c.d}catch(h){}return{tg:b,Je:c,data:d,mg:e}}function Zc(a){a=Yc(a);var b=a.Je;return!!a.mg&&!!b&&"object"===typeof b&&b.hasOwnProperty("iat")}function $c(a){a=Yc(a).Je;return"object"===typeof a&&!0===B(a,"admin")};function ad(a,b,c){this.type=bd;this.source=a;this.path=b;this.children=c}ad.prototype.Mc=function(a){if(this.path.e())return a=this.children.subtree(new L(a)),a.e()?null:a.value?new vb(this.source,C,a.value):new ad(this.source,C,a);E(H(this.path)===a,"Can't get a merge for a child not on the path of the operation");return new ad(this.source,D(this.path),this.children)};ad.prototype.toString=function(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"};function cd(a,b,c){this.f=Ic("p:rest:");this.L=a;this.Gb=b;this.$c=c;this.$={}}function dd(a,b){if(n(b))return"tag$"+b;E(ed(a.m),"should have a tag if it's not a default query.");return a.path.toString()}g=cd.prototype;
g.$e=function(a,b,c,d){var e=a.path.toString();this.f("Listen called for "+e+" "+a.ja());var f=dd(a,c),h={};this.$[f]=h;a=fd(a.m);var k=this;gd(this,e+".json",a,function(a,b){var u=b;404===a&&(a=u=null);null===a&&k.Gb(e,u,!1,c);B(k.$,f)===h&&d(a?401==a?"permission_denied":"rest_error:"+a:"ok",null)})};g.uf=function(a,b){var c=dd(a,b);delete this.$[c]};g.kf=function(){};g.re=function(){};g.cf=function(){};g.xd=function(){};g.put=function(){};g.af=function(){};g.ye=function(){};
function gd(a,b,c,d){c=c||{};c.format="export";a.$c.getToken(!1).then(function(e){(e=e&&e.accessToken)&&(c.auth=e);var f=(a.L.Sc?"https://":"http://")+a.L.host+b+"?"+kb(c);a.f("Sending REST request for "+f);var h=new XMLHttpRequest;h.onreadystatechange=function(){if(d&&4===h.readyState){a.f("REST Response for "+f+" received. status:",h.status,"response:",h.responseText);var b=null;if(200<=h.status&&300>h.status){try{b=gb(h.responseText)}catch(c){O("Failed to parse JSON response for "+f+": "+h.responseText)}d(null,
b)}else 401!==h.status&&404!==h.status&&O("Got unsuccessful REST response for "+f+" Status: "+h.status),d(h.status);d=null}};h.open("GET",f,!0);h.send()})};function hd(a,b){this.rf={};this.Vc=new Bb(a);this.va=b;var c=1E4+2E4*Math.random();Xc(q(this.lf,this),Math.floor(c))}hd.prototype.lf=function(){var a=this.Vc.get(),b={},c=!1,d;for(d in a)0<a[d]&&ib(this.rf,d)&&(b[d]=a[d],c=!0);c&&this.va.ye(b);Xc(q(this.lf,this),Math.floor(6E5*Math.random()))};var id={},jd={};function kd(a){a=a.toString();id[a]||(id[a]=new zb);return id[a]}function ld(a,b){var c=a.toString();jd[c]||(jd[c]=b());return jd[c]};function md(a,b){this.Sd=a;this.Df=b}function nd(a){this.U=a}
nd.prototype.eb=function(a,b,c,d){var e=new od,f;if(b.type===wb)b.source.ee?c=pd(this,a,b.path,b.Ga,c,d,e):(E(b.source.Se,"Unknown source."),f=b.source.Ee||Ob(a.w())&&!b.path.e(),c=qd(this,a,b.path,b.Ga,c,d,f,e));else if(b.type===bd)b.source.ee?c=rd(this,a,b.path,b.children,c,d,e):(E(b.source.Se,"Unknown source."),f=b.source.Ee||Ob(a.w()),c=sd(this,a,b.path,b.children,c,d,f,e));else if(b.type===ud)if(b.Id)if(b=b.path,null!=c.lc(b))c=a;else{f=new dc(c,a,d);d=a.N.j();if(b.e()||".priority"===H(b))Nb(a.w())?
b=c.Aa(ec(a)):(b=a.w().j(),E(b instanceof P,"serverChildren would be complete if leaf node"),b=c.rc(b)),b=this.U.ya(d,b,e);else{var h=H(b),k=c.qc(h,a.w());null==k&&Qb(a.w(),h)&&(k=d.Q(h));b=null!=k?this.U.F(d,h,k,D(b),f,e):a.N.j().Da(h)?this.U.F(d,h,J,D(b),f,e):d;b.e()&&Nb(a.w())&&(d=c.Aa(ec(a)),d.J()&&(b=this.U.ya(b,d,e)))}d=Nb(a.w())||null!=c.lc(C);c=vd(a,b,d,this.U.Na())}else c=wd(this,a,b.path,b.Ob,c,d,e);else if(b.type===yb)d=b.path,b=a.w(),f=b.j(),h=b.da||d.e(),c=xd(this,new yd(a.N,new Mb(f,
h,b.Sb)),d,c,cc,e);else throw Cc("Unknown operation type: "+b.type);e=qa(e.fb);d=c;b=d.N;b.da&&(f=b.j().J()||b.j().e(),h=zd(a),(0<e.length||!a.N.da||f&&!b.j().Z(h)||!b.j().C().Z(h.C()))&&e.push($b(zd(d))));return new md(c,e)};
function xd(a,b,c,d,e,f){var h=b.N;if(null!=d.lc(c))return b;var k;if(c.e())E(Nb(b.w()),"If change path is empty, we must have complete server data"),Ob(b.w())?(e=ec(b),d=d.rc(e instanceof P?e:J)):d=d.Aa(ec(b)),f=a.U.ya(b.N.j(),d,f);else{var l=H(c);if(".priority"==l)E(1==Ad(c),"Can't have a priority with additional path components"),f=h.j(),k=b.w().j(),d=d.ad(c,f,k),f=null!=d?a.U.fa(f,d):h.j();else{var m=D(c);Qb(h,l)?(k=b.w().j(),d=d.ad(c,h.j(),k),d=null!=d?h.j().Q(l).F(m,d):h.j().Q(l)):d=d.qc(l,
b.w());f=null!=d?a.U.F(h.j(),l,d,m,e,f):h.j()}}return vd(b,f,h.da||c.e(),a.U.Na())}function qd(a,b,c,d,e,f,h,k){var l=b.w();h=h?a.U:a.U.Ub();if(c.e())d=h.ya(l.j(),d,null);else if(h.Na()&&!l.Sb)d=l.j().F(c,d),d=h.ya(l.j(),d,null);else{var m=H(c);if(!Pb(l,c)&&1<Ad(c))return b;var u=D(c);d=l.j().Q(m).F(u,d);d=".priority"==m?h.fa(l.j(),d):h.F(l.j(),m,d,u,cc,null)}l=l.da||c.e();b=new yd(b.N,new Mb(d,l,h.Na()));return xd(a,b,c,e,new dc(e,b,f),k)}
function pd(a,b,c,d,e,f,h){var k=b.N;e=new dc(e,b,f);if(c.e())h=a.U.ya(b.N.j(),d,h),a=vd(b,h,!0,a.U.Na());else if(f=H(c),".priority"===f)h=a.U.fa(b.N.j(),d),a=vd(b,h,k.da,k.Sb);else{c=D(c);var l=k.j().Q(f);if(!c.e()){var m=e.Te(f);d=null!=m?".priority"===Bd(c)&&m.P(c.parent()).e()?m:m.F(c,d):J}l.Z(d)?a=b:(h=a.U.F(k.j(),f,d,c,e,h),a=vd(b,h,k.da,a.U.Na()))}return a}
function rd(a,b,c,d,e,f,h){var k=b;Cd(d,function(d,m){var u=c.n(d);Qb(b.N,H(u))&&(k=pd(a,k,u,m,e,f,h))});Cd(d,function(d,m){var u=c.n(d);Qb(b.N,H(u))||(k=pd(a,k,u,m,e,f,h))});return k}function Dd(a,b){Cd(b,function(b,d){a=a.F(b,d)});return a}
function sd(a,b,c,d,e,f,h,k){if(b.w().j().e()&&!Nb(b.w()))return b;var l=b;c=c.e()?d:Ed(Q,c,d);var m=b.w().j();c.children.ha(function(c,d){if(m.Da(c)){var F=b.w().j().Q(c),F=Dd(F,d);l=qd(a,l,new L(c),F,e,f,h,k)}});c.children.ha(function(c,d){var F=!Qb(b.w(),c)&&null==d.value;m.Da(c)||F||(F=b.w().j().Q(c),F=Dd(F,d),l=qd(a,l,new L(c),F,e,f,h,k))});return l}
function wd(a,b,c,d,e,f,h){if(null!=e.lc(c))return b;var k=Ob(b.w()),l=b.w();if(null!=d.value){if(c.e()&&l.da||Pb(l,c))return qd(a,b,c,l.j().P(c),e,f,k,h);if(c.e()){var m=Q;l.j().O(Fd,function(a,b){m=m.set(new L(a),b)});return sd(a,b,c,m,e,f,k,h)}return b}m=Q;Cd(d,function(a){var b=c.n(a);Pb(l,b)&&(m=m.set(a,l.j().P(b)))});return sd(a,b,c,m,e,f,k,h)};function od(){this.fb={}}
function Gd(a,b){var c=b.type,d=b.Xa;E("child_added"==c||"child_changed"==c||"child_removed"==c,"Only child changes supported for tracking");E(".priority"!==d,"Only non-priority child changes can be tracked.");var e=B(a.fb,d);if(e){var f=e.type;if("child_added"==c&&"child_removed"==f)a.fb[d]=new I("child_changed",b.Ja,d,e.Ja);else if("child_removed"==c&&"child_added"==f)delete a.fb[d];else if("child_removed"==c&&"child_changed"==f)a.fb[d]=new I("child_removed",e.qe,d);else if("child_changed"==c&&
"child_added"==f)a.fb[d]=new I("child_added",b.Ja,d);else if("child_changed"==c&&"child_changed"==f)a.fb[d]=new I("child_changed",b.Ja,d,e.qe);else throw Cc("Illegal combination of changes: "+b+" occurred after "+e);}else a.fb[d]=b};function Hd(a){this.g=a}g=Hd.prototype;g.F=function(a,b,c,d,e,f){E(a.yc(this.g),"A node must be indexed if only a child is updated");e=a.Q(b);if(e.P(d).Z(c.P(d))&&e.e()==c.e())return a;null!=f&&(c.e()?a.Da(b)?Gd(f,new I("child_removed",e,b)):E(a.J(),"A child remove without an old child only makes sense on a leaf node"):e.e()?Gd(f,new I("child_added",c,b)):Gd(f,new I("child_changed",c,b,e)));return a.J()&&c.e()?a:a.T(b,c).nb(this.g)};
g.ya=function(a,b,c){null!=c&&(a.J()||a.O(N,function(a,e){b.Da(a)||Gd(c,new I("child_removed",e,a))}),b.J()||b.O(N,function(b,e){if(a.Da(b)){var f=a.Q(b);f.Z(e)||Gd(c,new I("child_changed",e,b,f))}else Gd(c,new I("child_added",e,b))}));return b.nb(this.g)};g.fa=function(a,b){return a.e()?J:a.fa(b)};g.Na=function(){return!1};g.Ub=function(){return this};function Id(a){this.he=new Hd(a.g);this.g=a.g;var b;a.ka?(b=Jd(a),b=a.g.Ec(Kd(a),b)):b=a.g.Hc();this.Uc=b;a.na?(b=Ld(a),a=a.g.Ec(Md(a),b)):a=a.g.Fc();this.vc=a}g=Id.prototype;g.matches=function(a){return 0>=this.g.compare(this.Uc,a)&&0>=this.g.compare(a,this.vc)};g.F=function(a,b,c,d,e,f){this.matches(new R(b,c))||(c=J);return this.he.F(a,b,c,d,e,f)};
g.ya=function(a,b,c){b.J()&&(b=J);var d=b.nb(this.g),d=d.fa(J),e=this;b.O(N,function(a,b){e.matches(new R(a,b))||(d=d.T(a,J))});return this.he.ya(a,d,c)};g.fa=function(a){return a};g.Na=function(){return!0};g.Ub=function(){return this.he};function L(a,b){if(1==arguments.length){this.o=a.split("/");for(var c=0,d=0;d<this.o.length;d++)0<this.o[d].length&&(this.o[c]=this.o[d],c++);this.o.length=c;this.Y=0}else this.o=a,this.Y=b}function S(a,b){var c=H(a);if(null===c)return b;if(c===H(b))return S(D(a),D(b));throw Error("INTERNAL ERROR: innerPath ("+b+") is not within outerPath ("+a+")");}
function Nd(a,b){for(var c=a.slice(),d=b.slice(),e=0;e<c.length&&e<d.length;e++){var f=Oc(c[e],d[e]);if(0!==f)return f}return c.length===d.length?0:c.length<d.length?-1:1}function H(a){return a.Y>=a.o.length?null:a.o[a.Y]}function Ad(a){return a.o.length-a.Y}function D(a){var b=a.Y;b<a.o.length&&b++;return new L(a.o,b)}function Bd(a){return a.Y<a.o.length?a.o[a.o.length-1]:null}g=L.prototype;
g.toString=function(){for(var a="",b=this.Y;b<this.o.length;b++)""!==this.o[b]&&(a+="/"+this.o[b]);return a||"/"};g.slice=function(a){return this.o.slice(this.Y+(a||0))};g.parent=function(){if(this.Y>=this.o.length)return null;for(var a=[],b=this.Y;b<this.o.length-1;b++)a.push(this.o[b]);return new L(a,0)};
g.n=function(a){for(var b=[],c=this.Y;c<this.o.length;c++)b.push(this.o[c]);if(a instanceof L)for(c=a.Y;c<a.o.length;c++)b.push(a.o[c]);else for(a=a.split("/"),c=0;c<a.length;c++)0<a[c].length&&b.push(a[c]);return new L(b,0)};g.e=function(){return this.Y>=this.o.length};g.Z=function(a){if(Ad(this)!==Ad(a))return!1;for(var b=this.Y,c=a.Y;b<=this.o.length;b++,c++)if(this.o[b]!==a.o[c])return!1;return!0};
g.contains=function(a){var b=this.Y,c=a.Y;if(Ad(this)>Ad(a))return!1;for(;b<this.o.length;){if(this.o[b]!==a.o[c])return!1;++b;++c}return!0};var C=new L("");function Od(a,b){this.Qa=a.slice();this.Ha=Math.max(1,this.Qa.length);this.Qe=b;for(var c=0;c<this.Qa.length;c++)this.Ha+=ob(this.Qa[c]);Pd(this)}Od.prototype.push=function(a){0<this.Qa.length&&(this.Ha+=1);this.Qa.push(a);this.Ha+=ob(a);Pd(this)};Od.prototype.pop=function(){var a=this.Qa.pop();this.Ha-=ob(a);0<this.Qa.length&&--this.Ha};
function Pd(a){if(768<a.Ha)throw Error(a.Qe+"has a key path longer than 768 bytes ("+a.Ha+").");if(32<a.Qa.length)throw Error(a.Qe+"path specified exceeds the maximum depth that can be written (32) or object contains a cycle "+Qd(a));}function Qd(a){return 0==a.Qa.length?"":"in property '"+a.Qa.join(".")+"'"};function Rd(a){a instanceof Sd||Kc("Don't call new Database() directly - please use firebase.database().");this.ta=a;this.ba=new T(a,C);this.INTERNAL=new Td(this)}var Ud={TIMESTAMP:{".sv":"timestamp"}};g=Rd.prototype;g.app=null;g.jf=function(a){Vd(this,"ref");x("database.ref",0,1,arguments.length);return n(a)?this.ba.n(a):this.ba};
g.gg=function(a){Vd(this,"database.refFromURL");x("database.refFromURL",1,1,arguments.length);var b=Lc(a);Wd("database.refFromURL",b);var c=b.jc;c.host!==this.ta.L.host&&Kc("database.refFromURL: Host name does not match the current database: (found "+c.host+" but expected "+this.ta.L.host+")");return this.jf(b.path.toString())};function Vd(a,b){null===a.ta&&Kc("Cannot call "+b+" on a deleted database.")}g.Pf=function(){x("database.goOffline",0,0,arguments.length);Vd(this,"goOffline");this.ta.ab()};
g.Qf=function(){x("database.goOnline",0,0,arguments.length);Vd(this,"goOnline");this.ta.kc()};Object.defineProperty(Rd.prototype,"app",{get:function(){return this.ta.app}});function Td(a){this.Ya=a}Td.prototype.delete=function(){Vd(this.Ya,"delete");var a=Xd.Vb(),b=this.Ya.ta;B(a.lb,b.app.name)!==b&&Kc("Database "+b.app.name+" has already been deleted.");b.ab();delete a.lb[b.app.name];this.Ya.ta=null;this.Ya.ba=null;this.Ya=this.Ya.INTERNAL=null;return firebase.Promise.resolve()};
Rd.prototype.ref=Rd.prototype.jf;Rd.prototype.refFromURL=Rd.prototype.gg;Rd.prototype.goOnline=Rd.prototype.Qf;Rd.prototype.goOffline=Rd.prototype.Pf;Td.prototype["delete"]=Td.prototype.delete;function Yd(){this.children={};this.bd=0;this.value=null}function Zd(a,b,c){this.ud=a?a:"";this.Pc=b?b:null;this.A=c?c:new Yd}function $d(a,b){for(var c=b instanceof L?b:new L(b),d=a,e;null!==(e=H(c));)d=new Zd(e,d,B(d.A.children,e)||new Yd),c=D(c);return d}g=Zd.prototype;g.Ca=function(){return this.A.value};function ae(a,b){E("undefined"!==typeof b,"Cannot set value to undefined");a.A.value=b;be(a)}g.clear=function(){this.A.value=null;this.A.children={};this.A.bd=0;be(this)};
g.kd=function(){return 0<this.A.bd};g.e=function(){return null===this.Ca()&&!this.kd()};g.O=function(a){var b=this;r(this.A.children,function(c,d){a(new Zd(d,b,c))})};function ce(a,b,c,d){c&&!d&&b(a);a.O(function(a){ce(a,b,!0,d)});c&&d&&b(a)}function de(a,b){for(var c=a.parent();null!==c&&!b(c);)c=c.parent()}g.path=function(){return new L(null===this.Pc?this.ud:this.Pc.path()+"/"+this.ud)};g.name=function(){return this.ud};g.parent=function(){return this.Pc};
function be(a){if(null!==a.Pc){var b=a.Pc,c=a.ud,d=a.e(),e=ib(b.A.children,c);d&&e?(delete b.A.children[c],b.A.bd--,be(b)):d||e||(b.A.children[c]=a.A,b.A.bd++,be(b))}};function ee(){this.set={}}g=ee.prototype;g.add=function(a,b){this.set[a]=null!==b?b:!0};g.contains=function(a){return ib(this.set,a)};g.get=function(a){return this.contains(a)?this.set[a]:void 0};g.remove=function(a){delete this.set[a]};g.clear=function(){this.set={}};g.e=function(){return va(this.set)};g.count=function(){return oa(this.set)};function fe(a,b){r(a.set,function(a,d){b(d,a)})}g.keys=function(){var a=[];r(this.set,function(b,c){a.push(c)});return a};function ge(a,b,c,d){this.Zd=a;this.f=Ic(a);this.jc=b;this.pb=this.qb=0;this.Va=kd(b);this.tf=c;this.wc=!1;this.Cb=d;this.Yc=function(a){return Jb(b,"long_polling",a)}}var he,ie;
ge.prototype.open=function(a,b){this.Ne=0;this.ia=b;this.bf=new pb(a);this.Ab=!1;var c=this;this.sb=setTimeout(function(){c.f("Timed out trying to connect.");c.bb();c.sb=null},Math.floor(3E4));Nc(function(){if(!c.Ab){c.Ta=new je(function(a,b,d,k,l){ke(c,arguments);if(c.Ta)if(c.sb&&(clearTimeout(c.sb),c.sb=null),c.wc=!0,"start"==a)c.id=b,c.ff=d;else if("close"===a)b?(c.Ta.Kd=!1,qb(c.bf,b,function(){c.bb()})):c.bb();else throw Error("Unrecognized command received: "+a);},function(a,b){ke(c,arguments);
rb(c.bf,a,b)},function(){c.bb()},c.Yc);var a={start:"t"};a.ser=Math.floor(1E8*Math.random());c.Ta.Qd&&(a.cb=c.Ta.Qd);a.v="5";c.tf&&(a.s=c.tf);c.Cb&&(a.ls=c.Cb);"undefined"!==typeof location&&location.href&&-1!==location.href.indexOf("firebaseio.com")&&(a.r="f");a=c.Yc(a);c.f("Connecting via long-poll to "+a);le(c.Ta,a,function(){})}})};
ge.prototype.start=function(){var a=this.Ta,b=this.ff;a.Vf=this.id;a.Wf=b;for(a.Ud=!0;me(a););a=this.id;b=this.ff;this.fc=document.createElement("iframe");var c={dframe:"t"};c.id=a;c.pw=b;this.fc.src=this.Yc(c);this.fc.style.display="none";document.body.appendChild(this.fc)};
ge.isAvailable=function(){return he||!ie&&"undefined"!==typeof document&&null!=document.createElement&&!("object"===typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))&&!("object"===typeof Windows&&"object"===typeof Windows.rg)&&!0};g=ge.prototype;g.sd=function(){};g.Tc=function(){this.Ab=!0;this.Ta&&(this.Ta.close(),this.Ta=null);this.fc&&(document.body.removeChild(this.fc),this.fc=null);this.sb&&(clearTimeout(this.sb),this.sb=null)};
g.bb=function(){this.Ab||(this.f("Longpoll is closing itself"),this.Tc(),this.ia&&(this.ia(this.wc),this.ia=null))};g.close=function(){this.Ab||(this.f("Longpoll is being closed."),this.Tc())};g.send=function(a){a=w(a);this.qb+=a.length;Ab(this.Va,"bytes_sent",a.length);a=nb(a);a=Va(a,!0);a=Sc(a,1840);for(var b=0;b<a.length;b++){var c=this.Ta;c.Qc.push({jg:this.Ne,pg:a.length,Pe:a[b]});c.Ud&&me(c);this.Ne++}};function ke(a,b){var c=w(b).length;a.pb+=c;Ab(a.Va,"bytes_received",c)}
function je(a,b,c,d){this.Yc=d;this.ib=c;this.ve=new ee;this.Qc=[];this.$d=Math.floor(1E8*Math.random());this.Kd=!0;this.Qd=Bc();window["pLPCommand"+this.Qd]=a;window["pRTLPCB"+this.Qd]=b;a=document.createElement("iframe");a.style.display="none";if(document.body){document.body.appendChild(a);try{a.contentWindow.document||G("No IE domain setting required")}catch(e){a.src="javascript:void((function(){document.open();document.domain='"+document.domain+"';document.close();})())"}}else throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";
a.contentDocument?a.gb=a.contentDocument:a.contentWindow?a.gb=a.contentWindow.document:a.document&&(a.gb=a.document);this.Ea=a;a="";this.Ea.src&&"javascript:"===this.Ea.src.substr(0,11)&&(a='<script>document.domain="'+document.domain+'";\x3c/script>');a="<html><body>"+a+"</body></html>";try{this.Ea.gb.open(),this.Ea.gb.write(a),this.Ea.gb.close()}catch(f){G("frame writing exception"),f.stack&&G(f.stack),G(f)}}
je.prototype.close=function(){this.Ud=!1;if(this.Ea){this.Ea.gb.body.innerHTML="";var a=this;setTimeout(function(){null!==a.Ea&&(document.body.removeChild(a.Ea),a.Ea=null)},Math.floor(0))}var b=this.ib;b&&(this.ib=null,b())};
function me(a){if(a.Ud&&a.Kd&&a.ve.count()<(0<a.Qc.length?2:1)){a.$d++;var b={};b.id=a.Vf;b.pw=a.Wf;b.ser=a.$d;for(var b=a.Yc(b),c="",d=0;0<a.Qc.length;)if(1870>=a.Qc[0].Pe.length+30+c.length){var e=a.Qc.shift(),c=c+"&seg"+d+"="+e.jg+"&ts"+d+"="+e.pg+"&d"+d+"="+e.Pe;d++}else break;ne(a,b+c,a.$d);return!0}return!1}function ne(a,b,c){function d(){a.ve.remove(c);me(a)}a.ve.add(c,1);var e=setTimeout(d,Math.floor(25E3));le(a,b,function(){clearTimeout(e);d()})}
function le(a,b,c){setTimeout(function(){try{if(a.Kd){var d=a.Ea.gb.createElement("script");d.type="text/javascript";d.async=!0;d.src=b;d.onload=d.onreadystatechange=function(){var a=d.readyState;a&&"loaded"!==a&&"complete"!==a||(d.onload=d.onreadystatechange=null,d.parentNode&&d.parentNode.removeChild(d),c())};d.onerror=function(){G("Long-poll script failed to load: "+b);a.Kd=!1;a.close()};a.Ea.gb.body.appendChild(d)}}catch(e){}},Math.floor(1))};var oe=/[\[\].#$\/\u0000-\u001F\u007F]/,pe=/[\[\].#$\u0000-\u001F\u007F]/;function qe(a){return p(a)&&0!==a.length&&!oe.test(a)}function re(a){return null===a||p(a)||ga(a)&&!Mc(a)||ia(a)&&ib(a,".sv")}function se(a,b,c,d){d&&!n(b)||te(y(a,1,d),b,c)}
function te(a,b,c){c instanceof L&&(c=new Od(c,a));if(!n(b))throw Error(a+"contains undefined "+Qd(c));if(ha(b))throw Error(a+"contains a function "+Qd(c)+" with contents: "+b.toString());if(Mc(b))throw Error(a+"contains "+b.toString()+" "+Qd(c));if(p(b)&&b.length>10485760/3&&10485760<ob(b))throw Error(a+"contains a string greater than 10485760 utf8 bytes "+Qd(c)+" ('"+b.substring(0,50)+"...')");if(ia(b)){var d=!1,e=!1;jb(b,function(b,h){if(".value"===b)d=!0;else if(".priority"!==b&&".sv"!==b&&(e=
!0,!qe(b)))throw Error(a+" contains an invalid key ("+b+") "+Qd(c)+'.  Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');c.push(b);te(a,h,c);c.pop()});if(d&&e)throw Error(a+' contains ".value" child '+Qd(c)+" in addition to actual children.");}}
function ue(a,b){var c,d;for(c=0;c<b.length;c++){d=b[c];for(var e=d.slice(),f=0;f<e.length;f++)if((".priority"!==e[f]||f!==e.length-1)&&!qe(e[f]))throw Error(a+"contains an invalid key ("+e[f]+") in path "+d.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');}b.sort(Nd);e=null;for(c=0;c<b.length;c++){d=b[c];if(null!==e&&e.contains(d))throw Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+d.toString());e=d}}
function ve(a,b,c){var d=y(a,1,!1);if(!ia(b)||ea(b))throw Error(d+" must be an object containing the children to replace.");var e=[];jb(b,function(a,b){var k=new L(a);te(d,b,c.n(k));if(".priority"===Bd(k)&&!re(b))throw Error(d+"contains an invalid value for '"+k.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");e.push(k)});ue(d,e)}
function we(a,b,c){if(Mc(c))throw Error(y(a,b,!1)+"is "+c.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!re(c))throw Error(y(a,b,!1)+"must be a valid Firebase priority (a string, finite number, server value, or null).");}
function xe(a,b,c){if(!c||n(b))switch(b){case "value":case "child_added":case "child_removed":case "child_changed":case "child_moved":break;default:throw Error(y(a,1,c)+'must be a valid event type: "value", "child_added", "child_removed", "child_changed", or "child_moved".');}}function ye(a,b){if(n(b)&&!qe(b))throw Error(y(a,2,!0)+'was an invalid key: "'+b+'".  Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").');}
function ze(a,b){if(!p(b)||0===b.length||pe.test(b))throw Error(y(a,1,!1)+'was an invalid path: "'+b+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"');}function Ae(a,b){if(".info"===H(b))throw Error(a+" failed: Can't modify data under /.info/");}
function Wd(a,b){var c=b.path.toString(),d;!(d=!p(b.jc.host)||0===b.jc.host.length||!qe(b.jc.pe))&&(d=0!==c.length)&&(c&&(c=c.replace(/^\/*\.info(\/|$)/,"/")),d=!(p(c)&&0!==c.length&&!pe.test(c)));if(d)throw Error(y(a,1,!1)+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".');};function U(a,b){this.ta=a;this.qa=b}U.prototype.cancel=function(a){x("Firebase.onDisconnect().cancel",0,1,arguments.length);A("Firebase.onDisconnect().cancel",1,a,!0);var b=new db;this.ta.xd(this.qa,eb(b,a));return b.ra};U.prototype.cancel=U.prototype.cancel;U.prototype.remove=function(a){x("Firebase.onDisconnect().remove",0,1,arguments.length);Ae("Firebase.onDisconnect().remove",this.qa);A("Firebase.onDisconnect().remove",1,a,!0);var b=new db;Be(this.ta,this.qa,null,eb(b,a));return b.ra};
U.prototype.remove=U.prototype.remove;U.prototype.set=function(a,b){x("Firebase.onDisconnect().set",1,2,arguments.length);Ae("Firebase.onDisconnect().set",this.qa);se("Firebase.onDisconnect().set",a,this.qa,!1);A("Firebase.onDisconnect().set",2,b,!0);var c=new db;Be(this.ta,this.qa,a,eb(c,b));return c.ra};U.prototype.set=U.prototype.set;
U.prototype.Jb=function(a,b,c){x("Firebase.onDisconnect().setWithPriority",2,3,arguments.length);Ae("Firebase.onDisconnect().setWithPriority",this.qa);se("Firebase.onDisconnect().setWithPriority",a,this.qa,!1);we("Firebase.onDisconnect().setWithPriority",2,b);A("Firebase.onDisconnect().setWithPriority",3,c,!0);var d=new db;Ce(this.ta,this.qa,a,b,eb(d,c));return d.ra};U.prototype.setWithPriority=U.prototype.Jb;
U.prototype.update=function(a,b){x("Firebase.onDisconnect().update",1,2,arguments.length);Ae("Firebase.onDisconnect().update",this.qa);if(ea(a)){for(var c={},d=0;d<a.length;++d)c[""+d]=a[d];a=c;O("Passing an Array to Firebase.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}ve("Firebase.onDisconnect().update",a,this.qa);A("Firebase.onDisconnect().update",2,b,!0);
c=new db;De(this.ta,this.qa,a,eb(c,b));return c.ra};U.prototype.update=U.prototype.update;function Ee(a){E(ea(a)&&0<a.length,"Requires a non-empty array");this.Bf=a;this.Dc={}}Ee.prototype.Ge=function(a,b){var c;c=this.Dc[a]||[];var d=c.length;if(0<d){for(var e=Array(d),f=0;f<d;f++)e[f]=c[f];c=e}else c=[];for(d=0;d<c.length;d++)c[d].Ie.apply(c[d].Ma,Array.prototype.slice.call(arguments,1))};Ee.prototype.gc=function(a,b,c){Fe(this,a);this.Dc[a]=this.Dc[a]||[];this.Dc[a].push({Ie:b,Ma:c});(a=this.Ue(a))&&b.apply(c,a)};
Ee.prototype.Ic=function(a,b,c){Fe(this,a);a=this.Dc[a]||[];for(var d=0;d<a.length;d++)if(a[d].Ie===b&&(!c||c===a[d].Ma)){a.splice(d,1);break}};function Fe(a,b){E(Da(a.Bf,function(a){return a===b}),"Unknown event: "+b)};function Ge(){Ee.call(this,["visible"]);var a,b;"undefined"!==typeof document&&"undefined"!==typeof document.addEventListener&&("undefined"!==typeof document.hidden?(b="visibilitychange",a="hidden"):"undefined"!==typeof document.mozHidden?(b="mozvisibilitychange",a="mozHidden"):"undefined"!==typeof document.msHidden?(b="msvisibilitychange",a="msHidden"):"undefined"!==typeof document.webkitHidden&&(b="webkitvisibilitychange",a="webkitHidden"));this.Mb=!0;if(b){var c=this;document.addEventListener(b,
function(){var b=!document[a];b!==c.Mb&&(c.Mb=b,c.Ge("visible",b))},!1)}}la(Ge,Ee);Ge.prototype.Ue=function(a){E("visible"===a,"Unknown event type: "+a);return[this.Mb]};ca(Ge);function He(){Ee.call(this,["online"]);this.hc=!0;if("undefined"!==typeof window&&"undefined"!==typeof window.addEventListener&&!tb()){var a=this;window.addEventListener("online",function(){a.hc||(a.hc=!0,a.Ge("online",!0))},!1);window.addEventListener("offline",function(){a.hc&&(a.hc=!1,a.Ge("online",!1))},!1)}}la(He,Ee);He.prototype.Ue=function(a){E("online"===a,"Unknown event type: "+a);return[this.hc]};ca(He);var Ie=function(){var a=0,b=[];return function(c){var d=c===a;a=c;for(var e=Array(8),f=7;0<=f;f--)e[f]="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(c%64),c=Math.floor(c/64);E(0===c,"Cannot push at time == 0");c=e.join("");if(d){for(f=11;0<=f&&63===b[f];f--)b[f]=0;b[f]++}else for(f=0;12>f;f++)b[f]=Math.floor(64*Math.random());for(f=0;12>f;f++)c+="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(b[f]);E(20===c.length,"nextPushId: Length should be 20.");
return c}}();function Je(a,b){this.value=a;this.children=b||Ke}var Ke=new gc(function(a,b){return a===b?0:a<b?-1:1});function Le(a){var b=Q;r(a,function(a,d){b=b.set(new L(d),a)});return b}g=Je.prototype;g.e=function(){return null===this.value&&this.children.e()};function Me(a,b,c){if(null!=a.value&&c(a.value))return{path:C,value:a.value};if(b.e())return null;var d=H(b);a=a.children.get(d);return null!==a?(b=Me(a,D(b),c),null!=b?{path:(new L(d)).n(b.path),value:b.value}:null):null}
function Ne(a,b){return Me(a,b,function(){return!0})}g.subtree=function(a){if(a.e())return this;var b=this.children.get(H(a));return null!==b?b.subtree(D(a)):Q};g.set=function(a,b){if(a.e())return new Je(b,this.children);var c=H(a),d=(this.children.get(c)||Q).set(D(a),b),c=this.children.Oa(c,d);return new Je(this.value,c)};
g.remove=function(a){if(a.e())return this.children.e()?Q:new Je(null,this.children);var b=H(a),c=this.children.get(b);return c?(a=c.remove(D(a)),b=a.e()?this.children.remove(b):this.children.Oa(b,a),null===this.value&&b.e()?Q:new Je(this.value,b)):this};g.get=function(a){if(a.e())return this.value;var b=this.children.get(H(a));return b?b.get(D(a)):null};
function Ed(a,b,c){if(b.e())return c;var d=H(b);b=Ed(a.children.get(d)||Q,D(b),c);d=b.e()?a.children.remove(d):a.children.Oa(d,b);return new Je(a.value,d)}function Oe(a,b){return Pe(a,C,b)}function Pe(a,b,c){var d={};a.children.ha(function(a,f){d[a]=Pe(f,b.n(a),c)});return c(b,a.value,d)}function Qe(a,b,c){return Re(a,b,C,c)}function Re(a,b,c,d){var e=a.value?d(c,a.value):!1;if(e)return e;if(b.e())return null;e=H(b);return(a=a.children.get(e))?Re(a,D(b),c.n(e),d):null}
function Se(a,b,c){Te(a,b,C,c)}function Te(a,b,c,d){if(b.e())return a;a.value&&d(c,a.value);var e=H(b);return(a=a.children.get(e))?Te(a,D(b),c.n(e),d):Q}function Cd(a,b){Ue(a,C,b)}function Ue(a,b,c){a.children.ha(function(a,e){Ue(e,b.n(a),c)});a.value&&c(b,a.value)}function Ve(a,b){a.children.ha(function(a,d){d.value&&b(a,d.value)})}var Q=new Je(null);Je.prototype.toString=function(){var a={};Cd(this,function(b,c){a[b.toString()]=c.toString()});return w(a)};function We(a,b,c){this.type=ud;this.source=Xe;this.path=a;this.Ob=b;this.Id=c}We.prototype.Mc=function(a){if(this.path.e()){if(null!=this.Ob.value)return E(this.Ob.children.e(),"affectedTree should not have overlapping affected paths."),this;a=this.Ob.subtree(new L(a));return new We(C,a,this.Id)}E(H(this.path)===a,"operationForChild called for unrelated child.");return new We(D(this.path),this.Ob,this.Id)};
We.prototype.toString=function(){return"Operation("+this.path+": "+this.source.toString()+" ack write revert="+this.Id+" affectedTree="+this.Ob+")"};var wb=0,bd=1,ud=2,yb=3;function Ye(a,b,c,d){this.ee=a;this.Se=b;this.Hb=c;this.Ee=d;E(!d||b,"Tagged queries must be from server.")}var Xe=new Ye(!0,!1,null,!1),Ze=new Ye(!1,!0,null,!1);Ye.prototype.toString=function(){return this.ee?"user":this.Ee?"server(queryID="+this.Hb+")":"server"};var $e=null;"undefined"!==typeof MozWebSocket?$e=MozWebSocket:"undefined"!==typeof WebSocket&&($e=WebSocket);function af(a,b,c,d){this.Zd=a;this.f=Ic(this.Zd);this.frames=this.zc=null;this.pb=this.qb=this.Fe=0;this.Va=kd(b);a={v:"5"};"undefined"!==typeof location&&location.href&&-1!==location.href.indexOf("firebaseio.com")&&(a.r="f");c&&(a.s=c);d&&(a.ls=d);this.Ke=Jb(b,"websocket",a)}var bf;
af.prototype.open=function(a,b){this.ib=b;this.Xf=a;this.f("Websocket connecting to "+this.Ke);this.wc=!1;Fb.set("previous_websocket_failure",!0);try{this.Ia=new $e(this.Ke)}catch(c){this.f("Error instantiating WebSocket.");var d=c.message||c.data;d&&this.f(d);this.bb();return}var e=this;this.Ia.onopen=function(){e.f("Websocket connected.");e.wc=!0};this.Ia.onclose=function(){e.f("Websocket connection was disconnected.");e.Ia=null;e.bb()};this.Ia.onmessage=function(a){if(null!==e.Ia)if(a=a.data,e.pb+=
a.length,Ab(e.Va,"bytes_received",a.length),cf(e),null!==e.frames)df(e,a);else{a:{E(null===e.frames,"We already have a frame buffer");if(6>=a.length){var b=Number(a);if(!isNaN(b)){e.Fe=b;e.frames=[];a=null;break a}}e.Fe=1;e.frames=[]}null!==a&&df(e,a)}};this.Ia.onerror=function(a){e.f("WebSocket error.  Closing connection.");(a=a.message||a.data)&&e.f(a);e.bb()}};af.prototype.start=function(){};
af.isAvailable=function(){var a=!1;if("undefined"!==typeof navigator&&navigator.userAgent){var b=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/);b&&1<b.length&&4.4>parseFloat(b[1])&&(a=!0)}return!a&&null!==$e&&!bf};af.responsesRequiredToBeHealthy=2;af.healthyTimeout=3E4;g=af.prototype;g.sd=function(){Fb.remove("previous_websocket_failure")};function df(a,b){a.frames.push(b);if(a.frames.length==a.Fe){var c=a.frames.join("");a.frames=null;c=gb(c);a.Xf(c)}}
g.send=function(a){cf(this);a=w(a);this.qb+=a.length;Ab(this.Va,"bytes_sent",a.length);a=Sc(a,16384);1<a.length&&ef(this,String(a.length));for(var b=0;b<a.length;b++)ef(this,a[b])};g.Tc=function(){this.Ab=!0;this.zc&&(clearInterval(this.zc),this.zc=null);this.Ia&&(this.Ia.close(),this.Ia=null)};g.bb=function(){this.Ab||(this.f("WebSocket is closing itself"),this.Tc(),this.ib&&(this.ib(this.wc),this.ib=null))};g.close=function(){this.Ab||(this.f("WebSocket is being closed"),this.Tc())};
function cf(a){clearInterval(a.zc);a.zc=setInterval(function(){a.Ia&&ef(a,"0");cf(a)},Math.floor(45E3))}function ef(a,b){try{a.Ia.send(b)}catch(c){a.f("Exception thrown from WebSocket.send():",c.message||c.data,"Closing connection."),setTimeout(q(a.bb,a),0)}};function ff(a){gf(this,a)}var hf=[ge,af];function gf(a,b){var c=af&&af.isAvailable(),d=c&&!(Fb.Ze||!0===Fb.get("previous_websocket_failure"));b.qg&&(c||O("wss:// URL used, but browser isn't known to support websockets.  Trying anyway."),d=!0);if(d)a.Wc=[af];else{var e=a.Wc=[];Tc(hf,function(a,b){b&&b.isAvailable()&&e.push(b)})}}function jf(a){if(0<a.Wc.length)return a.Wc[0];throw Error("No transports available");};function kf(a,b,c,d,e,f,h){this.id=a;this.f=Ic("c:"+this.id+":");this.te=c;this.Lc=d;this.ia=e;this.se=f;this.L=b;this.Ad=[];this.Le=0;this.sf=new ff(b);this.Ua=0;this.Cb=h;this.f("Connection created");lf(this)}
function lf(a){var b=jf(a.sf);a.I=new b("c:"+a.id+":"+a.Le++,a.L,void 0,a.Cb);a.xe=b.responsesRequiredToBeHealthy||0;var c=mf(a,a.I),d=nf(a,a.I);a.Xc=a.I;a.Rc=a.I;a.D=null;a.Bb=!1;setTimeout(function(){a.I&&a.I.open(c,d)},Math.floor(0));b=b.healthyTimeout||0;0<b&&(a.md=Xc(function(){a.md=null;a.Bb||(a.I&&102400<a.I.pb?(a.f("Connection exceeded healthy timeout but has received "+a.I.pb+" bytes.  Marking connection healthy."),a.Bb=!0,a.I.sd()):a.I&&10240<a.I.qb?a.f("Connection exceeded healthy timeout but has sent "+
a.I.qb+" bytes.  Leaving connection alive."):(a.f("Closing unhealthy connection after timeout."),a.close()))},Math.floor(b)))}function nf(a,b){return function(c){b===a.I?(a.I=null,c||0!==a.Ua?1===a.Ua&&a.f("Realtime connection lost."):(a.f("Realtime connection failed."),"s-"===a.L.$a.substr(0,2)&&(Fb.remove("host:"+a.L.host),a.L.$a=a.L.host)),a.close()):b===a.D?(a.f("Secondary connection lost."),c=a.D,a.D=null,a.Xc!==c&&a.Rc!==c||a.close()):a.f("closing an old connection")}}
function mf(a,b){return function(c){if(2!=a.Ua)if(b===a.Rc){var d=Qc("t",c);c=Qc("d",c);if("c"==d){if(d=Qc("t",c),"d"in c)if(c=c.d,"h"===d){var d=c.ts,e=c.v,f=c.h;a.qf=c.s;Ib(a.L,f);0==a.Ua&&(a.I.start(),of(a,a.I,d),"5"!==e&&O("Protocol version mismatch detected"),c=a.sf,(c=1<c.Wc.length?c.Wc[1]:null)&&pf(a,c))}else if("n"===d){a.f("recvd end transmission on primary");a.Rc=a.D;for(c=0;c<a.Ad.length;++c)a.wd(a.Ad[c]);a.Ad=[];qf(a)}else"s"===d?(a.f("Connection shutdown command received. Shutting down..."),
a.se&&(a.se(c),a.se=null),a.ia=null,a.close()):"r"===d?(a.f("Reset packet received.  New host: "+c),Ib(a.L,c),1===a.Ua?a.close():(rf(a),lf(a))):"e"===d?Jc("Server Error: "+c):"o"===d?(a.f("got pong on primary."),sf(a),tf(a)):Jc("Unknown control packet command: "+d)}else"d"==d&&a.wd(c)}else if(b===a.D)if(d=Qc("t",c),c=Qc("d",c),"c"==d)"t"in c&&(c=c.t,"a"===c?uf(a):"r"===c?(a.f("Got a reset on secondary, closing it"),a.D.close(),a.Xc!==a.D&&a.Rc!==a.D||a.close()):"o"===c&&(a.f("got pong on secondary."),
a.pf--,uf(a)));else if("d"==d)a.Ad.push(c);else throw Error("Unknown protocol layer: "+d);else a.f("message on old connection")}}kf.prototype.ua=function(a){vf(this,{t:"d",d:a})};function qf(a){a.Xc===a.D&&a.Rc===a.D&&(a.f("cleaning up and promoting a connection: "+a.D.Zd),a.I=a.D,a.D=null)}
function uf(a){0>=a.pf?(a.f("Secondary connection is healthy."),a.Bb=!0,a.D.sd(),a.D.start(),a.f("sending client ack on secondary"),a.D.send({t:"c",d:{t:"a",d:{}}}),a.f("Ending transmission on primary"),a.I.send({t:"c",d:{t:"n",d:{}}}),a.Xc=a.D,qf(a)):(a.f("sending ping on secondary."),a.D.send({t:"c",d:{t:"p",d:{}}}))}kf.prototype.wd=function(a){sf(this);this.te(a)};function sf(a){a.Bb||(a.xe--,0>=a.xe&&(a.f("Primary connection is healthy."),a.Bb=!0,a.I.sd()))}
function pf(a,b){a.D=new b("c:"+a.id+":"+a.Le++,a.L,a.qf);a.pf=b.responsesRequiredToBeHealthy||0;a.D.open(mf(a,a.D),nf(a,a.D));Xc(function(){a.D&&(a.f("Timed out trying to upgrade."),a.D.close())},Math.floor(6E4))}function of(a,b,c){a.f("Realtime connection established.");a.I=b;a.Ua=1;a.Lc&&(a.Lc(c,a.qf),a.Lc=null);0===a.xe?(a.f("Primary connection is healthy."),a.Bb=!0):Xc(function(){tf(a)},Math.floor(5E3))}
function tf(a){a.Bb||1!==a.Ua||(a.f("sending ping on primary."),vf(a,{t:"c",d:{t:"p",d:{}}}))}function vf(a,b){if(1!==a.Ua)throw"Connection is not connected";a.Xc.send(b)}kf.prototype.close=function(){2!==this.Ua&&(this.f("Closing realtime connection."),this.Ua=2,rf(this),this.ia&&(this.ia(),this.ia=null))};function rf(a){a.f("Shutting down all connections");a.I&&(a.I.close(),a.I=null);a.D&&(a.D.close(),a.D=null);a.md&&(clearTimeout(a.md),a.md=null)};function wf(a,b,c,d,e,f){this.id=xf++;this.f=Ic("p:"+this.id+":");this.qd={};this.$={};this.pa=[];this.Oc=0;this.Kc=[];this.ma=!1;this.Sa=1E3;this.td=3E5;this.Gb=b;this.Jc=c;this.ue=d;this.L=a;this.ob=this.Fa=this.Cb=this.ze=null;this.$c=e;this.de=!1;this.ke=0;if(f)throw Error("Auth override specified in options, but not supported on non Node.js platforms");this.Vd=f;this.ub=null;this.Mb=!1;this.Gd={};this.ig=0;this.Re=!0;this.Ac=this.me=null;yf(this,0);Ge.Vb().gc("visible",this.Zf,this);-1===a.host.indexOf("fblocal")&&
He.Vb().gc("online",this.Yf,this)}var xf=0,zf=0;g=wf.prototype;g.ua=function(a,b,c){var d=++this.ig;a={r:d,a:a,b:b};this.f(w(a));E(this.ma,"sendRequest call when we're not connected not allowed.");this.Fa.ua(a);c&&(this.Gd[d]=c)};
g.$e=function(a,b,c,d){var e=a.ja(),f=a.path.toString();this.f("Listen called for "+f+" "+e);this.$[f]=this.$[f]||{};E(ed(a.m)||!V(a.m),"listen() called for non-default but complete query");E(!this.$[f][e],"listen() called twice for same path/queryId.");a={G:d,ld:b,eg:a,tag:c};this.$[f][e]=a;this.ma&&Af(this,a)};
function Af(a,b){var c=b.eg,d=c.path.toString(),e=c.ja();a.f("Listen on "+d+" for "+e);var f={p:d};b.tag&&(f.q=Bf(c.m),f.t=b.tag);f.h=b.ld();a.ua("q",f,function(f){var k=f.d,l=f.s;if(k&&"object"===typeof k&&ib(k,"w")){var m=B(k,"w");ea(m)&&0<=xa(m,"no_index")&&O("Using an unspecified index. Consider adding "+('".indexOn": "'+c.m.g.toString()+'"')+" at "+c.path.toString()+" to your security rules for better performance")}(a.$[d]&&a.$[d][e])===b&&(a.f("listen response",f),"ok"!==l&&Cf(a,d,e),b.G&&b.G(l,
k))})}g.kf=function(a){this.ob=a;this.f("Auth token refreshed");this.ob?Df(this):this.ma&&this.ua("unauth",{},function(){});if(a&&40===a.length||$c(a))this.f("Admin auth credential detected.  Reducing max reconnect time."),this.td=3E4};function Df(a){if(a.ma&&a.ob){var b=a.ob,c=Zc(b)?"auth":"gauth",d={cred:b};null===a.Vd?d.noauth=!0:"object"===typeof a.Vd&&(d.authvar=a.Vd);a.ua(c,d,function(c){var d=c.s;c=c.d||"error";a.ob===b&&("ok"===d?a.ke=0:Ef(a,d,c))})}}
g.uf=function(a,b){var c=a.path.toString(),d=a.ja();this.f("Unlisten called for "+c+" "+d);E(ed(a.m)||!V(a.m),"unlisten() called for non-default but complete query");if(Cf(this,c,d)&&this.ma){var e=Bf(a.m);this.f("Unlisten on "+c+" for "+d);c={p:c};b&&(c.q=e,c.t=b);this.ua("n",c)}};g.re=function(a,b,c){this.ma?Ff(this,"o",a,b,c):this.Kc.push({we:a,action:"o",data:b,G:c})};g.cf=function(a,b,c){this.ma?Ff(this,"om",a,b,c):this.Kc.push({we:a,action:"om",data:b,G:c})};
g.xd=function(a,b){this.ma?Ff(this,"oc",a,null,b):this.Kc.push({we:a,action:"oc",data:null,G:b})};function Ff(a,b,c,d,e){c={p:c,d:d};a.f("onDisconnect "+b,c);a.ua(b,c,function(a){e&&setTimeout(function(){e(a.s,a.d)},Math.floor(0))})}g.put=function(a,b,c,d){Gf(this,"p",a,b,c,d)};g.af=function(a,b,c,d){Gf(this,"m",a,b,c,d)};function Gf(a,b,c,d,e,f){d={p:c,d:d};n(f)&&(d.h=f);a.pa.push({action:b,mf:d,G:e});a.Oc++;b=a.pa.length-1;a.ma?Hf(a,b):a.f("Buffering put: "+c)}
function Hf(a,b){var c=a.pa[b].action,d=a.pa[b].mf,e=a.pa[b].G;a.pa[b].fg=a.ma;a.ua(c,d,function(d){a.f(c+" response",d);delete a.pa[b];a.Oc--;0===a.Oc&&(a.pa=[]);e&&e(d.s,d.d)})}g.ye=function(a){this.ma&&(a={c:a},this.f("reportStats",a),this.ua("s",a,function(a){"ok"!==a.s&&this.f("reportStats","Error sending stats: "+a.d)}))};
g.wd=function(a){if("r"in a){this.f("from server: "+w(a));var b=a.r,c=this.Gd[b];c&&(delete this.Gd[b],c(a.b))}else{if("error"in a)throw"A server-side error has occurred: "+a.error;"a"in a&&(b=a.a,a=a.b,this.f("handleServerMessage",b,a),"d"===b?this.Gb(a.p,a.d,!1,a.t):"m"===b?this.Gb(a.p,a.d,!0,a.t):"c"===b?If(this,a.p,a.q):"ac"===b?Ef(this,a.s,a.d):"sd"===b?this.ze?this.ze(a):"msg"in a&&"undefined"!==typeof console&&console.log("FIREBASE: "+a.msg.replace("\n","\nFIREBASE: ")):Jc("Unrecognized action received from server: "+
w(b)+"\nAre you using the latest client?"))}};g.Lc=function(a,b){this.f("connection ready");this.ma=!0;this.Ac=(new Date).getTime();this.ue({serverTimeOffset:a-(new Date).getTime()});this.Cb=b;if(this.Re){var c={};c["sdk.js."+firebase.SDK_VERSION.replace(/\./g,"-")]=1;tb()?c["framework.cordova"]=1:"object"===typeof navigator&&"ReactNative"===navigator.product&&(c["framework.reactnative"]=1);this.ye(c)}Jf(this);this.Re=!1;this.Jc(!0)};
function yf(a,b){E(!a.Fa,"Scheduling a connect when we're already connected/ing?");a.ub&&clearTimeout(a.ub);a.ub=setTimeout(function(){a.ub=null;Kf(a)},Math.floor(b))}g.Zf=function(a){a&&!this.Mb&&this.Sa===this.td&&(this.f("Window became visible.  Reducing delay."),this.Sa=1E3,this.Fa||yf(this,0));this.Mb=a};g.Yf=function(a){a?(this.f("Browser went online."),this.Sa=1E3,this.Fa||yf(this,0)):(this.f("Browser went offline.  Killing connection."),this.Fa&&this.Fa.close())};
g.df=function(){this.f("data client disconnected");this.ma=!1;this.Fa=null;for(var a=0;a<this.pa.length;a++){var b=this.pa[a];b&&"h"in b.mf&&b.fg&&(b.G&&b.G("disconnect"),delete this.pa[a],this.Oc--)}0===this.Oc&&(this.pa=[]);this.Gd={};Lf(this)&&(this.Mb?this.Ac&&(3E4<(new Date).getTime()-this.Ac&&(this.Sa=1E3),this.Ac=null):(this.f("Window isn't visible.  Delaying reconnect."),this.Sa=this.td,this.me=(new Date).getTime()),a=Math.max(0,this.Sa-((new Date).getTime()-this.me)),a*=Math.random(),this.f("Trying to reconnect in "+
a+"ms"),yf(this,a),this.Sa=Math.min(this.td,1.3*this.Sa));this.Jc(!1)};
function Kf(a){if(Lf(a)){a.f("Making a connection attempt");a.me=(new Date).getTime();a.Ac=null;var b=q(a.wd,a),c=q(a.Lc,a),d=q(a.df,a),e=a.id+":"+zf++,f=a.Cb,h=!1,k=null,l=function(){k?k.close():(h=!0,d())};a.Fa={close:l,ua:function(a){E(k,"sendRequest call when we're not connected not allowed.");k.ua(a)}};var m=a.de;a.de=!1;a.$c.getToken(m).then(function(l){h?G("getToken() completed but was canceled"):(G("getToken() completed. Creating connection."),a.ob=l&&l.accessToken,k=new kf(e,a.L,b,c,d,function(b){O(b+
" ("+a.L.toString()+")");a.ab("server_kill")},f))}).then(null,function(b){a.f("Failed to get token: "+b);h||l()})}}g.ab=function(a){G("Interrupting connection for reason: "+a);this.qd[a]=!0;this.Fa?this.Fa.close():(this.ub&&(clearTimeout(this.ub),this.ub=null),this.ma&&this.df())};g.kc=function(a){G("Resuming connection for reason: "+a);delete this.qd[a];va(this.qd)&&(this.Sa=1E3,this.Fa||yf(this,0))};
function If(a,b,c){c=c?Aa(c,function(a){return Rc(a)}).join("$"):"default";(a=Cf(a,b,c))&&a.G&&a.G("permission_denied")}function Cf(a,b,c){b=(new L(b)).toString();var d;n(a.$[b])?(d=a.$[b][c],delete a.$[b][c],0===oa(a.$[b])&&delete a.$[b]):d=void 0;return d}
function Ef(a,b,c){G("Auth token revoked: "+b+"/"+c);a.ob=null;a.de=!0;a.Fa.close();"invalid_token"===b&&(a.ke++,3<=a.ke&&(a.Sa=3E4,a=a.$c,b='Provided authentication credentials for the app named "'+a.oc.name+'" are invalid. This usually indicates your app was not initialized correctly. ',b="credential"in a.oc.options?b+'Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in a.oc.options?
b+'Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':b+'Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',O(b)))}
function Jf(a){Df(a);r(a.$,function(b){r(b,function(b){Af(a,b)})});for(var b=0;b<a.pa.length;b++)a.pa[b]&&Hf(a,b);for(;a.Kc.length;)b=a.Kc.shift(),Ff(a,b.action,b.we,b.data,b.G)}function Lf(a){var b;b=He.Vb().hc;return va(a.qd)&&b};var W={Mf:function(){he=bf=!0}};W.forceLongPolling=W.Mf;W.Nf=function(){ie=!0};W.forceWebSockets=W.Nf;W.Tf=function(){return af.isAvailable()};W.isWebSocketsAvailable=W.Tf;W.lg=function(a,b){a.u.Ra.ze=b};W.setSecurityDebugCallback=W.lg;W.Be=function(a,b){a.u.Be(b)};W.stats=W.Be;W.Ce=function(a,b){a.u.Ce(b)};W.statsIncrementCounter=W.Ce;W.fd=function(a){return a.u.fd};W.dataUpdateCount=W.fd;W.Sf=function(a,b){a.u.je=b};W.interceptServerData=W.Sf;function R(a,b){this.name=a;this.R=b}function Mf(a,b){return new R(a,b)};function Nf(a){this.V=a;this.g=a.m.g}function Of(a,b,c,d){var e=[],f=[];ya(b,function(b){"child_changed"===b.type&&a.g.nd(b.qe,b.Ja)&&f.push(new I("child_moved",b.Ja,b.Xa))});Pf(a,e,"child_removed",b,d,c);Pf(a,e,"child_added",b,d,c);Pf(a,e,"child_moved",f,d,c);Pf(a,e,"child_changed",b,d,c);Pf(a,e,ac,b,d,c);return e}function Pf(a,b,c,d,e,f){d=za(d,function(a){return a.type===c});Ha(d,q(a.Ff,a));ya(d,function(c){var d=Qf(a,c,f);ya(e,function(e){e.nf(c.type)&&b.push(e.createEvent(d,a.V))})})}
function Qf(a,b,c){"value"!==b.type&&"child_removed"!==b.type&&(b.Dd=c.Ve(b.Xa,b.Ja,a.g));return b}Nf.prototype.Ff=function(a,b){if(null==a.Xa||null==b.Xa)throw Cc("Should only compare child_ events.");return this.g.compare(new R(a.Xa,a.Ja),new R(b.Xa,b.Ja))};function Rf(a){this.sa=new Id(a);this.g=a.g;E(a.xa,"Only valid if limit has been set");this.oa=a.oa;this.Ib=!Sf(a)}g=Rf.prototype;g.F=function(a,b,c,d,e,f){this.sa.matches(new R(b,c))||(c=J);return a.Q(b).Z(c)?a:a.Eb()<this.oa?this.sa.Ub().F(a,b,c,d,e,f):Tf(this,a,b,c,e,f)};
g.ya=function(a,b,c){var d;if(b.J()||b.e())d=J.nb(this.g);else if(2*this.oa<b.Eb()&&b.yc(this.g)){d=J.nb(this.g);b=this.Ib?b.Zb(this.sa.vc,this.g):b.Xb(this.sa.Uc,this.g);for(var e=0;0<b.Pa.length&&e<this.oa;){var f=K(b),h;if(h=this.Ib?0>=this.g.compare(this.sa.Uc,f):0>=this.g.compare(f,this.sa.vc))d=d.T(f.name,f.R),e++;else break}}else{d=b.nb(this.g);d=d.fa(J);var k,l,m;if(this.Ib){b=d.We(this.g);k=this.sa.vc;l=this.sa.Uc;var u=Uf(this.g);m=function(a,b){return u(b,a)}}else b=d.Wb(this.g),k=this.sa.Uc,
l=this.sa.vc,m=Uf(this.g);for(var e=0,z=!1;0<b.Pa.length;)f=K(b),!z&&0>=m(k,f)&&(z=!0),(h=z&&e<this.oa&&0>=m(f,l))?e++:d=d.T(f.name,J)}return this.sa.Ub().ya(a,d,c)};g.fa=function(a){return a};g.Na=function(){return!0};g.Ub=function(){return this.sa.Ub()};
function Tf(a,b,c,d,e,f){var h;if(a.Ib){var k=Uf(a.g);h=function(a,b){return k(b,a)}}else h=Uf(a.g);E(b.Eb()==a.oa,"");var l=new R(c,d),m=a.Ib?Vf(b,a.g):Wf(b,a.g),u=a.sa.matches(l);if(b.Da(c)){for(var z=b.Q(c),m=e.fe(a.g,m,a.Ib);null!=m&&(m.name==c||b.Da(m.name));)m=e.fe(a.g,m,a.Ib);e=null==m?1:h(m,l);if(u&&!d.e()&&0<=e)return null!=f&&Gd(f,new I("child_changed",d,c,z)),b.T(c,d);null!=f&&Gd(f,new I("child_removed",z,c));b=b.T(c,J);return null!=m&&a.sa.matches(m)?(null!=f&&Gd(f,new I("child_added",
m.R,m.name)),b.T(m.name,m.R)):b}return d.e()?b:u&&0<=h(m,l)?(null!=f&&(Gd(f,new I("child_removed",m.R,m.name)),Gd(f,new I("child_added",d,c))),b.T(c,d).T(m.name,J)):b};function Ac(a,b){this.B=a;E(n(this.B)&&null!==this.B,"LeafNode shouldn't be created with null/undefined value.");this.aa=b||J;Xf(this.aa);this.Db=null}var Yf=["object","boolean","number","string"];g=Ac.prototype;g.J=function(){return!0};g.C=function(){return this.aa};g.fa=function(a){return new Ac(this.B,a)};g.Q=function(a){return".priority"===a?this.aa:J};g.P=function(a){return a.e()?this:".priority"===H(a)?this.aa:J};g.Da=function(){return!1};g.Ve=function(){return null};
g.T=function(a,b){return".priority"===a?this.fa(b):b.e()&&".priority"!==a?this:J.T(a,b).fa(this.aa)};g.F=function(a,b){var c=H(a);if(null===c)return b;if(b.e()&&".priority"!==c)return this;E(".priority"!==c||1===Ad(a),".priority must be the last token in a path");return this.T(c,J.F(D(a),b))};g.e=function(){return!1};g.Eb=function(){return 0};g.O=function(){return!1};g.H=function(a){return a&&!this.C().e()?{".value":this.Ca(),".priority":this.C().H()}:this.Ca()};
g.hash=function(){if(null===this.Db){var a="";this.aa.e()||(a+="priority:"+Zf(this.aa.H())+":");var b=typeof this.B,a=a+(b+":"),a="number"===b?a+Uc(this.B):a+this.B;this.Db=Ec(a)}return this.Db};g.Ca=function(){return this.B};g.sc=function(a){if(a===J)return 1;if(a instanceof P)return-1;E(a.J(),"Unknown node type");var b=typeof a.B,c=typeof this.B,d=xa(Yf,b),e=xa(Yf,c);E(0<=d,"Unknown leaf type: "+b);E(0<=e,"Unknown leaf type: "+c);return d===e?"object"===c?0:this.B<a.B?-1:this.B===a.B?0:1:e-d};
g.nb=function(){return this};g.yc=function(){return!0};g.Z=function(a){return a===this?!0:a.J()?this.B===a.B&&this.aa.Z(a.aa):!1};g.toString=function(){return w(this.H(!0))};function $f(a,b){return Oc(a.name,b.name)}function ag(a,b){return Oc(a,b)};function bg(){}var cg={};function Uf(a){return q(a.compare,a)}bg.prototype.nd=function(a,b){return 0!==this.compare(new R("[MIN_NAME]",a),new R("[MIN_NAME]",b))};bg.prototype.Hc=function(){return dg};function eg(a){E(!a.e()&&".priority"!==H(a),"Can't create PathIndex with empty path or .priority key");this.bc=a}la(eg,bg);g=eg.prototype;g.xc=function(a){return!a.P(this.bc).e()};g.compare=function(a,b){var c=a.R.P(this.bc),d=b.R.P(this.bc),c=c.sc(d);return 0===c?Oc(a.name,b.name):c};
g.Ec=function(a,b){var c=M(a),c=J.F(this.bc,c);return new R(b,c)};g.Fc=function(){var a=J.F(this.bc,fg);return new R("[MAX_NAME]",a)};g.toString=function(){return this.bc.slice().join("/")};function gg(){}la(gg,bg);g=gg.prototype;g.compare=function(a,b){var c=a.R.C(),d=b.R.C(),c=c.sc(d);return 0===c?Oc(a.name,b.name):c};g.xc=function(a){return!a.C().e()};g.nd=function(a,b){return!a.C().Z(b.C())};g.Hc=function(){return dg};g.Fc=function(){return new R("[MAX_NAME]",new Ac("[PRIORITY-POST]",fg))};
g.Ec=function(a,b){var c=M(a);return new R(b,new Ac("[PRIORITY-POST]",c))};g.toString=function(){return".priority"};var N=new gg;function hg(){}la(hg,bg);g=hg.prototype;g.compare=function(a,b){return Oc(a.name,b.name)};g.xc=function(){throw Cc("KeyIndex.isDefinedOn not expected to be called.");};g.nd=function(){return!1};g.Hc=function(){return dg};g.Fc=function(){return new R("[MAX_NAME]",J)};g.Ec=function(a){E(p(a),"KeyIndex indexValue must always be a string.");return new R(a,J)};g.toString=function(){return".key"};
var Fd=new hg;function ig(){}la(ig,bg);g=ig.prototype;g.compare=function(a,b){var c=a.R.sc(b.R);return 0===c?Oc(a.name,b.name):c};g.xc=function(){return!0};g.nd=function(a,b){return!a.Z(b)};g.Hc=function(){return dg};g.Fc=function(){return jg};g.Ec=function(a,b){var c=M(a);return new R(b,c)};g.toString=function(){return".value"};var kg=new ig;function lg(){this.Rb=this.na=this.Kb=this.ka=this.xa=!1;this.oa=0;this.mb="";this.dc=null;this.zb="";this.ac=null;this.xb="";this.g=N}var mg=new lg;function Sf(a){return""===a.mb?a.ka:"l"===a.mb}function Kd(a){E(a.ka,"Only valid if start has been set");return a.dc}function Jd(a){E(a.ka,"Only valid if start has been set");return a.Kb?a.zb:"[MIN_NAME]"}function Md(a){E(a.na,"Only valid if end has been set");return a.ac}
function Ld(a){E(a.na,"Only valid if end has been set");return a.Rb?a.xb:"[MAX_NAME]"}function ng(a){var b=new lg;b.xa=a.xa;b.oa=a.oa;b.ka=a.ka;b.dc=a.dc;b.Kb=a.Kb;b.zb=a.zb;b.na=a.na;b.ac=a.ac;b.Rb=a.Rb;b.xb=a.xb;b.g=a.g;b.mb=a.mb;return b}g=lg.prototype;g.ne=function(a){var b=ng(this);b.xa=!0;b.oa=a;b.mb="l";return b};g.oe=function(a){var b=ng(this);b.xa=!0;b.oa=a;b.mb="r";return b};g.Nd=function(a,b){var c=ng(this);c.ka=!0;n(a)||(a=null);c.dc=a;null!=b?(c.Kb=!0,c.zb=b):(c.Kb=!1,c.zb="");return c};
g.gd=function(a,b){var c=ng(this);c.na=!0;n(a)||(a=null);c.ac=a;n(b)?(c.Rb=!0,c.xb=b):(c.vg=!1,c.xb="");return c};function og(a,b){var c=ng(a);c.g=b;return c}function Bf(a){var b={};a.ka&&(b.sp=a.dc,a.Kb&&(b.sn=a.zb));a.na&&(b.ep=a.ac,a.Rb&&(b.en=a.xb));if(a.xa){b.l=a.oa;var c=a.mb;""===c&&(c=Sf(a)?"l":"r");b.vf=c}a.g!==N&&(b.i=a.g.toString());return b}function V(a){return!(a.ka||a.na||a.xa)}function ed(a){return V(a)&&a.g==N}
function fd(a){var b={};if(ed(a))return b;var c;a.g===N?c="$priority":a.g===kg?c="$value":a.g===Fd?c="$key":(E(a.g instanceof eg,"Unrecognized index type!"),c=a.g.toString());b.orderBy=w(c);a.ka&&(b.startAt=w(a.dc),a.Kb&&(b.startAt+=","+w(a.zb)));a.na&&(b.endAt=w(a.ac),a.Rb&&(b.endAt+=","+w(a.xb)));a.xa&&(Sf(a)?b.limitToFirst=a.oa:b.limitToLast=a.oa);return b}g.toString=function(){return w(Bf(this))};function wc(){this.k=this.B=null}wc.prototype.find=function(a){if(null!=this.B)return this.B.P(a);if(a.e()||null==this.k)return null;var b=H(a);a=D(a);return this.k.contains(b)?this.k.get(b).find(a):null};function yc(a,b,c){if(b.e())a.B=c,a.k=null;else if(null!==a.B)a.B=a.B.F(b,c);else{null==a.k&&(a.k=new ee);var d=H(b);a.k.contains(d)||a.k.add(d,new wc);a=a.k.get(d);b=D(b);yc(a,b,c)}}
function pg(a,b){if(b.e())return a.B=null,a.k=null,!0;if(null!==a.B){if(a.B.J())return!1;var c=a.B;a.B=null;c.O(N,function(b,c){yc(a,new L(b),c)});return pg(a,b)}return null!==a.k?(c=H(b),b=D(b),a.k.contains(c)&&pg(a.k.get(c),b)&&a.k.remove(c),a.k.e()?(a.k=null,!0):!1):!0}function xc(a,b,c){null!==a.B?c(b,a.B):a.O(function(a,e){var f=new L(b.toString()+"/"+a);xc(e,f,c)})}wc.prototype.O=function(a){null!==this.k&&fe(this.k,function(b,c){a(b,c)})};function qg(a,b){this.od=a;this.cc=b}qg.prototype.get=function(a){var b=B(this.od,a);if(!b)throw Error("No index defined for "+a);return b===cg?null:b};function rg(a,b,c){var d=ma(a.od,function(d,f){var h=B(a.cc,f);E(h,"Missing index implementation for "+f);if(d===cg){if(h.xc(b.R)){for(var k=[],l=c.Wb(Mf),m=K(l);m;)m.name!=b.name&&k.push(m),m=K(l);k.push(b);return sg(k,Uf(h))}return cg}h=c.get(b.name);k=d;h&&(k=k.remove(new R(b.name,h)));return k.Oa(b,b.R)});return new qg(d,a.cc)}
function tg(a,b,c){var d=ma(a.od,function(a){if(a===cg)return a;var d=c.get(b.name);return d?a.remove(new R(b.name,d)):a});return new qg(d,a.cc)}var ug=new qg({".priority":cg},{".priority":N});function P(a,b,c){this.k=a;(this.aa=b)&&Xf(this.aa);a.e()&&E(!this.aa||this.aa.e(),"An empty node cannot have a priority");this.yb=c;this.Db=null}g=P.prototype;g.J=function(){return!1};g.C=function(){return this.aa||J};g.fa=function(a){return this.k.e()?this:new P(this.k,a,this.yb)};g.Q=function(a){if(".priority"===a)return this.C();a=this.k.get(a);return null===a?J:a};g.P=function(a){var b=H(a);return null===b?this:this.Q(b).P(D(a))};g.Da=function(a){return null!==this.k.get(a)};
g.T=function(a,b){E(b,"We should always be passing snapshot nodes");if(".priority"===a)return this.fa(b);var c=new R(a,b),d,e;b.e()?(d=this.k.remove(a),c=tg(this.yb,c,this.k)):(d=this.k.Oa(a,b),c=rg(this.yb,c,this.k));e=d.e()?J:this.aa;return new P(d,e,c)};g.F=function(a,b){var c=H(a);if(null===c)return b;E(".priority"!==H(a)||1===Ad(a),".priority must be the last token in a path");var d=this.Q(c).F(D(a),b);return this.T(c,d)};g.e=function(){return this.k.e()};g.Eb=function(){return this.k.count()};
var vg=/^(0|[1-9]\d*)$/;g=P.prototype;g.H=function(a){if(this.e())return null;var b={},c=0,d=0,e=!0;this.O(N,function(f,h){b[f]=h.H(a);c++;e&&vg.test(f)?d=Math.max(d,Number(f)):e=!1});if(!a&&e&&d<2*c){var f=[],h;for(h in b)f[h]=b[h];return f}a&&!this.C().e()&&(b[".priority"]=this.C().H());return b};g.hash=function(){if(null===this.Db){var a="";this.C().e()||(a+="priority:"+Zf(this.C().H())+":");this.O(N,function(b,c){var d=c.hash();""!==d&&(a+=":"+b+":"+d)});this.Db=""===a?"":Ec(a)}return this.Db};
g.Ve=function(a,b,c){return(c=wg(this,c))?(a=ic(c,new R(a,b)))?a.name:null:ic(this.k,a)};function Vf(a,b){var c;c=(c=wg(a,b))?(c=c.Gc())&&c.name:a.k.Gc();return c?new R(c,a.k.get(c)):null}function Wf(a,b){var c;c=(c=wg(a,b))?(c=c.ec())&&c.name:a.k.ec();return c?new R(c,a.k.get(c)):null}g.O=function(a,b){var c=wg(this,a);return c?c.ha(function(a){return b(a.name,a.R)}):this.k.ha(b)};g.Wb=function(a){return this.Xb(a.Hc(),a)};
g.Xb=function(a,b){var c=wg(this,b);if(c)return c.Xb(a,function(a){return a});for(var c=this.k.Xb(a.name,Mf),d=kc(c);null!=d&&0>b.compare(d,a);)K(c),d=kc(c);return c};g.We=function(a){return this.Zb(a.Fc(),a)};g.Zb=function(a,b){var c=wg(this,b);if(c)return c.Zb(a,function(a){return a});for(var c=this.k.Zb(a.name,Mf),d=kc(c);null!=d&&0<b.compare(d,a);)K(c),d=kc(c);return c};g.sc=function(a){return this.e()?a.e()?0:-1:a.J()||a.e()?1:a===fg?-1:0};
g.nb=function(a){if(a===Fd||sa(this.yb.cc,a.toString()))return this;var b=this.yb,c=this.k;E(a!==Fd,"KeyIndex always exists and isn't meant to be added to the IndexMap.");for(var d=[],e=!1,c=c.Wb(Mf),f=K(c);f;)e=e||a.xc(f.R),d.push(f),f=K(c);d=e?sg(d,Uf(a)):cg;e=a.toString();c=wa(b.cc);c[e]=a;a=wa(b.od);a[e]=d;return new P(this.k,this.aa,new qg(a,c))};g.yc=function(a){return a===Fd||sa(this.yb.cc,a.toString())};
g.Z=function(a){if(a===this)return!0;if(a.J())return!1;if(this.C().Z(a.C())&&this.k.count()===a.k.count()){var b=this.Wb(N);a=a.Wb(N);for(var c=K(b),d=K(a);c&&d;){if(c.name!==d.name||!c.R.Z(d.R))return!1;c=K(b);d=K(a)}return null===c&&null===d}return!1};function wg(a,b){return b===Fd?null:a.yb.get(b.toString())}g.toString=function(){return w(this.H(!0))};function M(a,b){if(null===a)return J;var c=null;"object"===typeof a&&".priority"in a?c=a[".priority"]:"undefined"!==typeof b&&(c=b);E(null===c||"string"===typeof c||"number"===typeof c||"object"===typeof c&&".sv"in c,"Invalid priority type found: "+typeof c);"object"===typeof a&&".value"in a&&null!==a[".value"]&&(a=a[".value"]);if("object"!==typeof a||".sv"in a)return new Ac(a,M(c));if(a instanceof Array){var d=J,e=a;r(e,function(a,b){if(ib(e,b)&&"."!==b.substring(0,1)){var c=M(a);if(c.J()||!c.e())d=
d.T(b,c)}});return d.fa(M(c))}var f=[],h=!1,k=a;jb(k,function(a){if("string"!==typeof a||"."!==a.substring(0,1)){var b=M(k[a]);b.e()||(h=h||!b.C().e(),f.push(new R(a,b)))}});if(0==f.length)return J;var l=sg(f,$f,function(a){return a.name},ag);if(h){var m=sg(f,Uf(N));return new P(l,M(c),new qg({".priority":m},{".priority":N}))}return new P(l,M(c),ug)}var xg=Math.log(2);
function yg(a){this.count=parseInt(Math.log(a+1)/xg,10);this.Oe=this.count-1;this.Cf=a+1&parseInt(Array(this.count+1).join("1"),2)}function zg(a){var b=!(a.Cf&1<<a.Oe);a.Oe--;return b}
function sg(a,b,c,d){function e(b,d){var f=d-b;if(0==f)return null;if(1==f){var m=a[b],u=c?c(m):m;return new lc(u,m.R,!1,null,null)}var m=parseInt(f/2,10)+b,f=e(b,m),z=e(m+1,d),m=a[m],u=c?c(m):m;return new lc(u,m.R,!1,f,z)}a.sort(b);var f=function(b){function d(b,h){var k=u-b,z=u;u-=b;var z=e(k+1,z),k=a[k],F=c?c(k):k,z=new lc(F,k.R,h,null,z);f?f.left=z:m=z;f=z}for(var f=null,m=null,u=a.length,z=0;z<b.count;++z){var F=zg(b),td=Math.pow(2,b.count-(z+1));F?d(td,!1):(d(td,!1),d(td,!0))}return m}(new yg(a.length));
return null!==f?new gc(d||b,f):new gc(d||b)}function Zf(a){return"number"===typeof a?"number:"+Uc(a):"string:"+a}function Xf(a){if(a.J()){var b=a.H();E("string"===typeof b||"number"===typeof b||"object"===typeof b&&ib(b,".sv"),"Priority must be a string or number.")}else E(a===fg||a.e(),"priority of unexpected type.");E(a===fg||a.C().e(),"Priority nodes can't have a priority of their own.")}var J=new P(new gc(ag),null,ug);function Ag(){P.call(this,new gc(ag),J,ug)}la(Ag,P);g=Ag.prototype;
g.sc=function(a){return a===this?0:1};g.Z=function(a){return a===this};g.C=function(){return this};g.Q=function(){return J};g.e=function(){return!1};var fg=new Ag,dg=new R("[MIN_NAME]",J),jg=new R("[MAX_NAME]",fg);function X(a,b,c){this.A=a;this.V=b;this.g=c}X.prototype.H=function(){x("Firebase.DataSnapshot.val",0,0,arguments.length);return this.A.H()};X.prototype.val=X.prototype.H;X.prototype.be=function(){x("Firebase.DataSnapshot.exportVal",0,0,arguments.length);return this.A.H(!0)};X.prototype.exportVal=X.prototype.be;X.prototype.toJSON=function(){x("Firebase.DataSnapshot.toJSON",0,1,arguments.length);return this.be()};X.prototype.toJSON=X.prototype.toJSON;
X.prototype.Lf=function(){x("Firebase.DataSnapshot.exists",0,0,arguments.length);return!this.A.e()};X.prototype.exists=X.prototype.Lf;X.prototype.n=function(a){x("Firebase.DataSnapshot.child",0,1,arguments.length);ga(a)&&(a=String(a));ze("Firebase.DataSnapshot.child",a);var b=new L(a),c=this.V.n(b);return new X(this.A.P(b),c,N)};X.prototype.child=X.prototype.n;
X.prototype.Da=function(a){x("Firebase.DataSnapshot.hasChild",1,1,arguments.length);ze("Firebase.DataSnapshot.hasChild",a);var b=new L(a);return!this.A.P(b).e()};X.prototype.hasChild=X.prototype.Da;X.prototype.C=function(){x("Firebase.DataSnapshot.getPriority",0,0,arguments.length);return this.A.C().H()};X.prototype.getPriority=X.prototype.C;
X.prototype.forEach=function(a){x("Firebase.DataSnapshot.forEach",1,1,arguments.length);A("Firebase.DataSnapshot.forEach",1,a,!1);if(this.A.J())return!1;var b=this;return!!this.A.O(this.g,function(c,d){return a(new X(d,b.V.n(c),N))})};X.prototype.forEach=X.prototype.forEach;X.prototype.kd=function(){x("Firebase.DataSnapshot.hasChildren",0,0,arguments.length);return this.A.J()?!1:!this.A.e()};X.prototype.hasChildren=X.prototype.kd;
X.prototype.getKey=function(){x("Firebase.DataSnapshot.key",0,0,arguments.length);return this.V.getKey()};Wc(X.prototype,"key",X.prototype.getKey);X.prototype.Eb=function(){x("Firebase.DataSnapshot.numChildren",0,0,arguments.length);return this.A.Eb()};X.prototype.numChildren=X.prototype.Eb;X.prototype.wb=function(){x("Firebase.DataSnapshot.ref",0,0,arguments.length);return this.V};Wc(X.prototype,"ref",X.prototype.wb);function yd(a,b){this.N=a;this.Ld=b}function vd(a,b,c,d){return new yd(new Mb(b,c,d),a.Ld)}function zd(a){return a.N.da?a.N.j():null}yd.prototype.w=function(){return this.Ld};function ec(a){return a.Ld.da?a.Ld.j():null};function Bg(a,b){this.V=a;var c=a.m,d=new Hd(c.g),c=V(c)?new Hd(c.g):c.xa?new Rf(c):new Id(c);this.hf=new nd(c);var e=b.w(),f=b.N,h=d.ya(J,e.j(),null),k=c.ya(J,f.j(),null);this.Ka=new yd(new Mb(k,f.da,c.Na()),new Mb(h,e.da,d.Na()));this.Za=[];this.Jf=new Nf(a)}function Cg(a){return a.V}g=Bg.prototype;g.w=function(){return this.Ka.w().j()};g.hb=function(a){var b=ec(this.Ka);return b&&(V(this.V.m)||!a.e()&&!b.Q(H(a)).e())?b.P(a):null};g.e=function(){return 0===this.Za.length};g.Nb=function(a){this.Za.push(a)};
g.kb=function(a,b){var c=[];if(b){E(null==a,"A cancel should cancel all event registrations.");var d=this.V.path;ya(this.Za,function(a){(a=a.Me(b,d))&&c.push(a)})}if(a){for(var e=[],f=0;f<this.Za.length;++f){var h=this.Za[f];if(!h.matches(a))e.push(h);else if(a.Xe()){e=e.concat(this.Za.slice(f+1));break}}this.Za=e}else this.Za=[];return c};
g.eb=function(a,b,c){a.type===bd&&null!==a.source.Hb&&(E(ec(this.Ka),"We should always have a full cache before handling merges"),E(zd(this.Ka),"Missing event cache, even though we have a server cache"));var d=this.Ka;a=this.hf.eb(d,a,b,c);b=this.hf;c=a.Sd;E(c.N.j().yc(b.U.g),"Event snap not indexed");E(c.w().j().yc(b.U.g),"Server snap not indexed");E(Nb(a.Sd.w())||!Nb(d.w()),"Once a server snap is complete, it should never go back");this.Ka=a.Sd;return Dg(this,a.Df,a.Sd.N.j(),null)};
function Eg(a,b){var c=a.Ka.N,d=[];c.j().J()||c.j().O(N,function(a,b){d.push(new I("child_added",b,a))});c.da&&d.push($b(c.j()));return Dg(a,d,c.j(),b)}function Dg(a,b,c,d){return Of(a.Jf,b,c,d?[d]:a.Za)};function Fg(a,b,c){this.Pb=a;this.rb=b;this.tb=c||null}g=Fg.prototype;g.nf=function(a){return"value"===a};g.createEvent=function(a,b){var c=b.m.g;return new Rb("value",this,new X(a.Ja,b.wb(),c))};g.Tb=function(a){var b=this.tb;if("cancel"===a.ge()){E(this.rb,"Raising a cancel event on a listener with no cancel callback");var c=this.rb;return function(){c.call(b,a.error)}}var d=this.Pb;return function(){d.call(b,a.Md)}};g.Me=function(a,b){return this.rb?new Sb(this,a,b):null};
g.matches=function(a){return a instanceof Fg?a.Pb&&this.Pb?a.Pb===this.Pb&&a.tb===this.tb:!0:!1};g.Xe=function(){return null!==this.Pb};function Gg(a,b,c){this.ga=a;this.rb=b;this.tb=c}g=Gg.prototype;g.nf=function(a){a="children_added"===a?"child_added":a;return("children_removed"===a?"child_removed":a)in this.ga};g.Me=function(a,b){return this.rb?new Sb(this,a,b):null};
g.createEvent=function(a,b){E(null!=a.Xa,"Child events should have a childName.");var c=b.wb().n(a.Xa);return new Rb(a.type,this,new X(a.Ja,c,b.m.g),a.Dd)};g.Tb=function(a){var b=this.tb;if("cancel"===a.ge()){E(this.rb,"Raising a cancel event on a listener with no cancel callback");var c=this.rb;return function(){c.call(b,a.error)}}var d=this.ga[a.hd];return function(){d.call(b,a.Md,a.Dd)}};
g.matches=function(a){if(a instanceof Gg){if(!this.ga||!a.ga)return!0;if(this.tb===a.tb){var b=oa(a.ga);if(b===oa(this.ga)){if(1===b){var b=pa(a.ga),c=pa(this.ga);return c===b&&(!a.ga[b]||!this.ga[c]||a.ga[b]===this.ga[c])}return na(this.ga,function(b,c){return a.ga[c]===b})}}}return!1};g.Xe=function(){return null!==this.ga};function Y(a,b,c,d){this.u=a;this.path=b;this.m=c;this.Nc=d}
function Hg(a){var b=null,c=null;a.ka&&(b=Kd(a));a.na&&(c=Md(a));if(a.g===Fd){if(a.ka){if("[MIN_NAME]"!=Jd(a))throw Error("Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().");if("string"!==typeof b)throw Error("Query: When ordering by key, the argument passed to startAt(), endAt(),or equalTo() must be a string.");}if(a.na){if("[MAX_NAME]"!=Ld(a))throw Error("Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().");if("string"!==
typeof c)throw Error("Query: When ordering by key, the argument passed to startAt(), endAt(),or equalTo() must be a string.");}}else if(a.g===N){if(null!=b&&!re(b)||null!=c&&!re(c))throw Error("Query: When ordering by priority, the first argument passed to startAt(), endAt(), or equalTo() must be a valid priority value (null, a number, or a string).");}else if(E(a.g instanceof eg||a.g===kg,"unknown index type."),null!=b&&"object"===typeof b||null!=c&&"object"===typeof c)throw Error("Query: First argument passed to startAt(), endAt(), or equalTo() cannot be an object.");
}function Ig(a){if(a.ka&&a.na&&a.xa&&(!a.xa||""===a.mb))throw Error("Query: Can't combine startAt(), endAt(), and limit(). Use limitToFirst() or limitToLast() instead.");}function Jg(a,b){if(!0===a.Nc)throw Error(b+": You can't combine multiple orderBy calls.");}g=Y.prototype;g.wb=function(){x("Query.ref",0,0,arguments.length);return new T(this.u,this.path)};
g.gc=function(a,b,c,d){x("Query.on",2,4,arguments.length);xe("Query.on",a,!1);A("Query.on",2,b,!1);var e=Kg("Query.on",c,d);if("value"===a)Lg(this.u,this,new Fg(b,e.cancel||null,e.Ma||null));else{var f={};f[a]=b;Lg(this.u,this,new Gg(f,e.cancel,e.Ma))}return b};
g.Ic=function(a,b,c){x("Query.off",0,3,arguments.length);xe("Query.off",a,!0);A("Query.off",2,b,!0);hb("Query.off",3,c);var d=null,e=null;"value"===a?d=new Fg(b||null,null,c||null):a&&(b&&(e={},e[a]=b),d=new Gg(e,null,c||null));e=this.u;d=".info"===H(this.path)?e.pd.kb(this,d):e.K.kb(this,d);Wb(e.ca,this.path,d)};
g.$f=function(a,b){function c(k){f&&(f=!1,e.Ic(a,c),b&&b.call(d.Ma,k),h.resolve(k))}x("Query.once",1,4,arguments.length);xe("Query.once",a,!1);A("Query.once",2,b,!0);var d=Kg("Query.once",arguments[2],arguments[3]),e=this,f=!0,h=new db;fb(h.ra);this.gc(a,c,function(b){e.Ic(a,c);d.cancel&&d.cancel.call(d.Ma,b);h.reject(b)});return h.ra};
g.ne=function(a){x("Query.limitToFirst",1,1,arguments.length);if(!ga(a)||Math.floor(a)!==a||0>=a)throw Error("Query.limitToFirst: First argument must be a positive integer.");if(this.m.xa)throw Error("Query.limitToFirst: Limit was already set (by another call to limit, limitToFirst, or limitToLast).");return new Y(this.u,this.path,this.m.ne(a),this.Nc)};
g.oe=function(a){x("Query.limitToLast",1,1,arguments.length);if(!ga(a)||Math.floor(a)!==a||0>=a)throw Error("Query.limitToLast: First argument must be a positive integer.");if(this.m.xa)throw Error("Query.limitToLast: Limit was already set (by another call to limit, limitToFirst, or limitToLast).");return new Y(this.u,this.path,this.m.oe(a),this.Nc)};
g.ag=function(a){x("Query.orderByChild",1,1,arguments.length);if("$key"===a)throw Error('Query.orderByChild: "$key" is invalid.  Use Query.orderByKey() instead.');if("$priority"===a)throw Error('Query.orderByChild: "$priority" is invalid.  Use Query.orderByPriority() instead.');if("$value"===a)throw Error('Query.orderByChild: "$value" is invalid.  Use Query.orderByValue() instead.');ze("Query.orderByChild",a);Jg(this,"Query.orderByChild");var b=new L(a);if(b.e())throw Error("Query.orderByChild: cannot pass in empty path.  Use Query.orderByValue() instead.");
b=new eg(b);b=og(this.m,b);Hg(b);return new Y(this.u,this.path,b,!0)};g.bg=function(){x("Query.orderByKey",0,0,arguments.length);Jg(this,"Query.orderByKey");var a=og(this.m,Fd);Hg(a);return new Y(this.u,this.path,a,!0)};g.cg=function(){x("Query.orderByPriority",0,0,arguments.length);Jg(this,"Query.orderByPriority");var a=og(this.m,N);Hg(a);return new Y(this.u,this.path,a,!0)};
g.dg=function(){x("Query.orderByValue",0,0,arguments.length);Jg(this,"Query.orderByValue");var a=og(this.m,kg);Hg(a);return new Y(this.u,this.path,a,!0)};g.Nd=function(a,b){x("Query.startAt",0,2,arguments.length);se("Query.startAt",a,this.path,!0);ye("Query.startAt",b);var c=this.m.Nd(a,b);Ig(c);Hg(c);if(this.m.ka)throw Error("Query.startAt: Starting point was already set (by another call to startAt or equalTo).");n(a)||(b=a=null);return new Y(this.u,this.path,c,this.Nc)};
g.gd=function(a,b){x("Query.endAt",0,2,arguments.length);se("Query.endAt",a,this.path,!0);ye("Query.endAt",b);var c=this.m.gd(a,b);Ig(c);Hg(c);if(this.m.na)throw Error("Query.endAt: Ending point was already set (by another call to endAt or equalTo).");return new Y(this.u,this.path,c,this.Nc)};
g.If=function(a,b){x("Query.equalTo",1,2,arguments.length);se("Query.equalTo",a,this.path,!1);ye("Query.equalTo",b);if(this.m.ka)throw Error("Query.equalTo: Starting point was already set (by another call to endAt or equalTo).");if(this.m.na)throw Error("Query.equalTo: Ending point was already set (by another call to endAt or equalTo).");return this.Nd(a,b).gd(a,b)};
g.toString=function(){x("Query.toString",0,0,arguments.length);for(var a=this.path,b="",c=a.Y;c<a.o.length;c++)""!==a.o[c]&&(b+="/"+encodeURIComponent(String(a.o[c])));return this.u.toString()+(b||"/")};g.toJSON=function(){x("Query.toJSON",0,1,arguments.length);return this.toString()};g.ja=function(){var a=Rc(Bf(this.m));return"{}"===a?"default":a};
g.isEqual=function(a){x("Query.isEqual",1,1,arguments.length);if(!(a instanceof Y))throw Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.");var b=this.u===a.u,c=this.path.Z(a.path),d=this.ja()===a.ja();return b&&c&&d};
function Kg(a,b,c){var d={cancel:null,Ma:null};if(b&&c)d.cancel=b,A(a,3,d.cancel,!0),d.Ma=c,hb(a,4,d.Ma);else if(b)if("object"===typeof b&&null!==b)d.Ma=b;else if("function"===typeof b)d.cancel=b;else throw Error(y(a,3,!0)+" must either be a cancel callback or a context object.");return d}Y.prototype.on=Y.prototype.gc;Y.prototype.off=Y.prototype.Ic;Y.prototype.once=Y.prototype.$f;Y.prototype.limitToFirst=Y.prototype.ne;Y.prototype.limitToLast=Y.prototype.oe;Y.prototype.orderByChild=Y.prototype.ag;
Y.prototype.orderByKey=Y.prototype.bg;Y.prototype.orderByPriority=Y.prototype.cg;Y.prototype.orderByValue=Y.prototype.dg;Y.prototype.startAt=Y.prototype.Nd;Y.prototype.endAt=Y.prototype.gd;Y.prototype.equalTo=Y.prototype.If;Y.prototype.toString=Y.prototype.toString;Y.prototype.isEqual=Y.prototype.isEqual;Wc(Y.prototype,"ref",Y.prototype.wb);function Mg(){this.za={}}g=Mg.prototype;g.e=function(){return va(this.za)};g.eb=function(a,b,c){var d=a.source.Hb;if(null!==d)return d=B(this.za,d),E(null!=d,"SyncTree gave us an op for an invalid query."),d.eb(a,b,c);var e=[];r(this.za,function(d){e=e.concat(d.eb(a,b,c))});return e};g.Nb=function(a,b,c,d,e){var f=a.ja(),h=B(this.za,f);if(!h){var h=c.Aa(e?d:null),k=!1;h?k=!0:(h=d instanceof P?c.rc(d):J,k=!1);h=new Bg(a,new yd(new Mb(h,k,!1),new Mb(d,e,!1)));this.za[f]=h}h.Nb(b);return Eg(h,b)};
g.kb=function(a,b,c){var d=a.ja(),e=[],f=[],h=null!=Ng(this);if("default"===d){var k=this;r(this.za,function(a,d){f=f.concat(a.kb(b,c));a.e()&&(delete k.za[d],V(a.V.m)||e.push(a.V))})}else{var l=B(this.za,d);l&&(f=f.concat(l.kb(b,c)),l.e()&&(delete this.za[d],V(l.V.m)||e.push(l.V)))}h&&null==Ng(this)&&e.push(new T(a.u,a.path));return{hg:e,Kf:f}};function Og(a){return za(qa(a.za),function(a){return!V(a.V.m)})}g.hb=function(a){var b=null;r(this.za,function(c){b=b||c.hb(a)});return b};
function Pg(a,b){if(V(b.m))return Ng(a);var c=b.ja();return B(a.za,c)}function Ng(a){return ua(a.za,function(a){return V(a.V.m)})||null};function Qg(a){this.W=a}var Rg=new Qg(new Je(null));function Sg(a,b,c){if(b.e())return new Qg(new Je(c));var d=Ne(a.W,b);if(null!=d){var e=d.path,d=d.value;b=S(e,b);d=d.F(b,c);return new Qg(a.W.set(e,d))}a=Ed(a.W,b,new Je(c));return new Qg(a)}function Tg(a,b,c){var d=a;jb(c,function(a,c){d=Sg(d,b.n(a),c)});return d}Qg.prototype.Ed=function(a){if(a.e())return Rg;a=Ed(this.W,a,Q);return new Qg(a)};function Ug(a,b){var c=Ne(a.W,b);return null!=c?a.W.get(c.path).P(S(c.path,b)):null}
function Vg(a){var b=[],c=a.W.value;null!=c?c.J()||c.O(N,function(a,c){b.push(new R(a,c))}):a.W.children.ha(function(a,c){null!=c.value&&b.push(new R(a,c.value))});return b}function Wg(a,b){if(b.e())return a;var c=Ug(a,b);return null!=c?new Qg(new Je(c)):new Qg(a.W.subtree(b))}Qg.prototype.e=function(){return this.W.e()};Qg.prototype.apply=function(a){return Xg(C,this.W,a)};
function Xg(a,b,c){if(null!=b.value)return c.F(a,b.value);var d=null;b.children.ha(function(b,f){".priority"===b?(E(null!==f.value,"Priority writes must always be leaf nodes"),d=f.value):c=Xg(a.n(b),f,c)});c.P(a).e()||null===d||(c=c.F(a.n(".priority"),d));return c};function Yg(){this.S=Rg;this.la=[];this.Bc=-1}function Zg(a,b){for(var c=0;c<a.la.length;c++){var d=a.la[c];if(d.Zc===b)return d}return null}g=Yg.prototype;
g.Ed=function(a){var b=Ea(this.la,function(b){return b.Zc===a});E(0<=b,"removeWrite called with nonexistent writeId.");var c=this.la[b];this.la.splice(b,1);for(var d=c.visible,e=!1,f=this.la.length-1;d&&0<=f;){var h=this.la[f];h.visible&&(f>=b&&$g(h,c.path)?d=!1:c.path.contains(h.path)&&(e=!0));f--}if(d){if(e)this.S=ah(this.la,bh,C),this.Bc=0<this.la.length?this.la[this.la.length-1].Zc:-1;else if(c.Ga)this.S=this.S.Ed(c.path);else{var k=this;r(c.children,function(a,b){k.S=k.S.Ed(c.path.n(b))})}return!0}return!1};
g.Aa=function(a,b,c,d){if(c||d){var e=Wg(this.S,a);return!d&&e.e()?b:d||null!=b||null!=Ug(e,C)?(e=ah(this.la,function(b){return(b.visible||d)&&(!c||!(0<=xa(c,b.Zc)))&&(b.path.contains(a)||a.contains(b.path))},a),b=b||J,e.apply(b)):null}e=Ug(this.S,a);if(null!=e)return e;e=Wg(this.S,a);return e.e()?b:null!=b||null!=Ug(e,C)?(b=b||J,e.apply(b)):null};
g.rc=function(a,b){var c=J,d=Ug(this.S,a);if(d)d.J()||d.O(N,function(a,b){c=c.T(a,b)});else if(b){var e=Wg(this.S,a);b.O(N,function(a,b){var d=Wg(e,new L(a)).apply(b);c=c.T(a,d)});ya(Vg(e),function(a){c=c.T(a.name,a.R)})}else e=Wg(this.S,a),ya(Vg(e),function(a){c=c.T(a.name,a.R)});return c};g.ad=function(a,b,c,d){E(c||d,"Either existingEventSnap or existingServerSnap must exist");a=a.n(b);if(null!=Ug(this.S,a))return null;a=Wg(this.S,a);return a.e()?d.P(b):a.apply(d.P(b))};
g.qc=function(a,b,c){a=a.n(b);var d=Ug(this.S,a);return null!=d?d:Qb(c,b)?Wg(this.S,a).apply(c.j().Q(b)):null};g.lc=function(a){return Ug(this.S,a)};g.Xd=function(a,b,c,d,e,f){var h;a=Wg(this.S,a);h=Ug(a,C);if(null==h)if(null!=b)h=a.apply(b);else return[];h=h.nb(f);if(h.e()||h.J())return[];b=[];a=Uf(f);e=e?h.Zb(c,f):h.Xb(c,f);for(f=K(e);f&&b.length<d;)0!==a(f,c)&&b.push(f),f=K(e);return b};
function $g(a,b){return a.Ga?a.path.contains(b):!!ta(a.children,function(c,d){return a.path.n(d).contains(b)})}function bh(a){return a.visible}
function ah(a,b,c){for(var d=Rg,e=0;e<a.length;++e){var f=a[e];if(b(f)){var h=f.path;if(f.Ga)c.contains(h)?(h=S(c,h),d=Sg(d,h,f.Ga)):h.contains(c)&&(h=S(h,c),d=Sg(d,C,f.Ga.P(h)));else if(f.children)if(c.contains(h))h=S(c,h),d=Tg(d,h,f.children);else{if(h.contains(c))if(h=S(h,c),h.e())d=Tg(d,C,f.children);else if(f=B(f.children,H(h)))f=f.P(D(h)),d=Sg(d,C,f)}else throw Cc("WriteRecord should have .snap or .children");}}return d}function ch(a,b){this.Lb=a;this.W=b}g=ch.prototype;
g.Aa=function(a,b,c){return this.W.Aa(this.Lb,a,b,c)};g.rc=function(a){return this.W.rc(this.Lb,a)};g.ad=function(a,b,c){return this.W.ad(this.Lb,a,b,c)};g.lc=function(a){return this.W.lc(this.Lb.n(a))};g.Xd=function(a,b,c,d,e){return this.W.Xd(this.Lb,a,b,c,d,e)};g.qc=function(a,b){return this.W.qc(this.Lb,a,b)};g.n=function(a){return new ch(this.Lb.n(a),this.W)};function dh(a){this.wa=Q;this.jb=new Yg;this.De={};this.ic={};this.Cc=a}function eh(a,b,c,d,e){var f=a.jb,h=e;E(d>f.Bc,"Stacking an older write on top of newer ones");n(h)||(h=!0);f.la.push({path:b,Ga:c,Zc:d,visible:h});h&&(f.S=Sg(f.S,b,c));f.Bc=d;return e?fh(a,new vb(Xe,b,c)):[]}function gh(a,b,c,d){var e=a.jb;E(d>e.Bc,"Stacking an older merge on top of newer ones");e.la.push({path:b,children:c,Zc:d,visible:!0});e.S=Tg(e.S,b,c);e.Bc=d;c=Le(c);return fh(a,new ad(Xe,b,c))}
function hh(a,b,c){c=c||!1;var d=Zg(a.jb,b);if(a.jb.Ed(b)){var e=Q;null!=d.Ga?e=e.set(C,!0):jb(d.children,function(a,b){e=e.set(new L(a),b)});return fh(a,new We(d.path,e,c))}return[]}function ih(a,b,c){c=Le(c);return fh(a,new ad(Ze,b,c))}function jh(a,b,c,d){d=kh(a,d);if(null!=d){var e=lh(d);d=e.path;e=e.Hb;b=S(d,b);c=new vb(new Ye(!1,!0,e,!0),b,c);return mh(a,d,c)}return[]}
function nh(a,b,c,d){if(d=kh(a,d)){var e=lh(d);d=e.path;e=e.Hb;b=S(d,b);c=Le(c);c=new ad(new Ye(!1,!0,e,!0),b,c);return mh(a,d,c)}return[]}
dh.prototype.Nb=function(a,b){var c=a.path,d=null,e=!1;Se(this.wa,c,function(a,b){var f=S(a,c);d=d||b.hb(f);e=e||null!=Ng(b)});var f=this.wa.get(c);f?(e=e||null!=Ng(f),d=d||f.hb(C)):(f=new Mg,this.wa=this.wa.set(c,f));var h;null!=d?h=!0:(h=!1,d=J,Ve(this.wa.subtree(c),function(a,b){var c=b.hb(C);c&&(d=d.T(a,c))}));var k=null!=Pg(f,a);if(!k&&!V(a.m)){var l=oh(a);E(!(l in this.ic),"View does not exist, but we have a tag");var m=ph++;this.ic[l]=m;this.De["_"+m]=l}h=f.Nb(a,b,new ch(c,this.jb),d,h);k||
e||(f=Pg(f,a),h=h.concat(qh(this,a,f)));return h};
dh.prototype.kb=function(a,b,c){var d=a.path,e=this.wa.get(d),f=[];if(e&&("default"===a.ja()||null!=Pg(e,a))){f=e.kb(a,b,c);e.e()&&(this.wa=this.wa.remove(d));e=f.hg;f=f.Kf;b=-1!==Ea(e,function(a){return V(a.m)});var h=Qe(this.wa,d,function(a,b){return null!=Ng(b)});if(b&&!h&&(d=this.wa.subtree(d),!d.e()))for(var d=rh(d),k=0;k<d.length;++k){var l=d[k],m=l.V,l=sh(this,l);this.Cc.Ae(th(m),uh(this,m),l.ld,l.G)}if(!h&&0<e.length&&!c)if(b)this.Cc.Od(th(a),null);else{var u=this;ya(e,function(a){a.ja();
var b=u.ic[oh(a)];u.Cc.Od(th(a),b)})}vh(this,e)}return f};dh.prototype.Aa=function(a,b){var c=this.jb,d=Qe(this.wa,a,function(b,c){var d=S(b,a);if(d=c.hb(d))return d});return c.Aa(a,d,b,!0)};function rh(a){return Oe(a,function(a,c,d){if(c&&null!=Ng(c))return[Ng(c)];var e=[];c&&(e=Og(c));r(d,function(a){e=e.concat(a)});return e})}function vh(a,b){for(var c=0;c<b.length;++c){var d=b[c];if(!V(d.m)){var d=oh(d),e=a.ic[d];delete a.ic[d];delete a.De["_"+e]}}}
function th(a){return V(a.m)&&!ed(a.m)?a.wb():a}function qh(a,b,c){var d=b.path,e=uh(a,b);c=sh(a,c);b=a.Cc.Ae(th(b),e,c.ld,c.G);d=a.wa.subtree(d);if(e)E(null==Ng(d.value),"If we're adding a query, it shouldn't be shadowed");else for(e=Oe(d,function(a,b,c){if(!a.e()&&b&&null!=Ng(b))return[Cg(Ng(b))];var d=[];b&&(d=d.concat(Aa(Og(b),function(a){return a.V})));r(c,function(a){d=d.concat(a)});return d}),d=0;d<e.length;++d)c=e[d],a.Cc.Od(th(c),uh(a,c));return b}
function sh(a,b){var c=b.V,d=uh(a,c);return{ld:function(){return(b.w()||J).hash()},G:function(b){if("ok"===b){if(d){var f=c.path;if(b=kh(a,d)){var h=lh(b);b=h.path;h=h.Hb;f=S(b,f);f=new xb(new Ye(!1,!0,h,!0),f);b=mh(a,b,f)}else b=[]}else b=fh(a,new xb(Ze,c.path));return b}f="Unknown Error";"too_big"===b?f="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"==b?f="Client doesn't have permission to access the desired data.":"unavailable"==b&&
(f="The service is unavailable");f=Error(b+" at "+c.path.toString()+": "+f);f.code=b.toUpperCase();return a.kb(c,null,f)}}}function oh(a){return a.path.toString()+"$"+a.ja()}function lh(a){var b=a.indexOf("$");E(-1!==b&&b<a.length-1,"Bad queryKey.");return{Hb:a.substr(b+1),path:new L(a.substr(0,b))}}function kh(a,b){var c=a.De,d="_"+b;return d in c?c[d]:void 0}function uh(a,b){var c=oh(b);return B(a.ic,c)}var ph=1;
function mh(a,b,c){var d=a.wa.get(b);E(d,"Missing sync point for query tag that we're tracking");return d.eb(c,new ch(b,a.jb),null)}function fh(a,b){return wh(a,b,a.wa,null,new ch(C,a.jb))}function wh(a,b,c,d,e){if(b.path.e())return xh(a,b,c,d,e);var f=c.get(C);null==d&&null!=f&&(d=f.hb(C));var h=[],k=H(b.path),l=b.Mc(k);if((c=c.children.get(k))&&l)var m=d?d.Q(k):null,k=e.n(k),h=h.concat(wh(a,l,c,m,k));f&&(h=h.concat(f.eb(b,e,d)));return h}
function xh(a,b,c,d,e){var f=c.get(C);null==d&&null!=f&&(d=f.hb(C));var h=[];c.children.ha(function(c,f){var m=d?d.Q(c):null,u=e.n(c),z=b.Mc(c);z&&(h=h.concat(xh(a,z,f,m,u)))});f&&(h=h.concat(f.eb(b,e,d)));return h};function Sd(a,b,c){this.app=c;var d=new Kb(c);this.L=a;this.Va=kd(a);this.Vc=null;this.ca=new Tb;this.vd=1;this.Ra=null;if(b||0<=("object"===typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))this.va=new cd(this.L,q(this.Gb,this),d),setTimeout(q(this.Jc,this,!0),0);else{b=c.options.databaseAuthVariableOverride;if("undefined"!==da(b)&&null!==b){if("object"!==da(b))throw Error("Only objects are supported for option databaseAuthVariableOverride");
try{w(b)}catch(e){throw Error("Invalid authOverride provided: "+e);}}this.va=this.Ra=new wf(this.L,q(this.Gb,this),q(this.Jc,this),q(this.ue,this),d,b)}var f=this;Lb(d,function(a){f.va.kf(a)});this.og=ld(a,q(function(){return new hd(this.Va,this.va)},this));this.mc=new Zd;this.ie=new fc;this.pd=new dh({Ae:function(a,b,c,d){b=[];c=f.ie.j(a.path);c.e()||(b=fh(f.pd,new vb(Ze,a.path,c)),setTimeout(function(){d("ok")},0));return b},Od:ba});yh(this,"connected",!1);this.ia=new wc;this.Ya=new Rd(this);this.fd=
0;this.je=null;this.K=new dh({Ae:function(a,b,c,d){f.va.$e(a,c,b,function(b,c){var e=d(b,c);Yb(f.ca,a.path,e)});return[]},Od:function(a,b){f.va.uf(a,b)}})}g=Sd.prototype;g.toString=function(){return(this.L.Sc?"https://":"http://")+this.L.host};g.name=function(){return this.L.pe};function zh(a){a=a.ie.j(new L(".info/serverTimeOffset")).H()||0;return(new Date).getTime()+a}function Ah(a){a=a={timestamp:zh(a)};a.timestamp=a.timestamp||(new Date).getTime();return a}
g.Gb=function(a,b,c,d){this.fd++;var e=new L(a);b=this.je?this.je(a,b):b;a=[];d?c?(b=ma(b,function(a){return M(a)}),a=nh(this.K,e,b,d)):(b=M(b),a=jh(this.K,e,b,d)):c?(d=ma(b,function(a){return M(a)}),a=ih(this.K,e,d)):(d=M(b),a=fh(this.K,new vb(Ze,e,d)));d=e;0<a.length&&(d=Bh(this,e));Yb(this.ca,d,a)};g.Jc=function(a){yh(this,"connected",a);!1===a&&Ch(this)};g.ue=function(a){var b=this;Tc(a,function(a,d){yh(b,d,a)})};
function yh(a,b,c){b=new L("/.info/"+b);c=M(c);var d=a.ie;d.Jd=d.Jd.F(b,c);c=fh(a.pd,new vb(Ze,b,c));Yb(a.ca,b,c)}g.Jb=function(a,b,c,d){this.f("set",{path:a.toString(),value:b,ug:c});var e=Ah(this);b=M(b,c);var e=zc(b,e),f=this.vd++,e=eh(this.K,a,e,f,!0);Ub(this.ca,e);var h=this;this.va.put(a.toString(),b.H(!0),function(b,c){var e="ok"===b;e||O("set at "+a+" failed: "+b);e=hh(h.K,f,!e);Yb(h.ca,a,e);Dh(d,b,c)});e=Eh(this,a);Bh(this,e);Yb(this.ca,e,[])};
g.update=function(a,b,c){this.f("update",{path:a.toString(),value:b});var d=!0,e=Ah(this),f={};r(b,function(a,b){d=!1;var c=M(a);f[b]=zc(c,e)});if(d)G("update() called with empty data.  Don't do anything."),Dh(c,"ok");else{var h=this.vd++,k=gh(this.K,a,f,h);Ub(this.ca,k);var l=this;this.va.af(a.toString(),b,function(b,d){var e="ok"===b;e||O("update at "+a+" failed: "+b);var e=hh(l.K,h,!e),f=a;0<e.length&&(f=Bh(l,a));Yb(l.ca,f,e);Dh(c,b,d)});r(b,function(b,c){var d=Eh(l,a.n(c));Bh(l,d)});Yb(this.ca,
a,[])}};function Ch(a){a.f("onDisconnectEvents");var b=Ah(a),c=[];xc(vc(a.ia,b),C,function(b,e){c=c.concat(fh(a.K,new vb(Ze,b,e)));var f=Eh(a,b);Bh(a,f)});a.ia=new wc;Yb(a.ca,C,c)}g.xd=function(a,b){var c=this;this.va.xd(a.toString(),function(d,e){"ok"===d&&pg(c.ia,a);Dh(b,d,e)})};function Be(a,b,c,d){var e=M(c);a.va.re(b.toString(),e.H(!0),function(c,h){"ok"===c&&yc(a.ia,b,e);Dh(d,c,h)})}
function Ce(a,b,c,d,e){var f=M(c,d);a.va.re(b.toString(),f.H(!0),function(c,d){"ok"===c&&yc(a.ia,b,f);Dh(e,c,d)})}function De(a,b,c,d){var e=!0,f;for(f in c)e=!1;e?(G("onDisconnect().update() called with empty data.  Don't do anything."),Dh(d,"ok")):a.va.cf(b.toString(),c,function(e,f){if("ok"===e)for(var l in c){var m=M(c[l]);yc(a.ia,b.n(l),m)}Dh(d,e,f)})}function Lg(a,b,c){c=".info"===H(b.path)?a.pd.Nb(b,c):a.K.Nb(b,c);Wb(a.ca,b.path,c)}g.ab=function(){this.Ra&&this.Ra.ab("repo_interrupt")};
g.kc=function(){this.Ra&&this.Ra.kc("repo_interrupt")};g.Be=function(a){if("undefined"!==typeof console){a?(this.Vc||(this.Vc=new Bb(this.Va)),a=this.Vc.get()):a=this.Va.get();var b=Ba(ra(a),function(a,b){return Math.max(b.length,a)},0),c;for(c in a){for(var d=a[c],e=c.length;e<b+2;e++)c+=" ";console.log(c+d)}}};g.Ce=function(a){Ab(this.Va,a);this.og.rf[a]=!0};g.f=function(a){var b="";this.Ra&&(b=this.Ra.id+":");G(b,arguments)};
function Dh(a,b,c){a&&sb(function(){if("ok"==b)a(null);else{var d=(b||"error").toUpperCase(),e=d;c&&(e+=": "+c);e=Error(e);e.code=d;a(e)}})};function Fh(a,b,c,d,e){function f(){}a.f("transaction on "+b);var h=new T(a,b);h.gc("value",f);c={path:b,update:c,G:d,status:null,ef:Bc(),He:e,of:0,Rd:function(){h.Ic("value",f)},Td:null,Ba:null,cd:null,dd:null,ed:null};d=a.K.Aa(b,void 0)||J;c.cd=d;d=c.update(d.H());if(n(d)){te("transaction failed: Data returned ",d,c.path);c.status=1;e=$d(a.mc,b);var k=e.Ca()||[];k.push(c);ae(e,k);"object"===typeof d&&null!==d&&ib(d,".priority")?(k=B(d,".priority"),E(re(k),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):
k=(a.K.Aa(b)||J).C().H();e=Ah(a);d=M(d,k);e=zc(d,e);c.dd=d;c.ed=e;c.Ba=a.vd++;c=eh(a.K,b,e,c.Ba,c.He);Yb(a.ca,b,c);Gh(a)}else c.Rd(),c.dd=null,c.ed=null,c.G&&(a=new X(c.cd,new T(a,c.path),N),c.G(null,!1,a))}function Gh(a,b){var c=b||a.mc;b||Hh(a,c);if(null!==c.Ca()){var d=Ih(a,c);E(0<d.length,"Sending zero length transaction queue");Ca(d,function(a){return 1===a.status})&&Jh(a,c.path(),d)}else c.kd()&&c.O(function(b){Gh(a,b)})}
function Jh(a,b,c){for(var d=Aa(c,function(a){return a.Ba}),e=a.K.Aa(b,d)||J,d=e,e=e.hash(),f=0;f<c.length;f++){var h=c[f];E(1===h.status,"tryToSendTransactionQueue_: items in queue should all be run.");h.status=2;h.of++;var k=S(b,h.path),d=d.F(k,h.dd)}d=d.H(!0);a.va.put(b.toString(),d,function(d){a.f("transaction put response",{path:b.toString(),status:d});var e=[];if("ok"===d){d=[];for(f=0;f<c.length;f++){c[f].status=3;e=e.concat(hh(a.K,c[f].Ba));if(c[f].G){var h=c[f].ed,k=new T(a,c[f].path);d.push(q(c[f].G,
null,null,!0,new X(h,k,N)))}c[f].Rd()}Hh(a,$d(a.mc,b));Gh(a);Yb(a.ca,b,e);for(f=0;f<d.length;f++)sb(d[f])}else{if("datastale"===d)for(f=0;f<c.length;f++)c[f].status=4===c[f].status?5:1;else for(O("transaction at "+b.toString()+" failed: "+d),f=0;f<c.length;f++)c[f].status=5,c[f].Td=d;Bh(a,b)}},e)}function Bh(a,b){var c=Kh(a,b),d=c.path(),c=Ih(a,c);Lh(a,c,d);return d}
function Lh(a,b,c){if(0!==b.length){for(var d=[],e=[],f=za(b,function(a){return 1===a.status}),f=Aa(f,function(a){return a.Ba}),h=0;h<b.length;h++){var k=b[h],l=S(c,k.path),m=!1,u;E(null!==l,"rerunTransactionsUnderNode_: relativePath should not be null.");if(5===k.status)m=!0,u=k.Td,e=e.concat(hh(a.K,k.Ba,!0));else if(1===k.status)if(25<=k.of)m=!0,u="maxretry",e=e.concat(hh(a.K,k.Ba,!0));else{var z=a.K.Aa(k.path,f)||J;k.cd=z;var F=b[h].update(z.H());n(F)?(te("transaction failed: Data returned ",F,
k.path),l=M(F),"object"===typeof F&&null!=F&&ib(F,".priority")||(l=l.fa(z.C())),z=k.Ba,F=Ah(a),F=zc(l,F),k.dd=l,k.ed=F,k.Ba=a.vd++,Fa(f,z),e=e.concat(eh(a.K,k.path,F,k.Ba,k.He)),e=e.concat(hh(a.K,z,!0))):(m=!0,u="nodata",e=e.concat(hh(a.K,k.Ba,!0)))}Yb(a.ca,c,e);e=[];m&&(b[h].status=3,setTimeout(b[h].Rd,Math.floor(0)),b[h].G&&("nodata"===u?(k=new T(a,b[h].path),d.push(q(b[h].G,null,null,!1,new X(b[h].cd,k,N)))):d.push(q(b[h].G,null,Error(u),!1,null))))}Hh(a,a.mc);for(h=0;h<d.length;h++)sb(d[h]);Gh(a)}}
function Kh(a,b){for(var c,d=a.mc;null!==(c=H(b))&&null===d.Ca();)d=$d(d,c),b=D(b);return d}function Ih(a,b){var c=[];Mh(a,b,c);c.sort(function(a,b){return a.ef-b.ef});return c}function Mh(a,b,c){var d=b.Ca();if(null!==d)for(var e=0;e<d.length;e++)c.push(d[e]);b.O(function(b){Mh(a,b,c)})}function Hh(a,b){var c=b.Ca();if(c){for(var d=0,e=0;e<c.length;e++)3!==c[e].status&&(c[d]=c[e],d++);c.length=d;ae(b,0<c.length?c:null)}b.O(function(b){Hh(a,b)})}
function Eh(a,b){var c=Kh(a,b).path(),d=$d(a.mc,b);de(d,function(b){Nh(a,b)});Nh(a,d);ce(d,function(b){Nh(a,b)});return c}
function Nh(a,b){var c=b.Ca();if(null!==c){for(var d=[],e=[],f=-1,h=0;h<c.length;h++)4!==c[h].status&&(2===c[h].status?(E(f===h-1,"All SENT items should be at beginning of queue."),f=h,c[h].status=4,c[h].Td="set"):(E(1===c[h].status,"Unexpected transaction status in abort"),c[h].Rd(),e=e.concat(hh(a.K,c[h].Ba,!0)),c[h].G&&d.push(q(c[h].G,null,Error("set"),!1,null))));-1===f?ae(b,null):c.length=f+1;Yb(a.ca,b.path(),e);for(h=0;h<d.length;h++)sb(d[h])}};function Xd(){this.lb={};this.wf=!1}Xd.prototype.ab=function(){for(var a in this.lb)this.lb[a].ab()};Xd.prototype.kc=function(){for(var a in this.lb)this.lb[a].kc()};Xd.prototype.ce=function(a){this.wf=a};ca(Xd);Xd.prototype.interrupt=Xd.prototype.ab;Xd.prototype.resume=Xd.prototype.kc;var Z={};Z.nc=wf;Z.DataConnection=Z.nc;wf.prototype.ng=function(a,b){this.ua("q",{p:a},b)};Z.nc.prototype.simpleListen=Z.nc.prototype.ng;wf.prototype.Hf=function(a,b){this.ua("echo",{d:a},b)};Z.nc.prototype.echo=Z.nc.prototype.Hf;wf.prototype.interrupt=wf.prototype.ab;Z.zf=kf;Z.RealTimeConnection=Z.zf;kf.prototype.sendRequest=kf.prototype.ua;kf.prototype.close=kf.prototype.close;
Z.Rf=function(a){var b=wf.prototype.put;wf.prototype.put=function(c,d,e,f){n(f)&&(f=a());b.call(this,c,d,e,f)};return function(){wf.prototype.put=b}};Z.hijackHash=Z.Rf;Z.yf=Hb;Z.ConnectionTarget=Z.yf;Z.ja=function(a){return a.ja()};Z.queryIdentifier=Z.ja;Z.Uf=function(a){return a.u.Ra.$};Z.listens=Z.Uf;Z.ce=function(a){Xd.Vb().ce(a)};Z.forceRestClient=Z.ce;Z.Context=Xd;function T(a,b){if(!(a instanceof Sd))throw Error("new Firebase() no longer supported - use app.database().");Y.call(this,a,b,mg,!1);this.then=void 0;this["catch"]=void 0}la(T,Y);g=T.prototype;g.getKey=function(){x("Firebase.key",0,0,arguments.length);return this.path.e()?null:Bd(this.path)};
g.n=function(a){x("Firebase.child",1,1,arguments.length);if(ga(a))a=String(a);else if(!(a instanceof L))if(null===H(this.path)){var b=a;b&&(b=b.replace(/^\/*\.info(\/|$)/,"/"));ze("Firebase.child",b)}else ze("Firebase.child",a);return new T(this.u,this.path.n(a))};g.getParent=function(){x("Firebase.parent",0,0,arguments.length);var a=this.path.parent();return null===a?null:new T(this.u,a)};
g.Of=function(){x("Firebase.ref",0,0,arguments.length);for(var a=this;null!==a.getParent();)a=a.getParent();return a};g.Gf=function(){return this.u.Ya};g.set=function(a,b){x("Firebase.set",1,2,arguments.length);Ae("Firebase.set",this.path);se("Firebase.set",a,this.path,!1);A("Firebase.set",2,b,!0);var c=new db;this.u.Jb(this.path,a,null,eb(c,b));return c.ra};
g.update=function(a,b){x("Firebase.update",1,2,arguments.length);Ae("Firebase.update",this.path);if(ea(a)){for(var c={},d=0;d<a.length;++d)c[""+d]=a[d];a=c;O("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}ve("Firebase.update",a,this.path);A("Firebase.update",2,b,!0);c=new db;this.u.update(this.path,a,eb(c,b));return c.ra};
g.Jb=function(a,b,c){x("Firebase.setWithPriority",2,3,arguments.length);Ae("Firebase.setWithPriority",this.path);se("Firebase.setWithPriority",a,this.path,!1);we("Firebase.setWithPriority",2,b);A("Firebase.setWithPriority",3,c,!0);if(".length"===this.getKey()||".keys"===this.getKey())throw"Firebase.setWithPriority failed: "+this.getKey()+" is a read-only object.";var d=new db;this.u.Jb(this.path,a,b,eb(d,c));return d.ra};
g.remove=function(a){x("Firebase.remove",0,1,arguments.length);Ae("Firebase.remove",this.path);A("Firebase.remove",1,a,!0);return this.set(null,a)};
g.transaction=function(a,b,c){x("Firebase.transaction",1,3,arguments.length);Ae("Firebase.transaction",this.path);A("Firebase.transaction",1,a,!1);A("Firebase.transaction",2,b,!0);if(n(c)&&"boolean"!=typeof c)throw Error(y("Firebase.transaction",3,!0)+"must be a boolean.");if(".length"===this.getKey()||".keys"===this.getKey())throw"Firebase.transaction failed: "+this.getKey()+" is a read-only object.";"undefined"===typeof c&&(c=!0);var d=new db;ha(b)&&fb(d.ra);Fh(this.u,this.path,a,function(a,c,h){a?
d.reject(a):d.resolve(new ub(c,h));ha(b)&&b(a,c,h)},c);return d.ra};g.kg=function(a,b){x("Firebase.setPriority",1,2,arguments.length);Ae("Firebase.setPriority",this.path);we("Firebase.setPriority",1,a);A("Firebase.setPriority",2,b,!0);var c=new db;this.u.Jb(this.path.n(".priority"),a,null,eb(c,b));return c.ra};
g.push=function(a,b){x("Firebase.push",0,2,arguments.length);Ae("Firebase.push",this.path);se("Firebase.push",a,this.path,!0);A("Firebase.push",2,b,!0);var c=zh(this.u),d=Ie(c),c=this.n(d),e;if(null!=a){var f=this;e=c.set(a,b).then(function(){return f.n(d)})}else e=cb.resolve(c);c.then=q(e.then,e);c["catch"]=q(e.then,e,void 0);ha(b)&&fb(e);return c};g.ib=function(){Ae("Firebase.onDisconnect",this.path);return new U(this.u,this.path)};T.prototype.child=T.prototype.n;T.prototype.set=T.prototype.set;
T.prototype.update=T.prototype.update;T.prototype.setWithPriority=T.prototype.Jb;T.prototype.remove=T.prototype.remove;T.prototype.transaction=T.prototype.transaction;T.prototype.setPriority=T.prototype.kg;T.prototype.push=T.prototype.push;T.prototype.onDisconnect=T.prototype.ib;Wc(T.prototype,"database",T.prototype.Gf);Wc(T.prototype,"key",T.prototype.getKey);Wc(T.prototype,"parent",T.prototype.getParent);Wc(T.prototype,"root",T.prototype.Of);if("undefined"===typeof firebase)throw Error("Cannot install Firebase Database - be sure to load firebase-app.js first.");
try{firebase.INTERNAL.registerService("database",function(a){var b=Xd.Vb(),c=a.options.databaseURL;n(c)||Kc("Can't determine Firebase Database URL.  Be sure to include databaseURL option when calling firebase.intializeApp().");var d=Lc(c),c=d.jc;Wd("Invalid Firebase Database URL",d);d.path.e()||Kc("Database URL must point to the root of a Firebase Database (not including a child path).");(d=B(b.lb,a.name))&&Kc("FIREBASE INTERNAL ERROR: Database initialized multiple times.");d=new Sd(c,b.wf,a);b.lb[a.name]=
d;return d.Ya},{Reference:T,Query:Y,Database:Rd,enableLogging:Hc,INTERNAL:W,TEST_ACCESS:Z,ServerValue:Ud})}catch(Oh){Kc("Failed to register the Firebase Database Service ("+Oh+")")};})();

(function(){var f=function(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]},g=this,h=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=
typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},k=function(a,b){function c(){}c.prototype=b.prototype;a.B=b.prototype;a.prototype=new c;a.u=function(a,c,n){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];
return b.prototype[c].apply(a,d)}};var m={},p=(m["only-available-in-window"]="This method is available in a Window context.",m["only-available-in-sw"]="This method is available in a service worker context.",m["should-be-overriden"]="This method should be overriden by extended classes.",m["bad-sender-id"]="Please ensure that 'messagingSenderId' is set correctly in the options passed into firebase.initializeApp().",m["permission-default"]="The required permissions were not granted and dismissed instead.",m["permission-blocked"]="The required permissions were not granted and blocked instead.",
m["unsupported-browser"]="This browser doesn't support the API's required to use the firebase SDK.",m["notifications-blocked"]="Notifications have been blocked.",m["failed-serviceworker-registration"]="We are unable to register the default service worker. {$browserErrorMessage}",m["sw-registration-expected"]="A service worker registration was the expected input.",m["get-subscription-failed"]="There was an error when trying to get any existing Push Subscriptions.",m["invalid-saved-token"]="Unable to access details of the saved token.",
m["sw-reg-redundant"]="The service worker being used for push was made redundant.",m["token-subscribe-failed"]="A problem occured while subscribing the user to FCM: {$message}",m["token-subscribe-no-token"]="FCM returned no token when subscribing the user to push.",m["token-subscribe-no-push-set"]="FCM returned an invalid response when getting an FCM token.",m["use-sw-before-get-token"]="You must call useServiceWorker() before calling getToken() to ensure your service worker is used.",m["invalid-delete-token"]=
"You must pass a valid token into deleteToken(), i.e. the token from getToken().",m["delete-token-not-found"]="The deletion attempt for token could not be performed as the token was not found.",m["bg-handler-function-expected"]="The input to setBackgroundMessageHandler() must be a function.",m["no-window-client-to-msg"]="An attempt was made to message a non-existant window client.",m["unable-to-resubscribe"]="There was an error while re-subscribing the FCM token for push messaging. Will have to resubscribe the user on next visit. {$message}",
m["no-fcm-token-for-resubscribe"]="Could not find an FCM token and as a result, unable to resubscribe. Will have to resubscribe the user on next visit.",m["failed-to-delete-token"]="Unable to delete the currently saved token.",m["no-sw-in-reg"]="Even though the service worker registration was successful, there was a problem accessing the service worker itself.",m["incorrect-gcm-sender-id"]="Please change your web app manifest's 'gcm_sender_id' value to '103953800507' to use Firebase messaging.",m);var q={userVisibleOnly:!0,applicationServerKey:new Uint8Array([4,51,148,247,223,161,235,177,220,3,162,94,21,113,219,72,211,46,237,237,178,52,219,183,71,58,12,143,196,204,225,111,60,140,132,223,171,182,102,62,242,12,212,139,254,227,249,118,47,20,28,99,8,106,111,45,177,26,149,176,206,55,192,156,110])};var r=function(a,b){var c={};return c["firebase-messaging-msg-type"]=a,c["firebase-messaging-msg-data"]=b,c};var u=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,u);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};k(u,Error);var v=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};var w=function(a,b){b.unshift(a);u.call(this,v.apply(null,b));b.shift()};k(w,u);var x=function(a,b,c){if(!a){var d="Assertion failed";if(b)var d=d+(": "+b),e=Array.prototype.slice.call(arguments,2);throw new w(""+d,e||[]);}};var y=null;var A=function(a){a=new Uint8Array(a);var b=h(a);x("array"==b||"object"==b&&"number"==typeof a.length,"encodeByteArray takes an array as a parameter");if(!y)for(y={},b=0;65>b;b++)y[b]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b);for(var b=y,c=[],d=0;d<a.length;d+=3){var e=a[d],n=d+1<a.length,l=n?a[d+1]:0,z=d+2<a.length,t=z?a[d+2]:0,M=e>>2,e=(e&3)<<4|l>>4,l=(l&15)<<2|t>>6,t=t&63;z||(t=64,n||(l=64));c.push(b[M],b[e],b[l],b[t])}return c.join("").replace(/\+/g,"-").replace(/\//g,
"_").replace(/=+$/,"")};var B=new firebase.INTERNAL.ErrorFactory("messaging","Messaging",p),C=function(){this.a=null},D=function(a){if(a.a)return a.a;a.a=new Promise(function(a,c){var b=g.indexedDB.open("fcm_token_details_db",1);b.onerror=function(a){c(a.target.error)};b.onsuccess=function(b){a(b.target.result)};b.onupgradeneeded=function(a){a=a.target.result.createObjectStore("fcm_token_object_Store",{keyPath:"swScope"});a.createIndex("fcmSenderId","fcmSenderId",{unique:!1});a.createIndex("fcmToken","fcmToken",{unique:!0})}});
return a.a},E=function(a){a.a?a.a.then(function(b){b.close();a.a=null}):Promise.resolve()},F=function(a,b){return D(a).then(function(a){return new Promise(function(c,e){var d=a.transaction(["fcm_token_object_Store"]).objectStore("fcm_token_object_Store").index("fcmToken").get(b);d.onerror=function(a){e(a.target.error)};d.onsuccess=function(a){c(a.target.result)}})})},G=function(a,b){return D(a).then(function(a){return new Promise(function(c,e){var d=[],l=a.transaction(["fcm_token_object_Store"]).objectStore("fcm_token_object_Store").openCursor();
l.onerror=function(a){e(a.target.error)};l.onsuccess=function(a){(a=a.target.result)?(a.value.fcmSenderId===b&&d.push(a.value),a.continue()):c(d)}})})},H=function(a,b,c){var d=A(b.getKey("p256dh")),e=A(b.getKey("auth"));a="authorized_entity="+a+"&"+("endpoint="+b.endpoint+"&")+("encryption_key="+d+"&")+("encryption_auth="+e);c&&(a+="&pushSet="+c);c=new Headers;c.append("Content-Type","application/x-www-form-urlencoded");return fetch("https://fcm.googleapis.com/fcm/connect/subscribe",{method:"POST",
headers:c,body:a}).then(function(a){return a.json()}).then(function(a){if(a.error)throw B.create("token-subscribe-failed",{message:a.error.message});if(!a.token)throw B.create("token-subscribe-no-token");if(!a.pushSet)throw B.create("token-subscribe-no-push-set");return{token:a.token,pushSet:a.pushSet}})},I=function(a,b,c,d,e,n){var l={swScope:c.scope,endpoint:d.endpoint,auth:A(d.getKey("auth")),p256dh:A(d.getKey("p256dh")),fcmToken:e,fcmPushSet:n,fcmSenderId:b};return D(a).then(function(a){return new Promise(function(b,
c){var d=a.transaction(["fcm_token_object_Store"],"readwrite").objectStore("fcm_token_object_Store").put(l);d.onerror=function(a){c(a.target.error)};d.onsuccess=function(){b()}})})};
C.prototype.i=function(a,b){return b instanceof ServiceWorkerRegistration?"string"!==typeof a||0===a.length?Promise.reject(B.create("bad-sender-id")):G(this,a).then(function(c){if(0!==c.length){var d=c.findIndex(function(c){return b.scope===c.swScope&&a===c.fcmSenderId});if(-1!==d)return c[d]}}).then(function(a){if(a)return b.pushManager.getSubscription().catch(function(){throw B.create("get-subscription-failed");}).then(function(b){var c;if(c=b)c=b.endpoint===a.endpoint&&A(b.getKey("auth"))===a.auth&&
A(b.getKey("p256dh"))===a.p256dh;if(c)return a.fcmToken})}):Promise.reject(B.create("sw-registration-expected"))};C.prototype.getSavedToken=C.prototype.i;
C.prototype.h=function(a,b){var c=this;return"string"!==typeof a||0===a.length?Promise.reject(B.create("bad-sender-id")):b instanceof ServiceWorkerRegistration?b.pushManager.getSubscription().then(function(a){return a?a:b.pushManager.subscribe(q)}).then(function(d){return H(a,d).then(function(e){return I(c,a,b,d,e.token,e.pushSet).then(function(){return e.token})})}):Promise.reject(B.create("sw-registration-expected"))};C.prototype.createToken=C.prototype.h;
C.prototype.deleteToken=function(a){var b=this;return"string"!==typeof a||0===a.length?Promise.reject(B.create("invalid-delete-token")):F(this,a).then(function(a){if(!a)throw B.create("delete-token-not-found");return D(b).then(function(b){return new Promise(function(c,d){var e=b.transaction(["fcm_token_object_Store"],"readwrite").objectStore("fcm_token_object_Store").delete(a.swScope);e.onerror=function(a){d(a.target.error)};e.onsuccess=function(b){0===b.target.result?d(B.create("failed-to-delete-token")):
c(a)}})})})};var J=function(a){var b=this;this.a=new firebase.INTERNAL.ErrorFactory("messaging","Messaging",p);if(!a.options.messagingSenderId||"string"!==typeof a.options.messagingSenderId)throw this.a.create("bad-sender-id");this.l=a.options.messagingSenderId;this.c=new C;this.app=a;this.INTERNAL={};this.INTERNAL.delete=function(){return b.delete}};
J.prototype.getToken=function(){var a=this,b=Notification.permission;return"granted"!==b?"denied"===b?Promise.reject(this.a.create("notifications-blocked")):Promise.resolve(null):this.f().then(function(b){return a.c.i(a.l,b).then(function(c){return c?c:a.c.h(a.l,b)})})};J.prototype.getToken=J.prototype.getToken;J.prototype.deleteToken=function(a){var b=this;return this.c.deleteToken(a).then(function(){return b.f()}).then(function(a){return a?a.pushManager.getSubscription():null}).then(function(a){if(a)return a.unsubscribe()})};
J.prototype.deleteToken=J.prototype.deleteToken;J.prototype.f=function(){throw this.a.create("should-be-overriden");};J.prototype.requestPermission=function(){throw this.a.create("only-available-in-window");};J.prototype.useServiceWorker=function(){throw this.a.create("only-available-in-window");};J.prototype.useServiceWorker=J.prototype.useServiceWorker;J.prototype.onMessage=function(){throw this.a.create("only-available-in-window");};J.prototype.onMessage=J.prototype.onMessage;
J.prototype.onTokenRefresh=function(){throw this.a.create("only-available-in-window");};J.prototype.onTokenRefresh=J.prototype.onTokenRefresh;J.prototype.setBackgroundMessageHandler=function(){throw this.a.create("only-available-in-sw");};J.prototype.setBackgroundMessageHandler=J.prototype.setBackgroundMessageHandler;J.prototype.delete=function(){E(this.c)};var K=self,P=function(a){J.call(this,a);var b=this;this.a=new firebase.INTERNAL.ErrorFactory("messaging","Messaging",p);K.addEventListener("push",function(a){return L(b,a)},!1);K.addEventListener("pushsubscriptionchange",function(a){return N(b,a)},!1);K.addEventListener("notificationclick",function(a){return O(b,a)},!1);this.b=null};f(P,J);
var L=function(a,b){var c;try{c=b.data.json()}catch(e){return}var d=Q().then(function(b){if(b){if(c.notification||a.b)return R(a,c)}else{if((b=c)&&"object"===typeof b.notification){var d=Object.assign({},b.notification),e={};d.data=(e.FCM_MSG=b,e);b=d}else b=void 0;if(b)return K.registration.showNotification(b.title||"",b);if(a.b)return a.b(c)}});b.waitUntil(d)},N=function(a,b){var c=a.getToken().then(function(b){if(!b)throw a.a.create("no-fcm-token-for-resubscribe");var c=a.c;return F(c,b).then(function(b){if(!b)throw a.a.create("invalid-saved-token");
return K.registration.pushManager.subscribe(q).then(function(a){return H(b.w,a,b.v)}).catch(function(d){return c.deleteToken(b.A).then(function(){throw a.a.create("unable-to-resubscribe",{message:d});})})})});b.waitUntil(c)},O=function(a,b){if(b.notification&&b.notification.data&&b.notification.data.FCM_MSG){b.stopImmediatePropagation();b.notification.close();var c=b.notification.data.FCM_MSG,d=c.notification.click_action;if(d){var e=S(d).then(function(a){return a?a:K.clients.openWindow(d)}).then(function(b){if(b)return delete c.notification,
T(a,b,r("notification-clicked",c))});b.waitUntil(e)}}};P.prototype.setBackgroundMessageHandler=function(a){if(a&&"function"!==typeof a)throw this.a.create("bg-handler-function-expected");this.b=a};P.prototype.setBackgroundMessageHandler=P.prototype.setBackgroundMessageHandler;
var S=function(a){var b=(new URL(a)).href;return K.clients.matchAll({type:"window",includeUncontrolled:!0}).then(function(a){for(var c=null,e=0;e<a.length;e++)if((new URL(a[e].url)).href===b){c=a[e];break}if(c)return c.focus(),c})},T=function(a,b,c){return new Promise(function(d,e){if(!b)return e(a.a.create("no-window-client-to-msg"));b.postMessage(c);d()})},Q=function(){return K.clients.matchAll({type:"window",includeUncontrolled:!0}).then(function(a){return a.some(function(a){return"visible"===
a.visibilityState})})},R=function(a,b){return K.clients.matchAll({type:"window",includeUncontrolled:!0}).then(function(c){var d=r("push-msg-received",b);return Promise.all(c.map(function(b){return T(a,b,d)}))})};P.prototype.f=function(){return Promise.resolve(K.registration)};var V=function(a){J.call(this,a);var b=this;this.j=null;this.m=firebase.INTERNAL.createSubscribe(function(a){b.j=a});this.s=null;this.o=firebase.INTERNAL.createSubscribe(function(a){b.s=a});U(this)};f(V,J);
V.prototype.getToken=function(){var a=this;return"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")?W(this).then(function(){return J.prototype.getToken.call(a)}):Promise.reject(this.a.create("unsupported-browser"))};V.prototype.getToken=V.prototype.getToken;
var W=function(a){if(a.g)return a.g;var b=document.querySelector('link[rel="manifest"]');b?a.g=fetch(b.href).then(function(a){return a.json()}).catch(function(){return Promise.resolve()}).then(function(b){if(b&&b.gcm_sender_id&&"103953800507"!==b.gcm_sender_id)throw a.a.create("incorrect-gcm-sender-id");}):a.g=Promise.resolve();return a.g};
V.prototype.requestPermission=function(){var a=this;return"granted"===Notification.permission?Promise.resolve():new Promise(function(b,c){var d=function(d){return"granted"===d?b():"denied"===d?c(a.a.create("permission-blocked")):c(a.a.create("permission-default"))},e=Notification.requestPermission(function(a){e||d(a)});e&&e.then(d)})};V.prototype.requestPermission=V.prototype.requestPermission;
V.prototype.useServiceWorker=function(a){if(!(a instanceof ServiceWorkerRegistration))throw this.a.create("sw-registration-expected");if("undefined"!==typeof this.b)throw this.a.create("use-sw-before-get-token");this.b=a};V.prototype.useServiceWorker=V.prototype.useServiceWorker;V.prototype.onMessage=function(a,b,c){return this.m(a,b,c)};V.prototype.onMessage=V.prototype.onMessage;V.prototype.onTokenRefresh=function(a,b,c){return this.o(a,b,c)};V.prototype.onTokenRefresh=V.prototype.onTokenRefresh;
var X=function(a,b){var c=b.installing||b.waiting||b.active;return new Promise(function(d,e){if(c)if("activated"===c.state)d(b);else if("redundant"===c.state)e(a.a.create("sw-reg-redundant"));else{var n=function(){if("activated"===c.state)d(b);else if("redundant"===c.state)e(a.a.create("sw-reg-redundant"));else return;c.removeEventListener("statechange",n)};c.addEventListener("statechange",n)}else e(a.a.create("no-sw-in-reg"))})};
V.prototype.f=function(){var a=this;if(this.b)return X(this,this.b);this.b=null;return navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}).catch(function(b){throw a.a.create("failed-serviceworker-registration",{browserErrorMessage:b.message});}).then(function(b){return X(a,b).then(function(){a.b=b;b.update();return b})})};
var U=function(a){"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",function(b){if(b.data&&b.data["firebase-messaging-msg-type"])switch(b=b.data,b["firebase-messaging-msg-type"]){case "push-msg-received":case "notification-clicked":a.j.next(b["firebase-messaging-msg-data"])}},!1)};if(!(firebase&&firebase.INTERNAL&&firebase.INTERNAL.registerService))throw Error("Cannot install Firebase Messaging - be sure to load firebase-app.js first.");firebase.INTERNAL.registerService("messaging",function(a){return self&&"ServiceWorkerGlobalScope"in self?new P(a):new V(a)},{Messaging:V});}).call(this);
(function(){for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},l="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,m=["Number","MIN_SAFE_INTEGER"],ba=0;ba<m.length-1;ba++){var ca=m[ba];ca in l||(l[ca]={});l=l[ca]}var da=m[m.length-1];
-9007199254740991!=l[da]&&aa(l,da,{configurable:!0,writable:!0,value:-9007199254740991});
var n=this,q=function(a){return void 0!==a},ea=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&
!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b};var r=function(a,b){return-1!==a.indexOf(b)};var fa=function(a,b,c){function d(){z||(z=!0,b.apply(null,arguments))}function e(b){p=setTimeout(function(){p=null;a(g,2===C)},b)}function g(a,b){if(!z)if(a)d.apply(null,arguments);else if(2===C||B)d.apply(null,arguments);else{64>h&&(h*=2);var c;1===C?(C=2,c=0):c=1E3*(h+Math.random());e(c)}}function f(a){Ma||(Ma=!0,z||(null!==p?(a||(C=2),clearTimeout(p),e(0)):a||(C=1)))}var h=1,p=null,B=!1,C=0,z=!1,Ma=!1;e(0);setTimeout(function(){B=!0;f(!0)},c);return f};var t="https://firebasestorage.googleapis.com";var u=function(a,b){this.code="storage/"+a;this.message="Firebase Storage: "+b;this.serverResponse=null;this.name="FirebaseError"};(function(){var a=Error;function b(){}b.prototype=a.prototype;u.b=a.prototype;u.prototype=new b;u.a=function(b,d,e){for(var c=Array(arguments.length-2),f=2;f<arguments.length;f++)c[f-2]=arguments[f];return a.prototype[d].apply(b,c)}})();
var ga=function(){return new u("unknown","An unknown error occurred, please check the error payload for server response.")},ha=function(){return new u("canceled","User canceled the upload/download.")},ia=function(){return new u("cannot-slice-blob","Cannot slice blob for upload. Please retry the upload.")},ja=function(a,b,c){return new u("invalid-argument","Invalid argument in `"+b+"` at index "+a+": "+c)},ka=function(){return new u("app-deleted","The Firebase app was deleted.")},v=function(a,b){return new u("invalid-format",
"String does not match format '"+a+"': "+b)},la=function(a){throw new u("internal-error","Internal error: "+a);};var ma=function(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(c,a[c])},na=function(a){var b={};ma(a,function(a,d){b[a]=d});return b};var oa=function(a,b){b=b.split("/").filter(function(a){return 0<a.length}).join("/");return 0===a.length?b:a+"/"+b},pa=function(a){var b=a.lastIndexOf("/",a.length-2);return-1===b?a:a.slice(b+1)};var qa=function(a){if("undefined"!==typeof firebase)return new firebase.Promise(a);throw Error("Error in Firebase Storage - be sure to load firebase-app.js first.");};var w=function(a,b,c,d){this.h=a;this.b={};this.method=b;this.headers={};this.body=null;this.j=c;this.l=this.a=null;this.c=[200];this.g=[];this.timeout=d;this.f=!0};var ra={STATE_CHANGED:"state_changed"},x={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"},sa=function(a){switch(a){case "running":case "pausing":case "canceling":return"running";case "paused":return"paused";case "success":return"success";case "canceled":return"canceled";case "error":return"error";default:return"error"}};var y=function(a){return q(a)&&null!==a},ta=function(a){return"string"===typeof a||a instanceof String},ua=function(){return"undefined"!==typeof Blob};var wa=function(a,b){var c=va;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var xa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},ya=function(a,b){return a<b?-1:a>b?1:0};var A=function(a){return function(){var b=[];Array.prototype.push.apply(b,arguments);firebase.Promise.resolve(!0).then(function(){a.apply(null,b)})}};var D=function(a,b){this.bucket=a;this.path=b},za=function(a){var b=encodeURIComponent;return"/b/"+b(a.bucket)+"/o/"+b(a.path)},Ba=function(a){var b;try{b=Aa(a)}catch(c){return new D(a,"")}if(""===b.path)return b;throw new u("invalid-default-bucket","Invalid default bucket '"+a+"'.");},Aa=function(a){for(var b=null,c=[{K:/^gs:\/\/([A-Za-z0-9.\-]+)(\/(.*))?$/i,G:{bucket:1,path:3},J:function(a){"/"===a.path.charAt(a.path.length-1)&&(a.path=a.path.slice(0,-1))}},{K:/^https?:\/\/firebasestorage\.googleapis\.com\/v[A-Za-z0-9_]+\/b\/([A-Za-z0-9.\-]+)\/o(\/([^?#]*).*)?$/i,
G:{bucket:1,path:3},J:function(a){a.path=decodeURIComponent(a.path)}}],d=0;d<c.length;d++){var e=c[d],g=e.K.exec(a);if(g){b=g[e.G.bucket];(g=g[e.G.path])||(g="");b=new D(b,g);e.J(b);break}}if(null==b)throw new u("invalid-url","Invalid URL '"+a+"'.");return b};var Ca=function(a,b,c){"function"==ea(a)||y(b)||y(c)?(this.b=a,this.error=b||null,this.a=c||null):(this.b=a.next||null,this.error=a.error||null,this.a=a.complete||null)};var E={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"},Da=function(a){switch(a){case "raw":case "base64":case "base64url":case "data_url":break;default:throw"Expected one of the event types: [raw, base64, base64url, data_url].";}},Ea=function(a,b){this.data=a;this.a=b||null},Ia=function(a,b){switch(a){case "raw":return new Ea(Fa(b));case "base64":case "base64url":return new Ea(Ga(a,b));case "data_url":a=new Ha(b);var c;if(a.a)c=Ga("base64",a.c);else{try{c=decodeURIComponent(a.c)}catch(d){throw v("data_url",
"Malformed data URL.");}c=Fa(c)}return new Ea(c,(new Ha(b)).b)}throw ga();},Fa=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);if(127>=d)b.push(d);else if(2047>=d)b.push(192|d>>6,128|d&63);else if(55296==(d&64512))if(c<a.length-1&&56320==(a.charCodeAt(c+1)&64512)){var e=a.charCodeAt(++c),d=65536|(d&1023)<<10|e&1023;b.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|d&63)}else b.push(239,191,189);else 56320==(d&64512)?b.push(239,191,189):b.push(224|d>>12,128|d>>6&63,128|d&63)}return new Uint8Array(b)},
Ga=function(a,b){switch(a){case "base64":var c=-1!==b.indexOf("-"),d=-1!==b.indexOf("_");if(c||d)throw v(a,"Invalid character '"+(c?"-":"_")+"' found: is it base64url encoded?");break;case "base64url":c=-1!==b.indexOf("+");d=-1!==b.indexOf("/");if(c||d)throw v(a,"Invalid character '"+(c?"+":"/")+"' found: is it base64 encoded?");b=b.replace(/-/g,"+").replace(/_/g,"/")}var e;try{e=atob(b)}catch(g){throw v(a,"Invalid character found");}a=new Uint8Array(e.length);for(b=0;b<e.length;b++)a[b]=e.charCodeAt(b);
return a},Ha=function(a){var b=a.match(/^data:([^,]+)?,/);if(null===b)throw v("data_url","Must be formatted 'data:[<mediatype>][;base64],<data>");b=b[1]||null;this.a=!1;this.b=null;if(null!=b){var c=b.length-7;this.b=(this.a=0<=c&&b.indexOf(";base64",c)==c)?b.substring(0,b.length-7):b}this.c=a.substring(a.indexOf(",")+1)};var Ja=function(a){var b=encodeURIComponent,c="?";ma(a,function(a,e){a=b(a)+"="+b(e);c=c+a+"&"});return c=c.slice(0,-1)};var Ka=function(){var a=this;this.a=new XMLHttpRequest;this.c=0;this.f=qa(function(b){a.a.addEventListener("abort",function(){a.c=2;b(a)});a.a.addEventListener("error",function(){a.c=1;b(a)});a.a.addEventListener("load",function(){b(a)})});this.b=!1},La=function(a,b,c,d,e){if(a.b)throw la("cannot .send() more than once");a.b=!0;a.a.open(c,b,!0);y(e)&&ma(e,function(b,c){a.a.setRequestHeader(b,c.toString())});y(d)?a.a.send(d):a.a.send();return a.f},Na=function(a){if(!a.b)throw la("cannot .getErrorCode() before sending");
return a.c},F=function(a){if(!a.b)throw la("cannot .getStatus() before sending");try{return a.a.status}catch(b){return-1}},Oa=function(a){if(!a.b)throw la("cannot .getResponseText() before sending");return a.a.responseText};Ka.prototype.abort=function(){this.a.abort()};var G=function(a,b,c,d,e,g){this.b=a;this.h=b;this.f=c;this.a=d;this.g=e;this.c=g};k=G.prototype;k.V=function(){return this.b};k.qa=function(){return this.h};k.na=function(){return this.f};k.ia=function(){return this.a};k.W=function(){if(y(this.a)){var a=this.a.downloadURLs;return y(a)&&y(a[0])?a[0]:null}return null};k.pa=function(){return this.g};k.la=function(){return this.c};var H;a:{var Pa=n.navigator;if(Pa){var Qa=Pa.userAgent;if(Qa){H=Qa;break a}}H=""};var Sa=function(a,b,c,d,e,g,f,h,p,B,C){this.C=a;this.A=b;this.v=c;this.o=d;this.B=e.slice();this.m=g.slice();this.j=this.l=this.c=this.b=null;this.f=this.g=!1;this.s=f;this.h=h;this.D=C;this.w=p;var z=this;this.u=qa(function(a,b){z.l=a;z.j=b;Ra(z)})},Ta=function(a,b,c){this.b=a;this.c=b;this.a=!!c},Ra=function(a){function b(a,b){b?a(!1,new Ta(!1,null,!0)):(b=new Ka,b.a.withCredentials=d.D,d.b=b,La(b,d.C,d.A,d.o,d.v).then(function(b){d.b=null;var c=0===Na(b),e=F(b);if(!(c=!c))var c=r([408,429],e),
g=r(d.m,e),c=500<=e&&600>e||c||g;c?(b=2===Na(b),a(!1,new Ta(!1,null,b))):a(!0,new Ta(r(d.B,e),b))}))}function c(a,b){var c=d.l;a=d.j;var e=b.c;if(b.b)try{var g=d.s(e,Oa(e));q(g)?c(g):c()}catch(B){a(B)}else null!==e?(b=ga(),g=Oa(e),b.serverResponse=g,d.h?a(d.h(e,b)):a(b)):(b=b.a?d.f?ka():ha():new u("retry-limit-exceeded","Max retry time for operation exceeded, please try again."),a(b))}var d=a;a.g?c(0,new Ta(!1,null,!0)):a.c=fa(b,c,a.w)};Sa.prototype.a=function(){return this.u};
Sa.prototype.cancel=function(a){this.g=!0;this.f=a||!1;null!==this.c&&(0,this.c)(!1);null!==this.b&&this.b.abort()};var Ua=function(a,b,c){var d=Ja(a.b),d=a.h+d,e=a.headers?na(a.headers):{};null!==b&&0<b.length&&(e.Authorization="Firebase "+b);e["X-Firebase-Storage-Version"]="webjs/"+("undefined"!==typeof firebase?firebase.SDK_VERSION:"AppManager");return new Sa(d,a.method,e,a.body,a.c,a.g,a.j,a.a,a.timeout,0,c)};var Va=function(){};var Wa=function(a){this.b=firebase.Promise.reject(a)};Wa.prototype.a=function(){return this.b};Wa.prototype.cancel=function(){};var Xa=function(){this.a={};this.b=Number.MIN_SAFE_INTEGER},Ya=function(a,b){function c(){delete e.a[d]}var d=a.b;a.b++;a.a[d]=b;var e=a;b.a().then(c,c)},Za=function(a){ma(a.a,function(a,c){c&&c.cancel(!0)});a.a={}};var $a=function(a,b,c,d,e){this.a=a;this.g=null;null!==this.a&&(a=this.a.options,y(a)&&(a=a.storageBucket||null,this.g=null==a?null:Ba(a).bucket));this.o=b;this.m=c;this.j=e;this.l=d;this.c=12E4;this.b=6E4;this.h=new Xa;this.f=!1},ab=function(a){return null!==a.a&&y(a.a.INTERNAL)&&y(a.a.INTERNAL.getToken)?a.a.INTERNAL.getToken().then(function(a){return y(a)?a.accessToken:null},function(){return null}):firebase.Promise.resolve(null)};$a.prototype.bucket=function(){if(this.f)throw ka();return this.g};
var I=function(a,b,c){if(a.f)return new Wa(ka());b=a.m(b,c,null===a.a,a.j);Ya(a.h,b);return b};var bb=-1!=H.indexOf("Opera"),cb=-1!=H.indexOf("Trident")||-1!=H.indexOf("MSIE"),db=-1!=H.indexOf("Edge"),eb=-1!=H.indexOf("Gecko")&&!(-1!=H.toLowerCase().indexOf("webkit")&&-1==H.indexOf("Edge"))&&!(-1!=H.indexOf("Trident")||-1!=H.indexOf("MSIE"))&&-1==H.indexOf("Edge"),fb=-1!=H.toLowerCase().indexOf("webkit")&&-1==H.indexOf("Edge"),gb;
a:{var hb="",ib=function(){var a=H;if(eb)return/rv\:([^\);]+)(\)|;)/.exec(a);if(db)return/Edge\/([\d\.]+)/.exec(a);if(cb)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(fb)return/WebKit\/(\S+)/.exec(a);if(bb)return/(?:Version)[ \/]?(\S+)/.exec(a)}();ib&&(hb=ib?ib[1]:"");if(cb){var jb,kb=n.document;jb=kb?kb.documentMode:void 0;if(null!=jb&&jb>parseFloat(hb)){gb=String(jb);break a}}gb=hb}
var lb=gb,va={},mb=function(a){return wa(a,function(){for(var b=0,c=xa(String(lb)).split("."),d=xa(String(a)).split("."),e=Math.max(c.length,d.length),g=0;0==b&&g<e;g++){var f=c[g]||"",h=d[g]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==f[0].length&&0==h[0].length)break;b=ya(0==f[1].length?0:parseInt(f[1],10),0==h[1].length?0:parseInt(h[1],10))||ya(0==f[2].length,0==h[2].length)||ya(f[2],h[2]);f=f[3];h=h[3]}while(0==b)}return 0<=b})};var nb=function(a){var b=n.BlobBuilder||n.WebKitBlobBuilder;if(q(b)){for(var b=new b,c=0;c<arguments.length;c++)b.append(arguments[c]);return b.getBlob()}b=Array.prototype.slice.call(arguments);c=n.BlobBuilder||n.WebKitBlobBuilder;if(q(c)){for(var c=new c,d=0;d<b.length;d++)c.append(b[d],void 0);b=c.getBlob(void 0)}else if(q(n.Blob))b=new Blob(b,{});else throw Error("This browser doesn't seem to support creating Blobs");return b},ob=function(a,b,c){q(c)||(c=a.size);return a.webkitSlice?a.webkitSlice(b,
c):a.mozSlice?a.mozSlice(b,c):a.slice?eb&&!mb("13.0")||fb&&!mb("537.1")?(0>b&&(b+=a.size),0>b&&(b=0),0>c&&(c+=a.size),c<b&&(c=b),a.slice(b,c-b)):a.slice(b,c):null};var pb=function(a,b){return b},J=function(a,b,c,d){this.c=a;this.b=b||a;this.writable=!!c;this.a=d||pb},qb=null,rb=function(){if(qb)return qb;var a=[];a.push(new J("bucket"));a.push(new J("generation"));a.push(new J("metageneration"));a.push(new J("name","fullPath",!0));var b=new J("name");b.a=function(a,b){return!ta(b)||2>b.length?b:pa(b)};a.push(b);b=new J("size");b.a=function(a,b){return y(b)?+b:b};a.push(b);a.push(new J("timeCreated"));a.push(new J("updated"));a.push(new J("md5Hash",null,!0));
a.push(new J("cacheControl",null,!0));a.push(new J("contentDisposition",null,!0));a.push(new J("contentEncoding",null,!0));a.push(new J("contentLanguage",null,!0));a.push(new J("contentType",null,!0));a.push(new J("metadata","customMetadata",!0));a.push(new J("downloadTokens","downloadURLs",!1,function(a,b){if(!(ta(b)&&0<b.length))return[];var c=encodeURIComponent;return b.split(",").map(function(b){var d=a.fullPath,d="https://firebasestorage.googleapis.com/v0"+("/b/"+c(a.bucket)+"/o/"+c(d));b=Ja({alt:"media",
token:b});return d+b})}));return qb=a},sb=function(a,b){Object.defineProperty(a,"ref",{get:function(){return b.o(b,new D(a.bucket,a.fullPath))}})},tb=function(a,b){for(var c={},d=b.length,e=0;e<d;e++){var g=b[e];g.writable&&(c[g.c]=a[g.b])}return JSON.stringify(c)},ub=function(a){if(!a||"object"!==typeof a)throw"Expected Metadata object.";for(var b in a){var c=a[b];if("customMetadata"===b){if("object"!==typeof c)throw"Expected object for 'customMetadata' mapping.";}else if(null!=c&&"object"===typeof c)throw"Mapping for '"+
b+"' cannot be an object.";}};var K=function(a,b,c){for(var d=b.length,e=b.length,g=0;g<b.length;g++)if(b[g].b){d=g;break}if(!(d<=c.length&&c.length<=e))throw d===e?(b=d,d=1===d?"argument":"arguments"):(b="between "+d+" and "+e,d="arguments"),new u("invalid-argument-count","Invalid argument count in `"+a+"`: Expected "+b+" "+d+", received "+c.length+".");for(g=0;g<c.length;g++)try{b[g].a(c[g])}catch(f){if(f instanceof Error)throw ja(g,a,f.message);throw ja(g,a,f);}},L=function(a,b){var c=this;this.a=function(b){c.b&&!q(b)||a(b)};
this.b=!!b},vb=function(a,b){return function(c){a(c);b(c)}},M=function(a,b){function c(a){if(!("string"===typeof a||a instanceof String))throw"Expected string.";}var d;a?d=vb(c,a):d=c;return new L(d,b)},wb=function(){return new L(function(a){if(!(a instanceof Uint8Array||a instanceof ArrayBuffer||ua()&&a instanceof Blob))throw"Expected Blob or File.";})},xb=function(){return new L(function(a){if(!(("number"===typeof a||a instanceof Number)&&0<=a))throw"Expected a number 0 or greater.";})},yb=function(a,
b){return new L(function(b){if(!(null===b||y(b)&&b instanceof Object))throw"Expected an Object.";y(a)&&a(b)},b)},N=function(){return new L(function(a){if(null!==a&&"function"!=ea(a))throw"Expected a Function.";},!0)};var O=function(a,b){ua()&&a instanceof Blob?(this.i=a,b=a.size,a=a.type):(a instanceof ArrayBuffer?(b?this.i=new Uint8Array(a):(this.i=new Uint8Array(a.byteLength),this.i.set(new Uint8Array(a))),b=this.i.length):(b?this.i=a:(this.i=new Uint8Array(a.length),this.i.set(a)),b=a.length),a="");this.a=b;this.b=a};O.prototype.type=function(){return this.b};
O.prototype.slice=function(a,b){if(ua()&&this.i instanceof Blob)return a=ob(this.i,a,b),null===a?null:new O(a);a=new Uint8Array(this.i.buffer,a,b-a);return new O(a,!0)};
var zb=function(a){var b=[];Array.prototype.push.apply(b,arguments);if(ua())return b=b.map(function(a){return a instanceof O?a.i:a}),new O(nb.apply(null,b));var b=b.map(function(a){return ta(a)?Ia("raw",a).data.buffer:a.i.buffer}),c=0;b.forEach(function(a){c+=a.byteLength});var d=new Uint8Array(c),e=0;b.forEach(function(a){a=new Uint8Array(a);for(var b=0;b<a.length;b++)d[e++]=a[b]});return new O(d,!0)};var P=function(a){if(!a)throw ga();},Ab=function(a,b){return function(c,d){var e;a:{try{e=JSON.parse(d)}catch(h){e=null;break a}c=typeof e;e="object"==c&&null!=e||"function"==c?e:null}if(null===e)e=null;else{c={type:"file"};d=b.length;for(var g=0;g<d;g++){var f=b[g];c[f.b]=f.a(c,e[f.c])}sb(c,a);e=c}P(null!==e);return e}},Q=function(a){return function(b,c){b=401===F(b)?new u("unauthenticated","User is not authenticated, please authenticate using Firebase Authentication and try again."):402===F(b)?
new u("quota-exceeded","Quota for bucket '"+a.bucket+"' exceeded, please view quota on https://firebase.google.com/pricing/."):403===F(b)?new u("unauthorized","User does not have permission to access '"+a.path+"'."):c;b.serverResponse=c.serverResponse;return b}},Bb=function(a){var b=Q(a);return function(c,d){var e=b(c,d);404===F(c)&&(e=new u("object-not-found","Object '"+a.path+"' does not exist."));e.serverResponse=d.serverResponse;return e}},Cb=function(a,b,c){var d=za(b);a=new w(t+"/v0"+d,"GET",
Ab(a,c),a.c);a.a=Bb(b);return a},Db=function(a,b){var c=za(b);a=new w(t+"/v0"+c,"DELETE",function(){},a.c);a.c=[200,204];a.a=Bb(b);return a},Eb=function(a,b,c){c=c?na(c):{};c.fullPath=a.path;c.size=b.a;c.contentType||(a=b&&b.type()||"application/octet-stream",c.contentType=a);return c},Fb=function(a,b,c,d,e){var g="/b/"+encodeURIComponent(b.bucket)+"/o",f={"X-Goog-Upload-Protocol":"multipart"},h;h="";for(var p=0;2>p;p++)h+=Math.random().toString().slice(2);f["Content-Type"]="multipart/related; boundary="+
h;e=Eb(b,d,e);p=tb(e,c);d=zb("--"+h+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+p+"\r\n--"+h+"\r\nContent-Type: "+e.contentType+"\r\n\r\n",d,"\r\n--"+h+"--");if(null===d)throw ia();a=new w(t+"/v0"+g,"POST",Ab(a,c),a.b);a.b={name:e.fullPath};a.headers=f;a.body=d.i;a.a=Q(b);return a},Gb=function(a,b,c,d){this.a=a;this.total=b;this.b=!!c;this.c=d||null},Hb=function(a,b){var c;try{c=a.a.getResponseHeader("X-Goog-Upload-Status")}catch(d){P(!1)}P(r(b||["active"],c));return c},Ib=function(a,
b,c,d,e){var g="/b/"+encodeURIComponent(b.bucket)+"/o",f=Eb(b,d,e);e={name:f.fullPath};g=t+"/v0"+g;d={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":d.a,"X-Goog-Upload-Header-Content-Type":f.contentType,"Content-Type":"application/json; charset=utf-8"};c=tb(f,c);a=new w(g,"POST",function(a){Hb(a);var b;try{b=a.a.getResponseHeader("X-Goog-Upload-URL")}catch(B){P(!1)}P(ta(b));return b},a.b);a.b=e;a.headers=d;a.body=c;a.a=Q(b);return a},Jb=
function(a,b,c,d){a=new w(c,"POST",function(a){var b=Hb(a,["active","final"]),c;try{c=a.a.getResponseHeader("X-Goog-Upload-Size-Received")}catch(h){P(!1)}a=c;isFinite(a)&&(a=String(a));a="string"==typeof a?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN;P(!isNaN(a));return new Gb(a,d.a,"final"===b)},a.b);a.headers={"X-Goog-Upload-Command":"query"};a.a=Q(b);a.f=!1;return a},Kb=function(a,b,c,d,e,g,f){var h=new Gb(0,0);f?(h.a=f.a,h.total=f.total):(h.a=0,h.total=d.a);if(d.a!==h.total)throw new u("server-file-wrong-size",
"Server recorded incorrect upload file size, please retry the upload.");var p=f=h.total-h.a;0<e&&(p=Math.min(p,e));var B=h.a;e={"X-Goog-Upload-Command":p===f?"upload, finalize":"upload","X-Goog-Upload-Offset":h.a};f=d.slice(B,B+p);if(null===f)throw ia();c=new w(c,"POST",function(a,c){var e=Hb(a,["active","final"]),f=h.a+p,C=d.a,z;"final"===e?z=Ab(b,g)(a,c):z=null;return new Gb(f,C,"final"===e,z)},b.b);c.headers=e;c.body=f.i;c.l=null;c.a=Q(a);c.f=!1;return c};var T=function(a,b,c,d,e,g){this.L=a;this.c=b;this.l=c;this.f=e;this.h=g||null;this.s=d;this.m=0;this.D=this.u=!1;this.B=[];this.S=262144<this.f.a;this.b="running";this.a=this.v=this.g=null;this.j=1;var f=this;this.F=function(a){f.a=null;f.j=1;"storage/canceled"===a.code?(f.u=!0,R(f)):(f.g=a,S(f,"error"))};this.P=function(a){f.a=null;"storage/canceled"===a.code?R(f):(f.g=a,S(f,"error"))};this.A=this.o=null;this.C=qa(function(a,b){f.o=a;f.A=b;Lb(f)});this.C.then(null,function(){})},Lb=function(a){"running"===
a.b&&null===a.a&&(a.S?null===a.v?Mb(a):a.u?Nb(a):a.D?Ob(a):Pb(a):Qb(a))},U=function(a,b){ab(a.c).then(function(c){switch(a.b){case "running":b(c);break;case "canceling":S(a,"canceled");break;case "pausing":S(a,"paused")}})},Mb=function(a){U(a,function(b){var c=Ib(a.c,a.l,a.s,a.f,a.h);a.a=I(a.c,c,b);a.a.a().then(function(b){a.a=null;a.v=b;a.u=!1;R(a)},this.F)})},Nb=function(a){var b=a.v;U(a,function(c){var d=Jb(a.c,a.l,b,a.f);a.a=I(a.c,d,c);a.a.a().then(function(b){a.a=null;Rb(a,b.a);a.u=!1;b.b&&(a.D=
!0);R(a)},a.F)})},Pb=function(a){var b=262144*a.j,c=new Gb(a.m,a.f.a),d=a.v;U(a,function(e){var g;try{g=Kb(a.l,a.c,d,a.f,b,a.s,c)}catch(f){a.g=f;S(a,"error");return}a.a=I(a.c,g,e);a.a.a().then(function(b){33554432>262144*a.j&&(a.j*=2);a.a=null;Rb(a,b.a);b.b?(a.h=b.c,S(a,"success")):R(a)},a.F)})},Ob=function(a){U(a,function(b){var c=Cb(a.c,a.l,a.s);a.a=I(a.c,c,b);a.a.a().then(function(b){a.a=null;a.h=b;S(a,"success")},a.P)})},Qb=function(a){U(a,function(b){var c=Fb(a.c,a.l,a.s,a.f,a.h);a.a=I(a.c,c,
b);a.a.a().then(function(b){a.a=null;a.h=b;Rb(a,a.f.a);S(a,"success")},a.F)})},Rb=function(a,b){var c=a.m;a.m=b;a.m>c&&V(a)},S=function(a,b){if(a.b!==b)switch(b){case "canceling":a.b=b;null!==a.a&&a.a.cancel();break;case "pausing":a.b=b;null!==a.a&&a.a.cancel();break;case "running":var c="paused"===a.b;a.b=b;c&&(V(a),Lb(a));break;case "paused":a.b=b;V(a);break;case "canceled":a.g=ha();a.b=b;V(a);break;case "error":a.b=b;V(a);break;case "success":a.b=b,V(a)}},R=function(a){switch(a.b){case "pausing":S(a,
"paused");break;case "canceling":S(a,"canceled");break;case "running":Lb(a)}};T.prototype.w=function(){return new G(this.m,this.f.a,sa(this.b),this.h,this,this.L)};
T.prototype.M=function(a,b,c,d){function e(a){try{f(a);return}catch(z){}try{if(h(a),!(q(a.next)||q(a.error)||q(a.complete)))throw"";}catch(z){throw"Expected a function or an Object with one of `next`, `error`, `complete` properties.";}}function g(a){return function(b,c,d){null!==a&&K("on",a,arguments);var e=new Ca(b,c,d);Sb(p,e);return function(){var a=p.B,b=a.indexOf(e);-1!==b&&a.splice(b,1)}}}var f=N().a,h=yb(null,!0).a;K("on",[M(function(){if("state_changed"!==a)throw"Expected one of the event types: [state_changed].";
}),yb(e,!0),N(),N()],arguments);var p=this,B=[yb(function(a){if(null===a)throw"Expected a function or an Object with one of `next`, `error`, `complete` properties.";e(a)}),N(),N()];return q(b)||q(c)||q(d)?g(null)(b,c,d):g(B)};T.prototype.then=function(a,b){return this.C.then(a,b)};T.prototype["catch"]=function(a){return this.then(null,a)};
var Sb=function(a,b){a.B.push(b);Tb(a,b)},V=function(a){Ub(a);Array.prototype.slice.call(a.B).forEach(function(b){Tb(a,b)})},Ub=function(a){if(null!==a.o){var b=!0;switch(sa(a.b)){case "success":A(a.o.bind(null,a.w()))();break;case "canceled":case "error":A(a.A.bind(null,a.g))();break;default:b=!1}b&&(a.o=null,a.A=null)}},Tb=function(a,b){switch(sa(a.b)){case "running":case "paused":null!==b.b&&A(b.b.bind(b,a.w()))();break;case "success":null!==b.a&&A(b.a.bind(b))();break;case "canceled":case "error":null!==
b.error&&A(b.error.bind(b,a.g))();break;default:null!==b.error&&A(b.error.bind(b,a.g))()}};T.prototype.O=function(){K("resume",[],arguments);var a="paused"===this.b||"pausing"===this.b;a&&S(this,"running");return a};T.prototype.N=function(){K("pause",[],arguments);var a="running"===this.b;a&&S(this,"pausing");return a};T.prototype.cancel=function(){K("cancel",[],arguments);var a="running"===this.b||"pausing"===this.b;a&&S(this,"canceling");return a};var W=function(a,b){this.a=a;this.location=b instanceof D?b:Aa(b)};W.prototype.toString=function(){K("toString",[],arguments);return"gs://"+this.location.bucket+"/"+this.location.path};var Vb=function(a,b){return new W(a,b)};k=W.prototype;k.H=function(a){K("child",[M()],arguments);var b=oa(this.location.path,a);return Vb(this.a,new D(this.location.bucket,b))};
k.ka=function(){var a;a=this.location.path;if(0==a.length)a=null;else{var b=a.lastIndexOf("/");a=-1===b?"":a.slice(0,b)}return null===a?null:Vb(this.a,new D(this.location.bucket,a))};k.ma=function(){return Vb(this.a,new D(this.location.bucket,""))};k.U=function(){return this.location.bucket};k.fa=function(){return this.location.path};k.ja=function(){return pa(this.location.path)};k.oa=function(){return this.a.l};
k.Z=function(a,b){K("put",[wb(),new L(ub,!0)],arguments);X(this,"put");return new T(this,this.a,this.location,rb(),new O(a),b)};k.$=function(a,b,c){K("putString",[M(),M(Da,!0),new L(ub,!0)],arguments);X(this,"putString");var d=Ia(y(b)?b:"raw",a),e=c?na(c):{};!y(e.contentType)&&y(d.a)&&(e.contentType=d.a);return new T(this,this.a,this.location,rb(),new O(d.data,!0),e)};
k.X=function(){K("delete",[],arguments);X(this,"delete");var a=this;return ab(this.a).then(function(b){var c=Db(a.a,a.location);return I(a.a,c,b).a()})};k.I=function(){K("getMetadata",[],arguments);X(this,"getMetadata");var a=this;return ab(this.a).then(function(b){var c=Cb(a.a,a.location,rb());return I(a.a,c,b).a()})};
k.aa=function(a){K("updateMetadata",[new L(ub,void 0)],arguments);X(this,"updateMetadata");var b=this;return ab(this.a).then(function(c){var d=b.a,e=b.location,g=a,f=rb(),h=za(e),h=t+"/v0"+h,g=tb(g,f),d=new w(h,"PATCH",Ab(d,f),d.c);d.headers={"Content-Type":"application/json; charset=utf-8"};d.body=g;d.a=Bb(e);return I(b.a,d,c).a()})};
k.Y=function(){K("getDownloadURL",[],arguments);X(this,"getDownloadURL");return this.I().then(function(a){a=a.downloadURLs[0];if(y(a))return a;throw new u("no-download-url","The given file does not have any download URLs.");})};var X=function(a,b){if(""===a.location.path)throw new u("invalid-root-operation","The operation '"+b+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').");};var Y=function(a,b,c){this.a=new $a(a,function(a,b){return new W(a,b)},Ua,this,b);this.c=a;q(c)?this.b=Ba(c):null!=this.a.bucket()&&(this.b=new D(this.a.bucket(),""));this.f=new Wb(this)};k=Y.prototype;k.ba=function(a){K("ref",[M(function(a){if(/^[A-Za-z]+:\/\//.test(a))throw"Expected child path but got a URL, use refFromURL instead.";},!0)],arguments);if(null===this.b)throw Error("No Storage Bucket defined in Firebase Options.");var b=new W(this.a,this.b);return q(a)?b.H(a):b};
k.ca=function(a){K("refFromURL",[M(function(a){if(!/^[A-Za-z]+:\/\//.test(a))throw"Expected full URL but got a child path, use ref instead.";try{Aa(a)}catch(c){throw"Expected valid full URL but got an invalid one.";}},!1)],arguments);return new W(this.a,a)};k.ha=function(){return this.a.b};k.ea=function(a){K("setMaxUploadRetryTime",[xb()],arguments);this.a.b=a};k.ga=function(){return this.a.c};k.da=function(a){K("setMaxOperationRetryTime",[xb()],arguments);this.a.c=a};k.T=function(){return this.c};
k.R=function(){return this.f};var Wb=function(a){this.a=a};Wb.prototype.b=function(){var a=this.a.a;a.f=!0;a.a=null;Za(a.h)};var Z=function(a,b,c){Object.defineProperty(a,b,{get:c})};W.prototype.toString=W.prototype.toString;W.prototype.child=W.prototype.H;W.prototype.put=W.prototype.Z;W.prototype.putString=W.prototype.$;W.prototype["delete"]=W.prototype.X;W.prototype.getMetadata=W.prototype.I;W.prototype.updateMetadata=W.prototype.aa;W.prototype.getDownloadURL=W.prototype.Y;Z(W.prototype,"parent",W.prototype.ka);Z(W.prototype,"root",W.prototype.ma);Z(W.prototype,"bucket",W.prototype.U);Z(W.prototype,"fullPath",W.prototype.fa);
Z(W.prototype,"name",W.prototype.ja);Z(W.prototype,"storage",W.prototype.oa);Y.prototype.ref=Y.prototype.ba;Y.prototype.refFromURL=Y.prototype.ca;Z(Y.prototype,"maxOperationRetryTime",Y.prototype.ga);Y.prototype.setMaxOperationRetryTime=Y.prototype.da;Z(Y.prototype,"maxUploadRetryTime",Y.prototype.ha);Y.prototype.setMaxUploadRetryTime=Y.prototype.ea;Z(Y.prototype,"app",Y.prototype.T);Z(Y.prototype,"INTERNAL",Y.prototype.R);Wb.prototype["delete"]=Wb.prototype.b;Y.prototype.capi_=function(a){t=a};
T.prototype.on=T.prototype.M;T.prototype.resume=T.prototype.O;T.prototype.pause=T.prototype.N;T.prototype.cancel=T.prototype.cancel;T.prototype.then=T.prototype.then;T.prototype["catch"]=T.prototype["catch"];Z(T.prototype,"snapshot",T.prototype.w);Z(G.prototype,"bytesTransferred",G.prototype.V);Z(G.prototype,"totalBytes",G.prototype.qa);Z(G.prototype,"state",G.prototype.na);Z(G.prototype,"metadata",G.prototype.ia);Z(G.prototype,"downloadURL",G.prototype.W);Z(G.prototype,"task",G.prototype.pa);
Z(G.prototype,"ref",G.prototype.la);ra.STATE_CHANGED="state_changed";x.RUNNING="running";x.PAUSED="paused";x.SUCCESS="success";x.CANCELED="canceled";x.ERROR="error";E.RAW="raw";E.BASE64="base64";E.BASE64URL="base64url";E.DATA_URL="data_url";
(function(){function a(a,b,e){return new Y(a,new Va,e)}var b={TaskState:x,TaskEvent:ra,StringFormat:E,Storage:Y,Reference:W};if("undefined"!==typeof firebase)firebase.INTERNAL.registerService("storage",a,b);else throw Error("Cannot install Firebase Storage - be sure to load firebase-app.js first.");})();}).call(this);
var config = {
    apiKey: "AIzaSyCo7fN2jyfoghkS2oBUOG51cAYVit3vSzc",
    authDomain: "api-project-475197514221.firebaseapp.com",
    databaseURL: "https://api-project-475197514221.firebaseio.com",
    storageBucket: "api-project-475197514221.appspot.com",
    messagingSenderId: "475197514221"
  };firebase.initializeApp(config);;
!function (t) { "use strict"; var e = function (t, e) { this.init("tooltip", t, e) }; e.prototype = { constructor: e, init: function (e, i, o) { var n, s, h, a, l; for (this.type = e, this.$element = t(i), this.options = this.getOptions(o), this.enabled = !0, l = (h = this.options.trigger.split(" ")).length; l--;)"click" == (a = h[l]) ? this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this)) : "manual" != a && (n = "hover" == a ? "mouseenter" : "focus", s = "hover" == a ? "mouseleave" : "blur", this.$element.on(n + "." + this.type, this.options.selector, t.proxy(this.enter, this)), this.$element.on(s + "." + this.type, this.options.selector, t.proxy(this.leave, this))); this.options.selector ? this._options = t.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, getOptions: function (e) { return (e = t.extend({}, t.fn[this.type].defaults, this.$element.data(), e)).delay && "number" == typeof e.delay && (e.delay = { show: e.delay, hide: e.delay }), e }, enter: function (e) { var i, o = t.fn[this.type].defaults, n = {}; if (this._options && t.each(this._options, function (t, e) { o[t] != e && (n[t] = e) }, this), !(i = t(e.currentTarget)[this.type](n).data(this.type)).options.delay || !i.options.delay.show) return i.show(); clearTimeout(this.timeout), i.hoverState = "in", this.timeout = setTimeout(function () { "in" == i.hoverState && i.show() }, i.options.delay.show) }, leave: function (e) { var i = t(e.currentTarget)[this.type](this._options).data(this.type); if (this.timeout && clearTimeout(this.timeout), !i.options.delay || !i.options.delay.hide) return i.hide(); i.hoverState = "out", this.timeout = setTimeout(function () { "out" == i.hoverState && i.hide() }, i.options.delay.hide) }, show: function () { var e, i, o, n, s, h, a = t.Event("show"); if (this.hasContent() && this.enabled) { if (this.$element.trigger(a), a.isDefaultPrevented()) return; switch (e = this.tip(), this.setContent(), this.options.animation && e.addClass("fade"), s = "function" == typeof this.options.placement ? this.options.placement.call(this, e[0], this.$element[0]) : this.options.placement, e.detach().css({ top: 0, left: 0, display: "block" }), this.options.container ? e.appendTo(this.options.container) : e.insertAfter(this.$element), i = this.getPosition(), o = e[0].offsetWidth, n = e[0].offsetHeight, s) { case "bottom": h = { top: i.top + i.height, left: i.left + i.width / 2 - o / 2 }; break; case "top": h = { top: i.top - n, left: i.left + i.width / 2 - o / 2 }; break; case "left": h = { top: i.top + i.height / 2 - n / 2, left: i.left - o }; break; case "right": h = { top: i.top + i.height / 2 - n / 2, left: i.left + i.width } }this.applyPlacement(h, s), this.$element.trigger("shown") } }, applyPlacement: function (t, e) { var i, o, n, s, h = this.tip(), a = h[0].offsetWidth, l = h[0].offsetHeight; h.offset(t).addClass(e).addClass("in"), i = h[0].offsetWidth, o = h[0].offsetHeight, "top" == e && o != l && (t.top = t.top + l - o, s = !0), "bottom" == e || "top" == e ? (n = 0, t.left < 0 && (n = -2 * t.left, t.left = 0, h.offset(t), i = h[0].offsetWidth, o = h[0].offsetHeight), this.replaceArrow(n - a + i, i, "left")) : this.replaceArrow(o - l, o, "top"), s && h.offset(t) }, replaceArrow: function (t, e, i) { this.arrow().css(i, t ? 50 * (1 - t / e) + "%" : "") }, setContent: function () { var t = this.tip(), e = this.getTitle(); t.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), t.removeClass("fade in top bottom left right") }, hide: function () { var e, i = this.tip(), o = t.Event("hide"); if (this.$element.trigger(o), !o.isDefaultPrevented()) return i.removeClass("in"), t.support.transition && this.$tip.hasClass("fade") ? (e = setTimeout(function () { i.off(t.support.transition.end).detach() }, 500), i.one(t.support.transition.end, function () { clearTimeout(e), i.detach() })) : i.detach(), this.$element.trigger("hidden"), this }, fixTitle: function () { var t = this.$element; (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "") }, hasContent: function () { return this.getTitle() }, getPosition: function () { var e = this.$element[0]; return t.extend({}, "function" == typeof e.getBoundingClientRect ? e.getBoundingClientRect() : { width: e.offsetWidth, height: e.offsetHeight }, this.$element.offset()) }, getTitle: function () { var t = this.$element, e = this.options; return t.attr("data-original-title") || ("function" == typeof e.title ? e.title.call(t[0]) : e.title) }, tip: function () { return this.$tip = this.$tip || t(this.options.template) }, arrow: function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, validate: function () { this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) }, enable: function () { this.enabled = !0 }, disable: function () { this.enabled = !1 }, toggleEnabled: function () { this.enabled = !this.enabled }, toggle: function (e) { var i = e ? t(e.currentTarget)[this.type](this._options).data(this.type) : this; i.tip().hasClass("in") ? i.hide() : i.show() }, destroy: function () { this.hide().$element.off("." + this.type).removeData(this.type) } }; var i = t.fn.tooltip; t.fn.tooltip = function (i) { return this.each(function () { var o = t(this), n = o.data("tooltip"), s = "object" == typeof i && i; n || o.data("tooltip", n = new e(this, s)), "string" == typeof i && n[i]() }) }, t.fn.tooltip.Constructor = e, t.fn.tooltip.defaults = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1 }, t.fn.tooltip.noConflict = function () { return t.fn.tooltip = i, this } }(window.jQuery);;
!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this.drag=a.extend({},m),this.state=a.extend({},n),this.e=a.extend({},o),this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._invalidated={},this._pipe=[],a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a[0].toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Pipe,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}function f(a){if(a.touches!==d)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(a.touches===d){if(a.pageX!==d)return{x:a.pageX,y:a.pageY};if(a.pageX===d)return{x:a.clientX,y:a.clientY}}}function g(a){var b,d,e=c.createElement("div"),f=a;for(b in f)if(d=f[b],"undefined"!=typeof e.style[d])return e=null,[d,b];return[!1]}function h(){return g(["transition","WebkitTransition","MozTransition","OTransition"])[1]}function i(){return g(["transform","WebkitTransform","MozTransform","OTransform","msTransform"])[0]}function j(){return g(["perspective","webkitPerspective","MozPerspective","OPerspective","MsPerspective"])[0]}function k(){return"ontouchstart"in b||!!navigator.msMaxTouchPoints}function l(){return b.navigator.msPointerEnabled}var m,n,o;m={start:0,startX:0,startY:0,current:0,currentX:0,currentY:0,offsetX:0,offsetY:0,distance:null,startTime:0,endTime:0,updatedX:0,targetEl:null},n={isTouch:!1,isScrolling:!1,isSwiping:!1,direction:!1,inMotion:!1},o={_onDragStart:null,_onDragMove:null,_onDragEnd:null,_transitionEnd:null,_resizer:null,_responsiveCall:null,_goToLoop:null,_checkVisibile:null},e.Defaults={items:3,loop:!1,center:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,responsiveClass:!1,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",themeClass:"owl-theme",baseClass:"owl-carousel",itemClass:"owl-item",centerClass:"center",activeClass:"active"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Plugins={},e.Pipe=[{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){var a=this._clones,b=this.$stage.children(".cloned");(b.length!==a.length||!this.settings.loop&&a.length>0)&&(this.$stage.children(".cloned").remove(),this._clones=[])}},{filter:["items","settings"],run:function(){var a,b,c=this._clones,d=this._items,e=this.settings.loop?c.length-Math.max(2*this.settings.items,4):0;for(a=0,b=Math.abs(e/2);b>a;a++)e>0?(this.$stage.children().eq(d.length+c.length-1).remove(),c.pop(),this.$stage.children().eq(0).remove(),c.pop()):(c.push(c.length/2),this.$stage.append(d[c[c.length-1]].clone().addClass("cloned")),c.push(d.length-1-(c.length-1)/2),this.$stage.prepend(d[c[c.length-1]].clone().addClass("cloned")))}},{filter:["width","items","settings"],run:function(){var a,b,c,d=this.settings.rtl?1:-1,e=(this.width()/this.settings.items).toFixed(3),f=0;for(this._coordinates=[],b=0,c=this._clones.length+this._items.length;c>b;b++)a=this._mergers[this.relative(b)],a=this.settings.mergeFit&&Math.min(a,this.settings.items)||a,f+=(this.settings.autoWidth?this._items[this.relative(b)].width()+this.settings.margin:e*a)*d,this._coordinates.push(f)}},{filter:["width","items","settings"],run:function(){var b,c,d=(this.width()/this.settings.items).toFixed(3),e={width:Math.abs(this._coordinates[this._coordinates.length-1])+2*this.settings.stagePadding,"padding-left":this.settings.stagePadding||"","padding-right":this.settings.stagePadding||""};if(this.$stage.css(e),e={width:this.settings.autoWidth?"auto":d-this.settings.margin},e[this.settings.rtl?"margin-left":"margin-right"]=this.settings.margin,!this.settings.autoWidth&&a.grep(this._mergers,function(a){return a>1}).length>0)for(b=0,c=this._coordinates.length;c>b;b++)e.width=Math.abs(this._coordinates[b])-Math.abs(this._coordinates[b-1]||0)-this.settings.margin,this.$stage.children().eq(b).css(e);else this.$stage.children().css(e)}},{filter:["width","items","settings"],run:function(a){a.current&&this.reset(this.$stage.children().index(a.current))}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;d>c;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children("."+this.settings.activeClass).removeClass(this.settings.activeClass),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass(this.settings.activeClass),this.settings.center&&(this.$stage.children("."+this.settings.centerClass).removeClass(this.settings.centerClass),this.$stage.children().eq(this.current()).addClass(this.settings.centerClass))}}],e.prototype.initialize=function(){if(this.trigger("initialize"),this.$element.addClass(this.settings.baseClass).addClass(this.settings.themeClass).toggleClass("owl-rtl",this.settings.rtl),this.browserSupport(),this.settings.autoWidth&&this.state.imagesLoaded!==!0){var b,c,e;if(b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&0>=e)return this.preloadAutoWidthImages(b),!1}this.$element.addClass("owl-loading"),this.$stage=a("<"+this.settings.stageElement+' class="owl-stage"/>').wrap('<div class="owl-stage-outer">'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this._width=this.$element.width(),this.refresh(),this.$element.removeClass("owl-loading").addClass("owl-loaded"),this.eventsCall(),this.internalEvents(),this.addTriggerableEvents(),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){b>=a&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),delete e.responsive,e.responsiveClass&&this.$element.attr("class",function(a,b){return b.replace(/\b owl-responsive-\S+/g,"")}).addClass("owl-responsive-"+d)):e=a.extend({},this.options),(null===this.settings||this._breakpoint!==d)&&(this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}}))},e.prototype.optionsLogic=function(){this.$element.toggleClass("owl-center",this.settings.center),this.settings.loop&&this._items.length<this.settings.items&&(this.settings.loop=!1),this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.settings.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};c>b;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={}},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){if(0===this._items.length)return!1;(new Date).getTime();this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$stage.addClass("owl-refresh"),this.update(),this.$stage.removeClass("owl-refresh"),this.state.orientation=b.orientation,this.watchVisibility(),this.trigger("refreshed")},e.prototype.eventsCall=function(){this.e._onDragStart=a.proxy(function(a){this.onDragStart(a)},this),this.e._onDragMove=a.proxy(function(a){this.onDragMove(a)},this),this.e._onDragEnd=a.proxy(function(a){this.onDragEnd(a)},this),this.e._onResize=a.proxy(function(a){this.onResize(a)},this),this.e._transitionEnd=a.proxy(function(a){this.transitionEnd(a)},this),this.e._preventClick=a.proxy(function(a){this.preventClick(a)},this)},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this.e._onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return this._items.length?this._width===this.$element.width()?!1:this.trigger("resize").isDefaultPrevented()?!1:(this._width=this.$element.width(),this.invalidate("width"),this.refresh(),void this.trigger("resized")):!1},e.prototype.eventsRouter=function(a){var b=a.type;"mousedown"===b||"touchstart"===b?this.onDragStart(a):"mousemove"===b||"touchmove"===b?this.onDragMove(a):"mouseup"===b||"touchend"===b?this.onDragEnd(a):"touchcancel"===b&&this.onDragEnd(a)},e.prototype.internalEvents=function(){var c=(k(),l());this.settings.mouseDrag?(this.$stage.on("mousedown",a.proxy(function(a){this.eventsRouter(a)},this)),this.$stage.on("dragstart",function(){return!1}),this.$stage.get(0).onselectstart=function(){return!1}):this.$element.addClass("owl-text-select-on"),this.settings.touchDrag&&!c&&this.$stage.on("touchstart touchcancel",a.proxy(function(a){this.eventsRouter(a)},this)),this.transitionEndVendor&&this.on(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd,!1),this.settings.responsive!==!1&&this.on(b,"resize",a.proxy(this.onThrottledResize,this))},e.prototype.onDragStart=function(d){var e,g,h,i;if(e=d.originalEvent||d||b.event,3===e.which||this.state.isTouch)return!1;if("mousedown"===e.type&&this.$stage.addClass("owl-grab"),this.trigger("drag"),this.drag.startTime=(new Date).getTime(),this.speed(0),this.state.isTouch=!0,this.state.isScrolling=!1,this.state.isSwiping=!1,this.drag.distance=0,g=f(e).x,h=f(e).y,this.drag.offsetX=this.$stage.position().left,this.drag.offsetY=this.$stage.position().top,this.settings.rtl&&(this.drag.offsetX=this.$stage.position().left+this.$stage.width()-this.width()+this.settings.margin),this.state.inMotion&&this.support3d)i=this.getTransformProperty(),this.drag.offsetX=i,this.animate(i),this.state.inMotion=!0;else if(this.state.inMotion&&!this.support3d)return this.state.inMotion=!1,!1;this.drag.startX=g-this.drag.offsetX,this.drag.startY=h-this.drag.offsetY,this.drag.start=g-this.drag.startX,this.drag.targetEl=e.target||e.srcElement,this.drag.updatedX=this.drag.start,("IMG"===this.drag.targetEl.tagName||"A"===this.drag.targetEl.tagName)&&(this.drag.targetEl.draggable=!1),a(c).on("mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents",a.proxy(function(a){this.eventsRouter(a)},this))},e.prototype.onDragMove=function(a){var c,e,g,h,i,j;this.state.isTouch&&(this.state.isScrolling||(c=a.originalEvent||a||b.event,e=f(c).x,g=f(c).y,this.drag.currentX=e-this.drag.startX,this.drag.currentY=g-this.drag.startY,this.drag.distance=this.drag.currentX-this.drag.offsetX,this.drag.distance<0?this.state.direction=this.settings.rtl?"right":"left":this.drag.distance>0&&(this.state.direction=this.settings.rtl?"left":"right"),this.settings.loop?this.op(this.drag.currentX,">",this.coordinates(this.minimum()))&&"right"===this.state.direction?this.drag.currentX-=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length):this.op(this.drag.currentX,"<",this.coordinates(this.maximum()))&&"left"===this.state.direction&&(this.drag.currentX+=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length)):(h=this.coordinates(this.settings.rtl?this.maximum():this.minimum()),i=this.coordinates(this.settings.rtl?this.minimum():this.maximum()),j=this.settings.pullDrag?this.drag.distance/5:0,this.drag.currentX=Math.max(Math.min(this.drag.currentX,h+j),i+j)),(this.drag.distance>8||this.drag.distance<-8)&&(c.preventDefault!==d?c.preventDefault():c.returnValue=!1,this.state.isSwiping=!0),this.drag.updatedX=this.drag.currentX,(this.drag.currentY>16||this.drag.currentY<-16)&&this.state.isSwiping===!1&&(this.state.isScrolling=!0,this.drag.updatedX=this.drag.start),this.animate(this.drag.updatedX)))},e.prototype.onDragEnd=function(b){var d,e,f;if(this.state.isTouch){if("mouseup"===b.type&&this.$stage.removeClass("owl-grab"),this.trigger("dragged"),this.drag.targetEl.removeAttribute("draggable"),this.state.isTouch=!1,this.state.isScrolling=!1,this.state.isSwiping=!1,0===this.drag.distance&&this.state.inMotion!==!0)return this.state.inMotion=!1,!1;this.drag.endTime=(new Date).getTime(),d=this.drag.endTime-this.drag.startTime,e=Math.abs(this.drag.distance),(e>3||d>300)&&this.removeClick(this.drag.targetEl),f=this.closest(this.drag.updatedX),this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(f),this.invalidate("position"),this.update(),this.settings.pullDrag||this.drag.updatedX!==this.coordinates(f)||this.transitionEnd(),this.drag.distance=0,a(c).off(".owl.dragEvents")}},e.prototype.removeClick=function(c){this.drag.targetEl=c,a(c).on("click.preventClick",this.e._preventClick),b.setTimeout(function(){a(c).off("click.preventClick")},300)},e.prototype.preventClick=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1,b.stopPropagation&&b.stopPropagation(),a(b.target).off("click.preventClick")},e.prototype.getTransformProperty=function(){var a,c;return a=b.getComputedStyle(this.$stage.get(0),null).getPropertyValue(this.vendorName+"transform"),a=a.replace(/matrix(3d)?\(|\)/g,"").split(","),c=16===a.length,c!==!0?a[4]:a[12]},e.prototype.closest=function(b){var c=-1,d=30,e=this.width(),f=this.coordinates();return this.settings.freeDrag||a.each(f,a.proxy(function(a,g){return b>g-d&&g+d>b?c=a:this.op(b,"<",g)&&this.op(b,">",f[a+1]||g-e)&&(c="left"===this.state.direction?a+1:a),-1===c},this)),this.settings.loop||(this.op(b,">",f[this.minimum()])?c=b=this.minimum():this.op(b,"<",f[this.maximum()])&&(c=b=this.maximum())),c},e.prototype.animate=function(b){this.trigger("translate"),this.state.inMotion=this.speed()>0,this.support3d?this.$stage.css({transform:"translate3d("+b+"px,0px, 0px)",transition:this.speed()/1e3+"s"}):this.state.isTouch?this.$stage.css({left:b+"px"}):this.$stage.animate({left:b},this.speed()/1e3,this.settings.fallbackEasing,a.proxy(function(){this.state.inMotion&&this.transitionEnd()},this))},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(a){this._invalidated[a]=!0},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(b,c){var e=c?this._items.length:this._items.length+this._clones.length;return!a.isNumeric(b)||1>e?d:b=this._clones.length?(b%e+e)%e:Math.max(this.minimum(c),Math.min(this.maximum(c),b))},e.prototype.relative=function(a){return a=this.normalize(a),a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=0,f=this.settings;if(a)return this._items.length-1;if(!f.loop&&f.center)b=this._items.length-1;else if(f.loop||f.center)if(f.loop||f.center)b=this._items.length+f.items;else{if(!f.autoWidth&&!f.merge)throw"Can not detect maximum absolute position.";for(revert=f.rtl?1:-1,c=this.$stage.width()-this.$element.width();(d=this.coordinates(e))&&!(d*revert>=c);)b=++e}else b=this._items.length-f.items;return b},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c=null;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[b-1]||0))/2*(this.settings.rtl?-1:1)):c=this._coordinates[b-1]||0,c)},e.prototype.duration=function(a,b,c){return Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(c,d){if(this.settings.loop){var e=c-this.relative(this.current()),f=this.current(),g=this.current(),h=this.current()+e,i=0>g-h?!0:!1,j=this._clones.length+this._items.length;h<this.settings.items&&i===!1?(f=g+this._items.length,this.reset(f)):h>=j-this.settings.items&&i===!0&&(f=g-this._items.length,this.reset(f)),b.clearTimeout(this.e._goToLoop),this.e._goToLoop=b.setTimeout(a.proxy(function(){this.speed(this.duration(this.current(),f+e,d)),this.current(f+e),this.update()},this),30)}else this.speed(this.duration(this.current(),c,d)),this.current(c),this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.transitionEnd=function(a){return a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0))?!1:(this.state.inMotion=!1,void this.trigger("translated"))},e.prototype.viewport=function(){var d;if(this.options.responsiveBaseElement!==b)d=a(this.options.responsiveBaseElement).width();else if(b.innerWidth)d=b.innerWidth;else{if(!c.documentElement||!c.documentElement.clientWidth)throw"Can not detect viewport width.";d=c.documentElement.clientWidth}return d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)},this)),this.reset(a.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(a,b){b=b===d?this._items.length:this.normalize(b,!0),this.trigger("add",{content:a,position:b}),0===this._items.length||b===this._items.length?(this.$stage.append(a),this._items.push(a),this._mergers.push(1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)):(this._items[b].before(a),this._items.splice(b,0,a),this._mergers.splice(b,0,1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)),this.invalidate("items"),this.trigger("added",{content:a,position:b})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.addTriggerableEvents=function(){var b=a.proxy(function(b,c){return a.proxy(function(a){a.relatedTarget!==this&&(this.suppress([c]),b.apply(this,[].slice.call(arguments,1)),this.release([c]))},this)},this);a.each({next:this.next,prev:this.prev,to:this.to,destroy:this.destroy,refresh:this.refresh,replace:this.replace,add:this.add,remove:this.remove},a.proxy(function(a,c){this.$element.on(a+".owl.carousel",b(c,a+".owl.carousel"))},this))},e.prototype.watchVisibility=function(){function c(a){return a.offsetWidth>0&&a.offsetHeight>0}function d(){c(this.$element.get(0))&&(this.$element.removeClass("owl-hidden"),this.refresh(),b.clearInterval(this.e._checkVisibile))}c(this.$element.get(0))||(this.$element.addClass("owl-hidden"),b.clearInterval(this.e._checkVisibile),this.e._checkVisibile=b.setInterval(a.proxy(d,this),500))},e.prototype.preloadAutoWidthImages=function(b){var c,d,e,f;c=0,d=this,b.each(function(g,h){e=a(h),f=new Image,f.onload=function(){c++,e.attr("src",f.src),e.css("opacity",1),c>=b.length&&(d.state.imagesLoaded=!0,d.initialize())},f.src=e.attr("src")||e.attr("data-src")||e.attr("data-src-retina")})},e.prototype.destroy=function(){this.$element.hasClass(this.settings.themeClass)&&this.$element.removeClass(this.settings.themeClass),this.settings.responsive!==!1&&a(b).off("resize.owl.carousel"),this.transitionEndVendor&&this.off(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd);for(var d in this._plugins)this._plugins[d].destroy();(this.settings.mouseDrag||this.settings.touchDrag)&&(this.$stage.off("mousedown touchstart touchcancel"),a(c).off(".owl.dragEvents"),this.$stage.get(0).onselectstart=function(){},this.$stage.off("dragstart",function(){return!1})),this.$element.off(".owl"),this.$stage.children(".cloned").remove(),this.e=null,this.$element.removeData("owlCarousel"),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.unwrap()},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:c>a;case">":return d?c>a:a>c;case">=":return d?c>=a:a>=c;case"<=":return d?a>=c:c>=a}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d){var e={item:{count:this._items.length,index:this.current()}},f=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),g=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},e,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(g)}),this.$element.trigger(g),this.settings&&"function"==typeof this.settings[f]&&this.settings[f].apply(this,g)),g},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.browserSupport=function(){if(this.support3d=j(),this.support3d){this.transformVendor=i();var a=["transitionend","webkitTransitionEnd","transitionend","oTransitionEnd"];this.transitionEndVendor=a[h()],this.vendorName=this.transformVendor.replace(/Transform/i,""),this.vendorName=""!==this.vendorName?"-"+this.vendorName.toLowerCase()+"-":""}this.state.orientation=b.orientation},a.fn.owlCarousel=function(b){return this.each(function(){a(this).data("owlCarousel")||a(this).data("owlCarousel",new e(this,b))})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b){var c=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,d=c.center&&Math.ceil(c.items/2)||c.items,e=c.center&&-1*d||0,f=(b.property&&b.property.value||this._core.current())+e,g=this._core.clones().length,h=a.proxy(function(a,b){this.load(b)},this);e++<d;)this.load(g/2+this._core.relative(f)),g&&a.each(this._core.clones(this._core.relative(f++)),h)},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this._core.$element.on(this._handlers)};c.Defaults={lazyLoad:!1},c.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":"url("+g+")",opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},c.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=c}(window.Zepto||window.jQuery,window,document),function(a){var b=function(c){this._core=c,this._handlers={"initialized.owl.carousel":a.proxy(function(){this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass)===this._core.$stage.children().eq(this._core.current())&&this.update()},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this._core.$element.on(this._handlers)};b.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},b.prototype.update=function(){this._core.$stage.parent().height(this._core.$stage.children().eq(this._core.current()).height()).addClass(this._core.settings.autoHeightClass)},b.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=b}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this._core=b,this._videos={},this._playing=null,this._fullscreen=!1,this._handlers={"resize.owl.carousel":a.proxy(function(a){this._core.settings.video&&!this.isInFullScreen()&&a.preventDefault()},this),"refresh.owl.carousel changed.owl.carousel":a.proxy(function(){this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))},this)},this._core.options=a.extend({},d.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};d.Defaults={video:!1,videoHeight:!1,videoWidth:!1},d.prototype.fetch=function(a,b){var c=a.attr("data-vimeo-id")?"vimeo":"youtube",d=a.attr("data-vimeo-id")||a.attr("data-youtube-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else{if(!(d[3].indexOf("vimeo")>-1))throw new Error("Video URL not supported.");c="vimeo"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},d.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?'<div class="owl-video-tn '+j+'" '+i+'="'+a+'"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url('+a+')"></div>',b.after(d),b.after(e)};return b.wrap('<div class="owl-video-wrapper"'+g+"></div>"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length?(l(h.attr(i)),h.remove(),!1):void("youtube"===c.type?(f="http://img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type&&a.ajax({type:"GET",url:"http://vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}))},d.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null},d.prototype.play=function(b){this._core.trigger("play",null,"video"),this._playing&&this.stop();var c,d,e=a(b.target||b.srcElement),f=e.closest("."+this._core.settings.itemClass),g=this._videos[f.attr("data-video")],h=g.width||"100%",i=g.height||this._core.$stage.height();"youtube"===g.type?c='<iframe width="'+h+'" height="'+i+'" src="http://www.youtube.com/embed/'+g.id+"?autoplay=1&v="+g.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===g.type&&(c='<iframe src="http://player.vimeo.com/video/'+g.id+'?autoplay=1" width="'+h+'" height="'+i+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'),f.addClass("owl-video-playing"),this._playing=f,d=a('<div style="height:'+i+"px; width:"+h+'px" class="owl-video-frame">'+c+"</div>"),e.after(d)},d.prototype.isInFullScreen=function(){var d=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return d&&a(d).parent().hasClass("owl-video-frame")&&(this._core.speed(0),this._fullscreen=!0),d&&this._fullscreen&&this._playing?!1:this._fullscreen?(this._fullscreen=!1,!1):this._playing&&this._core.state.orientation!==b.orientation?(this._core.state.orientation=b.orientation,!1):!0},d.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=d}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){this.swapping="translated"==a.type},this),"translate.owl.carousel":a.proxy(function(){this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&this.core.support3d){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c)),f&&e.addClass("animated owl-animated-in").addClass(f).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.transitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this.core=b,this.core.options=a.extend({},d.Defaults,this.core.options),this.handlers={"translated.owl.carousel refreshed.owl.carousel":a.proxy(function(){this.autoplay()
},this),"play.owl.autoplay":a.proxy(function(a,b,c){this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(){this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.autoplay()},this)},this.core.$element.on(this.handlers)};d.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},d.prototype.autoplay=function(){this.core.settings.autoplay&&!this.core.state.videoPlay?(b.clearInterval(this.interval),this.interval=b.setInterval(a.proxy(function(){this.play()},this),this.core.settings.autoplayTimeout)):b.clearInterval(this.interval)},d.prototype.play=function(){return c.hidden===!0||this.core.state.isTouch||this.core.state.isScrolling||this.core.state.isSwiping||this.core.state.inMotion?void 0:this.core.settings.autoplay===!1?void b.clearInterval(this.interval):void this.core.next(this.core.settings.autoplaySpeed)},d.prototype.stop=function(){b.clearInterval(this.interval)},d.prototype.pause=function(){b.clearInterval(this.interval)},d.prototype.destroy=function(){var a,c;b.clearInterval(this.interval);for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=d}(window.Zepto||window.jQuery,window,document),function(a){"use strict";var b=function(c){this._core=c,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.push(a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"add.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.splice(b.position,0,a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"remove.owl.carousel prepared.owl.carousel":a.proxy(function(a){this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"change.owl.carousel":a.proxy(function(a){if("position"==a.property.name&&!this._core.state.revert&&!this._core.settings.loop&&this._core.settings.navRewind){var b=this._core.current(),c=this._core.maximum(),d=this._core.minimum();a.data=a.property.value>c?b>=c?d:c:a.property.value<d?c:a.property.value}},this),"changed.owl.carousel":a.proxy(function(a){"position"==a.property.name&&this.draw()},this),"refreshed.owl.carousel":a.proxy(function(){this._initialized||(this.initialize(),this._initialized=!0),this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation")},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this.$element.on(this._handlers)};b.Defaults={nav:!1,navRewind:!0,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotData:!1,dotsSpeed:!1,dotsContainer:!1,controlsClass:"owl-controls"},b.prototype.initialize=function(){var b,c,d=this._core.settings;d.dotsData||(this._templates=[a("<div>").addClass(d.dotClass).append(a("<span>")).prop("outerHTML")]),d.navContainer&&d.dotsContainer||(this._controls.$container=a("<div>").addClass(d.controlsClass).appendTo(this.$element)),this._controls.$indicators=d.dotsContainer?a(d.dotsContainer):a("<div>").hide().addClass(d.dotsClass).appendTo(this._controls.$container),this._controls.$indicators.on("click","div",a.proxy(function(b){var c=a(b.target).parent().is(this._controls.$indicators)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(c,d.dotsSpeed)},this)),b=d.navContainer?a(d.navContainer):a("<div>").addClass(d.navContainerClass).prependTo(this._controls.$container),this._controls.$next=a("<"+d.navElement+">"),this._controls.$previous=this._controls.$next.clone(),this._controls.$previous.addClass(d.navClass[0]).html(d.navText[0]).hide().prependTo(b).on("click",a.proxy(function(){this.prev(d.navSpeed)},this)),this._controls.$next.addClass(d.navClass[1]).html(d.navText[1]).hide().appendTo(b).on("click",a.proxy(function(){this.next(d.navSpeed)},this));for(c in this._overrides)this._core[c]=a.proxy(this[c],this)},b.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},b.prototype.update=function(){var a,b,c,d=this._core.settings,e=this._core.clones().length/2,f=e+this._core.items().length,g=d.center||d.autoWidth||d.dotData?1:d.dotsEach||d.items;if("page"!==d.slideBy&&(d.slideBy=Math.min(d.slideBy,d.items)),d.dots||"page"==d.slideBy)for(this._pages=[],a=e,b=0,c=0;f>a;a++)(b>=g||0===b)&&(this._pages.push({start:a-e,end:a-e+g-1}),b=0,++c),b+=this._core.mergers(this._core.relative(a))},b.prototype.draw=function(){var b,c,d="",e=this._core.settings,f=(this._core.$stage.children(),this._core.relative(this._core.current()));if(!e.nav||e.loop||e.navRewind||(this._controls.$previous.toggleClass("disabled",0>=f),this._controls.$next.toggleClass("disabled",f>=this._core.maximum())),this._controls.$previous.toggle(e.nav),this._controls.$next.toggle(e.nav),e.dots){if(b=this._pages.length-this._controls.$indicators.children().length,e.dotData&&0!==b){for(c=0;c<this._controls.$indicators.children().length;c++)d+=this._templates[this._core.relative(c)];this._controls.$indicators.html(d)}else b>0?(d=new Array(b+1).join(this._templates[0]),this._controls.$indicators.append(d)):0>b&&this._controls.$indicators.children().slice(b).remove();this._controls.$indicators.find(".active").removeClass("active"),this._controls.$indicators.children().eq(a.inArray(this.current(),this._pages)).addClass("active")}this._controls.$indicators.toggle(e.dots)},b.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotData?1:c.dotsEach||c.items)}},b.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,function(a){return a.start<=b&&a.end>=b}).pop()},b.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},b.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},b.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},b.prototype.to=function(b,c,d){var e;d?a.proxy(this._overrides.to,this._core)(b,c):(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c))},a.fn.owlCarousel.Constructor.Plugins.Navigation=b}(window.Zepto||window.jQuery,window,document),function(a,b){"use strict";var c=function(d){this._core=d,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(){"URLHash"==this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash");this._hashes[c]=b.content},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(){var a=b.location.hash.substring(1),c=this._core.$stage.children(),d=this._hashes[a]&&c.index(this._hashes[a])||0;return a?void this._core.to(d,!1,!0):!1},this))};c.Defaults={URLhashListener:!1},c.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=c}(window.Zepto||window.jQuery,window,document);;
$(document).ready(function () {
    $(".tabs1 > li").click(function (e) {
        switch (e.target.id) {
            case "buy":
                $("#buy").addClass("active"),
                    $("#sale").removeClass("active"),
                    $("#lease").removeClass("active"),
                    $("#brokerage").removeClass("active"),
                    $("div.buy").fadeIn(),
                    $("div.sale").css("display", "none"),
                    $("div.lease").css("display", "none"),
                    $("div.brokerage").css("display", "none"),
                    (document.getElementById("txtLoaiTin").value = 0);
                break;
            case "sale":
                $("#buy").removeClass("active"),
                    $("#sale").addClass("active"),
                    $("#lease").removeClass("active"),
                    $("#brokerage").removeClass("active"),
                    $("div.buy").fadeIn(),
                    $("div.sale").css("display", "none"),
                    $("div.lease").css("display", "none"),
                    $("div.brokerage").css("display", "none"),
                    (document.getElementById("txtLoaiTin").value = 1);
                break;
            case "lease":
                $("#buy").removeClass("active"),
                    $("#sale").removeClass("active"),
                    $("#lease").addClass("active"),
                    $("#brokerage").removeClass("active"),
                    $("div.buy").fadeIn(),
                    $("div.sale").css("display", "none"),
                    $("div.lease").css("display", "none"),
                    $("div.brokerage").css("display", "none"),
                    (document.getElementById("txtLoaiTin").value = 3);
                break;
            case "brokerage":
                $("#buy").removeClass("active"),
                    $("#sale").removeClass("active"),
                    $("#lease").removeClass("active"),
                    $("#brokerage").addClass("active"),
                    $("div.buy").fadeIn(),
                    $("div.sale").css("display", "none"),
                    $("div.lease").css("display", "none"),
                    $("div.brokerage").css("display", "none"),
                    (document.getElementById("txtLoaiTin").value = 2);
        }
        return !1;
    }),
        $(".tabs3 > li").click(function (e) {
            switch (e.target.id) {
                case "li-des":
                    $("#li-des").addClass("active"), $("#li-video").removeClass("active"), $("#li-map").removeClass("active"), $("div.li-des").fadeIn(), $("div.li-video").css("display", "none"), $("div.li-map").css("display", "none");
                    break;
                case "li-video":
                    $("#li-des").removeClass("active"), $("#li-video").addClass("active"), $("#li-map").removeClass("active"), $("div.li-video").fadeIn(), $("div.li-des").css("display", "none"), $("div.li-map").css("display", "none");
                    break;
                case "li-map":
                    $("#li-des").removeClass("active"), $("#li-video").removeClass("active"), $("#li-map").addClass("active"), $("div.li-map").fadeIn(), $("div.li-des").css("display", "none"), $("div.li-video").css("display", "none");
            }
            return !1;
        });
});
;
// Login Form

$(function () {

    $('#ulmobilemenuBan').html($('#ulmenuBan').html());
    $('#ulmobilemenuChothue').html($('#ulmenuChoThue').html());

    $('.nav').append($('<div class="nav-mobile"></div>'));


    $('.nav-item').has('ul').prepend('<span class="nav-click"><i class="nav-arrow"></i></span>');

    // Click to reveal the nav
    $('.nav-mobile').click(function () {
        $('.nav-list').toggle();
    });

    $('.nav-list').on('click', '.nav-click', function () {

        // Toggle the nested nav

        $(this).siblings('.nav-submenu').toggle();

        // Toggle the arrow using CSS3 transforms\
        $(this).children('.nav-arrow').toggleClass('nav-rotate');

    });

    var button = $('#loginButton');
    var box = $('#loginBox');
    var form = $('#loginForm');
    button.removeAttr('href');
    button.mouseup(function(login) {
        box.toggle();
        button.toggleClass('active');
    });
    form.mouseup(function() { 
        return false;
    });
    $(this).mouseup(function(login) {
        if(!($(login.target).parent('#loginButton').length > 0)) {
            button.removeClass('active');
            box.hide();
        }
    });
});
;
;
var tooltipOptions = {
    showDelay: 100,
    hideDelay: 300,
    effect: "fade",
    duration: 200,
    relativeTo: "element",
    position: 1,
    smartPosition: true,
    offsetX: -5,
    offsetY: -20,
    maxWidth: 500,
    calloutSize: 16,
    calloutPosition: 0.3,
    cssClass: "",
    sticky: true,
    overlay: false,
    license: "244h0"
};
var tooltip = function(w) {
    "use strict";
    var f = "length",
        Fb = "addEventListener",
        fb, pc, Ib = function(a, c, b) {
            if (a[Fb]) a[Fb](c, b, false);
            else a.attachEvent && a.attachEvent("on" + c, b)
        },
        a = {},
        Z = function(a) {
            if (a && a.stopPropagation) a.stopPropagation();
            else if (window.event) window.event.cancelBubble = true
        },
        mc = function(b) {
            var a = b ? b : window.event;
            if (a.preventDefault) a.preventDefault();
            else if (a) a.returnValue = false
        },
        ac = function(d) {
            var a = d.childNodes,
                c = [];
            if (a)
                for (var b = 0, e = a[f]; b < e; b++) a[b].nodeType == 1 && c.push(a[b]);
            return c
        },
        cb = {
            a: 0,
            b: 0
        },
        g = null,
        hc = function(a) {
            if (!a) a = window.event;
            cb.a = a.clientX;
            cb.b = a.clientY
        },
        ec = function(a) {
            if (window.getComputedStyle) var b = window.getComputedStyle(a, null);
            else if (a.currentStyle) b = a.currentStyle;
            else b = a[e];
            return b
        },
        G = "offsetLeft",
        H = "offsetTop",
        rb = "clientWidth",
        qb = "clientHeight",
        A = "appendChild",
        Mb = "display",
        qc = "border",
        r = "opacity",
        U = 0,
        P = "createElement",
        db = "getElementsByTagName",
        C = "parentNode",
        N = "calloutSize",
        S = "position",
        Gb = "calloutPosition",
        E = Math.round,
        jb = "overlay",
        I = "sticky",
        Y = "hideDelay",
        gb = "onmouseout",
        tb = "onclick",
        n = 0,
        Q = "firstChild",
        vb = 0,
        q = document,
        W = "getElementById",
        ab = navigator,
        R = "innerHTML",
        t = function(a, b) {
            return b ? q[a](b) : q[a]
        },
        D = {},
        yb = !!ab.msMaxTouchPoints,
        nb = !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch),
        Jb = (ab.msPointerEnabled || ab.pointerEnabled) && yb;
    if (Jb) var Xb = ab.msPointerEnabled ? "onmspointerout" : "onpointerOut";
    var Qb = function(a) {
            return a.pointerType == a.MSPOINTER_TYPE_MOUSE || a.pointerType == "mouse"
        },
        oc = "marginTop",
        lc = "marginLeft",
        x = "offsetWidth",
        m = "offsetHeight",
        ub = "documentElement",
        nc = "borderColor",
        ib = "nextSibling",
        e = "style",
        z = "width",
        o = "left",
        p = "top",
        J = "height",
        jc = ["$1$2$3", "$1$2$3", "$1$24", "$1$23", "$1$22"],
        y, ob, B = function(c, a, b) {
            return setTimeout(c, a ? a.showDelay : b)
        },
        V = function(a) {
            clearTimeout(a);
            return null
        },
        pb = function() {
            for (var e = [d, b, h, c, c ? c[ib] : 0], a = 0; a < e[f]; a++)
                if (e[a] && e[a].o) e[a].o = V(e[a].o)
        },
        Ob = function(c, a, b) {
            Kb(c, a[0][0], a[0][1], b);
            a[f] == 2 && Kb(c, a[1][0], a[1][1], b)
        },
        Kb = function(a, b, d, c) {
            clearInterval(a["t" + b]);
            a["t" + b] = setInterval(function() {
                fc(a, b, d, c)
            }, 15)
        },
        fc = function(a, d, c, g) {
            var f = 0;
            if (d == r) {
                if (c && a.op >= 1 || !c && a.op <= 0) f++
            } else {
                var b = parseInt(a[e][d]);
                if (Math.abs(b - c) < 2) f++
            }
            if (f) {
                clearInterval(a["t" + d]);
                g && g()
            } else if (d == r) X(a, a.op + (c ? .06 : -.06));
            else {
                b = b + (c - b) / 3;
                if (Math.abs(b - c) < 4) b = c;
                a[e][d] = b + "px"
            }
        },
        l = function(b, a, c) {
            if (n) {
                var d = k ? k.duration : w.duration;
                b[e][n] = "all " + d + "ms"
            } else {
                b != h && Ob(b, a, c);
                return
            }
            b[e][a[0][0]] = a[0][1] + (a[0][0] == r ? "" : "px");
            if (a[f] === 2) b[e][a[1][0]] = a[1][1] + (a[1][0] == r ? "" : "px");
            if (c)
                if (n) {
                    clearTimeout(b.o);
                    b.o = setTimeout(c, d)
                } else setTimeout(c, 6)
        },
        L = function(b, a) {
            if (n) b[e][n] = "none";
            b[e][a[0][0]] = a[0][1] + "px";
            if (a[f] === 2) b[e][a[1][0]] = a[1][1] + "px";
            b[m]
        },
        ic = [/(?:.*\.)?(\w)([\w\-])[^.]*(\w)\.[^.]+$/, /.*([\w\-])\.(\w)(\w)\.[^.]+$/, /^(?:.*\.)?(\w)(\w)\.[^.]+$/, /.*([\w\-])([\w\-])\.com\.[^.]+$/, /^(\w)[^.]*(\w)$/],
        lb = function(d, a) {
            var c = [];
            if (vb) return vb;
            for (var b = 0; b < d[f]; b++) c[c[f]] = String.fromCharCode(d.charCodeAt(b) - (a && a > 7 ? a : 3));
            return c.join("")
        },
        Nb = function(a) {
            return a.replace(/(?:.*\.)?(\w)([\w\-])?[^.]*(\w)\.[^.]*$/, "$1$3$2")
        },
        Tb = function(e, c) {
            var d = function(a) {
                    for (var c = a.substr(0, a[f] - 1), e = a.substr(a[f] - 1, 1), d = "", b = 0; b < c[f]; b++) d += c.charCodeAt(b) - e;
                    return unescape(d)
                },
                a = Nb(q.domain) + Math.random(),
                b = d(a);
            ob = "%66%75%6E%63%74%69%6F%6E%20%71%51%28%73%2C%6B%29%7B%76%61%72%20%72%3D%27%27%3B%66%6F%72%28%76%61%72%20%69%";
            if (b[f] == 39) try {
                a = (new Function("$", "_", lb(ob))).apply(this, [b, c]);
                ob = a
            } catch (g) {}
        },
        gc = function(c, a) {
            var b = function(b) {
                var a = b.charCodeAt(0).toString();
                return a.substring(a[f] - 1)
            };
            return c + b(a[parseInt(lb("4"))]) + a[2] + b(a[0])
        },
        d, b, c, bb, h, j, K = 0,
        kc = 1,
        k, T = null,
        F = null,
        hb = function() {
            if (T != null) T = V(T)
        },
        v = function() {
            if (F != null) F = V(F)
        },
        X = function(a, b) {
            if (a) {
                a.op = b;
                if (a[e][r] !== undefined) a[e][r] = b;
                else a[e].filter = "alpha(opacity=" + b * 100 + ")"
            }
        },
        Pb = function(a, c, b, d, g, e, h, f) {
            var j = b >= a,
                l = d >= c,
                m = j ? b - a < g : a - b < h,
                n = l ? d - c < e : c - d < f,
                i = m ? b - a : j ? g : -h,
                k = n ? d - c : l ? e : -f;
            if (m && n)
                if (Math.abs(i) > Math.abs(k)) i = j ? g : -h;
                else k = l ? e : -f;
            return [i, k]
        },
        dc = function(r, j, q) {
            eb(b, 1);
            var a = t(P, "div");
            a[e][z] = r + "px";
            c = t(P, "div");
            c.className = "mcTooltipInner";
            if (q == 1) {
                c[R] = j;
                var g = 1
            } else {
                var d = t(W, j);
                if (d[C].w) c = d[C];
                else {
                    c.w = d[C];
                    c[A](d);
                    g = 1
                }
            }
            if (!n) {
                var k = c[db]("select"),
                    l = k[f];
                while (l--) k[l][gb] = Z
            }
            a[A](c);
            b[A](a);
            if (c[x] < 20) {
                var i = b.className;
                b.className = ""
            }
            var h = c[db]("img");
            h && h[f] && h[0][m];
            c[e][z] = c[x] + (g ? .3 : 0) + "px";
            c[e][J] = c[m] + (g ? .3 : 0) + "px";
            c[e][o] = c[e][p] = "auto";
            c = b.insertBefore(c, b[Q]);
            c[e][S] = "inherit";
            a = b.removeChild(a);
            a = null;
            if (i) b.className = i;
            return c
        },
        Rb = function(a) {
            if (a.w) {
                a.w[A](a);
                X(a, 1)
            } else {
                a = a[C].removeChild(a);
                a = null
            }
        },
        eb = function(b, c) {
            for (var a = c; a < b.childNodes[f]; a++) Rb(b.childNodes[a])
        },
        i = function(b, a) {
            b[e][Mb] = a ? "block" : "none"
        },
        Wb = function() {
            d.v = U = 0;
            i(bb, 0);
            i(d, 0);
            i(h, 0);
            i(K, 0);
            eb(b, 0)
        },
        Vb = function() {
            if (document.styleSheets && document.styleSheets.length) {
                var c = document.styleSheets[0];
                if (typeof b.style.animationName != "undefined") var a = "";
                if (typeof b.style.webkitAnimationName != "undefined") a = "-webkit-";
                else return;
                var d = "@" + a + "keyframes mcttSpinner {from{transform:rotate(0deg);} to{transform:rotate(360deg);}}";
                c.insertRule(d, 0);
                var e = "#tooltipAjaxSpin {margin:30px;font-size:0;width:20px;height:20px;border-width:3px;border-color:rgba(255,255,255,.8);border-style:solid;border-top-color:black;border-right-color:rgba(0,0,0,.8);border-radius:50%;" + a + "animation:mcttSpinner .6s linear infinite;}";
                c.insertRule(e, 0)
            }
        },
        s = null,
        Zb = {
            a: function(d, b, a) {
                var e = null,
                    h = null,
                    i = null,
                    c = "html";
                if (a) {
                    h = a.success || null;
                    c = a.responseType || "html";
                    e = a.context && h ? a.context : null;
                    i = a.fail || null
                }
                s = this.b();
                s.onreadystatechange = function() {
                    if (s && s.readyState === 4) {
                        v();
                        if (s.status === 200) {
                            if (k == d && T) {
                                v();
                                var j = c.toLowerCase() == "xml" ? s.responseXML : s.responseText,
                                    l = j;
                                if (c.toLowerCase() == "json") l = eval("(" + j + ")");
                                if (c == "html") {
                                    var o = b.match(/.+#([^?]+)/);
                                    if (o) {
                                        var r = function(e, b) {
                                                var d = null;
                                                if (b.id == e) return b;
                                                for (var c = b[db]("*"), a = 0, g = c[f]; a < g; a++)
                                                    if (c[a].id == e) {
                                                        d = c[a];
                                                        break
                                                    }
                                                return d
                                            },
                                            n = q[P]("div");
                                        n[R] = j;
                                        var m = r(o[1], n);
                                        if (m) j = l = m[R];
                                        n = null
                                    }
                                    if (!m) {
                                        var p = j.split(/<\/?body[^>]*>/i);
                                        if (p[f] > 1) j = l = p[1]
                                    }
                                }
                                if (h) j = a.success(l, e);
                                g.f(d, j, 1)
                            }
                        } else if (i) g.f(d, i(e), 1);
                        else g.f(d, "Failed to get data.", 1);
                        s = null
                    }
                };
                if (b.indexOf("#") != -1 && ab.userAgent.indexOf("MSIE ") != -1) b = b.replace("#", "?#");
                s.open("GET", b, true);
                s.send(null)
            },
            b: function() {
                var a;
                try {
                    if (window.XMLHttpRequest) a = new XMLHttpRequest;
                    else a = new ActiveXObject("Microsoft.XMLHTTP")
                } catch (b) {
                    throw new Error("AJAX not supported.");
                }
                return a
            }
        },
        Lb = function() {
            d = t(P, "div");
            d.id = "mcTooltipWrapper";
            d[R] = '<div id="mcTooltip"><div>&nbsp;</div></div><div id="mcttCo"><b></b></div><div id="mcttCloseButton"></div>';
            y = q.body;
            j = y;
            j[A](d);
            a.a = w.license || "4321";
            if (typeof d[e].transition !== "undefined") n = "transition";
            if (navigator.userAgent.indexOf("Chrome") == -1 && navigator.userAgent.indexOf("Safari") != -1) n = "webkitTransition";
            if (!n) d.op = .1;
            b = d[Q];
            d.b = d.c = d.v = 0;
            Tb(d, a.a);
            bb = d.lastChild;
            h = b[ib];
            i(d, 1);
            this.m(w, 1);
            i(d, 0);
            var c = this.k();
            fb = function(a) {
                v();
                c.i();
                Z(a)
            };
            bb[tb] = fb;
            this.l();
            K[tb] = function(a) {
                if (k[jb] !== 1) fb(a);
                else Z(a)
            };
            b[gb] = function() {
                T != 1 && hb();
                !k[I] && c.a(k[Y])
            };
            b[tb] = Z;
            Ib(q, "click", function(a) {
                if (k && k[I] !== 1) F = B(function() {
                    fb(a)
                }, 0, k[Y] + 100)
            });
            X(d, 0);
            d[e].visibility = "visible";
            Sb()
        },
        bc = function() {
            var b = q.getElementsByTagName("head");
            if (b[f]) {
                var a = q.createElement("style");
                b[0].appendChild(a);
                return a.sheet ? a.sheet : a.styleSheet
            } else return 0
        },
        cc = function() {
            if (typeof b.style.transform != "undefined") a = "";
            else if (typeof b.style.webkitTransform != "undefined") var a = "-webkit-";
            else if (typeof b.style.msTransform != "undefined") var a = "-ms-";
            else a = 0;
            return a
        },
        Eb = function(a) {
            a = a.replace("__", D.prefix);
            D.a.insertRule(a, 0)
        },
        Sb = function() {
            D.prefix = cc();
            D.a = bc();
            if (D.a) {
                var a = "#mcttCloseButton",
                    b = "position:absolute;left:auto;cursor:pointer;top:" + w[N] + "px;right:" + w[N] + "px;";
                if ("insertRule" in D.a) {
                    Eb(a + "{" + b + "}");
                    Eb("#mcttCloseButton::after{content:'+';display:block;position:absolute;__transform:rotate(45deg);}")
                } else {
                    D.a.addRule(a, b, 0);
                    D.a.addRule("#mcttCloseButton:after", "content:'X';display:block;position:absolute;", 0)
                }
            }
        },
        Bb = function(a) {
            if (a[C]) {
                var b = a[C].nodeName.toLowerCase();
                return b != "form" && b != "body" ? Bb(a[C]) : a[C]
            } else return y
        },
        u = function(c, b) {
            var a = c.getBoundingClientRect();
            return b ? a[p] : a[o]
        },
        M = function(b) {
            return b ? q[ub][qb] : q[ub][rb]
        },
        Yb = function() {
            var a = q[ub];
            return [window.pageXOffset || a.scrollLeft, window.pageYOffset || a.scrollTop]
        },
        kb = function(c, b, d, f, g) {
            h[e][c ? z : J] = a.f * 1.55 + "px";
            b[e].webkitTransform = b[e].transform = "translate(" + f + "px," + g + "px) rotate(" + d + "deg)"
        },
        Ub = function(h, g, c, d) {
            var f = M(0),
                e = M(1),
                a = 0,
                b = 0;
            if (j != y) {
                a = u(j, 0) - j[G];
                b = u(j, 1) - j[H]
            }
            if (c + a + h > f) c = f - h - a;
            if (c + a < 0) c = -a;
            if (d + b + g > e) d = e - g - b;
            if (d + b < 0) d = -b;
            return {
                l: c,
                t: d
            }
        };
    Lb.prototype = {
        j: function() {
            if (typeof h[e].transform == "undefined" && typeof h[e].webkitTransform == "undefined") {
                h[e][z] = "0";
                return
            }
            var b = h[Q];
            h[e][z] = h[e][J] = b[e][z] = b[e][J] = a.f + "px";
            b[e].borderLeft = b[e].borderTop = a.b + "px solid " + a.d;
            b[e].backgroundColor = a.c;
            switch (a.e) {
                case 0:
                    kb(1, b, -135, a.f / 4, -a.f / 2);
                    break;
                case 2:
                    kb(1, b, 45, a.f / 4, a.f / 2);
                    break;
                case 3:
                    kb(0, b, 135, -a.f / 2, a.f / 4);
                    break;
                default:
                    kb(0, b, -45, a.f / 2, a.f / 4)
            }
        },
        d: function(a, c, b) {
            hb();
            v();
            F = B(function() {
                (U != 1 || a != d.v) && g.f(a, c, b)
            }, a)
        },
        e: function(a, c, b) {
            hb();
            v();
            F = B(function() {
                g.g(a, c, b)
            }, a)
        },
        f: function(f, A, y) {
            i(d, 1);
            U = 1;
            v();
            pb();
            i(K, f[jb]);
            i(bb, f[I]);
            nb && i(bb, 1);
            var e = this.n(f, A, y);
            if (d.v) {
                l(d, [
                    [o, e.l],
                    [p, e.t]
                ]);
                l(b, [
                    [z, b.tw],
                    [J, b.th]
                ]);
                l(h, [
                    [o, e.x],
                    [p, e.y]
                ])
            } else if (a.e == 4) {
                var B = u(f, 0),
                    C = u(f, 1);
                L(d, [
                    [o, B],
                    [p, C]
                ]);
                l(d, [
                    [o, e.l],
                    [p, e.t]
                ]);
                l(b, [
                    [z, b.tw],
                    [J, b.th]
                ])
            } else {
                L(d, [
                    [p, e.t],
                    [o, e.l]
                ]);
                L(b, [
                    [z, b.tw],
                    [J, b.th]
                ]);
                L(h, [
                    [o, e.x],
                    [p, e.y]
                ])
            }
            if (f.effect == "slide") {
                var g, j;
                if (!d.v && a.e < 4) {
                    switch (a.e) {
                        case 0:
                            g = 0;
                            j = 1;
                            break;
                        case 1:
                            g = -1;
                            j = 0;
                            break;
                        case 2:
                            g = 0;
                            j = -1;
                            break;
                        case 3:
                            g = 1;
                            j = 0
                    }
                    var k = [g * c[x], j * c[m]]
                } else {
                    if (!d.v && a.e > 3) {
                        g = f[G];
                        j = f[H]
                    } else {
                        g = d[G];
                        j = d[H];
                        if (a.e > 3) {
                            g += d.v[G] - f[G];
                            j += d.v[H] - f[H]
                        }
                    }
                    var t = a.l + a.b + a.b,
                        w = a.m + a.b + a.b;
                    k = Pb(g, j, e.l, e.t, b.b + t, b.c + w, b.tw + t, b.th + w)
                }
                var q = a.l / 2,
                    s = a.m / 2;
                L(c, [
                    [o, k[0] + q],
                    [p, k[1] + s]
                ]);
                l(c, [
                    [o, q],
                    [p, s]
                ]);
                var n = c[ib];
                if (n) {
                    L(n, [
                        [o, q],
                        [p, s]
                    ]);
                    l(n, [
                        [o, -k[0] + q],
                        [p, -k[1] + s]
                    ], function() {
                        eb(b, 1)
                    })
                }
                X(c, 1)
            } else {
                l(c, [
                    [r, 1]
                ], function() {
                    eb(b, 1)
                });
                var n = c[ib];
                n && l(n, [
                    [r, 0]
                ])
            }
            l(d, [
                [r, 1]
            ]);
            d.v = f
        },
        g: function(a, c, b) {
            s = null;
            v();
            F = B(function() {
                g.f(a, '<div id="tooltipAjaxSpin">&nbsp;</div>', 1)
            }, a);
            T = 1;
            Zb.a(a, c, b)
        },
        a: function(a) {
            v();
            F = B(function() {
                g.i()
            }, 0, a)
        },
        i: function() {
            U = -1;
            hb();
            pb();
            l(d, [
                [r, 0]
            ], Wb)
        },
        l: function() {
            if (t(W, "mcOverlay") == null) {
                K = t(P, "div");
                K.id = "mcOverlay";
                y[A](K);
                K[e][S] = "fixed"
            }
        },
        m: function(f, g) {
            var j = 0;
            if (g || a.e != f[S] || a.f != f[N]) {
                a.e = f[S];
                a.f = f[N];
                d[e].padding = a.f + "px";
                j = 1
            }
            if (g || b.className != f.cssClass) {
                b.className = f.cssClass ? f.cssClass.replace(/^\s+|\s+$/g, "") : "";
                if (c) {
                    c[e][n] = "none";
                    c[m]
                }
                b[e][n] = "none";
                b[m];
                var k = ec(b),
                    l = Math.ceil(parseFloat(k.borderLeftWidth)),
                    p = k.backgroundColor,
                    o = k.borderLeftColor;
                if (g || a.b != l || a.c != p || a.d != o) {
                    a.b = l;
                    a.c = p;
                    a.d = o;
                    j = 1
                }
                a.l = g ? b[rb] - b[Q][x] : c[G] * 2;
                a.m = g ? b[qb] - b[Q][m] : c[H] * 2
            }
            if (j)
                if (a.e < 4) this.j();
                else i(h, 0)
        },
        k: function() {
            return (new Function("a", "b", "c", "d", "e", "f", "g", "h", "i", function(e) {
                var c = [];
                b.onmouseover = function(a) {
                    if (!k[I]) {
                        v();
                        if (U == -1) {
                            pb();
                            l(d, [
                                [r, 1]
                            ])
                        }
                    }
                    Z(a)
                };
                for (var a = 0, g = e[f]; a < g; a++) c[c[f]] = String.fromCharCode(e.charCodeAt(a) - 4);
                return c.join("")
            }("zev$pAi,k,g,+kvthpu+0405--\u0080\u0080+6+-?zev$qAe2e\u0080\u0080+55+0rAtevwiMrx,q2glevEx,4--0sA,,k,g,+kvthpu+0405--\u0080\u0080+px+-2vitpegi,h_r16a0l_r16a--2wtpmx,++-?mj,e2e%Aj,r/+8+0s--qAQexl_g,+yhukvt+-a,-?mj,q@259-wixXmqisyx,jyrgxmsr,-m,40g,+Ch'oylmD.o{{wA66~~~5tlu|jvvs5jvt6.E[vvs{pw'W|yjohzl'YltpuklyC6hE+-0tswmxmsr>:\u0081-?\u008106444-?\u0081\u0081vixyvr$xlmw?"))).apply(this, [a, Q, lb, ic, Nb, gc, t, jc, mb])
        },
        n: function(k, C, u) {
            var q = y;
            if (u == 2) {
                var D = t(W, C),
                    B = D[db]("*"),
                    E = B[f];
                while (E--)
                    if (B[E].type == "submit") q = Bb(D)
            }
            if (j != q) {
                j = q;
                j[A](d)
            }
            b.b = b[rb] - a.l;
            b.c = b[qb] - a.m;
            c = dc(k.maxWidth, C, u);
            this.m(k, 0);
            if (!n) c[e].backgroundColor = a.c;
            b.tw = c[x];
            b.th = c[m];
            k.effect == "fade" && X(c, 0);
            var s = b.tw + a.l + a.b + a.b,
                r = b.th + a.m + a.b + a.b,
                o = this.p(k, s, r);
            if (k.smartPosition) var g = Ub(s + a.f, r + a.f, o.x, o.y);
            else g = {
                l: o.x,
                t: o.y
            };
            var l = k[S],
                p = this.u(l, k[Gb], s, r);
            if (k.smartPosition && l < 4) {
                var w = g.l - o.x,
                    z = g.t - o.y;
                if (l == 0 || l == 2) p[0] -= w;
                else w && i(h, 0);
                if (l == 1 || l == 3) p[1] -= z;
                else z && i(h, 0)
            }
            if (j == y) {
                var v = Yb();
                g.l = g.l + v[0];
                g.t = g.t + v[1]
            }
            g.x = p[0];
            g.y = p[1];
            return g
        },
        p: function(b, t, s) {
            var c, d, h, g, p = b[S],
                n = b[Gb];
            if (p < 4)
                if (b.nodeType != 1) c = d = h = g = 0;
                else if (b.relativeTo == "mouse") {
                c = cb.a;
                d = cb.b;
                if (cb.a == null) {
                    c = u(b, 0) + E(b[x] / 2);
                    d = u(b, 1) + E(b[m] / 2)
                }
                h = 0;
                g = 0
            } else {
                var i = b,
                    e = ac(b);
                if (e[f]) {
                    e = e[0];
                    if (e[x] >= b[x] || e[m] >= b[m]) i = e
                }
                c = u(i, 0);
                d = u(i, 1);
                h = i[x];
                g = i[m]
            }
            var o = 20,
                l = t + 2 * b[N],
                k = s + 2 * b[N];
            switch (p) {
                case 0:
                    c += E(h / 2 - l * n);
                    d -= k + o;
                    break;
                case 2:
                    c += E(h / 2 - l * n);
                    d += g + o;
                    break;
                case 3:
                    c -= l + o;
                    d += E(g / 2 - k * n);
                    break;
                case 4:
                    c = E((M(0) - l) / 2);
                    d = E((M(1) - k) / 2);
                    break;
                case 5:
                    c = d = 0;
                    break;
                case 6:
                    c = M(0) - l - Math.ceil(a.l / 2);
                    d = M(1) - k - Math.ceil(a.m / 2);
                    break;
                case 1:
                default:
                    c += h + o;
                    d += E(g / 2 - k * n)
            }
            var q = 0,
                r = 0;
            if (j != y) {
                q = j[G] - u(j, 0);
                r = j[H] - u(j, 1)
            }
            return {
                x: c + q + b.offsetX,
                y: d + r + b.offsetY
            }
        },
        u: function(f, c, e, d) {
            i(h, f < 4);
            var b = [0, 0];
            switch (f) {
                case 0:
                    b = [e * c, d + a.f - a.b - 1];
                    break;
                case 1:
                    b = [a.b, d * c];
                    break;
                case 2:
                    b = [e * c, a.b];
                    break;
                case 3:
                    b = [e + a.f - a.b - 1, d * c]
            }
            return b
        }
    };
    var Cb = function() {
            if (g == null) {
                if (typeof console !== "undefined" && typeof console.log === "function") {
                    var a = console.log;
                    console.log = function() {
                        a.call(this, ++vb, arguments)
                    }
                }
                g = new Lb;
                if (a) console.log = a;
                Vb()
            }
            if (k && k.m && d[R].indexOf(lb("kdvh#Uh")) != -1) g.i = function() {};
            return g
        },
        wb = function(d, c, b) {
            b = b || {};
            var a;
            for (a in c) d[a] = b[a] !== undefined ? b[a] : c[a]
        },
        sb = 0,
        O, Hb = function(a) {
            if (!a) {
                a = t(P, "div");
                a.m = 1;
                a[e][Mb] = "none";
                y[A](a)
            }
            if (typeof a === "string") a = t(W, a);
            k = a;
            return a
        },
        xb = function(b, a) {
            return nb && b.target == a ? 0 : 1
        },
        zb = function(a, b) {
            wb(a, w, b);
            if (yb || nb) {
                a.showDelay = 1;
                a[Y] = 30
            }
            if (a[jb])
                if (!a[I]) a[I] = a[jb];
            if (a[I]) a[gb] = function(a) {
                xb(a, this) && v()
            };
            else if (Jb) a[Xb] = function(a) {
                Qb(a) && g.a(this[Y])
            };
            else a[gb] = function(a) {
                xb(a, this) && g.a(this[Y])
            };
            if (a.relativeTo == "mouse") a.onmousemove = hc;
            a.set = 1
        },
        mb = function(a, c, h) {
            a = Hb(a);
            var b = 0;
            if (c.charAt(0) == "#") {
                if (c[f] > 2 && c.charAt(1) == "#") b = 2;
                else b = 1;
                var d = c.substring(b),
                    e = t(W, d);
                if (e) {
                    if (b == 2) c = e[R]
                } else b = -1
            }
            if (!a || !g || b == -1) {
                if (++sb < 40) O = B(function() {
                    mb(a, c, h)
                }, 0, 90)
            } else {
                O = V(O);
                !a.set && zb(a, h);
                if (b == 1) g.d(a, d, 2);
                else g.d(a, c, 1)
            }
        },
        Ab = function(a, d, b, c) {
            a = Hb(a);
            if (!a || !g) {
                if (++sb < 40) O = B(function() {
                    Ab(a, d, b, c)
                }, 0, 90)
            } else {
                O = V(O);
                !a.set && zb(a, c);
                g.e(a, d, b)
            }
        };
    Ib(window, "load", Cb);
    var Db = function(a) {
        if (++sb < 20)
            if (!g) B(function() {
                Db(a)
            }, 0, 90);
            else {
                wb(w, w, a);
                i(d, 1);
                g.m(w, 0);
                i(d, 0)
            }
    };
    return {
        changeOptions: function(L_options) {
            Db(L_options)
        },
        pop: function(L_sender, L_text, L_options) {
            mb(L_sender, L_text, L_options)
        },
        ajax: function(L_sender, L_url, L_ajaxSettings, L_options) {
            Ab(L_sender, L_url, L_ajaxSettings, L_options)
        },
        hide: function() {
            var a = Cb();
            a.i()
        }
    }
}(tooltipOptions);
/*! Swipebox v1.5.2 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */

; (function (window, document, $, undefined) {

	$.swipebox = function (elem, options) {

		$(elem).addClass('swipebox'); // fugly but yea, swipebox class all the things

		// Default options
		var ui,
			defaults = {
				useCSS: true,
				useSVG: true,
				initialIndexOnArray: 0,
				removeBarsOnMobile: true,
				hideCloseButtonOnMobile: false,
				hideBarsDelay: 3000,
				videoMaxWidth: 1140,
				vimeoColor: 'cccccc',
				beforeOpen: null,
				afterOpen: null,
				afterClose: null,
				afterMedia: null,
				nextSlide: null,
				prevSlide: null,
				loopAtEnd: false,
				autoplayVideos: false,
				queryStringData: {},
				toggleClassOnLoad: ''
			},

			plugin = this,
			elements = [], // slides array [ { href:'...', title:'...' }, ...],
			$elem,
			selector = '.swipebox',
			isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i),
			isTouch = isMobile !== null || document.createTouch !== undefined || ('ontouchstart' in window) || ('onmsgesturechange' in window) || navigator.msMaxTouchPoints,
			supportSVG = !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect,
			winWidth = window.innerWidth ? window.innerWidth : $(window).width(),
			winHeight = window.innerHeight ? window.innerHeight : $(window).height(),
			currentX = 0,
			/* jshint multistr: true */
			html = '<div id="swipebox-overlay">\
					<div id="swipebox-container">\
						<div id="swipebox-slider"></div>\
						<div id="swipebox-top-bar">\
							<div id="swipebox-title"></div>\
						</div>\
						<div id="swipebox-bottom-bar">\
							<div id="swipebox-arrows">\
								<a id="swipebox-prev"></a>\
								<a id="swipebox-next"></a>\
							</div>\
						</div>\
						<a id="swipebox-close"></a>\
					</div>\
			</div>';

		plugin.settings = {};

		$.swipebox.close = function () {
			ui.closeSlide();
		};

		$.swipebox.extend = function () {
			return ui;
		};

		plugin.init = function () {

			plugin.settings = $.extend({}, defaults, options);

			if (Array.isArray(elem)) {

				elements = elem;
				ui.target = $(window);
				ui.init(plugin.settings.initialIndexOnArray);

			} else {

				$(document).on('click', selector, function (event) {

					// console.log( isTouch );

					if (event.target.parentNode.className === 'slide current') {

						return false;
					}

					if (!Array.isArray(elem)) {
						ui.destroy();
						$elem = $(selector);
						ui.actions();
					}

					elements = [];
					var index, relType, relVal;

					// Allow for HTML5 compliant attribute before legacy use of rel
					if (!relVal) {
						relType = 'data-rel';
						relVal = $(this).attr(relType);
					}

					if (!relVal) {
						relType = 'rel';
						relVal = $(this).attr(relType);
					}

					if (relVal && relVal !== '' && relVal !== 'nofollow') {
						$elem = $(selector).filter('[' + relType + '="' + relVal + '"]');
					} else {
						$elem = $(selector);
					}

					$elem.each(function () {

						var title = null,
							href = null;

						if ($(this).attr('title')) {
							title = $(this).attr('title');
						}

						if ($(this).attr('href')) {
							href = $(this).attr('href');
						}

						elements.push({
							href: href,
							title: title
						});
					});

					index = $elem.index($(this));
					event.preventDefault();
					event.stopPropagation();
					ui.target = $(event.target);
					ui.init(index);
				});
			}
		};

		ui = {

			/**
			 * Initiate Swipebox
			 */
			init: function (index) {
				if (plugin.settings.beforeOpen) {
					plugin.settings.beforeOpen();
				}
				this.target.trigger('swipebox-start');
				$.swipebox.isOpen = true;
				this.build();
				this.openSlide(index);
				this.openMedia(index);
				this.preloadMedia(index + 1);
				this.preloadMedia(index - 1);
				if (plugin.settings.afterOpen) {
					plugin.settings.afterOpen(index);
				}
			},

			/**
			 * Built HTML containers and fire main functions
			 */
			build: function () {
				var $this = this, bg;

				$('body').append(html);

				if (supportSVG && plugin.settings.useSVG === true) {
					bg = $('#swipebox-close').css('background-image');
					bg = bg.replace('png', 'svg');
					$('#swipebox-prev, #swipebox-next, #swipebox-close').css({
						'background-image': bg
					});
				}

				if (isMobile && plugin.settings.removeBarsOnMobile) {
					$('#swipebox-bottom-bar, #swipebox-top-bar').remove();
				}

				$.each(elements, function () {
					$('#swipebox-slider').append('<div class="slide"></div>');
				});

				$this.setDim();
				$this.actions();

				if (isTouch) {
					$this.gesture();
				}

				// Devices can have both touch and keyboard input so always allow key events
				$this.keyboard();

				$this.animBars();
				$this.resize();

			},

			/**
			 * Set dimensions depending on windows width and height
			 */
			setDim: function () {

				var width, height, sliderCss = {};

				// Reset dimensions on mobile orientation change
				if ('onorientationchange' in window) {

					window.addEventListener('orientationchange', function () {
						if (window.orientation === 0) {
							width = winWidth;
							height = winHeight;
						} else if (window.orientation === 90 || window.orientation === -90) {
							width = winHeight;
							height = winWidth;
						}
					}, false);


				} else {

					width = window.innerWidth ? window.innerWidth : $(window).width();
					height = window.innerHeight ? window.innerHeight : $(window).height();
				}

				sliderCss = {
					width: width,
					height: height
				};

				$('#swipebox-overlay').css(sliderCss);

			},

			/**
			 * Reset dimensions on window resize envent
			 */
			resize: function () {
				var $this = this;

				$(window).resize(function () {
					$this.setDim();
				}).resize();
			},

			/**
			 * Check if device supports CSS transitions
			 */
			supportTransition: function () {

				var prefixes = 'transition WebkitTransition MozTransition OTransition msTransition KhtmlTransition'.split(' '),
					i;

				for (i = 0; i < prefixes.length; i++) {
					if (document.createElement('div').style[prefixes[i]] !== undefined) {
						return prefixes[i];
					}
				}
				return false;
			},

			/**
			 * Check if CSS transitions are allowed (options + devicesupport)
			 */
			doCssTrans: function () {
				if (plugin.settings.useCSS && this.supportTransition()) {
					return true;
				}
			},

			/**
			 * Touch navigation
			 */
			gesture: function () {

				var $this = this,
					index,
					hDistance,
					vDistance,
					hDistanceLast,
					vDistanceLast,
					hDistancePercent,
					vSwipe = false,
					hSwipe = false,
					hSwipMinDistance = 10,
					vSwipMinDistance = 50,
					startCoords = {},
					endCoords = {},
					bars = $('#swipebox-top-bar, #swipebox-bottom-bar'),
					slider = $('#swipebox-slider');

				bars.addClass('visible-bars');
				$this.setTimeout();

				$('body').bind('touchstart', function (event) {

					$(this).addClass('touching');
					index = $('#swipebox-slider .slide').index($('#swipebox-slider .slide.current'));
					endCoords = event.originalEvent.targetTouches[0];
					startCoords.pageX = event.originalEvent.targetTouches[0].pageX;
					startCoords.pageY = event.originalEvent.targetTouches[0].pageY;

					$('#swipebox-slider').css({
						'-webkit-transform': 'translate3d(' + currentX + '%, 0, 0)',
						'transform': 'translate3d(' + currentX + '%, 0, 0)'
					});

					$('.touching').bind('touchmove', function (event) {
						event.preventDefault();
						event.stopPropagation();
						endCoords = event.originalEvent.targetTouches[0];

						if (!hSwipe) {
							vDistanceLast = vDistance;
							vDistance = endCoords.pageY - startCoords.pageY;
							if (Math.abs(vDistance) >= vSwipMinDistance || vSwipe) {
								var opacity = 0.75 - Math.abs(vDistance) / slider.height();

								slider.css({ 'top': vDistance + 'px' });
								slider.css({ 'opacity': opacity });

								vSwipe = true;
							}
						}

						hDistanceLast = hDistance;
						hDistance = endCoords.pageX - startCoords.pageX;
						hDistancePercent = hDistance * 100 / winWidth;

						if (!hSwipe && !vSwipe && Math.abs(hDistance) >= hSwipMinDistance) {
							$('#swipebox-slider').css({
								'-webkit-transition': '',
								'transition': ''
							});
							hSwipe = true;
						}

						if (hSwipe) {

							// swipe left
							if (0 < hDistance) {

								// first slide
								if (0 === index) {
									// console.log( 'first' );
									$('#swipebox-overlay').addClass('leftSpringTouch');
								} else {
									// Follow gesture
									$('#swipebox-overlay').removeClass('leftSpringTouch').removeClass('rightSpringTouch');
									$('#swipebox-slider').css({
										'-webkit-transform': 'translate3d(' + (currentX + hDistancePercent) + '%, 0, 0)',
										'transform': 'translate3d(' + (currentX + hDistancePercent) + '%, 0, 0)'
									});
								}

								// swipe right
							} else if (0 > hDistance) {

								// last Slide
								if (elements.length === index + 1) {
									// console.log( 'last' );
									$('#swipebox-overlay').addClass('rightSpringTouch');
								} else {
									$('#swipebox-overlay').removeClass('leftSpringTouch').removeClass('rightSpringTouch');
									$('#swipebox-slider').css({
										'-webkit-transform': 'translate3d(' + (currentX + hDistancePercent) + '%, 0, 0)',
										'transform': 'translate3d(' + (currentX + hDistancePercent) + '%, 0, 0)'
									});
								}

							}
						}
					});

					return false;

				}).bind('touchend', function (event) {
					event.preventDefault();
					event.stopPropagation();

					$('#swipebox-slider').css({
						'-webkit-transition': '-webkit-transform 0.4s ease',
						'transition': 'transform 0.4s ease'
					});

					vDistance = endCoords.pageY - startCoords.pageY;
					hDistance = endCoords.pageX - startCoords.pageX;
					hDistancePercent = hDistance * 100 / winWidth;

					// Swipe to bottom to close
					if (vSwipe) {
						vSwipe = false;
						if (Math.abs(vDistance) >= 2 * vSwipMinDistance && Math.abs(vDistance) > Math.abs(vDistanceLast)) {
							var vOffset = vDistance > 0 ? slider.height() : - slider.height();
							slider.animate({ top: vOffset + 'px', 'opacity': 0 },
								300,
								function () {
									$this.closeSlide();
								});
						} else {
							slider.animate({ top: 0, 'opacity': 1 }, 300);
						}

					} else if (hSwipe) {

						hSwipe = false;

						// swipeLeft
						if (hDistance >= hSwipMinDistance && hDistance >= hDistanceLast) {

							$this.getPrev();

							// swipeRight
						} else if (hDistance <= -hSwipMinDistance && hDistance <= hDistanceLast) {

							$this.getNext();
						}

					} else { // Top and bottom bars have been removed on touchable devices
						// tap
						if (!bars.hasClass('visible-bars')) {
							$this.showBars();
							$this.setTimeout();
						} else {
							$this.clearTimeout();
							$this.hideBars();
						}
					}

					$('#swipebox-slider').css({
						'-webkit-transform': 'translate3d(' + currentX + '%, 0, 0)',
						'transform': 'translate3d(' + currentX + '%, 0, 0)'
					});

					$('#swipebox-overlay').removeClass('leftSpringTouch').removeClass('rightSpringTouch');
					$('.touching').off('touchmove').removeClass('touching');

				});
			},

			/**
			 * Set timer to hide the action bars
			 */
			setTimeout: function () {
				if (plugin.settings.hideBarsDelay > 0) {
					var $this = this;
					$this.clearTimeout();
					$this.timeout = window.setTimeout(function () {
						$this.hideBars();
					},

						plugin.settings.hideBarsDelay
					);
				}
			},

			/**
			 * Clear timer
			 */
			clearTimeout: function () {
				window.clearTimeout(this.timeout);
				this.timeout = null;
			},

			/**
			 * Show navigation and title bars
			 */
			showBars: function () {
				var bars = $('#swipebox-top-bar, #swipebox-bottom-bar');
				if (this.doCssTrans()) {
					bars.addClass('visible-bars');
				} else {
					$('#swipebox-top-bar').animate({ top: 0 }, 500);
					$('#swipebox-bottom-bar').animate({ bottom: 0 }, 500);
					setTimeout(function () {
						bars.addClass('visible-bars');
					}, 1000);
				}
			},

			/**
			 * Hide navigation and title bars
			 */
			hideBars: function () {
				var bars = $('#swipebox-top-bar, #swipebox-bottom-bar');
				if (this.doCssTrans()) {
					bars.removeClass('visible-bars');
				} else {
					$('#swipebox-top-bar').animate({ top: '-50px' }, 500);
					$('#swipebox-bottom-bar').animate({ bottom: '-50px' }, 500);
					setTimeout(function () {
						bars.removeClass('visible-bars');
					}, 1000);
				}
			},

			/**
			 * Animate navigation and top bars
			 */
			animBars: function () {
				var $this = this,
					bars = $('#swipebox-top-bar, #swipebox-bottom-bar');

				bars.addClass('visible-bars');
				$this.setTimeout();

				$('#swipebox-slider').click(function () {
					if (!bars.hasClass('visible-bars')) {
						$this.showBars();
						$this.setTimeout();
					}
				});

				$('#swipebox-bottom-bar').hover(function () {
					$this.showBars();
					bars.addClass('visible-bars');
					$this.clearTimeout();

				}, function () {
					if (plugin.settings.hideBarsDelay > 0) {
						bars.removeClass('visible-bars');
						$this.setTimeout();
					}

				});
			},

			/**
			 * Keyboard navigation
			 */
			keyboard: function () {
				var $this = this;
				$(window).bind('keyup', function (event) {
					event.preventDefault();
					event.stopPropagation();

					if (event.keyCode === 37) {

						$this.getPrev();

					} else if (event.keyCode === 39) {

						$this.getNext();

					} else if (event.keyCode === 27) {

						$this.closeSlide();
					}
				});
			},

			/**
			 * Navigation events : go to next slide, go to prevous slide and close
			 */
			actions: function () {
				var $this = this,
					action = 'touchend click'; // Just detect for both event types to allow for multi-input

				if (elements.length < 2) {

					$('#swipebox-bottom-bar').hide();

					if (undefined === elements[1]) {
						$('#swipebox-top-bar').hide();
					}

				} else {
					$('#swipebox-prev').bind(action, function (event) {
						event.preventDefault();
						event.stopPropagation();
						$this.getPrev();
						$this.setTimeout();
					});

					$('#swipebox-next').bind(action, function (event) {
						event.preventDefault();
						event.stopPropagation();
						$this.getNext();
						$this.setTimeout();
					});
				}

				$('#swipebox-close').bind(action, function (event) {
					event.preventDefault();
					event.stopPropagation();
					$this.closeSlide();
				});
			},

			/**
			 * Set current slide
			 */
			setSlide: function (index, isFirst) {

				isFirst = isFirst || false;

				var slider = $('#swipebox-slider');

				currentX = -index * 100;

				if (this.doCssTrans()) {
					slider.css({
						'-webkit-transform': 'translate3d(' + (-index * 100) + '%, 0, 0)',
						'transform': 'translate3d(' + (-index * 100) + '%, 0, 0)'
					});
				} else {
					slider.animate({ left: (-index * 100) + '%' });
				}

				$('#swipebox-slider .slide').removeClass('current');
				$('#swipebox-slider .slide').eq(index).addClass('current');
				this.setTitle(index);

				if (isFirst) {
					slider.fadeIn();
				}

				$('#swipebox-prev, #swipebox-next').removeClass('disabled');

				if (index === 0) {
					$('#swipebox-prev').addClass('disabled');
				} else if (index === elements.length - 1 && plugin.settings.loopAtEnd !== true) {
					$('#swipebox-next').addClass('disabled');
				}
			},

			/**
			 * Open slide
			 */
			openSlide: function (index) {
				$('html').addClass('swipebox-html');
				if (isTouch) {
					$('html').addClass('swipebox-touch');

					if (plugin.settings.hideCloseButtonOnMobile) {
						$('html').addClass('swipebox-no-close-button');
					}
				} else {
					$('html').addClass('swipebox-no-touch');
				}
				$(window).trigger('resize'); // fix scroll bar visibility on desktop
				this.setSlide(index, true);
			},

			/**
			 * Set a time out if the media is a video
			 */
			preloadMedia: function (index) {
				var $this = this,
					src = null;

				if (elements[index] !== undefined) {
					src = elements[index].href;
				}

				if (!$this.isVideo(src)) {
					setTimeout(function () {
						$this.openMedia(index);
					}, 1000);
				} else {
					$this.openMedia(index);
				}
			},

			/**
			 * Open
			 */
			openMedia: function (index) {
				var $this = this,
					src,
					slide;

				if (elements[index] !== undefined) {
					src = elements[index].href;
				}

				if (index < 0 || index >= elements.length) {
					return false;
				}

				slide = $('#swipebox-slider .slide').eq(index);

				if (!$this.isVideo(src)) {
					slide.addClass('slide-loading');
					$this.loadMedia(src, function () {
						slide.removeClass('slide-loading');
						slide.html(this);

						if (plugin.settings.afterMedia) {
							plugin.settings.afterMedia(index);
						}
					});
				} else {
					slide.html($this.getVideo(src));

					if (plugin.settings.afterMedia) {
						plugin.settings.afterMedia(index);
					}
				}

			},

			/**
			 * Set link title attribute as caption
			 */
			setTitle: function (index) {
				var title = null;

				$('#swipebox-title').empty();

				if (elements[index] !== undefined) {
					title = elements[index].title;
				}

				if (title) {
					$('#swipebox-top-bar').show();
					$('#swipebox-title').append(title);
				} else {
					$('#swipebox-top-bar').hide();
				}
			},

			/**
			 * Check if the URL is a video
			 */
			isVideo: function (src) {

				if (src) {
					if (src.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || src.match(/vimeo\.com\/([0-9]*)/) || src.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/)) {
						return true;
					}

					if (src.toLowerCase().indexOf('swipeboxvideo=1') >= 0) {
						return true;
					}
				}
			},

			/**
			 * Parse URI querystring and:
			 * - overrides value provided via dictionary
			 * - rebuild it again returning a string
			 */
			parseUri: function (uri, customData) {
				var a = document.createElement('a'),
					qs = {};

				// Decode the URI
				a.href = decodeURIComponent(uri);

				// QueryString to Object
				if (a.search) {
					qs = JSON.parse('{"' + a.search.toLowerCase().replace('?', '').replace(/&/g, '","').replace(/=/g, '":"') + '"}');
				}

				// Extend with custom data
				if ($.isPlainObject(customData)) {
					qs = $.extend(qs, customData, plugin.settings.queryStringData); // The dev has always the final word
				}

				// Return querystring as a string
				return $
					.map(qs, function (val, key) {
						if (val && val > '') {
							return encodeURIComponent(key) + '=' + encodeURIComponent(val);
						}
					})
					.join('&');
			},

			/**
			 * Get video iframe code from URL
			 */
			getVideo: function (url) {
				var iframe = '',
					youtubeUrl = url.match(/((?:www\.)?youtube\.com|(?:www\.)?youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/),
					youtubeShortUrl = url.match(/(?:www\.)?youtu\.be\/([a-zA-Z0-9\-_]+)/),
					vimeoUrl = url.match(/(?:www\.)?vimeo\.com\/([0-9]*)/),
					qs = '';

				if (youtubeUrl || youtubeShortUrl) {
					if (youtubeShortUrl) {
						youtubeUrl = youtubeShortUrl;
					}

					console.log(youtubeUrl);

					qs = ui.parseUri(url, {
						'autoplay': (plugin.settings.autoplayVideos ? '1' : '0'),
						'v': ''
					});
					iframe = '<iframe width="560" height="315" src="https://' + youtubeUrl[1] + '/embed/' + youtubeUrl[2] + '?' + qs + '" frameborder="0" allowfullscreen></iframe>';

				} else if (vimeoUrl) {
					qs = ui.parseUri(url, {
						'autoplay': (plugin.settings.autoplayVideos ? '1' : '0'),
						'byline': '0',
						'portrait': '0',
						'color': plugin.settings.vimeoColor
					});
					iframe = '<iframe width="560" height="315"  src="//player.vimeo.com/video/' + vimeoUrl[1] + '?' + qs + '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';

				} else {
					iframe = '<iframe width="560" height="315" src="' + url + '" frameborder="0" allowfullscreen></iframe>';
				}

				return '<div class="swipebox-video-container" style="max-width:' + plugin.settings.videoMaxWidth + 'px"><div class="swipebox-video">' + iframe + '</div></div>';
			},

			/**
			 * Load image
			 */
			loadMedia: function (src, callback) {
				// Inline content
				if (src.trim().indexOf('#') === 0) {
					callback.call(
						$('<div>', {
							'class': 'swipebox-inline-container'
						})
							.append(
								$(src)
									.clone()
									.toggleClass(plugin.settings.toggleClassOnLoad)
							)
					);
				}
				// Everything else
				else {
					if (!this.isVideo(src)) {
						var img = $('<img>').on('load', function () {
							callback.call(img);
						});

						img.attr('src', src);
					}
				}
			},

			/**
			 * Get next slide
			 */
			getNext: function () {
				var $this = this,
					src,
					index = $('#swipebox-slider .slide').index($('#swipebox-slider .slide.current'));
				if (index + 1 < elements.length) {

					src = $('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src');
					$('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src', src);
					index++;
					$this.setSlide(index);
					$this.preloadMedia(index + 1);
					if (plugin.settings.nextSlide) {
						plugin.settings.nextSlide(index);
					}
				} else {

					if (plugin.settings.loopAtEnd === true) {
						src = $('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src');
						$('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src', src);
						index = 0;
						$this.preloadMedia(index);
						$this.setSlide(index);
						$this.preloadMedia(index + 1);
						if (plugin.settings.nextSlide) {
							plugin.settings.nextSlide(index);
						}
					} else {
						$('#swipebox-overlay').addClass('rightSpring');
						setTimeout(function () {
							$('#swipebox-overlay').removeClass('rightSpring');
						}, 500);
					}
				}
			},

			/**
			 * Get previous slide
			 */
			getPrev: function () {
				var index = $('#swipebox-slider .slide').index($('#swipebox-slider .slide.current')),
					src;
				if (index > 0) {
					src = $('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src');
					$('#swipebox-slider .slide').eq(index).contents().find('iframe').attr('src', src);
					index--;
					this.setSlide(index);
					this.preloadMedia(index - 1);
					if (plugin.settings.prevSlide) {
						plugin.settings.prevSlide(index);
					}
				} else {
					$('#swipebox-overlay').addClass('leftSpring');
					setTimeout(function () {
						$('#swipebox-overlay').removeClass('leftSpring');
					}, 500);
				}
			},
			/* jshint unused:false */
			nextSlide: function (index) {
				// Callback for next slide
			},

			prevSlide: function (index) {
				// Callback for prev slide
			},

			/**
			 * Close
			 */
			closeSlide: function () {
				$('html').removeClass('swipebox-html');
				$('html').removeClass('swipebox-touch');
				$(window).trigger('resize');
				this.destroy();
			},

			/**
			 * Destroy the whole thing
			 */
			destroy: function () {
				$(window).unbind('keyup');
				$('body').unbind('touchstart');
				$('body').unbind('touchmove');
				$('body').unbind('touchend');
				$('#swipebox-slider').unbind();
				$('#swipebox-overlay').remove();

				if (!Array.isArray(elem)) {
					elem.removeData('_swipebox');
				}

				if (this.target) {
					this.target.trigger('swipebox-destroy');
				}

				$.swipebox.isOpen = false;

				if (plugin.settings.afterClose) {
					plugin.settings.afterClose();
				}
			}
		};

		plugin.init();
	};

	$.fn.swipebox = function (options) {

		if (!$.data(this, '_swipebox')) {
			var swipebox = new $.swipebox(this, options);
			this.data('_swipebox', swipebox);
		}
		return this.data('_swipebox');

	};

}(window, document, jQuery));
;
// Magnific Popup v1.1.0 by Dmitry Semenov
// http://bit.ly/magnific-popup#build=inline+image+gallery+retina+imagezoom
(function (a) { typeof define == "function" && define.amd ? define(["jquery"], a) : typeof exports == "object" ? a(require("jquery")) : a(window.jQuery || window.Zepto) })(function (a) { var b = "Close", c = "BeforeClose", d = "AfterClose", e = "BeforeAppend", f = "MarkupParse", g = "Open", h = "Change", i = "mfp", j = "." + i, k = "mfp-ready", l = "mfp-removing", m = "mfp-prevent-close", n, o = function () { }, p = !!window.jQuery, q, r = a(window), s, t, u, v, w = function (a, b) { n.ev.on(i + a + j, b) }, x = function (b, c, d, e) { var f = document.createElement("div"); return f.className = "mfp-" + b, d && (f.innerHTML = d), e ? c && c.appendChild(f) : (f = a(f), c && f.appendTo(c)), f }, y = function (b, c) { n.ev.triggerHandler(i + b, c), n.st.callbacks && (b = b.charAt(0).toLowerCase() + b.slice(1), n.st.callbacks[b] && n.st.callbacks[b].apply(n, a.isArray(c) ? c : [c])) }, z = function (b) { if (b !== v || !n.currTemplate.closeBtn) n.currTemplate.closeBtn = a(n.st.closeMarkup.replace("%title%", n.st.tClose)), v = b; return n.currTemplate.closeBtn }, A = function () { a.magnificPopup.instance || (n = new o, n.init(), a.magnificPopup.instance = n) }, B = function () { var a = document.createElement("p").style, b = ["ms", "O", "Moz", "Webkit"]; if (a.transition !== undefined) return !0; while (b.length) if (b.pop() + "Transition" in a) return !0; return !1 }; o.prototype = { constructor: o, init: function () { var b = navigator.appVersion; n.isLowIE = n.isIE8 = document.all && !document.addEventListener, n.isAndroid = /android/gi.test(b), n.isIOS = /iphone|ipad|ipod/gi.test(b), n.supportsTransition = B(), n.probablyMobile = n.isAndroid || n.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), s = a(document), n.popupsCache = {} }, open: function (b) { var c; if (b.isObj === !1) { n.items = b.items.toArray(), n.index = 0; var d = b.items, e; for (c = 0; c < d.length; c++) { e = d[c], e.parsed && (e = e.el[0]); if (e === b.el[0]) { n.index = c; break } } } else n.items = a.isArray(b.items) ? b.items : [b.items], n.index = b.index || 0; if (n.isOpen) { n.updateItemHTML(); return } n.types = [], u = "", b.mainEl && b.mainEl.length ? n.ev = b.mainEl.eq(0) : n.ev = s, b.key ? (n.popupsCache[b.key] || (n.popupsCache[b.key] = {}), n.currTemplate = n.popupsCache[b.key]) : n.currTemplate = {}, n.st = a.extend(!0, {}, a.magnificPopup.defaults, b), n.fixedContentPos = n.st.fixedContentPos === "auto" ? !n.probablyMobile : n.st.fixedContentPos, n.st.modal && (n.st.closeOnContentClick = !1, n.st.closeOnBgClick = !1, n.st.showCloseBtn = !1, n.st.enableEscapeKey = !1), n.bgOverlay || (n.bgOverlay = x("bg").on("click" + j, function () { n.close() }), n.wrap = x("wrap").attr("tabindex", -1).on("click" + j, function (a) { n._checkIfClose(a.target) && n.close() }), n.container = x("container", n.wrap)), n.contentContainer = x("content"), n.st.preloader && (n.preloader = x("preloader", n.container, n.st.tLoading)); var h = a.magnificPopup.modules; for (c = 0; c < h.length; c++) { var i = h[c]; i = i.charAt(0).toUpperCase() + i.slice(1), n["init" + i].call(n) } y("BeforeOpen"), n.st.showCloseBtn && (n.st.closeBtnInside ? (w(f, function (a, b, c, d) { c.close_replaceWith = z(d.type) }), u += " mfp-close-btn-in") : n.wrap.append(z())), n.st.alignTop && (u += " mfp-align-top"), n.fixedContentPos ? n.wrap.css({ overflow: n.st.overflowY, overflowX: "hidden", overflowY: n.st.overflowY }) : n.wrap.css({ top: r.scrollTop(), position: "absolute" }), (n.st.fixedBgPos === !1 || n.st.fixedBgPos === "auto" && !n.fixedContentPos) && n.bgOverlay.css({ height: s.height(), position: "absolute" }), n.st.enableEscapeKey && s.on("keyup" + j, function (a) { a.keyCode === 27 && n.close() }), r.on("resize" + j, function () { n.updateSize() }), n.st.closeOnContentClick || (u += " mfp-auto-cursor"), u && n.wrap.addClass(u); var l = n.wH = r.height(), m = {}; if (n.fixedContentPos && n._hasScrollBar(l)) { var o = n._getScrollbarSize(); o && (m.marginRight = o) } n.fixedContentPos && (n.isIE7 ? a("body, html").css("overflow", "hidden") : m.overflow = "hidden"); var p = n.st.mainClass; return n.isIE7 && (p += " mfp-ie7"), p && n._addClassToMFP(p), n.updateItemHTML(), y("BuildControls"), a("html").css(m), n.bgOverlay.add(n.wrap).prependTo(n.st.prependTo || a(document.body)), n._lastFocusedEl = document.activeElement, setTimeout(function () { n.content ? (n._addClassToMFP(k), n._setFocus()) : n.bgOverlay.addClass(k), s.on("focusin" + j, n._onFocusIn) }, 16), n.isOpen = !0, n.updateSize(l), y(g), b }, close: function () { if (!n.isOpen) return; y(c), n.isOpen = !1, n.st.removalDelay && !n.isLowIE && n.supportsTransition ? (n._addClassToMFP(l), setTimeout(function () { n._close() }, n.st.removalDelay)) : n._close() }, _close: function () { y(b); var c = l + " " + k + " "; n.bgOverlay.detach(), n.wrap.detach(), n.container.empty(), n.st.mainClass && (c += n.st.mainClass + " "), n._removeClassFromMFP(c); if (n.fixedContentPos) { var e = { marginRight: "" }; n.isIE7 ? a("body, html").css("overflow", "") : e.overflow = "", a("html").css(e) } s.off("keyup" + j + " focusin" + j), n.ev.off(j), n.wrap.attr("class", "mfp-wrap").removeAttr("style"), n.bgOverlay.attr("class", "mfp-bg"), n.container.attr("class", "mfp-container"), n.st.showCloseBtn && (!n.st.closeBtnInside || n.currTemplate[n.currItem.type] === !0) && n.currTemplate.closeBtn && n.currTemplate.closeBtn.detach(), n.st.autoFocusLast && n._lastFocusedEl && a(n._lastFocusedEl).focus(), n.currItem = null, n.content = null, n.currTemplate = null, n.prevHeight = 0, y(d) }, updateSize: function (a) { if (n.isIOS) { var b = document.documentElement.clientWidth / window.innerWidth, c = window.innerHeight * b; n.wrap.css("height", c), n.wH = c } else n.wH = a || r.height(); n.fixedContentPos || n.wrap.css("height", n.wH), y("Resize") }, updateItemHTML: function () { var b = n.items[n.index]; n.contentContainer.detach(), n.content && n.content.detach(), b.parsed || (b = n.parseEl(n.index)); var c = b.type; y("BeforeChange", [n.currItem ? n.currItem.type : "", c]), n.currItem = b; if (!n.currTemplate[c]) { var d = n.st[c] ? n.st[c].markup : !1; y("FirstMarkupParse", d), d ? n.currTemplate[c] = a(d) : n.currTemplate[c] = !0 } t && t !== b.type && n.container.removeClass("mfp-" + t + "-holder"); var e = n["get" + c.charAt(0).toUpperCase() + c.slice(1)](b, n.currTemplate[c]); n.appendContent(e, c), b.preloaded = !0, y(h, b), t = b.type, n.container.prepend(n.contentContainer), y("AfterChange") }, appendContent: function (a, b) { n.content = a, a ? n.st.showCloseBtn && n.st.closeBtnInside && n.currTemplate[b] === !0 ? n.content.find(".mfp-close").length || n.content.append(z()) : n.content = a : n.content = "", y(e), n.container.addClass("mfp-" + b + "-holder"), n.contentContainer.append(n.content) }, parseEl: function (b) { var c = n.items[b], d; c.tagName ? c = { el: a(c) } : (d = c.type, c = { data: c, src: c.src }); if (c.el) { var e = n.types; for (var f = 0; f < e.length; f++)if (c.el.hasClass("mfp-" + e[f])) { d = e[f]; break } c.src = c.el.attr("data-mfp-src"), c.src || (c.src = c.el.attr("href")) } return c.type = d || n.st.type || "inline", c.index = b, c.parsed = !0, n.items[b] = c, y("ElementParse", c), n.items[b] }, addGroup: function (a, b) { var c = function (c) { c.mfpEl = this, n._openClick(c, a, b) }; b || (b = {}); var d = "click.magnificPopup"; b.mainEl = a, b.items ? (b.isObj = !0, a.off(d).on(d, c)) : (b.isObj = !1, b.delegate ? a.off(d).on(d, b.delegate, c) : (b.items = a, a.off(d).on(d, c))) }, _openClick: function (b, c, d) { var e = d.midClick !== undefined ? d.midClick : a.magnificPopup.defaults.midClick; if (!e && (b.which === 2 || b.ctrlKey || b.metaKey || b.altKey || b.shiftKey)) return; var f = d.disableOn !== undefined ? d.disableOn : a.magnificPopup.defaults.disableOn; if (f) if (a.isFunction(f)) { if (!f.call(n)) return !0 } else if (r.width() < f) return !0; b.type && (b.preventDefault(), n.isOpen && b.stopPropagation()), d.el = a(b.mfpEl), d.delegate && (d.items = c.find(d.delegate)), n.open(d) }, updateStatus: function (a, b) { if (n.preloader) { q !== a && n.container.removeClass("mfp-s-" + q), !b && a === "loading" && (b = n.st.tLoading); var c = { status: a, text: b }; y("UpdateStatus", c), a = c.status, b = c.text, n.preloader.html(b), n.preloader.find("a").on("click", function (a) { a.stopImmediatePropagation() }), n.container.addClass("mfp-s-" + a), q = a } }, _checkIfClose: function (b) { if (a(b).hasClass(m)) return; var c = n.st.closeOnContentClick, d = n.st.closeOnBgClick; if (c && d) return !0; if (!n.content || a(b).hasClass("mfp-close") || n.preloader && b === n.preloader[0]) return !0; if (b !== n.content[0] && !a.contains(n.content[0], b)) { if (d && a.contains(document, b)) return !0 } else if (c) return !0; return !1 }, _addClassToMFP: function (a) { n.bgOverlay.addClass(a), n.wrap.addClass(a) }, _removeClassFromMFP: function (a) { this.bgOverlay.removeClass(a), n.wrap.removeClass(a) }, _hasScrollBar: function (a) { return (n.isIE7 ? s.height() : document.body.scrollHeight) > (a || r.height()) }, _setFocus: function () { (n.st.focus ? n.content.find(n.st.focus).eq(0) : n.wrap).focus() }, _onFocusIn: function (b) { if (b.target !== n.wrap[0] && !a.contains(n.wrap[0], b.target)) return n._setFocus(), !1 }, _parseMarkup: function (b, c, d) { var e; d.data && (c = a.extend(d.data, c)), y(f, [b, c, d]), a.each(c, function (c, d) { if (d === undefined || d === !1) return !0; e = c.split("_"); if (e.length > 1) { var f = b.find(j + "-" + e[0]); if (f.length > 0) { var g = e[1]; g === "replaceWith" ? f[0] !== d[0] && f.replaceWith(d) : g === "img" ? f.is("img") ? f.attr("src", d) : f.replaceWith(a("<img>").attr("src", d).attr("class", f.attr("class"))) : f.attr(e[1], d) } } else b.find(j + "-" + c).html(d) }) }, _getScrollbarSize: function () { if (n.scrollbarSize === undefined) { var a = document.createElement("div"); a.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(a), n.scrollbarSize = a.offsetWidth - a.clientWidth, document.body.removeChild(a) } return n.scrollbarSize } }, a.magnificPopup = { instance: null, proto: o.prototype, modules: [], open: function (b, c) { return A(), b ? b = a.extend(!0, {}, b) : b = {}, b.isObj = !0, b.index = c || 0, this.instance.open(b) }, close: function () { return a.magnificPopup.instance && a.magnificPopup.instance.close() }, registerModule: function (b, c) { c.options && (a.magnificPopup.defaults[b] = c.options), a.extend(this.proto, c.proto), this.modules.push(b) }, defaults: { disableOn: 0, key: null, midClick: !1, mainClass: "", preloader: !0, focus: "", closeOnContentClick: !1, closeOnBgClick: !0, closeBtnInside: !0, showCloseBtn: !0, enableEscapeKey: !0, modal: !1, alignTop: !1, removalDelay: 0, prependTo: null, fixedContentPos: "auto", fixedBgPos: "auto", overflowY: "auto", closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>', tClose: "Close (Esc)", tLoading: "Loading...", autoFocusLast: !0 } }, a.fn.magnificPopup = function (b) { A(); var c = a(this); if (typeof b == "string") if (b === "open") { var d, e = p ? c.data("magnificPopup") : c[0].magnificPopup, f = parseInt(arguments[1], 10) || 0; e.items ? d = e.items[f] : (d = c, e.delegate && (d = d.find(e.delegate)), d = d.eq(f)), n._openClick({ mfpEl: d }, c, e) } else n.isOpen && n[b].apply(n, Array.prototype.slice.call(arguments, 1)); else b = a.extend(!0, {}, b), p ? c.data("magnificPopup", b) : c[0].magnificPopup = b, n.addGroup(c, b); return c }; var C = "inline", D, E, F, G = function () { F && (E.after(F.addClass(D)).detach(), F = null) }; a.magnificPopup.registerModule(C, { options: { hiddenClass: "hide", markup: "", tNotFound: "Content not found" }, proto: { initInline: function () { n.types.push(C), w(b + "." + C, function () { G() }) }, getInline: function (b, c) { G(); if (b.src) { var d = n.st.inline, e = a(b.src); if (e.length) { var f = e[0].parentNode; f && f.tagName && (E || (D = d.hiddenClass, E = x(D), D = "mfp-" + D), F = e.after(E).detach().removeClass(D)), n.updateStatus("ready") } else n.updateStatus("error", d.tNotFound), e = a("<div>"); return b.inlineElement = e, e } return n.updateStatus("ready"), n._parseMarkup(c, {}, b), c } } }); var H, I = function (b) { if (b.data && b.data.title !== undefined) return b.data.title; var c = n.st.image.titleSrc; if (c) { if (a.isFunction(c)) return c.call(n, b); if (b.el) return b.el.attr(c) || "" } return "" }; a.magnificPopup.registerModule("image", { options: { markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>', cursor: "mfp-zoom-out-cur", titleSrc: "title", verticalFit: !0, tError: '<a href="%url%">The image</a> could not be loaded.' }, proto: { initImage: function () { var c = n.st.image, d = ".image"; n.types.push("image"), w(g + d, function () { n.currItem.type === "image" && c.cursor && a(document.body).addClass(c.cursor) }), w(b + d, function () { c.cursor && a(document.body).removeClass(c.cursor), r.off("resize" + j) }), w("Resize" + d, n.resizeImage), n.isLowIE && w("AfterChange", n.resizeImage) }, resizeImage: function () { var a = n.currItem; if (!a || !a.img) return; if (n.st.image.verticalFit) { var b = 0; n.isLowIE && (b = parseInt(a.img.css("padding-top"), 10) + parseInt(a.img.css("padding-bottom"), 10)), a.img.css("max-height", n.wH - b) } }, _onImageHasSize: function (a) { a.img && (a.hasSize = !0, H && clearInterval(H), a.isCheckingImgSize = !1, y("ImageHasSize", a), a.imgHidden && (n.content && n.content.removeClass("mfp-loading"), a.imgHidden = !1)) }, findImageSize: function (a) { var b = 0, c = a.img[0], d = function (e) { H && clearInterval(H), H = setInterval(function () { if (c.naturalWidth > 0) { n._onImageHasSize(a); return } b > 200 && clearInterval(H), b++, b === 3 ? d(10) : b === 40 ? d(50) : b === 100 && d(500) }, e) }; d(1) }, getImage: function (b, c) { var d = 0, e = function () { b && (b.img[0].complete ? (b.img.off(".mfploader"), b === n.currItem && (n._onImageHasSize(b), n.updateStatus("ready")), b.hasSize = !0, b.loaded = !0, y("ImageLoadComplete")) : (d++, d < 200 ? setTimeout(e, 100) : f())) }, f = function () { b && (b.img.off(".mfploader"), b === n.currItem && (n._onImageHasSize(b), n.updateStatus("error", g.tError.replace("%url%", b.src))), b.hasSize = !0, b.loaded = !0, b.loadError = !0) }, g = n.st.image, h = c.find(".mfp-img"); if (h.length) { var i = document.createElement("img"); i.className = "mfp-img", b.el && b.el.find("img").length && (i.alt = b.el.find("img").attr("alt")), b.img = a(i).on("load.mfploader", e).on("error.mfploader", f), i.src = b.src, h.is("img") && (b.img = b.img.clone()), i = b.img[0], i.naturalWidth > 0 ? b.hasSize = !0 : i.width || (b.hasSize = !1) } return n._parseMarkup(c, { title: I(b), img_replaceWith: b.img }, b), n.resizeImage(), b.hasSize ? (H && clearInterval(H), b.loadError ? (c.addClass("mfp-loading"), n.updateStatus("error", g.tError.replace("%url%", b.src))) : (c.removeClass("mfp-loading"), n.updateStatus("ready")), c) : (n.updateStatus("loading"), b.loading = !0, b.hasSize || (b.imgHidden = !0, c.addClass("mfp-loading"), n.findImageSize(b)), c) } } }); var J, K = function () { return J === undefined && (J = document.createElement("p").style.MozTransform !== undefined), J }; a.magnificPopup.registerModule("zoom", { options: { enabled: !1, easing: "ease-in-out", duration: 300, opener: function (a) { return a.is("img") ? a : a.find("img") } }, proto: { initZoom: function () { var a = n.st.zoom, d = ".zoom", e; if (!a.enabled || !n.supportsTransition) return; var f = a.duration, g = function (b) { var c = b.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), d = "all " + a.duration / 1e3 + "s " + a.easing, e = { position: "fixed", zIndex: 9999, left: 0, top: 0, "-webkit-backface-visibility": "hidden" }, f = "transition"; return e["-webkit-" + f] = e["-moz-" + f] = e["-o-" + f] = e[f] = d, c.css(e), c }, h = function () { n.content.css("visibility", "visible") }, i, j; w("BuildControls" + d, function () { if (n._allowZoom()) { clearTimeout(i), n.content.css("visibility", "hidden"), e = n._getItemToZoom(); if (!e) { h(); return } j = g(e), j.css(n._getOffset()), n.wrap.append(j), i = setTimeout(function () { j.css(n._getOffset(!0)), i = setTimeout(function () { h(), setTimeout(function () { j.remove(), e = j = null, y("ZoomAnimationEnded") }, 16) }, f) }, 16) } }), w(c + d, function () { if (n._allowZoom()) { clearTimeout(i), n.st.removalDelay = f; if (!e) { e = n._getItemToZoom(); if (!e) return; j = g(e) } j.css(n._getOffset(!0)), n.wrap.append(j), n.content.css("visibility", "hidden"), setTimeout(function () { j.css(n._getOffset()) }, 16) } }), w(b + d, function () { n._allowZoom() && (h(), j && j.remove(), e = null) }) }, _allowZoom: function () { return n.currItem.type === "image" }, _getItemToZoom: function () { return n.currItem.hasSize ? n.currItem.img : !1 }, _getOffset: function (b) { var c; b ? c = n.currItem.img : c = n.st.zoom.opener(n.currItem.el || n.currItem); var d = c.offset(), e = parseInt(c.css("padding-top"), 10), f = parseInt(c.css("padding-bottom"), 10); d.top -= a(window).scrollTop() - e; var g = { width: c.width(), height: (p ? c.innerHeight() : c[0].offsetHeight) - f - e }; return K() ? g["-moz-transform"] = g.transform = "translate(" + d.left + "px," + d.top + "px)" : (g.left = d.left, g.top = d.top), g } } }); var L = function (a) { var b = n.items.length; return a > b - 1 ? a - b : a < 0 ? b + a : a }, M = function (a, b, c) { return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c) }; a.magnificPopup.registerModule("gallery", { options: { enabled: !1, arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', preload: [0, 2], navigateByImgClick: !0, arrows: !0, tPrev: "Previous (Left arrow key)", tNext: "Next (Right arrow key)", tCounter: "%curr% of %total%" }, proto: { initGallery: function () { var c = n.st.gallery, d = ".mfp-gallery"; n.direction = !0; if (!c || !c.enabled) return !1; u += " mfp-gallery", w(g + d, function () { c.navigateByImgClick && n.wrap.on("click" + d, ".mfp-img", function () { if (n.items.length > 1) return n.next(), !1 }), s.on("keydown" + d, function (a) { a.keyCode === 37 ? n.prev() : a.keyCode === 39 && n.next() }) }), w("UpdateStatus" + d, function (a, b) { b.text && (b.text = M(b.text, n.currItem.index, n.items.length)) }), w(f + d, function (a, b, d, e) { var f = n.items.length; d.counter = f > 1 ? M(c.tCounter, e.index, f) : "" }), w("BuildControls" + d, function () { if (n.items.length > 1 && c.arrows && !n.arrowLeft) { var b = c.arrowMarkup, d = n.arrowLeft = a(b.replace(/%title%/gi, c.tPrev).replace(/%dir%/gi, "left")).addClass(m), e = n.arrowRight = a(b.replace(/%title%/gi, c.tNext).replace(/%dir%/gi, "right")).addClass(m); d.click(function () { n.prev() }), e.click(function () { n.next() }), n.container.append(d.add(e)) } }), w(h + d, function () { n._preloadTimeout && clearTimeout(n._preloadTimeout), n._preloadTimeout = setTimeout(function () { n.preloadNearbyImages(), n._preloadTimeout = null }, 16) }), w(b + d, function () { s.off(d), n.wrap.off("click" + d), n.arrowRight = n.arrowLeft = null }) }, next: function () { n.direction = !0, n.index = L(n.index + 1), n.updateItemHTML() }, prev: function () { n.direction = !1, n.index = L(n.index - 1), n.updateItemHTML() }, goTo: function (a) { n.direction = a >= n.index, n.index = a, n.updateItemHTML() }, preloadNearbyImages: function () { var a = n.st.gallery.preload, b = Math.min(a[0], n.items.length), c = Math.min(a[1], n.items.length), d; for (d = 1; d <= (n.direction ? c : b); d++)n._preloadItem(n.index + d); for (d = 1; d <= (n.direction ? b : c); d++)n._preloadItem(n.index - d) }, _preloadItem: function (b) { b = L(b); if (n.items[b].preloaded) return; var c = n.items[b]; c.parsed || (c = n.parseEl(b)), y("LazyLoad", c), c.type === "image" && (c.img = a('<img class="mfp-img" />').on("load.mfploader", function () { c.hasSize = !0 }).on("error.mfploader", function () { c.hasSize = !0, c.loadError = !0, y("LazyLoadError", c) }).attr("src", c.src)), c.preloaded = !0 } } }); var N = "retina"; a.magnificPopup.registerModule(N, { options: { replaceSrc: function (a) { return a.src.replace(/\.\w+$/, function (a) { return "@2x" + a }) }, ratio: 1 }, proto: { initRetina: function () { if (window.devicePixelRatio > 1) { var a = n.st.retina, b = a.ratio; b = isNaN(b) ? b() : b, b > 1 && (w("ImageHasSize." + N, function (a, c) { c.img.css({ "max-width": c.img[0].naturalWidth / b, width: "100%" }) }), w("ElementParse." + N, function (c, d) { d.src = a.replaceSrc(d, b) })) } } } }), A() });
//  ====================================================================================
//  Metro Notifications v7
//  Author: Klerith
//  Source Page: http://codecanyon.net/item/metro-notifications/3903495
//  Support Page: http://codecanyon.net/user/klerith
// 
//  Thank you for supporting my code. 
//  Remember, on production servers, I recommend you to use MetroNotifications.min.js
//  Because is smaller thatn this file.
//  ====================================================================================

(function ($) {

    // Tweenlite
    (window._gsQueue||(window._gsQueue=[])).push(function(){_gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a){"use strict";var d,e,f,g,c=function(){a.call(this,"css"),this._overwriteProps.length=0},h={},i=c.prototype=new a("css");i.constructor=c,c.version="1.8.0",c.API=2,c.defaultTransformPerspective=0,i="px",c.suffixMap={top:i,right:i,bottom:i,left:i,width:i,height:i,fontSize:i,padding:i,margin:i,perspective:i};var G,H,I,J,K,L,j=/(?:\d|\-\d|\.\d|\-\.\d)+/g,k=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,l=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,m=/[^\d\-\.]/g,n=/(?:\d|\-|\+|=|#|\.)*/g,o=/opacity *= *([^)]*)/,p=/opacity:([^;]*)/,q=/alpha\(opacity *=.+?\)/i,r=/([A-Z])/g,s=/-([a-z])/gi,t=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,u=function(a,b){return b.toUpperCase()},v=/(?:Left|Right|Width)/i,w=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,x=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,y=Math.PI/180,z=180/Math.PI,A={},B=document,C=B.createElement("div"),D=B.createElement("img"),E=c._internals={_specialProps:h},F=navigator.userAgent,M=function(){var c,a=F.indexOf("Android"),b=B.createElement("div");return I=-1!==F.indexOf("Safari")&&-1===F.indexOf("Chrome")&&(-1===a||Number(F.substr(a+8,1))>3),K=I&&6>Number(F.substr(F.indexOf("Version/")+8,1)),J=-1!==F.indexOf("Firefox"),/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(F),L=parseFloat(RegExp.$1),b.innerHTML="<a style='top:1px;opacity:.55;'>a</a>",c=b.getElementsByTagName("a")[0],c?/^0.55/.test(c.style.opacity):!1}(),N=function(a){return o.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},O=function(a){window.console&&console.log(a)},P="",Q="",R=function(a,b){b=b||C;var d,e,c=b.style;if(void 0!==c[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),d=["O","Moz","ms","Ms","Webkit"],e=5;--e>-1&&void 0===c[d[e]+a];);return e>=0?(Q=3===e?"ms":d[e],P="-"+Q.toLowerCase()+"-",Q+a):null},S=B.defaultView?B.defaultView.getComputedStyle:function(){},T=c.getStyle=function(a,b,c,d,e){var f;return M||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||S(a,null))?(a=c.getPropertyValue(b.replace(r,"-$1").toLowerCase()),f=a||c.length?a:c[b]):a.currentStyle&&(c=a.currentStyle,f=c[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):N(a)},U=function(a,b,c){var f,g,d={},e=a._gsOverwrittenClassNamePT;if(e&&!c){for(;e;)e.setRatio(0),e=e._next;a._gsOverwrittenClassNamePT=null}if(b=b||S(a,null))if(f=b.length)for(;--f>-1;)d[b[f].replace(s,u)]=b.getPropertyValue(b[f]);else for(f in b)d[f]=b[f];else if(b=a.currentStyle||a.style)for(f in b)d[f.replace(s,u)]=b[f];return M||(d.opacity=N(a)),g=wb(a,b,!1),d.rotation=g.rotation*z,d.skewX=g.skewX*z,d.scaleX=g.scaleX,d.scaleY=g.scaleY,d.x=g.x,d.y=g.y,vb&&(d.z=g.z,d.rotationX=g.rotationX*z,d.rotationY=g.rotationY*z,d.scaleZ=g.scaleZ),d.filters&&delete d.filters,d},V=function(a,b,c,d){var g,h,i,e={},f=a.style;for(h in c)"cssText"!==h&&"length"!==h&&isNaN(h)&&b[h]!==(g=c[h])&&-1===h.indexOf("Origin")&&("number"==typeof g||"string"==typeof g)&&(e[h]=""!==g&&"auto"!==g&&"none"!==g||"string"!=typeof b[h]||""===b[h].replace(m,"")?g:0,void 0!==f[h]&&(i=new jb(f,h,f[h],i)));if(d)for(h in d)"className"!==h&&(e[h]=d[h]);return{difs:e,firstMPT:i}},W={width:["Left","Right"],height:["Top","Bottom"]},X=["marginLeft","marginRight","marginTop","marginBottom"],Y=function(a,b,c){var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=W[b],f=e.length;for(c=c||S(a,null);--f>-1;)d-=parseFloat(T(a,"padding"+e[f],c,!0))||0,d-=parseFloat(T(a,"border"+e[f]+"Width",c,!0))||0;return d},Z=function(a,b,c,d,e){if("px"===d||!d)return c;if("auto"===d||!c)return 0;var j,f=v.test(b),g=a,h=C.style,i=0>c;return i&&(c=-c),"%"===d&&-1!==b.indexOf("border")?j=c/100*(f?a.clientWidth:a.clientHeight):(h.cssText="border-style:solid; border-width:0; position:absolute; line-height:0;","%"!==d&&"em"!==d&&g.appendChild?h[f?"borderLeftWidth":"borderTopWidth"]=c+d:(g=a.parentNode||B.body,h[f?"width":"height"]=c+d),g.appendChild(C),j=parseFloat(C[f?"offsetWidth":"offsetHeight"]),g.removeChild(C),0!==j||e||(j=Z(a,b,c,d,!0))),i?-j:j},$=function(a,b){(null==a||""===a||"auto"===a||"auto auto"===a)&&(a="0 0");var c=a.split(" "),d=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":c[0],e=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":c[1];return null==e?e="0":"center"===e&&(e="50%"),("center"===d||isNaN(parseFloat(d)))&&(d="50%"),b&&(b.oxp=-1!==d.indexOf("%"),b.oyp=-1!==e.indexOf("%"),b.oxr="="===d.charAt(1),b.oyr="="===e.charAt(1),b.ox=parseFloat(d.replace(m,"")),b.oy=parseFloat(e.replace(m,""))),d+" "+e+(c.length>2?" "+c[2]:"")},_=function(a,b){return"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)},ab=function(a,b){return null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*Number(a.substr(2))+b:parseFloat(a)},bb=function(a,b){if(null==a)return b;var c=-1===a.indexOf("rad")?y:1,d="="===a.charAt(1);return a=Number(a.replace(m,""))*c,d?a+b:a},cb=function(a,b){var c="number"==typeof a?a*y:bb(a,b),d=(c-b)%(2*Math.PI);return d!==d%Math.PI&&(d+=Math.PI*(0>d?2:-2)),b+d},db={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},eb=function(a){if(!a||""===a)return db.black;if(db[a])return db[a];if("number"==typeof a)return[a>>16,255&a>>8,255&a];if("#"===a.charAt(0)){if(4===a.length){var b=a.charAt(1),c=a.charAt(2),d=a.charAt(3);a="#"+b+b+c+c+d+d}return a=parseInt(a.substr(1),16),[a>>16,255&a>>8,255&a]}return a=a.match(j)||db.transparent,a[0]=Number(a[0]),a[1]=Number(a[1]),a[2]=Number(a[2]),a.length>3&&(a[3]=Number(a[3])),a},fb="(?:\\b(?:(?:rgb|rgba)\\(.+?\\))|\\B#.+?\\b";for(i in db)fb+="|"+i+"\\b";fb=RegExp(fb+")","gi");var gb=function(a,b,c){if(null==a)return function(a){return a};var d=b?(a.match(fb)||[""])[0]:"",e=a.split(d).join("").match(l)||[],f=a.substr(0,a.indexOf(e[0])),g=")"===a.charAt(a.length-1)?")":"",h=-1!==a.indexOf(" ")?" ":",",i=e.length,k=i>0?e[0].replace(j,""):"";return b?function(a){"number"==typeof a&&(a+=k);var b=(a.match(fb)||[d])[0],j=a.split(b).join("").match(l)||[],m=j.length;if(i>m--)for(;i>++m;)j[m]=c?j[(m-1)/2>>0]:e[m];return f+j.join(h)+h+b+g}:function(a){"number"==typeof a&&(a+=k);var b=a.match(l)||[],d=b.length;if(i>d--)for(;i>++d;)b[d]=c?b[(d-1)/2>>0]:e[d];return f+b.join(h)+g}},hb=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var j,i=(c+"").split(" ");for(h={},j=0;4>j;j++)h[a[j]]=i[j]=i[j]||i[(j-1)/2>>0];return e.parse(b,h,f,g)}},jb=(E._setPluginRatio=function(a){this.plugin.setRatio(a);for(var f,g,h,i,b=this.data,c=b.proxy,d=b.firstMPT,e=1e-6;d;)f=c[d.v],d.r?f=f>0?f+.5>>0:f-.5>>0:e>f&&f>-e&&(f=0),d.t[d.p]=f,d=d._next;if(b.autoRotate&&(b.autoRotate.rotation=c.rotation),1===a)for(d=b.firstMPT;d;){if(g=d.t,g.type){if(1===g.type){for(i=g.xs0+g.s+g.xs1,h=1;g.l>h;h++)i+=g["xn"+h]+g["xs"+(h+1)];g.e=i}}else g.e=g.s+g.xs0;d=d._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),lb=(E._parseToProxy=function(a,b,c,d,e,f){var l,m,n,o,p,g=d,h={},i={},j=c._transform,k=A;for(c._transform=null,A=b,d=p=c.parse(a,b,d,e),A=k,f&&(c._transform=j,g&&(g._prev=null,g._prev&&(g._prev._next=null)));d&&d!==g;){if(1>=d.type&&(m=d.p,i[m]=d.s+d.c,h[m]=d.s,f||(o=new jb(d,"s",m,o,d.r),d.c=0),1===d.type))for(l=d.l;--l>0;)n="xn"+l,m=d.p+"_"+n,i[m]=d.data[n],h[m]=d[n],f||(o=new jb(d,n,m,o,d.rxp[n]));d=d._next}return{proxy:h,end:i,firstMPT:o,pt:p}},E.CSSPropTween=function(a,b,c,e,f,h,i,j,k,l,m){this.t=a,this.p=b,this.s=c,this.c=e,this.n=i||"css_"+b,a instanceof lb||g.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,d=!0),this.b=void 0===l?c:l,this.e=void 0===m?c+e:m,f&&(this._next=f,f._prev=this)}),mb=c.parseComplex=function(a,b,c,d,e,f,g,h,i,l){g=new lb(a,b,0,0,g,l?2:1,null,!1,h,c,d);var q,r,s,t,u,v,w,x,y,z,A,B,m=c.split(", ").join(",").split(" "),n=(d+"").split(", ").join(",").split(" "),o=m.length,p=G!==!1;for(o!==n.length&&(m=(f||"").split(" "),o=m.length),g.plugin=i,g.setRatio=l,q=0;o>q;q++)if(t=m[q],u=n[q],x=parseFloat(t),x||0===x)g.appendXtra("",x,_(u,x),u.replace(k,""),p&&-1!==u.indexOf("px"),!0);else if(e&&("#"===t.charAt(0)||0===t.indexOf("rgb")||db[t]))t=eb(t),u=eb(u),y=t.length+u.length>6,y&&!M&&0===u[3]?(g["xs"+g.l]+=g.l?" transparent":"transparent",g.e=g.e.split(n[q]).join("transparent")):(M||(y=!1),g.appendXtra(y?"rgba(":"rgb(",t[0],u[0]-t[0],",",!0,!0).appendXtra("",t[1],u[1]-t[1],",",!0).appendXtra("",t[2],u[2]-t[2],y?",":")",!0),y&&(t=4>t.length?1:t[3],g.appendXtra("",t,(4>u.length?1:u[3])-t,")",!1)));else if(v=t.match(j)){if(w=u.match(k),!w||w.length!==v.length)return g;for(s=0,r=0;v.length>r;r++)A=v[r],z=t.indexOf(A,s),g.appendXtra(t.substr(s,z-s),Number(A),_(w[r],A),"",p&&"px"===t.substr(z+A.length,2),0===r),s=z+A.length;g["xs"+g.l]+=t.substr(s)}else g["xs"+g.l]+=g.l?" "+t:t;if(-1!==d.indexOf("=")&&g.data){for(B=g.xs0+g.data.s,q=1;g.l>q;q++)B+=g["xs"+q]+g.data["xn"+q];g.e=B+g["xs"+q]}return g.l||(g.type=-1,g.xs0=g.e),g.xfirst||g},nb=9;for(i=lb.prototype,i.l=i.pr=0;--nb>0;)i["xn"+nb]=0,i["xs"+nb]="";i.xs0="",i._next=i._prev=i.xfirst=i.data=i.plugin=i.setRatio=i.rxp=null,i.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&h?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new lb(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var ob=function(a,b,c,d,e,f,g){this.p=d?R(a)||a:a,h[a]=h[this.p]=this,this.format=f||gb(b,e),c&&(this.parse=c),this.clrs=e,this.dflt=b,this.pr=g||0},pb=E._registerComplexSpecialProp=function(a,b,c,d,e,f,g){for(var k,h=a.split(","),i=b instanceof Array?b:[b],j=h.length;--j>-1;)k=new ob(h[j],i[j],c,d&&0===j,e,f,g)},qb=function(a){if(!h[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";pb(a,null,function(a,c,d,e,f,g,i){var j=(window.GreenSockGlobals||window).com.greensock.plugins[b];return j?(j._cssRegister(),h[d].parse(a,c,d,e,f,g,i)):(O("Error: "+b+" js file not loaded."),f)})}};i=ob.prototype,i.parseComplex=function(a,b,c,d,e,f){return mb(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},i.parse=function(a,b,c,d,e,g){return this.parseComplex(a.style,this.format(T(a,c,f,!1,this.dflt)),this.format(b),e,g)},c.registerSpecialProp=function(a,b,c){pb(a,null,function(a,d,e,f,g,h){var j=new lb(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},!1,!1,null,c)};var rb=["scaleX","scaleY","scaleZ","x","y","z","skewX","rotation","rotationX","rotationY","perspective"],sb=R("transform"),tb=P+"transform",ub=R("transformOrigin"),vb=null!==R("perspective"),wb=function(a,b,d){var l,m,n,o,p,q,r,s,t,u,v,x,e=d?a._gsTransform||{skewY:0}:{skewY:0},f=0>e.scaleX,g=2e-5,h=1e5,i=-Math.PI+1e-4,j=Math.PI-1e-4,k=vb?parseFloat(T(a,ub,b,!1,"0 0 0").split(" ")[2])||e.zOrigin||0:0;for(sb?l=T(a,tb,b,!0):a.currentStyle&&(l=a.currentStyle.filter.match(w),l=l&&4===l.length?l[0].substr(4)+","+Number(l[2].substr(4))+","+Number(l[1].substr(4))+","+l[3].substr(4)+","+(e?e.x:0)+","+(e?e.y:0):null),m=(l||"").match(/(?:\-|\b)[\d\-\.e]+\b/gi)||[],n=m.length;--n>-1;)o=Number(m[n]),m[n]=(o*h+(0>o?-.5:.5)>>0)/h;if(16===m.length){var y=m[8],z=m[9],A=m[10],B=m[12],C=m[13],D=m[14];if(e.zOrigin&&(D=-e.zOrigin,B=y*D-m[12],C=z*D-m[13],D=A*D+e.zOrigin-m[14]),!d||B!==e.x||C!==e.y||D!==e.z){var P,Q,R,S,U,V,W,X,E=m[0],F=m[1],G=m[2],H=m[3],I=m[4],J=m[5],K=m[6],L=m[7],M=m[11],N=e.rotationX=Math.atan2(K,A),O=i>N||N>j;N&&(U=Math.cos(-N),V=Math.sin(-N),P=I*U+y*V,Q=J*U+z*V,R=K*U+A*V,S=L*U+M*V,y=I*-V+y*U,z=J*-V+z*U,A=K*-V+A*U,M=L*-V+M*U,I=P,J=Q,K=R),N=e.rotationY=Math.atan2(y,E),N&&(W=i>N||N>j,U=Math.cos(-N),V=Math.sin(-N),P=E*U-y*V,Q=F*U-z*V,R=G*U-A*V,S=H*U-M*V,z=F*V+z*U,A=G*V+A*U,M=H*V+M*U,E=P,F=Q,G=R),N=e.rotation=Math.atan2(F,J),N&&(X=i>N||N>j,U=Math.cos(-N),V=Math.sin(-N),E=E*U+I*V,Q=F*U+J*V,J=F*-V+J*U,K=G*-V+K*U,F=Q),X&&O?e.rotation=e.rotationX=0:X&&W?e.rotation=e.rotationY=0:W&&O&&(e.rotationY=e.rotationX=0),e.scaleX=(Math.sqrt(E*E+F*F)*h+.5>>0)/h,e.scaleY=(Math.sqrt(J*J+z*z)*h+.5>>0)/h,e.scaleZ=(Math.sqrt(K*K+A*A)*h+.5>>0)/h,e.skewX=0,e.perspective=M?1/M:0,e.x=B,e.y=C,e.z=D}}else if(!vb||0===m.length||e.x!==m[4]||e.y!==m[5]||!e.rotationX&&!e.rotationY){var Y=m.length>=6,Z=Y?m[0]:1,$=m[1]||0,_=m[2]||0,ab=Y?m[3]:1;e.x=m[4]||0,e.y=m[5]||0,p=Math.sqrt(Z*Z+$*$),q=Math.sqrt(ab*ab+_*_),r=Z||$?Math.atan2($,Z):e.rotation||0,s=_||ab?Math.atan2(_,ab)+r:e.skewX||0,t=p-Math.abs(e.scaleX||0),u=q-Math.abs(e.scaleY||0),Math.abs(s)>Math.PI/2&&Math.abs(s)<1.5*Math.PI&&(f?(p*=-1,s+=0>=r?Math.PI:-Math.PI,r+=0>=r?Math.PI:-Math.PI):(q*=-1,s+=0>=s?Math.PI:-Math.PI)),v=(r-e.rotation)%Math.PI,x=(s-e.skewX)%Math.PI,(void 0===e.skewX||t>g||-g>t||u>g||-g>u||v>i&&j>v&&0!==v*h>>0||x>i&&j>x&&0!==x*h>>0)&&(e.scaleX=p,e.scaleY=q,e.rotation=r,e.skewX=s),vb&&(e.rotationX=e.rotationY=e.z=0,e.perspective=parseFloat(c.defaultTransformPerspective)||0,e.scaleZ=1)}e.zOrigin=k;for(n in e)g>e[n]&&e[n]>-g&&(e[n]=0);return d&&(a._gsTransform=e),e},xb=function(a){var l,m,b=this.data,c=-b.rotation,d=c+b.skewX,e=1e5,f=(Math.cos(c)*b.scaleX*e>>0)/e,g=(Math.sin(c)*b.scaleX*e>>0)/e,h=(Math.sin(d)*-b.scaleY*e>>0)/e,i=(Math.cos(d)*b.scaleY*e>>0)/e,j=this.t.style,k=this.t.currentStyle;if(k){m=g,g=-h,h=-m,l=k.filter,j.filter="";var v,w,p=this.t.offsetWidth,q=this.t.offsetHeight,r="absolute"!==k.position,s="progid:DXImageTransform.Microsoft.Matrix(M11="+f+", M12="+g+", M21="+h+", M22="+i,t=b.x,u=b.y;if(null!=b.ox&&(v=(b.oxp?.01*p*b.ox:b.ox)-p/2,w=(b.oyp?.01*q*b.oy:b.oy)-q/2,t+=v-(v*f+w*g),u+=w-(v*h+w*i)),r)v=p/2,w=q/2,s+=", Dx="+(v-(v*f+w*g)+t)+", Dy="+(w-(v*h+w*i)+u)+")";else{var z,A,B,y=8>L?1:-1;for(v=b.ieOffsetX||0,w=b.ieOffsetY||0,b.ieOffsetX=Math.round((p-((0>f?-f:f)*p+(0>g?-g:g)*q))/2+t),b.ieOffsetY=Math.round((q-((0>i?-i:i)*q+(0>h?-h:h)*p))/2+u),nb=0;4>nb;nb++)A=X[nb],z=k[A],m=-1!==z.indexOf("px")?parseFloat(z):Z(this.t,A,parseFloat(z),z.replace(n,""))||0,B=m!==b[A]?2>nb?-b.ieOffsetX:-b.ieOffsetY:2>nb?v-b.ieOffsetX:w-b.ieOffsetY,j[A]=(b[A]=Math.round(m-B*(0===nb||2===nb?1:y)))+"px";s+=", sizingMethod='auto expand')"}j.filter=-1!==l.indexOf("DXImageTransform.Microsoft.Matrix(")?l.replace(x,s):s+" "+l,(0===a||1===a)&&1===f&&0===g&&0===h&&1===i&&(r&&-1===s.indexOf("Dx=0, Dy=0")||o.test(l)&&100!==parseFloat(RegExp.$1)||-1===l.indexOf("gradient(")&&j.removeAttribute("filter"))}},yb=function(){var x,y,z,A,B,C,D,E,F,b=this.data,c=this.t.style,d=b.perspective,e=b.scaleX,f=0,g=0,h=0,i=0,j=b.scaleY,k=0,l=0,m=0,n=0,o=b.scaleZ,p=0,q=0,r=0,s=d?-1/d:0,t=b.rotation,u=b.zOrigin,v=",",w=1e5;J&&(D=T(this.t,"top",null,!1,"0"),E=parseFloat(D)||0,F=D.substr((E+"").length),b._ffFix=!b._ffFix,c.top=(b._ffFix?E+.05:E-.05)+(""===F?"px":F)),t&&(x=Math.cos(t),y=Math.sin(t),z=e*x,A=j*y,f=e*-y,j*=x,e=z,i=A),t=b.rotationY,t&&(x=Math.cos(t),y=Math.sin(t),z=e*x,A=i*x,B=o*-y,C=s*-y,g=e*y,k=i*y,o*=x,s*=x,e=z,i=A,m=B,q=C),t=b.rotationX,t&&(x=Math.cos(t),y=Math.sin(t),z=f*x+g*y,A=j*x+k*y,B=n*x+o*y,C=r*x+s*y,g=f*-y+g*x,k=j*-y+k*x,o=n*-y+o*x,s=r*-y+s*x,f=z,j=A,n=B,r=C),u&&(p-=u,h=g*p,l=k*p,p=o*p+u),h+=b.x,l+=b.y,p=((p+b.z)*w>>0)/w,c[sb]="matrix3d("+(e*w>>0)/w+v+(i*w>>0)/w+v+(m*w>>0)/w+v+(q*w>>0)/w+v+(f*w>>0)/w+v+(j*w>>0)/w+v+(n*w>>0)/w+v+(r*w>>0)/w+v+(g*w>>0)/w+v+(k*w>>0)/w+v+(o*w>>0)/w+v+(s*w>>0)/w+v+(h*w>>0)/w+v+(l*w>>0)/w+v+p+v+(d?1+-p/d:1)+")"},zb=function(){var d,e,f,g,h,i,j,k,b=this.data,c=this.t;J&&(d=T(c,"top",null,!1,"0"),e=parseFloat(d)||0,f=d.substr((e+"").length),b._ffFix=!b._ffFix,c.style.top=(b._ffFix?e+.05:e-.05)+(""===f?"px":f)),b.rotation||b.skewX?(g=b.rotation,h=g-b.skewX,i=1e5,j=b.scaleX*i,k=b.scaleY*i,c.style[sb]="matrix("+(Math.cos(g)*j>>0)/i+","+(Math.sin(g)*j>>0)/i+","+(Math.sin(h)*-k>>0)/i+","+(Math.cos(h)*k>>0)/i+","+b.x+","+b.y+")"):c.style[sb]="matrix("+b.scaleX+",0,0,"+b.scaleY+","+b.x+","+b.y+")"};pb("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective",null,function(a,b,c,d,e,g,h){if(d._transform)return e;var n,o,p,q,r,s,t,i=d._transform=wb(a,f,!0),j=a.style,k=1e-6,l=rb.length,m=h;for("string"==typeof m.transform&&sb?(q=j[sb],j[sb]=m.transform,n=wb(a,null,!1),j[sb]=q):"object"==typeof m&&(o=null!=m.rotation?m.rotation:null!=m.rotationZ?m.rotationZ:i.rotation*z,n={scaleX:ab(null!=m.scaleX?m.scaleX:m.scale,i.scaleX),scaleY:ab(null!=m.scaleY?m.scaleY:m.scale,i.scaleY),scaleZ:ab(null!=m.scaleZ?m.scaleZ:m.scale,i.scaleZ),x:ab(m.x,i.x),y:ab(m.y,i.y),z:ab(m.z,i.z),perspective:ab(m.transformPerspective,i.perspective)},n.rotation=null!=m.shortRotation||null!=m.shortRotationZ?cb(m.shortRotation||m.shortRotationZ||0,i.rotation):"number"==typeof o?o*y:bb(o,i.rotation),vb&&(n.rotationX=null!=m.shortRotationX?cb(m.shortRotationX,i.rotationX):"number"==typeof m.rotationX?m.rotationX*y:bb(m.rotationX,i.rotationX),n.rotationY=null!=m.shortRotationY?cb(m.shortRotationY,i.rotationY):"number"==typeof m.rotationY?m.rotationY*y:bb(m.rotationY,i.rotationY),k>n.rotationX&&n.rotationX>-k&&(n.rotationX=0),k>n.rotationY&&n.rotationY>-k&&(n.rotationY=0)),n.skewX=null==m.skewX?i.skewX:"number"==typeof m.skewX?m.skewX*y:bb(m.skewX,i.skewX),n.skewY=null==m.skewY?i.skewY:"number"==typeof m.skewY?m.skewY*y:bb(m.skewY,i.skewY),(p=n.skewY-i.skewY)&&(n.skewX+=p,n.rotation+=p),k>n.skewY&&n.skewY>-k&&(n.skewY=0),k>n.skewX&&n.skewX>-k&&(n.skewX=0),k>n.rotation&&n.rotation>-k&&(n.rotation=0)),s=i.z||i.rotationX||i.rotationY||n.z||n.rotationX||n.rotationY||n.perspective,s||null==n.scale||(n.scaleZ=1);--l>-1;)c=rb[l],r=n[c]-i[c],(r>k||-k>r||null!=A[c])&&(t=!0,e=new lb(i,c,i[c],r,e),e.xs0=0,e.plugin=g,d._overwriteProps.push(e.n));return r=m.transformOrigin,(r||vb&&s&&i.zOrigin)&&(sb?(t=!0,r=(r||T(a,c,f,!1,"50% 50%"))+"",c=ub,e=new lb(j,c,0,0,e,-1,"css_transformOrigin"),e.b=j[c],e.plugin=g,vb?(q=i.zOrigin,r=r.split(" "),i.zOrigin=(r.length>2?parseFloat(r[2]):q)||0,e.xs0=e.e=j[c]=r[0]+" "+(r[1]||"50%")+" 0px",e=new lb(i,"zOrigin",0,0,e,-1,e.n),e.b=q,e.xs0=e.e=i.zOrigin):e.xs0=e.e=j[c]=r):$(r+"",i)),t&&(d._transformType=s||3===this._transformType?3:2),e},!0),pb("boxShadow","0px 0px 0px 0px #999",function(a,b,c,d,e,g){var h=-1!==(b+"").indexOf("inset")?" inset":"";return this.parseComplex(a.style,this.format(T(a,this.p,f,!1,this.dflt))+h,this.format(b)+h,e,g)},!0,!0),pb("borderRadius","0px",function(a,b,c,d,g){b=this.format(b);var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,i=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],j=a.style;for(s=parseFloat(a.offsetWidth),t=parseFloat(a.offsetHeight),k=b.split(" "),l=0;i.length>l;l++)this.p.indexOf("border")&&(i[l]=R(i[l])),o=n=T(a,i[l],f,!1,"0px"),-1!==o.indexOf(" ")&&(n=o.split(" "),o=n[0],n=n[1]),p=m=k[l],q=parseFloat(o),v=o.substr((q+"").length),w="="===p.charAt(1),w?(r=parseInt(p.charAt(0)+"1",10),p=p.substr(2),r*=parseFloat(p),u=p.substr((r+"").length-(0>r?1:0))||""):(r=parseFloat(p),u=p.substr((r+"").length)),""===u&&(u=e[c]||v),u!==v&&(x=Z(a,"borderLeft",q,v),y=Z(a,"borderTop",q,v),"%"===u?(o=100*(x/s)+"%",n=100*(y/t)+"%"):"em"===u?(z=Z(a,"borderLeft",1,"em"),o=x/z+"em",n=y/z+"em"):(o=x+"px",n=y+"px"),w&&(p=parseFloat(o)+r+u,m=parseFloat(n)+r+u)),g=mb(j,i[l],o+" "+n,p+" "+m,!1,"0px",g);return g},!0,!1,gb("0px 0px 0px 0px",!1,!0)),pb("backgroundPosition","0 0",function(a,b,c,d,e,g){var l,m,n,o,p,h="background-position",i=f||S(a,null),j=this.format((i?L?i.getPropertyValue(h+"-x")+" "+i.getPropertyValue(h+"-y"):i.getPropertyValue(h):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),k=this.format(b);if(-1!==j.indexOf("%")!=(-1!==k.indexOf("%"))){for(l=j.split(" "),m=k.split(" "),D.setAttribute("src",T(a,"backgroundImage").replace(t,"")),n=2;--n>-1;)j=l[n],o=-1!==j.indexOf("%"),o!==(-1!==m[n].indexOf("%"))&&(p=0===n?a.offsetWidth-D.width:a.offsetHeight-D.height,l[n]=o?parseFloat(j)/100*p+"px":100*(parseFloat(j)/p)+"%");j=l.join(" ")}return this.parseComplex(a.style,j,k,e,g)},!1,!1,$),pb("backgroundSize","0 0",null,!1,!1,$),pb("perspective","0px",null,!0),pb("perspectiveOrigin","50% 50%",null,!0),pb("transformStyle","preserve-3d",null,!0),pb("backfaceVisibility","visible",null,!0),pb("margin",null,hb("marginTop,marginRight,marginBottom,marginLeft")),pb("padding",null,hb("paddingTop,paddingRight,paddingBottom,paddingLeft")),pb("clip","rect(0px,0px,0px,0px)"),pb("textShadow","0px 0px 0px #999",null,!1,!0),pb("autoRound",null,function(a,b,c,d,e){return e}),pb("border","0px solid #000",function(a,b,c,d,e,g){return this.parseComplex(a.style,this.format(T(a,"borderTopWidth",f,!1,"0px")+" "+T(a,"borderTopStyle",f,!1,"solid")+" "+T(a,"borderTopColor",f,!1,"#000")),this.format(b),e,g)},!1,!0,function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(fb)||["#000"])[0]});var Ab=function(a){var e,b=this.t,c=b.filter,d=this.s+this.c*a>>0;100===d&&(-1===c.indexOf("atrix(")&&-1===c.indexOf("radient(")?(b.removeAttribute("filter"),e=!T(this.data,"filter")):(b.filter=c.replace(q,""),e=!0)),e||(this.xn1&&(b.filter=c=c||"alpha(opacity=100)"),-1===c.indexOf("opacity")?b.filter+=" alpha(opacity="+d+")":b.filter=c.replace(o,"opacity="+d))};pb("opacity,alpha,autoAlpha","1",function(a,b,c,d,e,g){var j,h=parseFloat(T(a,"opacity",f,!1,"1")),i=a.style;return b=parseFloat(b),"autoAlpha"===c&&(j=T(a,"visibility",f),1===h&&"hidden"===j&&0!==b&&(h=0),e=new lb(i,"visibility",0,0,e,-1,null,!1,0,0!==h?"visible":"hidden",0===b?"hidden":"visible"),e.xs0="visible",d._overwriteProps.push(e.n)),M?e=new lb(i,"opacity",h,b-h,e):(e=new lb(i,"opacity",100*h,100*(b-h),e),e.xn1="autoAlpha"===c?1:0,i.zoom=1,e.type=2,e.b="alpha(opacity="+e.s+")",e.e="alpha(opacity="+(e.s+e.c)+")",e.data=a,e.plugin=g,e.setRatio=Ab),e});var Bb=function(a){if(1===a||0===a){this.t.className=1===a?this.e:this.b;for(var b=this.data,c=this.t.style,d=c.removeProperty?"removeProperty":"removeAttribute";b;)b.v?c[b.p]=b.v:c[d](b.p.replace(r,"-$1").toLowerCase()),b=b._next}else this.t.className!==this.b&&(this.t.className=this.b)};for(pb("className",null,function(a,b,c,d,e,g,h){var k,l,i=a.className,j=a.style.cssText;return e=d._classNamePT=new lb(a,c,0,0,e,2),e.setRatio=Bb,e.b=i,e.e="="!==b.charAt(1)?b:"+"===b.charAt(0)?i+" "+b.substr(2):i.split(b.substr(2)).join(""),d._tween._duration&&(l=U(a,f,!0),a.className=e.e,k=V(a,l,U(a),h),a.className=i,e.data=k.firstMPT,a.style.cssText=j,e=e.xfirst=d.parse(a,k.difs,e,g)),e}),i="bezier,throwProps,physicsProps,physics2D".split(","),nb=i.length;nb--;)qb(i[nb]);return i=c.prototype,i._firstPT=null,i._onInitTween=function(a,b,h){if(!a.nodeType)return!1;this._target=a,this._tween=h,this._vars=b,G=b.autoRound,d=!1,e=b.suffixMap||c.suffixMap,f=S(a,""),g=this._overwriteProps;var j,k,l,m,n,o,q,r,s,i=a.style;if(H&&""===i.zIndex&&(j=T(a,"zIndex",f),("auto"===j||""===j)&&(i.zIndex=0)),"string"==typeof b&&(m=i.cssText,j=U(a,f),i.cssText=m+";"+b,j=V(a,j,U(a)).difs,!M&&p.test(b)&&(j.opacity=parseFloat(RegExp.$1)),b=j,i.cssText=m),this._firstPT=k=this.parse(a,b,null),this._transformType){for(s=3===this._transformType,sb?I&&(H=!0,""===i.zIndex&&(q=T(a,"zIndex",f),("auto"===q||""===q)&&(i.zIndex=0)),K&&(i.WebkitBackfaceVisibility=this._vars.WebkitBackfaceVisibility||(s?"visible":"hidden"))):i.zoom=1,l=k;l&&l._next;)l=l._next;r=new lb(a,"transform",0,0,null,2),this._linkCSSP(r,null,l),r.setRatio=s&&vb?yb:sb?zb:xb,r.data=this._transform||wb(a,f,!0),g.pop()}if(d){for(;k;){for(o=k._next,l=m;l&&l.pr>k.pr;)l=l._next;(k._prev=l?l._prev:n)?k._prev._next=k:m=k,(k._next=l)?l._prev=k:n=k,k=o}this._firstPT=m}return!0},i.parse=function(a,b,c,d){var i,j,k,l,m,n,o,p,q,r,g=a.style;for(i in b)n=b[i],j=h[i],j?c=j.parse(a,n,i,this,c,d,b):(m=T(a,i,f)+"",q="string"==typeof n,"color"===i||"fill"===i||"stroke"===i||-1!==i.indexOf("Color")||q&&!n.indexOf("rgb")?(q||(n=eb(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=mb(g,i,m,n,!0,"transparent",c,0,d)):!q||-1===n.indexOf(" ")&&-1===n.indexOf(",")?(k=parseFloat(m),o=k||0===k?m.substr((k+"").length):"",(""===m||"auto"===m)&&("width"===i||"height"===i?(k=Y(a,i,f),o="px"):(k="opacity"!==i?0:1,o="")),r=q&&"="===n.charAt(1),r?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.substr((l+"").length-(0>l?1:0))||""):(l=parseFloat(n),p=q?n.substr((l+"").length)||"":""),""===p&&(p=e[i]||o),n=l||0===l?(r?l+k:l)+p:b[i],o!==p&&""!==p&&(l||0===l)&&(k||0===k)&&(k=Z(a,i,k,o),"%"===p?(k/=Z(a,i,100,"%")/100,k>100&&(k=100)):"em"===p?k/=Z(a,i,1,"em"):(l=Z(a,i,l,p),p="px"),r&&(l||0===l)&&(n=l+k+p)),r&&(l+=k),!k&&0!==k||!l&&0!==l?n||"NaN"!=n+""&&null!=n?(c=new lb(g,i,l||k||0,0,c,-1,"css_"+i,!1,0,m,n),c.xs0="display"===i&&"none"===n?m:n):O("invalid "+i+" tween value. "):(c=new lb(g,i,k,l-k,c,0,"css_"+i,G!==!1&&("px"===p||"zIndex"===i),0,m,n),c.xs0=p)):c=mb(g,i,m,n,!0,null,c,0,d)),d&&c&&!c.plugin&&(c.plugin=d);return c},i.setRatio=function(a){var d,e,f,b=this._firstPT,c=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;b;){if(d=b.c*a+b.s,b.r?d=d>0?d+.5>>0:d-.5>>0:c>d&&d>-c&&(d=0),b.type)if(1===b.type)if(f=b.l,2===f)b.t[b.p]=b.xs0+d+b.xs1+b.xn1+b.xs2;else if(3===f)b.t[b.p]=b.xs0+d+b.xs1+b.xn1+b.xs2+b.xn2+b.xs3;else if(4===f)b.t[b.p]=b.xs0+d+b.xs1+b.xn1+b.xs2+b.xn2+b.xs3+b.xn3+b.xs4;else if(5===f)b.t[b.p]=b.xs0+d+b.xs1+b.xn1+b.xs2+b.xn2+b.xs3+b.xn3+b.xs4+b.xn4+b.xs5;else{for(e=b.xs0+d+b.xs1,f=1;b.l>f;f++)e+=b["xn"+f]+b["xs"+(f+1)];b.t[b.p]=e}else-1===b.type?b.t[b.p]=b.xs0:b.setRatio&&b.setRatio(a);else b.t[b.p]=d+b.xs0;b=b._next}else for(;b;)2!==b.type?b.t[b.p]=b.b:b.setRatio(a),b=b._next;else for(;b;)2!==b.type?b.t[b.p]=b.e:b.setRatio(a),b=b._next},i._enableTransforms=function(a){this._transformType=a||3===this._transformType?3:2},i._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next),a._next=b,a._prev=c),a},i._kill=function(b){var e,f,g,c=b,d=!1;if(b.css_autoAlpha||b.css_alpha){c={};for(f in b)c[f]=b[f];c.css_opacity=1,c.css_autoAlpha&&(c.css_visibility=1)}return b.css_className&&(e=this._classNamePT)&&(g=e.xfirst,g&&g._prev?this._linkCSSP(g._prev,e._next,g._prev._prev):g===this._firstPT&&(this._firstPT=null),e._next&&this._linkCSSP(e._next,e._next._next,g._prev),this._target._gsOverwrittenClassNamePT=this._linkCSSP(e,this._target._gsOverwrittenClassNamePT),this._classNamePT=null,d=!0),a.prototype._kill.call(this,c)||d},a.activate([c]),c},!0)}),window._gsDefine&&_gsQueue.pop()();
    (function(t,e){"use strict";var i=t.GreenSockGlobals=t.GreenSockGlobals||t;if(!i.TweenLite){var s,n,r,a,o,l=function(t){var e,s=t.split("."),n=i;for(e=0;s.length>e;e++)n[s[e]]=n=n[s[e]]||{};return n},h=l("com.greensock"),_=1e-10,u=function(t){var e,i=[],s=t.length;for(e=0;e!==s;i.push(t[e++]));return i},f=function(){},m=function(){var t=Object.prototype.toString,e=t.call([]);return function(i){return null!=i&&(i instanceof Array||"object"==typeof i&&!!i.push&&t.call(i)===e)}}(),p={},c=function(s,n,r,a){this.sc=p[s]?p[s].sc:[],p[s]=this,this.gsClass=null,this.func=r;var o=[];this.check=function(h){for(var _,u,f,m,d=n.length,v=d;--d>-1;)(_=p[n[d]]||new c(n[d],[])).gsClass?(o[d]=_.gsClass,v--):h&&_.sc.push(this);if(0===v&&r)for(u=("com.greensock."+s).split("."),f=u.pop(),m=l(u.join("."))[f]=this.gsClass=r.apply(r,o),a&&(i[f]=m,"function"==typeof define&&define.amd?define((t.GreenSockAMDPath?t.GreenSockAMDPath+"/":"")+s.split(".").pop(),[],function(){return m}):s===e&&"undefined"!=typeof module&&module.exports&&(module.exports=m)),d=0;this.sc.length>d;d++)this.sc[d].check()},this.check(!0)},d=t._gsDefine=function(t,e,i,s){return new c(t,e,i,s)},v=h._class=function(t,e,i){return e=e||function(){},d(t,[],function(){return e},i),e};d.globals=i;var g=[0,0,1,1],T=[],y=v("easing.Ease",function(t,e,i,s){this._func=t,this._type=i||0,this._power=s||0,this._params=e?g.concat(e):g},!0),w=y.map={},P=y.register=function(t,e,i,s){for(var n,r,a,o,l=e.split(","),_=l.length,u=(i||"easeIn,easeOut,easeInOut").split(",");--_>-1;)for(r=l[_],n=s?v("easing."+r,null,!0):h.easing[r]||{},a=u.length;--a>-1;)o=u[a],w[r+"."+o]=w[o+r]=n[o]=t.getRatio?t:t[o]||new t};for(r=y.prototype,r._calcEnd=!1,r.getRatio=function(t){if(this._func)return this._params[0]=t,this._func.apply(null,this._params);var e=this._type,i=this._power,s=1===e?1-t:2===e?t:.5>t?2*t:2*(1-t);return 1===i?s*=s:2===i?s*=s*s:3===i?s*=s*s*s:4===i&&(s*=s*s*s*s),1===e?1-s:2===e?s:.5>t?s/2:1-s/2},s=["Linear","Quad","Cubic","Quart","Quint,Strong"],n=s.length;--n>-1;)r=s[n]+",Power"+n,P(new y(null,null,1,n),r,"easeOut",!0),P(new y(null,null,2,n),r,"easeIn"+(0===n?",easeNone":"")),P(new y(null,null,3,n),r,"easeInOut");w.linear=h.easing.Linear.easeIn,w.swing=h.easing.Quad.easeInOut;var b=v("events.EventDispatcher",function(t){this._listeners={},this._eventTarget=t||this});r=b.prototype,r.addEventListener=function(t,e,i,s,n){n=n||0;var r,l,h=this._listeners[t],_=0;for(null==h&&(this._listeners[t]=h=[]),l=h.length;--l>-1;)r=h[l],r.c===e&&r.s===i?h.splice(l,1):0===_&&n>r.pr&&(_=l+1);h.splice(_,0,{c:e,s:i,up:s,pr:n}),this!==a||o||a.wake()},r.removeEventListener=function(t,e){var i,s=this._listeners[t];if(s)for(i=s.length;--i>-1;)if(s[i].c===e)return s.splice(i,1),void 0},r.dispatchEvent=function(t){var e,i,s,n=this._listeners[t];if(n)for(e=n.length,i=this._eventTarget;--e>-1;)s=n[e],s.up?s.c.call(s.s||i,{type:t,target:i}):s.c.call(s.s||i)};var k=t.requestAnimationFrame,A=t.cancelAnimationFrame,S=Date.now||function(){return(new Date).getTime()},x=S();for(s=["ms","moz","webkit","o"],n=s.length;--n>-1&&!k;)k=t[s[n]+"RequestAnimationFrame"],A=t[s[n]+"CancelAnimationFrame"]||t[s[n]+"CancelRequestAnimationFrame"];v("Ticker",function(t,e){var i,s,n,r,l,h=this,u=S(),m=e!==!1&&k,p=500,c=33,d=function(t){var e,a,o=S()-x;o>p&&(u+=o-c),x+=o,h.time=(x-u)/1e3,e=h.time-l,(!i||e>0||t===!0)&&(h.frame++,l+=e+(e>=r?.004:r-e),a=!0),t!==!0&&(n=s(d)),a&&h.dispatchEvent("tick")};b.call(h),h.time=h.frame=0,h.tick=function(){d(!0)},h.lagSmoothing=function(t,e){p=t||1/_,c=Math.min(e,p,0)},h.sleep=function(){null!=n&&(m&&A?A(n):clearTimeout(n),s=f,n=null,h===a&&(o=!1))},h.wake=function(){null!==n?h.sleep():h.frame>10&&(x=S()-p+5),s=0===i?f:m&&k?k:function(t){return setTimeout(t,0|1e3*(l-h.time)+1)},h===a&&(o=!0),d(2)},h.fps=function(t){return arguments.length?(i=t,r=1/(i||60),l=this.time+r,h.wake(),void 0):i},h.useRAF=function(t){return arguments.length?(h.sleep(),m=t,h.fps(i),void 0):m},h.fps(t),setTimeout(function(){m&&(!n||5>h.frame)&&h.useRAF(!1)},1500)}),r=h.Ticker.prototype=new h.events.EventDispatcher,r.constructor=h.Ticker;var C=v("core.Animation",function(t,e){if(this.vars=e=e||{},this._duration=this._totalDuration=t||0,this._delay=Number(e.delay)||0,this._timeScale=1,this._active=e.immediateRender===!0,this.data=e.data,this._reversed=e.reversed===!0,B){o||a.wake();var i=this.vars.useFrames?q:B;i.add(this,i._time),this.vars.paused&&this.paused(!0)}});a=C.ticker=new h.Ticker,r=C.prototype,r._dirty=r._gc=r._initted=r._paused=!1,r._totalTime=r._time=0,r._rawPrevTime=-1,r._next=r._last=r._onUpdate=r._timeline=r.timeline=null,r._paused=!1;var R=function(){o&&S()-x>2e3&&a.wake(),setTimeout(R,2e3)};R(),r.play=function(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},r.pause=function(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},r.resume=function(t,e){return null!=t&&this.seek(t,e),this.paused(!1)},r.seek=function(t,e){return this.totalTime(Number(t),e!==!1)},r.restart=function(t,e){return this.reversed(!1).paused(!1).totalTime(t?-this._delay:0,e!==!1,!0)},r.reverse=function(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},r.render=function(){},r.invalidate=function(){return this},r.isActive=function(){var t,e=this._timeline,i=this._startTime;return!e||!this._gc&&!this._paused&&e.isActive()&&(t=e.rawTime())>=i&&i+this.totalDuration()/this._timeScale>t},r._enabled=function(t,e){return o||a.wake(),this._gc=!t,this._active=this.isActive(),e!==!0&&(t&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!t&&this.timeline&&this._timeline._remove(this,!0)),!1},r._kill=function(){return this._enabled(!1,!1)},r.kill=function(t,e){return this._kill(t,e),this},r._uncache=function(t){for(var e=t?this:this.timeline;e;)e._dirty=!0,e=e.timeline;return this},r._swapSelfInParams=function(t){for(var e=t.length,i=t.concat();--e>-1;)"{self}"===t[e]&&(i[e]=this);return i},r.eventCallback=function(t,e,i,s){if("on"===(t||"").substr(0,2)){var n=this.vars;if(1===arguments.length)return n[t];null==e?delete n[t]:(n[t]=e,n[t+"Params"]=m(i)&&-1!==i.join("").indexOf("{self}")?this._swapSelfInParams(i):i,n[t+"Scope"]=s),"onUpdate"===t&&(this._onUpdate=e)}return this},r.delay=function(t){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+t-this._delay),this._delay=t,this):this._delay},r.duration=function(t){return arguments.length?(this._duration=this._totalDuration=t,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==t&&this.totalTime(this._totalTime*(t/this._duration),!0),this):(this._dirty=!1,this._duration)},r.totalDuration=function(t){return this._dirty=!1,arguments.length?this.duration(t):this._totalDuration},r.time=function(t,e){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(t>this._duration?this._duration:t,e)):this._time},r.totalTime=function(t,e,i){if(o||a.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>t&&!i&&(t+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var s=this._totalDuration,n=this._timeline;if(t>s&&!i&&(t=s),this._startTime=(this._paused?this._pauseTime:n._time)-(this._reversed?s-t:t)/this._timeScale,n._dirty||this._uncache(!1),n._timeline)for(;n._timeline;)n._timeline._time!==(n._startTime+n._totalTime)/n._timeScale&&n.totalTime(n._totalTime,!0),n=n._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==t||0===this._duration)&&(this.render(t,e,!1),O.length&&M())}return this},r.progress=r.totalProgress=function(t,e){return arguments.length?this.totalTime(this.duration()*t,e):this._time/this.duration()},r.startTime=function(t){return arguments.length?(t!==this._startTime&&(this._startTime=t,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,t-this._delay)),this):this._startTime},r.timeScale=function(t){if(!arguments.length)return this._timeScale;if(t=t||_,this._timeline&&this._timeline.smoothChildTiming){var e=this._pauseTime,i=e||0===e?e:this._timeline.totalTime();this._startTime=i-(i-this._startTime)*this._timeScale/t}return this._timeScale=t,this._uncache(!1)},r.reversed=function(t){return arguments.length?(t!=this._reversed&&(this._reversed=t,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},r.paused=function(t){if(!arguments.length)return this._paused;if(t!=this._paused&&this._timeline){o||t||a.wake();var e=this._timeline,i=e.rawTime(),s=i-this._pauseTime;!t&&e.smoothChildTiming&&(this._startTime+=s,this._uncache(!1)),this._pauseTime=t?i:null,this._paused=t,this._active=this.isActive(),!t&&0!==s&&this._initted&&this.duration()&&this.render(e.smoothChildTiming?this._totalTime:(i-this._startTime)/this._timeScale,!0,!0)}return this._gc&&!t&&this._enabled(!0,!1),this};var D=v("core.SimpleTimeline",function(t){C.call(this,0,t),this.autoRemoveChildren=this.smoothChildTiming=!0});r=D.prototype=new C,r.constructor=D,r.kill()._gc=!1,r._first=r._last=null,r._sortChildren=!1,r.add=r.insert=function(t,e){var i,s;if(t._startTime=Number(e||0)+t._delay,t._paused&&this!==t._timeline&&(t._pauseTime=t._startTime+(this.rawTime()-t._startTime)/t._timeScale),t.timeline&&t.timeline._remove(t,!0),t.timeline=t._timeline=this,t._gc&&t._enabled(!0,!0),i=this._last,this._sortChildren)for(s=t._startTime;i&&i._startTime>s;)i=i._prev;return i?(t._next=i._next,i._next=t):(t._next=this._first,this._first=t),t._next?t._next._prev=t:this._last=t,t._prev=i,this._timeline&&this._uncache(!0),this},r._remove=function(t,e){return t.timeline===this&&(e||t._enabled(!1,!0),t._prev?t._prev._next=t._next:this._first===t&&(this._first=t._next),t._next?t._next._prev=t._prev:this._last===t&&(this._last=t._prev),t._next=t._prev=t.timeline=null,this._timeline&&this._uncache(!0)),this},r.render=function(t,e,i){var s,n=this._first;for(this._totalTime=this._time=this._rawPrevTime=t;n;)s=n._next,(n._active||t>=n._startTime&&!n._paused)&&(n._reversed?n.render((n._dirty?n.totalDuration():n._totalDuration)-(t-n._startTime)*n._timeScale,e,i):n.render((t-n._startTime)*n._timeScale,e,i)),n=s},r.rawTime=function(){return o||a.wake(),this._totalTime};var I=v("TweenLite",function(e,i,s){if(C.call(this,i,s),this.render=I.prototype.render,null==e)throw"Cannot tween a null target.";this.target=e="string"!=typeof e?e:I.selector(e)||e;var n,r,a,o=e.jquery||e.length&&e!==t&&e[0]&&(e[0]===t||e[0].nodeType&&e[0].style&&!e.nodeType),l=this.vars.overwrite;if(this._overwrite=l=null==l?Q[I.defaultOverwrite]:"number"==typeof l?l>>0:Q[l],(o||e instanceof Array||e.push&&m(e))&&"number"!=typeof e[0])for(this._targets=a=u(e),this._propLookup=[],this._siblings=[],n=0;a.length>n;n++)r=a[n],r?"string"!=typeof r?r.length&&r!==t&&r[0]&&(r[0]===t||r[0].nodeType&&r[0].style&&!r.nodeType)?(a.splice(n--,1),this._targets=a=a.concat(u(r))):(this._siblings[n]=$(r,this,!1),1===l&&this._siblings[n].length>1&&K(r,this,null,1,this._siblings[n])):(r=a[n--]=I.selector(r),"string"==typeof r&&a.splice(n+1,1)):a.splice(n--,1);else this._propLookup={},this._siblings=$(e,this,!1),1===l&&this._siblings.length>1&&K(e,this,null,1,this._siblings);(this.vars.immediateRender||0===i&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-_,this.render(-this._delay))},!0),E=function(e){return e.length&&e!==t&&e[0]&&(e[0]===t||e[0].nodeType&&e[0].style&&!e.nodeType)},z=function(t,e){var i,s={};for(i in t)G[i]||i in e&&"transform"!==i&&"x"!==i&&"y"!==i&&"width"!==i&&"height"!==i&&"className"!==i&&"border"!==i||!(!U[i]||U[i]&&U[i]._autoCSS)||(s[i]=t[i],delete t[i]);t.css=s};r=I.prototype=new C,r.constructor=I,r.kill()._gc=!1,r.ratio=0,r._firstPT=r._targets=r._overwrittenProps=r._startAt=null,r._notifyPluginsOfEnabled=r._lazy=!1,I.version="1.13.1",I.defaultEase=r._ease=new y(null,null,1,1),I.defaultOverwrite="auto",I.ticker=a,I.autoSleep=!0,I.lagSmoothing=function(t,e){a.lagSmoothing(t,e)},I.selector=t.$||t.jQuery||function(e){var i=t.$||t.jQuery;return i?(I.selector=i,i(e)):"undefined"==typeof document?e:document.querySelectorAll?document.querySelectorAll(e):document.getElementById("#"===e.charAt(0)?e.substr(1):e)};var O=[],L={},N=I._internals={isArray:m,isSelector:E,lazyTweens:O},U=I._plugins={},F=N.tweenLookup={},j=0,G=N.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1},Q={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},q=C._rootFramesTimeline=new D,B=C._rootTimeline=new D,M=N.lazyRender=function(){var t=O.length;for(L={};--t>-1;)s=O[t],s&&s._lazy!==!1&&(s.render(s._lazy,!1,!0),s._lazy=!1);O.length=0};B._startTime=a.time,q._startTime=a.frame,B._active=q._active=!0,setTimeout(M,1),C._updateRoot=I.render=function(){var t,e,i;if(O.length&&M(),B.render((a.time-B._startTime)*B._timeScale,!1,!1),q.render((a.frame-q._startTime)*q._timeScale,!1,!1),O.length&&M(),!(a.frame%120)){for(i in F){for(e=F[i].tweens,t=e.length;--t>-1;)e[t]._gc&&e.splice(t,1);0===e.length&&delete F[i]}if(i=B._first,(!i||i._paused)&&I.autoSleep&&!q._first&&1===a._listeners.tick.length){for(;i&&i._paused;)i=i._next;i||a.sleep()}}},a.addEventListener("tick",C._updateRoot);var $=function(t,e,i){var s,n,r=t._gsTweenID;if(F[r||(t._gsTweenID=r="t"+j++)]||(F[r]={target:t,tweens:[]}),e&&(s=F[r].tweens,s[n=s.length]=e,i))for(;--n>-1;)s[n]===e&&s.splice(n,1);return F[r].tweens},K=function(t,e,i,s,n){var r,a,o,l;if(1===s||s>=4){for(l=n.length,r=0;l>r;r++)if((o=n[r])!==e)o._gc||o._enabled(!1,!1)&&(a=!0);else if(5===s)break;return a}var h,u=e._startTime+_,f=[],m=0,p=0===e._duration;for(r=n.length;--r>-1;)(o=n[r])===e||o._gc||o._paused||(o._timeline!==e._timeline?(h=h||H(e,0,p),0===H(o,h,p)&&(f[m++]=o)):u>=o._startTime&&o._startTime+o.totalDuration()/o._timeScale>u&&((p||!o._initted)&&2e-10>=u-o._startTime||(f[m++]=o)));for(r=m;--r>-1;)o=f[r],2===s&&o._kill(i,t)&&(a=!0),(2!==s||!o._firstPT&&o._initted)&&o._enabled(!1,!1)&&(a=!0);return a},H=function(t,e,i){for(var s=t._timeline,n=s._timeScale,r=t._startTime;s._timeline;){if(r+=s._startTime,n*=s._timeScale,s._paused)return-100;s=s._timeline}return r/=n,r>e?r-e:i&&r===e||!t._initted&&2*_>r-e?_:(r+=t.totalDuration()/t._timeScale/n)>e+_?0:r-e-_};r._init=function(){var t,e,i,s,n,r=this.vars,a=this._overwrittenProps,o=this._duration,l=!!r.immediateRender,h=r.ease;if(r.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),n={};for(s in r.startAt)n[s]=r.startAt[s];if(n.overwrite=!1,n.immediateRender=!0,n.lazy=l&&r.lazy!==!1,n.startAt=n.delay=null,this._startAt=I.to(this.target,0,n),l)if(this._time>0)this._startAt=null;else if(0!==o)return}else if(r.runBackwards&&0!==o)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{i={};for(s in r)G[s]&&"autoCSS"!==s||(i[s]=r[s]);if(i.overwrite=0,i.data="isFromStart",i.lazy=l&&r.lazy!==!1,i.immediateRender=l,this._startAt=I.to(this.target,0,i),l){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1)}if(this._ease=h=h?h instanceof y?h:"function"==typeof h?new y(h,r.easeParams):w[h]||I.defaultEase:I.defaultEase,r.easeParams instanceof Array&&h.config&&(this._ease=h.config.apply(h,r.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(t=this._targets.length;--t>-1;)this._initProps(this._targets[t],this._propLookup[t]={},this._siblings[t],a?a[t]:null)&&(e=!0);else e=this._initProps(this.target,this._propLookup,this._siblings,a);if(e&&I._onPluginEvent("_onInitAllProps",this),a&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),r.runBackwards)for(i=this._firstPT;i;)i.s+=i.c,i.c=-i.c,i=i._next;this._onUpdate=r.onUpdate,this._initted=!0},r._initProps=function(e,i,s,n){var r,a,o,l,h,_;if(null==e)return!1;L[e._gsTweenID]&&M(),this.vars.css||e.style&&e!==t&&e.nodeType&&U.css&&this.vars.autoCSS!==!1&&z(this.vars,e);for(r in this.vars){if(_=this.vars[r],G[r])_&&(_ instanceof Array||_.push&&m(_))&&-1!==_.join("").indexOf("{self}")&&(this.vars[r]=_=this._swapSelfInParams(_,this));else if(U[r]&&(l=new U[r])._onInitTween(e,this.vars[r],this)){for(this._firstPT=h={_next:this._firstPT,t:l,p:"setRatio",s:0,c:1,f:!0,n:r,pg:!0,pr:l._priority},a=l._overwriteProps.length;--a>-1;)i[l._overwriteProps[a]]=this._firstPT;(l._priority||l._onInitAllProps)&&(o=!0),(l._onDisable||l._onEnable)&&(this._notifyPluginsOfEnabled=!0)}else this._firstPT=i[r]=h={_next:this._firstPT,t:e,p:r,f:"function"==typeof e[r],n:r,pg:!1,pr:0},h.s=h.f?e[r.indexOf("set")||"function"!=typeof e["get"+r.substr(3)]?r:"get"+r.substr(3)]():parseFloat(e[r]),h.c="string"==typeof _&&"="===_.charAt(1)?parseInt(_.charAt(0)+"1",10)*Number(_.substr(2)):Number(_)-h.s||0;h&&h._next&&(h._next._prev=h)}return n&&this._kill(n,e)?this._initProps(e,i,s,n):this._overwrite>1&&this._firstPT&&s.length>1&&K(e,this,i,this._overwrite,s)?(this._kill(i,e),this._initProps(e,i,s,n)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(L[e._gsTweenID]=!0),o)},r.render=function(t,e,i){var s,n,r,a,o=this._time,l=this._duration,h=this._rawPrevTime;if(t>=l)this._totalTime=this._time=l,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(s=!0,n="onComplete"),0===l&&(this._initted||!this.vars.lazy||i)&&(this._startTime===this._timeline._duration&&(t=0),(0===t||0>h||h===_)&&h!==t&&(i=!0,h>_&&(n="onReverseComplete")),this._rawPrevTime=a=!e||t||h===t?t:_);else if(1e-7>t)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==o||0===l&&h>0&&h!==_)&&(n="onReverseComplete",s=this._reversed),0>t?(this._active=!1,0===l&&(this._initted||!this.vars.lazy||i)&&(h>=0&&(i=!0),this._rawPrevTime=a=!e||t||h===t?t:_)):this._initted||(i=!0);else if(this._totalTime=this._time=t,this._easeType){var u=t/l,f=this._easeType,m=this._easePower;(1===f||3===f&&u>=.5)&&(u=1-u),3===f&&(u*=2),1===m?u*=u:2===m?u*=u*u:3===m?u*=u*u*u:4===m&&(u*=u*u*u*u),this.ratio=1===f?1-u:2===f?u:.5>t/l?u/2:1-u/2}else this.ratio=this._ease.getRatio(t/l);if(this._time!==o||i){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!i&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=o,this._rawPrevTime=h,O.push(this),this._lazy=t,void 0;this._time&&!s?this.ratio=this._ease.getRatio(this._time/l):s&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==o&&t>=0&&(this._active=!0),0===o&&(this._startAt&&(t>=0?this._startAt.render(t,e,i):n||(n="_dummyGS")),this.vars.onStart&&(0!==this._time||0===l)&&(e||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||T))),r=this._firstPT;r;)r.f?r.t[r.p](r.c*this.ratio+r.s):r.t[r.p]=r.c*this.ratio+r.s,r=r._next;this._onUpdate&&(0>t&&this._startAt&&this._startTime&&this._startAt.render(t,e,i),e||(this._time!==o||s)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||T)),n&&(!this._gc||i)&&(0>t&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(t,e,i),s&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!e&&this.vars[n]&&this.vars[n].apply(this.vars[n+"Scope"]||this,this.vars[n+"Params"]||T),0===l&&this._rawPrevTime===_&&a!==_&&(this._rawPrevTime=0))}},r._kill=function(t,e){if("all"===t&&(t=null),null==t&&(null==e||e===this.target))return this._lazy=!1,this._enabled(!1,!1);e="string"!=typeof e?e||this._targets||this.target:I.selector(e)||e;var i,s,n,r,a,o,l,h;if((m(e)||E(e))&&"number"!=typeof e[0])for(i=e.length;--i>-1;)this._kill(t,e[i])&&(o=!0);else{if(this._targets){for(i=this._targets.length;--i>-1;)if(e===this._targets[i]){a=this._propLookup[i]||{},this._overwrittenProps=this._overwrittenProps||[],s=this._overwrittenProps[i]=t?this._overwrittenProps[i]||{}:"all";break}}else{if(e!==this.target)return!1;a=this._propLookup,s=this._overwrittenProps=t?this._overwrittenProps||{}:"all"}if(a){l=t||a,h=t!==s&&"all"!==s&&t!==a&&("object"!=typeof t||!t._tempKill);for(n in l)(r=a[n])&&(r.pg&&r.t._kill(l)&&(o=!0),r.pg&&0!==r.t._overwriteProps.length||(r._prev?r._prev._next=r._next:r===this._firstPT&&(this._firstPT=r._next),r._next&&(r._next._prev=r._prev),r._next=r._prev=null),delete a[n]),h&&(s[n]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return o},r.invalidate=function(){return this._notifyPluginsOfEnabled&&I._onPluginEvent("_onDisable",this),this._firstPT=null,this._overwrittenProps=null,this._onUpdate=null,this._startAt=null,this._initted=this._active=this._notifyPluginsOfEnabled=this._lazy=!1,this._propLookup=this._targets?{}:[],this},r._enabled=function(t,e){if(o||a.wake(),t&&this._gc){var i,s=this._targets;if(s)for(i=s.length;--i>-1;)this._siblings[i]=$(s[i],this,!0);else this._siblings=$(this.target,this,!0)}return C.prototype._enabled.call(this,t,e),this._notifyPluginsOfEnabled&&this._firstPT?I._onPluginEvent(t?"_onEnable":"_onDisable",this):!1},I.to=function(t,e,i){return new I(t,e,i)},I.from=function(t,e,i){return i.runBackwards=!0,i.immediateRender=0!=i.immediateRender,new I(t,e,i)},I.fromTo=function(t,e,i,s){return s.startAt=i,s.immediateRender=0!=s.immediateRender&&0!=i.immediateRender,new I(t,e,s)},I.delayedCall=function(t,e,i,s,n){return new I(e,0,{delay:t,onComplete:e,onCompleteParams:i,onCompleteScope:s,onReverseComplete:e,onReverseCompleteParams:i,onReverseCompleteScope:s,immediateRender:!1,useFrames:n,overwrite:0})},I.set=function(t,e){return new I(t,0,e)},I.getTweensOf=function(t,e){if(null==t)return[];t="string"!=typeof t?t:I.selector(t)||t;var i,s,n,r;if((m(t)||E(t))&&"number"!=typeof t[0]){for(i=t.length,s=[];--i>-1;)s=s.concat(I.getTweensOf(t[i],e));for(i=s.length;--i>-1;)for(r=s[i],n=i;--n>-1;)r===s[n]&&s.splice(i,1)}else for(s=$(t).concat(),i=s.length;--i>-1;)(s[i]._gc||e&&!s[i].isActive())&&s.splice(i,1);return s},I.killTweensOf=I.killDelayedCallsTo=function(t,e,i){"object"==typeof e&&(i=e,e=!1);for(var s=I.getTweensOf(t,e),n=s.length;--n>-1;)s[n]._kill(i,t)};var J=v("plugins.TweenPlugin",function(t,e){this._overwriteProps=(t||"").split(","),this._propName=this._overwriteProps[0],this._priority=e||0,this._super=J.prototype},!0);if(r=J.prototype,J.version="1.10.1",J.API=2,r._firstPT=null,r._addTween=function(t,e,i,s,n,r){var a,o;return null!=s&&(a="number"==typeof s||"="!==s.charAt(1)?Number(s)-i:parseInt(s.charAt(0)+"1",10)*Number(s.substr(2)))?(this._firstPT=o={_next:this._firstPT,t:t,p:e,s:i,c:a,f:"function"==typeof t[e],n:n||e,r:r},o._next&&(o._next._prev=o),o):void 0},r.setRatio=function(t){for(var e,i=this._firstPT,s=1e-6;i;)e=i.c*t+i.s,i.r?e=Math.round(e):s>e&&e>-s&&(e=0),i.f?i.t[i.p](e):i.t[i.p]=e,i=i._next},r._kill=function(t){var e,i=this._overwriteProps,s=this._firstPT;if(null!=t[this._propName])this._overwriteProps=[];else for(e=i.length;--e>-1;)null!=t[i[e]]&&i.splice(e,1);for(;s;)null!=t[s.n]&&(s._next&&(s._next._prev=s._prev),s._prev?(s._prev._next=s._next,s._prev=null):this._firstPT===s&&(this._firstPT=s._next)),s=s._next;return!1},r._roundProps=function(t,e){for(var i=this._firstPT;i;)(t[this._propName]||null!=i.n&&t[i.n.split(this._propName+"_").join("")])&&(i.r=e),i=i._next},I._onPluginEvent=function(t,e){var i,s,n,r,a,o=e._firstPT;if("_onInitAllProps"===t){for(;o;){for(a=o._next,s=n;s&&s.pr>o.pr;)s=s._next;(o._prev=s?s._prev:r)?o._prev._next=o:n=o,(o._next=s)?s._prev=o:r=o,o=a}o=e._firstPT=n}for(;o;)o.pg&&"function"==typeof o.t[t]&&o.t[t]()&&(i=!0),o=o._next;return i},J.activate=function(t){for(var e=t.length;--e>-1;)t[e].API===J.API&&(U[(new t[e])._propName]=t[e]);return!0},d.plugin=function(t){if(!(t&&t.propName&&t.init&&t.API))throw"illegal plugin definition.";var e,i=t.propName,s=t.priority||0,n=t.overwriteProps,r={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},a=v("plugins."+i.charAt(0).toUpperCase()+i.substr(1)+"Plugin",function(){J.call(this,i,s),this._overwriteProps=n||[]},t.global===!0),o=a.prototype=new J(i);o.constructor=a,a.API=t.API;for(e in r)"function"==typeof t[e]&&(o[r[e]]=t[e]);return a.version=t.version,J.activate([a]),a},s=t._gsQueue){for(n=0;s.length>n;n++)s[n]();for(r in p)p[r].func||t.console.log("GSAP encountered missing dependency: com.greensock."+r)}o=!1}})("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TweenLite");

    // Ease Pack
    var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("easing.Back",["easing.Ease"],function(t){var e,i,s,r=_gsScope.GreenSockGlobals||_gsScope,n=r.com.greensock,a=2*Math.PI,o=Math.PI/2,h=n._class,l=function(e,i){var s=h("easing."+e,function(){},!0),r=s.prototype=new t;return r.constructor=s,r.getRatio=i,s},_=t.register||function(){},u=function(t,e,i,s){var r=h("easing."+t,{easeOut:new e,easeIn:new i,easeInOut:new s},!0);return _(r,t),r},c=function(t,e,i){this.t=t,this.v=e,i&&(this.next=i,i.prev=this,this.c=i.v-e,this.gap=i.t-t)},p=function(e,i){var s=h("easing."+e,function(t){this._p1=t||0===t?t:1.70158,this._p2=1.525*this._p1},!0),r=s.prototype=new t;return r.constructor=s,r.getRatio=i,r.config=function(t){return new s(t)},s},f=u("Back",p("BackOut",function(t){return(t-=1)*t*((this._p1+1)*t+this._p1)+1}),p("BackIn",function(t){return t*t*((this._p1+1)*t-this._p1)}),p("BackInOut",function(t){return 1>(t*=2)?.5*t*t*((this._p2+1)*t-this._p2):.5*((t-=2)*t*((this._p2+1)*t+this._p2)+2)})),m=h("easing.SlowMo",function(t,e,i){e=e||0===e?e:.7,null==t?t=.7:t>1&&(t=1),this._p=1!==t?e:0,this._p1=(1-t)/2,this._p2=t,this._p3=this._p1+this._p2,this._calcEnd=i===!0},!0),d=m.prototype=new t;return d.constructor=m,d.getRatio=function(t){var e=t+(.5-t)*this._p;return this._p1>t?this._calcEnd?1-(t=1-t/this._p1)*t:e-(t=1-t/this._p1)*t*t*t*e:t>this._p3?this._calcEnd?1-(t=(t-this._p3)/this._p1)*t:e+(t-e)*(t=(t-this._p3)/this._p1)*t*t*t:this._calcEnd?1:e},m.ease=new m(.7,.7),d.config=m.config=function(t,e,i){return new m(t,e,i)},e=h("easing.SteppedEase",function(t){t=t||1,this._p1=1/t,this._p2=t+1},!0),d=e.prototype=new t,d.constructor=e,d.getRatio=function(t){return 0>t?t=0:t>=1&&(t=.999999999),(this._p2*t>>0)*this._p1},d.config=e.config=function(t){return new e(t)},i=h("easing.RoughEase",function(e){e=e||{};for(var i,s,r,n,a,o,h=e.taper||"none",l=[],_=0,u=0|(e.points||20),p=u,f=e.randomize!==!1,m=e.clamp===!0,d=e.template instanceof t?e.template:null,g="number"==typeof e.strength?.4*e.strength:.4;--p>-1;)i=f?Math.random():1/u*p,s=d?d.getRatio(i):i,"none"===h?r=g:"out"===h?(n=1-i,r=n*n*g):"in"===h?r=i*i*g:.5>i?(n=2*i,r=.5*n*n*g):(n=2*(1-i),r=.5*n*n*g),f?s+=Math.random()*r-.5*r:p%2?s+=.5*r:s-=.5*r,m&&(s>1?s=1:0>s&&(s=0)),l[_++]={x:i,y:s};for(l.sort(function(t,e){return t.x-e.x}),o=new c(1,1,null),p=u;--p>-1;)a=l[p],o=new c(a.x,a.y,o);this._prev=new c(0,0,0!==o.t?o:o.next)},!0),d=i.prototype=new t,d.constructor=i,d.getRatio=function(t){var e=this._prev;if(t>e.t){for(;e.next&&t>=e.t;)e=e.next;e=e.prev}else for(;e.prev&&e.t>=t;)e=e.prev;return this._prev=e,e.v+(t-e.t)/e.gap*e.c},d.config=function(t){return new i(t)},i.ease=new i,u("Bounce",l("BounceOut",function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}),l("BounceIn",function(t){return 1/2.75>(t=1-t)?1-7.5625*t*t:2/2.75>t?1-(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1-(7.5625*(t-=2.25/2.75)*t+.9375):1-(7.5625*(t-=2.625/2.75)*t+.984375)}),l("BounceInOut",function(t){var e=.5>t;return t=e?1-2*t:2*t-1,t=1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,e?.5*(1-t):.5*t+.5})),u("Circ",l("CircOut",function(t){return Math.sqrt(1-(t-=1)*t)}),l("CircIn",function(t){return-(Math.sqrt(1-t*t)-1)}),l("CircInOut",function(t){return 1>(t*=2)?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)})),s=function(e,i,s){var r=h("easing."+e,function(t,e){this._p1=t||1,this._p2=e||s,this._p3=this._p2/a*(Math.asin(1/this._p1)||0)},!0),n=r.prototype=new t;return n.constructor=r,n.getRatio=i,n.config=function(t,e){return new r(t,e)},r},u("Elastic",s("ElasticOut",function(t){return this._p1*Math.pow(2,-10*t)*Math.sin((t-this._p3)*a/this._p2)+1},.3),s("ElasticIn",function(t){return-(this._p1*Math.pow(2,10*(t-=1))*Math.sin((t-this._p3)*a/this._p2))},.3),s("ElasticInOut",function(t){return 1>(t*=2)?-.5*this._p1*Math.pow(2,10*(t-=1))*Math.sin((t-this._p3)*a/this._p2):.5*this._p1*Math.pow(2,-10*(t-=1))*Math.sin((t-this._p3)*a/this._p2)+1},.45)),u("Expo",l("ExpoOut",function(t){return 1-Math.pow(2,-10*t)}),l("ExpoIn",function(t){return Math.pow(2,10*(t-1))-.001}),l("ExpoInOut",function(t){return 1>(t*=2)?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*(t-1)))})),u("Sine",l("SineOut",function(t){return Math.sin(t*o)}),l("SineIn",function(t){return-Math.cos(t*o)+1}),l("SineInOut",function(t){return-.5*(Math.cos(Math.PI*t)-1)})),h("easing.EaseLookup",{find:function(e){return t.map[e]}},!0),_(r.SlowMo,"SlowMo","ease,"),_(i,"RoughEase","ease,"),_(e,"SteppedEase","ease,"),f},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()();

    // Color Pack
    var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";var t=/(\d|\.)+/g,e={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},i=function(t,e,i){return t=0>t?t+1:t>1?t-1:t,0|255*(1>6*t?e+6*(i-e)*t:.5>t?i:2>3*t?e+6*(i-e)*(2/3-t):e)+.5},s=function(s){if(""===s||null==s||"none"===s)return e.transparent;if(e[s])return e[s];if("number"==typeof s)return[s>>16,255&s>>8,255&s];if("#"===s.charAt(0))return 4===s.length&&(s="#"+s.charAt(1)+s.charAt(1)+s.charAt(2)+s.charAt(2)+s.charAt(3)+s.charAt(3)),s=parseInt(s.substr(1),16),[s>>16,255&s>>8,255&s];if("hsl"===s.substr(0,3)){s=s.match(t);var r=Number(s[0])%360/360,n=Number(s[1])/100,a=Number(s[2])/100,o=.5>=a?a*(n+1):a+n-a*n,h=2*a-o;return s.length>3&&(s[3]=Number(s[3])),s[0]=i(r+1/3,h,o),s[1]=i(r,h,o),s[2]=i(r-1/3,h,o),s}return s.match(t)||e.transparent};_gsScope._gsDefine.plugin({propName:"colorProps",version:"1.2.1",priority:-1,API:2,init:function(t,e){this._target=t;var i,r,n,a;for(i in e)n=s(e[i]),this._firstPT=a={_next:this._firstPT,p:i,f:"function"==typeof t[i],n:i,r:!1},r=s(a.f?t[i.indexOf("set")||"function"!=typeof t["get"+i.substr(3)]?i:"get"+i.substr(3)]():t[i]),a.s=Number(r[0]),a.c=Number(n[0])-a.s,a.gs=Number(r[1]),a.gc=Number(n[1])-a.gs,a.bs=Number(r[2]),a.bc=Number(n[2])-a.bs,(a.rgba=r.length>3||n.length>3)&&(a.as=4>r.length?1:Number(r[3]),a.ac=(4>n.length?1:Number(n[3]))-a.as),a._next&&(a._next._prev=a);return!0},set:function(t){for(var e,i=this._firstPT;i;)e=(i.rgba?"rgba(":"rgb(")+(i.s+t*i.c>>0)+", "+(i.gs+t*i.gc>>0)+", "+(i.bs+t*i.bc>>0)+(i.rgba?", "+(i.as+t*i.ac):"")+")",i.f?this._target[i.p](e):this._target[i.p]=e,i=i._next}})}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()();

    // TimeLite
    var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(t,e,i){var s=function(t){e.call(this,t),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var i,s,r=this.vars;for(s in r)i=r[s],o(i)&&-1!==i.join("").indexOf("{self}")&&(r[s]=this._swapSelfInParams(i));o(r.tweens)&&this.add(r.tweens,0,r.align,r.stagger)},r=1e-10,n=i._internals,a=n.isSelector,o=n.isArray,h=n.lazyTweens,l=n.lazyRender,_=[],u=_gsScope._gsDefine.globals,p=function(t){var e,i={};for(e in t)i[e]=t[e];return i},f=function(t,e,i,s){t._timeline.pause(t._startTime),e&&e.apply(s||t._timeline,i||_)},c=function(t){var e,i=[],s=t.length;for(e=0;e!==s;i.push(t[e++]));return i},m=s.prototype=new e;return s.version="1.13.1",m.constructor=s,m.kill()._gc=!1,m.to=function(t,e,s,r){var n=s.repeat&&u.TweenMax||i;return e?this.add(new n(t,e,s),r):this.set(t,s,r)},m.from=function(t,e,s,r){return this.add((s.repeat&&u.TweenMax||i).from(t,e,s),r)},m.fromTo=function(t,e,s,r,n){var a=r.repeat&&u.TweenMax||i;return e?this.add(a.fromTo(t,e,s,r),n):this.set(t,r,n)},m.staggerTo=function(t,e,r,n,o,h,l,_){var u,f=new s({onComplete:h,onCompleteParams:l,onCompleteScope:_,smoothChildTiming:this.smoothChildTiming});for("string"==typeof t&&(t=i.selector(t)||t),a(t)&&(t=c(t)),n=n||0,u=0;t.length>u;u++)r.startAt&&(r.startAt=p(r.startAt)),f.to(t[u],e,p(r),u*n);return this.add(f,o)},m.staggerFrom=function(t,e,i,s,r,n,a,o){return i.immediateRender=0!=i.immediateRender,i.runBackwards=!0,this.staggerTo(t,e,i,s,r,n,a,o)},m.staggerFromTo=function(t,e,i,s,r,n,a,o,h){return s.startAt=i,s.immediateRender=0!=s.immediateRender&&0!=i.immediateRender,this.staggerTo(t,e,s,r,n,a,o,h)},m.call=function(t,e,s,r){return this.add(i.delayedCall(0,t,e,s),r)},m.set=function(t,e,s){return s=this._parseTimeOrLabel(s,0,!0),null==e.immediateRender&&(e.immediateRender=s===this._time&&!this._paused),this.add(new i(t,0,e),s)},s.exportRoot=function(t,e){t=t||{},null==t.smoothChildTiming&&(t.smoothChildTiming=!0);var r,n,a=new s(t),o=a._timeline;for(null==e&&(e=!0),o._remove(a,!0),a._startTime=0,a._rawPrevTime=a._time=a._totalTime=o._time,r=o._first;r;)n=r._next,e&&r instanceof i&&r.target===r.vars.onComplete||a.add(r,r._startTime-r._delay),r=n;return o.add(a,0),a},m.add=function(r,n,a,h){var l,_,u,p,f,c;if("number"!=typeof n&&(n=this._parseTimeOrLabel(n,0,!0,r)),!(r instanceof t)){if(r instanceof Array||r&&r.push&&o(r)){for(a=a||"normal",h=h||0,l=n,_=r.length,u=0;_>u;u++)o(p=r[u])&&(p=new s({tweens:p})),this.add(p,l),"string"!=typeof p&&"function"!=typeof p&&("sequence"===a?l=p._startTime+p.totalDuration()/p._timeScale:"start"===a&&(p._startTime-=p.delay())),l+=h;return this._uncache(!0)}if("string"==typeof r)return this.addLabel(r,n);if("function"!=typeof r)throw"Cannot add "+r+" into the timeline; it is not a tween, timeline, function, or string.";r=i.delayedCall(0,r)}if(e.prototype.add.call(this,r,n),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(f=this,c=f.rawTime()>r._startTime;f._timeline;)c&&f._timeline.smoothChildTiming?f.totalTime(f._totalTime,!0):f._gc&&f._enabled(!0,!1),f=f._timeline;return this},m.remove=function(e){if(e instanceof t)return this._remove(e,!1);if(e instanceof Array||e&&e.push&&o(e)){for(var i=e.length;--i>-1;)this.remove(e[i]);return this}return"string"==typeof e?this.removeLabel(e):this.kill(null,e)},m._remove=function(t,i){e.prototype._remove.call(this,t,i);var s=this._last;return s?this._time>s._startTime+s._totalDuration/s._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},m.append=function(t,e){return this.add(t,this._parseTimeOrLabel(null,e,!0,t))},m.insert=m.insertMultiple=function(t,e,i,s){return this.add(t,e||0,i,s)},m.appendMultiple=function(t,e,i,s){return this.add(t,this._parseTimeOrLabel(null,e,!0,t),i,s)},m.addLabel=function(t,e){return this._labels[t]=this._parseTimeOrLabel(e),this},m.addPause=function(t,e,i,s){return this.call(f,["{self}",e,i,s],this,t)},m.removeLabel=function(t){return delete this._labels[t],this},m.getLabelTime=function(t){return null!=this._labels[t]?this._labels[t]:-1},m._parseTimeOrLabel=function(e,i,s,r){var n;if(r instanceof t&&r.timeline===this)this.remove(r);else if(r&&(r instanceof Array||r.push&&o(r)))for(n=r.length;--n>-1;)r[n]instanceof t&&r[n].timeline===this&&this.remove(r[n]);if("string"==typeof i)return this._parseTimeOrLabel(i,s&&"number"==typeof e&&null==this._labels[i]?e-this.duration():0,s);if(i=i||0,"string"!=typeof e||!isNaN(e)&&null==this._labels[e])null==e&&(e=this.duration());else{if(n=e.indexOf("="),-1===n)return null==this._labels[e]?s?this._labels[e]=this.duration()+i:i:this._labels[e]+i;i=parseInt(e.charAt(n-1)+"1",10)*Number(e.substr(n+1)),e=n>1?this._parseTimeOrLabel(e.substr(0,n-1),0,s):this.duration()}return Number(e)+i},m.seek=function(t,e){return this.totalTime("number"==typeof t?t:this._parseTimeOrLabel(t),e!==!1)},m.stop=function(){return this.paused(!0)},m.gotoAndPlay=function(t,e){return this.play(t,e)},m.gotoAndStop=function(t,e){return this.pause(t,e)},m.render=function(t,e,i){this._gc&&this._enabled(!0,!1);var s,n,a,o,u,p=this._dirty?this.totalDuration():this._totalDuration,f=this._time,c=this._startTime,m=this._timeScale,d=this._paused;if(t>=p?(this._totalTime=this._time=p,this._reversed||this._hasPausedChild()||(n=!0,o="onComplete",0===this._duration&&(0===t||0>this._rawPrevTime||this._rawPrevTime===r)&&this._rawPrevTime!==t&&this._first&&(u=!0,this._rawPrevTime>r&&(o="onReverseComplete"))),this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:r,t=p+1e-4):1e-7>t?(this._totalTime=this._time=0,(0!==f||0===this._duration&&this._rawPrevTime!==r&&(this._rawPrevTime>0||0>t&&this._rawPrevTime>=0))&&(o="onReverseComplete",n=this._reversed),0>t?(this._active=!1,this._rawPrevTime>=0&&this._first&&(u=!0),this._rawPrevTime=t):(this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:r,t=0,this._initted||(u=!0))):this._totalTime=this._time=this._rawPrevTime=t,this._time!==f&&this._first||i||u){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==f&&t>0&&(this._active=!0),0===f&&this.vars.onStart&&0!==this._time&&(e||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||_)),this._time>=f)for(s=this._first;s&&(a=s._next,!this._paused||d);)(s._active||s._startTime<=this._time&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=a;else for(s=this._last;s&&(a=s._prev,!this._paused||d);)(s._active||f>=s._startTime&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=a;this._onUpdate&&(e||(h.length&&l(),this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_))),o&&(this._gc||(c===this._startTime||m!==this._timeScale)&&(0===this._time||p>=this.totalDuration())&&(n&&(h.length&&l(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!e&&this.vars[o]&&this.vars[o].apply(this.vars[o+"Scope"]||this,this.vars[o+"Params"]||_)))}},m._hasPausedChild=function(){for(var t=this._first;t;){if(t._paused||t instanceof s&&t._hasPausedChild())return!0;t=t._next}return!1},m.getChildren=function(t,e,s,r){r=r||-9999999999;for(var n=[],a=this._first,o=0;a;)r>a._startTime||(a instanceof i?e!==!1&&(n[o++]=a):(s!==!1&&(n[o++]=a),t!==!1&&(n=n.concat(a.getChildren(!0,e,s)),o=n.length))),a=a._next;return n},m.getTweensOf=function(t,e){var s,r,n=this._gc,a=[],o=0;for(n&&this._enabled(!0,!0),s=i.getTweensOf(t),r=s.length;--r>-1;)(s[r].timeline===this||e&&this._contains(s[r]))&&(a[o++]=s[r]);return n&&this._enabled(!1,!0),a},m._contains=function(t){for(var e=t.timeline;e;){if(e===this)return!0;e=e.timeline}return!1},m.shiftChildren=function(t,e,i){i=i||0;for(var s,r=this._first,n=this._labels;r;)r._startTime>=i&&(r._startTime+=t),r=r._next;if(e)for(s in n)n[s]>=i&&(n[s]+=t);return this._uncache(!0)},m._kill=function(t,e){if(!t&&!e)return this._enabled(!1,!1);for(var i=e?this.getTweensOf(e):this.getChildren(!0,!0,!1),s=i.length,r=!1;--s>-1;)i[s]._kill(t,e)&&(r=!0);return r},m.clear=function(t){var e=this.getChildren(!1,!0,!0),i=e.length;for(this._time=this._totalTime=0;--i>-1;)e[i]._enabled(!1,!1);return t!==!1&&(this._labels={}),this._uncache(!0)},m.invalidate=function(){for(var t=this._first;t;)t.invalidate(),t=t._next;return this},m._enabled=function(t,i){if(t===this._gc)for(var s=this._first;s;)s._enabled(t,!0),s=s._next;return e.prototype._enabled.call(this,t,i)},m.duration=function(t){return arguments.length?(0!==this.duration()&&0!==t&&this.timeScale(this._duration/t),this):(this._dirty&&this.totalDuration(),this._duration)},m.totalDuration=function(t){if(!arguments.length){if(this._dirty){for(var e,i,s=0,r=this._last,n=999999999999;r;)e=r._prev,r._dirty&&r.totalDuration(),r._startTime>n&&this._sortChildren&&!r._paused?this.add(r,r._startTime-r._delay):n=r._startTime,0>r._startTime&&!r._paused&&(s-=r._startTime,this._timeline.smoothChildTiming&&(this._startTime+=r._startTime/this._timeScale),this.shiftChildren(-r._startTime,!1,-9999999999),n=0),i=r._startTime+r._totalDuration/r._timeScale,i>s&&(s=i),r=e;this._duration=this._totalDuration=s,this._dirty=!1}return this._totalDuration}return 0!==this.totalDuration()&&0!==t&&this.timeScale(this._totalDuration/t),this},m.usesFrames=function(){for(var e=this._timeline;e._timeline;)e=e._timeline;return e===t._rootFramesTimeline},m.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},s},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(t){"use strict";var e=function(){return(_gsScope.GreenSockGlobals||_gsScope)[t]};"function"==typeof define&&define.amd?define(["TweenLite"],e):"undefined"!=typeof module&&module.exports&&(require("./TweenLite.js"),module.exports=e())}("TimelineLite");

    // Detect Mobile
    (function(a){(jQuery.browser=jQuery.browser||{}).mobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))})(navigator.userAgent||navigator.vendor||window.opera);

    // Tap
    !function(a,b){"use strict";var c,d,e,f="._tap",g="._tapActive",h="tap",i="clientX clientY screenX screenY pageX pageY".split(" "),j={count:0,event:0},k=function(a,c){var d=c.originalEvent,e=b.Event(d);e.type=a;for(var f=0,g=i.length;g>f;f++)e[i[f]]=c[i[f]];return e},l=function(a){if(a.isTrigger)return!1;var c=j.event,d=Math.abs(a.pageX-c.pageX),e=Math.abs(a.pageY-c.pageY),f=Math.max(d,e);return a.timeStamp-c.timeStamp<b.tap.TIME_DELTA&&f<b.tap.POSITION_DELTA&&(!c.touches||1===j.count)&&o.isTracking},m=function(a){if(!e)return!1;var c=Math.abs(a.pageX-e.pageX),d=Math.abs(a.pageY-e.pageY),f=Math.max(c,d);return Math.abs(a.timeStamp-e.timeStamp)<750&&f<b.tap.POSITION_DELTA},n=function(a){if(0===a.type.indexOf("touch")){a.touches=a.originalEvent.changedTouches;for(var b=a.touches[0],c=0,d=i.length;d>c;c++)a[i[c]]=b[i[c]]}a.timeStamp=Date.now?Date.now():+new Date},o={isEnabled:!1,isTracking:!1,enable:function(){o.isEnabled||(o.isEnabled=!0,c=b(a.body).on("touchstart"+f,o.onStart).on("mousedown"+f,o.onStart).on("click"+f,o.onClick))},disable:function(){o.isEnabled&&(o.isEnabled=!1,c.off(f))},onStart:function(a){a.isTrigger||(n(a),(!b.tap.LEFT_BUTTON_ONLY||a.touches||1===a.which)&&(a.touches&&(j.count=a.touches.length),o.isTracking||(a.touches||!m(a))&&(o.isTracking=!0,j.event=a,a.touches?(e=a,c.on("touchend"+f+g,o.onEnd).on("touchcancel"+f+g,o.onCancel)):c.on("mouseup"+f+g,o.onEnd))))},onEnd:function(a){var c;a.isTrigger||(n(a),l(a)&&(c=k(h,a),d=c,b(j.event.target).trigger(c)),o.onCancel(a))},onCancel:function(a){a&&"touchcancel"===a.type&&a.preventDefault(),o.isTracking=!1,c.off(g)},onClick:function(a){return!a.isTrigger&&d&&d.isDefaultPrevented()&&d.target===a.target&&d.pageX===a.pageX&&d.pageY===a.pageY&&a.timeStamp-d.timeStamp<750?(d=null,!1):void 0}};b(a).ready(o.enable),b.tap={POSITION_DELTA:10,TIME_DELTA:400,LEFT_BUTTON_ONLY:!0}}(document,jQuery);

    // Device
    $.browser.device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));

    var sb = 0;
    var bb = 0;

    var MsgTimer;
    var SidePanelTimer;
    var SpecialLoadingTimer;
    var SpecialIdx = 0;
    var CurrentLoading = 0;
    var ResizeTimer;

    // Global behavior
    $(document).ready(function(){
        var NewContent;
            NewContent  = '<div id="mnSBcontainerTR" align="right"></div>';
            NewContent += '<div id="mnSBcontainerTL"></div>';
            NewContent += '<div id="mnSBcontainerBL"></div>';
            NewContent += '<div id="mnSBcontainerBR" align="right"></div>';
            NewContent += '<div id="mbBbTabContainer"></div>';
            NewContent += '<div id="mnBigBoxContainerBR"></div>';
            NewContent += '<div id="mnBigBoxContainerBL"></div>';
            NewContent += '<span id="mnLetterCounter"></span>';

        $("body").append(NewContent);


        // Smallboxes Dependency
        $("body").on("mouseenter",".mnSbButtonSection button",function(){
            var Color = $(this).attr("data-hover");
            var bot = $(this);
            TweenLite.to( bot, 0.5, { backgroundColor: Color } );
        });

        $("body").on("mouseleave",".mnSbButtonSection button",function(){
            var Color = $(this).attr("data-leave");
            var bot = $(this);
            TweenLite.to( bot, 0.5, { backgroundColor: Color } );
        });


        $("body").on("tap",".mnSmallBox",function(){
            var CloseOnClick = $(this).attr("data-closeclick");
            if(CloseOnClick == "true"){

            	$(this).find(".sbClose").click();
                DestroySmallBox($(this));
            }
        });

        $("body").on("mouseenter",".mnSmallBox",function(){
            $(this).attr("data-mouseover","true");
        });

        $("body").on("mouseleave",".mnSmallBox",function(){
            $(this).removeAttr("data-mouseover");
        });


        // BigBoxes Dependency
        $("body").on("tap",".mnBbTab",function(){
            HideAllBigBoxes();
            var BigBox = $(this).attr("data-bigbox");
            var tl = new TimelineLite();

            tl.to(BigBox,0.5, { autoAlpha:1 } );
        });

        $("body").on("tap",".mnBbClose",function(){
            var BigBox = $($(this).attr("data-closebigbox"));

            BigBox.find(".bbClose").click();

            BigBox.removeAttr("data-mouseover");
            DestroyBigBox(BigBox);

            setTimeout(function() {

                if( $(".mnBigBox").length-1 >= 0 ){
                    var BigBoxNext = $(".mnBigBox:last");
                    var tl = new TimelineLite();
                        tl.to( BigBoxNext, 0.3, { autoAlpha:1 } );
                }
            }, 405);
            
        });

        $("body").on("mouseenter",".mnBbIconSection button",function(){

            var HoverColor = $(this).attr("data-hovercolor");
            var bot = $(this);
            TweenLite.to( bot, 0.5, { backgroundColor: HoverColor } );
        });

        $("body").on("mouseleave",".mnBbIconSection button",function(){
            var NormalColor = $(this).attr("data-normalcolor");
            var bot = $(this);
            TweenLite.to( bot, 0.5, { backgroundColor: NormalColor } );
        });

        $("body").on("mouseenter",".mnBigBox",function(){
            $(this).attr("data-mouseover","true");
        });

        $("body").on("mouseleave",".mnBigBox",function(){
            $(this).removeAttr("data-mouseover");
        });


        // Metro MessageBox Dependency
        $("body").on("mouseenter", ".mbMsgBoxButtonSection button",function(){
            var HoverColor = $(this).attr("data-hovercolor");
            var bot = $(this);
            TweenLite.to( bot, 0.2, { backgroundColor: HoverColor } );
        });

        $("body").on("mouseleave", ".mbMsgBoxButtonSection button",function(){
            var HoverColor = $(this).attr("data-normalcolor");
            var bot = $(this);
            TweenLite.to( bot, 0.2, { backgroundColor: HoverColor } );
        });

        $("body").on("keypress",".mbMsgBoxButtonSection button",function(e){
            
            if( $(this).is(":focus") ){
                if( e.keyCode == 13){
                    $(this).trigger("tap");
                }
            }
        });

        // Input Box counter
        $("body").on("keyup",".mnInputField,.mnTextareaField",function(){

            var Input = $(this);
            var txtCounter = $("#mnLetterCounter");

            var ShowCounter = txtCounter.attr("data-show");

            if(ShowCounter=="no"){
                return;
            }

            
            var Max = Input.attr("maxlength");

            TweenLite.to( txtCounter, 0.3, { autoAlpha:1 } );

            var HowMany = Input.val();
                HowMany = HowMany.length;


            txtCounter.text("( "+ HowMany + " / " + " " + Max + " )");

        });

        // Default Button Press Enter
        $("body").on("keyup",".mnInputField",function(e){


            if(e.keyCode != 13){
                return false;
            }

            $(".mbMsgBoxButtonSection  button").each(function(e){
                var isDefault = $(this).attr("data-default");
                if( isDefault == "true" ){
                    $(this).trigger("tap");
                    return;
                }

            });

        });

        // Metro SidePanel AutoClose
        $('html').on("tap",function() {
			if( $(".mnSidePanel").length >0 ){

                $(".mnSidePanel").each(function(){
                    var MetroSidePanel = $(this);
                    var isOver = $(this).attr("data-mouseover");

                    if( isOver == "false" ){
                        DestroySidePanel( MetroSidePanel );
                    }

                });
            }
		});

		$("body").on("tap", ".mnSidePanel", function(event){
		    event.stopPropagation();
		});

        // Resize Changes
        $(window).on("resize",function(){
            
            clearInterval(ResizeTimer);
            ResizeTimer = setTimeout(function() {
                $(".mnSmallBox").each(function(){
                    CheckSpaceSB($(this));
                });

                $(".mnBigBox").each(function(){
                	CheckSpaceBB($(this));
                });

                $(".mnSidePanel").each(function(){
                	CheckSpaceSP($(this));
                })

            }, 300);
            

        });


    }); // End Ready

    function PlaySound(Path, sound){
        var audioElement = document.createElement('audio');
        if (navigator.userAgent.match('Firefox/'))
            audioElement.setAttribute('src',  "/" + Path + "/" + sound  +'.ogg');
        else
            audioElement.setAttribute('src',  "/" + Path + "/" + sound  +'.mp3');
        

        $.get();
        audioElement.addEventListener("load", function() {
            audioElement.play();
        }, true);

        audioElement.pause();
        audioElement.play();
    }


    // Destroy SmallBox
    function DestroySmallBox(SmallBox,nuke){

        var Position     = SmallBox.attr("data-posiiton")*1;
        var MouseOver    = SmallBox.attr("data-mouseover");
        var CloseOnClick = SmallBox.attr("data-closeclick");

        if( nuke === undefined ) {
        	if( MouseOver !== undefined && CloseOnClick == "false" ){
	            SmallBox.bind("mouseleave",function(){
	                $(this).removeAttr("data-mouseover");
	                $(this).unbind("mouseleave");
	                DestroySmallBox($(this));
	            });
	            return false
	        }
        }

        var tl = new TimelineLite();

        switch(Position){
            case 1:
                tl.to( SmallBox, 0.4, { autoAlpha:0 } )
                  .to( SmallBox, 0.8, { left:"+=150px", ease:Bounce.easeOut },"-=0.4")
                  .to( SmallBox, 1, { height:"0px", marginBottom: "0px", ease:Bounce.easeOut }, "-=0.5" );
            break;

            case 2:
                tl.to( SmallBox, 0.4, { autoAlpha:0 } )
                  .to( SmallBox, 0.8, { right:"+=150px", ease:Bounce.easeOut },"-=0.4")
                  .to( SmallBox, 1, { height:"0px", marginBottom: "0px", ease:Bounce.easeOut }, "-=0.5" );
            break;

            case 3:
                tl.to( SmallBox, 0.4, { autoAlpha:0 } )
                  .to( SmallBox, 0.8, { right:"+=150px", ease:Bounce.easeOut },"-=0.4")
                  .to( SmallBox, 1, { height:"0px", marginBottom: "0px", ease:Bounce.easeOut }, "-=0.5" );
            break;

            case 4:
                tl.to( SmallBox, 0.4, { autoAlpha:0 } )
                  .to( SmallBox, 0.8, { left:"+=150px", ease:Bounce.easeOut },"-=0.4")
                  .to( SmallBox, 1, { height:"0px", marginBottom: "0px", ease:Bounce.easeOut }, "-=0.5" );
            break;
        }

        setTimeout(function() {
            SmallBox.remove();
        }, 1800);
    }


    $.smallBoxKill = function(){

        $(".mnSmallBox").each(function(){
            DestroySmallBox($(this));
        });

    }

    $.sidePanelKill = function(){

        $(".mnSidePanel").each(function(){
            $(this).attr("data-blocked","false");
            DestroySidePanel($(this));
        });

    }

    // Destroy Side Panels
    function DestroySidePanel( MetroSidePanel ){

        var MouseOver    = MetroSidePanel.attr("data-mouseover");

        var SidePanelBlocked = MetroSidePanel.attr("data-blocked");

        if(SidePanelBlocked == "true" ){
            return false
        }

        var tl = new TimelineLite();

        if( MetroSidePanel.hasClass("mnspRight") ){
            tl.to( MetroSidePanel, 0.4, { autoAlpha:0 } )
              .to( MetroSidePanel, 1, { right: "-=150", ease:Bounce.easeOut }, "-=0.4" );
        }else{
            tl.to( MetroSidePanel, 0.4, { autoAlpha:0 } )
              .to( MetroSidePanel, 1, { left: "-=150", ease:Bounce.easeOut }, "-=0.4" );
        }

        

        setTimeout(function() {
            MetroSidePanel.remove();
        }, 410);

        clearInterval(SidePanelTimer);
    }


    // Destroy BigBox
    function DestroyBigBox(BigBox, nuke){

        var bbTab = $(BigBox.attr("data-bbtab"));

        var MouseOver    = BigBox.attr("data-mouseover");

        if( nuke == undefined ){
        	if(MouseOver !== undefined ){
	            BigBox.bind("mouseleave",function(){
	                $(this).removeAttr("data-mouseover");
	                $(this).unbind("mouseleave");
	                DestroyBigBox($(this));
	            });
	            return false
	        }
        }

        


        var tl = new TimelineLite();
        tl.to( BigBox, 0.4, { autoAlpha:0 } )
          .to( BigBox, 1, { bottom: "-=150", ease:Bounce.easeOut }, "-=0.4" )
          .to( bbTab, 1, { left: "+=100", ease:Bounce.easeOut }, "-=1" )
          .to( bbTab, 1, { height: "0px", marginBottom: "0px", paddingTop: "5px", ease:Bounce.easeOut }, "-=0.5" )

        setTimeout(function() {
            bbTab.slideUp();
        }, 100);

        setTimeout(function(){
            BigBox.remove();
            bbTab.remove();
        },400);
    }

    function HideAllBigBoxes(){
        $(".mnBigBox").each(function(){

            var BigBox = $(this);
            var tl = new TimelineLite();

            tl.to(BigBox, 0.5, { autoAlpha:0 } );

        });
    }

    function ChangeText(){
        SpecialIdx +=1;

        if( SpecialIdx > LoadingArray.length-1  ){
            SpecialIdx = 0;
        }

        $(".mnMlTitle").html(LoadingArray[SpecialIdx]);
    }

    // Kill all bigboxes
     $.bigBoxKill = function(){
        $(".mnBigBox").each(function(){
            DestroyBigBox($(this));
        });
    }

    // Destroy Metro Messagebox
    function DestroyMessageBox(MetroMessageBox){

        var MetroBackground = $( MetroMessageBox.attr("data-background") );

        var tl = new TimelineLite();

        var txtLetterCounter = $("#mnLetterCounter");

        tl.to( txtLetterCounter, 0.3, { autoAlpha:0 } )
          .to( MetroBackground, 0.3, { autoAlpha:0 }, "-=0.3" )
          .to( MetroMessageBox, 0.3, { autoAlpha:0 }, "-=0.3" )
          .to( $("#mnLetterCounter"), 0.3, { autoAlpha:0 },"-=0.3");

        setTimeout(function() {
            MetroBackground.remove();
            MetroMessageBox.remove();
        }, 300);

        document.body.style.overflow = "visible";
        clearInterval(MsgTimer);
    }

    // Destroy Metro Loading
    function DestoytLoading(MetroLoading){

        clearInterval(MsgTimer);
        var MetroLoadingBG = $( MetroLoading.attr("data-loadingbg") );

        var tl = new TimelineLite();

        tl.to( MetroLoadingBG, 0.3, { autoAlpha:0 } )
          .to( MetroLoading, 0.3, { autoAlpha:0 },"-=0.3" );

        setTimeout(function() {
            MetroLoadingBG.remove();
            MetroLoading.remove();
        }, 300);

        document.body.style.overflow = "visible";
    }

    // Kill all bigboxes
    $.metroLoadingKill = function(){

        clearInterval(SpecialLoadingTimer);
        CurrentLoading = 0;

        $(".mnMlMainContent").each(function(){
            DestoytLoading($(this));
        });
    }

    // iFrame Cache Loading
    var mspLoading;
    function LoadiFrameWithCache(MetroSidePanel, URL){

        $iframe = $('<iframe class="mspIframeLoaded">');
        $iframe.attr({src: URL });

        // $iframe.appendTo( MetroSidePanel.find('.mmiFrameContainerWT') );
        $iframe.appendTo( MetroSidePanel);

        $iframe.load(function() {
            MetroSidePanel.find('.mspLoadingFrame').remove();
            var tl = new TimelineLite();
                tl.to( $iframe, 0.5, { autoAlpha:1 } );
        });
    }



    // Check Smallboxes Space
    function CheckSpaceSB(SmallBox){

        var WindowWidth   = $(document).width();
        var SmallBoxWidth = SmallBox.width();

        var SmallBoxOriginalWidth = eval(SmallBox.attr("data-width")); 

        if( WindowWidth <= (SmallBoxWidth + 5) ){
            SmallBox.css("width", (WindowWidth -5)+"px"  );
        }else{
            if( WindowWidth >= ( SmallBoxOriginalWidth+5 ) ){
                TweenLite.to( SmallBox, 0.3, { width: SmallBoxOriginalWidth } );
            }else{
                TweenLite.to( SmallBox, 0.3, { width: (WindowWidth-5) } );    
            }
        }

        // Move to the other Container if screen is too small
        if( WindowWidth < 700 ){
            $("#mnSBcontainerTL .mnSmallBox").each(function(){
                $(this).appendTo($("#mnSBcontainerTR"))
            });

            $("#mnSBcontainerBL .mnSmallBox").each(function(){
                $(this).appendTo($("#mnSBcontainerBR"));
            });

            $(".mnSidePanel").each(function(){
            	CheckSpaceSP(MetroSidePanel);
            });
        }
    }


    function CheckSpaceBB(BigBox){
    	
    	var WindowWidth   = $(document).width();
        var BigBoxWidth   = BigBox.width();

        var BigBoxOriginalWidth = eval(BigBox.attr("data-width")); 

        if( WindowWidth <= (BigBoxWidth + 18) ){
            BigBox.css("width", (WindowWidth -18)+"px"  );
        }else{
            if( WindowWidth >= ( BigBoxOriginalWidth+18 ) ){
                TweenLite.to( BigBox, 0.3, { width: BigBoxOriginalWidth } );
            }else{
                TweenLite.to( BigBox, 0.3, { width: (WindowWidth-18) } );    
            }
        }

    }

    function CheckSpaceSP(MetroSidePanel){

    	var WindowWidth         = $(document).width();
        var MetroSidePanelWidth = MetroSidePanel.width();

        var MetroSidePanelOriginalWidth = eval(MetroSidePanel.attr("data-width")); 

        if( WindowWidth < (MetroSidePanelWidth+30) ){
        	MetroSidePanel.css("width", (WindowWidth -30)+"px"  );
        }else{

        	if( WindowWidth >= ( MetroSidePanelOriginalWidth+30 ) ){
                TweenLite.to( MetroSidePanel, 0.3, { width: MetroSidePanelOriginalWidth } );
            }else{
                TweenLite.to( MetroSidePanel, 0.3, { width: (WindowWidth-30) } );    
            }

        }

    }


    // ======================================= Small boxes
    $.smallBox = function (settings,callback) 
    {
        settings = $.extend({
            position: 1,
            title: undefined,
            content: "",
            width: 350,
            img: undefined,
            icon: undefined,
            fa: undefined,
            sound: true,
            soundpath: "static/sound/",
            color: "#6D1D99",
            timeout: undefined,
            colortime: 1000,
            delay:0,
            colors:[],
            closeonclick: true,
            buttons: [],
            buttonhover: "#3E006E",
        }, settings);

        var Content = "";

        var WindowWidth = $(document).width();

        sb +=1;

        // Mobile Ajustments
        if(WindowWidth < 700 ){
            settings.sound = false;

            if(settings.position == 2){
                settings.position =1
            }else if(settings.position==3){
                settings.position = 4;
            }
        }

        // Play sound
        if( settings.sound ){
            PlaySound(settings.soundpath, "smallbox");    
        }

        if( settings.colors.length>0){
            settings.color = settings.colors[0];
        }

        // Buttons ajustment
        if( settings.buttons.length >0){
            settings.closeonclick = false;
        }
        

        Content += "<div id='sb"+ sb +"' class='mnSmallBox' style='width: "+ settings.width +"px;background-color:"+ settings.color +";' align='left'>";
        Content +=     "<i class='sbClose'></i><table>";
        Content +=         " <tr>";

        if( settings.img !== undefined){
            Content +=             "<td class='mnSbMainImage'>";
            Content +=                 "<img src='"+ settings.img +"'>";
            Content +=              "</td>";
        }

        Content +=             "<td class='mnSbContent'>";

        if( settings.title !== undefined ){
            Content +=                 "<span class='mnSbTitle'>" + settings.title + "</span>";
        }

        Content +=                 "<span class='mnSbContent'>"+ settings.content +"</span>";
        Content +=              "</td>";


        if( settings.buttons.length > 0){

            Content += "<td class='mnSbButtonSection'>"
                for(var i =0; i<= settings.buttons.length-1; i++){
                    Content += "<button data-leave='"+ settings.color +"' data-hover='"+ settings.buttonhover +"' style='background-color:"+settings.color+"'> "+ settings.buttons[i] +" </button>";
                }
            Content += "</td>";


        }else{

            if( settings.icon !== undefined || settings.fa !== undefined){

                Content +=             "<td>";
                Content +=                 "<div class='mnSbIcon' aling='center'>";
                if(settings.icon !== undefined){
                    Content +=                     "<img src='"+ settings.icon +"'>";
                }else{
                    Content +=                     "<i class='fa "+ settings.fa +"'></i>";
                }
                Content +=                  "</div>";
                Content +=              "</td>";
            }
        }

        Content +=          "</tr>";
        Content +=      "</table>";
        Content +=  "</div>";


        // Placing in the correct position
        switch(settings.position){
            case 1:
             $("#mnSBcontainerTR").append(Content);
            break;

            case 2:
             $("#mnSBcontainerTL").append(Content);
            break;

            case 3:
             $("#mnSBcontainerBL").prepend(Content);
            break;

            case 4:
             $("#mnSBcontainerBR").prepend(Content);
            break;
            default:
                $("#mnSBcontainerTR").append(Content);
                settings.position = 1;
            break;
        }

        var SmallBox = $("#sb"+sb);
            SmallBox.attr("data-closeclick",settings.closeonclick)
                    .attr("data-posiiton",settings.position )
                    .attr("data-width", settings.width);

        CheckSpaceSB(SmallBox);


        var tl = new TimelineLite();

        switch(settings.position){
            case 1:
                SmallBox.css("left","50px");
                tl.to( SmallBox, 0.4, { autoAlpha:1, delay:settings.delay } )
                  .to( SmallBox, 0.8, { left:"0px", ease:Bounce.easeOut },"-=0.4");
            break;

            case 2:
                SmallBox.css("right","50px");
                tl.to( SmallBox, 0.4, { autoAlpha:1 , delay:settings.delay} )
                  .to( SmallBox, 0.8, { right:"0px", ease:Bounce.easeOut },"-=0.4");
            break;

            case 3:
                SmallBox.css("right","50px");
                tl.to( SmallBox, 0.4, { autoAlpha:1 , delay:settings.delay} )
                  .to( SmallBox, 0.8, { right:"0px", ease:Bounce.easeOut },"-=0.4");
            break;

            case 4:
                SmallBox.css("left","50px");
                tl.to( SmallBox, 0.4, { autoAlpha:1, delay:settings.delay } )
                  .to( SmallBox, 0.8, { left:"0px", ease:Bounce.easeOut },"-=0.4");
            break;
        }

        

        // Colors - Array
        if( settings.colors.length >0){
            setInterval(function() {

                if( SmallBox.attr("data-indexcolor") === undefined){
                    SmallBox.attr("data-indexcolor", "0");
                }


                var ColorIdx = SmallBox.attr("data-indexcolor")*1;
                if(ColorIdx >= settings.colors.length-1){
                    ColorIdx = 0;
                }else{
                    ColorIdx +=1;
                }

                var NextColor = settings.colors[ColorIdx];
                tl.to( SmallBox, 0.8, { backgroundColor:NextColor });
                SmallBox.attr("data-indexcolor", ColorIdx );


            }, settings.colortime);
        }

        // Auto Close
        if( settings.timeout !== undefined){
            setTimeout(function() {
                if (typeof callback == "function"){   
                      if(callback)callback("timeoutReach");
                } 
                DestroySmallBox(SmallBox);
            }, settings.timeout);
        }


        // Bind special close
        SmallBox.find(".sbClose").bind("click",function(){
        	if (typeof callback == "function"){   
                  if(callback)callback("touchClose");
            } 
        });

        // Binding a button functions
        if( settings.buttons.length > 0){
            SmallBox.find(".mnSbButtonSection button").bind("tap",function(){

                $(this).unbind("tap");
                var ButtonText = $(this).text();
                if (typeof callback == "function"){   
                      if(callback)callback("buttonPress",ButtonText);
                } 
                DestroySmallBox(SmallBox,true);
            });
        }


    }// End Smallbox




    // ======================================= Big Boxes
    $.bigBox = function (settings,callback) 
    {
        settings = $.extend({
            position: 1,
            title: undefined,
            content: "",
            width: 350,
            img: undefined,
            fa: "fa-star",
            sound: true,
            soundpath: "static/sound/",
            color: "#6D1D99",
            timeout: undefined,
            colortime: 1000,
            delay:0,
            colors:[],
            closeicon: true,
            tabicon: true,
            buttons: [],
            buttonhover: "#3E006E",
            number: undefined,
        }, settings);

        var Content = "";

        bb +=1;

        // Hide All other BigBoxes
        HideAllBigBoxes();

        // Mobile Ajustments
        if($.browser.mobile){
            settings.sound = false;

            if(settings.position == 2){
                settings.position =1
            }
        }


        // Play sound
        if( settings.sound ){
            PlaySound(settings.soundpath, "bigbox");    
        }

        if( settings.colors.length>0){
            settings.color = settings.colors[0];
        }

        // Buttons ajustment
        if( settings.buttons.length >0){
            settings.closeicon = false;
        }


        Content +=  "<div id='bb"+ bb +"' class='mnBigBox' style='background-color:"+ settings.color +"; width:"+ settings.width +"px;' data-bbtab='#bbt"+ bb +"'>";
        Content +=  "<i class='bbClose'></i>";
        Content +=      "<table>";
        Content +=          "<tr>";
        Content +=              "<td>";

        if(settings.title !== undefined){
            Content +=           "<span class='mnBbTitle'>"+ settings.title +"</span>";
        }

        if(settings.closeicon){
            Content +=                  "<i data-closebigbox='#bb"+ bb +"' class='mnBbClose fa fa-times fa-2x'></i>";
        }

        Content +=                  "<span class='mnBbContent'>";
        Content +=                      settings.content;
        Content +=                   "</span>";
        Content +=               "</td>";
        Content +=           "</tr>";

        if( settings.buttons.length == 0){
            Content +=          " <tr>";
            Content +=              " <td class='mnBbIconSection'>";

            if( settings.img !== undefined){
                Content += "<img src='"+ settings.img +"' class='mnBbIconImg'>";
            }else{
                Content +="<i class='fa "+ settings.fa +"'></i>";
            }

            if( settings.number !== undefined){
                Content += "<span class='mnBbIndicator'>"+ settings.number +"</span>";
            }
            
            Content +=               "</td>";
            Content +=           "</tr>";            

        }else{

            Content +=          " <tr>";
            Content +=              " <td class='mnBbIconSection'>";
            // Buttons
            for( var i=0; i<= settings.buttons.length-1; i++){
                Content += "<button style='background-color:"+ settings.color +";' data-hovercolor='"+ settings.buttonhover+"' data-normalcolor='"+ settings.color +"' >"+ settings.buttons[i] +"</button>";
            }
            Content +=               "</td>";
            Content +=           "</tr>";
            Content +=       "</table>";
            
        }

        Content +=   "</div>";

        var TabContent = "";
        if( settings.tabicon ){
            TabContent += '<div id="bbt'+bb+'" class="mnBbTab" align="center" style="background-color:'+ settings.color +'" data-bigbox="#bb'+bb+'">';

            if(settings.img === undefined){
                if( settings.fa === undefined){
                    TabContent +=     '<i class="fa fa-star-o"></i>';
                }else{
                    TabContent +=     '<i class="fa '+ settings.fa +'"></i>';
                }

            }else{
                TabContent += '<img src="'+ settings.img +'">';
            }
            TabContent += '</div>';

            $("#mbBbTabContainer").append(TabContent);

            var bbTab = $("#bbt"+bb);

            var tl = new TimelineLite();
            bbTab.css("left","50px");
                tl.to( bbTab, 0.5, { autoAlpha:1, delay: (settings.delay + 0.5) } )
                  .to( bbTab, 0.8, { left:"0px", ease:Bounce.easeOut },"-=0.5");
        }



        if( settings.position == 1){
            $("#mnBigBoxContainerBR").append(Content);
        }else{
            $("#mnBigBoxContainerBL").append(Content);
        }

        var BigBox = $("#bb"+bb);

        	BigBox.attr("data-width",settings.width);
        	CheckSpaceBB(BigBox);


        // Enter animation
        var tl = new TimelineLite();

        BigBox.css("bottom","50px");
                tl.to( BigBox, 0.5, { autoAlpha:1, delay:settings.delay } )
                  .to( BigBox, 0.8, { bottom:"0px", ease:Bounce.easeOut },"-=0.5");
        


        // Colors - Array
        if( settings.colors.length >0){
            setInterval(function() {

                if( BigBox.attr("data-indexcolor") === undefined){
                    BigBox.attr("data-indexcolor", "0");
                }

                var bbTab = $(BigBox.attr("data-bbtab"));

                var ColorIdx = BigBox.attr("data-indexcolor")*1;
                if(ColorIdx >= settings.colors.length-1){
                    ColorIdx = 0;
                }else{
                    ColorIdx +=1;
                }

                var NextColor = settings.colors[ColorIdx];
                tl.to( BigBox, 0.8, { backgroundColor:NextColor })
                  .to( bbTab, 0.8, { backgroundColor:NextColor }, "-=0.8" );

                BigBox.attr("data-indexcolor", ColorIdx );


            }, settings.colortime);
        }




        // Auto Close
        if( settings.timeout !== undefined){
            setTimeout(function() {
                if (typeof callback == "function"){   
                      if(callback)callback("timeoutReach");
                } 
                DestroyBigBox(BigBox);
            }, settings.timeout);
        }


        BigBox.find(".bbClose").bind("click",function(){
        	if (typeof callback == "function"){   
                  if(callback)callback("closeIconTouch");
            } 
        });

        // Binding a button functions
        if( settings.buttons.length > 0){
            BigBox.find(".mnBbIconSection button").bind("tap",function(){

                $(this).unbind("tap");

                var ButtonText = $(this).text();

                if (typeof callback == "function"){   
                      if(callback)callback("buttonPress",ButtonText);
                } 
                DestroyBigBox(BigBox, true);

                setTimeout(function() {
                    if( $(".mnBigBox").length-1 >= 0 ){
                        var BigBoxNext = $(".mnBigBox:last");
                        var tl = new TimelineLite();
                            tl.to( BigBoxNext, 0.3, { autoAlpha:1 } );
                    }
                }, 405);
            });
        }


    } // End Big Boxes



    // ======================================= Metro MessageBox - Inputs
    var mm = 0;
    $.metroMessageBox = function (settings,callback) 
    {

        settings = $.extend({
            title: undefined,
            content: undefined,
            normalbutton: undefined,
            activebutton: "#6D1D99",
            buttons: [],
            icons: [],
            defaultbutton: undefined,
            sound: true,
            input: undefined,
            defaultvalue: '',
            placeholder: "",
            maxlength: 1000,
            showcounter: true,
            options: [],
            values: [],
            soundpath: "static/sound/",
            backgroundcolor: "#000000",
            backgroundcontent: "#232323",
            blockpage: true,
            opacity: 0.7,
            colortime: 1500,
            colors: [],
            timeout: undefined,
        }, settings);

        var Content = "";

        mm += 1;

        // Mobile Ajustments
        if($.browser.mobile){
            settings.sound = false;
        }

        // Play sound
        if( settings.sound ){
            PlaySound(settings.soundpath, "messagebox");    
        }

        if( settings.normalbutton === undefined){
            settings.normalbutton = settings.backgroundcontent;
        }


        // Block Scroll
        if( settings.blockpage ){
            document.body.style.overflow="hidden";
        }

        if( settings.showcounter ){
            $("#mnLetterCounter").attr("data-show","yes");
        }else{
            $("#mnLetterCounter").attr("data-show","no");
        }


        // Input section
        var NewInput = "";
        if( settings.input !== undefined){

            NewInput += "<span class='mbMsgBoxTextContent'>";

            switch( settings.input ){
                case "text":
                    NewInput = "<input class='mnInputField' type='text' placeholder='" + settings.placeholder + "' maxlength='" + settings.maxlength + "' value='" + settings.defaultvalue + "' >";
                break;

                case "textarea":
                    NewInput = "<textarea class='mnTextareaField' type='text' placeholder='"+ settings.placeholder +"' maxlength='"+ settings.maxlength +"'>"+settings.defaultvalue+"</textarea>";
                break;

                case "password":
                    NewInput = "<input class='mnInputField' type='password' placeholder='"+ settings.placeholder +"' maxlength='"+ settings.maxlength +"'>";
                break;

                case "email":
                    NewInput = "<input class='mnInputField' type='email' placeholder='"+ settings.placeholder +"' maxlength='"+ settings.maxlength +"' value='" + settings.defaultvalue + "'>";
                break;

                case "select":
                    if(settings.options.length == 0){
                        alert("Metro Notifications: I required 'options', to display the Input Selectbox");
                        document.body.style.overflow="visible";
                        return;
                    }
                    NewInput  = "<select class='mnSelectField'>";

                    for( var i=0; i<= settings.options.length-1; i++){

                        var Value = settings.options[i];
                        if( settings.values[i] !=undefined){
                            Value = settings.values[i];
                        }

                        if (Value == settings.defaultvalue) {
                            NewInput += "<option selected='selected' value='" + Value + "'>" + settings.options[i] + "</option>";
                        }
                        else {
                            NewInput += "<option value='" + Value + "'>" + settings.options[i] + "</option>";
                        }
                    }
                    

                    NewInput += "</select>";
                break;
                default:
                    alert("Metro Notifications: That input type is not supported")
                break;

            }

            NewInput += "</span>";
        }


        Content = "<div id='mnMmBg"+ mm +"' class='mnMmBackScreen' style='background-color:"+ settings.backgroundcolor +"'></div>";
        $("body").append(Content);
        
        Content  =   "<div id='mnMmBox"+ mm +"' class='mnMsgBox' data-background='#mnMmBg"+mm+"'>";
        Content +=       "<table>";
        Content +=           "<tr>";
        Content +=               "<td align='center' class='mnMsgBoxTextContainer'>";
        Content +=                   "<div class='mbMsgBoxMainContainer' style='background-color:"+ settings.backgroundcontent +"'>";

        if( settings.title !== undefined){
            Content +=                   "<span class='mnMsgBoxTitle'>";
            Content +=                       settings.title;
            Content +=                   "</span>";
            
        }

        if( settings.content !== undefined ){
            Content +=                   "<span class='mbMsgBoxTextContent'>";
            Content +=                      settings.content;
            Content +=                   "</span>";
        }


        Content += NewInput;

        // Buttons
        if( settings.buttons.length >0){
            Content +=                   "<span class='mbMsgBoxButtonSection'>";
            for( var i = 0; i<= settings.buttons.length-1; i++){

                var Icon = settings.icons[i];


                if( settings.defaultbutton !== undefined ){

                    if( (i+1) == settings.defaultbutton ){
                        if( Icon !== undefined){
                            Content +=           "<button data-default='true' style='background-color:"+ settings.activebutton +"' data-normalcolor='"+ settings.activebutton +"' data-hovercolor='"+ settings.activebutton +"'><i class='fa "+ Icon +"'></i>"+ settings.buttons[i] +"</button>";    
                        }else{
                            Content +=           "<button data-default='true' style='background-color:"+ settings.activebutton +"' data-normalcolor='"+ settings.activebutton +"' data-hovercolor='"+ settings.activebutton +"'>"+ settings.buttons[i] +"</button>";
                        }
                    }else{
                        if( Icon !== undefined){
                            Content +=           "<button style='background-color:"+ settings.normalbutton +"' data-normalcolor='"+ settings.normalbutton +"' data-hovercolor='"+ settings.activebutton +"'><i class='fa "+ Icon +"'></i>"+ settings.buttons[i] +"</button>";    
                        }else{
                            Content +=           "<button style='background-color:"+ settings.normalbutton +"' data-normalcolor='"+ settings.normalbutton +"' data-hovercolor='"+ settings.activebutton +"'>"+ settings.buttons[i] +"</button>";
                        }
                    }
                }else{
                    if( Icon !== undefined){
                        Content +=           "<button style='background-color:"+ settings.normalbutton +"' data-normalcolor='"+ settings.normalbutton +"' data-hovercolor='"+ settings.activebutton +"'><i class='fa "+ Icon +"'></i>"+ settings.buttons[i] +"</button>";    
                    }else{
                        Content +=           "<button style='background-color:"+ settings.normalbutton +"' data-normalcolor='"+ settings.normalbutton +"' data-hovercolor='"+ settings.activebutton +"'>"+ settings.buttons[i] +"</button>";
                    }
                }
                
                

            }
            Content +=                   "</span>";
            
        }

        Content +=                   "</div>";
        Content +=               "</td>";
        Content +=           "</tr>";
        Content +=       "</table>";
        Content +=   "</div>";


        $("body").append(Content);

        var MetroBackground = $("#mnMmBg"+mm);
        var MetroMsg        = $("#mnMmBox"+mm);


        // Enter Animation
        var tl = new TimelineLite();
        tl.to( MetroBackground, 0.4, { autoAlpha: settings.opacity } )
          .to( MetroMsg, 0.4, { autoAlpha: 1 }, "-=0.1" );


        // Setting focus on default button
        if( settings.defaultbutton !== undefined){
                setTimeout(function() {
                    MetroMsg.find(".mbMsgBoxButtonSection button").each(function(){
                        var isDefault = $(this).attr("data-default");
                        if( isDefault == "true" ){
                            $(this).focus();
                        }
                    })
                }, 400);
        }

        if( settings.input !== undefined && $.browser.mobile === false){

            setTimeout(function() {
                MetroMsg.find("input,textarea").focus();
            }, 401);
            

        }


        // Colors - Array
        if( settings.colors.length >0){

            MetroBackground.css("background-color",settings.colors[0]);

            var MainContainer = MetroMsg.find(".mbMsgBoxMainContainer");
            MainContainer.css("background-color",settings.colors[0]);

            clearInterval(MsgTimer);
            MsgTimer = setInterval(function() {

                if( MetroMsg.attr("data-indexcolor") === undefined){
                    MetroMsg.attr("data-indexcolor", "0");
                }

                var MetroBackground = $(MetroMsg.attr("data-background"));
                var MainContainer = MetroMsg.find(".mbMsgBoxMainContainer");
                var Buttons = MetroMsg.find(".mbMsgBoxButtonSection button");

                var ColorIdx = MetroMsg.attr("data-indexcolor")*1;
                if(ColorIdx >= settings.colors.length-1){
                    ColorIdx = 0;
                }else{
                    ColorIdx +=1;
                }

                var NextColor = settings.colors[ColorIdx];
                tl.to( [MainContainer,Buttons,MetroBackground], 0.8, { backgroundColor:NextColor });

                MetroMsg.attr("data-indexcolor", ColorIdx );


            }, settings.colortime);
        }


        // Auto Close
        if( settings.timeout !== undefined){
            setTimeout(function() {
                if (typeof callback == "function"){   
                      if(callback)callback("timeoutReach");
                } 
                DestroyMessageBox(MetroMsg);
            }, settings.timeout);
        }


        // Binding a button functions
        if( settings.buttons.length > 0){
            MetroMsg.find(".mbMsgBoxButtonSection button").bind("tap",function(){

                var Value        = MetroMsg.find("input,textarea, select").val();
                var SelectedText = MetroMsg.find("select option:selected").text();

                $(this).unbind("tap");
                var ButtonText = $(this).text();
                if (typeof callback == "function"){   
                      if(callback)callback("buttonPress",ButtonText, Value, SelectedText);
                } 
                DestroyMessageBox(MetroMsg);
            });
        }


    } // End Metro MessageBox



    // ======================================= Metro Loading
    var ml = 0;
    var LoadingArray;
    $.metroLoading = function (settings,callback) 
    {
        var Content;

        settings = $.extend({
            title: undefined,
            content: undefined,
            fa: undefined,
            blockpage: true,
            timeout: undefined,
            texts: [],
            backgroundcolor: "#000000",
            backgroundcontent: "#232323",
            opacity: 0.7,
            colortime: 1500,
            colors: [],
        }, settings);

        ml += 1;
        CurrentLoading = 1;
        clearInterval(SpecialLoadingTimer);

         // Block Scroll
        if( settings.blockpage ){
            document.body.style.overflow="hidden";
        }

        if( settings.texts.length > 0){
            settings.title = settings.texts[0];
            LoadingArray = settings.texts;
        }


        var Content = "";
            Content = "<div id='mlBg"+ ml +"' class='mnMlBackground' style='background-color:"+ settings.backgroundcolor +";'></div>";

        $("body").prepend(Content);


        Content  = "<div id='ml"+ ml +"' class='mnMlMainContent' data-loadingbg='#mlBg"+ml+"'>";
        Content +=     "<table>";
        Content +=         "<tr>";
        Content +=             "<td align='center'>";
        Content +=             "<div class='mnMlMainContainer' style='background-color:"+ settings.backgroundcontent +";'>";
        
        if( settings.title !== undefined){
            Content +=              "<span class='mnMlTitle'>"+ settings.title +"</span>";
            
        }

        if( settings.texts.length == 0 ){

            if( settings.fa !== undefined ){
                Content +=               "<i class='mnMlLoadingIcon fa "+ settings.fa +" fa-spin'></i>";
            }

            if( settings.content){
                Content +=                 "<span class='mnMlContent'>";
                Content +=                      settings.content;
                Content +=                  "</span>";            
            }     
        }


       

        Content +=              "</div>";
        Content +=              "</td>";
        Content +=          "</tr>";
        Content +=      "</table>";
        Content +=  "</div>";



        $("body").prepend(Content);

        var mlBg         = $("#mlBg" + ml);
        var MetroLoading = $("#ml" + ml); 

        // Auto Close
        if( settings.timeout !== undefined){
            setTimeout(function() {
                if (typeof callback == "function"){   
                      if(callback)callback("timeoutReach");
                } 
                DestoytLoading(MetroLoading);
            }, settings.timeout);
        }


        // Enter Animation
        var tl = new TimelineLite();
        tl.to( mlBg, 0.4, { autoAlpha: settings.opacity } )
          .to( MetroLoading, 0.4, { autoAlpha: 1 }, "-=0.1" );



        //Special Loading with text
        if( settings.texts.length > 0){
            var LoadingLabel =  MetroLoading.find(".mnMlTitle");
            var InitialWidth = LoadingLabel.width();

                LoadingLabel.css({
                    "opacity": 0,
                    "left":"-50px"
                });

            var tl = new TimelineLite();

            // Initial Animation
            tl.to( LoadingLabel, 0.4, { autoAlpha:1 } )
              .to( LoadingLabel, 3, { left: 80 }, "-=0.2" );

              CurrentLoading = 2;

            clearInterval(SpecialLoadingTimer);
            SpecialLoadingTimer = setInterval(function(){

            switch(CurrentLoading){

                case 1: // left to right
                    tl.to( LoadingLabel,0.3, {autoAlpha:0, onComplete:ChangeText } )
                      .to( LoadingLabel, 0, { left: -80 } )
                      .to( LoadingLabel, 0.4, { autoAlpha:1 } )
                      .to( LoadingLabel, 3, { left: 80 }, "-=0.4" );

                      CurrentLoading = 2;
                break;

                case 2: // Top to bottom
                    tl.to( LoadingLabel,0.3, {autoAlpha:0, onComplete:ChangeText } )
                      .to( LoadingLabel, 0, { left: 0, top: -80 } )
                      .to( LoadingLabel, 0.4, { autoAlpha:1 } )
                      .to( LoadingLabel, 2, { top: 0, ease:Bounce.easeOut }, "-=0.4" );

                      CurrentLoading = 3;
                break;

                case 3: // right to left
                    tl.to( LoadingLabel,0.3, {autoAlpha:0, onComplete:ChangeText } )
                      .to( LoadingLabel, 0, { left: 80 } )
                      .to( LoadingLabel, 0.4, { autoAlpha:1 } )
                      .to( LoadingLabel, 3, { left: -80 }, "-=0.4" );

                      CurrentLoading = 4;
                break;

                case 4: // bottom to top
                    tl.to( LoadingLabel,0.3, {autoAlpha:0, onComplete:ChangeText } )
                      .to( LoadingLabel, 0, { top: +80, left:0 } )
                      .to( LoadingLabel, 0.4, { autoAlpha:1, ease:Elastic.easeOut } )
                      .to( LoadingLabel, 3, { top: 0 }, "-=0.4" );

                      CurrentLoading = 1;
                break;

                
            }

            },3200)
                 


        }



        // Colors - Array
        if( settings.colors.length >0){

            mlBg.css("background-color",settings.colors[0]);

            var MainContainer = MetroLoading.find(".mnMlMainContainer");
            MainContainer.css("background-color",settings.colors[0]);

            clearInterval(MsgTimer);
            MsgTimer = setInterval(function() {

                if( MetroLoading.attr("data-indexcolor") === undefined){
                    MetroLoading.attr("data-indexcolor", "0");
                }

                var mlBg = $(MetroLoading.attr("data-loadingbg"));
                var MainContainer = MetroLoading.find(".mnMlMainContainer");


                var ColorIdx = MetroLoading.attr("data-indexcolor")*1;
                if(ColorIdx >= settings.colors.length-1){
                    ColorIdx = 0;
                }else{
                    ColorIdx +=1;
                }

                var NextColor = settings.colors[ColorIdx];
                tl.to( [MainContainer,mlBg], 0.8, { backgroundColor:NextColor });

                MetroLoading.attr("data-indexcolor", ColorIdx );


            }, settings.colortime);
        }

    }// End Metro Loading


    // ======================================= Metro SidePanel
    var msp = 0;
    $.metroSidePanel = function (settings,callback) 
    {
        settings = $.extend({
            position: 1,
            title: undefined,
            content: undefined,
            iframe: undefined,
            iframecache: true,
            loadingmessage: "Loading",
            width: 250,
            fa: undefined,
            faloading: "fa-refresh",
            img: undefined,
            shadow: true,
            backgroundcontent: "#662d91",
            colortime: 1500,
            colors: [],
            timeout: undefined,
            blocked: false,
        }, settings);

        var Content = "";

        msp +=1;

        if(settings.position == 1){
            settings.position = "mnspRight";
        }else{
            settings.position = "mnspLeft";
        }

        if( settings.shadow ){
            settings.shadow = "mnSbShadow";
        }

        if( settings.colors.length >0 ){
            settings.backgroundcontent = settings.colors[0];
        }

        var TouchClass;
        if($.browser.device){
        	TouchClass = "mnSpTouchScroll";
        }



        Content += "<div id='msp"+msp+"' class='mnSidePanel "+ settings.shadow +" "+ settings.position +" "+ TouchClass +"' style='width: "+ settings.width +"px; background-color:"+ settings.backgroundcontent +";' data-blocked='"+ settings.blocked +"'>";

        if(settings.iframe !== undefined){
            if( settings.iframecache ){
                Content += "<table class='mspLoadingFrame'>";
                Content +=     "<tr>";
                Content +=         "<td align='center'>";
                Content +=             "<span class='mnSpTitle'>"+settings.loadingmessage+"</span>";    
                Content +=             "<span class='mnSpIcon'>";
                Content +=                 "<i class='fa "+ settings.faloading +" fa-spin'></i>";
                Content +=              "</span>";
                Content +=          "</td>";
                Content +=      "</tr>";
                Content +=  "</table>";
            }else{
                Content += "<iframe src='"+ settings.iframe +"'></iframe>";    
            }
        }else{

            Content +=     "<table>";
            Content +=         "<tr>";
            Content +=             "<td align='center'>";

            if( settings.title !== undefined){
                Content +=                 "<span class='mnSpTitle'>"+settings.title+"</span>";    
            }
            
            if( settings.content !== undefined){
                Content +=                 "<span class='mnSpContent'>";
                Content +=                      settings.content;
                Content +=                  "</span>";
            }

            if( settings.fa !== undefined || settings.img !== undefined ){

                Content +=                 " <span class='mnSpIcon'>";

                if( settings.img !== undefined ){
                    Content +=               "<img src='"+ settings.img +"'>";
                }else{
                    Content +=               "<i class='fa "+ settings.fa +"'></i>";    
                }

                Content +=                  "</span>";

            }
            
            Content +=              "</td>";
            Content +=          "</tr>";
            Content +=      "</table>";
            Content +=  "</div>";
            
        }


        $("body").append(Content);


        var MetroSidePanel = $("#msp"+msp);

        	MetroSidePanel.attr("data-width",settings.width);
        	CheckSpaceSP(MetroSidePanel);

        // Prevent auto Close
            MetroSidePanel.attr("data-mouseover","true");

        setTimeout(function() {
            MetroSidePanel.attr("data-mouseover","false");
        }, 300);

        // Enter Animation
        var tl = new TimelineLite();
        var CurrentWidth = MetroSidePanel.width();

        if( settings.position == "mnspLeft" ){

            MetroSidePanel.css("left","-"+ (CurrentWidth/5) +"px");

            tl.to( MetroSidePanel, 0.4, { autoAlpha: 1 } )
              .to( MetroSidePanel, 0.9, { left: "0", ease:Bounce.easeOut }, "-=0.4" );

        }else{
            
            MetroSidePanel.css("right","-"+ (CurrentWidth/5) +"px");

            tl.to( MetroSidePanel, 0.4, { autoAlpha: 1 } )
              .to( MetroSidePanel, 0.9, { right: "0", ease:Bounce.easeOut }, "-=0.4" );
        }
            

        // Load iframe with cache
        if( settings.iframe !== undefined && settings.iframecache ){
            LoadiFrameWithCache(MetroSidePanel, settings.iframe);
        }



        if( settings.colors.length >0){

            MetroSidePanel.css("background-color",settings.colors[0]);

            var MainContainer = MetroSidePanel;
            MainContainer.css("background-color",settings.colors[0]);

            
            SidePanelTimer = setInterval(function() {

                if( MetroSidePanel.attr("data-indexcolor") === undefined){
                    MetroSidePanel.attr("data-indexcolor", "0");
                }

                var ColorIdx = MetroSidePanel.attr("data-indexcolor")*1;
                if(ColorIdx >= settings.colors.length-1){
                    ColorIdx = 0;
                }else{
                    ColorIdx +=1;
                }

                var NextColor = settings.colors[ColorIdx];
                tl.to( [MetroSidePanel], 0.8, { backgroundColor:NextColor });

                MetroSidePanel.attr("data-indexcolor", ColorIdx );


            }, settings.colortime);
        }


        // Auto Close
        if( settings.timeout !== undefined){
            setTimeout(function() {
                if (typeof callback == "function"){   
                      if(callback)callback("timeoutReach");
                }

                MetroSidePanel.attr("data-blocked","false");
                DestroySidePanel(MetroSidePanel);
            }, settings.timeout);
        }


    }// End SidePanel





})(jQuery);;
const keyGGMapAPI = [
    'AIzaSyA0i8NZAQsf47TtyyQOQENAWr40IOdoIdw', // myproject16685 - ceo
];
;
;(function ($, window, document, undefined) {
    var pluginName = 'applink',
        defaults = {
            popup: 'auto',
            popupDomains: 'facebook|twitter',
            desktop: false,
            delegate: null,
            timeout: 1500,
            data: pluginName
        },

        popupOpened = false,

        agent = navigator.userAgent,

        IS_IPAD = agent.match(/iPad/i) !== null,
        IS_IPHONE = !IS_IPAD && ((agent.match(/iPhone/i) !== null) || (agent.match(/iPod/i) !== null)),
        IS_IOS = IS_IPAD || IS_IPHONE,
        IS_ANDROID = !IS_IOS && agent.match(/android/i) !== null,
        IS_MOBILE = IS_IOS || IS_ANDROID;

    var setSettings = function ($element, s) {
        s.href = $element.attr('href');
        s.applink = $element.data(s.data);
        s.popup = $element.data('popup');
        s.desktop = $element.data('desktop');
        s.target = $element.attr('target');

        if ((typeof s.desktop === 'undefined') || !s.desktop) {
            s.desktop = defaults.desktop;
        } else {
            s.desktop = (s.desktop.toString() === 'true');
        }

        s.enabled = (IS_MOBILE || s.desktop) ? s.applink : false;
        s.enabled = ((typeof s.enabled !== 'undefined') && s.enabled) ? true : false;

        if (typeof s.popupDomains === 'undefined') {
            s.popupDomains = defaults.popupDomains;
        }

        if ((typeof s.popup === 'undefined') || !s.popup) {
            s.popup = defaults.popup;
        } else {
            s.popup = (s.popup.toString() === 'false') ? false : s.popup;
        }

        checkPopup = new RegExp('\/\/([a-z]+\.)?(' + s.popupDomains + ')\.', 'i');

        if ((s.popup === 'auto') && checkPopup.test(s.href)) {
            s.popup = true;
        } else if ((s.popup !== 'auto') && s.popup) {
            s.popup = true;
        } else {
            s.popup = false;
        }

        return s;
    }

    var Callback = function (s) {
        setTimeout(function () {
            if (!BrowserHidden()) {
                Link(s);
            } else if (popupOpened) {
                popupOpened.close();
            }
        }, s.timeout);

        window.location = s.applink;
    }

    var BrowserHidden = function () {
        if (typeof document.hidden !== 'undefined') {
          return document.hidden;
        } else if (typeof document.mozHidden !== 'undefined') {
          return document.mozHidden;
        } else if (typeof document.msHidden !== 'undefined') {
          return document.msHidden;
        } else if (typeof document.webkitHidden !== 'undefined') {
          return document.webkitHidden;
        }

        return false;
    }

    var Link = function (s) {
        if (s.popup) {
            return PopUp(s);
        }

        if (popupOpened && !popupOpened.closed) {
            popupOpened.close();
        }

        if (s.target === '_blank') {
            window.open(s.href, '_blank');
        } else {
            window.location = s.href;
        }
    }

    var PopUp = function (s) {
        if (popupOpened && !popupOpened.closed) {
            popupOpened.location.replace(s.href);
            popupOpened.focus();

            return popupOpened;
        }

        var width = (screen.width > 620) ? 600 : screen.width,
            height = (screen.height > 320) ? 300 : screen.height,
            left = (screen.width / 2) - (width / 2),
            top = (screen.height / 2) - (height / 2),
            options = 'location=no,menubar=no,status=no,toolbar=no,scrollbars=no,directories=no,copyhistory=no'
                + ',width=' + width + ',height=' + height + ',top=' + top + ',left=' + left;

        popupOpened = window.open(s.href, pluginName, options);
        popupOpened.focus();

        return popupOpened;
    }

    var Plugin = function (element, options) {
        this.element = element;

        this.settings = $.extend({}, defaults, options);

        this.init();
    }

    Plugin.prototype = {
        init: function () {
            var $element = $(this.element), that = this;

            $element.on('click.' + pluginName, this.settings.delegate, function (e) {
                e.preventDefault();

                var s = setSettings($(this), that.settings);

                if (!s.enabled) {
                    return Link(s);
                }

                Callback(s);
            });
        },

        destroy: function () {
            $(this.element).off('.' + pluginName);
        }
    };

    $.fn[pluginName] = function (options) {
        if ((options === undefined) || (typeof options === 'object')) {
            return this.each(function () {
                if (!$.data(this, 'plugin_' + pluginName)) {
                    $.data(this, 'plugin_' + pluginName, new Plugin(this, options));
                }
            });
        }

        if ((typeof options !== 'string') || (options[0] === '_') || (options === 'init')) {
            return true;
        }

        var returns, args = arguments;

        this.each(function () {
            var instance = $.data(this, 'plugin_' + pluginName);

            if ((instance instanceof Plugin) && (typeof instance[options] === 'function')) {
                returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));
            }

            if (options === 'destroy') {
                $.data(this, 'plugin_' + pluginName, null);
            }
        });

        return (returns !== undefined) ? returns : this;
    };
})(jQuery, window, document);
;
function outPhoneformat(mobile) {

    if (mobile == null || mobile == '') {
        return '';
    }
    mobile = mobile.trim();
    mobile = mobile.replace("+840", "0");
    mobile = mobile.replace("+84", "0");

    mobile = mobile.match(/\d/g);
    mobile = mobile.join("");

    return mobile;
}


function getXMLHTTP() {
    var A = null; try { A = new ActiveXObject('Msxml2.XMLHTTP'); }
    catch (e) { try { A = new ActiveXObject('Microsoft.XMLHTTP'); } catch (oc) { A = null; } }
    if (!A && typeof XMLHttpRequest != 'undefined') { A = new XMLHttpRequest(); }
    return A;
}
function AjaxDropDownController(controlClientId, lookupName, baseUrl, numselect) {
    var self = this; this.numselect = numselect; this.controlClientId = controlClientId; this.hiddenId = '__' + self.controlClientId; this.lookupName = lookupName; this.baseUrl = baseUrl; this.delimiter = '|'; var xmlHttp; var observers = []; this.getSource = getSource; this.addObserver = addObserver; this.notify = notify; this.load = load; this.init = init; this.persist = persist; function getSource(filter) {
        var requestUrl = baseUrl + '&id=' + self.lookupName; if (filter != undefined && filter != '') { requestUrl += '&filter=' + filter; }

      //  console.log('requestUrl:' + requestUrl);
        
        xmlHttp = getXMLHTTP(); if (xmlHttp) { xmlHttp.onreadystatechange = doReadyStateChange; xmlHttp.open('GET', requestUrl, true); xmlHttp.send(null); }
    }
    function doReadyStateChange() {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                eval('var d=' + xmlHttp.responseText); if (d != null) { populateList(d); }
            }
            else { return; }
        }
    }
    function populateList(namevalue) {
        if (oSelect = document.getElementById(self.controlClientId)) {
            var content = ''; for (var i = oSelect.length - 1; i >= 0; i--) { oSelect.options[i] = null; }
            for (var i = 0; i < namevalue.length; i++) {
                if (namevalue[i].value == undefined) { oSelect.options[oSelect.length] = new Option(namevalue[i].name); content += namevalue[i].name + self.delimiter + namevalue[i].name + self.delimiter; }
                else {
                    opt = new Option(namevalue[i].name, namevalue[i].value);
                    oSelect.options[oSelect.length] = opt;
                    if (namevalue[i].value == self.numselect) {
                        oSelect.selectedIndex = oSelect.length - 1;
                    }
                    content += namevalue[i].name + self.delimiter + namevalue[i].value + self.delimiter;
                }
            }
            if (content.substr(content.length - 1, 1) == self.delimiter) { content = content.substr(0, content.length - 1); }
            if (oHidden = document.getElementById(self.hiddenId)) { oHidden.value = content; }
            if (oSelect.selectedIndex > -1) {
                if (oSelect.fireEvent) { oSelect.fireEvent('onchange'); }
                else if (oSelect.dispatchEvent) { var oEvent = document.createEvent('HTMLEvents'); oEvent.initEvent('change', true, true); oSelect.dispatchEvent(oEvent); }
            }
        }
    }
    function addObserver(obj) {
        var length = observers.length; var found = false; for (var i = 0; i < length; i++) {
            if (observers[i] == obj) { found = true; break; }
        }
        if (!found) { observers[observers.length] = obj; }
    }
    function notify() {
        var filter = ''; var oSelect = document.getElementById(self.controlClientId); if (oSelect != null && oSelect.selectedIndex != -1) { filter = self.lookupName + ',' + oSelect.options[oSelect.selectedIndex].value + ',' + self.numselect; }
        for (i = 0; i < observers.length; i++) { eval(observers[i] + '.load(filter);'); }
    }
    function load(filter) { this.getSource(filter); }
    function init() {
        if ((oSelect = document.getElementById(self.controlClientId))) {
            if (!(hidden = document.getElementById(self.hiddenId))) { hidden = document.createElement('input'); hidden.id = self.hiddenId; hidden.name = self.hiddenId; hidden.type = 'hidden'; oSelect.form.appendChild(hidden); }
            if (oSelect.options.length == 0) { this.load(); }
            else { this.persist(oSelect); }
            if (oSelect.attachEvent) { oSelect.attachEvent('onchange', notify); }
            else if (oSelect.addEventListener) { oSelect.addEventListener('change', notify, false); }
            else { oSelect.onchange = notify; }
        }
    }
    function persist(oSelect) {
        var content = ''; for (var i = 0; i < oSelect.options.length; i++) { content += oSelect.options[i].text + self.delimiter + oSelect.options[i].value + self.delimiter; }
        if (content.substr(content.length - 1, 1) == self.delimiter) { content = content.substr(0, content.length - 1); }
        if ((hidden = document.getElementById(self.hiddenId))) { hidden.value = content; }
    }
}


function ajax_stop() { for (var e = 0; e < requests.length; e++)null != requests[e] && requests[e].abort() } function ajax_create_request(e) { for (var t = 0; t < requests.length; t++)if (4 == requests[t].readyState) return requests[t].abort(), requests[t].context = e, requests[t]; var r = requests.length; return requests[r] = Object(), requests[r].obj = new XMLHttpRequest, requests[r].context = e, requests[r] } function ajax_request(e, t, r, s) { var n = ajax_create_request(s), o = "function" == typeof r; return o && (n.obj.onreadystatechange = function () { 4 == n.obj.readyState && r(new ajax_response(n)) }), n.obj.open("POST", e, o), n.obj.send(t), o ? void 0 : new ajax_response(n) } function ajax_response(e) { if (this.request = e.obj, this.error = null, this.value = null, this.context = e.context, 200 == e.obj.status) try { this.value = object_from_json(e), this.value && this.value.error && (this.error = this.value.error, this.value = null) } catch (t) { this.error = new ajax_error(t.name, t.description, t.number) } else this.error = new ajax_error("HTTP request failed with status: " + e.obj.status, e.obj.status); return this } function enc(e) { return e.toString().replace(/\%/g, "%26").replace(/=/g, "%3D") } function object_from_json(request) { if (null != request.obj.responseXML && null != request.obj.responseXML.xml && "" != request.obj.responseXML.xml) return request.obj.responseXML; var r = null; return eval("r=" + request.obj.responseText + ";"), r } function ajax_error(e, t, r) { return this.name = e, this.description = t, this.number = r, this } function json_from_object(e) { if (null == e) return "null"; switch (typeof e) { case "object": if (e.constructor == Array) { for (var t = "", r = 0; r < e.length; ++r)t += json_from_object(e[r]), r < e.length - 1 && (t += ","); return "[" + t + "]" } break; case "string": return '"' + e.replace(/(["\\])/g, "\\$1") + '"'; default: return String(e) } } var requests = new Array; if ("undefined" == typeof XMLHttpRequest) var XMLHttpRequest = function () { var e = null; try { e = new ActiveXObject("Msxml2.XMLHTTP") } catch (t) { try { e = new ActiveXObject("Microsoft.XMLHTTP") } catch (r) { } } return e }; ajax_error.prototype.toString = function () { return this.name + " " + this.description }; var Version = "5.7.22.2";

var _2014Index = {
    bintopDUAN: function (Sotien, callback, context) { return new ajax_request(this.url + '?_method=bintopDUAN&_session=rw', 'Sotien=' + enc(Sotien), callback, context); },
    binQRCode: function (Sotien, callback, context) { return new ajax_request(this.url + '?_method=binQRCode&_session=rw', 'Sotien=' + enc(Sotien), callback, context); },
    getResData: function (goodsAmount, userFee, callback, context) { return new ajax_request(this.url + '?_method=getResData&_session=rw', 'goodsAmount=' + enc(goodsAmount) + '\r\nuserFee=' + enc(userFee), callback, context); },
    getListtincungkhuvuc: function (strKeyName, loaitin, tinhthanh, quan, khuvuc, LoaiBDS, callback, context) { return new ajax_request(this.url + '?_method=getListtincungkhuvuc&_session=rw', 'strKeyName=' + enc(strKeyName) + '\r\nloaitin=' + enc(loaitin) + '\r\ntinhthanh=' + enc(tinhthanh) + '\r\nquan=' + enc(quan) + '\r\nkhuvuc=' + enc(khuvuc) + '\r\nLoaiBDS=' + enc(LoaiBDS), callback, context); },
    LoadrandomGoiytinVIP: function (callback, context) { return new ajax_request(this.url + '?_method=LoadrandomGoiytinVIP&_session=rw', '', callback, context); },
    GETLINK: function (LoaiTin, strLink, jsonPara, isDatMua, callback, context) { return new ajax_request(this.url + '?_method=GETLINK&_session=rw', 'LoaiTin=' + enc(LoaiTin) + '\r\nstrLink=' + enc(strLink) + '\r\njsonPara=' + enc(jsonPara) + '\r\nisDatMua=' + enc(isDatMua), callback, context); },
    getNearMe: function (ID_LT, id_tt, Latitude, Longitude, radius, NguonTin, ID_LOAINHA, ID_HUONGNHA, fromGia, toGia, fromDientich, toDientich, callback, context) { $("#divLoading").html("<i class=\"fas fa-circle-notch fa-spin\"></i> Loading..."); return new ajax_request(this.url + '?_method=getNearMe&_session=rw', 'ID_LT=' + enc(ID_LT) + '\r\nid_tt=' + enc(id_tt) + '\r\nLatitude=' + enc(Latitude) + '\r\nLongitude=' + enc(Longitude) + '\r\nradius=' + enc(radius) + '\r\nNguonTin=' + enc(NguonTin) + '\r\nID_LOAINHA=' + enc(ID_LOAINHA) + '\r\nID_HUONGNHA=' + enc(ID_HUONGNHA) + '\r\nfromGia=' + enc(fromGia) + '\r\ntoGia=' + enc(toGia) + '\r\nfromDientich=' + enc(fromDientich) + '\r\ntoDientich=' + enc(toDientich), callback, context); },
    Insert_tempNha: function (INTDATE, ID_N, NAVMENU, DETAIL, Title, Description, callback, context) { return new ajax_request(this.url + '?_method=Insert_tempNha&_session=no', 'INTDATE=' + enc(INTDATE) + '\r\nID_N=' + enc(ID_N) + '\r\nNAVMENU=' + enc(NAVMENU) + '\r\nDETAIL=' + enc(DETAIL) + '\r\nTitle=' + enc(Title) + '\r\nDescription=' + enc(Description), callback, context); },
    getRandomIDUser1: function (style, callback, context) { return new ajax_request(this.url + '?_method=getRandomIDUser1&_session=rw', 'style=' + enc(style), callback, context); },
    GETTOPDANHCHBAN: function (ID_LOAITIN, ID_LN, ID_TT, ID_QH, ID_KV, fillkv, fillqh, style, fromgia, callback, context) { return new ajax_request(this.url + '?_method=GETTOPDANHCHBAN&_session=no', 'ID_LOAITIN=' + enc(ID_LOAITIN) + '\r\nID_LN=' + enc(ID_LN) + '\r\nID_TT=' + enc(ID_TT) + '\r\nID_QH=' + enc(ID_QH) + '\r\nID_KV=' + enc(ID_KV) + '\r\nfillkv=' + enc(fillkv) + '\r\nfillqh=' + enc(fillqh) + '\r\nstyle=' + enc(style) + '\r\nfromgia=' + enc(fromgia), callback, context); },
    DATMUA: function (fullname, mobile, email, diachi, more, IDLINK, ID_TT, ID_QH, ID_KV, IDDUAN, IDSTYLE, callback, context) { return new ajax_request(this.url + '?_method=DATMUA&_session=no', 'fullname=' + enc(fullname) + '\r\nmobile=' + enc(mobile) + '\r\nemail=' + enc(email) + '\r\ndiachi=' + enc(diachi) + '\r\nmore=' + enc(more) + '\r\nIDLINK=' + enc(IDLINK) + '\r\nID_TT=' + enc(ID_TT) + '\r\nID_QH=' + enc(ID_QH) + '\r\nID_KV=' + enc(ID_KV) + '\r\nIDDUAN=' + enc(IDDUAN) + '\r\nIDSTYLE=' + enc(IDSTYLE), callback, context); },
    UpAll: function (list, callback, context) { return new ajax_request(this.url + '?_method=UpAll&_session=no', 'list=' + enc(list), callback, context); },
    GETTOP4KIEMDUYET: function (flag, mode, intpage, callback, context) { return new ajax_request(this.url + '?_method=GETTOP4KIEMDUYET&_session=no', 'flag=' + enc(flag) + '\r\nmode=' + enc(mode) + '\r\nintpage=' + enc(intpage), callback, context); },
    GETTOPDANHCHBAN_RIGHT: function (ID_LOAITIN, ID_LN, ID_TT, ID_QH, ID_KV, fromgia, callback, context) { return new ajax_request(this.url + '?_method=GETTOPDANHCHBAN_RIGHT&_session=no', 'ID_LOAITIN=' + enc(ID_LOAITIN) + '\r\nID_LN=' + enc(ID_LN) + '\r\nID_TT=' + enc(ID_TT) + '\r\nID_QH=' + enc(ID_QH) + '\r\nID_KV=' + enc(ID_KV) + '\r\nfromgia=' + enc(fromgia), callback, context); },
    LoadTinTaiTro: function (ID_LOAITIN, ID_TT, callback, context) { return new ajax_request(this.url + '?_method=LoadTinTaiTro&_session=rw', 'ID_LOAITIN=' + enc(ID_LOAITIN) + '\r\nID_TT=' + enc(ID_TT), callback, context); },
    GETTOP_GANBAN: function (LAT, LON, TINHTHANH, LOAITIN, callback, context) { return new ajax_request(this.url + '?_method=GETTOP_GANBAN&_session=no', 'LAT=' + enc(LAT) + '\r\nLON=' + enc(LON) + '\r\nTINHTHANH=' + enc(TINHTHANH) + '\r\nLOAITIN=' + enc(LOAITIN), callback, context); },
    TAOMAKHUYENMAI: function (IDS, CODE, TIMELEFT, DISCOUNT, callback, context) { return new ajax_request(this.url + '?_method=TAOMAKHUYENMAI&_session=no', 'IDS=' + enc(IDS) + '\r\nCODE=' + enc(CODE) + '\r\nTIMELEFT=' + enc(TIMELEFT) + '\r\nDISCOUNT=' + enc(DISCOUNT), callback, context); },
    DUAN_PUBLIC: function (IDduan, tenduan, lat, lon, callback, context) { return new ajax_request(this.url + '?_method=DUAN_PUBLIC&_session=no', 'IDduan=' + enc(IDduan) + '\r\ntenduan=' + enc(tenduan) + '\r\nlat=' + enc(lat) + '\r\nlon=' + enc(lon), callback, context); },
    getStringSearch: function (Tinhthanh, QuanHuyen, KhuVuc, LoaiNha, HuongNha, FromDientich, ToDienTich, FromGia, donviFromGia, ToGia, donviToGia, TuKhoa, LoaiTin, SapXep, id_u, yesVIP, NguonTin, Matin, PageIndex, offerYear, IDLink, TotallRow, RawUrl, callback, context) { return new ajax_request(this.url + '?_method=getStringSearch&_session=r', 'Tinhthanh=' + enc(Tinhthanh) + '\r\nQuanHuyen=' + enc(QuanHuyen) + '\r\nKhuVuc=' + enc(KhuVuc) + '\r\nLoaiNha=' + enc(LoaiNha) + '\r\nHuongNha=' + enc(HuongNha) + '\r\nFromDientich=' + enc(FromDientich) + '\r\nToDienTich=' + enc(ToDienTich) + '\r\nFromGia=' + enc(FromGia) + '\r\ndonviFromGia=' + enc(donviFromGia) + '\r\nToGia=' + enc(ToGia) + '\r\ndonviToGia=' + enc(donviToGia) + '\r\nTuKhoa=' + enc(TuKhoa) + '\r\nLoaiTin=' + enc(LoaiTin) + '\r\nSapXep=' + enc(SapXep) + '\r\nid_u=' + enc(id_u) + '\r\nyesVIP=' + enc(yesVIP) + '\r\nNguonTin=' + enc(NguonTin) + '\r\nMatin=' + enc(Matin) + '\r\nPageIndex=' + enc(PageIndex) + '\r\nofferYear=' + enc(offerYear) + '\r\nIDLink=' + enc(IDLink) + '\r\nTotallRow=' + enc(TotallRow) + '\r\nRawUrl=' + enc(RawUrl), callback, context); },
    N_GETALLVIDEO: function (page, callback, context) { return new ajax_request(this.url + '?_method=N_GETALLVIDEO&_session=no', 'page=' + enc(page), callback, context); },
    CHECKUSERVIP: function (callback, context) { return new ajax_request(this.url + '?_method=CHECKUSERVIP&_session=rw', '', callback, context); },
    getVIPofTin: function (ID_N, callback, context) { return new ajax_request(this.url + '?_method=getVIPofTin&_session=no', 'ID_N=' + enc(ID_N), callback, context); },
    search2019: function (_GetIPAddress, _id_tt, _id_q, _id_kv, _id_ln, _id_hn, _fromTD, _toDT, _dvDT, _fromG, _dvGfrom, _toG, _dvGto, _keyWord, _ID_LT, _orderby, _id_u, _yesVIP, _NguonTin, _Matin, _PageIndex, _offerYear, _IDLink, _TotallRow, callback, context) { return new ajax_request(this.url + '?_method=search2019&_session=rw', '_GetIPAddress=' + enc(_GetIPAddress) + '\r\n_id_tt=' + enc(_id_tt) + '\r\n_id_q=' + enc(_id_q) + '\r\n_id_kv=' + enc(_id_kv) + '\r\n_id_ln=' + enc(_id_ln) + '\r\n_id_hn=' + enc(_id_hn) + '\r\n_fromTD=' + enc(_fromTD) + '\r\n_toDT=' + enc(_toDT) + '\r\n_dvDT=' + enc(_dvDT) + '\r\n_fromG=' + enc(_fromG) + '\r\n_dvGfrom=' + enc(_dvGfrom) + '\r\n_toG=' + enc(_toG) + '\r\n_dvGto=' + enc(_dvGto) + '\r\n_keyWord=' + enc(_keyWord) + '\r\n_ID_LT=' + enc(_ID_LT) + '\r\n_orderby=' + enc(_orderby) + '\r\n_id_u=' + enc(_id_u) + '\r\n_yesVIP=' + enc(_yesVIP) + '\r\n_NguonTin=' + enc(_NguonTin) + '\r\n_Matin=' + enc(_Matin) + '\r\n_PageIndex=' + enc(_PageIndex) + '\r\n_offerYear=' + enc(_offerYear) + '\r\n_IDLink=' + enc(_IDLink) + '\r\n_TotallRow=' + enc(_TotallRow), callback, context); },
    updateFlag: function (ID_N, flag, mode, callback, context) { return new ajax_request(this.url + '?_method=updateFlag&_session=no', 'ID_N=' + enc(ID_N) + '\r\nflag=' + enc(flag) + '\r\nmode=' + enc(mode), callback, context); },
    duyetin: function (ID_N, callback, context) { return new ajax_request(this.url + '?_method=duyetin&_session=no', 'ID_N=' + enc(ID_N), callback, context); },
    CHECKONLIENMINH: function (id_KV, callback, context) { return new ajax_request(this.url + '?_method=CHECKONLIENMINH&_session=no', 'id_KV=' + enc(id_KV), callback, context); },
    SEARCHTIN4INTUSER2018: function (id, pageindex, callback, context) { return new ajax_request(this.url + '?_method=SEARCHTIN4INTUSER2018&_session=rw', 'id=' + enc(id) + '\r\npageindex=' + enc(pageindex), callback, context); },
    UPLENDAUTRANG: function (IDNHA, IDU, callback, context) { return new ajax_request(this.url + '?_method=UPLENDAUTRANG&_session=no', 'IDNHA=' + enc(IDNHA) + '\r\nIDU=' + enc(IDU), callback, context); },
    WO_CLICK: function (callback, context) { return new ajax_request(this.url + '?_method=WO_CLICK&_session=no', '', callback, context); },
    SendTechComBank: function (name, mobile, link, diachi, CMTND, callback, context) { return new ajax_request(this.url + '?_method=SendTechComBank&_session=rw', 'name=' + enc(name) + '\r\nmobile=' + enc(mobile) + '\r\nlink=' + enc(link) + '\r\ndiachi=' + enc(diachi) + '\r\nCMTND=' + enc(CMTND), callback, context); },
    GetDataSetNha: function (tt, ten, lt, callback, context) { return new ajax_request(this.url + '?_method=GetDataSetNha&_session=no', 'tt=' + enc(tt) + '\r\nten=' + enc(ten) + '\r\nlt=' + enc(lt), callback, context); },
    DeleteTin: function (ID_N, callback, context) { return new ajax_request(this.url + '?_method=DeleteTin&_session=no', 'ID_N=' + enc(ID_N), callback, context); },
    LoginServer: function (_Username, Password, save, callback, context) { return new ajax_request(this.url + '?_method=LoginServer&_session=rw', '_Username=' + enc(_Username) + '\r\nPassword=' + enc(Password) + '\r\nsave=' + enc(save), callback, context); },
    binFormLogin: function (callback, context) { return new ajax_request(this.url + '?_method=binFormLogin&_session=rw', '', callback, context); },
    CapNhatChinhChu: function (ID_N, callback, context) { return new ajax_request(this.url + '?_method=CapNhatChinhChu&_session=no', 'ID_N=' + enc(ID_N), callback, context); },
    HuyChinhChu: function (ID_N, callback, context) { return new ajax_request(this.url + '?_method=HuyChinhChu&_session=no', 'ID_N=' + enc(ID_N), callback, context); },
    KhichHoat_ThuHoi: function (ID_N, mode, callback, context) { return new ajax_request(this.url + '?_method=KhichHoat_ThuHoi&_session=no', 'ID_N=' + enc(ID_N) + '\r\nmode=' + enc(mode), callback, context); },
    LuuVet: function (IDN, IDU, callback, context) { return new ajax_request(this.url + '?_method=LuuVet&_session=no', 'IDN=' + enc(IDN) + '\r\nIDU=' + enc(IDU), callback, context); },
    UpdatePositionServer: function (idn, Lat, Lon, title, content, callback, context) { return new ajax_request(this.url + '?_method=UpdatePositionServer&_session=no', 'idn=' + enc(idn) + '\r\nLat=' + enc(Lat) + '\r\nLon=' + enc(Lon) + '\r\ntitle=' + enc(title) + '\r\ncontent=' + enc(content), callback, context); },
    Nha_lammoi: function (idnha, callback, context) { return new ajax_request(this.url + '?_method=Nha_lammoi&_session=no', 'idnha=' + enc(idnha), callback, context); },
    getListLinkSearch: function (loaitin, loainha, tinhthanh, quanhuyen, khuvuc, strKey, callback, context) {
        $("#divtoplistketquatimkiem").html("Đang tìm kiếm..."); 
        return new ajax_request(this.url + '?_method=getListLinkSearch&_session=no', 'loaitin=' + enc(loaitin) + '\r\nloainha=' + enc(loainha) + '\r\ntinhthanh=' + enc(tinhthanh) + '\r\nquanhuyen=' + enc(quanhuyen) + '\r\nkhuvuc=' + enc(khuvuc) + '\r\nstrKey=' + enc(strKey), callback, context);
    },
    checkisMoiGioi: function (IDU, callback, context) {
        return new ajax_request(this.url + '?_method=checkisMoiGioi&_session=no', 'IDU=' + enc(IDU) , callback, context);
    },
    getListkhachhangtiemnang: function (id_n, loaitin, loainha, id_tt, id_qq, kv, callback, context) { return new ajax_request(this.url + '?_method=getListkhachhangtiemnang&_session=no', 'id_n=' + enc(id_n) + '\r\nloaitin=' + enc(loaitin) + '\r\nloainha=' + enc(loainha) + '\r\nid_tt=' + enc(id_tt) + '\r\nid_qq=' + enc(id_qq) + '\r\nkv=' + enc(kv), callback, context); },
    GETIDHETHAN: function (callback, context) { return new ajax_request(this.url + '?_method=GETIDHETHAN&_session=no', '', callback, context); },
    getallVipHETHAN: function (callback, context) { return new ajax_request(this.url + '?_method=getallVipHETHAN&_session=no', '', callback, context); },
    U_UPDATEISREADY: function (IDU, isReady, callback, context) { return new ajax_request(this.url + '?_method=U_UPDATEISREADY&_session=no', 'IDU=' + enc(IDU) + '\r\nisReady=' + enc(isReady), callback, context); },
    GETID_TINVIP_LEFTHOUR: function (LEFT_HOUR, callback, context) { return new ajax_request(this.url + '?_method=GETID_TINVIP_LEFTHOUR&_session=no', 'LEFT_HOUR=' + enc(LEFT_HOUR), callback, context); },
    GETEMAILFORLISTUSER: function (listid, callback, context) { return new ajax_request(this.url + '?_method=GETEMAILFORLISTUSER&_session=no', 'listid=' + enc(listid), callback, context); },
    DangtinServer: function (loaitin, kv, loainha, huongnha, dientich, giatien, ngayhethan, tieude, noidung, secode, _cboDT, _cboKG, ycVIP, TL, id_qq, id_tt, action, pixGroup, thongtinmat, Moigioi, ContactInfo, Lat, Lon, Description, strUser, isvip, sHUONNHA, sKHUVUC, sLOAINHA, sMOBILE, sQUANHUYEN, sTINHTHANH, _DUONGTRUOCMAT, _SOTANG, _MATIEN, _SOPN, _SOPK, _COCHODEXE, isInvest, intTTPhaply, id_phuong, _TENPHUONG, callback, context) { return new ajax_request(this.url + '?_method=DangtinServer&_session=r', 'loaitin=' + enc(loaitin) + '\r\nkv=' + enc(kv) + '\r\nloainha=' + enc(loainha) + '\r\nhuongnha=' + enc(huongnha) + '\r\ndientich=' + enc(dientich) + '\r\ngiatien=' + enc(giatien) + '\r\nngayhethan=' + enc(ngayhethan) + '\r\ntieude=' + enc(tieude) + '\r\nnoidung=' + enc(noidung) + '\r\nsecode=' + enc(secode) + '\r\n_cboDT=' + enc(_cboDT) + '\r\n_cboKG=' + enc(_cboKG) + '\r\nycVIP=' + enc(ycVIP) + '\r\nTL=' + enc(TL) + '\r\nid_qq=' + enc(id_qq) + '\r\nid_tt=' + enc(id_tt) + '\r\naction=' + enc(action) + '\r\npixGroup=' + enc(pixGroup) + '\r\nthongtinmat=' + enc(thongtinmat) + '\r\nMoigioi=' + enc(Moigioi) + '\r\nContactInfo=' + enc(ContactInfo) + '\r\nLat=' + enc(Lat) + '\r\nLon=' + enc(Lon) + '\r\nDescription=' + enc(Description) + '\r\nstrUser=' + enc(strUser) + '\r\nisvip=' + enc(isvip) + '\r\nsHUONNHA=' + enc(sHUONNHA) + '\r\nsKHUVUC=' + enc(sKHUVUC) + '\r\nsLOAINHA=' + enc(sLOAINHA) + '\r\nsMOBILE=' + enc(sMOBILE) + '\r\nsQUANHUYEN=' + enc(sQUANHUYEN) + '\r\nsTINHTHANH=' + enc(sTINHTHANH) + '\r\n_DUONGTRUOCMAT=' + enc(_DUONGTRUOCMAT) + '\r\n_SOTANG=' + enc(_SOTANG) + '\r\n_MATIEN=' + enc(_MATIEN) + '\r\n_SOPN=' + enc(_SOPN) + '\r\n_SOPK=' + enc(_SOPK) + '\r\n_COCHODEXE=' + enc(_COCHODEXE) + '\r\nisInvest=' + enc(isInvest) + '\r\nintTTPhaply=' + enc(intTTPhaply) + '\r\nid_phuong=' + enc(id_phuong) + '\r\n_TENPHUONG=' + enc(_TENPHUONG), callback, context); },
    giahantinthuong: function (idtin, songayrahan, callback, context) { return new ajax_request(this.url + '?_method=giahantinthuong&_session=r', 'idtin=' + enc(idtin) + '\r\nsongayrahan=' + enc(songayrahan), callback, context); },
    giahantinthuongAll: function (listin, songayrahan, callback, context) { return new ajax_request(this.url + '?_method=giahantinthuongAll&_session=r', 'listin=' + enc(listin) + '\r\nsongayrahan=' + enc(songayrahan), callback, context); },
    Congtientaikhoan: function (IDU, Sotien, hinhthucnap, callback, context) { return new ajax_request(this.url + '?_method=Congtientaikhoan&_session=rw', 'IDU=' + enc(IDU) + '\r\nSotien=' + enc(Sotien) + '\r\nhinhthucnap=' + enc(hinhthucnap), callback, context); },
    LoginServerwithGG: function (_Username, callback, context) { return new ajax_request(this.url + '?_method=LoginServerwithGG&_session=rw', '_Username=' + enc(_Username), callback, context); },
    AutoLoginPhone: function (m, callback, context) { return new ajax_request(this.url + '?_method=AutoLoginPhone&_session=rw', 'm=' + enc(m), callback, context); },
    AutoLoginGG: function (Email, FullName, Avatar, callback, context) { return new ajax_request(this.url + '?_method=AutoLoginGG&_session=rw', 'Email=' + enc(Email) + '\r\nFullName=' + enc(FullName) + '\r\nAvatar=' + enc(Avatar), callback, context); },
    updateAuthUserID: function (AuthUserID, callback, context) { return new ajax_request(this.url + '?_method=updateAuthUserID&_session=rw', 'AuthUserID=' + enc(AuthUserID), callback, context); },
    n_getmobile: function (idn, callback, context) { return new ajax_request(this.url + '?_method=n_getmobile&_session=no', 'idn=' + enc(idn), callback, context); },
    url: '/ajax/XPRO._2014Index,XPRO.ashx'
}

function HtmlControl(id) {
    var ele = null;
    if (typeof (id) == 'object') ele = id; else ele = document.getElementById(id);
    if (ele == null) return null;
    var _o = ele.cloneNode(true);
    var _op = document.createElement('SPAN');
    _op.appendChild(_o);
    this._source = _op.innerHTML;
}
HtmlControl.prototype.toString = function () { return this._source; }

function HtmlControlUpdate(func, parentId) {
    var f, i, ff, fa = '';
    var ele = document.getElementById(parentId);
    if (ele == null) return;
    var args = [];
    for (i = 0; i < HtmlControlUpdate.arguments.length; i++)
        args[args.length] = HtmlControlUpdate.arguments[i];
    if (args.length > 2)
        for (i = 2; i < args.length; i++) { fa += 'args[' + i + ']'; if (i < args.length - 1) { fa += ','; } }
    f = '{"invoke":function(args){return ' + func + '(' + fa + ');}}';
    ff = null; eval('ff=' + f + ';');
    if (ff != null && typeof (ff.invoke) == 'function') {
        var res = ff.invoke(args);
        if (res.error != null) { alert(res.error); return; }
        ele.innerHTML = res.value;
    }
}

function U_UPDATEISREADY(IDU, isReady) {

    console.log('U_UPDATEISREADY' + IDU + '-' + isReady);

    _2014Index.U_UPDATEISREADY(IDU, isReady, U_UPDATEISREADY_callback);
}

function U_UPDATEISREADY_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    else {
        if (response.value == '1') {
           // alert('Cập nhật trạng thái thành công');
        }
        else {
            alert(response.value);
        }
    }
}

function validPhoneNumber(value) {
    value = value.trim();

    value = value.replace("+840", "0");
    value = value.replace("+84", "0");

    if (!value.match(/^\d+$/) || value.length < 7) {
        return false;
    }
    else {
        return true;
    }
}

$(document).ready(function () {

   

    $('.popup-modal').magnificPopup({
        type: 'inline',
        preloader: false,
        focus: '#username',
        modal: true
    });

    $(document).on('click', '.popup-modal-dismiss', function (e) {
        e.preventDefault();
        $.magnificPopup.close();
    });

    $('a[data-applink]').applink();

    var listTimKiem = document.getElementById('listTimKiem');
    var isAnonymous = true;
    var fbUID = '';
    $("#listTimKiem").mouseleave(function (e) {
        $("#listTimKiem").hide();
        document.getElementById('txtTuKhoa').focus();
    });

    $("#back2Top").click(function(event) {
        event.preventDefault();
        $("html, body").animate({ scrollTop: 0 }, "slow");
        lastScrollTop=0;
        return false;
    });

    $('#ContentPlaceHolder2_cboDoiTuongKH').on('change', function () {
        var itemsTempDetailNha = [];
        itemsTempDetailNha.unshift({
            LOAITIN: $('#ContentPlaceHolder2_cboLT option:selected').text(),
            TINHTHANH: $('#ContentPlaceHolder2_ddlCustomers option:selected').text(),
            QUANHUYEN: $('#ContentPlaceHolder2_ddlOrders option:selected').text(),
            KHUVUC: $('#ContentPlaceHolder2_ddlProducts option:selected').text(),
            LOAIBDS: $('#ContentPlaceHolder2_cboLN option:selected').text()|| '0',
            HUONGBDS: $('#ContentPlaceHolder2_cboHN option:selected').text(),

            DIENTICH: $('#ContentPlaceHolder2_txtDT option:selected').val(),
            GIATIEN: $('#ContentPlaceHolder2_txtGT option:selected').val(),

            DUONGTRUOCMAT: $('#ContentPlaceHolder2_txtduongtruocmat option:selected').val(),
            MATTIEN: $('#ContentPlaceHolder2_txtmattien option:selected').val(),

            SOTANG: $('#ContentPlaceHolder2_txtSotang option:selected').val(),

            SOPN: $('#ContentPlaceHolder2_cboSoPN option:selected').text(),

            SOWC: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            CHODOOTO: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            TIEUDE: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            NOIDUNGTIN: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            LIENHE: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            LAT: $('#ContentPlaceHolder2_cboHN option:selected').val(),
            LON: $('#ContentPlaceHolder2_cboHN option:selected').val(),
        });
    });

    //$(document).mouseup(function(e) 
    //{
    //    var container = $(".toplistketquatimkiem");

    //    // if the target of the click isn't the container nor a descendant of the container
    //    if (!container.is(e.target) && container.has(e.target).length === 0) 
    //    {
    //        container.hide();
    //    }
    //});

    $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
        disableOn: 300,
        type: 'iframe',
        mainClass: 'mfp-fade',
        removalDelay: 160,
        preloader: false,
        fixedContentPos: false
    });
  
    $(function () {
        $('[data-toggle="tooltip"]').tooltip()
    })

    $(function () {
        $("#txtMatKhau").keyup(function (event) {
            if (event.which == 32 || event.which == 13) {
                alert('dang nhap');
            }
        });
    });
    $(function () {
        $("#txtTuKhoa").click(function (event) {
            if (listTimKiem.innerText == "") {
                $("#divHuongDan").show();
            }
        });
    });
    $(function () {
        $("#txtTuKhoa").mouseover(function () {
            if (listTimKiem.innerText != "") {
                $("#listTimKiem").show();
            }
            else {
                $("#divHuongDan").show();
            }
        });
    });
    $(function () {
        $("#txtTuKhoa").mouseleave(function () {
            $("#divHuongDan").hide();
        });
    });
    $(function () {
        $("#txtTuKhoa").click(function () {
            if (listTimKiem.innerText == "") {
                $("#divHuongDan").show();
            }
        });
       
    });
});

$(document).ready(function () {
  
    var items = Array(2, 5);

    var item = items[Math.floor(Math.random() * items.length)];

    //var items_top = Array(4,8);
    //var item_top = items_top[Math.floor(Math.random() * items_top.length)];

    var item_top = 8;
   //$("#rightBannerSlide1").html("<iframe src=\"/bannerAds/" + item + "/300x600/ad.html\" frameborder=\"0\" width=\"300\" height=\"600\"></iframe>");

    //$("#divFrameVHTL").html("<iframe src=\"/pano360/vinhomesthanglong/2/vtour/tour.html\" frameborder=\"0\" width=\"100%\" height=\"500\"></iframe><a href=\"/pano360/vinhomesthanglong/2/vtour/tour.html\" target=\"_blank\">Xem toàn màn hình</a>");

    //$("#div_1_Loaitin1_Tinhthanh0_Pos0_style3_device0").html("<iframe src=\"/bannerAds/" + item_top + "/728X90/728x90.html\" frameborder=\"0\" width=\"746\" height=\"95\"></iframe>");

    WO_CLICK();
 //   DUAN_SHOWTOP10('');


    $("#adnzone_9846").mouseover(function () {
        
        $(this).find("span").removeClass('txtlogo').addClass('txtlogo2');
         
      })
      .mouseout(function() {
          $(this).find("span").removeClass('txtlogo2').addClass('txtlogo');
      });

    $("#featured-cars").owlCarousel({ loop: !0, nav: !0, dots: !1, autoplay: !1, responsive: { 0: { items: 2 }, 768: { items: 3 }, 1200: { items: 5 } } }),$("#featured-top-streaming-home").owlCarousel({ loop: !0, nav: !1, dots: !1, autoplay: !0, navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'], responsive: { 0: { items: 1 }, 768: { items: 3 }, 1200: { items: 4 } } });

    $("#featured-cars-three").owlCarousel({ loop: !0, nav: !1, dots: !1, autoplay: !1, navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'], responsive: { 0: { items: 1 }, 350: { items: 2 }, 768: { items: 3 }, 1200: { items: 3 } } });
    
    
    $('#ContentPlaceHolder2_ddlOrders').on('change', function () {
        var IDQuan = 0;
        if ($("#ContentPlaceHolder2_ddlOrders option:selected").index() > 0)
            IDQuan = $('#ContentPlaceHolder2_ddlOrders').val();
        $("#boxWOAd").html("<iframe class=\"iFrameWOAd\" src=\"/widgetsWOAd?IDQuan=" + IDQuan + "\"></iframe>");
    });

    function setVisibleChat(vis) {
        var IDU = document.getElementById('user-id').value;
        firebase.database().ref('users-info/' + IDU + '/opendchat').remove();

        
        if (IDU != '' && $("#txtN").val()!=null) {
            firebase.database().ref('users-chat/' + $("#txtN").val() + '/' + IDU).set({
                IDA: $("#IDAChat").val(),
                Visible: vis
            });
        }
    }

    $("#butClose").on("click", function () {

        var IDU = document.getElementById('user-id').value;

        $.sidePanelKill();
        $("#butClose").removeClass('cssbutCloseShow').addClass('cssbutCloseHide');

        var _subtopic = $(this).attr("subtopic");
        if (_subtopic != '' && IDU!='') {
            firebase.database().ref('users-chat/' + $(this).attr("subtopic") + '/' + IDU +'/Visible').set(false);
        }

        setVisibleChat(false)

    });

    $('#apanelchat').on("click", function () {
        if ($('#user-id').val() != '') {
            firebase.database().ref('users-topic/' + $('#user-id').val() + '/beg').remove();
        }
        $("#mcTooltipWrapper").addClass("fixTooltip");
    });

    $('#selectTinhThanh').on("click", function () {
      // $("#mcTooltipWrapper").addClass("fixTooltip");
    });

    $('#apaneltinluu').on("click", function () {
       $("#mcTooltipWrapper").addClass("fixTooltip");
    });

    $('#abtnLoginHome').on("click", function () {
        $("#mcTooltipWrapper").addClass("fixTooltip");
    });

   
    
    var _alert1='Thiết bị này chưa đăng ký nhận thông báo hoặc không cho phép nhadat24h.net gửi thông báo. Hãy cho phép và đăng ký nhận thông báo cho thiết bị này trước khi đăng ký nhận thông báo từ một kênh nào.';

    $('#btn-subcripble').on("click",function(){
       
        var _idu = $('#user-id').val();
        var _devID=getCookie("SessionGUID");
        var _topic=$(this).attr('data-topics');
        if($(this).attr('data-action')=='subcripble'){

            firebase.database().ref('notify/'+_idu+'/'+_devID).once('value').then(function(snapshot) {

                  if(snapshot.val().TOKENID){
                    firebase.database().ref('subcripble-'+_topic+'/'+_idu).set({
                        TIME: firebase.database.ServerValue.TIMESTAMP
                    });

                    $(this).html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Đang theo dõi");
                    $(this).attr('data-original-title','Click vào đây để huỷ bỏ nhận thông báo');

                    $(this).removeClass('lb-alink').addClass('lb-alink-selected');

                    localStorage.setItem('topics/'+_topic,1);

                    alert('Đăng ký nhận thông báo thành công');
                    $(this).attr('data-action','unsubcripble');
                  }
                  else{
                    alert(_alert1);
                  }
           });
        }
        else if($(this).attr('data-action')=='unsubcripble'){
                
                firebase.database().ref('subcripble-'+_topic+'/'+_idu).remove();
                $(this).html("<i class=\"fa fa-rss\" aria-hidden=\"true\"></i> Theo dõi");
                $(this).attr('data-original-title','Mỗi khi có thông tin mới hệ thống sẽ tự động gửi tin nhắn đến bạn!');
                $(this).removeClass('lb-alink-selected').addClass('lb-alink');
                $(this).attr('data-action','subcripble');

                localStorage.removeItem('topics/'+_topic);
                alert('Huỷ nhận thông báo thành công');
        }
    });

    $("#btn-subcripble-user").text(function () {
        var targetUser = $(this).attr('data-userid')
        if (localStorage.getItem("topics/SubcribleME-"+targetUser) ==1) {

            $(this).html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Đang theo dõi");
            $(this).removeClass('lb-alink').addClass('lb-alink-selected');
            $(this).attr('data-action','unsubcripble');
        };
    });

    $('#btn-subcripble-user').on("click",function(){
    
        var _idu = $('#user-id').val();
        var targetUser = $(this).attr('data-userid')
        var _devID=getCookie("SessionGUID");

        if($(this).attr('data-action')=='subcripble')
        {
            firebase.database().ref('MESubcrible/' + _idu + '/' + targetUser).set({
                TIME: firebase.database.ServerValue.TIMESTAMP
            });

            firebase.database().ref('SubcribleME/' + targetUser + '/' + _idu + '/' + _devID).set({
                TIME: firebase.database.ServerValue.TIMESTAMP
            });
            localStorage.setItem("topics/SubcribleME-" + targetUser, 1);
            $(this).html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Đang theo dõi");
            $(this).removeClass('lb-alink').addClass('lb-alink-selected');
            $(this).attr('data-action', 'unsubcripble');



            
        }   
        else{
            firebase.database().ref('MESubcrible/'+_idu+'/'+ targetUser).remove();
            firebase.database().ref('SubcribleME/'+targetUser+'/'+_idu+'/'+_devID).remove();
            localStorage.removeItem("topics/SubcribleME-"+targetUser);
            $(this).html("<i class=\"fa fa-rss\" aria-hidden=\"true\"></i> Theo dõi");
            $(this).removeClass('lb-alink-selected').addClass('lb-alink');
            $(this).attr('data-action','subcripble');
        }


    });

    $("#btn-subcripble-topic").on("click",function(){

        var _isSearchPage = $("#divSearchPage");
        var _idu = $('#user-id').val();
        var _devID=getCookie("SessionGUID");
        if(_isSearchPage.attr("data-ids")&&_idu){

            if($(this).attr('data-action')=='subcripble'){
                firebase.database().ref('notify/'+_idu+'/'+_devID).once('value').then(function(snapshot) {

                  if(snapshot.val().TOKENID){
                      try {

                        firebase.database().ref('subcripble/' + _isSearchPage.attr("data-ids") + '/' + _idu + '/' + _devID).set({
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });

                        firebase.database().ref('users-info/' + _idu + '/subcripble/' + _isSearchPage.attr("data-ids") + '/' + _devID).set({
                            TITLE: _isSearchPage.attr("data-stitle"),
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });

                          localStorage.setItem("topics/searchid-" + _isSearchPage.attr("data-ids"), 1);

                          $("#btn-subcripble-topic").html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Đang theo dõi");

                          $("#btn-subcripble-topic").attr('data-original-title', 'Click vào đây để huỷ bỏ nhận thông báo');

                          $("#btn-subcripble-topic").addClass('active');

                          $("#btn-subcripble-topic").attr('data-action', 'unsubcripble');

                    }
                    catch (err) {
                        console.log(err.message)
                    }
                   // alert('Đăng ký nhận thông báo thành công kênh: ' + _isSearchPage.attr("data-stitle"));

                  }
                  else{
                    alert('Thiết bị này chưa đăng ký nhận thông báo hoặc không cho phép nhadat24h.net gửi thông báo. Hãy cho phép và đăng ký nhận thông báo cho thiết bị này trước khi đăng ký nhận thông báo từ một kênh nào.');
                  }

                });
            }
            else if($(this).attr('data-action')=='unsubcripble'){
                
                firebase.database().ref('users-info/'+_idu+'/subcripble/'+_isSearchPage.attr("data-ids")+'/'+_devID).remove();
                $(this).html("<i class=\"fa fa-rss\" aria-hidden=\"true\"></i> Theo dõi");
                $(this).attr('data-original-title','Mỗi khi có tin đăng mới vào mục này hệ thống sẽ tự động gửi tin nhắn đến bạn!');
                $(this).removeClass('active');
                $(this).attr('data-action','subcripble');

                localStorage.removeItem("topics/searchid-"+_isSearchPage.attr("data-ids"));
                alert('Huỷ nhận thông báo thành công kênh: '+_isSearchPage.attr("data-stitle"));
            }


        }

    });



    function httpGetAsync(theUrl, callback) {
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
                callback(xmlHttp.responseText);
        }
        xmlHttp.open("GET", theUrl, true); // true for asynchronous 
        xmlHttp.send(null);
    }

    

    


    $("#btnBinFormBaocao").on("click", function (event) {
        $("#formBaoCao").empty();
        $("#formBaoCao").append("<h3>Báo cáo tin vi phạm</h3>");
        $("#formBaoCao").append("<p>Chúng tôi luôn nỗ lực hết mình minh bạch hoá mọi thông tin bất động sản. Hãy cho chúng tôi biết tin đăng này đang có những vấn đề gì?</p>");
        $("#formBaoCao").append("<ul><li>");
        $("#formBaoCao").append("<input id=\'ipcheckreport1\' class=\"w3-check\" type=\"checkbox\"><label for=\'ipcheckreport1\'>Tin đăng sai vị trí</label>");
        $("#formBaoCao").append("</li><li><input id=\'ipcheckreport2\' class=\"w3-check\" type=\"checkbox\"><label for=\'ipcheckreport2\'>Tin đăng giá ảo</label>");
        $("#formBaoCao").append("</li><li><input id=\'ipcheckreport3\' class=\"w3-check\" type=\"checkbox\"><label for=\'ipcheckreport3\'>Tin đăng sai diện tích</label>");
        $("#formBaoCao").append("</li><li>");
        $("#formBaoCao").append("<input id=\'ipcheckreport4\' class=\"w3-check\" type=\"checkbox\"><label for=\'ipcheckreport4\'>Sai thông tin liên hệ</label>");
        $("#formBaoCao").append("</li><li><input id=\'ipcheckreport5\' class=\"w3-check\" type=\"checkbox\"><label for=\'ipcheckreport5\'>Tin sai sự thật</label>");
        $("#formBaoCao").append("</li></ul>");
        $("#formBaoCao").append("<input type=\"hidden\" id=\"valuebaocaohiden\"/>");
        $("#formBaoCao").append("<input type=\"button\" id=\'btnActionbinBaoCao\' value=\"Gửi báo cáo\" class=\"ButtBlue\">");
         var elems = $('.formBaoCaoCss :checkbox');
  
          elems.on('change', function() {
            
            var str = elems
           
            .filter(':checked')

            .map(function() {
              return $(this).next().text();
            })

            .get()
           
            .join(',');
            //alert(str);
            $('#valuebaocaohiden').val(str)
          });

            $("#btnActionbinBaoCao").on("click", function (event) {
            try {
               
                if ($("#txtU").val() != '') {
                    var me = $("#user-id").val();

                    var _desc =  $('input#valuebaocaohiden').val();
                    var IDN = $('#txtN').val();
                   if(_desc!='')
                   {
                        firebase.database().ref('baocaotinvipham/'+IDN+'/'+me).set({
                            DESC: $('input#valuebaocaohiden').val(),
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });
                        var strTITLe = encodeURI("Có báo cáo từ tin: "+ $("#txtcontenttieudetin").text());
                       var icon = $('#user-pic').attr('data-src');

                        var query = firebase.database().ref('notify/259053');

                        query.once("value")
                          .then(function(snapshot) {
                            snapshot.forEach(function(childsnapshot) {
                            httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=' + window.location.href + '&strIcon=' + encodeURI(icon) + '&title=' + strTITLe, null);
                          });
                        });

                        alert('Xin chân thành cảm ơn '+ $('#user-name').val() +'. Báo cáo này của bạn rất quan trọng với chúng tôi. Tin đăng này sẽ được ban quản trị kiểm tra lại trong thời gian sớm nhất!');
                        $("#mcttCloseButton").trigger("click");
                   }
                   else{
                    alert('Chào '+ $('#user-name').val() +', Hãy cho chúng tôi biết vấn đề của tin đăng này là gì? Cứ yên tâm thông tin về danh tính người gửi báo cáo chỉ có chúng tôi được biết.');
                   }

                }
                else {
                    $.metroMessageBox({
                        content: "Bạn cần đăng nhập trước khi gửi báo cáo!",
                        defaultbutton: 1,
                        buttons: ["Đăng nhập", "Thoát"],
                    }, function (action, buttom, value, selectedText) {
                        if (buttom == "Thoát") {
                            //  $.metroMessageBoxKill();
                        }
                        else {
                            var pathname = '/DKTV-' + window.location.pathname;
                            window.location.href = pathname.replace('/DKTV-/', '/DKTV-');
                        }
                    });
                }
            }
            catch(err) {
                alert(err.message);
            }
             
        });          

    });

    

    $("#btnLoadmoreTinCaNhan").click(function() {
       LoadmoreTinCaNhan();
    });

    $("#btnLoadmoreSearch").click(function() {
         search2019("",$(this).attr("data-Tinhthanh"),$(this).attr("data-QuanHuyen"), $(this).attr("data-KhuVuc"), $(this).attr("data-LoaiNha"), 
        $(this).attr("data-HuongNha"), $(this).attr("data-FromDientich"),
                             $(this).attr("data-ToDienTich"), "1", $(this).attr("data-FromGia"), $(this).attr("data-donviFromGia"),
                             $(this).attr("data-ToGia"), $(this).attr("data-donviToGia"), $(this).attr("data-TuKhoa"), $(this).attr("data-LoaiTin"), $(this).attr("data-SapXep"), 
                             $(this).attr("data-id_u"), $(this).attr("data-yesVIP"),$(this).attr("data-NguonTin"), 
                             $(this).attr("data-Matin"), $(this).attr("data-PageIndex"), $(this).attr("data-offerYear"),
                             $(this).attr("data-IDLink"),$(this).attr("data-TotallRow"));;
    });

    if($("#localIDU").val()){
            
            $(window).scroll(function(){
                var aTop = $('.dv-body-frm').height();

                if(aTop<=4000)
                {
                    $('#btnLoadmoreTinCaNhan').attr('onclick', '');
               //     $("#btnLoadmoreTinCaNhan").attr("style", "visibility: hidden")
                }
                else{
                    if($(this).scrollTop()>=(aTop-400)){
                        LoadmoreTinCaNhan();
                    }
                }
                
              });
    }

    if ($("#listVideo").attr("data-action") == "load") {
        $(window).scroll(function () {
            var aTop = $('.ct-in-l').height();

            if ($(this).scrollTop() >= (aTop - 400)) {
                console.log('loadmore video..');
                var pageindex = parseInt($("#listVideo").attr("data-pageindex"));

                if (sessionStorage.getItem("pageindexvideo") != null) {
                    pageindex = parseInt(sessionStorage.getItem("pageindexvideo"));
                }
                LoadmoreVideo(pageindex);
            }

        });
    }
     $("#choisemenu-1 a").click(function() {
        var _style = parseInt($(this).attr("data-style"));
        $("#choisemenu-1 a").removeClass('lb-alink-selected').addClass("lb-alink");
        var divId = $(this).removeClass('lb-alink').addClass('lb-alink-selected');
        LoadTinDanhchoban(1, 1, 5, 0, 0, true, true,_style);
        firebase.database().ref('users-info/'+$("#user-id").val()+'/stylechoise').set(_style);
      //  document.getElementById(divId).className = '';

    });

   
    

    $("#choisemenu-3 a").click(function() {
        var _style = parseInt($(this).attr("data-style"));
        $("#choisemenu-3 a").removeClass('lb-alink-selected').addClass("lb-alink");
        var divId = $(this).removeClass('lb-alink').addClass('lb-alink-selected');
        LoadTinDanhchoban(3, 1, 5, 0, 0, true, true,_style);
        firebase.database().ref('users-info/'+$("#user-id").val()+'/stylechoise').set(_style);

    });


    $("#btnQuanTamvisble").on("click", function (event) {
        var tieude = $("#woclick-atitle").text();
        var href = $("#woclick-atitle").attr("data-url");
        var idwo = $("#woclick-atitle").attr("data-woid");
        var IDA = $("#woclick-atitle").attr("data-uid");
        var idu = $('#user-id').val();

        var address = '';

        if($('#txtADDRESS').val())
        {
            address = $('#txtADDRESS').val();
        }

        QuanTam(2,idwo, idu, tieude, href, IDA,address)
    });


    $("#btnClearAllHistorySearch").on("click", function (event) {

        if ($(this).attr('data-style') == '1') {
            if (confirm("Bạn muốn xoá toàn bộ tin đã lưu?") == true) {
                firebase.database().ref('users-info/' + $('#user-id').val() + '/luutin').remove();
                localStorage.removeItem('listtinluu');
                $('#liListtinluu').html("");
            }
        }
        else {
            if (confirm("Bạn muốn xoá toàn bộ lịch sử tìm kiếm?") == true) {
                firebase.database().ref('users-info/' + $('#user-id').val() + '/visited').remove();
                $('#liListtinluu').html("");
            }
        }

         
      });

    $("#frmdatmua_Button2").click(function () {
        fillMobile('mobile', $("#frmdatmua_txtMobile").val());
        fillMobile('email', $("#frmdatmua_txtEmail").val());
        fillMobile('name', $("#frmdatmua_txtHT").val());
        fillMobile('address', $("#frmdatmua_txtDiachi").val());
    });

    function fillMobile(key, value) {
        if(key=='mobile')
        {   
            if(value.match(/^\d+$/)&&value.length>6){
                database.ref('users-info/'+$("#user-id").val()+'/'+key).set(value);
            }
        }
        else{
            database.ref('users-info/'+$("#user-id").val()+'/'+key).set(value);
        }
    }

    $("#clearNotify").on("click", function (event) {
        if (confirm("Bạn có muốn xoá toàn bộ thông báo?")){
            firebase.database().ref('users-topic/' + $('#user-id').val()).remove();
            sessionStorage.removeItem('listNotifycation');
            alert('Đã xoá toàn bộ thông báo');
        } 
    });

     $("#yeucaugoilai").on("click", function (event) {

        var idn = $('#txtN').val();
        var idu = $('#user-id').val();
        var address = '';

        if($('#txtADDRESS').val())
        {
            address = $('#txtADDRESS').val();
        }

        var tieude = $("#txtcontenttieudetin").text();
        var href = $("#txtcontenttieudetin").attr("data-href");
        href = href.substr(1, href.length - 1);
        
        var IDA = document.getElementById('IDAChat').value;

        QuanTam(1,idn, idu, tieude, href, IDA,address);
     });

    

    $("#btnMakeMapNearMe").on("click", function (event) {
   
        if ($(window).width() >=600) {
            event.preventDefault();
            var dataUrl = $(this).attr("href");
            $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
            $.metroSidePanel({
                                    iframe: dataUrl,
                                    width: $(window).width(),
                                    backgroundcontent: "#4d636f",
                                    fa: "fa-star-o",
                                    blocked: true,
            });
        }

    });

   

    $("#btnclickpopchattopic").on("click", function (event) {

        var _width = $(window).width();
        
        if (_width > 700) {
            _width = 700;
        }

        event.preventDefault();

        var dataUrl = $(this).attr("href");

       // var _img = $("#imgAvataDetail").attr("src")

        var IDA = $('#IDAChat').val();

        var _img = $("#preImg-" + IDA).attr("src").replace("/Thumbnai/", "/");

        var _name = $("#preImg-" + IDA).attr("alt").toUpperCase();


        if (dataUrl != "") {
            // alert('1');
            var _dialogMobile = false;
            var idu = $('#txtU').val();
            var idn = $('#txtN').val();

            if (idu == '' || idu == null) {

                var _user = firebase.auth().currentUser;
                var idgg = _user.uid;

                mobinumber = localStorage.getItem('mobile') || sessionStorage.getItem('mobile') || '';
                
                if (_user.isAnonymous) {

                    AuthenButton(idn, idgg, IDA);
                    return
                    //let result = confirm('Để tránh giả mạo thông tin chúng tôi yêu cầu bạn xác thực số điện thoại trược khi sử dụng chức năng này. Xin chân thành cảm ơn.');
                    //if (result) {
                    //    PopupCenter('/xacthucsodienthoai#ycchat=' + encodeURI(1 + "-" + idn + "-" + idgg + "-" + IDA), 'Xác thực với số điện thoại', '400', '420');
                    //    return
                    //}
                    //return;

                };

                setVisibleChat(true)

               // $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                $.metroSidePanel({
                    iframe: dataUrl,
                    width: _width,
                    backgroundcontent: "#4d636f",
                    img: _img,
                    fa: "fa-star-o",
                    blocked: true,
                });

            }
            else {
                // da dang nhap
                
                setVisibleChat(true)

               // $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                $.metroSidePanel({
                    iframe: dataUrl,
                    width: _width,
                    backgroundcontent: "#4d636f",
                    img: _img,
                    fa: "fa-star-o",
                    blocked: true,
                });
            }
            $.smallBoxKill();
        }
       
        //if ($(window).width() > 450) {
            
            

        //}
        //else {
        //    window.open(dataUrl, '_blank');
        //}
    });
        $.getJSON('https://api.ipify.org?format=json', function (data) {
            $('#txtIP').val(data.ip);
        });
         /*
        $(".call").click(function () {
            window.location.href = "tel://" + $('#viewmobinumber').text();
        });
        $(".chat").click(function () {
            $("#btnclickpopchattopic").trigger("click");
        });

       
        $(".quantam").click(function () {
            $("#yeucaugoilai").trigger("click");
        });
        */

    $( "#ContentPlaceHolder2_ddlProducts" ).change(function() {
        $("#pmesslienminh").hide();
       if(this.value>0)
        _2014Index.CHECKONLIENMINH(this.value,CHECKONLIENMINH_callback);
    });

    function CHECKONLIENMINH_callback(response) {
        if (response.error != null) {
            //alert(response.error);
            return;
        }
        else {
            if(response.value>0){
                $("#pmesslienminh").fadeIn("slow");
                $("#pmesslienminh").html("<i class=\"fa fa-shekel\"></i>Xem <strong>bảng hàng</strong> và <strong>tài liệu bán hàng (Salekit)</strong> của dự án:<a target=\"_blank\" href=\"https://nhadat24h.net/lienminh/tab-2-"+$("#ContentPlaceHolder2_ddlProducts option:selected").val()+"\" title=\"\"><strong> "+$("#ContentPlaceHolder2_ddlProducts option:selected").text()+"</strong>.</a>");
            }
        }
    }

    function LoadTinTaiTro(ID_LOAITIN, ID_TT, idItem) {
        _2014Index.LoadTinTaiTro(ID_LOAITIN, ID_TT, LoadTinTaiTro_callback);
    }

    function LoadTinTaiTro_callback(response) {

        $("#preTinDuocTaiTro-2").html(response.value);

        binPrecommand();

        var swipercontainer1 = document.getElementsByClassName('preTinDuocTaiTro');
        if (swipercontainer1 && swipercontainer1.length > 0) {
            new Swiper(".preTinDuocTaiTro .swiper-container1", {
                grabCursor: false,
                loop: false,
                //effect: "cube",
                //cubeEffect: {
                //    shadow: false,
                //    slideShadows: false,
                //    shadowOffset: 0,
                //    shadowScale: 1,
                //},
                pagination: {
                    el: ".preTinDuocTaiTro .swiper-pagination",
                },
            });
        }

    }
    
    function search2019(_GetIPAddress, _id_tt, _id_q, _id_kv, _id_ln, _id_hn, _fromTD,
             _toDT, _dvDT, _fromG, _dvGfrom, _toG, _dvGto,
             _keyWord, _ID_LT, _orderby, _id_u, _yesVIP,
         _NguonTin, _Matin, _PageIndex, _offerYear, _IDLink, _TotallRow) {

        if (sessionStorage.getItem('isBusySearch')&&sessionStorage.getItem('isBusySearch')==true) 
            return

        sessionStorage.setItem('isBusySearch',true);
        $("#divlistitemketquatimkiem").html('<center class="mainspinnerLoading"><i class=\"fas fa-spinner fa-spin\"></i></center>');
        _2014Index.search2019(_GetIPAddress, _id_tt, _id_q, _id_kv, _id_ln, _id_hn, _fromTD,
             _toDT, _dvDT, _fromG, _dvGfrom, _toG, _dvGto,
             _keyWord, _ID_LT, _orderby, _id_u, _yesVIP,
         _NguonTin, _Matin, _PageIndex, _offerYear, _IDLink, _TotallRow,search2019_callback);
    }

    function search2019_callback(response) {
        if (response.error != null) {
            alert(response.error);
            return;
        }
        else {
            if(response.value=='0'){
                $("#divlistitemketquatimkiem").html('<center><h4>Không tìm thấy kết quả tìm kiếm. Hãy thử bỏ bớt một vài điều kiện tìm kiếm và tìm lại</h4></center>');
                return;
            }
            $("#divlistitemketquatimkiem").html(response.value);

           
            sessionStorage.setItem('isBusySearch', false);
            fillImage();
            binPrecommand();
            binviewlike();

            if (jQuery().swipebox) {
                $(".s1swipebox").swipebox();
            }

            $('#featured-top-streaming').owlCarousel({
                loop: true,
                nav: true,
                dots: false,
                autoplay: false,
                navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
                responsive: {
                    0: {
                        items: 1
                    },
                    768: {
                        items: 2
                    },
                    1200: {
                        items: 3
                    }
                }
            });
        }
    }

    

    var delay = (function(){
      var timer = 0;
      return function(callback, ms){
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
      };
    })();

        var listTimKiem = document.getElementById('listTimKiem');
        var divHuongDan = document.getElementById('divHuongDan');
        var text = document.getElementById("txtTuKhoa");


        $("#txtTuKhoa").keyup(function (event) {
            delay(function(){

               if (text.value.length >= 3) {
                $("#divHuongDan").hide()
                $("#listTimKiem").show()
                   $("#txtTuKhoa").css("background", "url('/image/Loadinglarge.gif') no-repeat scroll right center / contain transparent");
                    getListSearch(document.getElementById('txtLoaiTin').value, 0, 0, 0, 0, $.trim(text.value));
                }
                else {
                    $("#divHuongDan").show();
                    $("#listTimKiem").hide();
                }

            }, 500 );


        });

    $(".agirhtclose").click(function (event) {
        $(this).attr('style', 'display:hide !important');
            $(".inputNewTimKiemTOP").val('');
            $(".inputNewTimKiemTOP").focus();
    });

    $(".inputNewTimKiemTOP").click(function () {
        $(".toplistketquatimkiem").show();
        $(".closetopSearch").attr('style', 'display:block !important');
        binCachedKeyWord("CachedKeyWord", "inputtopsearch", "listcachedKeyWord");

        if ($(window).width() <= 600) {
            $(".panelTopSearch").css("width", "calc(100vw - 40px)")
            $(".w3-show-inline-block-small").addClass("hide");
        }

        $(".toplistketquatimkiem").show();
        if (localStorage.getItem("holder-ketquatimkiem") != null) {
            $("#divtoplistketquatimkiem").html(localStorage.getItem("holder-ketquatimkiem"));
        }
        if (localStorage.getItem("holder-maplistplace") != null) {
            $("#placeSearchList ul").html(localStorage.getItem("holder-maplistplace"));
        }
    });

    $(".closetopSearch").click(function () {
        $(".w3-show-inline-block-small").removeClass("hide");
        $(".toplistketquatimkiem").hide();
        $(this).attr('style', 'display:hide !important');
        $(".panelTopSearch").css({ "box-shadow": "none", "width": "auto" });
    });


    $(".inputNewTimKiemTOP").keyup(function (e) {
         var length = 0;
        var start = 500;
        $(".agirhtclose").attr('style', 'display:block !important');
         length = $(".inputNewTimKiemTOP").val().length;
         length = length * 150;
        
         if (e.key === 'Enter' || e.keyCode === 13) {
             length = 0;
             start = 0;

             $(".toplistketquatimkiem").show();
         }

        delay(function(){
               
               
                if ($(".inputNewTimKiemTOP").val().length >= 3) {

                   
                   var textSearch = $.trim($(".inputNewTimKiemTOP").val());
                   _2014Index.getListLinkSearch($("#txtLoaiTin").val() || 1, 0, $("#txtTT").val() || 0, 0, 0, textSearch, getTopListSearch_callback);

                   AddCachedKeyWord(textSearch, "CachedKeyWord");

                    /*
                    $.ajax({
                        url: 'https://maps.googleapis.com/maps/api/geocode/json?address='+_keyword+'&key='+keyGG+'&components=country:VN',
                        dataType: 'json',
                        success: function(json) {

                            var _link = "/tim-nha-dat-quanh-day#location="+json.results[0].geometry.location.lat+","+json.results[0].geometry.location.lng;
                            
                            $("#placeSearchList ul").html("<li><i class=\"fas fa-map-marked-alt\"></i> <a target=\"_blanlk\" href=\"" + _link + "\">" + json.results[0].formatted_address +"<label> (Click để tìm nhà đất xung quanh vị trí này)</label></a></li>");
                            localStorage.setItem("holder-maplistplace", $("#placeSearchList ul").html());


                        }
                    });
                    */


                }
                else{
                     $("#divtoplistketquatimkiem").html("Xin nhập vào tên dự án hoặc tên đường phố, hoặc tên quận huyện..."); 
                }

        }, start + length);

     });

    $(".panelTopSearch").mouseover(function () {
        $(".panelTopSearch").css("box-shadow", "0 1px 6px 0 rgba(32,33,36,0.28)");


        

        //const strPlaceHoder = ["vinhomes ocean park", "thanh xuân", "quận 1", "binh duong", "da nang", "chung cu", "biet thu","dưới 1 tỷ"]
        //var time = 500;
        //strPlaceHoder.forEach(element => {
        //    setTimeout(function () {
        //        $('.inputNewTimKiemTOP').attr("placeholder", element);
        //    }, time);
        //    time += 1000;
        //});

    });

    //$(".panelTopSearch").mouseout(function() {
    //    $(".panelTopSearch").css({ "box-shadow": "none", "width": "auto" });
    //});

  
    $("#btnTimnhatrenbando").click(function () {
        var address='hà%20nội';
        var Tinhthanh = $('#ContentPlaceHolder3_boxSearch1_ddlCustomers').find(":selected").text();
        var Quanhuyen = $('#ContentPlaceHolder3_boxSearch1_ddlOrders').find(":selected").text();
        var Khuvuc = $('#ContentPlaceHolder3_boxSearch1_ddlProducts').find(":selected").text();

        if(Khuvuc!='Tất cả'){
            address = Khuvuc+', '+Quanhuyen+', '+Tinhthanh
        }
        else if(Quanhuyen!='Tất cả'){
            address = Quanhuyen+', '+Tinhthanh
        }
        else{
            address = Tinhthanh
        }
        
        $.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '&key=' + keyGG + '&components=country:VN', function (data) {

            console.log("data: " + data.results[0].geometry);
            var urlmap = '/map#location='+data.results[0].geometry.location.lat+','+data.results[0].geometry.location.lng;
            if ($(window).width() > 450) {
                        $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                                    $.metroSidePanel({
                                        iframe: urlmap,
                                        width: $(window).width(),
                                        backgroundcontent: "#4d636f",
                                        fa: "fa-star-o",
                                        blocked: true,
                                    });

                     }
                     else {
                         window.open(urlmap, '_blank');
                     }

        });
    });

    
    function loadtindanhchoban_right(){
        if(botCheck()){
                return;
            }
        console.log('loading danh cho ban.');

        var me = localStorage.getItem('firebasecurrentUser');
        if($("#user-id").val()){
            me = $("#user-id").val();
        }
        $("#user-id").val();
            firebase.database().ref('users-info/'+me).once('value', function (snapshot) {
                    var exists = (snapshot.val() != null);
                    var _giatien = '0';
                if (snapshot.child("GIATIEN").val()) {

                        _giatien = snapshot.child("GIATIEN").val();
                        
                    }
                    if(exists&&snapshot.child("ID_TT").val()){
                        console.log('binding...');
                        _2014Index.GETTOPDANHCHBAN_RIGHT(snapshot.child("ID_LT").val()||1, 
                        snapshot.child("ID_LN").val(), snapshot.child("ID_TT").val(), 
                        snapshot.child("ID_QQ").val(), snapshot.child("ID_KV").val(),_giatien, LoadTinDanhchoban_right_callback1);

                    }

        });
    }

    function LoadTinDanhchoban(ID_LOAITIN, ID_LN, ID_TT, ID_QH, ID_KV, fillkv, fillqh,style) {

        if(isBusy)
            return;
       isBusy = true;

        $("#txtLoaiTin").val(ID_LOAITIN);

        var me = $("#user-id").val();
        if(!me){
           /* me=firebase.auth().currentUser.uid;*/
        }
        if(style==1){
           $.metroLoading({
                title:"Đang tìm BĐS dành cho bạn...",
                content: "Đang tìm BĐS dành cho bạn xin đợi trong giây lát",
                fa: "fa-refresh",
                timeout:2000,
            });
            $("#infoTop-"+ID_LOAITIN).html("Hệ thống đưa ra gợi ý dựa trên những gì bạn đã tìm kiếm hoặc đã xem tại thời điểm gần nhất");
            firebase.database().ref('users-info/'+me).once('value', function (snapshot) {
                var exists = (snapshot.val() != null);
                var _giatien = '0';
                if(snapshot.child("GIATIEN").val()){
                _giatien = snapshot.child("GIATIEN").val();
                }
                if(exists&&snapshot.child("ID_TT").val()){
                    
                    _2014Index.GETTOPDANHCHBAN(ID_LOAITIN, snapshot.child("ID_LN").val(), snapshot.child("ID_TT").val(), snapshot.child("ID_QQ").val(), snapshot.child("ID_KV").val(), fillkv, fillqh, style,_giatien, LoadTinDanhchoban_callback1);
                }
                else{
                    alert("Chúng tôi cần thu thập thêm thông tin để đưa ra giợi ý dành cho bạn!");
                    $.metroLoadingKill();
                }
            });
        }
        else{
           
            if(style==2){
                $("#infoTop-"+ID_LOAITIN).html("<h3>Top 10 tin đăng mới đăng lên</h3>");
            }
            else {
                $("#infoTop-"+ID_LOAITIN).html("<h3>Top 10 tin đăng mới được cập nhật</h3>");
            }
            _2014Index.GETTOPDANHCHBAN(ID_LOAITIN, ID_LN, ID_TT, ID_QH,ID_KV, fillkv, fillqh, style,'0',LoadTinDanhchoban_callback1);
        }

        isBusy = false;

    }

    var isBusy = false;

    function LoadmoreTinCaNhan() {
        console.log('isBusy: '+isBusy);
        if(isBusy)
            return;
        isBusy = true;
        var btnLoadmore = $("#btnLoadmoreTinCaNhan");

        btnLoadmore.text('Đang tải 20 tin kế tiếp...');
        btnLoadmore.attr('onclick', '');
        
        _2014Index.SEARCHTIN4INTUSER2018(btnLoadmore.attr("data-idu"),btnLoadmore.attr("data-pageindex"),LoadTinCaNhan_callback1);
    }

    function LoadmoreVideo(page) {
        
        if (isBusy)
            return;
        isBusy = true;
        console.log('LoadmoreVideo');
        if ($("#listVideo").attr("data-action")=='load') {
            $("#loadingvid").html('<center class="mainspinnerLoading"><i class=\"fas fa-spinner fa-spin\"></i></center>');
            _2014Index.N_GETALLVIDEO(page, N_GETALLVIDEO_callback);
        }

    }

    function LoadmoreGETTOP4KIEMDUYET() {
        var btnLoadmoreKIEMDUYET = $("#divloadmorekiemduyet");
        _2014Index.GETTOP4KIEMDUYET(0,1, btnLoadmoreKIEMDUYET.attr("data-pageindex"), LoadmoreGETTOP4KIEMDUYET_callback);
    }

    function binFunVideo() {
        $("video").each(function () {

            if (sessionStorage.getItem('timestartvideo' + this.id)) {
                this.currentTime = sessionStorage.getItem('timestartvideo' + this.id);
            }

            this.addEventListener("timeupdate", myFunction);
            function myFunction() {
                if (this.id) {
                    sessionStorage.setItem('timestartvideo' + this.id, this.currentTime);
                }
            }
        });

        $('video').off('play').on('play', function () {
            var dd = this.id
            $('video').each(function (index) {
                if (dd != this.id) {
                    this.pause();
                    this.currentTime = 0;
                }
            });

            $('#featured-top-streaming-home').trigger('stop.owl.autoplay');
        });
    }
    binFunVideo();
    function N_GETALLVIDEO_callback(response) {
        if (response.value) {
            if (response.value == '0') {
                $("#listVideo").attr('data-action', 'loaded');
                $("#loadingvid").html('');
                return;
            }
            var pageindex = parseInt($("#listVideo").attr("data-pageindex"));
            if (sessionStorage.getItem("pageindexvideo") != null) {
                pageindex = parseInt(sessionStorage.getItem("pageindexvideo"));
            }
            pageindex += 1;
            $("#listVideo").append(response.value);
            fillImage();
            binFunVideo();
            $("#listVideo").attr('data-pageindex', pageindex);
            sessionStorage.setItem("pageindexvideo", pageindex);
        }
        sessionStorage.setItem("sssLoadmoreVideo", $("#listVideo").html());
        
        $("#loadingvid").html('');
        binPrecommand();
        isBusy = false;
    }

    function LoadmoreGETTOP4KIEMDUYET_callback(response) {
        if (response.error != null) {
            
            console.log('error: ' + response.error);
            return;
        }
        else {
            if (response.value) {
                $("#divloadmorekiemduyet").append(response.value);


                var pageindex = parseInt($("#divloadmorekiemduyet").attr("data-pageindex"));
                pageindex += 1;
                $("#divloadmorekiemduyet").attr('data-pageindex', pageindex);
            }
        }
    }



    function LoadTinCaNhan_callback1(response) {
        if (response.error != null) {
            isBusy = false;
            console.log('error: '+response.error);
            return;
        }
        else {
            if(response.value)
            {
                $("#listLoadmoreTincanhan").append(response.value);
                var pageindex = parseInt($("#btnLoadmoreTinCaNhan").attr("data-pageindex"));
                pageindex += 1;
                $("#btnLoadmoreTinCaNhan").attr('data-pageindex',pageindex);
                $("#btnLoadmoreTinCaNhan").text('Xem tiếp...');
                $("#btnLoadmoreTinCaNhan").attr('onclick', 'LoadmoreTinCaNhan()');

              //  console.log(localStorage.getItem("tincanhan"));
                isBusy = false;
            }
            else{
                var countItem = $('#listLoadmoreTincanhan').children('div').length;
                $("#btnLoadmoreTinCaNhan").text(countItem+' Bất động sản');
                $('#btnLoadmoreTinCaNhan').attr('onclick', '');
            }
            var localidu = document.getElementById("localIDU").value;
            binPrecommand();
            //binviewlike();
            sessionStorage.setItem("tincanhan-"+localidu, $(".dv-body-frm").html());

            var imgDefer = document.getElementsByTagName('img');
            for (var i=0; i<imgDefer.length; i++) {
                if(imgDefer[i].getAttribute('data-src')) {
                    imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
                } 
            }

            /*

            var now = new Date().getTime();
            var setupTime = localStorage.getItem('timeout-tincanhan-'+localidu);

                if (setupTime == null ) {
                    
                    localStorage.setItem('timeout-tincanhan-'+localidu, now)

                } 
                */
        }
    }

    if($("#localIDU").val()){
        if(sessionStorage.getItem('tincanhan-'+$("#localIDU").val())==null){
            LoadmoreTinCaNhan();
        }
        else{
            $(".dv-body-frm").html(sessionStorage.getItem("tincanhan-" + $("#localIDU").val()));

        }
    }

    if ($("#listVideo").length) {
        
        if (sessionStorage.getItem("sssLoadmoreVideo") == null) {
            LoadmoreVideo(1);
        }
        else {
            console.log('Load video from ss');
            $("#listVideo").html(sessionStorage.getItem("sssLoadmoreVideo"));

            if (sessionStorage && sessionStorage.getItem("sslastScrollTop") != null) {
                $('html, body').animate({
                    scrollTop: parseInt(sessionStorage.getItem("sslastScrollTop"))
                }, 0);
            }
            
        }

    }

    if ($("#loadmorekiemduyet").val()) {

        LoadmoreGETTOP4KIEMDUYET();


        $(window).scroll(function () {
           
            var aTop = $('.dv-body-frm').height();
            if (aTop <= 4000) {
               
            }
            else {
                if ($(this).scrollTop() >= (aTop - 400)) {
                    LoadmoreGETTOP4KIEMDUYET();
                }
            }
        });
    }

    if ($("#divMainContentCached").html()) {

        var currentTime = new Date().valueOf();
        var currentDay = parseInt(currentTime / 86400000);
        var IDN = parseInt(document.getElementById('txtN').value);

        var _menu = encodeURI($("#navMenu1_divNavMenu").html());

        _2014Index.Insert_tempNha(currentDay, IDN, _menu,
            encodeURI($("#divMainContentCached").html()),
            encodeURI($("#txtcontenttieudetin").text()),
            encodeURI($("#metaDescription").attr("content")), insertTempDetailNha_callback);

        /*
        _2014Index.Insert_tempNha(currentDay, IDN , 
        $("#navMenu1_divNavMenu").html(), 
        $("#divMainContentCached").html(),
        $("#txtcontenttieudetin").text(),
        $("#metaDescription").attr("content"),insertTempDetailNha_callback);
        */
        
    }
    function insertTempDetailNha_callback(response) {
        if (response.error != null) {
            console.log(response.error);
            return;
        }
        else {
            console.log(response.value);
        }
    }
    function LoadTinDanhchoban_right_callback1(response) {
        if (response.error != null) {
            console.log(response.error);
            return;
        }
        else {

            if(sessionStorage){

                    sessionStorage.setItem("toplistdanhchoban", response.value);
                    $("#divListDanhChoBan").html(sessionStorage.getItem("toplistdanhchoban"));
                }
                else{
                    document.getElementById("toplistdanhchoban").innerHTML = response.value;
                }
        }
    }
    function LoadTinDanhchoban_callback1(response) {
        if (response.error != null) {
            //alert(response.error);
            return;
        }
        else {
            
            if($("#txtLoaiTin").val()=="1")
            {
                
                if(sessionStorage){
                    sessionStorage.setItem("topcanban", response.value);
                    $("#ContentPlaceHolder2_TopTinDang1_loadfirttop").html(sessionStorage.getItem("topcanban"));

                }
                else{
                    document.getElementById("ContentPlaceHolder2_TopTinDang1_loadfirttop").innerHTML = response.value;


                   
                }
                binPrecommand();
                fillImage();
                $.metroLoadingKill();
            }
            else{
               
                if(sessionStorage){
                    sessionStorage.setItem("topchothue", response.value);
                    $("#ContentPlaceHolder2_TopTinDang2_loadfirttop").html(sessionStorage.getItem("topchothue"));
                   
                }
                else{
                    document.getElementById("ContentPlaceHolder2_TopTinDang2_loadfirttop").innerHTML = response.value;
                }
                binPrecommand();
                fillImage();
                $.metroLoadingKill();
            }
            
        }
    }

    function LoadTinDanhchoban_callback2(response) {
        if (response.error != null) {
            //alert(response.error);
            return;
        }
        else {
            if(sessionStorage){
                    sessionStorage.setItem("topchothue", response.value);
                    $("#ContentPlaceHolder2_TopTinDang2_loadfirttop").html(sessionStorage.getItem("topchothue"));
                   
                }
                else{
                    document.getElementById("ContentPlaceHolder2_TopTinDang2_loadfirttop").innerHTML = response.value;
            }
            // binPrecommand();
            fillImage();
            $.metroLoadingKill();
        }
    }


    function LoadTincungkhuvuc(strKeyName, loaitin, tinhthanh, quan, khuvuc, LoaiBDS) {

        if (strKeyName == 'topvip_') {
            if (sessionStorage && sessionStorage.getItem("topvip_")) {

                document.getElementById("topvip_").innerHTML = sessionStorage.getItem("topvip_");
            }
            else{
                _2014Index.getListtincungkhuvuc(strKeyName, loaitin, tinhthanh, quan, khuvuc, LoaiBDS, LoadTincungkhuvuc_callback3);
            }
            
        }
        else if (strKeyName == 'key_table_nhadatnoibat_') {
            
            _2014Index.getListtincungkhuvuc(strKeyName, loaitin, tinhthanh, quan, khuvuc, LoaiBDS, LoadTincungkhuvuc_callback1);
        }
        else {
            _2014Index.getListtincungkhuvuc(strKeyName, loaitin, tinhthanh, quan, khuvuc, LoaiBDS, LoadTincungkhuvuc_callback2);
        }
       
    }
    function LoadTincungkhuvuc_callback1(response) {
        if (response.error != null) {
            console.log('error load noibat' + response.error);
            return;
        }
        else {
            console.log('load noibat');
            document.getElementById("key_table_nhadatnoibat_").innerHTML = response.value;
            fillImage2('key_table_nhadatnoibat_');
            binPrecommand();
            binviewlike();

        }
    }
    function LoadTincungkhuvuc_callback2(response) {
       
        if (response.error != null) {
            console.log('error cothebanquantam' + response.error);
            return;
        }
        else {
            console.log('load cothebanquantam');
            $("#key_table_cothebanquantam_").html(response.value);
            fillImage2('key_table_cothebanquantam_');
            binPrecommand();
            binviewlike();
        }
    }
    function LoadTincungkhuvuc_callback3(response) {
        if (response.error != null) {
            return;
        }
        else {
            document.getElementById("topvip_").innerHTML = response.value;

            binPrecommand();
            binviewlike();

            sessionStorage.setItem("topvip_", response.value);

        }
    }

    var listKQTK =  $("#divlistitemketquatimkiem");

    if (listKQTK.attr("data-Tinhthanh")) {

        /*
        console.log('divlistitemketquatimkiem'+ listKQTK.attr("data-QuanHuyen"));

        search2019("",listKQTK.attr("data-Tinhthanh"),listKQTK.attr("data-QuanHuyen"), listKQTK.attr("data-KhuVuc"), listKQTK.attr("data-LoaiNha"), 
        listKQTK.attr("data-HuongNha"), listKQTK.attr("data-FromDientich"),
                             listKQTK.attr("data-ToDienTich"), "1", listKQTK.attr("data-FromGia"), listKQTK.attr("data-donviFromGia"),
                             listKQTK.attr("data-ToGia"), listKQTK.attr("data-donviToGia"), listKQTK.attr("data-TuKhoa"), listKQTK.attr("data-LoaiTin"), listKQTK.attr("data-SapXep"), 
                             listKQTK.attr("data-id_u"), listKQTK.attr("data-yesVIP"),listKQTK.attr("data-NguonTin"), 
                             listKQTK.attr("data-Matin"), listKQTK.attr("data-PageIndex"), listKQTK.attr("data-offerYear"),
            listKQTK.attr("data-IDLink"), listKQTK.attr("data-TotallRow"));
        */
        sessionStorage.removeItem("topvip_");
    }

    var itemolyyou = $("#item-onlyyou");

    if (itemolyyou.attr("id"))
    {
        _2014Index.LoadrandomGoiytinVIP(LoadrandomGoiytinVIP_callback);

    }

    function LoadrandomGoiytinVIP_callback(response) {
        if (response.error != null) {
            return;
        }
        else {

            document.getElementById("item-onlyyou").innerHTML = response.value;

            fillImage2('item-onlyyou');
            
        }
    }
    var topvip =  $("#topvip_");
    if(topvip.attr("id")){
        LoadTincungkhuvuc(topvip.attr("data-strKeyName"), topvip.attr("data-loaitin"), topvip.attr("data-tinhthanh"), topvip.attr("data-quan"), topvip.attr("data-khuvuc"), topvip.attr("data-LoaiBDS"));
    }
    else{
        var cothebanquantam = $("#key_table_cothebanquantam_");
        if (cothebanquantam.attr("id")) {
            
            LoadTincungkhuvuc(cothebanquantam.attr("data-strKeyName"), cothebanquantam.attr("data-loaitin"), cothebanquantam.attr("data-tinhthanh"), cothebanquantam.attr("data-quan"), cothebanquantam.attr("data-khuvuc"), cothebanquantam.attr("data-LoaiBDS"));
        }

        var noibat = $("#key_table_nhadatnoibat_");
        if(noibat.attr("id")){
            
            LoadTincungkhuvuc(noibat.attr("data-strKeyName"), noibat.attr("data-loaitin"), noibat.attr("data-tinhthanh"), noibat.attr("data-quan"), noibat.attr("data-khuvuc"), noibat.attr("data-LoaiBDS"));
        }

    }

    var toptintaitro =  $(".preTinDuocTaiTro");
    if (toptintaitro.attr("data-tinhthanh")) {

        LoadTinTaiTro(toptintaitro.attr("data-loaitin"), toptintaitro.attr("data-tinhthanh"),10);
    }

   
    //$("#Tinhthanh_37_loaitin_1").html("<a title=\"Vinhomes Riverside Hải Phòng\" target=\"_blank\" rel=\"nofollow\" href=\"/ClickBanner?id=248\"><img alt=\"Vinhomes Riverside Hải Phòng\" src=\"/upload/banner/2016/vinhomes-riverside-haiphong.gif\"></a>");


    var topban = $("#ContentPlaceHolder2_TopTinDang1_loadfirttop");

    if (topban.attr("data-loaitin")) {
        var _tinhthanh = 0;
        if($("#txtTT").val()){
            _tinhthanh = $("#txtTT").val();
        }
        var _myID = localStorage.getItem('firebasecurrentUser');

        if ($("#user-id").val()) {
            _myID = $("#user-id").val();
        }

        var _giatien = 0;

        var _quan = 0;
        var _loainha = 0;
        var _loaitin = 0;
        var _khuvuc = 0;

        CHECKUSERVIP();

        /*
        if(!localStorage.getItem('firebasecurrentUser')){
            LoadTinDanhchoban(1, 1, _tinhthanh, 0, 0, true, true,2);
            return;
        }
        
        LoadTinDanhchoban(1, 1, _tinhthanh, 0, 0, true, true,2);
        */

    }

    var listdanhchoban_right =  $("#divListDanhChoBan");
    if(listdanhchoban_right.attr("data-action")=='on'){
        loadtindanhchoban_right();
    }

    /*
    var topban =  $("#ContentPlaceHolder2_TopTinDang2_loadfirttop");
    if (topvip.attr("data-loaitin")) {
        var _tinhthanh = 0;
        if($("#txtTT").val()){
            _tinhthanh = $("#txtTT").val();
        }
        _2014Index.GETTOPDANHCHBAN(3, 1,_tinhthanh, 0, 0, true, true, 2,0, LoadTinDanhchoban_callback2);
    }
    */

   //end $(document).ready

   

});

function binShowHideClose()
{
    $(".iteam-1,.iteam-0").hover(function () {
        $(this).find(".close").css("display", "inline-block");
    }, function () {
        $(this).find(".close").css("display", "none");
    });
}

function LoginGG1() {
    var provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('profile');
    provider.addScope('email');
    firebase.auth().signInWithPopup(provider).then(function (result) {
        var user = result.user.providerData[0];
        if (user == null) {
            user = result.user
        }
        var _email = user.email;
        var _Fullname = user.displayName;
        var _photoURL = user.photoUrl;
        var fbuser = firebase.auth().currentUser;

        firebase.database().ref('users-info/' + fbuser.uid + '/email').set(_email);
        firebase.database().ref('users-info/' + fbuser.uid + '/name').set(_Fullname);
        firebase.database().ref('users-info/' + fbuser.uid + '/avatar').set(_photoURL);

    }).catch(function (error) {
        var errorCode = error.code;
        var errorMessage = error.message;
        var email = error.email;
        var credential = error.credential;
    });
}

function PopupCenter(url, title, w, h) {
    
    $.sidePanelKill();

    $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
    $.metroSidePanel({
        iframe: url,
        width: w,
        backgroundcontent: "#2d3e52",
        fa: "fa-star-o",
        blocked: true,
    });
}

function LoginFB1() {

    provider = new firebase.auth.FacebookAuthProvider();
    provider.addScope('email');

    firebase.auth().signInWithPopup(provider).then(function (result) {
        var user = result.user.providerData[0];
        if (user == null) {
            user = result.user
        }
        if (user.email != null) {
            var _email = user.email;
            var _Fullname = user.displayName;
            var _photoURL = user.photoURL
            var fbuser = firebase.auth().currentUser;
            firebase.database().ref('users-info/' + fbuser.uid + '/email').set(_email);
            firebase.database().ref('users-info/' + fbuser.uid + '/name').set(_Fullname);
            firebase.database().ref('users-info/' + fbuser.uid + '/avatar').set(_photoURL);
        }
        else {
            if (confirm("Đăng nhập qua Facebook thất bại. Bạn có muốn đăng nhập qua Google?")) {
                LoginGG1();
            }
            else {
                var errorCode = error.code;
                var errorMessage = error.message;
                var email = error.email;
                var credential = error.credential;
                alert('Đăng nhập thất bại!' + errorCode);

            }
        }

    });
}

var mobinumber = localStorage.getItem('mobile') || sessionStorage.getItem('mobile') || '';

function actionShowHideFunction(_this) {
    var IDU = document.getElementById('user-id').value;
    if ($(_this).text().trim() == "Hiện số") {
        localStorage.removeItem('mobile');
        binShowMobile();
    }
    else {
        
        firebase.database().ref('users-info/' + IDU).once('value', function (snapshot) {
            var exists = (snapshot.val() != null);
            if (exists && snapshot.child("mobile").val()) {
                $("#txtinputMobile").text(snapshot.child("mobile").val());
                localStorage.setItem('mobile', snapshot.child("mobile").val());
                sessionStorage.setItem('mobile', snapshot.child("mobile").val());
                binHideMobile();
            }
            else {
                PopupCenter('/xacthucsodienthoai', 'Xác thực với số điện thoại', '400', '420');
                return;
            }

        });
    }
};

function updateNhuCauBDS() {
    var IDU = document.getElementById('user-id').value;
    var Nhucau = document.getElementById('txtinputnhucaubds').value;
    if (Nhucau == '') {
        alert('Xin cung cấp rõ hơn về nhu cầu của bạn.');
        return;
    }
    firebase.database().ref('users-info/' + IDU + '/nhucau').set(Nhucau);
    localStorage.setItem("NhuCauBDS", Nhucau);
    alert('Chúng tôi đã rõ hơn về nhu cầu bất động sản của bạn. Xin chân thành cảm ơn');

    $('#btnupdatenhucaubds').hide();

};

function QuanTam(style, idn, idu, tieude, href, IDA, address) {

    $(".mnInputField").attr('readonly', true);

    if (isAnonymous) {

        PopupCenter('/xacthucsodienthoai#yctv=' + encodeURI(style + "-" + idn + "-" + idu + "-" + IDA) + '#tieude=' + encodeURI(tieude) + '#href=' + encodeURI(href) + '#address=' + encodeURI(address), 'Xác thực với số điện thoại', '400', '420');
        return;
    }

    if (!mobinumber)
    {
        mobinumber = localStorage.getItem('mobile') || sessionStorage.getItem('mobile') || '';
    }
    
    var _img = $("#preImg-" + IDA).attr("src").replace("/Thumbnai/", "/");
  //  console.log('_img' + _img);

    var _name = $("#preImg-" + IDA).attr("alt");

    var _user = firebase.auth().currentUser;

    if (idu == '') {
        idu = $('#user-id').val();
    }

    if (address == '') {
        if ($('#txtADDRESS').val()) {
            address = $('#txtADDRESS').val();
        }
    }

    var _address = '';
    if (address) {
        _address = 'ở tại ' + address;
    }
    
 
    if ($('#user-name').val() !='000') {
        idu = _user.uid;
        $.metroMessageBox({
            defaultvalue: mobinumber,
            backgroundcontent: "#2d3e52",
            content: "<img src='" + _img + "'><br><br><b>" + _name + "</b> Xin chào Anh/Chị.<br>Anh/Chị đang quan tâm đến bất động sản: <b>'" + tieude + "'</b> và muốn được gọi điện tư vấn?",
            buttons: ["Gọi tư vấn cho tôi", "Thoát"],
            input: "text",
            blockpage: false,
            placeholder: "Nhập vào số điện thoại của bạn",
            showcounter: true,

            defaultbutton: 1,
            maxlength: 12,
        }, function (action, buttom, value, selectedText) {

            if (buttom == "Gọi tư vấn cho tôi") {
                if (!validPhoneNumber(value)) {
                    alert('Bạn cần nhập vào số điện thoại trước khi gửi yêu cầu tư vấn!');
                    if (style == 1)
                        $("#yeucaugoilai").trigger("click");
                    else
                        $("#btnQuanTamvisble").trigger("click");
                }
                else {

                   
                    value = outPhoneformat(value);

                    var user = firebase.auth().currentUser;
                    user.updateProfile({
                        //displayName: value,
                        //phoneNumber: value,
                    }).then(function () {

                       // firebase.database().ref('users-info/' + idu + '/mobile').set(value);

                        firebase.database().ref('yeucaugoilai/' + idn + '/' + idu).set({
                            MOBILE: value,
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });


                        firebase.database().ref('listcantuvan/' + IDA + '/' + idn).push({
                            idu: idu,
                            title: tieude,
                            MOBILE: value,
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });

                        firebase.database().ref('yeucaugoilai/' + idn).once("value", function (snapshot) {
                            var num = snapshot.numChildren();
                            $("#numgoilai").text(num);
                            if (num > 0) {
                                $(".thongbaostatus span").text(num);
                                $(".thongbaostatus").show();
                            }
                        });

                        firebase.database().ref('users-topic/' + IDA + '/' + value).set({
                            //topicID: this.SubChatTopicID.value,
                            ACTION: 3,
                            IDA: IDA,
                            IMGTHUMBNAI: '/Images/2017/callback400.png',
                            TTITLE: tieude,
                            TITLE: 'Khách hàng <strong>' + value + '</strong> ' + _address + ' yêu cầu bạn gọi điện tư vấn trong tin: <strong>' + tieude + '</strong>',
                            READ: 0,
                            MOBILE: value,
                            LINK: href,
                            TIME: firebase.database.ServerValue.TIMESTAMP,
                            ADDRESS: address
                        });

                        var strLink = 'nhadat24h.net/' + href + '%23callback=' + value;
                        var strTITLe = "Yêu cầu tư vấn từ: " + value + " " + _address + ", trong tin: " + tieude;

                        var query = firebase.database().ref('notify/' + IDA);
                        query.once("value")
                            .then(function (snapshot) {
                                snapshot.forEach(function (childsnapshot) {
                                    httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=https://' + strLink + '&strIcon=' + encodeURI('/images/2017/callback400.png') + '&title=' + encodeURI(strTITLe), null);
                                });
                            });

                        firebase.database().ref('users-topic/' + IDA + '/beg').once('value', function (snapshotbeg) {
                            var existsbeg = (snapshotbeg.val() != null);
                            if (existsbeg) {
                                firebase.database().ref('users-topic/' + IDA + '/beg').set({
                                    NUM: snapshotbeg.child("NUM").val() + 1,
                                    TEXT: strTITLe
                                });
                            }
                            else {
                                firebase.database().ref('users-topic/' + IDA + '/beg').set({
                                    NUM: 1,
                                    TEXT: strTITLe
                                });
                            }
                        });

                        firebase.database().ref('users-chat/' + idn + '/' + idu).set({
                            IDA: IDA,
                            Visible: false
                        });

                        firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/TIME').set(firebase.database.ServerValue.TIMESTAMP);

                        firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/' + idu + '/TIME').set(firebase.database.ServerValue.TIMESTAMP);
                        
                        firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/' + idu + '/visited').push({
                            IDU: idu,
                            IP: '',
                            MOBILE: value,
                            ACTION:3,
                            TIME: firebase.database.ServerValue.TIMESTAMP,
                            ADDRESS: address,
                            URL: href, //document.URL
                        });
                        alert('Yêu cầu đã được gửi thành công. Nhân viên tư vấn sẽ sớm gọi lại cho bạn. Xin chân thành cảm ơn..!');

                       // createFirework(72, 180, 3, 5, null, null, null, null, false, true);

                    }, function (error) {
                        alert('Lỗi: ' + error);
                    });
                }
            }
            else if (buttom == "Thoát") {

            }
            else {
                var pathname = '/DKTV-' + window.location.pathname + '#popchat';
                window.location.href = pathname.replace('/DKTV-/', '/DKTV-');
            }
            //  alert( action + ' ' + button + ' ' + value  );
        });
    }
    else {

        // mobinumber = getmobile;

        firebase.database().ref('users-info/' + idu).once('value', function (snapshot) {

            firebase.database().ref('yeucaugoilai/' + idn + '/' + idu).set({
                MOBILE: snapshot.child("mobile").val(),
                TIME: firebase.database.ServerValue.TIMESTAMP
            });
            firebase.database().ref('listcantuvan/' + IDA + '/' + idn).push({
                idu: idu,
                title: tieude,
                MOBILE: snapshot.child("mobile").val(),
                TIME: firebase.database.ServerValue.TIMESTAMP
            });
            firebase.database().ref('yeucaugoilai/' + idn).once("value", function (snapshot) {
                var num = snapshot.numChildren();
                $("#numgoilai").text(num);
                if (num > 0) {
                    $(".thongbaostatus span").text(num);
                    $(".thongbaostatus").show();
                }
            });
            var _mobile = snapshot.child("mobile").val();
            _mobile = outPhoneformat(_mobile);
           


            firebase.database().ref('users-topic/' + IDA + '/' + _mobile).set({
                //topicID: this.SubChatTopicID.value,
                ACTION: 3,
                IDA: IDA,
                IMGTHUMBNAI: '/Images/2017/callback400.png',
                TTITLE: tieude,
                TITLE: '<strong>' + snapshot.child("name").val() + ' - ' + _mobile + '</strong> ' + _address + ' yêu cầu bạn gọi điện tư vấn trong tin: <strong>' + tieude + '</strong>',
                READ: 0,
                MOBILE: _mobile,
                LINK: href,
                TIME: firebase.database.ServerValue.TIMESTAMP,
                ADDRESS: address
            });

            var strLink = 'nhadat24h.net/' + href + '%23callback=' + _mobile;

            var strTITLe = snapshot.child("name").val() + " - " + _mobile + " " + _address + " yêu cầu bạn gọi điện tư vấn trong tin: " + tieude;

            var query = firebase.database().ref('notify/' + IDA);
            query.once("value")
                .then(function (snapshot) {
                    snapshot.forEach(function (childsnapshot) {
                        httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=https://' + strLink + '&strIcon=' + encodeURI('/images/2017/callback400.png') + '&title=' + encodeURI(strTITLe), null);
                    });
                });

            firebase.database().ref('users-topic/' + IDA + '/beg').once('value', function (snapshotbeg) {
                var existsbeg = (snapshotbeg.val() != null);
                if (existsbeg) {
                    firebase.database().ref('users-topic/' + IDA + '/beg').set({
                        NUM: snapshotbeg.child("NUM").val() + 1,
                        TEXT: strTITLe
                    });
                }
                else {
                    firebase.database().ref('users-topic/' + IDA + '/beg').set({
                        NUM: 1,
                        TEXT: strTITLe
                    });
                }
            });
            firebase.database().ref('users-chat/' + idn + '/' + idu).set({
                IDA: IDA,
                Visible: false
            });

            firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/TIME').set(firebase.database.ServerValue.TIMESTAMP);

            firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/' + idu + '/TIME').set(firebase.database.ServerValue.TIMESTAMP);


            firebase.database().ref('analytic-tin/' + IDA + '/' + idn + '/' + idu + '/visited').push({
                IDU: idu,
                IP: '',
                MOBILE: _mobile,
                ACTION: 3,
                TIME: firebase.database.ServerValue.TIMESTAMP,
                ADDRESS: address,
                URL: href, //document.URL
            });


            alert('Yêu cầu đã được gửi thành công. Nhân viên tư vấn sẽ sớm gọi lại cho bạn. Xin chân thành cảm ơn.!');
         //   createFirework(72, 180, 3, 5, null, null, null, null, false, true);

        });
    }
}



function binviewlike() {
    if (botCheck())
        return;
    $(".infotuongtac").text(function () {
        var IDN = $(this).data("idn");
        var _text = $(this);
        if (_text != ' ') {
            firebase.database().ref('yeucaugoilai/' + IDN).once("value", function (snapshot) {
                var num = snapshot.numChildren();
                if (num > 0) {
                    _text.html('Đã có <strong>' + num + '</strong> khách hàng yêu cầu tư vấn');
                    _text.show("slow");
                }
                else {
                    _text.text(' ');
                    _text.hide();
                }

            });
        }
    });
}

function AuthenButton(idn, idgg, IDA) {
    $.metroMessageBox({
        content: "Bạn cần đăng nhập trước khi chat.",
        defaultbutton: 1,
        buttons: ["Google", "Điện thoại", "Thoát"],
        icons: ["fa fa-google", "fa fa-phone", "fa fa-close"],
    }, function (action, buttom, value, selectedText) {
        if (buttom == "Thoát") {
            $.smallBoxKill();
        }
        else if (buttom == "Google") {
            $.smallBoxKill();
            loginGG();
        }
        else {
            $.smallBoxKill();
            PopupCenter('/xacthucsodienthoai#action=dangnhap', 'Xác thực với số điện thoại', '400', '420');
            return
        }
    });
}

function setVisibleChat(vis) {

    
    var IDU = document.getElementById('user-id').value;
    firebase.database().ref('users-info/' + IDU + '/opendchat').remove();


    if (IDU != '' && $("#txtN").val() != null) {
        firebase.database().ref('users-chat/' + $("#txtN").val() + '/' + IDU).set({
            IDA: $("#IDAChat").val(),
            Visible: vis
        });
    }

   // alert('setVisibleChat' + IDU)

}
function binPreLike(control) {

    $(control).on("click", function (event) {

        var idn = $(this).attr("data-idn");
        var IDA = $(this).attr("data-idu");
        var idu = $('#user-id').val();
        var address = '';

        if ($('#txtADDRESS').val()) {
            address = $('#txtADDRESS').val();
        }

        var tieude = $("#preAlink-" + idn).attr("title");

        var href = $("#preAlink-" + idn).attr("href");
        href = href.substr(1, href.length - 1);
        QuanTam(1, idn, idu, tieude, href, IDA, address);
    });

}

function binShowMobile() {
    $("#txtinputMobile").attr('class', 'visible');
    $("#showandHideMobile").attr('data-original-title', 'Ẩn số điện thoại tránh làm phiền. Hãy ẩn khi bạn chưa thực sự có nhu cầu giao dịch bất động sản.');
    $("#showandHideMobile").html("<i class=\"fas fa-toggle-off\"></i> Ẩn số");
    $("#txtinputnhucaubds").hide();
    $("#btnxacthucmobile").attr('data-original-title', 'Đổi một số điện thoại khác.');
};

function binHideMobile() {
    $("#txtinputMobile").attr('class', 'inputMobile');
    $("#showandHideMobile").attr('data-original-title', 'Hiện số: Cho biết số điện thoại mỗi khi bạn click xem tin. Hãy dùng tính năng này khi bạn đang có nhu cầu giao dịch bất động sản.');
    $("#showandHideMobile").html("<i class=\"fas fa-toggle-on\"></i> Hiện số");
    $("#txtinputnhucaubds").show();
    $("#btnxacthucmobile").attr('data-original-title', 'Đổi một số điện thoại khác.');

    //$('#txtinputnhucaubds').blur(function () {
    //    $('#btnupdatenhucaubds').hide();
    //});

    $('#txtinputnhucaubds').focus(function () {
        $('#btnupdatenhucaubds').css("display", "inline-block");
    });
};

function ToggleSupport247(_this) {
    var isReady = $(_this).attr("data-status");
    var IDU = $(_this).attr("data-idu");
    if (isReady == "off")
    {
        firebase.database().ref('users-info/' + IDU + '/isReady').set(true);
        $(_this).removeClass('btnIcon off').addClass('btnIcon on');
        $(_this).find("i").removeClass('fas fa-toggle-off').addClass('fas fa-toggle-on')
        U_UPDATEISREADY(IDU, true);

    }
    else
    {
        firebase.database().ref('users-info/' + IDU + '/isReady').set(false);
        $(_this).removeClass('btnIcon on').addClass('btnIcon off');
        $(_this).find("i").removeClass('fas fa-toggle-on').addClass('fas fa-toggle-off')
        U_UPDATEISREADY(IDU, false);
        
    }
    
}

function ToggleShowHide(_this,control) {
    var x = document.getElementById(control);
    if (x.style.display === "none") {

        x.style.display = "block";

        $(_this).attr("data-original-title", "Ẩn nội dung");
        $(_this).html("<i class=\"fas fa-toggle-on\"></i>");

    } else {
        x.style.display = "none";

        $(_this).attr("data-original-title", "Hiện nội dung");
        $(_this).html("<i class=\"fas fa-toggle-off\"></i>");
    }
}
function ShowHideDIV(_this, control) {
    var x = document.getElementById(control);
    if (x.style.display === "none") {

        x.style.display = "block";

        $(_this).attr("data-original-title", "Ẩn nội dung");
        $(_this).html("<i class=\"fa fa-angle-double-down\"></i> Ẩn");

    } else {
        x.style.display = "none";

        $(_this).attr("data-original-title", "Hiện nội dung");
        $(_this).html("<i class=\"fa fa-angle-double-up\"></i> Xem thêm");
    }
}

function luutin1(control) {

    var idu = $('#user-id').val();
    var idn = $(control).attr("data-idn");
    var tieude = $("#preAlink-" + idn).attr("title") || $("#txtcontenttieudetin").text();
    var IDA = $(control).attr("data-idu");

    var href = $("#preAlink-" + idn).attr("href") || $("#txtcontenttieudetin").attr("data-href");
    href = href.substr(1, href.length - 1);

    var ref = firebase.database().ref('NhaItem2018/' + idn);

    ref.once("value").then(function (snapshot) {

        firebase.database().ref('users-info/' + idu + '/luutin/' + idn).set({
            HEADER: tieude,
            IMGTHUMBNAI: snapshot.child("url_pixbe").val(),
            LINK: href,
            TIME: firebase.database.ServerValue.TIMESTAMP,
        });
        var milliseconds = new Date().getTime();
        var strItem = binItemloadLuutin(
            idn,
            1,
            snapshot.child("url_pixbe").val(),
            tieude,
            href, milliseconds);

        $("#liListtinluu").prepend(strItem);

    });



    $.smallBox({
        content: "Lưu thành công tin: " + tieude,
        color: "#0774b9",
        position: 0,
        sound: false,
        icons: ["fa fa-heart"],
        timeout: 4000,
        buttons: ['Danh sách lưu'],
    }, function (action, button) {
        console.log(action + "," + button);
        if (action == 'buttonPress') {
            console.log('bin list');
            $("#apaneltinluu").trigger("click");
        };
    });
    $(control).attr("data-original-title", "Gửi yêu cầu tư vấn");
    $(control).attr("onclick", "").unbind("click");
    $(control).removeClass("luutin").addClass("preLike");
    $(control).html("<i class=\"fas fa-thumbs-up\"></i>");

    $(control).off("click").on("click", function (event) {
        var address = '';

        if ($('#txtADDRESS').val()) {
            address = $('#txtADDRESS').val();
        }
        QuanTam(1, idn, idu, tieude, href, IDA, address);
    });
    _2014Index.LuuVet(idn, idu, LuuVet_callback);
    _2014Index.updateAuthUserID(idu, updateAuthUserID_callback);
    
    localStorage.removeItem('listtinluu');

}

function binPrecommand() {

    if (localStorage.getItem('localLat')) {
        lat = localStorage.getItem('localLat');
        lng = localStorage.getItem('localLng');
        binHowfar(lat, lng);
    }

    $(".preCall").on("click", function (event) {
        var _this = $(this);
        if (!_this.attr("href")) {
            event.preventDefault();

            
            _2014Index.n_getmobile(_this.attr("data-idn"), n_getmobile_callback);
            function n_getmobile_callback(response) {
                _this.html(response.value);
                _this.attr("href", "tel:" + response.value);
            }
            console.log('.preCall click');
        }

    });

    $(".luutin").off("click").on("click", function (event) {

        luutin1(this);
        
    });

    $(".preLike").off("click").on("click", function (event) {

        var idn = $(this).attr("data-idn");
        var IDA = $(this).attr("data-idu");
        var idu = $('#user-id').val();
        var address = '';

        if ($('#txtADDRESS').val()) {
            address = $('#txtADDRESS').val();
        }

        var tieude = $("#preAlink-" + idn).attr("title");
        var href = $("#preAlink-" + idn).attr("href");
        href = href.substr(1, href.length - 1);


        //alert(href);
        QuanTam(1, idn, idu, tieude, href, IDA, address);
    });

    $(".makeAssistant").on("click", function (event) {

        var _width;
        _width = $(window).width();
        if (_width > 700) {
            _width = 700;
        }
        event.preventDefault();
        var dataUrl = $(this).attr("href");

        var _idu = $(this).attr("data-idu");

        var _img = '';

        var _name ='';

        $.metroSidePanel({
            iframe: dataUrl,
            width: _width,
            backgroundcontent: "#10a37f",
            img: _img,
            fa: "fa-star-o",
            blocked: true,
        });

      
        
    });

    $(".preChat").off("click").on("click", function (event) {
       
        var _width = $(window).width();
        
        if (_width > 700) {
            _width = 700;
        }
        event.preventDefault();
        var dataUrl = $(this).attr("href");

        var _idu = $(this).attr("data-idu");

        var _img = $("#preImg-" + _idu).attr("src").replace("/Thumbnai/", "/");

        var _name = $("#preImg-" + _idu).attr("alt");

        if (_idu) {
            // alert('1');
            var _dialogMobile = false;
            var idu = $('#txtU').val();
            var idn = $(this).attr("data-idn");



            if (idu == '' || idu == null) {

                var _user = firebase.auth().currentUser;
                var idgg = _user.uid;

                mobinumber = localStorage.getItem('mobile') || sessionStorage.getItem('mobile') || '';

                if (_user.isAnonymous) {

                    AuthenButton(idn, idgg, _idu);
                    return;

                    //let result = confirm('Để tránh giả mạo thông tin chúng tôi yêu cầu bạn xác thực số điện thoại trược khi sử dụng chức năng này. Xin chân thành cảm ơn.');
                    //if (result) {
                    //    PopupCenter('/xacthucsodienthoai#ycchat=' + encodeURI(1 + "-" + idn + "-" + idgg + "-" + _idu), 'Xác thực với số điện thoại', '400', '420');
                    //    return
                    //}
                    
                };

                database.ref('users-topic/' + idgg + '/' + idn).once('value', function (snapshot) {
                    _dialogMobile = (snapshot.val() == null);
                    if (_dialogMobile || mobinumber == '' || mobinumber == null) { // chua dang nhap va chua bao gio chat 
                        $.metroMessageBox({
                            content: "<img src='" + _img + "'><br><br><b>" + _name + "</b> Xin chào bạn. Hãy Chat trực tiếp với tôi để tôi được hỗ trợ bạn!",
                            buttons: ["Chat ngay", "Đăng nhập", "Thoát"],
                            input: "text",
                            sound: false,
                            defaultvalue: mobinumber,
                            defaultbutton: 1,
                            placeholder: "Nhập vào số điện thoại của bạn",
                        }, function (action, buttom, value, selectedText) {
                            //Do something here
                            if (buttom == "Chat ngay") {
                                setVisibleChat(true)
                                if ($(window).width() > 450) {
                                 //   $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                                    $.metroSidePanel({
                                        iframe: dataUrl,
                                        width: _width,
                                        backgroundcontent: "#2d3e52",
                                        img: _img,
                                        fa: "fa-star-o",
                                        blocked: true,
                                    });
                                }
                                else {
                                    window.open(dataUrl, '_blank');
                                }
                            }
                            else if (buttom == "Thoát") {
                            }
                            else {
                                var returnURL = window.location.pathname
                                if (returnURL == '/') {
                                    returnURL = '/Home';
                                }
                                var pathname = '/DKTV-' + returnURL;
                                window.location.href = pathname.replace('/DKTV-/', '/DKTV-');
                            }
                            //  alert( action + ' ' + button + ' ' + value  );
                        });
                    }
                    else {
                        // chua dang nhap nhung da chat tu truoc


                        setVisibleChat(true)

                     //   $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                        $.metroSidePanel({
                            iframe: dataUrl,
                            width: _width,
                            backgroundcontent: "#2d3e52",
                            img: _img,
                            fa: "fa-star-o",
                            blocked: true,
                        });

                        //if ($(window).width() > 450) {
                            

                        //}
                        //else {
                        //    window.open(dataUrl, '_blank');
                        //}
                    }

                });
            }
            else {
                // da dang nhap

                setVisibleChat(true)

              //  $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                $.metroSidePanel({
                    iframe: dataUrl,
                    width: _width,
                    backgroundcontent: "#2d3e52",
                    img: _img,
                    fa: "fa-star-o",
                    blocked: true,
                });

            }
            $.smallBoxKill();
        }


    });

    $(".btnlocationdetail").click(function () {
        var address = $(this).text();
        if (address) {
            $.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '&key=' + keyGG + '&components=country:VN', function (data) {
                if (data.results.length > 0) {
                    var urlmap = 'https://nhadat24h.net/map#location=' + data.results[0].geometry.location.lat + ',' + data.results[0].geometry.location.lng;
                    if ($(window).width() > 450) {
                        $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                        $.metroSidePanel({
                            iframe: urlmap,
                            width: $(window).width(),
                            backgroundcontent: "#2d3e52",
                            fa: "fa-star-o",
                            blocked: true,
                        });
                    }
                    else {
                        window.open(urlmap, '_blank');
                    }
                }

            });
        }
    });

    binviewlike();

    var imgDefer = document.getElementsByTagName('img');
    for (var i = 0; i < imgDefer.length; i++) {
        if (imgDefer[i].getAttribute('data-src')) {
            imgDefer[i].setAttribute('src', imgDefer[i].getAttribute('data-src'));
        }
    }

    var swipercontainer1 = document.getElementsByClassName('swiper-container1');
    if (swipercontainer1 && swipercontainer1.length > 0) {
        new Swiper(".swiper-container1", {
            grabCursor: false,
            loop: false,
            //effect: "cube",
            //cubeEffect: {
            //    shadow: false,
            //    slideShadows: false,
            //    shadowOffset: 0,
            //    shadowScale: 0,
            //},
            pagination: {
                el: ".swiper-pagination",
            },
        });
    }
}

function DeleteConfirm2(idnha, idcontrol) {
        
    var tinhthanh = $('#' + idcontrol).attr('data-tinhthanh');
    var loaitin = $('#' + idcontrol).attr('data-loaitin');
              
    if (confirm("Bạn có thực sự muốn xóa tin có ID: " + idnha)) {
        
        firebase.database().ref('NhaItem2018/' + idnha).remove();
        firebase.database().ref('analytic-tin/' + $('#user-id').val() +'/'+ idnha).remove();
        firebase.database().ref('users-topic/' + $('#user-id').val() +'/'+ idnha).remove();
         
        var _name = $('#user-name').val();
        var _IDU = $('#user-id').val();
        var strLink='https://nhadat24h.net/tv/'+_IDU+'%23makeprivatechat=on';

        var IDU = $('#localIDU').val();

        var value = '1 Tin đăng của bạn vừa bị xoá do vi phạm quy chế tin đăng. Hãy ngừng ngay việc đăng tin sai quy chế nếu không tài khoản sẽ bị xoá vĩnh viễn!';

                var strTITLe = encodeURI(_name+ ': '+ value);
                binmess2(IDU,value,strTITLe,_name,_IDU,strLink);


        _2014Index.DeleteTin(idnha, Delete_callback);

        return true;
    }
    return false;
 }

function DeleteTin() {
    var ID_N = $('#txtN').val();
    if (confirm('Bạn có thực sự muốn xóa tin này ?'))
        _2014Index.DeleteTin(ID_N, Delete_callback);
    else
        return;

}

function SureDelete(ID_N) {
    _2014Index.DeleteTin(ID_N, Delete_callback);
}

function Delete_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    console.log(response.value);
}

function bin_giahantinthuong(idtin, songayrahan) {

    var timeup = document.getElementById("lbdate" + idtin);
    timeup.innerHTML = "<color class=\"green\">Vừa xong</color>";

    var loadimage = document.getElementById("imghh-" + idtin);
    loadimage.src = "https://nhadat24h.net/Image/check.gif";

    document.getElementById("loadimage" + idtin).src = "https://nhadat24h.net/Image/check.gif";

    $("#lbhethan-" + idtin).text("");

    _2014Index.giahantinthuong(idtin, songayrahan, giahantinthuong_callback);
}

function giahantinthuong_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    if (response.value == "1") {
        $.smallBox({
            content: "Gia hạn tin thành công.",
            color: "#0774b9",
            position: 0,
            sound: false,
            timeout: 2000,
        }, function (action, button) {
            
        });
    }
    else if (response.value == "0") {
        alert('Hệ thống đang bận, xin thử lại trong giây lát');
    }
    else {
        showTBhetgold();
    }
}

function showTBhetgold() {
    $.metroMessageBox({
        content: "<img src=\"/Images/2018/warning-100.png\"><br/><br/>Số Gold24h trong tài khoản của bạn không đủ để thực hiện chức năng này. Nạp Gold24h để tiếp tục.",
        defaultbutton: 1,
        buttons: ["Nạp Gold24h", "Xem bảng giá đăng tin", "Thoát"],
    }, function (action, buttom, value, selectedText) {
        if (buttom == "Thoát") {

        }
        else if (buttom == "Nạp Gold24h") {
            window.open(
                '/CNT',
                '_blank'
            );
        }
        else {
            window.open(
                '/baogiavip',
                '_blank'
            );
        }
    });

}

function Congtientaikhoan(IDU, Sotien, hinhthucnap) {
    _2014Index.Congtientaikhoan(IDU, Sotien, hinhthucnap, Congtientaikhoan_callback);
}

function Congtientaikhoan_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
}


/*

function CapNhatChinhChu() {
    var ID_N = $('#txtN').val();
    if (confirm('Bạn có thực sự muốn cập nhật chính chủ cho tin này ?'))
        _2014Index.CapNhatChinhChu(ID_N, CapNhatChinhChu_callback);
    else
        return;
}

function CapNhatChinhChu_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    alert('Bạn đã cập nhật chính chủ thành công.');
}

function HuyChinhChu() {
    var ID_N = $('#txtN').val();
    if (confirm('Bạn có thực sự muốn hủy chính chủ cho tin này ?'))
        _2014Index.HuyChinhChu(ID_N, HuyChinhChu_callback);
    else
        return;
}

function HuyChinhChu_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    alert('Bạn đã hủy chính chủ thành công.');
}

function KhichHoat_ThuHoi(mode) {
    var ID_N = $('#txtN').val();
    if (confirm('Bạn có thực sự muốn thu hồi tin này ?'))
        _2014Index.KhichHoat_ThuHoi(ID_N, mode, ThuHoi_callback);
    else
        return;
}
function ThuHoi_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    alert('Bạn đã thu hồi tin thành công.');
}
*/
function LuuVet_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
}
function updateAuthUserID_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
}

function TriggerClearLoaiBDS() {
    $("#btnClearLN").trigger("click");
    $("#btnClearSlider").trigger("click"); 
    $("#btnSearchTatCa").trigger("click");
}
function TriggerClearKhuVuc() {
    $("#btnClearKV").trigger("click");
    $("#btnClearSlider").trigger("click"); 
    $("#btnSearchTatCa").trigger("click");
}
function TriggerClearQuan() {
    $("#btnClearQH").trigger("click");
    $("#btnSearchTatCa").trigger("click");
}
function TriggerClearHuong() {
    $("#btnClearHN").trigger("click");
    $("#btnClearSlider").trigger("click"); 
    $("#btnSearchTatCa").trigger("click");
}
function TriggerClearPhuong() {
    $("#btnClearPX").trigger("click");
    $("#btnClearSlider").trigger("click"); 
    $("#btnSearchTatCa").trigger("click");
}

function Button1_onclick2() {
        try {
            var ID_U = $('#user-id').val();
            if (ID_U) {
                _2014Index.LuuVet($('#txtN').val(), ID_U, LuuVet_callback)
            }
        }
        catch(err) {
            console.log(err.message);
        }
}
function httpGetAsync(theUrl, callback) {
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
                callback(xmlHttp.responseText);
        }
        xmlHttp.open("GET", theUrl, true); // true for asynchronous 
        xmlHttp.send(null);
}

function CHECKUSERVIP() {
        _2014Index.CHECKUSERVIP(CHECKUSERVIP_callback);
    }

function CHECKUSERVIP_callback(response) {
        if (response.error != null) {
            sessionStorage.setItem("numvip", "0");
            localStorage.setItem("numvip","0");
        }
        else {
            sessionStorage.setItem("numvip", response.value);
            localStorage.setItem("numvip", response.value);
        }
}

function nha_updateclick() {
        try {
            if ($('#txtN').val()) {
                var ID_N =  $('#txtN').val();
                $("#ContentPlaceHolder1_ctl00_lbDate").html($("#txtNgaydang").val());
                _2014Index.Nha_lammoi(ID_N, nha_updateclick_callback)
            }
        }
        catch(err) {
            console.log(err.message);
        }
    
}

function nha_updateclick_callback(response) {
    if (response.error != null) {
        return;
    }
    else{

        var uid = $("#user-id").val();
        var ida = $("#IDAChat").val();
        
        var mobinumber = localStorage.getItem('mobile');
        if(uid!=ida){
            var numClick = parseInt(response.value);
            if ($('#user-name').val() == '' || uid == null) {

                analyticWO(ida, $("#txtN").val(), uid, $('#txtIP').val(), mobinumber, $("#txtADDRESS").val(), document.URL);

            }
            else {
                firebase.database().ref('users-info/' + uid).once('value', function (snapshot) {
                    mobinumber = snapshot.child("mobile").val() || localStorage.getItem('mobile');
                    if(uid!='' && uid!=null){
                        analyticWO(ida, $("#txtN").val(), uid, $('#txtIP').val(), mobinumber, $("#txtADDRESS").val(),document.URL);
                    }
                });
            }
            if(numClick%10==0)
            {
                var tieude = $("#txtcontenttieudetin").text();
                var strLink = window.location.href + '%23event_click=' + numClick;
                var strTITLe = encodeURI("Tin đăng: "+ tieude +" của bạn vừa đạt "+ numClick +" lượt xem, Xin chúc mừng bạn.");
                var query = firebase.database().ref('notify/' + $('#IDAChat').val());
                query.once("value")
                  .then(function(snapshot) {
                    snapshot.forEach(function(childsnapshot) {
                        httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=' + strLink + '&strIcon=' + encodeURI('/Images/logo.png') + '&title=' + strTITLe, null);
                  });
                });
            }
            var obj = $("#txtcontenttieudetin");
            addLinkVisited(uid, obj.attr("data-idn"), 1, obj.text(), obj.attr("data-thumbnai"), obj.attr("data-href"),0,0,0);
        }
    }
}
function addLinkVisited(idu, _id, _type, _title, _thumbnai, _link, idlt=1,idln=0, idtt=0) {


    firebase.database().ref('visited').push({
                IDU:idu,
                IP:$('#txtIP').val(),
                ID: _id,
                TYPE:_type,
                TITLE:_title,
                THUMBNAI:_thumbnai,
                LINK:_link,
                TIME: firebase.database.ServerValue.TIMESTAMP
    });

    if (_type == '2' || _type == '3') {

        if (idln > 2) {
            idln = 3;   
        }

        var _isA = 0;
        if (!isAnonymous) {
            _isA = 1;
        }

        var year = new Date().getFullYear()  

        firebase.database().ref('sign-visited/' + year +'/' + idlt + '/ln' + idln + '-tt' + idtt +'/'+idu).set({
            isA: _isA,
            nhucau: _title,
            Address: sessionStorage.getItem('AddressUser'),
            TIME: firebase.database.ServerValue.TIMESTAMP
        });

        //firebase.database().ref('sign-visited/'+_type+'/'+_id+'/'+idu).set({
        //   /* IDU:idu,*/
        //    isA: _isA,
        //    Address: sessionStorage.getItem('AddressUser'),
        //    TIME: firebase.database.ServerValue.TIMESTAMP
        //});

    }

}
this.binItemloadTINDAXEM = function(key, read, thumbnai, title, link, _TIME, div) {
    var temp = "<div id=\"iteamtindaxem-" + key + "\" class=\"iteam-" + read + "\" ><a rel=\"nofollow\" target=\"_blank\" href=\"" + link + "\" id='callchat-" + link + "' class=\"popup-chat\" ><div class=\"img1\"><img src=\"" + thumbnai + "\" /></div><div class=\"iteamdetail\"><label class=\"title\">" + title + "</label><label class=\"time\"><i class=\"fa fa-clock-o\"></i> " + timesnaptoDate(_TIME) + "</label></div></a><div class=\"close\"><a onClick=\"this.parentElement.style.display = 'none';removeItemHistorySearch('" + key + "')\"><i class=\"fa fa-times-circle\"></i></a></div></div>";
    div.prepend(temp);
};

this.displayListVisted = function (KEY, ID, LINK, THUMBNAI, TIME,TITLE,TYPE, div,showdelete) {
   // var div = $("#divListLichsutruycap");

    var temp='';
    temp+= "<div class=\"dv-item-ttbds\">";
    temp+= "<div class=\"dv-img-ttbds\"><a title=\""+TITLE+"\" href=\""+LINK+"\"><img alt=\""+TITLE+"\" src=\""+THUMBNAI+"\" /></a></div>";
    temp+="<div class=\"dv-txt-ttbds\">";
    temp+="<a target=\"_blank\" title=\""+TITLE+"\" class=\"a-title\" href=\""+LINK+"\">"+TITLE+"</a>";
    temp+="<p class=\"p1\">"+TYPE+"</p>";

    temp+="<p><i class=\"ico-sty i-time-bla\"></i>Xem: "+timesnaptoDate(TIME)+"</p>";
    temp+="</div>";
    if(showdelete)
    {   
        temp+="<a onclick=\"this.parentElement.style.display = 'none';removeItemHistorySearch(\'"+KEY+"\')\"><i class=\"fa fa-times-circle\"></i></a>";
    }
    temp+="</div>";

    
    div.prepend(temp);
    $(".dv-item-ttbds").fadeIn();
};
var numlistbatkhach = 0;
this.displayListsignvisited = function (IDU, IsA , TIME,Address, Title) {
    
    var temp='';
    
    if(Math.floor(IDU) == IDU && $.isNumeric(IDU)) {
        temp = 'Thành viên ID: ' + IDU;
        IsA += '0';
    }
    else {
        temp = 'Khách vãng lai ID: ' + IDU.substring(0, 8) + '...';
        IsA += '1';
    }

    temp += '<br/><label data-time=\'' + TIME +'\'><i class=\"fa fa-clock-o\"></i> '+timesnaptoDate(TIME)+'</label>';
    if(Address)
    {
        temp+= '<br/><label><i class=\"fa fa-map-marker\"></i> '+ Address+'</label>';
    }

    if (Title) {
        temp += '<br/><label><i class=\"fa fa-search\"></i> ' + Title + '</label>';
    }

    if ($("#user-id").val() != IDU) {

        //if(!Number(sessionStorage.getItem("numvip"))>0)
        //{
        //    IDU='';
        //}

        numlistbatkhach++;

        $("#bodycontentlist tr:last").after("<tr><td><span class=\"isA_" + IsA +"\"></span> "+numlistbatkhach+"</td><td>"+temp+"</td><td><a class=\"lb-alink\" href=\"javascript:binTopicChatVIP('"+IDU+"');\" title=\"\"> Tương tác </a></td><td><a class=\"lb-alink\" href=\"javascript:binViewUserInfo('"+IDU+"');\" title=\"\"> Thông tin </a></td><td><input value=\""+IDU+"\" id=\"chklist-"+IDU+"\" type=\"checkbox\"/><label for=\"chklist-"+IDU+"\">Chọn</label></td></tr>");

        $('#chklist-'+IDU).change(function(){
            
             if($(this).is(':checked')){
                arrayListKhachhang.push(IDU);
            } else {
                arrayListKhachhang.remove(IDU);
            }

            $('#btnSendAll').html("<i class=\"fa fa-send\"></i> Tiếp thị đến ("+arrayListKhachhang.length+") khách hàng");
                //var countCheckedCheckboxes = $('#form1 td input[type="checkbox"]').filter(':checked').length;
               // console.log('countCheckedCheckboxes: '+countCheckedCheckboxes);
        });

    }
    $('#tdLoadingdanhsach').html('<h3>Đang xem: '+numlistbatkhach+' Khách hàng mới nhất</h3>');
};
this.displayListVistedAll = function (IDU,IP, KEY, ID, LINK, THUMBNAI, TIME,TITLE,TYPE,inttype) {
    var div = $("#displayListVistedAll");

    var temp='';
    temp+= "<div id=\""+KEY+"\" class=\"dv-item-ttbds\">";
    temp+= "<div class=\"dv-img-ttbds\"><a title=\""+TITLE+"\" href=\""+LINK+"\"><img alt=\""+TITLE+"\" src=\""+THUMBNAI+"\" /></a>";

    temp+= "</div>";
    temp+="<div class=\"dv-txt-ttbds\">";
    if(inttype==2){
        temp+="<i class=\"fa fa-search\"></i><a title=\""+TITLE+"\" target=\"_blank\" class=\"a-title\" href=\""+LINK+"\">"+TITLE+"</a>";
    }
    else{
        temp+="<i class=\"fa fa-eye\"></i><a title=\""+TITLE+"\" target=\"_blank\" class=\"a-title\" href=\""+LINK+"\">"+TITLE+"</a>";
    }
    if(inttype==2||inttype==3){
        if($("#user-id").val()==IDU){
            temp+="<p><strong>Bạn vừa xem</strong></p>";
        }
        else{
            if(!Number(sessionStorage.getItem("numvip"))>0)
            {
                IDU='';
            }
            //temp+="<p class=\"p1\"><a class=\"lb-alink\" href=\"javascript:binTopicChatVIP('"+IDU+"');\" title=\"Người đang xem có thể là người có nhu cầu. Hãy tương tác để tìm ra khách hàng tiềm năng\">Chat với người xem</a></p>";
            temp+="<p class=\"p1\"><a class=\"btn-dskhachhang01\" target=\"_blank\" href=\"/batkhach-"+inttype+"-"+ID+"\" title=\"Xem toàn bộ danh sách khàch hàng của mục này theo thời gian thực\"><i class=\"fa fa-list-alt\"></i></a></p>";
        }

    }

    temp+="<p class=\"p1\"><i class=\"fa fa-desktop\"></i>"+IP+"</p>";

    temp+="<p><i class=\"fa fa-clock-o\"></i>"+timesnaptoDate(TIME)+"</p>";

    temp+="</div>";
    temp+="</div>";

    div.prepend(temp);
    $("#"+KEY).fadeIn();

};

this.displaylistendListKHCHAMSOC = function (KEY, Id, tt, qh, kv, _Idu, _FullName, Header, Description,avatar,lat,lon,gia,dientich) {
    var div = $("#listTincankiemduyet");
    var temp = '';
    temp += "<div id=\"list-duyettin-" + Id+"\">";
    temp += "<div><a href=\"ban-/xem-ID" + Id+"\" target=\"_blank\"><h2>" + Header + "</h2></a></div>";
    temp += "<div>IDU: <a href=\"/tv/" + _Idu + "\" target=\"_blank\">" + _Idu + " - " + _FullName +"</a><img src=\"" + avatar + "\"/ ></div>";

    temp += "<div>" + Description + "</div>";
    temp += "<div>Giá: " + gia + "</div>";
    temp += "<div>Diện tích: " + dientich + "</div>";
    temp += "<div><label class=\"lbhowfar\" data-idn=\"" + Id + "\" data-lat=\"" + lat + "\" data-lng=\"" + lon +"\" style=\"display: inline;\"></label></div>";
    temp += "<a onclick=\"tooltip.pop(this, \'#formDuyettin\', { position: 2, overlay: true });khongduyettin(\'" + Id + "\',\'" + tt + "\',\'" + qh + "\',\'" + kv+"\',\'" + KEY + "\','" + _Idu + "','" + Header + "')\" >[Không duyệt]</a> ---- <a target=\"_blank\" href=\"/ST-" + Id+"-"+tt+"-"+qh+"-"+kv+"\">[Sửa tin]</a> ---- <a onclick=\"this.parentElement.style.display = 'none';Clickduyettin(\'" + KEY + "\',\'" + Id + "\')\">[Duyệt tin]</a> ---- <a target=\"_blank\" href=\"/tv/" + _Idu+"#makeprivatechat=on\">[ Chat ]</a>";
    temp += "<hr>";
    temp += "</div>";
    div.prepend(temp);

};
function removeItemHistorySearch(key) {
    $("#iteamtindaxem-" + key).remove();
    firebase.database().ref('users-info/' + $('#user-id').val()+'/visited/'+key).remove();
}

function removeLuutin(key) {
    firebase.database().ref('users-info/' + $('#user-id').val() + '/luutin/' + key).remove();
    $("#iteamtinluu-" + key).remove();
    localStorage.removeItem('listtinluu');
}

function viewListVisited(idu, divList,showdelete){
    if(idu)
    {
        var viewItemVisited = function (data) {
            var val = data.val();

            var thum ='/Images/2018/searchicon.png';
            var typ= 'Tìm kiếm';
                if(val.TYPE==1){
                    thum ='/Images/2021/no-image.png';
                    typ='Tin đăng';
                }
                else if(val.TYPE==3){
                    typ='Thông tin dự án';
                }
                else if(val.TYPE==4){
                    typ='Trang cá nhân';
                }
            this.binItemloadTINDAXEM(data.key, 1, val.THUMBNAI || thum, val.TITLE, val.LINK, val.TIME, divList);
            //this.displayListVisted(data.key, val.ID, val.LINK, val.THUMBNAI || thum, val.TIME,val.TITLE, typ, divList,showdelete);
        }.bind(this);
        firebase.database().ref('users-info/' + idu + '/visited').orderByKey().limitToLast(10).on('child_added', viewItemVisited);

        binShowHideClose();
    }
}
function signvisited_loadmore() {

    var idlt = $("#cboLoaitin");
    var idln = $("#cboLoainha");
    var idtt = $("#cbotinhthanh");

    var i=0;
    var startTime = parseInt($("#txtStartAtTimeListBatKhach").val());
    var year = new Date().getFullYear()  
    //alert(startTime);
    var viewItemsignvisited = function (data) {
        i++;
            var key = data.key;
            var val = data.val();
            if(i==1){
                $("#txtStartAtTimeListBatKhach").val(val.TIME);
        }
        this.displayListsignvisited(key, val.isA, val.TIME, val.Address, val.nhucau);
        }.bind(this);

    firebase.database().ref('sign-visited/' + year + '/' + idlt.val() + '/ln' + idln.val() + '-tt' + idtt.val()).orderByChild('TIME').endAt(startTime).limitToLast(100).on('child_added', viewItemsignvisited);
}

function binalert() {
    $.metroMessageBox({
        content: "<img src=\"/Images/2018/warning-100.png\"><br/><br/>Tính năng xem đầy đủ số điện thoại chỉ dành cho thành viên VIP. ( Để trở thành thành viên VIP bạn chỉ phải duy trì tối thiểu 01 tin VIP Xanh trở lên. )",
        defaultbutton: 1,
        buttons: ["Lên VIP ngay!", "Quản lý tin", "Xem bảng giá tin VIP", "Thoát"],
    }, function (action, buttom, value, selectedText) {
        if (buttom == "Thoát") {

        }
        else if (buttom == "Lên VIP ngay!") {
            var strIDTin = $('#hrefTin').attr('data-id');
            window.open(
                '/VPN-1-0',
                '_blank'
            );
        }
        else if (buttom == "Quản lý tin") {
            window.open(
                '/QLT',
                '_blank'
            );
        }
        else {
            window.open(
                '/baogiavip',
                '_blank'
            );
        }


    });

}
function signvisited(idlt,idln,idtt,timeleft){
    if(botCheck())
        return;
    console.log("Loading bat khach...");
    $('#tdLoadingdanhsach').html('Loading....');
    var viewItemsignvisited = function (data) {
            var key = data.key
        var val = data.val();
        this.displayListsignvisited(key, val.isA, val.TIME, val.Address,val.nhucau);
        }.bind(this);

    var year = new Date().getFullYear()  
    if(timeleft>0){
        firebase.database().ref('sign-visited/' + year + '/' + idlt + '/' + '/ln' + idln + '-tt' + idtt).orderByChild('TIME').startAt(timeleft).limitToLast(100).on('child_added', viewItemsignvisited);
    }
    else{
        var currentTime = new Date().valueOf();
    
        var Timeleft = 86400*360*100;
        currentTime = currentTime - Timeleft;
        var i=0;
        
        var queryRef = firebase.database().ref('sign-visited/' + year + '/' + idlt + '/' + '/ln' + idln + '-tt' + idtt).orderByChild('TIME').limitToLast(100)
          queryRef.once("value", function(querySnapshot) {
            if (querySnapshot.numChildren() >=1) {

              if(querySnapshot.numChildren()>=99){$("#btnLoadmorelistBatKhach").show();}
              else{$("#btnLoadmorelistBatKhach").hide();}


              querySnapshot.forEach(function(dinoSnapshot) {   

                i++;
                if(i==1){
                    $("#txtStartAtTimeListBatKhach").val(dinoSnapshot.child('TIME').val());
                  }
                  console.log("TIME: " + dinoSnapshot.child('TIME').val() + ' - ' + dinoSnapshot.key);
                  this.displayListsignvisited(dinoSnapshot.key,
                      dinoSnapshot.child('isA').val(),
                      dinoSnapshot.child('TIME').val(),
                      dinoSnapshot.child('Address').val(),
                      dinoSnapshot.child('nhucau').val())
              });
            } else {
              console.log("Danh mục chưa có khách hàng quan tâm");
            }
        });
        

        //firebase.database().ref('sign-visited/'+idlt+'/'+ids).orderByChild('TIME').startAt(currentTime).limitToLast(100).on('child_added', viewItemsignvisited);
    }

}


function updatestatuscheck(user,day){
    

    firebase.database().ref('users-info/'+user+'/Tiepthi/'+day).once("value").then(function(snapshot) {

        snapshot.forEach(function(childSnapshot) {
          
           $("#chklist-"+childSnapshot.key).attr('disabled','disabled');

      });
    }); 
    
}


$("#cbotimeleft").change(function() {

    arrayListKhachhang =[];
     $('input:checkbox').removeAttr('checked');
    $('#btnSendAll').html("<i class=\"fa fa-send\"></i> Tiếp thị");
    var currentTime = new Date().valueOf();
    
    var Timeleft = 86400*$("#cbotimeleft option:selected").val()*100;
    currentTime = currentTime - Timeleft;

    var _signlist = $("#div-sign-visited");
    $("#bodycontentlist tr").remove();
    $("#bodycontentlist").append('<tr><td></td><td></td></tr>');


    var currentDay = new Date().valueOf();
    currentDay = parseInt(currentDay/86400000);
   
    if(_signlist.attr("data-ids")){
        signvisited(_signlist.attr("data-idlt"), _signlist.attr("data-idln"), _signlist.attr("data-idtt"),currentTime);
        updatestatuscheck($('#user-id').val(),currentDay);
    };
   
});

$("#btnTimkiemDSkhachang").click(function () {
    numlistbatkhach = 0;

    $("#bodycontentlist tr").remove();
    $("#bodycontentlist").append('<tr><td style=\"width:10px;\">#</td><td>UserID</td><td>Tương tác</td><td>Thông tin</td><td></td></tr>');

    var idlt = $("#cboLoaitin");
    var idln = $("#cboLoainha");
    var idtt = $("#cbotinhthanh");
    signvisited(idlt.val(), idln.val(), idtt.val(), 0);
});



var arrayListKhachhang = [];
Array.prototype.remove = function() {
    var what, a = arguments, L = a.length, ax;
    while (L && this.length) {
        what = a[--L];
        while ((ax = this.indexOf(what)) !== -1) {
            this.splice(ax, 1);
        }
    }
    return this;
};

Array.prototype.inArray = function(comparer) { 
    for(var i=0; i < this.length; i++) { 
        if(comparer(this[i])) return true; 
    }
    return false; 
}; 


Array.prototype.pushIfNotExist = function(element, comparer) { 
    if (!this.inArray(comparer)) {
        this.push(element);
    }
}; 

$("#chkAllListItemVisited").click(function(){

    $('input:checkbox').not(this).not(":disabled").prop('checked', this.checked);
     
    if($(this).is(':checked')){
        $("#btnSendAll").show();

        $('#bodycontentlist :checked').each(function() {

           arrayListKhachhang.push($(this).val());

        });

    } else {

         arrayListKhachhang=[];

    }
    $('#btnSendAll').html("<i class=\"fa fa-send\"></i> Tiếp thị đến ("+arrayListKhachhang.length+") khách hàng");
});
Number.prototype.formatt = function(n, x) {
            var re = '\\d(?=(\\d{' + (x || 3) + '})+' + (n > 0 ? '\\.' : '$') + ')';
            return this.toFixed(Math.max(0, ~~n)).replace(new RegExp(re, 'g'), '$&.');
};
function convertToCSV1(objArray) {
            var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
            var str = '';

            for (var i = 0; i < array.length; i++) {
                var line = '';
                for (var index in array[i]) {
                    if (line != '') line += ','

                    line += array[i][index];
                }

                str += line + '\r\n';
            }

            return str;
        }
function exportCSVFile1(headers, items, fileTitle) {
            if (headers) {
                items.unshift(headers);
            }

            // Convert Object to JSON
            var jsonObject = JSON.stringify(items);

            var csv = this.convertToCSV1(jsonObject);

            var exportedFilenmae = fileTitle + '.csv' || 'export.csv';

            var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
            if (navigator.msSaveBlob) { // IE 10+
                navigator.msSaveBlob(blob, exportedFilenmae);
            } else {
                var link = document.createElement("a");
                if (link.download !== undefined) { // feature detection
                    // Browsers that support HTML5 download attribute
                    var url = URL.createObjectURL(blob);
                    link.setAttribute("href", url);
                    link.setAttribute("download", exportedFilenmae);
                    link.style.visibility = 'hidden';
                    document.body.appendChild(link);
                    link.click();
                    document.body.removeChild(link);
                }
            }
}

function exportCSVBatKhach(_arrayListKhachhang, fileTitle) {

    $.metroLoading({
                title:"Dữ liệu đang được tải về...",
                content: "Xin đợi trong giây lát",
                fa: "fa-refresh",
                timeout:10000,
    });

    var headers = {
        doituong: 'Doituong',
        id: 'User Id',
        mobile: 'Mobile',
        chat:'Chat',
        position: 'Position',

    };

    var itemsCatchKhachhang = [];
    var i=0;
    _arrayListKhachhang.forEach(function (element) {
        if (element) {
            var _doituong='Khach vang lai';

            if($.isNumeric(element)) {
                _doituong = 'Thanh vien';
            }

            firebase.database().ref('users-info/'+element).once('value', function (childSnapshot) {
                i++;
                var _mobile = childSnapshot.child("mobile").val() || 'Chua cung cap';
                var _address = childSnapshot.child("position").child("Address").val()|| 'Chua cung cap'
                itemsCatchKhachhang.unshift({
                    doituong:_doituong,
                    id: element,
                    mobile: _mobile.replace(/,/g, ''),
                    chat:'https://nhadat24h.net/#binchat='+element,
                    position: _address.replace(/,/g, ''),

                });
                if (i == _arrayListKhachhang.length) {
                    $.metroLoadingKill();
                    exportCSVFile1(headers, itemsCatchKhachhang, fileTitle); 
                }

            });


        }
    });


    
}
function sendtiepthi(idu,_arrayListKhachhang,value,ids,__idn,idwo,_link){


    var count=1;
                                    var currentTime = new Date().valueOf();
                                    var currentDay = parseInt(currentTime/86400000);

                                    firebase.database().ref('NoiDungTiepThi/'+idu).push({
                                        title: $("#txttitle").val(),
                                        text: value,
                                        ICON: $('#user-pic').attr('data-src'),
                                        TIME:firebase.database.ServerValue.TIMESTAMP,
                                        IDS:ids
                                    });

    _arrayListKhachhang.forEach(function (element, i) {
        setTimeout(() => {
            if (element) {
                count++;
                database.ref('users-info/' + idu + '/Tiepthi/' + currentDay + '/' + element).once('value', function (snapshotelement) {

                    var _snapshotelement = (snapshotelement.val() == null);

                    if (_snapshotelement) {

                        firebase.database().ref('users-info/' + idu + '/Tiepthi/' + currentDay + '/' + element).set({ ID: element, READ: 0 });

                        // (_snapshotelement);
                        database.ref('chat-list/' + idu + '/' + element).once('value', function (snapshot) {
                            var _topicID = 'guitest';
                            if (idu != element) {

                                var _topic = (snapshot.val() == null);
                                _topicID = guid();
                                if (_topic) {
                                    firebase.database().ref('chat-list/' + idu + '/' + element).set({
                                        topicID: _topicID,
                                    });
                                    firebase.database().ref('chat-list/' + element + '/' + idu).set({
                                        topicID: _topicID,
                                    });
                                }
                                else {
                                    _topicID = snapshot.child('topicID').val();
                                }

                                console.log('Send chat.....');
                                firebase.database().ref('chatthanhvien/' + _topicID).push({
                                    topicID: _topicID,
                                    name: $('#user-name').val(),
                                    text: value,
                                    url_link: _link,
                                    photoUrl: $('#user-pic').attr('data-src'),
                                    IP: $('#txtIP').val(),
                                    IDA: element,
                                    UID: this.auth.currentUser.uid,
                                    IDB: idu,
                                    TIME: firebase.database.ServerValue.TIMESTAMP,
                                    ADDRESS: '',
                                });

                            }


                            if (ids != '0') {
                                firebase.database().ref('users-topic/' + element + '/' + _topicID).set({
                                    ACTION: 2,
                                    IDA: idu,
                                    IDClient: idu,
                                    IMGTHUMBNAI: $('#user-pic').attr('data-src'),
                                    TITLE: value,
                                    READ: 0,
                                    TIME: firebase.database.ServerValue.TIMESTAMP
                                });
                            }

                        });
                    }

                    if (__idn != '0') {
                        firebase.database().ref('users-topic/' + element + '/' + __idn).set({
                            ACTION: 2,
                            IDA: idu,
                            IMGTHUMBNAI: $('#user-pic').attr('data-src'),
                            LINK: _link,
                            TITLE: value,
                            READ: 0,
                            isAnalytic: true,
                            isWebOne: false,
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });
                    }

                    firebase.database().ref('users-topic/' + element + '/beg').set({
                        NUM: 1,
                        TEXT: value,

                    });

                    $("#listKQTiepThiLai").append("<p><a href=\"javascript:binTopicChat('" + element + "');\" >(" + (i+1) + "/" + _arrayListKhachhang.length +") Đã gửi tiếp thị thành công đến ID : " + element + "</a><p>");
                    $.smallBox({
                        content: "Đã gửi (" + (i + 1) + "/" + _arrayListKhachhang.length +") thông báo thành công đến ID: " + element,
                        color: "#2d3e52",
                        position: 0,
                        sound: false,
                        timeout: 2000,
                        }, function (action, button) {

                    });
                });

                if (i == _arrayListKhachhang.length-1) {
                    var now = new Date();
                    $("#listKQTiepThiLai").append("<h1>Tổng kết</h1>");
                    $("#listKQTiepThiLai").append("<h3>Số ID đã gửi: " + i + "</h3>");
                    $("#listKQTiepThiLai").append("<h3>Thời gian kết thúc: " + now.toLocaleString() + "</h3>");

                        $.metroMessageBox({
                            content: "<img src=\"/Images/2018/success-100.png\"><br/><br/>Thông tin tiếp thị của bạn đã được gửi đi thành công đến: " + _arrayListKhachhang.length + " khách hàng . Xin chân thành cảm ơn bạn và chúc bạn nhiều giao dịch thành công. Xem nhật ký dùng Gold24h <a target=\"_blank\" href=\"https://nhadat24h.net/NKNT\">Tại đây</a>",
                            defaultbutton: 1,
                            buttons: ["OK"],
                        }, function (action, buttom, value, selectedText) {

                    });
                }
            }
        }, i * 500);
    });
}
$("#btnbinCSVFileBatKhach").click(function () {

    if($.isNumeric($("#user-id").val())<=0)
    {
        $.metroMessageBox({
                    content: "Bạn cần đăng nhập trước khi sử dụng chức năng này!",
                    defaultbutton: 1,
                    buttons: ["Đăng nhập", "Đăng ký thành viên", "Thoát"],
                }, function (action, buttom, value, selectedText) {
                    if (buttom == "Thoát") {
                        
                    }
                    else if (buttom == "Đăng nhập"){
                        $("#abtnLoginHome").trigger("click");
                    }
                    else{
                        window.location.href = "/DKTV-batkhach";
                    }
                }); 
        return;
    }
    
    if(arrayListKhachhang.length<=10){
      alert('Xin hãy check để chọn tối thiểu 10 khách hàng để xuất file .CSV');
      return;  
    };

    var numID = arrayListKhachhang.length;

    var ids = $("#div-sign-visited").data("ids");

    var dongia = 500;

    if (numID >= 500 && numID < 2000) {
        dongia = 350;
    }
    else if (numID >= 2000 && numID < 5000) {
        dongia = 250;
    }
    else if (numID >= 5000) {
        dongia = 150;
    }

    var chiphi = numID*dongia;
    $.metroMessageBox({
                    content: "Xuất file .CSV cho "+arrayListKhachhang.length+" ID khách hàng, chi phí "+dongia.formatt()+"đ/1 ID khách hàng. Tổng chi phí: "+ chiphi.formatt() +"đ<br/><br/><img style='width:300px;' src='https://nhadat24h.net/Images/2019/banggiadulieukh.png'>",
                    defaultbutton: 1,
                    buttons: ["Xuất file .CSV và Thanh toán", "Thoát"],
                }, function (action, buttom, value, selectedText) {
                    if (buttom == "Thoát") {
                        
                    }

                    else{
                        var taikhoan = Number(sessionStorage.getItem("numvip"));
                                 
                                    if(taikhoan<chiphi)
                                    {
                                        var mess ="Tài khoản bạn đang có: "+taikhoan+" (Gold24h), để thực hiện chức năng này bạn phải là thành viên V.I.P và cần có: "+chiphi +" (Gold24h). Vậy bạn còn thiếu: "+(chiphi-taikhoan)+" (Gold24h). Bạn có muốn nạp Gold24h để tiếp tục?";
                                        var r = confirm(mess);
                                        if (r == true) {
                                            window.open('/nap-gold-vnpt-internet'+(chiphi-taikhoan), '_blank');
                                        } 
                                    }
                                    else {
                                        Congtientaikhoan(ids.toString(),chiphi.toString(),'26');
                                        exportCSVBatKhach(arrayListKhachhang,'bat-khach');

                                     }
                    }
        });
});

function giahantinthuong(idtin) {
    $.metroMessageBox({
        title: "Chọn thời gian gia hạn tin",
        content: "Chọn số ngày muốn gia hạn. <a class=\"swipebox\" target=\"_blank\" title=\"Hướng dẫn gia hạn đồng loạt nhiều tin\" href=\"/Images/2021/huongdangiahannhieutin.jpg\">Gia hạn đồng loạt nhiều tin</a>",
        defaultbutton: 1,
        sound: false,
        buttons: ["Đồng Ý", "Thoát"],
        input: "select",
        defaultvalue: localStorage.getItem("num_giahantinthuong"),
        options: ["10 Ngày - 5.000đ", "30 Ngày - 10.000đ", "60 Ngày - 15.000đ", "90 Ngày - 20.000đ"],
        values: ["10", "30", "60", "90"],
        blockpage: false,
    }, function (action, buttom, value, selectedText) {

        if (buttom == "Đồng Ý") {

            localStorage.setItem('num_giahantinthuong', value);

            bin_giahantinthuong(idtin.toString(), value.toString());

            //document.getElementById("descrip_" + idtin).parentNode.parentNode.style.display = 'none'
        }

    });
}

$("#btnSendAll").click(function(){
    if(arrayListKhachhang.length<=0){
      alert('Xin hãy check để chọn tối thiểu 05 khách hàng để gửi thông tin tiếp thị.');
      return;  
    };
    var idu = $("#user-id").val();
    var ids = $("#div-sign-visited").data("ids");

    var numID = arrayListKhachhang.length;
    var dongia = 500;
    if (numID >= 500 && numID < 2000) {
        dongia = 350;
    }
    else if (numID >= 2000 && numID < 5000) {
        dongia = 250;
    }
    else if (numID >= 5000) {
        dongia = 150;
    }
    var chiphi = numID*dongia;
    var contenttiepthi = "Xin chào Anh/Chị! Được biết Anh/Chị đang quan tâm đến: "+$("#txttitle").val()+". Hiện tại bên mình đang phân phối bất động sản tại khu vực này với nhiều sự lựa chọn và giá cả hấp dẫn. Xin liên hệ: "+$("#txtmobile").val()
    $.metroMessageBox({
                            title:"<strong>Công cụ tiếp thị khách hàng tiềm năng</strong>",
                            content: "Tiếp thị ngay đến <strong>"+arrayListKhachhang.length+"</strong> khách hàng đang quan tâm đến danh mục: <strong>"+ $("#txttitle").val()+"</strong><br>Chi phí: "+chiphi.formatt() +" (đ) </strong> <br> <img style='width:300px;' src='https://nhadat24h.net/Images/2019/banggiadulieukh.png'><br><i>Lưu ý: Gủi test sẽ không mất phí. Thông tin tiếp thị sẽ được gửi cho chính tài khoản của bạn.</i>",
                            buttons: ["Gửi ngay","Gửi test", "Thoát"],
                            icons:["fa-send","fa-flask","fa-remove"],
                            input: "textarea",
                            defaultvalue: contenttiepthi,
                            defaultbutton: 1,
                            placeholder:"Nhập vào thông tin cần tiếp thị",
                            maxlength: 300,
                        }, function (action, buttom, value, selectedText) {
                            //Do something here
                            if (buttom == "Gửi ngay") {
                                if(value==''){
                                    alert('Bạn nhập vào lời chào khách hàng.');
                                }
                                else {
                                    //
                                    var taikhoan = Number(sessionStorage.getItem("numvip"));
                                 
                                    if(taikhoan<chiphi)
                                    {
                                        var mess="Tài khoản bạn đang có: "+taikhoan+" (Gold24h), để thực hiện tiếp thị này bạn cần có: "+chiphi +" (Gold24h). Vậy bạn còn thiếu: "+(chiphi-taikhoan)+" (Gold24h). Bạn có muốn nạp Gold24h để tiếp tục?";
                                        var r = confirm(mess);
                                        if (r == true) {
                                            window.open('/nap-gold-vnpt-internet'+(chiphi-taikhoan), '_blank');
                                        } 
                                    }
                                    else {
                                        sendtiepthi(idu,arrayListKhachhang,value,ids,'0','0','')
                                        arrayListKhachhang=[];
                                        Congtientaikhoan(ids.toString(),chiphi.toString(),'25');
                                    }

                                }
                               
                            }
                            else if (buttom == "Gửi test") {
                                var arraytest = [];
                                arraytest.push(idu);
                                sendtiepthi(idu,arraytest,value,ids,'0','0','')
                                arraytest=[];
                            }
                });
});

function viewListVisitedAll(){
    var viewItemAllVisited = function (data) {
            var val = data.val();

            var thum ='/Images/2018/searchicon.png';
            var typ= 'Tìm kiếm';
                if(val.TYPE==1){
                    thum ='/Images/2021/no-image.png';
                    typ='Tin đăng';
                }
                else if(val.TYPE==3){
                    typ='Thông tin dự án';
                }
                else if(val.TYPE==4){
                    typ='Trang cá nhân';
                }

            this.displayListVistedAll(val.IDU,val.IP, data.key, val.ID, val.LINK, val.THUMBNAI || thum, val.TIME,val.TITLE, typ,val.TYPE);
        }.bind(this);
    
    firebase.database().ref('visited').orderByKey().limitToLast(10).on('child_added', viewItemAllVisited);
}

function listendListKHCHAMSOC(idu) {
    var viewItemAllVisited = function (data) {
        var val = data.val();
        this.displaylistendListKHCHAMSOC(data.key, val.ID, val.ID_TT, val.ID_QQ, val.ID_Q, val._IDU, val._FullName, val.Header, val.Description, val.Avatar, val.LAT, val.LON, val.SOTIEN, val.DIENTICH);
    }.bind(this);
    firebase.database().ref('duyettin/' + idu).orderByKey().limitToLast(1000).on('child_added', viewItemAllVisited);
}

function binmess2(IDU,value,strTITLe,_name,_IDU,strLink){

        var currentUser = this.auth.currentUser;
        
        firebase.database().ref('notify/' + IDU).limitToLast(50).on("child_added", function (childsnapshot) {
            httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=' + strLink + '&strIcon=' + encodeURI($('#user-pic').attr('data-src')) + '&title=' + strTITLe+'&toptitle='+encodeURI(_name), null);
        });

        database.ref('chat-list/' + _IDU + '/' + IDU).once('value', function (snapshot) {
                                        var _topic = (snapshot.val() == null);
                                        var _topicID = guid();
                                        if (_topic ) { 
                                            firebase.database().ref('chat-list/' + _IDU + '/' + IDU).set({
                                                topicID: _topicID,
                                            });
                                            firebase.database().ref('chat-list/' + IDU + '/' + _IDU).set({
                                                topicID: _topicID,
                                            });
                                        }
                                        else {
                                            _topicID = snapshot.child('topicID').val();
                                        }
                                        firebase.database().ref('chatthanhvien/'+_topicID).push({
                                            topicID: _topicID,
                                            name: _name,
                                            text: value,
                                            url_link:strLink,
                                            photoUrl: $('#user-pic').attr('data-src'),
                                            IP: $('#txtIP').val(),
                                            IDA: IDU, 
                                            UID: currentUser.uid, 
                                            IDB: _IDU,
                                            TIME: firebase.database.ServerValue.TIMESTAMP,
                                            ADDRESS: '',
                                            });

                                        firebase.database().ref('users-topic/'+IDU+'/beg').set({
                                            NUM:1,
                                            TEXT: value,
                                            DATA:{
                                                IDA:_IDU,
                                                IDTOPIC:_topicID,
                                                STYLE:'chatthanhvien'
                                            }
                                            });

                                        firebase.database().ref('users-topic/' + IDU + '/' + _topicID).set({
                                            ACTION: 2,
                                            IDA: _IDU,
                                            IMGTHUMBNAI: $('#user-pic').attr('data-src'),
                                            TTITLE: _name,
                                            TITLE: '<b>' + _name + '</b>: ' + value,
                                            MESSAGE: value,
                                            READ: 0,
                                            LINK:'tv/'+_IDU+'#makeprivatechat=on',
                                            TIME: firebase.database.ServerValue.TIMESTAMP,
                                        });
 

           

        });
}


function analyticWO(ida, idwo, idu, ip, mobile, address, link) {
    mobile = outPhoneformat(mobile);
   if(link)
   {
        if(ida!=idu){

                var tieude = $("#txtcontenttieudetin").text();
                var ismg = $("#txtdoituong").val()||0;
                var strLink = window.location.href.split('#')[0] + '%23analytic_idu=' + idu;

                var strTITLe = "Tin đăng: " + tieude + " đang được xem từ khách hàng";
                var strTITLe2 = strTITLe;
                 if(mobile!=''){
                    strTITLe = strTITLe + " có số điện thoại: " + mobile;
                    strTITLe2 = strTITLe2 + " có số điện thoại: " + mobile.substring(0, 4)+'XXXXXX';
                }
                if(address!=''){
                    strTITLe = strTITLe + " ở tại: "+address;
                    strTITLe2 = strTITLe2 + " ở tại: "+address;
            }

                firebase.database().ref('analytic-tin/' + ida + '/' + idwo + '/TIME').set(firebase.database.ServerValue.TIMESTAMP);

                firebase.database().ref('analytic-tin/'+ida+'/'+idwo+'/'+idu+'/TIME').set(firebase.database.ServerValue.TIMESTAMP);

             
                firebase.database().ref('analytic-tin/' + ida + '/' + idwo + '/' + idu + '/visited').push({
                                        IDU: idu,
                                        IP: ip,
                    MOBILE: mobile,
                    ismg: ismg,
                                        ACTION: 1,
                                        TIME: firebase.database.ServerValue.TIMESTAMP,
                                        ADDRESS: address,
                                        URL: link,URLREFER: document.referrer||''//document.URL
                });

                firebase.database().ref('users-topic/'+ida+'/beg').once('value', function (snapshotbeg) {var existsbeg = (snapshotbeg.val() != null);if(existsbeg){firebase.database().ref('users-topic/'+ida+'/beg').set({NUM: snapshotbeg.child("NUM").val()+1,TEXT:'Có khách xem tin: '+tieude});}else{firebase.database().ref('users-topic/'+ida+'/beg').set({NUM:1,TEXT:'Có khách xem tin: '+tieude});}});
                firebase.database().ref('users-topic/' + ida + '/' + idwo).set({
                            ACTION: 1,
                            IDA: ida,
                            IMGTHUMBNAI: $('#txtcontenttieudetin').attr("data-thumbnai") || '/Images/logo.png',
                            TTITLE:'Có khách xem tin:'+tieude,
                            TITLE:strTITLe2,
                            READ: 0,
                            isWebOne:false,
                            isAnalytic:true,
                            LINK: window.location.href.split('#')[0].replace("https://nhadat24h.net/", "")+'#analytic_idu='+idu,
                            TIME: firebase.database.ServerValue.TIMESTAMP,
                            ADDRESS: address,
                            MOBILE: mobile,
                        });


                strTITLe = strTITLe + ", đang xem trong: " + window.location.href.split('#')[0];
                if(mobile.length>6)
                {
                    var subMobile = mobile.substring(mobile.length-4,mobile.length);
                    strTITLe = strTITLe.replace(subMobile,"xxxx");
                }
                strTITLe = encodeURI(strTITLe);

                var query = firebase.database().ref('notify/' + ida);

                query.once("value")
                  .then(function(snapshot) {
                      snapshot.forEach(function (childsnapshot, i) {
                          setTimeout(() => {
                              httpGetAsync('https://nhadat24h.net/2016PushNotyfi?to=' + childsnapshot.child("TOKENID").val() + '&strLink=' + strLink + '&strIcon=' + encodeURI('/Images/logo.png') + '&title=' + strTITLe + '&toptitle=' + encodeURI('Có khách đang đọc tin của bạn') + '&idDevice=' + childsnapshot.key + '&IDU=' + ida, null);
                          }, i * 300);
                  });
                });
            }
   }

}
function Button3_onclick() {
    javascript: history.go(-1);
}

/*
function sendtoTechcombank() {
    var name =  $('#txtHoTen'); 
    var mobile = $('#txtmobile'); 
    var diachi = $('#txtDiaChi'); 
    //var CMTND = document.getElementById("txtCMTND");
    if (name.val() == '') {
        alert('Bạn cần nhập vào họ tên bạn');
        name.focus();
    }
    else if (mobile.val() == '') {
        alert('Bạn cần nhập vào số điện thoại liên lạc của bạn');
        mobile.focus();
    }
    else if (diachi.val() == '') {
        alert('Bạn cần nhập vào địa chỉ của bạn');
        diachi.focus();
    }
    //else if (CMTND.value == '') {
    //    alert('Xin cho biết số chứng minh thư nhân dân của bạn');
    //    diachi.focus();
    //}
    else {
        var loadingtech = document.getElementById("loadingtech");
        loadingtech.innerHTML = "<img align='center' style='display:inline-block;width:20px;' src='/images/ajax-loader.gif'>Dữ liệu đang được chuyển...";
        _2014Index.SendTechComBank(name.val(), mobile.val(), document.URL, diachi.val(), '', sendtoTechcombank_callback);
    }
}

function sendtoTechcombank_callback(response) {
    var loadingtech =  $('#loadingtech');
    if (response.error != null) {
        alert(response.error);
        return;
    }
    else if (response.value = '1') {
        loadingtech.innerHTML = '';
        document.getElementById("txtHoTen").value = '';
        document.getElementById("txtmobile").value = '';
        document.getElementById("txtDiaChi").value = '';
        //document.getElementById("txtCMTND").value = '';
        alert('Thông tin của bạn đã được gửi đến ngân hàng thành công. Sẽ có nhân viên tư vấn sớm liên lạc với bạn. Xin chân thành cảm ơn bạn.');
    }
}
*/
function clickBanner(url) {
    var win = window.open(url, '_blank');
    win.focus();
}

function choiseTinhThanh() {
    var _loaitin = 1;
    _loaitin = $("#txtLoaiTin").val() || 1;
    var _loainha = 0;
    _loainha = $("#cboLN").val() || 0 ;
    var selectBox = document.getElementById("selectTinhThanh");
    var selectedValue = selectBox.options[selectBox.selectedIndex].value;
    //alert(selectedValue);
    LoadlinkSearch('1', '/Search-All-'+_loaitin+'-' + selectedValue + '-0-0-'+_loainha+'-0----10--10000---0-1/', false);
    if (typeof(Storage) !== "undefined") {
        localStorage.setItem("id_tt", selectedValue);
    }
}
function LoadlinkSearch(strLoaiTin, strLink, isDatMua) {
    LoadlinkSearch2(strLoaiTin, strLink, '', isDatMua);
}
function LoadlinkSearch2(strLoaiTin, strLink, jsonPara, isDatMua) {
    _2014Index.GETLINK(strLoaiTin, strLink, jsonPara, isDatMua, LoadlinkSearch_callback);
}
function loadFormLogin() {
    _2014Index.binFormLogin(loadFormLogin_callback);
}
function loadFormLogin_callback(response) {
    if (response.error != null) {
        document.getElementById("logincontent").innerHTML = response.error;
        return;
    }
    else {
        document.getElementById("logincontent").innerHTML = response.value;
        if (response.value.length >= 800) {
            document.getElementById("mcTooltip").setAttribute("style", "transition: none; width: 250px; height: 364px;");
        }
       
    }
}
function LoadlinkSearch_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    else {
        window.location = response.value;
    }
}

function DUAN_SHOWTOP10(PARA) {
    try {
        _2014Index.bintopDUAN(PARA,DUAN_SHOWTOP10_callback);
    }
    catch (err) {
        console.log(err);
    }
}
function DUAN_SHOWTOP10_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    else {
        $("#zone_top10duan").html(response.value);
    }
}



function WO_CLICK() {
    try{
        _2014Index.WO_CLICK(WO_CLICK_callback);
    }
    catch (err){
    }

}
function WO_CLICK_callback(response) {
    if (response.error != null) {
        alert(response.error);
        return;
    }
    else {

        $("#adnzone_9846").html(response.value);
        $("#btnQuanTam").click(function() {
            $("#btnQuanTamvisble").trigger("click");
        });

        $("#adnzone_9846").owlCarousel({
            loop: !0, nav: !1, dots: !1, autoplay: !1, navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'], responsive: {
                0: { items: 1 }, 350: { items: 1 }, 768: { items: 2 },
                1200: { items: 2 }
            }
        });

    }
}


function removeTopicchat(topicid) {

  //  console.log("Roi nhom" + 'users-topic/' + this.userID.val() + '/' + topicid);

    firebase.database().ref('users-topic/' + this.userID.val() + '/' + topicid).remove();
    if ($.isNumeric(topicid)) {
        firebase.database().ref('users-chat/' + topicid + '/' + this.userID.val()).remove();
    }
    else {
        firebase.database().ref('users-chat/' + topicid + '/' + this.userID.val() + '/Visible').set(false);
    }
    $("#iteamtopic-" + topicid).remove();
    if(sessionStorage){
        sessionStorage.setItem("listNotifycation", $("#tooltipListChat").html());
    }

}

function Giaitannhom(topicid) {

    firebase.database().ref('users-topic/' + this.userID.val() + '/' + topicid).remove();

    firebase.database().ref('users-chat/' + topicid).remove();

    firebase.database().ref('chattinrao/' + topicid).remove();

    firebase.database().ref('viewed/' + topicid).remove();

    $("#iteamtopic-" + topicid).remove();
    if (sessionStorage) {
        sessionStorage.setItem("listNotifycation", $("#tooltipListChat").html());
    }

}


function updatestatustopic(topicid) {
    firebase.database().ref('users-topic/' + this.userID.val() + '/' + topicid+'/READ').set(1);
    $("#iteamtopic-"+topicid).removeClass('iteam-0').addClass('iteam-1');
    $("#check-read-topic-"+topicid).hide();


    var oldvalue = "id=\"iteamtopic-"+topicid+"\" class=\"iteam-0\"";
    var newvalue = "id=\"iteamtopic-"+topicid+"\" class=\"iteam-1\"";

    sessionStorageEdit('listNotifycation',oldvalue,newvalue);

}

function binItemloadLuutin(key, read, thumbnai, title, link, _TIME) {
    var agr = '#popchat'
    return "<div id=\"iteamtinluu-" + key + "\" class=\"iteam-" + read + "\" ><a rel=\"nofollow\" target=\"_blank\" href=\"/" + link + agr + "\" id='callchat-" + link + "' class=\"popup-chat\" ><div class=\"img1\"><img src=\"" + thumbnai + "\" /></div><div class=\"iteamdetail\"><label class=\"title\">" + title + "</label><label class=\"time\"><i class=\"fa fa-clock-o\"></i> " + timesnaptoDate(_TIME) + "</label></div></a><div class=\"close\"><a onClick=\"removeLuutin('" + key + "')\"><i class=\"fa fa-times-circle\"></i></a></div></div>";
}


function binItemloadNotifyChat(action,thumbnai, title, message, link, IDClient, IDA, IDU, read, topicid, mobile, _TIME, _isWebOne) {
    var strmessage = "";
    var strKhan = "";
    if (message != null && message != '') {
        strmessage = "<label class=\"iteam-topic-message\">" + message + "</label>";
    }

    if(thumbnai){
       thumbnai = thumbnai.replace("http://", "https://")
    }
    if (link != null) {
        var agr = '#popchat';

        var _idn ="id";
        if(_isWebOne==true){
            _idn= "idwo";
        }
        var strAnalytic="";
        
        if (IDA == IDU && $.isNumeric(topicid))
        {
            strAnalytic ="<a class=\"iteam-check-phantich\" target=\"_blank\" title=\"Chat, gửi lời chào, xem số điện thoại... \" href=\"/analytic#"+_idn+"="+topicid+"\" ><i class=\"fa fa-area-chart\"></i>Phân tích</a>";
        }

       

        if(link.indexOf('analytic_idu=') !== -1){
            agr='';
          //  strAnalytic ="<a class=\"iteam-check-phantich\" target=\"_blank\" title=\"Chat, gửi lời chào, xem số điện thoại... \" href=\"/analytic#idwo="+topicid+"\" ><i class=\"fa fa-area-chart\"></i>Phân tích</a>";
        }
        if (mobile != null && mobile != '' && action==3) {
            agr = '#callback=' + mobile;
            strAnalytic = "<a onclick=\"updatestatustopic('"+topicid+"')\" class=\"iteam-check-phantich\" title=\"Gọi điện ngay đến số: "+mobile+"\" href=\"tel:"+mobile+"\"><i class=\"fa fa-phone\"></i>Gọi ngay</a>";
            
            if (read == 0) {
                strKhan = "<label class=\"blink_me\">Yêu cầu tư vấn</label>";
            }
        }
        
        return "<div id=\"iteamtopic-" + topicid + "\" class=\"iteam-" + read + "\" >" + strKhan + "<a rel=\"nofollow\" target=\"_blank\" href=\"/" + link + agr + "\" id='callchat-" + topicid + "' class=\"popup-chat\" ><div class=\"img\"><img src=\"" + thumbnai + "\" /></div></a><div class=\"iteamdetail\"><label class=\"title\">" + title + "</label>" + strmessage + "<label class=\"time\"><i class=\"fa fa-clock-o\"></i>" + timesnaptoDate(_TIME) + "</label><a id=\"check-read-topic-" + topicid + "\" onclick=\"updatestatustopic('" + topicid + "')\" class=\"iteam-check-read-" + read + "\"><i class=\"fas fa-check\"></i>Đã đọc</a>" + strAnalytic + "</div></a><div class=\"close\"><a onClick=\"removeTopicchat('" + topicid + "')\"><i class=\"fa fa-times-circle\"></i></a></div></div>";
    }
    else {
        var strTrangcanhan='';
        if(Number(IDClient)){
            strTrangcanhan = "<a class=\"iteam-check-phantich\" target=\"_blank\" title=\"Xem trang cá nhân\" href=\"/tv/"+IDClient+"#makeprivatechat=on\" ><i class=\"fa fa-user\"></i>Trang cá nhân</a>";
        }

        return "<div onClick=\"binTopicChat('" + IDClient + "')\" id=\"iteamtopic-" + topicid + "\" class=\"iteam-" + read + "\" ><a id='callchat-" + topicid + "' class=\"popup-chat\" ><div class=\"img\"><img src=\"" + thumbnai + "\" /></div></a><div class=\"iteamdetail\"><label class=\"title\">" + title + "</label>" + strmessage + "<label class=\"time\"><i class=\"fa fa-clock-o\"></i> " + timesnaptoDate(_TIME) + "</label><a id=\"check-read-topic-" + topicid + "\" onclick=\"updatestatustopic('" + topicid + "')\" class=\"iteam-check-read-" + read + "\"><i class=\"fas fa-check\"></i>Đã đọc</a>" + strTrangcanhan + "</div></a><div class=\"close\"><a onClick=\"removeTopicchat('" + topicid + "')\"><i class=\"fa fa-times-circle\"></i></a></div></div>";
    }
}
function binChat() {

    var IDA = $('#IDAChat').val();

    if ($(window).width() > 583) {
        $(document).ready(function () {

            var _images = $("#preImg-" + IDA).attr("src").replace("/Thumbnai/", "/");
            
            var _name = $("#preImg-" + IDA).attr("alt");

            var _mobile = $('#viewmobinumber').text();

            $.smallBox({
                position: 4,
                title: _name,
                content: "<div class='pnchat1'>Click để chat với " + _name +"</div>",
                /*content: "<div class='pnchat1'><div><i class='fas fa-phone-alt'></i> <a title='Gọi cho " + _name + "' href='tel:" + _mobile + "'>" + _mobile + "</a></div> <div><i class='fas fa-comments'></i> <a id='btnclickpopchattopic2' title='Chat công khai với " + _name + " để hỏi về bất động sản này'>Chat Online</a></div> <div><i class='fas fa-bell'></i> <a id='yeucaugoilai2' title='Bạn quan tâm đến bất động sản này và bạn muốn " + _name + " gọi điện tư vấn cho bạn.'>Yêu cầu gọi tư vấn</a></div></div>",*/
                width: 280,
                color: "#FFFF",
                delay: 1,
                //icon: "/images/2016/chat-50.png",
                img: _images,
                sound: false,
                
            }, function (action, button) {
                $("#btnclickpopchattopic").trigger("click");
                return;
                //$("#yeucaugoilai2").on("click", function (event) {
                //    $("#yeucaugoilai").trigger("click");
                //    return;
                //});
                //$("#btnclickpopchattopic2").on("click", function (event) {
                //    $("#btnclickpopchattopic").trigger("click");
                //    return;
                //});
               
                //$(".mnSbMainImage img").on("click", function (event) {
                //    $("#btnclickpopchattopic").trigger("click");
                //    return;
                //});
                //    $("#btnclickpopchattopic").trigger("click");
                //    return;
                    //Do something here
            //    alert(action + ' ' + button);
                //$("#btnclickpopchattopic").trigger("click");
                //$("#btnclickpopchattopic").trigger("click");
            });
        });
    }
    else {

        $("#divpanelMobile").html("<div><a href=\"tel:" + $("#viewmobinumber").text() + "\" id='btnmakecallmobile' class=\"lb-alink\"><i class=\"fas fa-phone-alt\"></i> Gọi</a></div><div><a id='btnmakechatmobile' class=\"lb-alink\"><i class=\"fas fa-comments\"></i>  Hỏi</a></div><div><a id='btnmobilequantam' class=\"lb-alink\"><i class=\"fas fa-thumbs-up\"></i> Thích</a></div>");

        //$("#btnmakecallmobile").click(function () {
        //    window.location.href = "tel:" + $("#viewmobinumber").text();
        //});
        $("#btnmakechatmobile").click(function () {
            $("#btnclickpopchattopic").trigger("click");
        });
        $("#btnmobilequantam").click(function () {
            $("#yeucaugoilai").trigger("click");
        }); 
        
    }
}
function getChat() {
    var _popchat = getParameterByName('popchat');
    if (_popchat == null) {
        
        binChat();
    }
}
function Notifylocal(IDU) {

    if (IDU == 'undefined' || IDU == 'null' || IDU == undefined || IDU == null) {

        console.log('Notifylocal is null')
        return;

    }
    
    var beg = firebase.database().ref('users-topic/' + IDU+'/beg');
    var _num;

    beg.on("child_added", function (snapshotnumbeg) {
            if(snapshotnumbeg.key=='NUM'){
                _num = snapshotnumbeg.val();
            }
            if(snapshotnumbeg.key=='TEXT'){
                $.smallBox({
                    content: snapshotnumbeg.val(),
                    color: "#2d7a30",
                    position:1,
                    timeout: 8000,
                    buttons: ['Xem'],
                }, function (action, button) {

                        if (action == 'buttonPress') {
                            $("#apanelchat").trigger("click");
                        };

                        sessionStorage.removeItem('listNotifycation');
                        sessionStorage.removeItem('txtStartKeyTopicNotify');
                        $("#tooltipListChat").html('');
                        loadNotifyChat(IDU);
                        firebase.database().ref('users-topic/' + $('#user-id').val() + '/beg').remove();

                });
            }
            if(snapshotnumbeg.key=='DATA'){

                firebase.database().ref('users-info/'+ IDU +'/opendchat').once('value', function (__snapshot) {
                    console.log('__snapshot.key:'+__snapshot.child('Visible').val());
                    var existWindowschat = (__snapshot.child('Visible').val() == true);
                    if(!existWindowschat){

                        var _linkchat = '/chatroom-' + snapshotnumbeg.child('STYLE').val() + '-ida' + snapshotnumbeg.child('IDA').val() + '-subtopic' + snapshotnumbeg.child('IDTOPIC').val();

                        if (snapshotnumbeg.child('IDTOPIC').val()) {
                            $("#butClose").attr("ida", snapshotnumbeg.child('IDA').val());
                            $("#butClose").attr("subtopic", snapshotnumbeg.child('IDTOPIC').val());
                            $("#butClose").attr("typetopic", snapshotnumbeg.child('STYLE').val());
                        }

                        var _width;

                        if ($(window).width() <= 250) {

                            window.open(_linkchat, '_blank');
                        }
                        else {

                            _width = $(window).width() * .9;

                            if (_width > 700) {
                                _width = 700;
                            }
                            
                            $.metroSidePanel({
                                iframe: _linkchat,
                                width: _width,
                                backgroundcontent: "#2d3e52",
                                fa: "fa-star-o",
                                blocked: true,
                            });
                            $.smallBoxKill();
                           // $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                            $("#mcttCloseButton").trigger("click");
                        }


                    }
                });
                
            }

    });

}
function getID_TT(tentt){
    var id_tt='0';
    if(tentt.indexOf('Hà Nội')>-1){id_tt='5'}
    else if(tentt.indexOf('Hanoi')>-1){id_tt='5'}
    else if(tentt.indexOf('Hồ Chí Minh')>-1){id_tt='6'}
    else if(tentt.indexOf('Ho Chi Minh')>-1){id_tt='6'}
    else if(tentt.indexOf('Đắk Lắk')>-1){id_tt='8'}
    else if(tentt.indexOf('An Giang')>-1){id_tt='9'}
    else if(tentt.indexOf('Bình Dương')>-1){id_tt='10'}
    else if(tentt.indexOf('Bạc Liêu')>-1){id_tt='11'}
    else if(tentt.indexOf('Bắc Ninh')>-1){id_tt='12'}
    else if(tentt.indexOf('Cần Thơ')>-1){id_tt='13'}
    else if(tentt.indexOf('Hà Giang')>-1){id_tt='14'}
    else if(tentt.indexOf('Hà Nội 2')>-1){id_tt='15'}
    else if(tentt.indexOf('Hưng Yên')>-1){id_tt='16'}
    else if(tentt.indexOf('Kontum')>-1){id_tt='17'}
    else if(tentt.indexOf('Lạng Sơn')>-1){id_tt='18'}
    else if(tentt.indexOf('Nam Định')>-1){id_tt='20'}
    else if(tentt.indexOf('Quảng Bình')>-1){id_tt='22'}
    else if(tentt.indexOf('Quảng Ninh')>-1){id_tt='23'}
    else if(tentt.indexOf('Sơn La')>-1){id_tt='24'}
    else if(tentt.indexOf('Thái Nguyên')>-1){id_tt='25'}
    else if(tentt.indexOf('Tiền Giang')>-1){id_tt='26'}
    else if(tentt.indexOf('Vĩnh Long')>-1){id_tt='27'}
    else if(tentt.indexOf('Đà Nẵng')>-1){id_tt='28'}
    else if(tentt.indexOf('Đồng Tháp')>-1){id_tt='29'}
    else if(tentt.indexOf('Bình Định')>-1){id_tt='30'}
    else if(tentt.indexOf('Bình Thuận')>-1){id_tt='31'}
    else if(tentt.indexOf('Bắc Giang')>-1){id_tt='32'}
    else if(tentt.indexOf('Cà Mau')>-1){id_tt='33'}
    else if(tentt.indexOf('Gia Lai')>-1){id_tt='34'}
    else if(tentt.indexOf('Hà Nam')>-1){id_tt='35'}
    else if(tentt.indexOf('Hòa Bình')>-1){id_tt='36'}
    else if(tentt.indexOf('Hải Phòng')>-1){id_tt='37'}
    else if(tentt.indexOf('Kiên Giang')>-1){id_tt='38'}
    else if(tentt.indexOf('Lâm Đồng')>-1){id_tt='39'}
    else if(tentt.indexOf('Long An')>-1){id_tt='40'}
    else if(tentt.indexOf('Ninh Bình')>-1){id_tt='41'}
    else if(tentt.indexOf('Phú Yên')>-1){id_tt='42'}
    else if(tentt.indexOf('Quảng Ngãi')>-1){id_tt='43'}
    else if(tentt.indexOf('Sóc Trăng')>-1){id_tt='44'}
    else if(tentt.indexOf('Thái Bình')>-1){id_tt='45'}
    else if(tentt.indexOf('Thanh Hóa')>-1){id_tt='46'}
    else if(tentt.indexOf('Tuyên Quang')>-1){id_tt='47'}
    else if(tentt.indexOf('Yên Bái')>-1){id_tt='48'}
    else if(tentt.indexOf('Đồng Nai')>-1){id_tt='49'}
    else if(tentt.indexOf('BR - Vũng Tàu')>-1){id_tt='50'}
    else if(tentt.indexOf('Bình Phước')>-1){id_tt='51'}
    else if(tentt.indexOf('Bắc Cạn')>-1){id_tt='52'}
    else if(tentt.indexOf('Bến Tre')>-1){id_tt='53'}
    else if(tentt.indexOf('Cao Bằng')>-1){id_tt='54'}
    else if(tentt.indexOf('Hà Tĩnh')>-1){id_tt='55'}
    else if(tentt.indexOf('Hải Dương')>-1){id_tt='56'}
    else if(tentt.indexOf('Khánh Hòa')>-1){id_tt='57'}
    else if(tentt.indexOf('Lào Cai')>-1){id_tt='58'}
    else if(tentt.indexOf('Lai Châu')>-1){id_tt='59'}
    else if(tentt.indexOf('Nghệ An')>-1){id_tt='60'}
    else if(tentt.indexOf('Phú Thọ')>-1){id_tt='61'}
    else if(tentt.indexOf('Quảng Nam')>-1){id_tt='62'}
    else if(tentt.indexOf('Quảng Trị')>-1){id_tt='63'}
    else if(tentt.indexOf('Tây Ninh')>-1){id_tt='64'}
    else if(tentt.indexOf('Huế')>-1){id_tt='65'}
    else if(tentt.indexOf('Trà Vinh')>-1){id_tt='66'}
    else if(tentt.indexOf('Vĩnh Phúc')>-1){id_tt='67'}
    else if(tentt.indexOf('Ninh Thuận')>-1){id_tt='68'}
    else if(tentt.indexOf('Việt Nam')>-1){id_tt='0'}
    else{id_tt='0'}
    return id_tt;
}
function loadMoreNotifyChat(IDU) {

    $("#tooltipListChat").append("<hr>");
    $("#btnloadMoreNotifyChat").hide();

    var ref = firebase.database().ref("users-topic/" + IDU);

    var startAtTime = parseInt(sessionStorage.getItem('txtStartKeyTopicNotify'));

    var i=0;
    ref.orderByChild('TIME').endAt(startAtTime).limitToLast(20).on("child_added", function (snapshot) {

        if(snapshot.child("TITLE").val())
        {
            $("#tooltipListChat").append(binItemloadNotifyChat(
            snapshot.child("ACTION").val() ||0,
            snapshot.child("IMGTHUMBNAI").val() || '/Images/2012/avatar_male.png',
            snapshot.child("TITLE").val(),
            snapshot.child("MESSAGE").val()||'',
            snapshot.child("LINK").val(),
            snapshot.child("IDClient").val(),
            snapshot.child("IDA").val(),IDU,
            snapshot.child("READ").val(),
            snapshot.key,
            snapshot.child("MOBILE").val(),
            snapshot.child("TIME").val(),snapshot.child("isWebOne").val()||false
            ));

            if(i==0){
                sessionStorage.setItem("txtStartKeyTopicNotify", snapshot.child("TIME").val());
                sessionStorage.setItem("listNotifycation", $("#tooltipListChat").html());
            }
            i++;
            

            if(i>=20){
                $("#tooltipListChat").append("<center><p><a class=\"loadmore\" id=\"btnloadMoreNotifyChat\" onclick=\"loadMoreNotifyChat('"+ IDU +"')\">Loadmore...</a></p></center>");
            }

            sessionStorage.setItem("listNotifycation", $("#tooltipListChat").html());
        }
        
    });

}
function sessionStorageEdit(sesstionName,Oldvalue,Newvalue){
    if (sessionStorage && sessionStorage.getItem(sesstionName)) {

        var strSessionStorage = sessionStorage.getItem(sesstionName);

        strSessionStorage = strSessionStorage.replace(Oldvalue, Newvalue);

        sessionStorage.setItem(sesstionName,strSessionStorage);

    }
}

function TopicList(ACTION, IMGTHUMBNAI, TITLE , MESSAGE, LINK, IDClient, IDA,IDU, READ, KEY, MOBILE, TIME, isWebOne) {
    this.TITLE = TITLE;
    this.ACTION = ACTION;
    this.IMGTHUMBNAI = IMGTHUMBNAI;
    this.MESSAGE = MESSAGE;

    this.LINK = LINK;
    this.IDClient = IDClient;
    this.IDA = IDA;
    this.IDU = IDU;
    this.READ = READ;

    this.KEY = KEY;
    this.MOBILE = MOBILE;
    this.TIME = TIME;
    this.isWebOne = isWebOne;

}





function loadNotifyChatbyAction(ACTION) {


    let _listTopic = [];

    var IDU = $("#user-id").val();
    $("#tooltipListChat").html('');

    switch (ACTION) {
        case 3:
            $("#titleTB").html('Yêu cầu tư vấn');
            break;
        case 2:
            $("#titleTB").html('Danh sách chat');
            break;
        case 1:
            $("#titleTB").html('Khách xem tin');
            break;
        default:
            $("#titleTB").html('Tất cả thông báo');
    }

    var ref = firebase.database().ref("users-topic/" + IDU);
    
    ref.orderByChild("ACTION").equalTo(ACTION).on("child_added", function (snapshot) {
        if (snapshot.child("TITLE").val()) {

            var _topicitem = new TopicList(
                snapshot.child("ACTION").val() || 0,
                snapshot.child("IMGTHUMBNAI").val() || '/Images/2012/avatar_male.png',
                snapshot.child("TITLE").val(),
                snapshot.child("MESSAGE").val() || '',
                snapshot.child("LINK").val(),
                snapshot.child("IDClient").val(),
                snapshot.child("IDA").val(),
                IDU,
                snapshot.child("READ").val(),
                snapshot.key,
                snapshot.child("MOBILE").val(),
                snapshot.child("TIME").val(),
                snapshot.child("isWebOne").val() || false);

            _listTopic.push(_topicitem);
        }

    });

    _listTopic.sort(function (a, b) {
        return parseFloat(a.TIME) - parseFloat(b.TIME);
    });

    _listTopic.forEach(function (TopicList) {

        var strItem = binItemloadNotifyChat(
            TopicList.ACTION,
            TopicList.IMGTHUMBNAI,
            TopicList.TITLE,
            TopicList.MESSAGE,
            TopicList.LINK,
            TopicList.IDClient,
            TopicList.IDA,
            TopicList.IDU,
            TopicList.READ,
            TopicList.KEY,
            TopicList.MOBILE,
            TopicList.TIME,
            TopicList.isWebOne
        );
      //  console.log(TopicList.TITLE + "," + TopicList.TIME);
        $("#tooltipListChat").prepend(strItem);
    });

    /*
    const sort_by = (n, t, r) => { const u = r ? function (t) { return r(t[n]) } : function (t) { return t[n] }; return t = t ? -1 : 1, function (n, r) { return n = u(n), r = u(r), t * ((n > r) - (r > n)) } };

    
    _listTopic.sort(sort_by('TIME', true, parseFloat)).forEach(function (TopicList) {

        var strItem = binItemloadNotifyChat(
            TopicList.ACTION,
            TopicList.IMGTHUMBNAI,
            TopicList.TITLE,
            TopicList.MESSAGE,
            TopicList.LINK,
            TopicList.IDClient,
            TopicList.IDA,
            TopicList.IDU,
            TopicList.READ,
            TopicList.KEY,
            TopicList.MOBILE,
            TopicList.TIME,
            TopicList.isWebOne
        );
        console.log(TopicList.TITLE + "," + TopicList.TIME);
        $("#tooltipListChat").append(strItem);
    });
    */


    
}
function loadAlllistLuutin() {
    $("#liListtinluu").html("");
    $("#titleTabTinLuu").html("Đã lưu");
    $("#btnClearAllHistorySearch").attr('data-style', '1');
    loadlistLuutin($("#user-id").val())
}

function loadAllviewListVisited() {
    var divList = $("#liListtinluu");
    divList.html("");
    $("#titleTabTinLuu").html("Đã xem");
    $("#btnClearAllHistorySearch").attr('data-style', '2');
    viewListVisited($("#user-id").val(), divList, true)

}
function loadlistLuutin(IDU) {
    jsonSaveTin = [];
    if (localStorage && localStorage.getItem("listtinluu")) {
        var arr = JSON.parse(localStorage.getItem("listtinluu"));

        arr.forEach(function (item, index) {
            var strItem = binItemloadLuutin(
                item["key"],
                item["READ"],
                item["IMGTHUMBNAI"],
                item["HEADER"],
                item["LINK"],
                item["TIME"]);

            $("#liListtinluu").prepend(strItem);
        });
    }
    else {

        firebase.database().ref("users-info/" + IDU + "/luutin").orderByChild('TIME').limitToLast(20).on("child_added", function (snapshot) {

            if (snapshot.child("HEADER").val()) {

                item = {}
                item["key"] = snapshot.key;
                item["READ"] = snapshot.child("READ").val() || 1;

                item["IMGTHUMBNAI"] = snapshot.child("IMGTHUMBNAI").val() || '/Images/2021/no-image.png';

                item["HEADER"] = snapshot.child("HEADER").val();

                item["LINK"] = snapshot.child("LINK").val() || '#';

                item["TIME"] = snapshot.child("TIME").val();

                var strItem = binItemloadLuutin(
                    item["key"],
                    item["READ"],
                    item["IMGTHUMBNAI"],
                    item["HEADER"],
                    item["LINK"],
                    item["TIME"]);

                $("#liListtinluu").prepend(strItem);
                jsonSaveTin.push(item);
                localStorage.setItem("listtinluu", JSON.stringify(jsonSaveTin));
            }

        });

    }

    binShowHideClose();

}

function loadNotifyChat(IDU) {
    
    $("#titleTB").html('Tất cả thông báo');

    if (IDU == '') {
        IDU = $("#user-id").val();
    }
    if ($.isNumeric(IDU)) {
        $("#MenutooltipListChat").show();
    }
    console.log('loadNotifyChat' + IDU);
    var i=0;

    firebase.database().ref('users-topic/'+IDU+'/beg').once('child_added', function (snapshotbeg) 
    {
        var existsbeg = (snapshotbeg.val() != null);
        if(existsbeg)
        {
          //  this.numcomment = snapshotbeg.child("NUM").val();
          //  $("#numComment").html('N');
            $("#numComment").show();
            //clearNotify

            sessionStorage.removeItem('listNotifycation');
            sessionStorage.removeItem('txtStartKeyTopicNotify');
        }
    });

    
    if (typeof (Storage) !== "undefined" && sessionStorage && sessionStorage.getItem('listNotifycation') && sessionStorage.getItem('listNotifycation') != 'NaN' && sessionStorage.getItem('listNotifycation') != 'undefined') {
        var strlist = sessionStorage.getItem('listNotifycation');
        $("#tooltipListChat").html(strlist);
        $('#clearNotify').show();
        $('#infonoNotify').hide();
        return;
    }
   
    var ref = firebase.database().ref("users-topic/" + IDU);
 
    ref.orderByChild('TIME').limitToLast(20).on("child_added", function (snapshot) {

        this.liChat.show();

        if(snapshot.child("TITLE").val())
        {
            var strItem = binItemloadNotifyChat(
            snapshot.child("ACTION").val() || 0,
            snapshot.child("IMGTHUMBNAI").val() || '/Images/2012/avatar_male.png',
            snapshot.child("TITLE").val(),
            snapshot.child("MESSAGE").val()||'',
            snapshot.child("LINK").val(),
            snapshot.child("IDClient").val(),
            snapshot.child("IDA").val(),IDU,
            snapshot.child("READ").val(),
            snapshot.key,
            snapshot.child("MOBILE").val(),
            snapshot.child("TIME").val(),snapshot.child("isWebOne").val()||false
            );

            $("#tooltipListChat").prepend(strItem);

            i++;
            if(i==1){
                sessionStorage.setItem("txtStartKeyTopicNotify", snapshot.child("TIME").val());
            }

            if(i>=1)
            {
                $('#clearNotify').show();
                $('#infonoNotify').hide();
            }


            if(i>=20){
                var strLoading ="<center><p><a class=\"loadmore\" id=\"btnloadMoreNotifyChat\" onclick=\"loadMoreNotifyChat('"+ IDU +"')\">Loadmore...</a></p></center>";
                $("#tooltipListChat").append(strLoading);

            }

            if (sessionStorage && typeof (Storage) !== "undefined" && $("#tooltipListChat").html() != '' && $("#tooltipListChat").html() !='undefined') {
                sessionStorage.setItem("listNotifycation",$("#tooltipListChat").html());
            }

        }

    });

    binShowHideClose();
}
var delay = (function(){
      var timer = 0;
      return function(callback, ms){
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
      };
    })();

function botCheck(){
    var botPattern = "(googlebot\/|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis)";
          var re = new RegExp(botPattern, 'i');
          var userAgent = navigator.userAgent;
          if (re.test(userAgent)) {
              return true;
          }else{
            return false;
          }
}

function binHowfar(lat, lng) {
    $('.lbhowfar').text(function () {

        var _lat = parseFloat($(this).data("lat"));
        var _lng = parseFloat($(this).data("lng"));

        if (_lat > 0) {
            _lat = _lat - lat;
            _lat = Math.pow(_lat, 2);
            _lng = _lng - lng;
            _lng = Math.pow(_lng, 2);
            var _far = Math.round(Math.sqrt(_lat + _lng) * 1000 * 1.3) / 10;
            _far = _far.toFixed(1);
            var _text = $(this);
            if (_far <= 0.5) {
                _text.html('Gần bạn');
            }
            else {
                _text.html('Cách bạn: ~ ' + _far + ' Km');
            }

            _text.show();
        }

    });

    $(".lbhowfar").click(function () {
        /*
        var _width;
        if ($(window).width() <= 450) {
            _width = $(window).width();
        }
        else {
            _width = $(window).width() * .9;
        }
        if (_width > 700) {
            _width = 700;

        }
        event.preventDefault();
        var dataUrl = 'https://nhadat24h.net/map-fastview-' + $(this).attr("data-idn");
        $.metroSidePanel({
            iframe: dataUrl,
            width: _width,
            backgroundcontent: "#4d636f",
            fa: "fa-star-o",
            blocked: false,
        });
        */
    });
    
}

if (localStorage.getItem('localLat')) {
    var tt = $("#txtTT").val() || 5;
    var loaitin = $("#txtLoaiTin").val() || 1;

    lat = localStorage.getItem('localLat');
    lng = localStorage.getItem('localLng');
    $("#local_lat").val(lat);
    $("#local_lon").val(lng);

    binHowfar(lat, lng);

    if (sessionStorage.getItem('GANBAN') != null) {

        $("#divtoplistGanban").html('<div class=\"tbLinksearch2\"><i>Gần bạn trong vòng bán kính 3km.</i><hr><ul>' + sessionStorage.getItem('GANBAN') + '</ul><i>Trải nghiệm toàn bộ công nghệ tìm nhà trên bản đồ và theo vị trí trên ứng dụng <a rel=\"nofollow\" target=\"_blank\" href=\"https://itunes.apple.com/us/app/nhadat24h-net/id1292563772?ls=1&amp;mt=8\" title=\"Ứng dụng Nhadat24h.net trên IOS\">Nhadat24h.net - Bất động sản</a></i><div>');
    }
    else {

        var response = _2014Index.GETTOP_GANBAN(lat, lng, tt, loaitin, null);

        $("#divtoplistGanban").html('<div class=\"tbLinksearch2\"><i>Gần bạn trong vòng bán kính 3km.</i><hr><ul>' + response.value + '</ul><i>Trải nghiệm toàn bộ công nghệ tìm nhà trên bản đồ và theo vị trí trên ứng dụng <a rel=\"nofollow\" target=\"_blank\" href=\"https://itunes.apple.com/us/app/nhadat24h-net/id1292563772?ls=1&amp;mt=8\" title=\"Ứng dụng Nhadat24h.net trên IOS\">Nhadat24h.net - Bất động sản</a></i><div>');
        sessionStorage.setItem('GANBAN', response.value)
    }

}



function onAuthStateChanged() {
    firebase.auth().onAuthStateChanged(function (user) {
        if (user) {

            var CKMobile = getCookie("User_info");
            isAnonymous = user.isAnonymous;
            fbUID = user.uid;

            var _phoneNumber = user.phoneNumber;

            if (_phoneNumber == '' || _phoneNumber == null) {

                if (user.providerData.length > 0) {
                    if (user.providerData[0].providerId == 'phone') {
                        _phoneNumber = user.providerData[0].uid;

                        //user.updateProfile({
                        //    phoneNumber: _phoneNumber,
                        //}).then(function () {
                        //    firebase.database().ref('users-xacminh/' + fbUID).set({
                        //        mobile: _phoneNumber,
                        //        TIME: firebase.database.ServerValue.TIMESTAMP
                        //    });
                        //});
                    }
                }

            }

            _phoneNumber = outPhoneformat(_phoneNumber);
            $("#uniID").text("UID: " + user.uid + " - isAnonymous: " + isAnonymous);

            var _myuserID = $('#user-id');

            if (_phoneNumber) {
                if (!sessionStorage.getItem("mobile")) {

                    firebase.database().ref('users-xacminh/' + fbUID).set({
                        mobile: _phoneNumber,
                        TIME: firebase.database.ServerValue.TIMESTAMP
                    });
                    firebase.database().ref('users-info/' + fbUID + '/mobile').set(_phoneNumber);
                    sessionStorage.setItem("mobile", _phoneNumber);
                }
                //sessionStorage.setItem("mobile", _phoneNumber);
            }
            else {

                if (CKMobile.indexOf("MOBILE=") > 0) {
                    var arrayCookies = CKMobile.split("MOBILE=");
                    sessionStorage.setItem("mobile", arrayCookies[1]);
                }
            }
           
            localStorage.setItem('firebasecurrentUser', user.uid);

            if (!$.isNumeric(_myuserID.val())) {
                _myuserID.val(user.uid);
            }

            var _formdatmua = $("#formdatmua");
            if (_formdatmua.attr('data-load')) {

                if (!isAnonymous)
                {
                    $(".ip-txt-reg").attr('readonly', false);
                    $("#frmdatmua_TextBox2").attr('readonly', false);
                }

                $("#frmdatmua_txtMobile").val(localStorage.getItem("mobile"));

                firebase.database().ref('users-info/' + _myuserID.val()).once('value', function (snapshot) {
                    if (snapshot.val()) {

                        $("#frmdatmua_txtHT").val(snapshot.val().name);
                        $("#frmdatmua_txtEmail").val(snapshot.val().email);

                        if (snapshot.val().mobile) {
                            $("#frmdatmua_txtMobile").val(snapshot.val().mobile);
                            
                        }
                        
                        if (sessionStorage.getItem('AddressUser')) {
                            $("#frmdatmua_txtDiachi").val(sessionStorage.getItem('AddressUser'));
                        }
                        if (snapshot.val().address) {
                            $("#frmdatmua_txtDiachi").val(snapshot.val().address);
                        }

                    }
                });
            }

            if (_myuserID.val()) {
                _2014Index.updateAuthUserID(_myuserID.val(), updateAuthUserID_callback);
            }
            var _binchat = getParameterByName('binchat');
            if (_binchat != null && _binchat!='') {

                binTopicChat(_binchat);
            }

            var _popchat = getParameterByName('popchat');

            if (_popchat != null) {
                $("#btnclickpopchattopic").trigger("click");
            }

            var _saywelcome = getParameterByName('saywelcome');
            if (_saywelcome != null) {
                $("#btnclickpopchattopic").trigger("click");
            }

            var _makeprivatechat = getParameterByName('makeprivatechat');
            var _fromIDS = getParameterByName('fromIDS');
            if (((_makeprivatechat != null && _makeprivatechat=='on') || _fromIDS != null) && !botCheck()) {

                $("#btnPrivatechat").trigger("click");

                var _localuser =  $('#localIDU').val();
                if(_localuser!=_myuserID.val()){
                    firebase.database().ref('analytic-user/'+_localuser+'/'+_myuserID.val()+'/visited').push({
                        IDU: _myuserID.val(),
                        NAME:$('#user-name').val(),
                        AVATAR: $('#user-pic').attr('data-src'),
                        TIME: firebase.database.ServerValue.TIMESTAMP,
                    });
                }
            }
            var _myuserName =  $('#user-name');
            var _isSearchPage = $("#divSearchPage");
            var _devID=getCookie("SessionGUID");
            var _idq = _isSearchPage.attr("data-idq");
            var _idln = _isSearchPage.attr("data-idln");
            if(_isSearchPage.attr("data-ids")){
                var btnsubcripbletopic = $("#btn-subcripble-topic");
                if(_isSearchPage.attr("data-showsubcripble")=='True'){
                    btnsubcripbletopic.show();
                    if(localStorage.getItem('topics/searchid-'+_isSearchPage.attr("data-ids"))==1){
                        btnsubcripbletopic.html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Theo dõi");
                        btnsubcripbletopic.attr('data-action','unsubcripble');
                        btnsubcripbletopic.attr('data-original-title','Click vào đây để huỷ bỏ nhận thông báo');
                        btnsubcripbletopic.addClass('active');

                    }
                    else{
                        var asked=0;
                       
                        if (localStorage.getItem("askSubchanel")) {
                            var now = new Date().getTime();
                            __subtime = Math.round((now - localStorage.getItem("askSubchanel")) / 1000);
                            if (__subtime < 172800) {
                                asked = 1;
                            }
                        }
                        firebase.database().ref('/users-info/'+_myuserID.val()+'/subcripble/'+_isSearchPage.attr("data-ids")+'/'+_devID).once('value').then(function(snapshot) {
                            if(snapshot.val()){

                                btnsubcripbletopic.html("<i class=\"fas fa-check\" aria-hidden=\"true\"></i> Theo dõi");
                                btnsubcripbletopic.attr('data-original-title','Click vào đây để huỷ bỏ nhận thông báo');
                                btnsubcripbletopic.attr('data-action','unsubcripble');
                                btnsubcripbletopic.addClass('active');

                            }
                            else if(!botCheck()&&asked==0&&localStorage.getItem('sentToServer')==1&&(_idq>0||_idln>0)){
                                firebase.database().ref('/users-info/'+_myuserID.val()+'/subcripble').once('value').then(function(_snapshot){
                                    if(!_snapshot.hasChildren() || _snapshot.numChildren()<3 ){
                                        delay(function(){
                                            firebase.database().ref('users-info/' + _myuserID.val()).once('value', function (snapshot) {

                                                $.metroMessageBox({
                                                title: "Đăng ký nhận thông báo kênh: "+_isSearchPage.attr("data-stitle"),
                                                content: "Nhận thông báo mỗi khi có tin đăng mới vào mục: "+_isSearchPage.attr("data-stitle") +' ? Ấn \"Đăng ký\" để đồng ý.',
                                                defaultbutton: 1,
                                                buttons: ["Đăng ký", "Thoát"],
                                                icons:["fa fa-rss","fa fa-close"],
                                                placeholder: "Nhập vào số điện thoại(Không bắt buộc)"
                                                }, function (action, buttom, value, selectedText) {
                                                    if (buttom == "Thoát") {
                                                        var now = new Date().getTime();
                                                        localStorage.setItem('askSubchanel', now);
                                                    }
                                                    else if (buttom == "Đăng ký"){
                                                        btnsubcripbletopic.trigger("click");
                                                    }
                                                    else{
                                                       
                                                    }
                                                });
                                            });
                                           
                                        }, 400 );
                                    }
                                });

                            }
                        });

                    }

                }

            }

            

            loadNotifyChat(_myuserID.val());

            Notifylocal(_myuserID.val());
           
            loadlistLuutin(_myuserID.val());

            
            var uid = user.email;
            var tt = $("#txtTT").val(); 
            var loaitin = $("#txtLoaiTin").val();
            var khuvuc = $("#txtKV").val();
            var QH = $("#txtQuan").val();
                    
            var txtGiatien = $("#fromGiatien").val();

                    if(txtGiatien=='')
                    {
                        txtGiatien='0';
                    }

            var txtdvGiatien = $("#dvFromGiatien").val();

                    var loainha = $("#cboLN").val()|| '0';
                    
            if (!botCheck() &&tt&&QH&&txtdvGiatien){
                        
                        var fromgiatien = parseFloat(txtGiatien)*txtdvGiatien;
                        firebase.database().ref('users-info/'+_myuserID.val()+'/ID_TT').set(parseInt(tt));
                        firebase.database().ref('users-info/'+_myuserID.val()+'/ID_QQ').set(parseInt(QH));
                        firebase.database().ref('users-info/'+_myuserID.val()+'/ID_KV').set(parseInt(khuvuc));
                        firebase.database().ref('users-info/'+_myuserID.val()+'/ID_LN').set(parseInt(loainha));
                        firebase.database().ref('users-info/'+_myuserID.val()+'/ID_LT').set(parseInt(loaitin));
                        if(fromgiatien>1){
                            firebase.database().ref('users-info/'+_myuserID.val()+'/GIATIEN').set(fromgiatien);
                        }

            }

            var myArrayID = ['146005', '259053'];
            
            if (!botCheck() && !myArrayID.includes(_myuserID.val())) {

                getLocation();

                delay(function(){
                    if(_isSearchPage.attr("data-ids")){
                        
                        addLinkVisited(_myuserID.val(),
                            _isSearchPage.attr("data-ids"),
                            _isSearchPage.attr("data-style"),
                            _isSearchPage.attr("data-stitle"),
                            _isSearchPage.attr("data-thumbnai"),
                            window.location.href,
                            _isSearchPage.attr("data-lt"),
                            _isSearchPage.attr("data-idln"),
                            _isSearchPage.attr("data-idtt")
                        );
                    }

                    nha_updateclick();
                }, 2000 );


                if ($.isNumeric(_myuserID.val()))
                {

                    if ($("#displayListVistedAll").attr("data-on") == 'on') {
                        $("#displayListVistedAll").parent().prepend("<div class=\"dv-pt-item-caption\"><h2>Đang hoạt động</h2></div>");
                        viewListVisitedAll();
                    }
                }
                
                if($("#divListLichsutruycap"))
                {
                    var divList = $("#divListLichsutruycap");
                    viewListVisited(_myuserID.val(),divList,true);
                }


            }

            if($("#divListUserVisited"))
            {
                var divList = $("#divListUserVisited");
                var customID = $("#txtcustomID");

                if(customID.val()!=''){
                    firebase.database().ref('users-info/'+customID.val()).once('value', function (snapshot) {
                        if (snapshot.val()) {
                            var messvip = '<a href=\"/VPN-1-0\" data-toggle=\"tooltip\" data-placement=\"bottom\" title=\"Để trở thành thành viên VIP bạn chỉ phải duy trì tối thiểu 01 tin từ VIP Xanh trở lên. Click để kích hoạt tin VIP\"> <i class=\"fa fa-lock\"></i>Chỉ thành viên VIP</a> mới được xem thông tin này';
                            if (Number(sessionStorage.getItem("numvip")) <= 0) {
                                $("#lbUserinfoMobile").html(messvip);
                                $("#lbUserinfoEmail").html(messvip);
                                $("#lbUserinfoAddress").html(messvip);
                            }
                            else {
                                $("#lbUserinfoMobile").text(snapshot.val().mobile || 'Khách hàng chưa cung cấp');
                                $("#lbUserinfoEmail").text(snapshot.val().email || 'Khách hàng chưa cung cấp');
                                
                                var pos = snapshot.val().position;
                                if (pos) {
                                    $("#lbUserinfoAddress").text(pos.Address || 'Khách hàng chưa cung cấp');
                                }
                                else {
                                    $("#lbUserinfoAddress").text(snapshot.val().address || 'Khách hàng chưa cung cấp');
                                }

                            }
                            $("#lbUserinfoNhucau").text(snapshot.val().nhucau || 'Khách hàng chưa cung cấp');
                            var mucgia = snapshot.val().GIATIEN;

                            if (mucgia) {
                                $("#lbAIContent").html('<hr><b>Phân tích tự động:</b> Có vẻ khách hàng này đang quan tâm các bất động sản có mức giá trên dưới <b>' + viewGia(mucgia)) + '</b>';
                            }
                        }


                    });


                    viewListVisited(customID.val(),divList,false);
                }
                

            }



            var _signlist = $("#div-sign-visited");

            var currentDay = new Date().valueOf();
            currentDay = parseInt(currentDay/86400000);
           
    
            
            if(_signlist.attr("data-ids")){
                CHECKUSERVIP();
                signvisited(_signlist.attr("data-idlt"), _signlist.attr("data-idln"),_signlist.attr("data-idtt"),0);
                updatestatuscheck($('#user-id').val(),currentDay);
            };


            linkAccount.attr('title', user.displayName);
            
            if (_myuserName.val() != '') {
               
                $("#divnotify_dangky").hide();

                firebase.database().ref('notify/' + _myuserID.val() + '/' + getCookie("SessionGUID")).once('value', function (snapshot) {
                    var exists = (snapshot.val() == null);
                    if (exists) {
                        $("#divtooltipListChatdknhanthongbao").show();

                    }
                    else {
                        $("#divtooltipListChatdknhanthongbao").hide();
                    }

                });

            }
            else {

                $("#divtooltipListChatdknhanthongbao").hide();
                $("#divnotify_dangky").show();

                var _mobilecahed = localStorage.getItem("mobile") || sessionStorage.getItem('mobile') || '';
                var _nhucaubds = localStorage.getItem("NhuCauBDS") || '';

                $("#txtinputnhucaubds").val(_nhucaubds);

                if (localStorage.getItem("mobile"))
                {
                    $("#txtinputMobile").val(_mobilecahed);
                    binHideMobile();
                }
                else if(!isAnonymous)
                {
                    if (sessionStorage.getItem('mobile'))
                    {
                        $("#txtinputMobile").val(_mobilecahed);
                        binShowMobile();
                    }
                    else
                    {
                        firebase.database().ref('users-info/' + _myuserID.val()).once('value', function (snapshot) {
                            if (snapshot.val() && snapshot.val().mobile) {
                                mobinumber = snapshot.val().mobile;
                                sessionStorage.setItem('mobile', snapshot.val().mobile);
                                $("#txtinputMobile").val(snapshot.val().mobile);
                                binShowMobile();
                            }
                        });
                    }
                }



                //$("#ContentPlaceHolder2_DangKy1_Mobile").val(_mobilecahed);

                $('.dangky-txtmobile').attr('readonly', true);

            }
            var ContentPlaceHolder2_txtContactinfo = $("#ContentPlaceHolder2_txtContactinfo");

            if (ContentPlaceHolder2_txtContactinfo.attr('name') && ContentPlaceHolder2_txtContactinfo.val()=='') {
                
                firebase.database().ref('users-info/' + _myuserID.val()).once('value', function(snapshot) {
                    if (snapshot.val()) {
                        $("#ContentPlaceHolder2_txtContactinfo").val(snapshot.val().name+": "+snapshot.val().mobile);
                    }
                });
            }

            requestPermission();
          
        } else {
            
            firebase.auth().signInAnonymously().catch(function (error) {
               
                var errorCode = error.code;
                var errorMessage = error.message;
     
            });
            linkAccount.attr('onclick', "loadFormLogin();tooltip.pop(this, '#logincontent',{position:2,overlay:true})");
         
        }
     
    });
}

/*
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}
*/


function getCookie(cname) {
    let name = cname + "=";
    let decodedCookie = decodeURIComponent(document.cookie);
    let ca = decodedCookie.split(';');
    for (let i = 0; i < ca.length; i++) {
        let c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}


function viewGia(gia){
    if(gia<10000)
       return gia/10 + ' (Triệu đồng)';
    else
      return gia/10000 + ' (Tỷ đồng)';
}
function getlinkdangkynhanthongbao() {
    window.open('https://nhadat24h.net/dangkynhanthongbao-' + getCookie("SessionGUID") + '/' + document.getElementById('txtU').value, '_blank');
}
function logoutGG() {
    if(this.userID.val())
    {
        firebase.database().ref('notify/' + this.userID.val() + '/' + getCookie("SessionGUID")).remove();
    }
    sessionStorage.removeItem('listNotifycation');
    sessionStorage.removeItem('txtStartKeyTopicNotify');
    sessionStorage.removeItem('mobile');
    localStorage.removeItem("mobile");
    window.location = "/logout";
}

function fillImage() {
   

    var imgDefer = document.getElementsByTagName('img');
    for (var i = 0; i < imgDefer.length; i++) {
        if (imgDefer[i].getAttribute('data-src')) {
            imgDefer[i].setAttribute('src', imgDefer[i].getAttribute('data-src'));
        }
    }
   
     
}

function fillImage2(control) {
    var parent = document.getElementById(control);
    var imgDefer = parent.getElementsByTagName('img');
    for (var i = 0; i < imgDefer.length; i++) {
        if (imgDefer[i].getAttribute('data-src')) {
            imgDefer[i].setAttribute('src', imgDefer[i].getAttribute('data-src'));
        }
    }

    //var swiper = new Swiper(".swiper-container1", {
    //    effect: "cube",
    //    loop: false,
    //    grabCursor: false,
    //    cubeEffect: {
    //        shadow: false,
    //        slideShadows: true,
    //        shadowOffset: 20,
    //        shadowScale: 1,
    //    },
    //    pagination: {
    //        el: ".swiper-pagination",
    //    },
    //});
}

function loginFB() {
    provider = new firebase.auth.FacebookAuthProvider();
    provider.addScope('email');

    firebase.auth().signInWithPopup(provider).then(function (result) {
        // This gives you a Facebook Access Token. You can use it to access the Facebook API.
        var token = result.credential.accessToken;
        // The signed-in user info.
        var user = result.user.providerData[0];
        if(user==null){
            user = result.user
        }
        if (user.email != null) {
            var _email = user.email;
            var _Fullname = user.displayName;
            var _photoURL = user.photoURL
            autoLogin(_email, _Fullname, _photoURL);
        }
        else {
            if (confirm("Đăng nhập qua Facebook thất bại. Bạn có muốn đăng nhập qua Google?")) {
                loginGG();
            } 
        }
        
        // ...
    }).catch(function (error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        // The email of the user's account used.
        var email = error.email;
        // The firebase.auth.AuthCredential type that was used.
        var credential = error.credential;
        alert('Đăng nhập thất bại!' + errorCode);
    });

}

function autoLogin(email, displayName, photoURL) {
    $('#ContentPlaceHolder1_DangKy1_Email').val(email);
    $('#ContentPlaceHolder1_DangKy1_txtHT').val(displayName);
    $('#ContentPlaceHolder1_DangKy1_imgAvatar').attr('src', photoURL);
    $('#ContentPlaceHolder1_DangKy1_Hidden1').val(photoURL);
    $('#ContentPlaceHolder1_DangKy1_txtDiaChi').val($("#txtADDRESS").val());
    _2014Index.AutoLoginGG(email, displayName, photoURL, AutoLoginGG_callback);
}
function loginGG() {
    var provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('profile');
    provider.addScope('email');
    firebase.auth().signInWithPopup(provider).then(function (result) {
        var user = result.user.providerData[0];
         if(user==null){
            user = result.user
        }
        var _email = user.email;
        var _Fullname = user.displayName;
        var _photoURL = user.photoURL;
        autoLogin(_email, _Fullname, _photoURL);

    }).catch(function (error) {
        var errorCode = error.code;
        var errorMessage = error.message;
        var email = error.email;
        var credential = error.credential;
        alert('Loi dang nhap: ' + errorCode + errorMessage + email + credential);
    });

}

function AutoLoginGG_callback(e) {
    if (e.error != null) {
        alert('Loi dang nhap: ' + e.error); return
    }
    else {
        if (e.value == "1") {
            location.reload();
        }
    }
}

function LoginServerwithGG_callback(e)
{
    if (e.error != null) 
    { 
        alert('Loi dang nhap: '+ e.error); return 
    } 
    else { 
        if (e.value == "1") {
            if (window.location.pathname == '' || window.location.pathname == '/') {
                window.location.href = '/DT';
            }
            else {
                window.location.href = window.location.pathname.replace('/DKTV-', '/');
            }
        }
        else {
            $('#ContentPlaceHolder1_DangKy1_Email').focus();
           // firebase.auth().signOut();
            alert('Tài khoản email này chưa đăng ký thành viên. Bạn hãy đăng ký thành viên cho tài khoản này');
        }
    } 
}

function LoginServerwithPHONE_callback(e) {
    if (e.error != null) {
        alert('Loi dang nhap: ' + e.error); return
    }
    else {
        if (e.value == "1") {
            window.location.href = '/PRF';
        }
        else {
            $('#ContentPlaceHolder1_DangKy1_txtHT').focus();
        }
    }
}
function AutoLoginPhone_callback(e) {
    if (e.error != null) {
        alert('Loi dang nhap: ' + e.error); return
    }
    else {
        if (e.value == "1") {
            alert('Xác thực thành công.');
            window.location.reload();
        }
    }
}

function LoginServerwithPHONEDN_callback(e) {
    if (e.error != null) {
        alert('Loi dang nhap: ' + e.error); return
    }
    else {
        if (e.value == "1") {
            alert('Đăng nhập thành công.');
            window.location.reload();
        }
        else {
            alert('Số điện thoại này chưa đăng ký thành viên. Hãy đăng ký thành viên để tiếp tục.');
            $('#ContentPlaceHolder1_DangKy1_txtHT').focus();
        }
    }
}

function TimeSpan(){this.Days=0;this.Hours=0;this.Minutes=0;this.Seconds=0;this.Milliseconds=0;}
TimeSpan.prototype.toString = function(){return this.Days+'.'+this.Hours+':'+this.Minutes+':'+this.Seconds+'.'+this.Milliseconds;}
function digi(v, c){v = v + "";var n = "0000";if(v.length < c) return n.substr(0, c-v.length) + v;return v;}
function DateTime(year,month,day,hours,minutes,seconds){if(year>9999||year<1970||month<1||month>12||day<0||day>31||hours<0||hours>23||minutes<0||minutes>59||seconds<0||seconds>59)throw("ArgumentException");this.Year = year;this.Month = month;this.Day = day;this.Hours = hours;this.Minutes = minutes;this.Seconds = seconds;}
DateTime.prototype.toString = function(){return digi(this.Year,4) + digi(this.Month,2) + digi(this.Day,2) + digi(this.Hours,2) + digi(this.Minutes,2) + digi(this.Seconds,2);}
function AjaxImage(url) { var img = new Image(); img.src = url; return img; }

function validateEmail(e) { var t = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return t.test(e) }
function login() {
    if (document.getElementById("txtEmail").value == "") { document.getElementById("lbEmail").innerHTML = "Bạn cần nhập vào địa chỉ email"; document.getElementById("txtEmail").focus() } else if (!validateEmail(document.getElementById("txtEmail").value)) { document.getElementById("lbEmail").innerHTML = "Bạn cần nhập đúng địa chỉ email"; document.getElementById("txtEmail").focus(); } else if (document.getElementById("txtMatKhau").value == "") { document.getElementById("lbEmail").innerHTML = ""; document.getElementById("lbMatKhau").innerHTML = "Bạn cần nhập vào mật khẩu"; document.getElementById("txtMatKhau").focus() } else {
        document.getElementById("lbEmail").innerHTML = ""; document.getElementById("lbMatKhau").innerHTML = ""; document.getElementById("lbloading").innerHTML = "<img style='display:inline-block;width:20px;' src='/Images/ajax-loader.gif'> Loading...";
        _2014Index.LoginServer(document.getElementById("txtEmail").value, document.getElementById("txtMatKhau").value, true, LoginServer_callback)
    }
}
function LoginServer_callback(e) { if (e.error != null) { alert(e.error); return } else { if (e.value == "1") { window.location = "/DT" } else { document.getElementById("divMess").innerHTML = e.value; document.getElementById("lbloading").innerHTML = "" } } }

function initializeGMAP(Lat, Lon) { var o, e = new google.maps.Geocoder, a = new google.maps.LatLng(Lat, Lon), n = (new google.maps.InfoWindow, { zoom: 17, mapTypeId: google.maps.MapTypeId.ROADMAP }); o = new google.maps.Map(document.getElementById("property_map"), n), e.geocode({ location: a }, function (e, a) { if (a == google.maps.GeocoderStatus.OK) { o.setCenter(e[0].geometry.location); { new google.maps.Marker({ map: o, position: e[0].geometry.location }) } } else alert("Geocode was not successful for the following reason: " + a) }) }

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[#&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

function checkIfUserExists(parent, child) {
    var usersRef = firebase.database().ref(parent);
    var exists = false;
    usersRef.child(child).once('value', function (snapshot) {
        exists = (snapshot.val() !== null);
        //alert(exists);
        return exists;
    });
    //  
}
    function timesnaptoDate(timesnap) {
        if (timesnap != null) {
            var date = new Date(timesnap * 1);
            // Hours part from the timestamp
            var hours = date.getHours();
            // Minutes part from the timestamp
            var minutes = date.getMinutes();
            // Seconds part from the timestamp
            var seconds = "0" + date.getSeconds();
            var milliseconds = new Date().getTime();
            var _subtime =Math.round((milliseconds - timesnap)/1000)
            // Will display time in 10:30:23 format
            if (_subtime <= 60) {
                return "Vừa xong";
            }
            else if (_subtime <= 3600) {
                return Math.round(_subtime / 60) + " Phút trước";
            }
            else if (_subtime <= 86400) {
                return "Khoảng " + Math.round(_subtime / 3600) + " giờ trước";
            }
            else
                return date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear() + ", lúc: " + hours + ':' + minutes;
        }
        else {
            return "";
        }


    }

    function guid() {
        function s4() {
            return Math.floor((1 + Math.random()) * 0x10000)
              .toString(16)
              .substring(1);
        }
        return s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4();
    }

    function removemess(topicid,subtopicid, messid) {
        //this.parentElement.style.display = 'none';
        firebase.database().ref(topicid + '/' + subtopicid + '/' + messid).remove();
    }
function binchatHotroRandom() {
    //377080

    var myArrayID = ['146005', '259053'];

    var today = new Date();
    var time = today.getHours();
    if (time >= 18) {
        myArrayID = ['146005','259053'];
    }
    var rand = myArrayID[Math.floor(Math.random() * myArrayID.length)];

    var me = $("#user-id").val();
        if (me) {
            firebase.database().ref('users-info/' + me + '/idHotro').once('value', function (snapshot) {
                var _idHotro = (snapshot.val());
                if(_idHotro){
                    binTopicChat(_idHotro);
                }
                else{

                    firebase.database().ref('users-info/' + me + '/idHotro').set(rand);

                    if ($.isNumeric(me)) {
                        firebase.database().ref('danhsachkhachhangtuvan/' + rand +'/'+ me).set({
                            TIME: firebase.database.ServerValue.TIMESTAMP
                        });

                    }
                    binTopicChat(rand);

                }
            });
        }
        
}
$("#divloadingnvhotro").click(function () {
    binchatHotroRandom();
});
function binchatHotro() {
    var me = $("#user-id").val();
    firebase.database().ref('users-info/' + me + '/idHotro').once('value', function (snapshot) {
            var _idHotro = (snapshot.val());
            if (_idHotro) {
                var myArrayID = ['146005', '259053'];
                var inHotro = myArrayID.includes(_idHotro.toString());

                if (inHotro) {
                    $('#txtIDcare').val(_idHotro);
                    firebase.database().ref('users-info/' + _idHotro).once('value', function (snapshot2) {
                        $("#divloadingnvhotro").html("<table> <tbody><tr><td class=\"mnSbMainImage\"><img src=\"" + snapshot2.child('avatar').val() + "\" src=\"" + snapshot2.child('avatar').val() + "\"></td><td class=\"mnSbContent\"><span class=\"mnSbTitle\">" + snapshot2.child('name').val() + "</span><span class=\"mnSbContent\"><div class=\"pnchat1\"><div><i class=\"fa fa-phone\"></i> <a title=\"Gọi cho " + snapshot2.child('name').val() + "\" href=\"tel:" + snapshot2.child('mobile').val() + "\">" + snapshot2.child('mobile').val() + "</a></div><div>Xin chào <strong>" + $("#user-name").val().toUpperCase() + "</strong>. Em là nhân viên hỗ trợ riêng của Anh/Chị. Rất hân hạnh được hỗ trợ.</div></div></span></td></tr></tbody></table>");
                    });
                }
                else {
                    firebase.database().ref('users-info/' + me + '/idHotro').remove();
                    firebase.database().ref('danhsachkhachhangtuvan/' + _idHotro + '/' + me).remove();
                }
            }
            else {
                //binchatHotroRandom();
            }

        });
       
        if ($(window).width() > 583) {
            $(document).ready(function () {
                $.smallBox({
                    position: 4,
                    color:"#FFFF",
                    title: "Hỗ trợ 24/7",
                    content: "<div class='pnchat1'> Hỗ trợ đăng tin, đăng quảng cáo, đặt banner, nạp gold, viết bài vvv...</div>",
                    width: 280,
                    delay: 1,
                    //icon: "/images/2016/chat-50.png",
                    img: '/Upload/User/Avatar/Thumbnai/db94307d-9cdd-4569-8f2e-3f67228c24d0.png',
                    sound: false,
                    }, function (action, button) {
                        binchatHotroRandom();

                });
            });
        }
        else {
        }
    }


    function getListkhachhangtiemnang(id_n, loaitin, loainha, id_tt, id_qq, kv)
    {
        
        $("#divGoiydstiemnangContent").html('Loading...');
        _2014Index.getListkhachhangtiemnang(id_n, loaitin,  loainha,  id_tt, id_qq, kv,getListkhachhangtiemnang_callback);

    }

    function getListkhachhangtiemnang_callback(response) {
        if (response.error != null) {
            return;
            isBusy = false;
        }
        else {
            if(response.value)
            {
                $("#divGoiydstiemnangContent").html(response.value);
            }
        }
    }

    function binTopicChatVIP(you) {
        if(Math.floor($("#user-id").val()) == $("#user-id").val() && $.isNumeric($("#user-id").val()))
        {
            if(Number(sessionStorage.getItem("numvip"))>0&&you)
            {
                binTopicChat(you);
            }
            else
            {
                $.metroMessageBox({
                    content: "<img src=\"/Images/2018/warning-100.png\"><br/><br/>Để sử dụng chức năng này bạn cần duy trì tối thiểu 01 tin V.I.P Xanh.",
                    defaultbutton: 1,
                    buttons: ["Đăng tin", "Xem bảng giá tin VIP", "Thoát"],
                }, function (action, buttom, value, selectedText) {
                    if (buttom == "Thoát") {
                        
                    }
                    else if (buttom == "Đăng tin"){
                        window.open(
                          '/DT',
                          '_blank'
                        );
                    }
                    else{
                        window.open(
                          '/baogiavip',
                          '_blank' 
                        );
                    }
                });

               
            }
        }
        else
        {
            
            $.metroMessageBox({
                    content: "Để sử dụng chức năng này bạn cần duy trì tối thiểu 01 tin V.I.P Xanh.",
                    defaultbutton: 1,
                    buttons: ["Đăng nhập", "Đăng ký thành viên", "Thoát"],
                }, function (action, buttom, value, selectedText) {
                    if (buttom == "Thoát") {
                        
                    }
                    else if (buttom == "Đăng nhập"){
                        $("#abtnLoginHome").trigger("click");
                    }
                    else{
                        window.location.href = "/DKTV-batkhach";
                    }
                }); 

        }
    }
    function binViewUserInfo(UID) {
        var _mess = "Chức năng này cho phép bạn xem trước thông tin như: (Số điện thoại, địa chỉ) của khách hàng này (Nếu đã được khách hàng đồng ý cho phép và cung cấp), cũng như xem lại tất cả các đường link mà khách hàng này đã truy cập.";
        if(Math.floor($("#user-id").val()) == $("#user-id").val() && $.isNumeric($("#user-id").val()))
        {
            $.metroSidePanel({
                position: 2,
                iframe: '/viewinfokhachhang?idUser=' + UID,
                width: 500,
                backgroundcontent: "#4d636f",
                fa: "fa-star-o",
                blocked: false,
            });
            $.smallBoxKill();

            //if(Number(sessionStorage.getItem("numvip"))>0)
            //{
                
            //}
            //else
            //{
            //   $.metroMessageBox({
            //       content: "<img src=\"/Images/2018/warning-100.png\"><br/><br/>" + _mess +" Bạn cần phải là thành viên VIP mới sử dụng được chức năng này. ( Để trở thành thành viên VIP bạn chỉ phải duy trì tối thiểu 01 tin từ VIP Xanh trở lên. )",
            //        defaultbutton: 1,
            //        buttons: ["Đăng tin", "Xem bảng giá tin VIP", "Thoát"],
            //    }, function (action, buttom, value, selectedText) {
            //        if (buttom == "Thoát") {
                        
            //        }
            //        else if (buttom == "Đăng tin"){
            //            window.open(
            //              '/DT',
            //              '_blank'
            //            );
            //        }
            //        else{
            //            window.open(
            //              '/baogiavip',
            //              '_blank' 
            //            );
            //        }
            //    });  
            //}

        }
        else
        {
            $.metroMessageBox({
                    content: _mess+" Bạn cần đăng nhập mới sử dụng được chức năng này!",
                    defaultbutton: 1,
                    buttons: ["Đăng nhập", "Đăng ký thành viên", "Thoát"],
                }, function (action, buttom, value, selectedText) {
                    if (buttom == "Thoát") {
                        
                    }
                    else if (buttom == "Đăng nhập"){
                        $("#abtnLoginHome").trigger("click");
                    }
                    else{
                        window.location.href = "/DKTV-batkhach";
                    }
                }); 

        }

    }
   
function binTopicChat(you) {

    console.log("caller is " + binTopicChat.caller);


    var _user = firebase.auth().currentUser;
    var idgg = _user.uid;

    if (_user.isAnonymous) {

        AuthenButton(0, idgg, 0);
        return
        
    }
    else {
        if ($("#user-id").val() != '') {

            var me = $("#user-id").val();

            database.ref('chat-list/' + me + '/' + you).once('value', function (snapshot) {

                var _topic = (snapshot.val() == null);

                var _topicID = guid();

                if (_topic) {
                    firebase.database().ref('chat-list/' + me + '/' + you).set({
                        topicID: _topicID,
                    });
                    firebase.database().ref('chat-list/' + you + '/' + me).set({
                        topicID: _topicID,
                    });
                }
                else {
                    _topicID = snapshot.child('topicID').val();
                }
                if (you == "521649") {
                    this.database.ref('assistants/' + _topicID).set({
                        AsstId: "asst_Uuv5iY8Mie2yUMET3Xdwc9Qg",
                        Name: "",
                        num: 100,
                        Instructions: 'Bạn là trợ lý ảo chuyên tư vấn về bất động sản, tên của bạn là: Nhadat24h.net A.I',
                        TIME: firebase.database.ServerValue.TIMESTAMP
                    });
                }
                var _linkchat = '/chatroom-chatthanhvien-ida' + you + '-subtopic' + _topicID;

                $("#butClose").attr("ida", you);
                $("#butClose").attr("subtopic", _topicID);
                $("#butClose").attr("typetopic", "chatthanhvien");
                var _width;

                if ($(window).width() <= 250) {

                    window.open(_linkchat, '_blank');
                }
                else {

                    _width = $(window).width() * .9;

                    if (_width > 700) {
                        _width = 700;
                    }

                    // event.preventDefault();

                    $.metroSidePanel({
                        iframe: _linkchat,
                        width: _width,
                        backgroundcontent: "#2d3e52",
                        fa: "fa-star-o",
                        blocked: true,
                    });
                    $.smallBoxKill();
                  //  $("#butClose").removeClass('cssbutCloseHide').addClass('cssbutCloseShow');
                    $("#mcttCloseButton").trigger("click");
                }

            });

        }
    }

}
function binCallMobile(idu, mobile) {
        firebase.database().ref('users-topic/' + idu + '/' + mobile).once('value', function (snapshot) {
            firebase.database().ref('users-topic/' + idu + '/' + mobile).set({
                ACTION: 3,
                //topicID: this.SubChatTopicID.value,
                IDA: snapshot.child("IDA").val(),
                IMGTHUMBNAI: snapshot.child("IMGTHUMBNAI").val(),
                TTITLE: snapshot.child("TTITLE").val(),
                TITLE: snapshot.child("TITLE").val(),
                READ: 1,
                MOBILE: snapshot.child("MOBILE").val(), 
                LINK: snapshot.child("LINK").val(),
                TIME: firebase.database.ServerValue.TIMESTAMP
            });

        });
        $.metroMessageBox({
            content: "Khách hàng có số điện thoại: " + mobile + " yêu cầu được bạn gọi điện tư vấn về bất động sản này.",
            buttons: ["Gọi ngay","Phân tích tin", "Thoát"],
            icons: ["fa fa-phone","fa fa-area-chart","fa fa-close"],
            defaultbutton: 1,
            blockpage: false,
        }, function (action, buttom, value, selectedText) {
            //Do something here
            if (buttom == "Gọi ngay") {
                window.location.href = 'tel:' + mobile;
            }
            else if (buttom == "Phân tích tin") {
                var idn = $('#txtN').val();
                window.location.href = "/analytic#id="+idn;
            }
            else if (buttom == "Thoát") {

            }

            //  alert( action + ' ' + button + ' ' + value  );
        });
    }

    function binChucmungEventClick(idTin, numclick) {
        $.metroMessageBox({
            title: "Xin chúc mừng bạn!",
            content: "Tin đăng này của bạn đã đạt : " + numclick + " lượt xem. Bạn có thể mua tin VIP để tăng hiệu quả hơn. Để xem những ai đã vào đọc tin này xin click vào nút Phân tích tin.",
            buttons: ["Mua tin VIP","Phân tích tin", "Thoát"],
            icons: ["fa fa-shopping-cart","fa fa-area-chart","fa fa-close"],
            defaultbutton: 1,
            blockpage: false,
        }, function (action, buttom, value, selectedText) {
            //Do something here
         //   createFirework(25,187,5,1,null,null,null,null,false,true);
         //   createFirework(66,139,4,5,1,1,97,96,true,true);
         //   createFirework(38,128,2,null,49,2,50,100,false,true);
            if (buttom == "Mua tin VIP") {
                window.location.href = '/VPN-2-'+idTin;
            }
            else if (buttom == "Phân tích tin") {
                window.location.href = '/analytic#id='+idTin;
            }
            else if (buttom == "Thoát") {

            }

            //  alert( action + ' ' + button + ' ' + value  );
        });
    }

    function welcomeAnalyticTin(IDUser) {
     
        firebase.database().ref('users-topic/'+$("#user-id").val()+'/'+$("#txtN").val()+'/READ').set(1);
       
        $.metroMessageBox({
            content: "Tin đăng này của bạn vừa có một lượt xem mới từ khách hàng. Để xem những ai đã vào đọc tin này xin click vào nút Phân tích tin này.",
            buttons: ["Phân tích tin này", "Chat riêng với KH này","Chat công khai trong chủ đề này", "Thoát"],
            icons: ["fa fa-area-chart", "fa fa-comment-o", "fa fa-comments-o","fa fa-times"],
            defaultbutton: 1,
            blockpage: false,
        }, function (action, buttom, value, selectedText) {

            
                if (buttom == "Phân tích tin này") {
                var idn = $('#txtN').val();
                window.location.href = '/analytic#id='+idn;
                }
                else if (buttom == "Chat riêng với KH này") {
                    var _analytic_idu = getParameterByName('analytic_idu');
                    binTopicChat(_analytic_idu);
                }

                else if (buttom == "Chat công khai trong chủ đề này") {
                    $("#btnclickpopchattopic").trigger("click");
                }
                else if (buttom == "Thoát") {
                
                }

            //  alert( action + ' ' + button + ' ' + value  );
        });
    }

            const messaging = firebase.messaging();
            messaging.onMessage(function(payload) {
            console.log('Message received. ', payload);
          });



            function resetUI_TOKEN() {
            
                messaging.getToken()
                    .then(function(currentToken) {
                        if (currentToken) {
                            sendTokenToServer(currentToken);
                        } else {
                            console.log('No Instance ID token available. Request permission to generate one.');
                            setTokenSentToServer(false);
                        }
                    })
                    .catch(function(err) {
                        console.log('An error occurred while retrieving token. ', err);

                        setTokenSentToServer(false);
                    });
            }
            
            function sendTokenToServer(currentToken) {
                console.log('0' + currentToken);
                var BrowserID = getCookie("SessionGUID");
                var _UserID = document.getElementById('user-id').value;

                if (!isTokenSentToServer()) {

                    if(this.auth.currentUser){
                        if(_UserID.match(/^\d+$/))
                        {
                            
                            firebase.database().ref('notify/' + this.auth.currentUser.uid + '/' + BrowserID).remove();

                            firebase.database().ref('notify/' + _UserID).once('value').then(function (snapshot) {
                            
                                if (snapshot.val() == null || (snapshot.child("TOKENID").val() != currentToken)) {

                                    firebase.database().ref('notify/'+ _UserID +'/'+ BrowserID ).set({
                                        TOKENID: currentToken,
                                        TIME: firebase.database.ServerValue.TIMESTAMP
                                    });

                                }
                            
                            });
                        }
                        else{
                             firebase.database().ref('notify/' + this.auth.currentUser.uid ).once('value').then(function (snapshot) {
                            
                                if (snapshot.val() == null || (snapshot.child("TOKENID").val() != currentToken)) {

                                    firebase.database().ref('notify/'+ this.auth.currentUser.uid  +'/'+ BrowserID ).set({
                                        TOKENID: currentToken,
                                        TIME: firebase.database.ServerValue.TIMESTAMP
                                    });

                                }
                            
                            });

                        }

                        setTokenSentToServer(true);
                    }

                } 

                else {


                    var database = firebase.database();

                    if(_UserID.match(/^\d+$/))
                    {
                       
                        firebase.database().ref('notify/' + this.auth.currentUser.uid + '/' + BrowserID).remove();
                    }
                    
                    database.ref('notify/' + _UserID+'/'+BrowserID).once('value', function (snapshot) {

                        if (snapshot.val() == null || (snapshot.child("TOKENID").val() != currentToken)) {

                             firebase.database().ref('notify/'+ _UserID  +'/'+ BrowserID ).set({
                                TOKENID: currentToken,
                                TIME: firebase.database.ServerValue.TIMESTAMP
                            });

                        }
                      
                        /*
                        
                        if(snapshot.val() == null)
                        {
                            loadthongbao("Cấp lại TokenID","Thiết bị của bạn chưa được cấp TOKENID xin hãy cấp TOKENID để đăng ký nhận thông báo");
                        }
                        else
                        {
                            if(snapshot.child("TOKENID").val() != currentToken)
                            {
                                loadthongbao("TOKENID hết hiệu lực","TokenID của bạn đã hết hiệu lực hoặc bị thay đổi, xin hãy cấp lại TokenID để tiếp tục nhận thông báo cho tài khoản này");
                            }
                        }
                        */
                    });

                }

            }
           
            function deleteToken() {

             var UserID = document.getElementById('user-id').value;
                 if(UserID.match(/^\d+$/)){
                    messaging.getToken()
                    .then(function(currentToken) {
                        messaging.deleteToken(currentToken)
                        .then(function() {
                            setTokenSentToServer(false);
                            resetUI_TOKEN();
                        })
                        .catch(function(err) {
                            console.log('Unable to delete token. ', err);
                        });
                        // [END delete_token]
                    })
                    .catch(function(err) {
                        console.log('Error retrieving Instance ID token. ', err);

                    });
                }
                

            }

            function isTokenSentToServer() {
                if (window.localStorage.getItem('sentToServer') == 1) {
                    return true;
                }
                return false;
            }

            function setTokenSentToServer(sent) {
                if (sent) {
                    window.localStorage.setItem('sentToServer', 1);
                } else {
                    window.localStorage.setItem('sentToServer', 0);
                }
            }

            function requestPermission() {
                if (botCheck()) {
                    return;
                }
                if(this.auth.currentUser){
                    
                     messaging.requestPermission()
                    .then(function() {
                        resetUI_TOKEN();
                    })
                    .catch(function(err) {
                        $("#messHiden").show("slow");
                        console.log('Unable to get permission to notify.', err);
                    });

                }
                else{
                     
                     if(this.auth.currentUser){
                        console.log('Chua dang nhap, UID 1: '+ this.auth.currentUser.uid);
                     }
                }
            }
let __geocoder;

function getLocation() {
    if (botCheck()) {return;}
    if (navigator.geolocation) {
        var uid = $("#user-id").val();

        if (!uid) {
            uid = localStorage.getItem('firebasecurrentUser') || firebase.auth().currentUser.uid;
        }

        navigator.geolocation.getCurrentPosition(
            function (position) {
                codeLatLng(position.coords.latitude, position.coords.longitude, true, uid);
            },
            function errorCallback(error) {
            },
            {
                maximumAge: Infinity,
                timeout: 5000
            }
        );
    }
}
function codeLatLng(lat, lng, isUpdatePosition,uid) {
    var _AddressUser = '';
    if(sessionStorage.getItem('AddressUser')){
        _AddressUser = sessionStorage.getItem('AddressUser');
        console.log('codeLatLng' + _AddressUser);
    }
    else{
        try {
            __geocoder = new google.maps.Geocoder();
            var latlng = new google.maps.LatLng(lat, lng);
            __geocoder.geocode({
                'latLng': latlng
            }, function (results, status) {
                if (status === google.maps.GeocoderStatus.OK) {
                    if (results[0]) {
                        _AddressUser = results[0].formatted_address;
                        if (typeof (Storage) !== "undefined") {

                            sessionStorage.setItem('AddressUser', _AddressUser);
                            localStorage.setItem("id_tt", getID_TT(_AddressUser));

                            if (isUpdatePosition) {
                                firebase.database().ref('users-info/' + uid + '/position/Address').set(_AddressUser);
                            }

                        }
                    }
                }
                else {
                    sessionStorage.setItem('AddressUser', '...');
                }
            });
        }
        catch (error) {
            sessionStorage.setItem('AddressUser', '...');
        }
        finally {

            localStorage.setItem("staticlocalLat", lat.toString());
            localStorage.setItem("staticlocalLng", lng.toString());

            localStorage.setItem("localLat", lat.toString());
            localStorage.setItem("localLng", lng.toString());
        }
    }
    if (uid)
    {
        if (sessionStorage.getItem('AddressUser')) {
            _AddressUser = sessionStorage.getItem('AddressUser');
        }

        $("#txtADDRESS").val(_AddressUser);
        $("#iconnearme").css("color", "#0a8ade");
        var IDN = $("#txtN").val();

        if(IDN){
            firebase.database().ref('analytic-tin/'+$("#IDAChat").val()+'/'+$("#txtN").val()+'/'+uid+'/visited').limitToLast(1).once("child_added", function (snapshot) {
                if(snapshot.key!=null&&snapshot.key!='')
                {
                    firebase.database().ref('analytic-tin/'+$("#IDAChat").val()+'/'+IDN+'/'+uid+'/visited/'+snapshot.key+'/ADDRESS').set(_AddressUser);
                }
            });
        }
    }
}

function myTimer() {
    var d = new Date();
    //createFirework(25,187,5,1,null,null,null,null,false,true);
    //console.log(d.toLocaleTimeString());
};

function getTopListSearch_callback(response) {
    if (response.error != null) {
        //alert(response.error);
        return;
    }
    if (response.value) {
        $("#divtoplistketquatimkiem").html(response.value);
        localStorage.setItem("holder-ketquatimkiem", $("#divtoplistketquatimkiem").html());
    }
    else {
        $("#divtoplistketquatimkiem").html("Không tìm thấy danh mục tìm kiếm cho từ khoá: \"" + $(".inputNewTimKiemTOP").val() + "\". Có thể bạn chưa chọn đúng tỉnh thành, hãy thử chọn tỉnh thành khác.");
    }
}

function binCachedKeyWord(KeyWord, input, control) {
    var _sgs = document.querySelector("#" + control);
    if (!_sgs)
        return;
    document.getElementById(control).innerHTML = "";
    if (localStorage.getItem(KeyWord)) {
        var strCached = localStorage.getItem(KeyWord);

        if (strCached.indexOf(',') > 0) {
            var arrayCached = strCached.split(',');
            arrayCached.forEach(element =>
                document.getElementById(control).innerHTML += "<li data-key=\"" + element + "\"><a title=\"Tìm kiếm với từ khóa: " + element +"\">\"" + element + "\"</a><i class=\"fa fa-times remove\"></i></li>"
            );
        }
        else {
            document.getElementById(control).innerHTML += "<li data-key=\"" + strCached + "\"><a>\"" + strCached + "\"</a><i class=\"fa fa-times remove\"></i></li>"
        }
    }
    else {
        $("#no-result" + KeyWord).css('display', 'flex');
        $("#" + control).hide();
    }
    $("." + control + " li a").click(function () {
        var textSearch = $(this).parent().attr("data-key");
        $("#" + input).val(textSearch);
        _2014Index.getListLinkSearch($("#txtLoaiTin").val() || 1, 0, $("#txtTT").val() || 0, 0, 0, textSearch, getTopListSearch_callback);
    });

    $("." + control + " .remove").click(function () {
        var paa = $(this).parent();
        removeCachedKeyWord(paa.attr("data-key"), KeyWord);
        paa.fadeOut(50);
    });
}

function removeCachedKeyWord(KeyWord, listKeyWord) {
    if (typeof (Storage) !== "undefined") {

        if (localStorage.getItem(listKeyWord)) {
            var strCached = localStorage.getItem(listKeyWord);

            if (strCached.indexOf(',') <= 0) {
                localStorage.removeItem(listKeyWord);
            }
            else {
                var arrayCached = strCached.split(',');

                const index = arrayCached.indexOf(KeyWord);
                if (index > -1) {
                    arrayCached.splice(index, 1);
                }
                localStorage.setItem(listKeyWord, arrayCached.toString());
            }

        }


    }
}

function AddCachedKeyWord(KeyWord, key) {
    if (typeof (Storage) !== "undefined") {

        if (!localStorage.getItem(key)) {
            localStorage.setItem(key, KeyWord);
            return;
        }
        var strCached = localStorage.getItem(key);

        var arrayCached = strCached.split(',');

        const index = arrayCached.indexOf(KeyWord);
        if (index > -1) {
            arrayCached.splice(index, 1);
        }
        arrayCached.unshift(KeyWord);
        localStorage.setItem(key, arrayCached.toString());

    }
}


var keyGG ='AIzaSyA0i8NZAQsf47TtyyQOQENAWr40IOdoIdw';
var lastScrollTop = 0;

$(window).scroll(function () {

    var height = $(window).scrollTop();
    if (height > 100&&lastScrollTop>height) {
        $('#back2Top').fadeIn();
    } else {
        $('#back2Top').fadeOut();
    }

    lastScrollTop = height;
    sessionStorage.setItem("sslastScrollTop", lastScrollTop);

    var noibat = $("#key_table_nhadatnoibat_");
    if (noibat.attr("id") && $(window).width() <= 583) {
        var hT = noibat.offset().top,
            hH = noibat.outerHeight(),
            wS = $(this).scrollTop();

        if (wS > (hT + hH - height)) {
            $('#divpanelMobile').fadeOut();
        }
        else {
            $('#divpanelMobile').fadeIn();
        }
    }

});

window.CallParentQuanTam = function (style, idn, idu, tieude, href, IDA, address) {
    QuanTam(style, idn, idu, tieude, href, IDA, address);
};

window.CallRemoveTopic = function (topicid) {

    var delayInMilliseconds = 2000; //1 second
    $("#butClose").trigger("click");
    setTimeout(function () {
        removeTopicchat(topicid);
    }, delayInMilliseconds);
};

window.CallGiaitannhom = function (topicid) {

    var delayInMilliseconds = 2000; //1 second
    $("#butClose").trigger("click");
    setTimeout(function () {
        Giaitannhom(topicid);
    }, delayInMilliseconds);
};


window.CallParentDangKy = function (__mobile) {
    var _mobile = __mobile || localStorage.getItem("mobile") || sessionStorage.getItem('mobile') ||'';
    if (_mobile) {
        $(".dangky-txtmobile").val(_mobile);
        if (_mobile == '') {
            $('.dangky-txtmobile').attr('readonly', false);
        };
        _2014Index.LoginServerwithGG(_mobile, LoginServerwithPHONE_callback);
    }
};


window.CallParentDatMua = function () {
    var _mobile = sessionStorage.getItem('mobile') || localStorage.getItem("mobile") || '';  
    $(".dangky-txtmobile").val(_mobile);
    $(".ip-txt-reg").attr('readonly', false);
    $("#frmdatmua_TextBox2").attr('readonly', false);
    $("#frmdatmua_txtHT").focus();
    if (_mobile == '') {
        $('.dangky-txtmobile').attr('readonly', false);
    };
};

window.CallParentDangNhap = function (__mobile) {
    var _mobile = __mobile || sessionStorage.getItem('mobile') || localStorage.getItem("mobile") || '';
    if (_mobile) {
        $(".dangky-txtmobile").val(_mobile);
        if (_mobile == '') {
            $('.dangky-txtmobile').attr('readonly', false);
        };
        _2014Index.AutoLoginPhone(_mobile, LoginServerwithPHONEDN_callback);
    }
};

window.CallautoLogin = function (__mobile) {
    var _mobile = __mobile || sessionStorage.getItem('mobile') || localStorage.getItem("mobile") || '';
    if (_mobile) {
        _2014Index.AutoLoginPhone(_mobile, AutoLoginPhone_callback);
    }
   
};

window.CallCloseAllSlider = function (id) {
    $.sidePanelKill();
    $("#butClose").removeClass('cssbutCloseShow').addClass('cssbutCloseHide');
};

window.addEventListener('load', function () {

    var userAgent = navigator.userAgent || navigator.vendor || window.opera;
      
    if (/android/i.test(userAgent)) {
            $("#btndownloadappANDROID").click(function(){
                //setTimeout(function () { window.location = "https://play.google.com/store/apps/details?id=com.companyname.xpro4"; }, 100);
                //location.href ="urlschemetest://testurl";
            });
            $('#btndownloadappIOS').css("display", "none");//.html("<i class=\"fa fa-android\"></i> Mở ứng dụng");

        }
    else if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)
    {
        $('#btndownloadappANDROID').css("display", "none");
    }
    else{
            $('#btndownloadappANDROID').css("display", "inline-block");
            $('#btndownloadappIOS').css("display", "inline-block");
    }


        $('.promo--left').css('background-image', 'url(/upload/banner/2018/app_promo_home.jpg)');
        this.numcomment =0;

        if($("#atagLinkDuan").attr("href")!=null){
            $("#divViewDuan").html("<a class=\"lb-alink\" href='"+ $("#atagLinkDuan").attr("href") +"'>Xem thông tin dự án<a/>");
        }

        $("#divtooltipListChatdknhanthongbao").hide();
        this.database = firebase.database();
        this.storage = firebase.storage();
        this.userID = $('#user-id');//document.getElementById('user-id');


        this.liChat = $('#li-top-Chat');
        this.userName =  $('#user-name');//document.getElementById('user-name');
        this.userPic = $('#topAvatarUser');//document.getElementById('topAvatarUser');
        this.linkAccount = $('#linkAccount');
        // Initiates Firebase auth and listen to auth state changes.
        try{
            this.auth = firebase.auth();
            onAuthStateChanged();
        }
        catch(err) {
            console.log(err.message)
        }

        var _callback = getParameterByName('callback');
        var _event_click = getParameterByName('event_click');
        var _analytic_idu = getParameterByName('analytic_idu');

        var _xemsotk = getParameterByName('xemsotk');

        if(_xemsotk != null){
             $("#btnChuyenKhoanTrucTiep").trigger("click");
        }

        var _phaohoa = getParameterByName('phaohoa');
        
        if(_phaohoa != null){

            var myVar = setInterval(myTimer, 1000);
        }
        else if (_callback != null) {
            var IDA = $('#IDAChat').val();
            binCallMobile(IDA, _callback);
        }
        else if (_event_click != null) {
            var IDTin = $('#txtN').val();
            binChucmungEventClick(IDTin, _event_click);
          //  createFirework(72,180,3,5,null,null,null,null,false,true);
        }
        else if (_analytic_idu != null) {
            welcomeAnalyticTin(_analytic_idu);
        }

        var idn = $('#txtN').val();
        if (idn != null) {
            //firebase.database().ref('yeucaugoilai/' + idn).once("value", function (snapshot) {
            //    var num = snapshot.numChildren();
            //    $("#numgoilai").text(num);
            //    if (num > 0) {
            //        $(".thongbaostatus span").text(' '+num+ ' ');
            //        $(".thongbaostatus").show();
            //    }

            //});

            firebase.database().ref('assistants/' + idn).once("value", function (snapshot) {
                var num = snapshot.numChildren();
                if (num > 0) {
                    $("#showAssts").html('<i class=\"fas fa-headset\"></i>Tin đăng đươc trợ lý ảo hỗ trợ 24/7 qua chat');
                    /*$(".thongbaostatus").show();*/
                }

            });
        }


        window.onbeforeunload = function () {

            $.sidePanelKill();
            
            $("#butClose").removeClass('cssbutCloseShow').addClass('cssbutCloseHide');

            
               
        }

    var imgDefer = document.getElementsByTagName('img');
    for (var i = 0; i < imgDefer.length; i++) {
        if (imgDefer[i].getAttribute('data-src')) {
            imgDefer[i].setAttribute('src', imgDefer[i].getAttribute('data-src'));
        }
    }
    
    binPrecommand();

    

    if (jQuery().swipebox) {
        $(".swipebox").swipebox();
        $(".swipebox2").swipebox();
    }

    var typeWriterElement = document.getElementById('inputtopsearch');

    // The TextArray:
    var textArray = ["vinhomes ocean park", "thanh xuân", "quận 1","hà đông", "binh duong", "da nang", "chung cu", "biet thu", "dưới 1 tỷ","quận cầu giấy"];
    var runtyting = true;
    // You can also do this by transfering it through a data-attribute
    // var textArray = typeWriterElement.getAttribute('data-array');

    function shuffle(array) {
        let currentIndex = array.length, randomIndex;

        // While there remain elements to shuffle.
        while (currentIndex > 0) {

            // Pick a remaining element.
            randomIndex = Math.floor(Math.random() * currentIndex);
            currentIndex--;

            // And swap it with the current element.
            [array[currentIndex], array[randomIndex]] = [
                array[randomIndex], array[currentIndex]];
        }

        return array;
    }

    textArray = shuffle(textArray);

    function delWriter(text, i, cb) {
        if (runtyting) {
            if (i >= 0) {
                typeWriterElement.placeholder = text.substring(0, i--);
                // generate a random Number to emulate backspace hitting.
                var rndBack = 10 + Math.random() * 50;
                setTimeout(function () {
                    delWriter(text, i, cb);
                }, rndBack);
            } else if (typeof cb == 'function') {
                setTimeout(cb, 100);
            }
        }
        
    };

    function typeWriter(text, i, cb) {
        if (runtyting) {
            if (i < text.length + 1) {
                typeWriterElement.placeholder = text.substring(0, i++);
                // generate a random Number to emulate Typing on the Keyboard.
                var rndTyping = 50 - Math.random() * 50;
                setTimeout(function () {
                    typeWriter(text, i++, cb)
                }, rndTyping);
            } else if (i === text.length + 1) {
                setTimeout(function () {
                    delWriter(text, i, cb)
                }, 3000);
            }
        }
    };
    function StartWriter(i) {
        
        if (typeof textArray[i] == "undefined") {
            setTimeout(function () {
                StartWriter(0)
            }, 100);
        } else if (i < textArray[i].length + 1) {
            typeWriter(textArray[i], 0, function () {
                StartWriter(i + 1);
            });
        }
    };

    StartWriter(0);

    typeWriterElement.addEventListener("focusin", (event) => {
        typeWriterElement.placeholder = 'Tìm nhanh. VD: Vinhomes Ocean Park';
        runtyting = false;

        typeWriterElement.addEventListener("focusout", (event) => {
            runtyting = true;
        });
    });

    var KeyWordXuHuong = ["chung cư", "chung cư hà nội", "chung cư tphcm"];

    KeyWordXuHuong.forEach((XuHuong) => {
        document.getElementById("listKeyWordXuHuong").innerHTML += "<li data-key=\"" + XuHuong + "\"><a>\"" + XuHuong + "\"</a></li>"
    });

    var txtPhuong = $("#txtPhuong").val();
    if (txtPhuong > 0) {
        $("#btnselectphuong_" + txtPhuong).addClass("active");
    }
    var txtQuan = $("#txtQuan").val();
    if (txtQuan > 0) {
        $("#btnselectquan_" + txtQuan).addClass("active");
    }
});;
// Ion.RangeSlider, 2.3.1, Â© Denis Ineshin, 2010 - 2019, IonDen.com, Build date: 2019-12-19 16:56:44
!(function (i) {
    ("undefined" != typeof jQuery && jQuery) || "function" != typeof define || !define.amd
        ? ("undefined" != typeof jQuery && jQuery) || "object" != typeof exports
            ? i(jQuery, document, window, navigator)
            : i(require("jquery"), document, window, navigator)
        : define(["jquery"], function (t) {
              return i(t, document, window, navigator);
          });
})(function (a, c, l, t, _) {
    "use strict";
    var i,
        s,
        o = 0,
        e = ((i = t.userAgent), (s = /msie\s\d+/i), 0 < i.search(s) && s.exec(i).toString().split(" ")[1] < 9 && (a("html").addClass("lt-ie9"), !0));
    Function.prototype.bind ||
        (Function.prototype.bind = function (o) {
            var e = this,
                h = [].slice;
            if ("function" != typeof e) throw new TypeError();
            var r = h.call(arguments, 1),
                n = function () {
                    if (this instanceof n) {
                        var t = function () {};
                        t.prototype = e.prototype;
                        var i = new t(),
                            s = e.apply(i, r.concat(h.call(arguments)));
                        return Object(s) === s ? s : i;
                    }
                    return e.apply(o, r.concat(h.call(arguments)));
                };
            return n;
        }),
        Array.prototype.indexOf ||
            (Array.prototype.indexOf = function (t, i) {
                var s;
                if (null == this) throw new TypeError('"this" is null or not defined');
                var o = Object(this),
                    e = o.length >>> 0;
                if (0 == e) return -1;
                var h = +i || 0;
                if ((Math.abs(h) === 1 / 0 && (h = 0), e <= h)) return -1;
                for (s = Math.max(0 <= h ? h : e - Math.abs(h), 0); s < e; ) {
                    if (s in o && o[s] === t) return s;
                    s++;
                }
                return -1;
            });
    function h(t, i, s) {
        (this.VERSION = "2.3.1"),
            (this.input = t),
            (this.plugin_count = s),
            (this.current_plugin = 0),
            (this.calc_count = 0),
            (this.update_tm = 0),
            (this.old_from = 0),
            (this.old_to = 0),
            (this.old_min_interval = null),
            (this.raf_id = null),
            (this.dragging = !1),
            (this.force_redraw = !1),
            (this.no_diapason = !1),
            (this.has_tab_index = !0),
            (this.is_key = !1),
            (this.is_update = !1),
            (this.is_start = !0),
            (this.is_finish = !1),
            (this.is_active = !1),
            (this.is_resize = !1),
            (this.is_click = !1),
            (i = i || {}),
            (this.$cache = {
                win: a(l),
                body: a(c.body),
                input: a(t),
                cont: null,
                rs: null,
                min: null,
                max: null,
                from: null,
                to: null,
                single: null,
                bar: null,
                line: null,
                s_single: null,
                s_from: null,
                s_to: null,
                shad_single: null,
                shad_from: null,
                shad_to: null,
                edge: null,
                grid: null,
                grid_labels: [],
            }),
            (this.coords = {
                x_gap: 0,
                x_pointer: 0,
                w_rs: 0,
                w_rs_old: 0,
                w_handle: 0,
                p_gap: 0,
                p_gap_left: 0,
                p_gap_right: 0,
                p_step: 0,
                p_pointer: 0,
                p_handle: 0,
                p_single_fake: 0,
                p_single_real: 0,
                p_from_fake: 0,
                p_from_real: 0,
                p_to_fake: 0,
                p_to_real: 0,
                p_bar_x: 0,
                p_bar_w: 0,
                grid_gap: 0,
                big_num: 0,
                big: [],
                big_w: [],
                big_p: [],
                big_x: [],
            }),
            (this.labels = { w_min: 0, w_max: 0, w_from: 0, w_to: 0, w_single: 0, p_min: 0, p_max: 0, p_from_fake: 0, p_from_left: 0, p_to_fake: 0, p_to_left: 0, p_single_fake: 0, p_single_left: 0 });
        var o,
            e,
            h,
            r = this.$cache.input,
            n = r.prop("value");
        for (h in ((o = {
            skin: "flat",
            type: "single",
            min: 10,
            max: 100,
            from: null,
            to: null,
            step: 1,
            min_interval: 0,
            max_interval: 0,
            drag_interval: !1,
            values: [],
            p_values: [],
            from_fixed: !1,
            from_min: null,
            from_max: null,
            from_shadow: !1,
            to_fixed: !1,
            to_min: null,
            to_max: null,
            to_shadow: !1,
            prettify_enabled: !0,
            prettify_separator: " ",
            prettify: null,
            force_edges: !1,
            keyboard: !0,
            grid: !1,
            grid_margin: !0,
            grid_num: 4,
            grid_snap: !1,
            hide_min_max: !1,
            hide_from_to: !1,
            prefix: "",
            postfix: "",
            max_postfix: "",
            decorate_both: !0,
            values_separator: " - ",
            input_values_separator: ";",
            disable: !1,
            block: !1,
            extra_classes: "",
            scope: null,
            onStart: null,
            onChange: null,
            onFinish: null,
            onUpdate: null,
        }),
        "INPUT" !== r[0].nodeName && console && console.warn && console.warn("Base element should be <input>!", r[0]),
        ((e = {
            skin: r.data("skin"),
            type: r.data("type"),
            min: r.data("min"),
            max: r.data("max"),
            from: r.data("from"),
            to: r.data("to"),
            step: r.data("step"),
            min_interval: r.data("minInterval"),
            max_interval: r.data("maxInterval"),
            drag_interval: r.data("dragInterval"),
            values: r.data("values"),
            from_fixed: r.data("fromFixed"),
            from_min: r.data("fromMin"),
            from_max: r.data("fromMax"),
            from_shadow: r.data("fromShadow"),
            to_fixed: r.data("toFixed"),
            to_min: r.data("toMin"),
            to_max: r.data("toMax"),
            to_shadow: r.data("toShadow"),
            prettify_enabled: r.data("prettifyEnabled"),
            prettify_separator: r.data("prettifySeparator"),
            force_edges: r.data("forceEdges"),
            keyboard: r.data("keyboard"),
            grid: r.data("grid"),
            grid_margin: r.data("gridMargin"),
            grid_num: r.data("gridNum"),
            grid_snap: r.data("gridSnap"),
            hide_min_max: r.data("hideMinMax"),
            hide_from_to: r.data("hideFromTo"),
            prefix: r.data("prefix"),
            postfix: r.data("postfix"),
            max_postfix: r.data("maxPostfix"),
            decorate_both: r.data("decorateBoth"),
            values_separator: r.data("valuesSeparator"),
            input_values_separator: r.data("inputValuesSeparator"),
            disable: r.data("disable"),
            block: r.data("block"),
            extra_classes: r.data("extraClasses"),
        }).values = e.values && e.values.split(",")),
        e))
            e.hasOwnProperty(h) && ((e[h] !== _ && "" !== e[h]) || delete e[h]);
        n !== _ &&
            "" !== n &&
            ((n = n.split(e.input_values_separator || i.input_values_separator || ";"))[0] && n[0] == +n[0] && (n[0] = +n[0]),
            n[1] && n[1] == +n[1] && (n[1] = +n[1]),
            i && i.values && i.values.length ? ((o.from = n[0] && i.values.indexOf(n[0])), (o.to = n[1] && i.values.indexOf(n[1]))) : ((o.from = n[0] && +n[0]), (o.to = n[1] && +n[1]))),
            a.extend(o, i),
            a.extend(o, e),
            (this.options = o),
            (this.update_check = {}),
            this.validate(),
            (this.result = { input: this.$cache.input, slider: null, min: this.options.min, max: this.options.max, from: this.options.from, from_percent: 0, from_value: null, to: this.options.to, to_percent: 0, to_value: null }),
            this.init();
    }
    (h.prototype = {
        init: function (t) {
            (this.no_diapason = !1),
                (this.coords.p_step = this.convertToPercent(this.options.step, !0)),
                (this.target = "base"),
                this.toggleInput(),
                this.append(),
                this.setMinMax(),
                t ? ((this.force_redraw = !0), this.calc(!0), this.callOnUpdate()) : ((this.force_redraw = !0), this.calc(!0), this.callOnStart()),
                this.updateScene();
        },
        append: function () {
            var t = '<span class="irs irs--' + this.options.skin + " js-irs-" + this.plugin_count + " " + this.options.extra_classes + '"></span>';
            this.$cache.input.before(t),
                this.$cache.input.prop("readonly", !0),
                (this.$cache.cont = this.$cache.input.prev()),
                (this.result.slider = this.$cache.cont),
                this.$cache.cont.html(
                    '<span class="irs"><span class="irs-line" tabindex="0"></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span>'
                ),
                (this.$cache.rs = this.$cache.cont.find(".irs")),
                (this.$cache.min = this.$cache.cont.find(".irs-min")),
                (this.$cache.max = this.$cache.cont.find(".irs-max")),
                (this.$cache.from = this.$cache.cont.find(".irs-from")),
                (this.$cache.to = this.$cache.cont.find(".irs-to")),
                (this.$cache.single = this.$cache.cont.find(".irs-single")),
                (this.$cache.line = this.$cache.cont.find(".irs-line")),
                (this.$cache.grid = this.$cache.cont.find(".irs-grid")),
                "single" === this.options.type
                    ? (this.$cache.cont.append('<span class="irs-bar irs-bar--single"></span><span class="irs-shadow shadow-single"></span><span class="irs-handle single"><i></i><i></i><i></i></span>'),
                      (this.$cache.bar = this.$cache.cont.find(".irs-bar")),
                      (this.$cache.edge = this.$cache.cont.find(".irs-bar-edge")),
                      (this.$cache.s_single = this.$cache.cont.find(".single")),
                      (this.$cache.from[0].style.visibility = "hidden"),
                      (this.$cache.to[0].style.visibility = "hidden"),
                      (this.$cache.shad_single = this.$cache.cont.find(".shadow-single")))
                    : (this.$cache.cont.append(
                          '<span class="irs-bar"></span><span class="irs-shadow shadow-from"></span><span class="irs-shadow shadow-to"></span><span class="irs-handle from"><i></i><i></i><i></i></span><span class="irs-handle to"><i></i><i></i><i></i></span>'
                      ),
                      (this.$cache.bar = this.$cache.cont.find(".irs-bar")),
                      (this.$cache.s_from = this.$cache.cont.find(".from")),
                      (this.$cache.s_to = this.$cache.cont.find(".to")),
                      (this.$cache.shad_from = this.$cache.cont.find(".shadow-from")),
                      (this.$cache.shad_to = this.$cache.cont.find(".shadow-to")),
                      this.setTopHandler()),
                this.options.hide_from_to && ((this.$cache.from[0].style.display = "none"), (this.$cache.to[0].style.display = "none"), (this.$cache.single[0].style.display = "none")),
                this.appendGrid(),
                this.options.disable ? (this.appendDisableMask(), (this.$cache.input[0].disabled = !0)) : ((this.$cache.input[0].disabled = !1), this.removeDisableMask(), this.bindEvents()),
                this.options.disable || (this.options.block ? this.appendDisableMask() : this.removeDisableMask()),
                this.options.drag_interval && (this.$cache.bar[0].style.cursor = "ew-resize");
        },
        setTopHandler: function () {
            var t = this.options.min,
                i = this.options.max,
                s = this.options.from,
                o = this.options.to;
            t < s && o === i ? this.$cache.s_from.addClass("type_last") : o < i && this.$cache.s_to.addClass("type_last");
        },
        changeLevel: function (t) {
            switch (t) {
                case "single":
                    (this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake)), this.$cache.s_single.addClass("state_hover");
                    break;
                case "from":
                    (this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake)), this.$cache.s_from.addClass("state_hover"), this.$cache.s_from.addClass("type_last"), this.$cache.s_to.removeClass("type_last");
                    break;
                case "to":
                    (this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake)), this.$cache.s_to.addClass("state_hover"), this.$cache.s_to.addClass("type_last"), this.$cache.s_from.removeClass("type_last");
                    break;
                case "both":
                    (this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake)),
                        (this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer)),
                        this.$cache.s_to.removeClass("type_last"),
                        this.$cache.s_from.removeClass("type_last");
            }
        },
        appendDisableMask: function () {
            this.$cache.cont.append('<span class="irs-disable-mask"></span>'), this.$cache.cont.addClass("irs-disabled");
        },
        removeDisableMask: function () {
            this.$cache.cont.remove(".irs-disable-mask"), this.$cache.cont.removeClass("irs-disabled");
        },
        remove: function () {
            this.$cache.cont.remove(),
                (this.$cache.cont = null),
                this.$cache.line.off("keydown.irs_" + this.plugin_count),
                this.$cache.body.off("touchmove.irs_" + this.plugin_count),
                this.$cache.body.off("mousemove.irs_" + this.plugin_count),
                this.$cache.win.off("touchend.irs_" + this.plugin_count),
                this.$cache.win.off("mouseup.irs_" + this.plugin_count),
                e && (this.$cache.body.off("mouseup.irs_" + this.plugin_count), this.$cache.body.off("mouseleave.irs_" + this.plugin_count)),
                (this.$cache.grid_labels = []),
                (this.coords.big = []),
                (this.coords.big_w = []),
                (this.coords.big_p = []),
                (this.coords.big_x = []),
                cancelAnimationFrame(this.raf_id);
        },
        bindEvents: function () {
            this.no_diapason ||
                (this.$cache.body.on("touchmove.irs_" + this.plugin_count, this.pointerMove.bind(this)),
                this.$cache.body.on("mousemove.irs_" + this.plugin_count, this.pointerMove.bind(this)),
                this.$cache.win.on("touchend.irs_" + this.plugin_count, this.pointerUp.bind(this)),
                this.$cache.win.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this)),
                this.$cache.line.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                this.$cache.line.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                this.$cache.line.on("focus.irs_" + this.plugin_count, this.pointerFocus.bind(this)),
                this.options.drag_interval && "double" === this.options.type
                    ? (this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "both")), this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "both")))
                    : (this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"))),
                "single" === this.options.type
                    ? (this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")),
                      this.$cache.s_single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")),
                      this.$cache.shad_single.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                      this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")),
                      this.$cache.s_single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")),
                      this.$cache.edge.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                      this.$cache.shad_single.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")))
                    : (this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, null)),
                      this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, null)),
                      this.$cache.from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")),
                      this.$cache.s_from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")),
                      this.$cache.to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")),
                      this.$cache.s_to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")),
                      this.$cache.shad_from.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                      this.$cache.shad_to.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                      this.$cache.from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")),
                      this.$cache.s_from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")),
                      this.$cache.to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")),
                      this.$cache.s_to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")),
                      this.$cache.shad_from.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")),
                      this.$cache.shad_to.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"))),
                this.options.keyboard && this.$cache.line.on("keydown.irs_" + this.plugin_count, this.key.bind(this, "keyboard")),
                e && (this.$cache.body.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.body.on("mouseleave.irs_" + this.plugin_count, this.pointerUp.bind(this))));
        },
        pointerFocus: function (t) {
            var i, s;
            this.target || ((i = (s = "single" === this.options.type ? this.$cache.single : this.$cache.from).offset().left), (i += s.width() / 2 - 1), this.pointerClick("single", { preventDefault: function () {}, pageX: i }));
        },
        pointerMove: function (t) {
            if (this.dragging) {
                var i = t.pageX || (t.originalEvent.touches && t.originalEvent.touches[0].pageX);
                (this.coords.x_pointer = i - this.coords.x_gap), this.calc();
            }
        },
        pointerUp: function (t) {
            this.current_plugin === this.plugin_count &&
                this.is_active &&
                ((this.is_active = !1),
                this.$cache.cont.find(".state_hover").removeClass("state_hover"),
                (this.force_redraw = !0),
                e && a("*").prop("unselectable", !1),
                this.updateScene(),
                this.restoreOriginalMinInterval(),
                (a.contains(this.$cache.cont[0], t.target) || this.dragging) && this.callOnFinish(),
                (this.dragging = !1));
        },
        pointerDown: function (t, i) {
            i.preventDefault();
            var s = i.pageX || (i.originalEvent.touches && i.originalEvent.touches[0].pageX);
            2 !== i.button &&
                ("both" === t && this.setTempMinInterval(),
                (t = t || this.target || "from"),
                (this.current_plugin = this.plugin_count),
                (this.target = t),
                (this.is_active = !0),
                (this.dragging = !0),
                (this.coords.x_gap = this.$cache.rs.offset().left),
                (this.coords.x_pointer = s - this.coords.x_gap),
                this.calcPointerPercent(),
                this.changeLevel(t),
                e && a("*").prop("unselectable", !0),
                this.$cache.line.trigger("focus"),
                this.updateScene());
        },
        pointerClick: function (t, i) {
            i.preventDefault();
            var s = i.pageX || (i.originalEvent.touches && i.originalEvent.touches[0].pageX);
            2 !== i.button &&
                ((this.current_plugin = this.plugin_count),
                (this.target = t),
                (this.is_click = !0),
                (this.coords.x_gap = this.$cache.rs.offset().left),
                (this.coords.x_pointer = +(s - this.coords.x_gap).toFixed()),
                (this.force_redraw = !0),
                this.calc(),
                this.$cache.line.trigger("focus"));
        },
        key: function (t, i) {
            if (!(this.current_plugin !== this.plugin_count || i.altKey || i.ctrlKey || i.shiftKey || i.metaKey)) {
                switch (i.which) {
                    case 83:
                    case 65:
                    case 40:
                    case 37:
                        i.preventDefault(), this.moveByKey(!1);
                        break;
                    case 87:
                    case 68:
                    case 38:
                    case 39:
                        i.preventDefault(), this.moveByKey(!0);
                }
                return !0;
            }
        },
        moveByKey: function (t) {
            var i = this.coords.p_pointer,
                s = (this.options.max - this.options.min) / 100;
            (s = this.options.step / s), t ? (i += s) : (i -= s), (this.coords.x_pointer = this.toFixed((this.coords.w_rs / 100) * i)), (this.is_key = !0), this.calc();
        },
        setMinMax: function () {
            if (this.options) {
                if (this.options.hide_min_max) return (this.$cache.min[0].style.display = "none"), void (this.$cache.max[0].style.display = "none");
                if (this.options.values.length) this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])), this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));
                else {
                    var t = this._prettify(this.options.min),
                        i = this._prettify(this.options.max);
                    (this.result.min_pretty = t), (this.result.max_pretty = i), this.$cache.min.html(this.decorate(t, this.options.min)), this.$cache.max.html(this.decorate(i, this.options.max));
                }
                (this.labels.w_min = this.$cache.min.outerWidth(!1)), (this.labels.w_max = this.$cache.max.outerWidth(!1));
            }
        },
        setTempMinInterval: function () {
            var t = this.result.to - this.result.from;
            null === this.old_min_interval && (this.old_min_interval = this.options.min_interval), (this.options.min_interval = t);
        },
        restoreOriginalMinInterval: function () {
            null !== this.old_min_interval && ((this.options.min_interval = this.old_min_interval), (this.old_min_interval = null));
        },
        calc: function (t) {
            if (this.options && (this.calc_count++, (10 !== this.calc_count && !t) || ((this.calc_count = 0), (this.coords.w_rs = this.$cache.rs.outerWidth(!1)), this.calcHandlePercent()), this.coords.w_rs)) {
                this.calcPointerPercent();
                var i = this.getHandleX();
                switch (
                    ("both" === this.target && ((this.coords.p_gap = 0), (i = this.getHandleX())),
                    "click" === this.target && ((this.coords.p_gap = this.coords.p_handle / 2), (i = this.getHandleX()), this.options.drag_interval ? (this.target = "both_one") : (this.target = this.chooseHandle(i))),
                    this.target)
                ) {
                    case "base":
                        var s = (this.options.max - this.options.min) / 100,
                            o = (this.result.from - this.options.min) / s,
                            e = (this.result.to - this.options.min) / s;
                        (this.coords.p_single_real = this.toFixed(o)),
                            (this.coords.p_from_real = this.toFixed(o)),
                            (this.coords.p_to_real = this.toFixed(e)),
                            (this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max)),
                            (this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real)),
                            (this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real)),
                            (this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real)),
                            (this.target = null);
                        break;
                    case "single":
                        if (this.options.from_fixed) break;
                        (this.coords.p_single_real = this.convertToRealPercent(i)),
                            (this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real)),
                            (this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real));
                        break;
                    case "from":
                        if (this.options.from_fixed) break;
                        (this.coords.p_from_real = this.convertToRealPercent(i)),
                            (this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real)),
                            this.coords.p_from_real > this.coords.p_to_real && (this.coords.p_from_real = this.coords.p_to_real),
                            (this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from")),
                            (this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, "from")),
                            (this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real));
                        break;
                    case "to":
                        if (this.options.to_fixed) break;
                        (this.coords.p_to_real = this.convertToRealPercent(i)),
                            (this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real)),
                            this.coords.p_to_real < this.coords.p_from_real && (this.coords.p_to_real = this.coords.p_from_real),
                            (this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max)),
                            (this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to")),
                            (this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, "to")),
                            (this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real));
                        break;
                    case "both":
                        if (this.options.from_fixed || this.options.to_fixed) break;
                        (i = this.toFixed(i + 0.001 * this.coords.p_handle)),
                            (this.coords.p_from_real = this.convertToRealPercent(i) - this.coords.p_gap_left),
                            (this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real)),
                            (this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from")),
                            (this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real)),
                            (this.coords.p_to_real = this.convertToRealPercent(i) + this.coords.p_gap_right),
                            (this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real)),
                            (this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max)),
                            (this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to")),
                            (this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real));
                        break;
                    case "both_one":
                        if (this.options.from_fixed || this.options.to_fixed) break;
                        var h = this.convertToRealPercent(i),
                            r = this.result.from_percent,
                            n = this.result.to_percent - r,
                            a = n / 2,
                            c = h - a,
                            l = h + a;
                        c < 0 && (l = (c = 0) + n),
                            100 < l && (c = (l = 100) - n),
                            (this.coords.p_from_real = this.calcWithStep(c)),
                            (this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max)),
                            (this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real)),
                            (this.coords.p_to_real = this.calcWithStep(l)),
                            (this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max)),
                            (this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real));
                }
                "single" === this.options.type
                    ? ((this.coords.p_bar_x = this.coords.p_handle / 2),
                      (this.coords.p_bar_w = this.coords.p_single_fake),
                      (this.result.from_percent = this.coords.p_single_real),
                      (this.result.from = this.convertToValue(this.coords.p_single_real)),
                      (this.result.from_pretty = this._prettify(this.result.from)),
                      this.options.values.length && (this.result.from_value = this.options.values[this.result.from]))
                    : ((this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + this.coords.p_handle / 2)),
                      (this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake)),
                      (this.result.from_percent = this.coords.p_from_real),
                      (this.result.from = this.convertToValue(this.coords.p_from_real)),
                      (this.result.from_pretty = this._prettify(this.result.from)),
                      (this.result.to_percent = this.coords.p_to_real),
                      (this.result.to = this.convertToValue(this.coords.p_to_real)),
                      (this.result.to_pretty = this._prettify(this.result.to)),
                      this.options.values.length && ((this.result.from_value = this.options.values[this.result.from]), (this.result.to_value = this.options.values[this.result.to]))),
                    this.calcMinMax(),
                    this.calcLabels();
            }
        },
        calcPointerPercent: function () {
            this.coords.w_rs
                ? (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ? (this.coords.x_pointer = 0) : this.coords.x_pointer > this.coords.w_rs && (this.coords.x_pointer = this.coords.w_rs),
                  (this.coords.p_pointer = this.toFixed((this.coords.x_pointer / this.coords.w_rs) * 100)))
                : (this.coords.p_pointer = 0);
        },
        convertToRealPercent: function (t) {
            return (t / (100 - this.coords.p_handle)) * 100;
        },
        convertToFakePercent: function (t) {
            return (t / 100) * (100 - this.coords.p_handle);
        },
        getHandleX: function () {
            var t = 100 - this.coords.p_handle,
                i = this.toFixed(this.coords.p_pointer - this.coords.p_gap);
            return i < 0 ? (i = 0) : t < i && (i = t), i;
        },
        calcHandlePercent: function () {
            "single" === this.options.type ? (this.coords.w_handle = this.$cache.s_single.outerWidth(!1)) : (this.coords.w_handle = this.$cache.s_from.outerWidth(!1)),
                (this.coords.p_handle = this.toFixed((this.coords.w_handle / this.coords.w_rs) * 100));
        },
        chooseHandle: function (t) {
            return "single" === this.options.type ? "single" : this.coords.p_from_real + (this.coords.p_to_real - this.coords.p_from_real) / 2 <= t ? (this.options.to_fixed ? "from" : "to") : this.options.from_fixed ? "to" : "from";
        },
        calcMinMax: function () {
            this.coords.w_rs && ((this.labels.p_min = (this.labels.w_min / this.coords.w_rs) * 100), (this.labels.p_max = (this.labels.w_max / this.coords.w_rs) * 100));
        },
        calcLabels: function () {
            this.coords.w_rs &&
                !this.options.hide_from_to &&
                ("single" === this.options.type
                    ? ((this.labels.w_single = this.$cache.single.outerWidth(!1)),
                      (this.labels.p_single_fake = (this.labels.w_single / this.coords.w_rs) * 100),
                      (this.labels.p_single_left = this.coords.p_single_fake + this.coords.p_handle / 2 - this.labels.p_single_fake / 2))
                    : ((this.labels.w_from = this.$cache.from.outerWidth(!1)),
                      (this.labels.p_from_fake = (this.labels.w_from / this.coords.w_rs) * 100),
                      (this.labels.p_from_left = this.coords.p_from_fake + this.coords.p_handle / 2 - this.labels.p_from_fake / 2),
                      (this.labels.p_from_left = this.toFixed(this.labels.p_from_left)),
                      (this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake)),
                      (this.labels.w_to = this.$cache.to.outerWidth(!1)),
                      (this.labels.p_to_fake = (this.labels.w_to / this.coords.w_rs) * 100),
                      (this.labels.p_to_left = this.coords.p_to_fake + this.coords.p_handle / 2 - this.labels.p_to_fake / 2),
                      (this.labels.p_to_left = this.toFixed(this.labels.p_to_left)),
                      (this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake)),
                      (this.labels.w_single = this.$cache.single.outerWidth(!1)),
                      (this.labels.p_single_fake = (this.labels.w_single / this.coords.w_rs) * 100),
                      (this.labels.p_single_left = (this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2 - this.labels.p_single_fake / 2),
                      (this.labels.p_single_left = this.toFixed(this.labels.p_single_left))),
                (this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake)));
        },
        updateScene: function () {
            this.raf_id && (cancelAnimationFrame(this.raf_id), (this.raf_id = null)),
                clearTimeout(this.update_tm),
                (this.update_tm = null),
                this.options && (this.drawHandles(), this.is_active ? (this.raf_id = requestAnimationFrame(this.updateScene.bind(this))) : (this.update_tm = setTimeout(this.updateScene.bind(this), 300)));
        },
        drawHandles: function () {
            (this.coords.w_rs = this.$cache.rs.outerWidth(!1)),
                this.coords.w_rs &&
                    (this.coords.w_rs !== this.coords.w_rs_old && ((this.target = "base"), (this.is_resize = !0)),
                    (this.coords.w_rs === this.coords.w_rs_old && !this.force_redraw) ||
                        (this.setMinMax(), this.calc(!0), this.drawLabels(), this.options.grid && (this.calcGridMargin(), this.calcGridLabels()), (this.force_redraw = !0), (this.coords.w_rs_old = this.coords.w_rs), this.drawShadow()),
                    this.coords.w_rs &&
                        (this.dragging || this.force_redraw || this.is_key) &&
                        ((this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) &&
                            (this.drawLabels(),
                            (this.$cache.bar[0].style.left = this.coords.p_bar_x + "%"),
                            (this.$cache.bar[0].style.width = this.coords.p_bar_w + "%"),
                            "single" === this.options.type
                                ? ((this.$cache.bar[0].style.left = 0), (this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + "%"), (this.$cache.s_single[0].style.left = this.coords.p_single_fake + "%"))
                                : ((this.$cache.s_from[0].style.left = this.coords.p_from_fake + "%"),
                                  (this.$cache.s_to[0].style.left = this.coords.p_to_fake + "%"),
                                  (this.old_from === this.result.from && !this.force_redraw) || (this.$cache.from[0].style.left = this.labels.p_from_left + "%"),
                                  (this.old_to === this.result.to && !this.force_redraw) || (this.$cache.to[0].style.left = this.labels.p_to_left + "%")),
                            (this.$cache.single[0].style.left = this.labels.p_single_left + "%"),
                            this.writeToInput(),
                            (this.old_from === this.result.from && this.old_to === this.result.to) || this.is_start || (this.$cache.input.trigger("change"), this.$cache.input.trigger("input")),
                            (this.old_from = this.result.from),
                            (this.old_to = this.result.to),
                            this.is_resize || this.is_update || this.is_start || this.is_finish || this.callOnChange(),
                            (this.is_key || this.is_click) && ((this.is_key = !1), (this.is_click = !1), this.callOnFinish()),
                            (this.is_update = !1),
                            (this.is_resize = !1),
                            (this.is_finish = !1)),
                        (this.is_start = !1),
                        (this.is_key = !1),
                        (this.is_click = !1),
                        (this.force_redraw = !1)));
        },
        drawLabels: function () {
            if (this.options) {
                var t,
                    i,
                    s,
                    o,
                    e,
                    h = this.options.values.length,
                    r = this.options.p_values;
                if (!this.options.hide_from_to)
                    if ("single" === this.options.type)
                        (t = h ? this.decorate(r[this.result.from]) : ((o = this._prettify(this.result.from)), this.decorate(o, this.result.from))),
                            this.$cache.single.html(t),
                            this.calcLabels(),
                            this.labels.p_single_left < this.labels.p_min + 1 ? (this.$cache.min[0].style.visibility = "hidden") : (this.$cache.min[0].style.visibility = "visible"),
                            this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1 ? (this.$cache.max[0].style.visibility = "hidden") : (this.$cache.max[0].style.visibility = "visible");
                    else {
                        (s = h
                            ? (this.options.decorate_both
                                  ? ((t = this.decorate(r[this.result.from])), (t += this.options.values_separator), (t += this.decorate(r[this.result.to])))
                                  : (t = this.decorate(r[this.result.from] + this.options.values_separator + r[this.result.to])),
                              (i = this.decorate(r[this.result.from])),
                              this.decorate(r[this.result.to]))
                            : ((o = this._prettify(this.result.from)),
                              (e = this._prettify(this.result.to)),
                              this.options.decorate_both
                                  ? ((t = this.decorate(o, this.result.from)), (t += this.options.values_separator), (t += this.decorate(e, this.result.to)))
                                  : (t = this.decorate(o + this.options.values_separator + e, this.result.to)),
                              (i = this.decorate(o, this.result.from)),
                              this.decorate(e, this.result.to))),
                            this.$cache.single.html(t),
                            this.$cache.from.html(i),
                            this.$cache.to.html(s),
                            this.calcLabels();
                        var n = Math.min(this.labels.p_single_left, this.labels.p_from_left),
                            a = this.labels.p_single_left + this.labels.p_single_fake,
                            c = this.labels.p_to_left + this.labels.p_to_fake,
                            l = Math.max(a, c);
                        this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left
                            ? ((this.$cache.from[0].style.visibility = "hidden"),
                              (this.$cache.to[0].style.visibility = "hidden"),
                              (this.$cache.single[0].style.visibility = "visible"),
                              (l =
                                  this.result.from === this.result.to
                                      ? ("from" === this.target
                                            ? (this.$cache.from[0].style.visibility = "visible")
                                            : "to" === this.target
                                            ? (this.$cache.to[0].style.visibility = "visible")
                                            : this.target || (this.$cache.from[0].style.visibility = "visible"),
                                        (this.$cache.single[0].style.visibility = "hidden"),
                                        c)
                                      : ((this.$cache.from[0].style.visibility = "hidden"), (this.$cache.to[0].style.visibility = "hidden"), (this.$cache.single[0].style.visibility = "visible"), Math.max(a, c))))
                            : ((this.$cache.from[0].style.visibility = "visible"), (this.$cache.to[0].style.visibility = "visible"), (this.$cache.single[0].style.visibility = "hidden")),
                            n < this.labels.p_min + 1 ? (this.$cache.min[0].style.visibility = "hidden") : (this.$cache.min[0].style.visibility = "visible"),
                            l > 100 - this.labels.p_max - 1 ? (this.$cache.max[0].style.visibility = "hidden") : (this.$cache.max[0].style.visibility = "visible");
                    }
            }
        },
        drawShadow: function () {
            var t,
                i,
                s,
                o,
                e = this.options,
                h = this.$cache,
                r = "number" == typeof e.from_min && !isNaN(e.from_min),
                n = "number" == typeof e.from_max && !isNaN(e.from_max),
                a = "number" == typeof e.to_min && !isNaN(e.to_min),
                c = "number" == typeof e.to_max && !isNaN(e.to_max);
            "single" === e.type
                ? e.from_shadow && (r || n)
                    ? ((t = this.convertToPercent(r ? e.from_min : e.min)),
                      (i = this.convertToPercent(n ? e.from_max : e.max) - t),
                      (t = this.toFixed(t - (this.coords.p_handle / 100) * t)),
                      (i = this.toFixed(i - (this.coords.p_handle / 100) * i)),
                      (t += this.coords.p_handle / 2),
                      (h.shad_single[0].style.display = "block"),
                      (h.shad_single[0].style.left = t + "%"),
                      (h.shad_single[0].style.width = i + "%"))
                    : (h.shad_single[0].style.display = "none")
                : (e.from_shadow && (r || n)
                      ? ((t = this.convertToPercent(r ? e.from_min : e.min)),
                        (i = this.convertToPercent(n ? e.from_max : e.max) - t),
                        (t = this.toFixed(t - (this.coords.p_handle / 100) * t)),
                        (i = this.toFixed(i - (this.coords.p_handle / 100) * i)),
                        (t += this.coords.p_handle / 2),
                        (h.shad_from[0].style.display = "block"),
                        (h.shad_from[0].style.left = t + "%"),
                        (h.shad_from[0].style.width = i + "%"))
                      : (h.shad_from[0].style.display = "none"),
                  e.to_shadow && (a || c)
                      ? ((s = this.convertToPercent(a ? e.to_min : e.min)),
                        (o = this.convertToPercent(c ? e.to_max : e.max) - s),
                        (s = this.toFixed(s - (this.coords.p_handle / 100) * s)),
                        (o = this.toFixed(o - (this.coords.p_handle / 100) * o)),
                        (s += this.coords.p_handle / 2),
                        (h.shad_to[0].style.display = "block"),
                        (h.shad_to[0].style.left = s + "%"),
                        (h.shad_to[0].style.width = o + "%"))
                      : (h.shad_to[0].style.display = "none"));
        },
        writeToInput: function () {
            "single" === this.options.type
                ? (this.options.values.length ? this.$cache.input.prop("value", this.result.from_value) : this.$cache.input.prop("value", this.result.from), this.$cache.input.data("from", this.result.from))
                : (this.options.values.length
                      ? this.$cache.input.prop("value", this.result.from_value + this.options.input_values_separator + this.result.to_value)
                      : this.$cache.input.prop("value", this.result.from + this.options.input_values_separator + this.result.to),
                  this.$cache.input.data("from", this.result.from),
                  this.$cache.input.data("to", this.result.to));
        },
        callOnStart: function () {
            this.writeToInput(), this.options.onStart && "function" == typeof this.options.onStart && (this.options.scope ? this.options.onStart.call(this.options.scope, this.result) : this.options.onStart(this.result));
        },
        callOnChange: function () {
            this.writeToInput(), this.options.onChange && "function" == typeof this.options.onChange && (this.options.scope ? this.options.onChange.call(this.options.scope, this.result) : this.options.onChange(this.result));
        },
        callOnFinish: function () {
            this.writeToInput(), this.options.onFinish && "function" == typeof this.options.onFinish && (this.options.scope ? this.options.onFinish.call(this.options.scope, this.result) : this.options.onFinish(this.result));
        },
        callOnUpdate: function () {
            this.writeToInput(), this.options.onUpdate && "function" == typeof this.options.onUpdate && (this.options.scope ? this.options.onUpdate.call(this.options.scope, this.result) : this.options.onUpdate(this.result));
        },
        toggleInput: function () {
            this.$cache.input.toggleClass("irs-hidden-input"), this.has_tab_index ? this.$cache.input.prop("tabindex", -1) : this.$cache.input.removeProp("tabindex"), (this.has_tab_index = !this.has_tab_index);
        },
        convertToPercent: function (t, i) {
            var s,
                o = this.options.max - this.options.min,
                e = o / 100;
            return o ? ((s = (i ? t : t - this.options.min) / e), this.toFixed(s)) : ((this.no_diapason = !0), 0);
        },
        convertToValue: function (t) {
            var i,
                s,
                o = this.options.min,
                e = this.options.max,
                h = o.toString().split(".")[1],
                r = e.toString().split(".")[1],
                n = 0,
                a = 0;
            if (0 === t) return this.options.min;
            if (100 === t) return this.options.max;
            h && (n = i = h.length), r && (n = s = r.length), i && s && (n = s <= i ? i : s), o < 0 && ((o = +(o + (a = Math.abs(o))).toFixed(n)), (e = +(e + a).toFixed(n)));
            var c,
                l = ((e - o) / 100) * t + o,
                _ = this.options.step.toString().split(".")[1];
            return (
                (l = _ ? +l.toFixed(_.length) : ((l /= this.options.step), +(l *= this.options.step).toFixed(0))),
                a && (l -= a),
                (c = _ ? +l.toFixed(_.length) : this.toFixed(l)) < this.options.min ? (c = this.options.min) : c > this.options.max && (c = this.options.max),
                c
            );
        },
        calcWithStep: function (t) {
            var i = Math.round(t / this.coords.p_step) * this.coords.p_step;
            return 100 < i && (i = 100), 100 === t && (i = 100), this.toFixed(i);
        },
        checkMinInterval: function (t, i, s) {
            var o,
                e,
                h = this.options;
            return h.min_interval
                ? ((o = this.convertToValue(t)), (e = this.convertToValue(i)), "from" === s ? e - o < h.min_interval && (o = e - h.min_interval) : o - e < h.min_interval && (o = e + h.min_interval), this.convertToPercent(o))
                : t;
        },
        checkMaxInterval: function (t, i, s) {
            var o,
                e,
                h = this.options;
            return h.max_interval
                ? ((o = this.convertToValue(t)), (e = this.convertToValue(i)), "from" === s ? e - o > h.max_interval && (o = e - h.max_interval) : o - e > h.max_interval && (o = e + h.max_interval), this.convertToPercent(o))
                : t;
        },
        checkDiapason: function (t, i, s) {
            var o = this.convertToValue(t),
                e = this.options;
            return "number" != typeof i && (i = e.min), "number" != typeof s && (s = e.max), o < i && (o = i), s < o && (o = s), this.convertToPercent(o);
        },
        toFixed: function (t) {
            return +(t = t.toFixed(20));
        },
        _prettify: function (t) {
            return this.options.prettify_enabled ? (this.options.prettify && "function" == typeof this.options.prettify ? this.options.prettify(t) : this.prettify(t)) : t;
        },
        prettify: function (t) {
            return t.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + this.options.prettify_separator);
        },
        checkEdges: function (t, i) {
            return this.options.force_edges && (t < 0 ? (t = 0) : 100 - i < t && (t = 100 - i)), this.toFixed(t);
        },
        validate: function () {
            var t,
                i,
                s = this.options,
                o = this.result,
                e = s.values,
                h = e.length;
            if (
                ("string" == typeof s.min && (s.min = +s.min),
                "string" == typeof s.max && (s.max = +s.max),
                "string" == typeof s.from && (s.from = +s.from),
                "string" == typeof s.to && (s.to = +s.to),
                "string" == typeof s.step && (s.step = +s.step),
                "string" == typeof s.from_min && (s.from_min = +s.from_min),
                "string" == typeof s.from_max && (s.from_max = +s.from_max),
                "string" == typeof s.to_min && (s.to_min = +s.to_min),
                "string" == typeof s.to_max && (s.to_max = +s.to_max),
                "string" == typeof s.grid_num && (s.grid_num = +s.grid_num),
                s.max < s.min && (s.max = s.min),
                h)
            )
                for (s.p_values = [], s.min = 0, s.max = h - 1, s.step = 1, s.grid_num = s.max, s.grid_snap = !0, i = 0; i < h; i++) (t = +e[i]), (t = isNaN(t) ? e[i] : ((e[i] = t), this._prettify(t))), s.p_values.push(t);
            ("number" == typeof s.from && !isNaN(s.from)) || (s.from = s.min),
                ("number" == typeof s.to && !isNaN(s.to)) || (s.to = s.max),
                "single" === s.type
                    ? (s.from < s.min && (s.from = s.min), s.from > s.max && (s.from = s.max))
                    : (s.from < s.min && (s.from = s.min),
                      s.from > s.max && (s.from = s.max),
                      s.to < s.min && (s.to = s.min),
                      s.to > s.max && (s.to = s.max),
                      this.update_check.from && (this.update_check.from !== s.from && s.from > s.to && (s.from = s.to), this.update_check.to !== s.to && s.to < s.from && (s.to = s.from)),
                      s.from > s.to && (s.from = s.to),
                      s.to < s.from && (s.to = s.from)),
                ("number" != typeof s.step || isNaN(s.step) || !s.step || s.step < 0) && (s.step = 1),
                "number" == typeof s.from_min && s.from < s.from_min && (s.from = s.from_min),
                "number" == typeof s.from_max && s.from > s.from_max && (s.from = s.from_max),
                "number" == typeof s.to_min && s.to < s.to_min && (s.to = s.to_min),
                "number" == typeof s.to_max && s.from > s.to_max && (s.to = s.to_max),
                o && (o.min !== s.min && (o.min = s.min), o.max !== s.max && (o.max = s.max), (o.from < o.min || o.from > o.max) && (o.from = s.from), (o.to < o.min || o.to > o.max) && (o.to = s.to)),
                ("number" != typeof s.min_interval || isNaN(s.min_interval) || !s.min_interval || s.min_interval < 0) && (s.min_interval = 0),
                ("number" != typeof s.max_interval || isNaN(s.max_interval) || !s.max_interval || s.max_interval < 0) && (s.max_interval = 0),
                s.min_interval && s.min_interval > s.max - s.min && (s.min_interval = s.max - s.min),
                s.max_interval && s.max_interval > s.max - s.min && (s.max_interval = s.max - s.min);
        },
        decorate: function (t, i) {
            var s = "",
                o = this.options;
            return (
                o.prefix && (s += o.prefix),
                (s += t),
                o.max_postfix && (o.values.length && t === o.p_values[o.max] ? ((s += o.max_postfix), o.postfix && (s += " ")) : i === o.max && ((s += o.max_postfix), o.postfix && (s += " "))),
                o.postfix && (s += o.postfix),
                s
            );
        },
        updateFrom: function () {
            (this.result.from = this.options.from),
                (this.result.from_percent = this.convertToPercent(this.result.from)),
                (this.result.from_pretty = this._prettify(this.result.from)),
                this.options.values && (this.result.from_value = this.options.values[this.result.from]);
        },
        updateTo: function () {
            (this.result.to = this.options.to),
                (this.result.to_percent = this.convertToPercent(this.result.to)),
                (this.result.to_pretty = this._prettify(this.result.to)),
                this.options.values && (this.result.to_value = this.options.values[this.result.to]);
        },
        updateResult: function () {
            (this.result.min = this.options.min), (this.result.max = this.options.max), this.updateFrom(), this.updateTo();
        },
        appendGrid: function () {
            if (this.options.grid) {
                var t,
                    i,
                    s,
                    o,
                    e,
                    h,
                    r = this.options,
                    n = r.max - r.min,
                    a = r.grid_num,
                    c = 0,
                    l = 4,
                    _ = "";
                for (this.calcGridMargin(), r.grid_snap && (a = n / r.step), 50 < a && (a = 50), s = this.toFixed(100 / a), 4 < a && (l = 3), 7 < a && (l = 2), 14 < a && (l = 1), 28 < a && (l = 0), t = 0; t < a + 1; t++) {
                    for (o = l, 100 < (c = this.toFixed(s * t)) && (c = 100), e = ((this.coords.big[t] = c) - s * (t - 1)) / (o + 1), i = 1; i <= o && 0 !== c; i++)
                        _ += '<span class="irs-grid-pol small" style="left: ' + this.toFixed(c - e * i) + '%"></span>';
                    (_ += '<span class="irs-grid-pol" style="left: ' + c + '%"></span>'),
                        (h = this.convertToValue(c)),
                        (_ += '<span class="irs-grid-text js-grid-text-' + t + '" style="left: ' + c + '%">' + (h = r.values.length ? r.p_values[h] : this._prettify(h)) + "</span>");
                }
                (this.coords.big_num = Math.ceil(a + 1)), this.$cache.cont.addClass("irs-with-grid"), this.$cache.grid.html(_), this.cacheGridLabels();
            }
        },
        cacheGridLabels: function () {
            var t,
                i,
                s = this.coords.big_num;
            for (i = 0; i < s; i++) (t = this.$cache.grid.find(".js-grid-text-" + i)), this.$cache.grid_labels.push(t);
            this.calcGridLabels();
        },
        calcGridLabels: function () {
            var t,
                i,
                s = [],
                o = [],
                e = this.coords.big_num;
            for (t = 0; t < e; t++)
                (this.coords.big_w[t] = this.$cache.grid_labels[t].outerWidth(!1)),
                    (this.coords.big_p[t] = this.toFixed((this.coords.big_w[t] / this.coords.w_rs) * 100)),
                    (this.coords.big_x[t] = this.toFixed(this.coords.big_p[t] / 2)),
                    (s[t] = this.toFixed(this.coords.big[t] - this.coords.big_x[t])),
                    (o[t] = this.toFixed(s[t] + this.coords.big_p[t]));
            for (
                this.options.force_edges &&
                    (s[0] < -this.coords.grid_gap && ((s[0] = -this.coords.grid_gap), (o[0] = this.toFixed(s[0] + this.coords.big_p[0])), (this.coords.big_x[0] = this.coords.grid_gap)),
                    o[e - 1] > 100 + this.coords.grid_gap &&
                        ((o[e - 1] = 100 + this.coords.grid_gap), (s[e - 1] = this.toFixed(o[e - 1] - this.coords.big_p[e - 1])), (this.coords.big_x[e - 1] = this.toFixed(this.coords.big_p[e - 1] - this.coords.grid_gap)))),
                    this.calcGridCollision(2, s, o),
                    this.calcGridCollision(4, s, o),
                    t = 0;
                t < e;
                t++
            )
                (i = this.$cache.grid_labels[t][0]), this.coords.big_x[t] !== Number.POSITIVE_INFINITY && (i.style.marginLeft = -this.coords.big_x[t] + "%");
        },
        calcGridCollision: function (t, i, s) {
            var o,
                e,
                h,
                r = this.coords.big_num;
            for (o = 0; o < r && !(r <= (e = o + t / 2)); o += t) (h = this.$cache.grid_labels[e][0]), s[o] <= i[e] ? (h.style.visibility = "visible") : (h.style.visibility = "hidden");
        },
        calcGridMargin: function () {
            this.options.grid_margin &&
                ((this.coords.w_rs = this.$cache.rs.outerWidth(!1)),
                this.coords.w_rs &&
                    ("single" === this.options.type ? (this.coords.w_handle = this.$cache.s_single.outerWidth(!1)) : (this.coords.w_handle = this.$cache.s_from.outerWidth(!1)),
                    (this.coords.p_handle = this.toFixed((this.coords.w_handle / this.coords.w_rs) * 100)),
                    (this.coords.grid_gap = this.toFixed(this.coords.p_handle / 2 - 0.1)),
                    (this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + "%"),
                    (this.$cache.grid[0].style.left = this.coords.grid_gap + "%")));
        },
        update: function (t) {
            this.input &&
                ((this.is_update = !0),
                (this.options.from = this.result.from),
                (this.options.to = this.result.to),
                (this.update_check.from = this.result.from),
                (this.update_check.to = this.result.to),
                (this.options = a.extend(this.options, t)),
                this.validate(),
                this.updateResult(t),
                this.toggleInput(),
                this.remove(),
                this.init(!0));
        },
        reset: function () {
            this.input && (this.updateResult(), this.update());
        },
        destroy: function () {
            this.input && (this.toggleInput(), this.$cache.input.prop("readonly", !1), a.data(this.input, "ionRangeSlider", null), this.remove(), (this.input = null), (this.options = null));
        },
    }),
        (a.fn.ionRangeSlider = function (t) {
            return this.each(function () {
                a.data(this, "ionRangeSlider") || a.data(this, "ionRangeSlider", new h(this, t, o++));
            });
        }),
        (function () {
            for (var h = 0, t = ["ms", "moz", "webkit", "o"], i = 0; i < t.length && !l.requestAnimationFrame; ++i)
                (l.requestAnimationFrame = l[t[i] + "RequestAnimationFrame"]), (l.cancelAnimationFrame = l[t[i] + "CancelAnimationFrame"] || l[t[i] + "CancelRequestAnimationFrame"]);
            l.requestAnimationFrame ||
                (l.requestAnimationFrame = function (t, i) {
                    var s = new Date().getTime(),
                        o = Math.max(0, 16 - (s - h)),
                        e = l.setTimeout(function () {
                            t(s + o);
                        }, o);
                    return (h = s + o), e;
                }),
                l.cancelAnimationFrame ||
                    (l.cancelAnimationFrame = function (t) {
                        clearTimeout(t);
                    });
        })();
});
;

var $rangeSliderGia = $("#slider_giatien");

var instance;

var fromGT = $("#txthidenfromGT").val();
var cboFromGiaTien = $("#txthidencboFromGiaTien").val();

var lt = $("#txtLoaiTin").val();

var toGT = $("#txthidentoGT").val();
var cboToGiaTien = $("#txthidencboToGiaTien").val();
let defauStep = 100;


if (parseInt(lt) == 1)
{
    defauStep = 100;
    var seg = fromGT * cboFromGiaTien;
     if(seg >= 50000){
        defauStep = 500;
    }
    else if (seg >= 100000) {
        defauStep = 1000;
    }
}
else {
    if(defauStep <= 1) {
        defauStep = 1;
    }
    else {
        defauStep = Math.round(defauStep);
    }
}

window.onload = (event) => {

    var urlWithoutQS = window.location.host + window.location.pathname;
    if ( urlWithoutQS.split('/')[1] != document.referrer.replace(/^[^:]+:\/\/[^/]+/, '').replace(/#.*/, '').split('/')[1])
    {
        /*
        sessionStorage.removeItem('sParaLoaiNha');
        sessionStorage.removeItem('sParaHuongNha');
        sessionStorage.removeItem('sParaDienTich');
        sessionStorage.removeItem('sParaPhuongXas');
        */
    };

    initMultiselect();

    var _SessionjsonParaSearch = $("#SessionjsonParaSearch").data('value');
    if (_SessionjsonParaSearch) {
        if (_SessionjsonParaSearch.lastIndexOf('-') > 0) {
            var arrSessionjsonParaSearch = _SessionjsonParaSearch.split('-');
            if (arrSessionjsonParaSearch.length > 3) {
                var arr0 = arrSessionjsonParaSearch[0].split(',');
                for (let i = 0; i < arr0.length; i++) {
                    var _check = $("#mySelectOptions input[value='" + arr0[i] + "']");
                    _check.prop("checked", true);
                    _check.trigger("change");
                };

                var arr1 = arrSessionjsonParaSearch[1].split(',');
                for (let i = 0; i < arr1.length; i++) {
                    var _check = $("#SelectOptionHN input[value='" + arr1[i] + "']");
                    _check.prop("checked", true);
                    _check.trigger("change");
                };
            }
        }
    }
    

    if (sessionStorage.getItem('sParaLoaiNha') != null) {

        var jsonPara = JSON.parse(sessionStorage.getItem('sParaLoaiNha'));
        
        var a = jsonPara.value.split(',');
        var b =  jsonPara.text.split(',');

        for (let i = 0; i < a.length; i++) {
            $("#mySelectOptions input[value='"+a[i]+"']").prop("checked", true);
        };

        $("#ulParaSearch").append("<li class=\"cap\">Lọc loại BDS: </li>");

        for (let i = 0; i < b.length; i++) {
            $("#ulParaSearch").append("<li>" + b[i] + "</li>");
        };

        $("#cboLNs").attr("data-value", jsonPara.value);
        $("#cboLNs").text(jsonPara.text);
    }

    if (sessionStorage.getItem('sParaHuongNha') != null) {

        var jsonPara = JSON.parse(sessionStorage.getItem('sParaHuongNha'));

        var a = jsonPara.value.split(',');
        var b = jsonPara.text.split(',');

        for (let i = 0; i < a.length; i++) {
            $("#SelectOptionHN input[value='" + a[i] + "']").prop("checked", true);
        };

        $("#ulParaSearch").append("<li class=\"cap red\">Lọc hướng BDS: </li>");

        for (let i = 0; i < b.length; i++) {
            $("#ulParaSearch").append("<li>" + b[i] + "</li>");
        };

        $("#cboHNs").attr("data-value", jsonPara.value);
        $("#cboHNs").text(jsonPara.text);
    }

    if (sessionStorage.getItem('sParaDienTich') != null) {

        var jsonPara = sessionStorage.getItem('sParaDienTich');
        var a = jsonPara.split(',');

        $("#ulParaSearch").append("<li class=\"cap yellow\">Lọc diện tích: </li>");

        $("#ulParaSearch").append("<li>" + a[0] + "(m2) - " + a[1] + "(m2)</li>");

        $("#txtFromDienTich").val(a[0]);
        $("#txtToDienTich").val(a[1]);

    }

    if (sessionStorage.getItem('sParaPhuongXas') != null) {

        var jsonPara = JSON.parse(sessionStorage.getItem('sParaPhuongXas'));

        var a = jsonPara.value.split(',');
        var b = jsonPara.text.split(',');

        for (let i = 0; i < a.length; i++) {
            $("#SelectOptionPhuongXa input[value='" + a[i] + "']").prop("checked", true);
        };

        $("#ulParaSearch").append("<li class=\"cap red\">Lọc phường xã: </li>");

        for (let i = 0; i < b.length; i++) {
            $("#ulParaSearch").append("<li>" + b[i] + "</li>");
        };

        $("#cboPhuongXas").attr("data-value", jsonPara.value);
        $("#cboPhuongXas").text(jsonPara.text);

    }

};
function initMultiselect() {
    document.addEventListener("click", function (evt) {

        var flyoutElement = document.getElementsByClassName('multiselect');

        Array.prototype.forEach.call(flyoutElement, function (el) {

            var targetElement = evt.target;
            
            do {
                if (targetElement == el) {
                    console.log('click inside');
                    return;
                }
                targetElement = targetElement.parentNode;
            } while (targetElement);

            var _me = el.getElementsByClassName('selectBox');

            if (_me && _me.length > 0 ) {
                toggleCheckboxArea(_me[0], true);
                console.log('click outside');
            }
        });
    });

    var elementsOK = document.getElementsByClassName("multichoisebtnOK");

    var OKClick = function () {
        var attribute = this.getAttribute("data-idstyle");
      
        document.querySelector(attribute).click();
    };

    for (var i = 0; i < elementsOK.length; i++) {
        elementsOK[i].addEventListener('click', OKClick, false);
    }
}


function checkboxStatusChange(me) {

    var node1 = me.parentNode//label 

    var node2 = node1.parentNode;//mySelectOptions

    var node4 = node2.parentNode;

    var node3 = node4.previousElementSibling;//mySelectLabel


    var multiselectOption = node3.getElementsByTagName('option')[0];

    var values = [];
    var texts = [];

    var checkedCheckboxes = node2.querySelectorAll('input[type=checkbox]:checked');

    for (const item of checkedCheckboxes) {
        var checkboxValue = item.getAttribute('value');
        var checkboxText = item.getAttribute('text');;
        values.push(checkboxValue);
        texts.push(checkboxText);
    }

    var dropdownText = "Tất cả";

    console.log(multiselectOption.id);

    if (values.length > 0) {
        dropdownText = texts.join(', ');
        multiselectOption.dataset.value = values.join(',');
    }
    else {
        multiselectOption.dataset.value = '0';
    }

    var obj = { "value": multiselectOption.dataset.value, "text": dropdownText };

    if (multiselectOption.id == "cboLTs") {
        sessionStorage.setItem('sParaLoaiTin', JSON.stringify(obj));
    }
    else if (multiselectOption.id == "cboLNs")
    {
        sessionStorage.setItem('sParaLoaiNha', JSON.stringify(obj));
    }
    else if (multiselectOption.id == "cboPhuongXas") {
        sessionStorage.setItem('sParaPhuongXas', JSON.stringify(obj));
    }
    else{
        sessionStorage.setItem('sParaHuongNha', JSON.stringify(obj));
    };
   

    multiselectOption.innerText = dropdownText;
}

function toggleCheckboxArea(me, onlyHide = false) {
    var checkboxes = me.nextElementSibling; //document.getElementsByClassName("SelectOptions");
    if (checkboxes) {
        var displayValue = checkboxes.style.display;

        if (displayValue != "block") {
            if (onlyHide == false) {
                checkboxes.style.display = "block";
            }
        } else {
            checkboxes.style.display = "none";
        }
    }
}

function getListSearch(loaitin, loainha, tinhthanh, quanhuyen, khuvuc, strKey) {
        _2014Index.getListLinkSearch(loaitin, loainha, tinhthanh, quanhuyen, khuvuc, strKey, getListSearch_callback);
    }
    function getListSearch_callback(response) {
        if (response.error != null) {
            //alert(response.error);
            return;
        }
        //listTimKiem.innerHTML = response.value;
        $("#txtTuKhoa").css("background", "url('/Images/2018/searchicon100.png') no-repeat scroll right center / contain transparent");
        $("#listTimKiem").html(response.value);
    }

    function OnClientTabSelected(sender, eventArgs) {
        var tab = eventArgs.get_tab();
        alert(tab.get_value());
    }

    function binGiaTien() {
        // Bin From gia
    }
    function encode() {
        var obj = document.getElementById('txtTuKhoa');
        var unencoded = obj.value.trim();
        var tempcode = encodeURIComponent(unencoded);
        var numcharat = '';
        if (tempcode.lastIndexOf("%") > 0) {

            for (var i = 0; i < tempcode.length; i++) {
                if (tempcode.charAt(i) == "%") {
                    if (numcharat == '')
                        numcharat = i.toString();
                    else
                        numcharat = numcharat + ',' + i.toString();
                }
            }
            tempcode = tempcode.replace(/\%/g, "");
            tempcode += '(' + numcharat;

        }
        return tempcode;
    }


function Button1_onclick(cboNguonTin, isDatMua, namebtn) {
    var hieugia = (toGT * cboToGiaTien / 10 - fromGT * cboFromGiaTien / 10);
        
        if (fromGT == '0' || fromGT ==0) {
            fromGT == '';
        }
        if (toGT == '0' || toGT == 0) {
            toGT == '';
        }

    var ln = $("#cboLNs").attr("data-value");
    var cboHNs = $("#cboHNs").attr("data-value");
    var cboPXs = $("#cboPhuongXas").attr("data-value");
    const ArrayLN = ln.split(',');

        var KV = document.getElementById("ContentPlaceHolder3_boxSearch1_ddlProducts");
        var khuvuc = '0'
        var loainha = '0'
        if (KV.selectedIndex != '0') {
            khuvuc = KV.value
        }

        if (ArrayLN.length>1) {
            loainha = 0;
        }
        else {
            loainha = ArrayLN[0];
        }

        var TT = document.getElementById("ContentPlaceHolder3_boxSearch1_ddlCustomers");

        var QH = document.getElementById("ContentPlaceHolder3_boxSearch1_ddlOrders");

        lt = document.getElementById('txtLoaiTin').value;


        var fromDT = document.getElementById("txtFromDienTich");
        var toDT = document.getElementById("txtToDienTich");

        if (fromDT.value !='')
        {
            fromDT.value = Math.round(fromDT.value);
        }
        
        if (toDT.value != '') {
            toDT.value = Math.round(toDT.value);
        }
     
        var cboHuongNha = '0';
        var txtMaTin = '';
        var txtTuKhoa = document.getElementById("txtTuKhoa");
        var strTukhoa = '';//encode();

        if ($('#ContentPlaceHolder3_boxSearch1_ddlCustomers option').length == 0) {
            alert('Bạn cần chọn Tỉnh thành');
            return;
        }
        if ($('#ContentPlaceHolder3_boxSearch1_ddlOrders option').length == 0) {
            alert('Bạn cần chọn Quận Huyện');
            return;
        }
        if ($('#ContentPlaceHolder3_boxSearch1_ddlProducts option').length == 0) {
            alert('Bạn cần chọn Khu Vực');
            return;
        }

        if (lt =='1')
        {
            if (hieugia <= 50 && fromGT !='')
            {
                alert('Giá Min và Max cần phải cách nhau quá 50 Triệu');
                return;
            }
            
        }
        else
        {
            if (hieugia < 1 && fromGT != '')
            {
                alert('Giá Min và Max cần phải cách nhau quá 1 Triệu');
                return;
            }
            
        }
        if (isNaN(fromDT.value)) {
            alert('Diện tích bạn nhập vào phải là một số')
            fromDT.value = '';
            fromDT.focus();
            return;
        }
        
        if (isNaN(toDT.value)) {
            alert('Diện tích bạn nhập vào phải là một số')
            toDT.value = '';
            toDT.focus();
            return;
        }
        if(toDT.value&&fromDT.value){
            var hieudt = parseInt(toDT.value.trim()) - parseInt(fromDT.value.trim());
            if(hieudt<=0){
                alert('Diện tích từ cần phải nhỏ hơn diện tích đến.')
                fromDT.value = '';
                fromDT.focus();
                return;
            }
            if(hieudt<10){
                alert('Khoảng cách giữa diện tích từ và diện tích đến phải lớn hơn 10m2')
                fromDT.value = '';
                fromDT.focus();
                return;
            }
            sessionStorage.setItem('sParaDienTich', fromDT.value + ',' + toDT.value);
        }
        else if (toDT.value) {
            sessionStorage.setItem('sParaDienTich','0,' + toDT.value);
        }
        var cboSapXep = '1';

        var quanhuyen = '0'

        var HuongNha = '0';

        if (QH.selectedIndex != '0') {
            quanhuyen = QH.value
        }

        //localStorage.setItem('id_ln',loainha);
    localStorage.setItem('id_lt', lt);

       // localStorage.removeItem('khoanggia');
      //  localStorage.removeItem('khoangdientich');

        var strPrefix = '';
        if (cboNguonTin == 2)
            strPrefix = '/ChinhChu';

        if ((TT.value == 0 & quanhuyen > 0) || (TT.value == 0 & khuvuc > 0)) {
            alert('Bạn cần chọn lại tỉnh thành');
            TT.focus();
            return;
        }
        var strLink = strPrefix + "/Search-All-" + lt + "-" + TT.value + "-" + quanhuyen + "-" + khuvuc + "-" + loainha + "-" + HuongNha + "---"
            + fromGT + "-" + cboFromGiaTien + "-" + toGT + "-" + cboToGiaTien + "-" + txtMaTin.trim() + "-" + strTukhoa.trim() + "-" + cboNguonTin + "-" + cboSapXep + "/";

        if(!isDatMua)
        {
            strLink +="1";
        }
        
        document.getElementById('loading' + namebtn).innerHTML = "<img style='display:inline-block;height:35px;' src='/image/Loadinglarge.gif'>";
        LoadlinkSearch2(lt, strLink, ln + '-' + cboHNs + '-' + fromDT.value.trim() + ',' + toDT.value.trim() + '-' + cboPXs, isDatMua);

    }

    function clearDienTich() {
        var toDT = document.getElementById("txtFromDienTich");
        var fromDT = document.getElementById("txtToDienTich");
        toDT.value = '';
        fromDT.value = '';
        fromDT.focus();
        sessionStorage.removeItem('sParaDienTich');
        localStorage.removeItem('khoangdientich')
    }

    function clearGiaTien() {
        fromGT = '';
        toGT = '';
        cboFromGiaTien = 10;
        cboToGiaTien = 10000;
        localStorage.removeItem('khoanggia');
    }

var ContentPlaceHolder3_boxSearch1_ddlCustomers = new AjaxDropDownController('ContentPlaceHolder3_boxSearch1_ddlCustomers', 'Customer', '/getLookupdata?t=5&q=0', $("#txtTT").val());
    ContentPlaceHolder3_boxSearch1_ddlCustomers.addObserver('ContentPlaceHolder3_boxSearch1_ddlOrders');
    ContentPlaceHolder3_boxSearch1_ddlCustomers.init()

var ContentPlaceHolder3_boxSearch1_ddlOrders = new AjaxDropDownController('ContentPlaceHolder3_boxSearch1_ddlOrders', 'Order', '/getLookupdata?t=5&q=0', $("#txtQuan").val());
    ContentPlaceHolder3_boxSearch1_ddlOrders.addObserver('ContentPlaceHolder3_boxSearch1_ddlProducts');
ContentPlaceHolder3_boxSearch1_ddlOrders.init()

var ContentPlaceHolder3_boxSearch1_ddlProducts = new AjaxDropDownController('ContentPlaceHolder3_boxSearch1_ddlProducts', 'Product', '/getLookupdata?t=5&q=0', $("#txtKV").val());
ContentPlaceHolder3_boxSearch1_ddlProducts.init()

/*
if (localStorage.getItem('id_ln') != null) {
    if($("#cboLN").val()==0)
    {
        $("#cboLN").val(localStorage.getItem('id_ln'));
    }
    $("#cboLN_map").val(localStorage.getItem('id_ln'));
}
*/

if (localStorage.getItem('id_lt') != null) {

  //  $("#cboLT_map").val(localStorage.getItem('id_lt'));
  //  bincomboboxGiatien_map(localStorage.getItem('id_lt'));

}
else {
   // bincomboboxGiatien_map(1);
}
if (localStorage.getItem('khoangdientich') != null) {
    $("#cbo_dientich_map").val(localStorage.getItem('khoangdientich'));
}

if (localStorage.getItem('id_hn') != null) {
    $("#cboHN_map").val(localStorage.getItem('id_hn'));
}

function bincomboboxGiatien_map(id_lt) {
    $('#cbo_giatien_map')
        .find('option')
        .remove()
        .end()
        .append('<option value="0-0" data-step="0" data-rangeslider="0-0" data-value="0-0">Bất kỳ</option>')
        .val('0-0');

    if (id_lt == 1) {
        var arrtext = ["Dưới 500 Triệu", "500 Triệu - 1 Tỷ", "Giá từ: 1 Tỷ - 1.5 Tỷ", "Giá từ: 1.5 Tỷ - 2 Tỷ", "Giá từ: 2 Tỷ - 3 Tỷ", "Giá từ: 3 Tỷ - 5 Tỷ", "Giá từ: 5 Tỷ - 7 Tỷ", "Giá từ: 7 Tỷ - 10 Tỷ", "Giá từ: 10 Tỷ - 20 Tỷ", "Giá từ: 20 Tỷ - 30 Tỷ", "30 Tỷ - 100 Tỷ", " > 100 Tỷ"];
        var arrVal = ["0-500", "500-1000", "1000-1500", "1500-2000", "2000-3000", "3000-5000", "5000-7000", "7000-10000", "10000-20000", "20000-30000", "30000-60000", "100000-500000"];
        var arrRangeslider = ["0-1000", "500-2000", "500-2500", "500-2000", "500-4000", "1000-5000", "2000-8000", "3000-10000", "5000-15000", "8000-30000", "15000-40000", "30000-100000", "100000-10000000"];
        var arrStep = ["100", "100", "100", "100", "200", "200", "500", "500", "1000", "1000", "1000", "10000"];
        for (let index = 0; index < arrtext.length; ++index) {
            var o = new Option(arrtext[index], arrVal[index]);
            $(o).html(arrtext[index]);
            $(o).attr("data-step", arrStep[index]);
            $(o).attr("data-rangeslider", arrRangeslider[index]);
            $(o).attr("data-value", arrVal[index]);
            $("#cbo_giatien_map").append(o);
        }
    }
    else {
        var arrtext = ["Giá từ: 1 - 3 Triệu", "Giá từ: 3 - 5 Triệu", "Giá từ: 5 - 10 Triệu", "Giá từ: 10 - 20 Triệu", "Giá từ: 20 - 40 Triệu", "Giá từ: 40 - 70 Triệu", "Trên: 70 Triệu"];
        var arrVal = ["1-3", "3-5", "5-10", "10-20", "20-40", "40-70", "70-0"];
        var arrRangeslider = ["0-30", "0-30", "0-30", "10-50", "10-50", "40-100", "70-1000"];
        var arrStep = ["1", "1", "1", "2", "2", "2", "10"];
        for (let index = 0; index < arrtext.length; ++index) {
            var o = new Option(arrtext[index], arrVal[index]);
            $(o).html(arrtext[index]);
            $(o).attr("data-step", arrStep[index]);
            $(o).attr("data-rangeslider", arrRangeslider[index]);
            $(o).attr("data-value", arrVal[index]);
            $("#cbo_giatien_map").append(o);
        }
    }

    if (localStorage.getItem('khoanggia') != null && id_lt == localStorage.getItem('id_lt')) {
        if ((parseInt(fromGT) <= 0 && parseInt(toGT) <= 0) || (fromGT == '' && toGT == '')) {
            console.log('cbo_giatien_map change 2');
            $("#cbo_giatien_map").val(localStorage.getItem('khoanggia'));

            var rs = $('#cbo_giatien_map').find(':selected').data('rangeslider');
            var st = $('#cbo_giatien_map').find(':selected').data('step');

            updateSliders(rs, localStorage.getItem('khoanggia'), st)
        }
        else {
            console.log('cbo_giatien_map change 3');
            $("#cbo_giatien_map").val(localStorage.getItem('khoanggia'));
        }
    }
}

function binGiaTien(gia) {
    if (gia < 1000)
        return gia + ' Triệu';
    else
        return gia / 1000 + ' Tỷ';
}

function fillFromGia(gia) {
    if (gia == 0) {
        fromGT = '';
        cboFromGiaTien = 10;
    }
    else if (gia < 1000) {
        fromGT = gia;
        cboFromGiaTien = 10;
    }
    else {
        fromGT = gia / 1000;
        cboFromGiaTien = 10000;
    }
}

function fillToGia(gia) {
    if (gia == 0) {
        toGT = '';
        cboToGiaTien = 10000;
    }
    else if (gia < 1000) {
        toGT = gia;
        cboToGiaTien = 10;
    }
    else {
        toGT = gia / 1000;
        cboToGiaTien = 10000;
    }
    /*console.log("Para: " + fromGT + "-" + cboFromGiaTien + "-" + toGT + "-" + cboToGiaTien);*/
}

function updateSliders(rs, val, st) {
    try {
        const myArray = rs.split('-');
        const arrVal = val.split('-');

        fillFromGia(arrVal[0]);
        fillToGia(arrVal[1]);

        instance.update({
            min: myArray[0],
            max: myArray[1],
            from: arrVal[0],
            to: arrVal[1],
            step: st
        });
    }
    catch {
    }
}


$(function () {

    console.log('defauStep' + defauStep);
    $rangeSliderGia.ionRangeSlider({
        skin: "big",
        type: "double",
        grid: true,
        prefix: "",
        postfix: "",
        min: 0,
        max: Math.round(toGT * 1.5) * cboToGiaTien / 10,
        from: fromGT * cboFromGiaTien / 10,
        to: toGT * cboToGiaTien / 10,
        step: defauStep,
        onStart: function (data) {
            fillFromGia(data.from);
            fillToGia(data.to);
        },
        onChange: function (data) {
            fillFromGia(data.from);
            fillToGia(data.to);
            var _range = "Giá từ: " + binGiaTien(data.from) + " - " + binGiaTien(data.to);
            $("#cbo_giatien_map option:selected").text(_range).attr('data-value', data.from + "-" + data.to);
        }
    });

    instance = $rangeSliderGia.data("ionRangeSlider");


    bincomboboxGiatien_map($("#txtLoaiTin").val());
    
    
    $('#cbo_giatien_map').on('change', function () {
        console.log('cbo_giatien_map change');
        var rs = $(this).find(':selected').data('rangeslider');
        var val = $("#cbo_giatien_map option:selected").attr("data-value");
        var st = $(this).find(':selected').data('step');
        updateSliders(rs, val, st);
        localStorage.setItem('khoanggia', $('#cbo_giatien_map').val());
    });

    $("#btnFillter_map_home").click(function () {
        localStorage.setItem('khoanggia', $('#cbo_giatien_map').val());
        localStorage.setItem('khoangdientich', $('#cbo_dientich_map').val());
        $("#mcttCloseButton").trigger("click");

        $("#divLoading").html("Tiếp tục di chuyển bản đồ để tìm kiếm nhà dất.");
    });

    $("#btnReset_map_home").click(function () {

        sessionStorage.removeItem('sParaLoaiNha');
        sessionStorage.removeItem('sParaHuongNha');
        sessionStorage.removeItem('sParaDienTich');
        sessionStorage.removeItem('sParaPhuongXas');

        localStorage.removeItem('khoanggia');
        localStorage.removeItem('khoangdientich');
       
        $('select').each(function () {
            $(this)[0].selectedIndex = 0;
        });
        bincomboboxGiatien_map(1);
        $("#mcttCloseButton").trigger("click");
      //  moveToLocation(5000);
    });

    $('#cboLT_map').on('change', function () {
        bincomboboxGiatien_map(this.value);
        localStorage.removeItem('khoanggia');
    });


    $('#lease').click(function (e) {

        clearGiaTien();
        

        bincomboboxGiatien_map(3);
        instance.update({
            min: 0,
            max: 0,
            from: 0
        });

    });

    $('#sale').click(function (e) {

        clearGiaTien();
        localStorage.removeItem('khoanggia');

        bincomboboxGiatien_map(1);
        instance.update({
            min: 0,
            max: 0,
            from: 0
        });
    });

    $('#ContentPlaceHolder3_boxSearch1_ddlOrders').bind('change', function () {
    
        var xmlHttp;
        xmlHttp = getXMLHTTP();
        var baseUrl = '/getLookupdata?t=5&q=0';
        var requestUrl = baseUrl + '&id=' + 'getPhuong';
        var filter = 'Order,' + this.value + ',0';

        if (filter != undefined && filter != '') {
            requestUrl += '&filter=' + filter;
        }

        if (xmlHttp) {
            xmlHttp.onreadystatechange = doReadyStateChange;
            xmlHttp.open('GET', requestUrl, true);
            xmlHttp.send(null);
        }

        function doReadyStateChange() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    eval('var d=' + xmlHttp.responseText); if (d != null) { binMutipDropdownSelect(d); }
                }
                else { return; }
            }
        }

        function binMutipDropdownSelect(namevalue) {
            $("#SelectOptionPhuongXa").empty();

            for (var i = 0; i < namevalue.length; i++) {
                if (namevalue[i].value == undefined || namevalue[i].value <= 0) {
                    console.log('0');
                }
                else {

                    $("#SelectOptionPhuongXa").append("<label for=\"px" + namevalue[i].value + "\"><input type=\"checkbox\" id=\"px" + namevalue[i].value + "\" onchange=\"checkboxStatusChange(this)\" text=\"" + namevalue[i].name + "\" value=\"" + namevalue[i].value + "\" /> " + namevalue[i].name + "</label>");
                    //console.log(namevalue[i].name);
                }
            }

            var jsonPara = JSON.parse(sessionStorage.getItem('sParaPhuongXas'));
            if (jsonPara) {
                var a = jsonPara.value.split(',');

                for (let i = 0; i < a.length; i++) {
                    $("#SelectOptionPhuongXa input[value='" + a[i] + "']").prop("checked", true);
                };

            }
           
            var numchecked = 0;
            $("#SelectOptionPhuongXa input[type=checkbox]:checked").each(function () {
                numchecked++;
            });
            if (numchecked == 0) {
                clearPhuongXa();
            }
        }


    });
    

    function clearPhuongXa()
    {
        sessionStorage.removeItem('sParaPhuongXas');
        $("#cboPhuongXas").attr("data-value", 0);
        $("#cboPhuongXas").text("Tất cả");
        $("#SelectOptionPhuongXa input[type=checkbox]").prop("checked", false);
    }


    $('.rightClear').on("click", function () {
        var controlID = $(this).attr('data-controlID');
        if (controlID == 'txtFromDienTich') {
            clearDienTich();
            return;
        }
        
        if (controlID == 'cboLTs') {
            sessionStorage.removeItem('sParaLoaiTin');
            $("#cboLTs").attr("data-value", 0);
            $("#cboLTs").text("Tất cả");
            $("#mySelectOptionsLT input[type=checkbox]").prop("checked", false);
            return;
        }
        if (controlID == 'cboLNs') {
            sessionStorage.removeItem('sParaLoaiNha');
            $("#cboLNs").attr("data-value", 0);
            $("#cboLNs").text("Tất cả");
            $("#mySelectOptions input[type=checkbox]").prop("checked", false);
            return;
        }
        if (controlID == 'cboPhuongXas') {
            clearPhuongXa();
            return;
        }
        if (controlID == 'cboHNs') {
            sessionStorage.removeItem('sParaHuongNha');
            $("#cboHNs").attr("data-value", 0);
            $("#cboHNs").text("Tất cả");
            $("#SelectOptionHN input[type=checkbox]").prop("checked", false);
            return;
        }
        
        $("select#" + controlID)[0].selectedIndex = 0;

        if (controlID == 'ContentPlaceHolder3_boxSearch1_ddlCustomers') {
            $('#ContentPlaceHolder3_boxSearch1_ddlOrders').find('option').remove().end().append(new Option('Tất cả', '0'));
            clearPhuongXa();
            $('#ContentPlaceHolder3_boxSearch1_ddlProducts').find('option').remove().end().append(new Option('Tất cả', '0'));
        }

        else if (controlID == 'ContentPlaceHolder3_boxSearch1_ddlOrders') {
            $('#ContentPlaceHolder3_boxSearch1_ddlProducts').find('option').remove().end().append(new Option('Tất cả', '0'));
            clearPhuongXa();
        }
        else if (controlID == 'cbo_giatien_map') {
            clearGiaTien();
            instance.update({
                min: 0,
                max: 0,
                from: 0
            });
        }
        
    });
});

;
