1/* cached content from: config.js */ 2var config = Object(); 3config['domain'] = location.hostname; 4 5config['path'] = location.protocol+"//" + config['domain'] + "/"; 6config['nSocketUrl'] = "wss://ws.viszony.hu:443"; 7config['nPollTime'] = '30000'; 8 9config['assets'] = "assets/"; 10config['path_ajaxRequest'] = config['path'] + "ajaxRequest/"; 11config["path_upload"] = config['assets'] + "upload/"; 12 13/* Google configs */ 14config['GA_EventTracking'] = false; 15 16/* site settings */ 17config['DEBUG'] = 1; 18 19/* RTC */ 20config['rtc_host'] = 'rtc.viszony.hu'; 21config['rtc_port'] = 9001; 22config['rtc_path'] = '/vc'; 23 24/* cached content from: data.js */ 25const data = { 26 app: null, 27 appAndroid: null, 28 appIOS: null, 29 loginService: null, 30 fullWidth: false, 31 credentials: { 32 googleSSO: "1030529615611-odkbbnal67bqf6mgo5ds1re9q1plr0f1.apps.googleusercontent.com", 33 appleSSO: "com.dace.viszony.client", 34 }, 35 data: {}, 36}; 37 38function loadServerData() { 39 const dataElement = document.getElementById('server-data'); 40 const serverData = JSON.parse(dataElement.textContent); 41 data.app = serverData.environment.app; 42 data.appAndroid = serverData.environment.appAndroid; 43 data.appIOS = serverData.environment.appIOS; 44 data.loginService = serverData.environment.loginService; 45 delete serverData.environment; 46 data.data = serverData; 47 data.fullWidth = $('body').hasClass('fullWidth'); 48} 49/* cached content from: jquery-min.js */
vendor: 7,382 bytes, lines 50-51
50/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */ 51!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}
vendor: 10,969 bytes, line 51
51function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){
vendor: 11,965 bytes, line 51
51c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;
51for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; 52}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=N.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}
vendor: 6,021 bytes, line 52
52});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function W(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&T.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var X=/^(?:checkbox|radio)$/i,Y=/<([\w:-]+)/,Z=/^$|\/(?:java|ecma)script/i,$={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{}
vendor: 2,502 bytes, line 52
52,keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||d,e=c.documentElement,f=c.body,a.pageX=b.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ea.test(f)?this.mouseHooks:da.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=d),3===a.target.nodeType&&(a.target=a.target.parentNode),h.filter?h.filter(a,g):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==ia()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===ia()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ga:ha):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:ha,isPropagationStopped:ha,isImmediatePropagationStopped:ha,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ga,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ga,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ga,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}}
vendor: 8,636 bytes, line 52
52,n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),n.fn.extend({on:function(a,b,c,d){return ja(this,a,b,c,d)},one:function(a,b,c,d){return ja(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ha),this.each(function(){n.event.remove(this,a,c,b)})}});var ka=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,la=/<script|<style|<link/i,ma=/checked\s*(?:[^=]|=\s*.checked.)/i,na=/^true\/(.*)/,oa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=wa[0].contentDocument,b.write(),b.close(),c=ya(a,b),wa.detach()),xa[a]=c),c}var Aa=/^margin/,Ba=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ca=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Ea=d.documentElement;!function(){var b,c,e,f,g=d.createElement("div"),h=d.createElement("div");if(h.style){h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h);function i(){h.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Ea.appendChild(g);var d=a.getComputedStyle(h);b="1%"!==d.top,f="2px"===d.marginLeft,c="4px"===d.width,h.style.marginRight="50%",e="4px"===d.marginRight,Ea.removeChild(g)}n.extend(l,{pixelPosition:function(){return i(),b},boxSizingReliable:function(){return null==c&&i(),c},pixelMarginRight:function(){return null==c&&i(),e},reliableMarginLeft:function(){return null==c&&i(),f},reliableMarginRight:function(){var b,c=h.appendChild(d.createElement("div"));return c.style.cssText=h.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",h.style.width="1px",Ea.appendChild(g),b=!parseFloat(a.getComputedStyle(c).marginRight),Ea.removeChild(g),h.removeChild(c),b}})}}();function Fa(a,b,c){var d,e,f,g,h=a.style;return c=c||Ca(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Ba.test(g)&&Aa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0!==g?g+"":g}function Ga(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Ha=/^(none|table(?!-c[ea]).+)/,Ia={position:"absolute",visibility:"hidden",display:"block"},Ja={letterSpacing:"0",fontWeight:"400"},Ka=["Webkit","O","Moz","ms"],La=d.createElement("div").style;function Ma(a){if(a in La)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ka.length;while(c--)if(a=Ka[c]+b,a in La)return a}function Na(a,b,c){var d=T.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Oa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Pa(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ca(a),g="border-box"===n.css(a,"boxSizing",!1,f);
vendor: 10,521 bytes, line 52
52if(0>=e||null==e){if(e=Fa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ba.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Oa(a,b,c||(g?"border":"content"),d,f)+"px"}function Qa(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=N.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=N.access(d,"olddisplay",za(d.nodeName)))):(e=V(d),"none"===c&&e||N.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Fa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Ma(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=T.exec(c))&&e[1]&&(c=W(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Ma(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Fa(a,b,d)),"normal"===e&&b in Ja&&(e=Ja[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Ha.test(n.css(a,"display"))&&0===a.offsetWidth?Da(a,Ia,function(){return Pa(a,b,d)}):Pa(a,b,d):void 0},set:function(a,c,d){var e,f=d&&Ca(a),g=d&&Oa(a,b,d,"border-box"===n.css(a,"boxSizing",!1,f),f);return g&&(e=T.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=n.css(a,b)),Na(a,c,g)}}}),n.cssHooks.marginLeft=Ga(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Fa(a,"marginLeft"))||a.getBoundingClientRect().left-Da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px":void 0}),n.cssHooks.marginRight=Ga(l.reliableMarginRight,function(a,b){return b?Da(a,{display:"inline-block"},Fa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Aa.test(a)||(n.cssHooks[a+b].set=Na)}),n.fn.extend({css:function(a,b){return K(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ca(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Qa(this,!0)},hide:function(){return Qa(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function Ra(a,b,c,d,e){return new Ra.prototype.init(a,b,c,d,e)}n.Tween=Ra,Ra.prototype={constructor:Ra,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ra.propHooks[this.prop];return a&&a.get?a.get(this):Ra.propHooks._default.get(this)},run:function(a){var b,c=Ra.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ra.propHooks._default.set(this),this}},Ra.prototype.init.prototype=Ra.prototype,Ra.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},Ra.propHooks.scrollTop=Ra.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=Ra.prototype.init,n.fx.step={};var Sa,Ta,Ua=/^(?:toggle|show|hide)$/,Va=/queueHooks$/;function Wa(){return a.setTimeout(function(){Sa=void 0}),Sa=n.now()}function Xa(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=U[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ya(a,b,c){for(var d,e=(_a.tweeners[b]||[]).concat(_a.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Za(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&V(a),q=N.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?N.get(a,"olddisplay")||za(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Ua.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?za(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=N.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;N.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ya(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function $a(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function _a(a,b,c){var d,e,f=0,g=_a.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Sa||Wa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:Sa||Wa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for($a(k,j.opts.specialEasing);g>f;f++)if(d=_a.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,Ya,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(_a,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return W(c.elem,a,T.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],_a.tweeners[c]=_a.tweeners[c]||[],_a.tweeners[c].unshift(b)},prefilters:[Za],prefilter:function(a,b){b?_a.prefilters.unshift(a):_a.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=_a(this,n.extend({},a),f);(e||N.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=N.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Va.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=N.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Xa(b,!0),a,d,e)}}),n.each({slideDown:Xa("show"),slideUp:Xa("hide"),slideToggle:Xa("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Sa=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Sa=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ta||(Ta=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(Ta),Ta=null},n.fx.speeds={slow:600,fast:200,_default:400}
vendor: 6,137 bytes, lines 52-53
52,n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",l.checkOn=""!==a.value,l.optSelected=c.selected,b.disabled=!0,l.optDisabled=!c.disabled,a=d.createElement("input"),a.value="t",a.type="radio",l.radioValue="t"===a.value}();var ab,bb=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return K(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ab:void 0)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)}}),ab={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=bb[b]||n.find.attr;bb[b]=function(a,b,d){var e,f;return d||(f=bb[b],bb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,bb[b]=f),e}});var cb=/^(?:input|select|textarea|button)$/i,db=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return K(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]), 53void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):cb.test(a.nodeName)||db.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var eb=/[\t\r\n\f]/g;function fb(a){return a.getAttribute&&a.getAttribute("class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,fb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,fb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,fb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=fb(this),b&&N.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":N.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+fb(c)+" ").replace(eb," ").indexOf(b)>-1)return!0;return!1}});var gb=/\r/g,hb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(gb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(hb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(n.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var ib=/^(?:focusinfocus|focusoutblur)$/;n.extend(n.event,{trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!ib.test(q+n.event.triggered)&&(q.indexOf(".")>
vendor: 4,848 bytes, line 53
53-1&&(r=q.split("."),q=r.shift(),r.sort()),l=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},f||!o.trigger||o.trigger.apply(e,c)!==!1)){if(!f&&!o.noBubble&&!n.isWindow(e)){for(j=o.delegateType||q,ib.test(j+q)||(h=h.parentNode);h;h=h.parentNode)p.push(h),i=h;i===(e.ownerDocument||d)&&p.push(i.defaultView||i.parentWindow||a)}g=0;while((h=p[g++])&&!b.isPropagationStopped())b.type=g>1?j:o.bindType||q,m=(N.get(h,"events")||{})[b.type]&&N.get(h,"handle"),m&&m.apply(h,c),m=l&&h[l],m&&m.apply&&L(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=q,f||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!L(e)||l&&n.isFunction(e[q])&&!n.isWindow(e)&&(i=e[l],i&&(e[l]=null),n.event.triggered=q,e[q](),n.event.triggered=void 0,i&&(e[l]=i)),b.result}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b)}}),n.fn.extend({trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),l.focusin="onfocusin"in a,l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=N.access(d,b);e||d.addEventListener(a,c,!0),N.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=N.access(d,b)-1;e?N.access(d,b,e):(d.removeEventListener(a,c,!0),N.remove(d,b))}}});var jb=a.location,kb=n.now(),lb=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var mb=/#.*$/,nb=/([?&])_=[^&]*/,ob=/^(.*?):[ \t]*([^\r\n]*)$/gm,pb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,qb=/^(?:GET|HEAD)$/,rb=/^\/\//,sb={},tb={},ub="*/".concat("*"),vb=d.createElement("a");vb.href=jb.href;function wb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function xb(a,b,c,d){var e={},f=a===tb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function yb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function zb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Ab(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:jb.href,type:"GET",isLocal:pb.test(jb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML}
vendor: 2,391 bytes, line 53
53,flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?yb(yb(a,n.ajaxSettings),b):yb(n.ajaxSettings,a)},ajaxPrefilter:wb(sb),ajaxTransport:wb(tb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m=n.ajaxSetup({},c),o=m.context||m,p=m.context&&(o.nodeType||o.jquery)?n(o):n.event,q=n.Deferred(),r=n.Callbacks("once memory"),s=m.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(2===v){if(!h){h={};while(b=ob.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===v?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return v||(a=u[c]=u[c]||a,t[a]=b),this},overrideMimeType:function(a){return v||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>v)for(b in a)s[b]=[s[b],a[b]];else x.always(a[x.status]);return this},abort:function(a){var b=a||w;return e&&e.abort(b),z(0,b),this}};if(q.promise(x).complete=r.add,x.success=x.done,x.error=x.fail,m.url=((b||m.url||jb.href)+"").replace(mb,"").replace(rb,jb.protocol+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=n.trim(m.dataType||"*").toLowerCase().match(G)||[""],null==m.crossDomain){j=d.createElement("a");try{j.href=m.url,j.href=j.href,m.crossDomain=vb.protocol+"//"+vb.host!=j.protocol+"//"+j.host}catch(y){m.crossDomain=!0}}if(m.data&&m.processData&&"string"!=typeof m.data&&(m.data=n.param(m.data,m.traditional)),xb(sb,m,c,x),2===v)return x;k=n.event&&m.global,k&&0===n.active++&&n.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!qb.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(lb.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=nb.test(f)?f.replace(nb,"$1_="+kb++):f+(lb.test(f)?"&":"?")+"_="+kb++)),m.ifModified&&(n.lastModified[f]&&x.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&x.setRequestHeader("If-None-Match",n.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",m.contentType),x.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+ub+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)x.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(o,x,m)===!1||2===v))return x.abort();w="abort";for(l in{success:1,error:1,complete:1})x[l](m[l]);
vendor: 5,045 bytes, line 53
53if(e=xb(tb,m,c,x)){if(x.readyState=1,k&&p.trigger("ajaxSend",[x,m]),2===v)return x;m.async&&m.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},m.timeout));try{v=1,e.send(t,z)}catch(y){if(!(2>v))throw y;z(-1,y)}}else z(-1,"No Transport");function z(b,c,d,h){var j,l,t,u,w,y=c;2!==v&&(v=2,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(u=zb(m,x,d)),u=Ab(m,u,x,j),j?(m.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(n.lastModified[f]=w),w=x.getResponseHeader("etag"),w&&(n.etag[f]=w)),204===b||"HEAD"===m.type?y="nocontent":304===b?y="notmodified":(y=u.state,l=u.data,t=u.error,j=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),x.status=b,x.statusText=(c||y)+"",j?q.resolveWith(o,[l,y,x]):q.rejectWith(o,[x,y,t]),x.statusCode(s),s=void 0,k&&p.trigger(j?"ajaxSuccess":"ajaxError",[x,m,j?l:t]),r.fireWith(o,[x,y]),k&&(p.trigger("ajaxComplete",[x,m]),--n.active||n.event.trigger("ajaxStop")))}return x},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return!n.expr.filters.visible(a)},n.expr.filters.visible=function(a){return a.offsetWidth>0||a.offsetHeight>0||a.getClientRects().length>0};var Bb=/%20/g,Cb=/\[\]$/,Db=/\r?\n/g,Eb=/^(?:submit|button|image|reset|file)$/i,Fb=/^(?:input|select|textarea|keygen)/i;function Gb(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Cb.test(a)?d(a,e):Gb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Gb(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Gb(c,a[c],b,e);return d.join("&").replace(Bb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Fb.test(this.nodeName)&&!Eb.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Db,"\r\n")}}):{name:b.name,value:c.replace(Db,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Hb={0:200,1223:204},Ib=n.ajaxSettings.xhr();l.cors=!!Ib&&"withCredentials"in Ib,l.ajax=Ib=!!Ib,n.ajaxTransport(function(b){var c,d;return l.cors||Ib&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Hb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}
53),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=n("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Jb=[],Kb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Jb.pop()||n.expando+"_"+kb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Kb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Kb,"$1"+e):b.jsonp!==!1&&(b.url+=(lb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Jb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ca([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var Lb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Lb)return Lb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function Mb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(e=d.getBoundingClientRect(),c=Mb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ea})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;n.fn[a]=function(d){return K(this,function(a,d,e){var f=Mb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ga(l.pixelPosition,function(a,c){return c?(c=Fa(a,b),Ba.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return K(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)},size:function(){return this.length}}),n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Nb=a.jQuery,Ob=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Ob),b&&a.jQuery===n&&(a.jQuery=Nb),n},b||(a.jQuery=a.$=n),n}); 54 55/* cached content from: js.cookie.min.js */ 56/*! js-cookie v3.0.0-rc.0 | MIT */ 57!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var r=e.Cookies,n=e.Cookies=t();n.noConflict=function(){return e.Cookies=r,n}}())}(this,function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)e[n]=r[n]}return e}var t={read:function(e){return e.replace(/%3B/g,";")},write:function(e){return e.replace(/;/g,"%3B")}};return function r(n,i){function o(r,o,u){if("undefined"!=typeof document){"number"==typeof(u=e({},i,u)).expires&&(u.expires=new Date(Date.now()+864e5*u.expires)),u.expires&&(u.expires=u.expires.toUTCString()),r=t.write(r).replace(/=/g,"%3D"),o=n.write(String(o),r);var c="";for(var f in u)u[f]&&(c+="; "+f,!0!==u[f]&&(c+="="+u[f].split(";")[0]));return document.cookie=r+"="+o+c}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var r=document.cookie?document.cookie.split("; "):[],i={},o=0;o<r.length;o++){var u=r[o].split("="),c=u.slice(1).join("="),f=t.read(u[0]).replace(/%3D/g,"=");if(i[f]=n.read(c,f),e===f)break}return e?i[e]:i}},remove:function(t,r){o(t,"",e({},r,{expires:-1}))},withAttributes:function(t){return r(this.converter,e({},this.attributes,t))},withConverter:function(t){return r(e({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(n)}})}(t,{path:"/"})}); 58 59/* cached content from: ajax-form.js */ 60/**
61 * Form kezelÅ osztály ami submit esetén automatikusan AJAx kérést indÃt 62 * @constructor 63 */ 64function AjaxForm(){ 65 let instance = this; 66 /** 67 * Form objektuma amit kezel az osztály 68 * @type {jQuery} 69 */ 70 this.$form = null; 71 /** 72 * Callback ami kérésnél lesz végrehajva válasznál 73 * @type {AjaxCallback} 74 */ 75 this.callback = null; 76 /** 77 * BeállÃtásokat tároló tömb 78 * <strong>ajaxHandleResponseOnSuccess</strong>: Ha true akkor hozzáadja az alap kezelÅ AjaxRepsonse kezelÅt<br/> 79 * <strong>dataType</strong>: ajax kérés válasz tÃpusa<br/> 80 * <strong>method</strong>: ajax kérés methodja(GET, POST, stb...)<br/> 81 * <strong>cache</strong>: ha true akkor nem lesz a cache disabled 82 * @type {Object} 83 */ 84 this.options = { 85 handleResponseOnSuccess: true, 86 dataType: "json", 87 method: "POST", 88 cache: false, 89 action: null, 90 }; 91 92 this.settings = { 93 active: true, 94 }; 95 96 this.beforeProcessListeners = []; 97 98 /** 99 * Inicializációs függévny 100 * @param {jQuery} $form form aminek az eseményei kezelve lesznek 101 * @param {undefined|AjaxCallback} callback 102 * @param {undefined|Object} options tulajdonságai:<br/> 103 * <strong>ajaxHandleResponseOnSuccess</strong>: Ha true akkor hozzáadja az alap kezelÅ AjaxRepsonse kezelÅt<br/> 104 * @return {void} 105 */ 106 this.init = function($form, callback, options) { 107 this.$form = $form; 108 if (typeof callback === "object" && callback instanceof AjaxCallback) { 109 this.callback = callback 110 } else { 111 this.callback = new AjaxCallback(); 112 } 113 if (typeof options === "object") { 114 if (typeof options.handleResponseOnSuccess === "boolean") { 115 this.options.handleResponseOnSuccess = options.handleResponseOnSuccess; 116 } 117 if (typeof options.action === "string") { 118 this.options.action = options.action; 119 } 120 } 121 if (this.options.action === null) { 122 this.options.action = this.$form.prop("action"); 123 } 124 this.bindEvents(); 125 }; 126 127 /** 128 * Eseményke hozzáadása 129 * @return {void} 130 */ 131 this.bindEvents = function() { 132 this.$form.on("submit", function (e) { 133 instance.submit(e); 134 }); 135 }; 136 137 /** 138 * Form submit esetén futt le az ajax kérést intézi el és a form serializálását 139 * @param {Event} e 140 * @return {void} 141 */ 142 this.submit = function (e) { 143 if (this.settings.active) { 144 e.preventDefault(); 145 let options = { 146 method: "post", 147 dataType: Ajax.dataTypeJson, 148 handleResponseOnSuccess: this.options.handleResponseOnSuccess, 149 }; 150 for (const func of this.beforeProcessListeners) { 151 func(); 152 } 153 Ajax.process(this.options.action, this.getFormData(), options, this.callback, instance.$form); 154 } 155 }; 156 157 this.setActive = function (active) { 158 this.settings.active = active; 159 } 160 161 this.getFormData = function () { 162 return instance.$form.serialize(); 163 }; 164 165 this.addBeforeProcessListener = function (func) { 166 if (typeof func === "function") { 167 this.beforeProcessListeners.push(func); 168 } 169 } 170} 171/* cached content from: ajax-response-handler.js */ 172/** 173 * Ajax válaszokat kezelÅ objektum 174 * @type {Object} 175 */ 176window.AjaxResponseHandler = { 177 /** 178 * Válasz tÃpusa átirányÃtás 179 * @return {void} 180 */ 181 responseTypeRedirect: "redirect", 182 /** 183 * Válasz tÃpusa átadott függvény meghÃvása 184 * @return {void} 185 */ 186 responseTypeScript: "script", 187 /** 188 * Válasz tÃpusa rendszer üzenet 189 * @return {void} 190 */ 191 responseTypeSysMsg: "sysmsg", 192 /** 193 * Válasz tÃpusa nincs végrehajtás 194 * Abban az esetben hasznos ha csak vissza adunk adatokat amiket egy custom handler fog kezelni 195 * @return {void} 196 */ 197 responseTypeNoExecute: "no_execute", 198 199 /** 200 * Sikeres ajax kérés esetén kell meghÃvni a válasz feldogolgozására 201 * @param {Object} response 202 * @return {void} 203 */ 204 process: function(response){ 205 switch (response.type){ 206 case this.responseTypeRedirect: 207 this.processRedirect(response.data); 208 break; 209 case this.responseTypeScript: 210 this.processScript(response.data); 211 break; 212 case this.responseTypeSysMsg: 213 this.processSysMsg(response.data); 214 if(this.responseTypeScript in response.data) { 215 this.processScript(response.data); 216 } 217 break; 218 case this.responseTypeNoExecute: 219 break; 220 default: 221 if (config['debug'] === 1) {
222 console.error("Nincs ilyen válasz tÃpus: " + response.type); 223 } 224 break; 225 } 226 }, 227 228 /** 229 * Az átirányÃtás válasz feldolgozását intézi 230 * @param {Object} data 231 * @return {void} 232 */ 233 processRedirect: function (data) { 234 if (data.param === 'refresh') { 235 location.reload(); 236 } else { 237 location.href = data.param; 238 } 239 }, 240 241 /** 242 * Script feldolgozását végzÅ függvény 243 * @param {Object} data 244 * @return {void} 245 */ 246 processScript: function (data) { 247 if (typeof data.script !== "undefined") { 248 let lastPoint = data.script.lastIndexOf("."); 249 if (lastPoint === -1) { 250 if (typeof window[data.script] === "function") { 251 window[data.script](data.param); 252 } 253 } else { 254 let arr = data.script.split("."); 255 let obj = window; 256 for (let i = 0; i < arr.length - 1; i++) { 257 if (typeof obj[arr[i]] === "object") { 258 obj = obj[arr[i]]; 259 } else { 260 break; 261 } 262 } 263 if (typeof obj[arr[arr.length - 1]] === "function") { 264 obj[arr[arr.length - 1]](data.param); 265 } 266 } 267 } 268 }, 269 270 /** 271 * Egy rendszer üzenet választ hajt végre 272 * @param {Object} data 273 * @return {void} 274 */ 275 processSysMsg: function (data) { 276 Viszony.LayerHandler.showFlashMessage(data.message); 277 }, 278}; 279/* cached content from: ajax.js */ 280/** 281 * Ajax kéréseket kezelÅ Objektum 282 * @type {Object} 283 */ 284Ajax = { 285 286 /** 287 * Visszatérési tÃpust jelÅlÅ változó 288 * @type {string} 289 */ 290 dataTypeJson: "json", 291 292 responseError: "error", 293 294 responseSuccess: "success", 295 296 /** 297 * A controller és method változókból elkészÃti ajax kérés url-t amit átadva a tövvi változóval meghÃvja a process függvényt 298 * @param {string} controller 299 * @param {string} method 300 * @param {Object} data 301 * @param {Object} [options] 302 * @param {AjaxCallback} [callback] 303 * @return {jqXHR} 304 */ 305 processByParams: function(controller, method, data, options, callback) { 306 let url; 307 if (typeof method !== "string") { 308 url = config['path_ajaxRequest'] + controller; 309 } else { 310 url = config['path_ajaxRequest'] + controller + "/" + method; 311 } 312 return this.process(url, data, options, callback); 313 }, 314 315 /** 316 * Ajax kérést hoz létre a megadott url-re 317 * @param {string} url 318 * @param {Object} data átadott adat Objecktum ami el les POST-olvas vagy GET paraméterekhez hozzáadva 319 * @param {Object} [options] értékei:<br/> 320 * <strong>method</strong>: string a kérés tÃpusa(POST, GET, stb....) 321 * @param {AjaxCallback} [callback] ha undefined akkor létre hoz egy sajátot és hozzáadja a AjaxResponseHandler-t 322 * @param form Ha meg van adva, akkor az ajax hÃvás idejére form--loading class-t ad a formnak 323 * @return {jqXHR} 324 */ 325 process: function(url, data, options, callback, form) { 326 let opts = { 327 method: null, 328 dataType: this.dataTypeJson, 329 handleResponseOnSuccess: true, 330 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 331 processData: true, 332 }; 333 if (!(callback instanceof AjaxCallback)) { 334 callback = new AjaxCallback(); 335 } 336 opts.method = "POST"; 337 if (typeof options === "object" && options !== null) { 338 if (typeof options.method === "string") { 339 opts.method = options.method; 340 } 341 if (typeof options.contentType === "boolean") { 342 opts.contentType = options.contentType; 343 } 344 if (typeof options.processData === "boolean") { 345 opts.processData = options.processData; 346 } 347 } 348 if (opts.handleResponseOnSuccess) { 349 let callbacks = callback.getSuccessCallbacks(); 350 let found = false;
351 for (let i = 0; i < callbacks.length; i++) { 352 if (callbacks[i] === this.successCallback) { 353 found = true; 354 break; 355 } 356 } 357 if (!found) { 358 callback.addSuccessCallback(this.successCallback); 359 } 360 } 361 if (typeof data === "undefined") { 362 data = {}; 363 } 364 if(typeof form != 'undefined') { 365 form.addClass('form--loading'); 366 } 367 return $.ajax({ 368 url: url, 369 method: opts.method, 370 dataType: opts.dataType, 371 data: data, 372 cache: false, 373 contentType: opts.contentType, 374 processData: opts.processData, 375 success: function (result) { 376 let functions = callback.getSuccessCallbacks(); 377 for (let i = 0; i < functions.length; i++) { 378 functions[i](result); 379 } 380 if(typeof form != 'undefined') { 381 form.removeClass('form--loading'); 382 } 383 }, 384 error: function (error) { 385 callback.errorCallback(error); 386 if(typeof form != 'undefined') { 387 form.removeClass('form--loading'); 388 } 389 }, 390 completed: function () { 391 for (const func of callback.getExecutedCallbacks()) { 392 func(); 393 } 394 }, 395 }); 396 }, 397 398 /** 399 * Ha nincs megadva vagy az alap kezelés engedélyezve van akkor ez a függvény fut le 400 * @param {array} result 401 * @return {void} 402 */ 403 successCallback: function (result) { 404 AjaxResponseHandler.process(result); 405 }, 406 407 /** 408 * @param {string} url 409 * @param {Object|FormData} data 410 * @param {Object} [settings] 411 * @return {Promise} 412 */ 413 get(url, data, settings) { 414 return this.request(url, 'GET', data, settings); 415 }, 416 417 /** 418 * @param {string} url 419 * @param {Object|FormData} data 420 * @param {Object} [settings] 421 * @return {Promise} 422 */ 423 post(url, data, settings) { 424 return this.request(url, 'POST', data, settings); 425 }, 426 427 /** 428 * 429 * @param {string} url 430 * @param {string} method 431 * @param {Object|FormData} data 432 * @param {Object} [settings] 433 * @return {Promise} 434 */ 435 request(url, method, data, settings) { 436 const opts = { 437 dataType: 'json', 438 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 439 processData: true, 440 }; 441 if (typeof settings === 'object') { 442 for (const key in opts) { 443 if (typeof settings[key] !== 'undefined') { 444 opts[key] = settings[key]; 445 } 446 } 447 } 448 return new Promise((resolve, reject) => { 449 return $.ajax({ 450 url: url, 451 method: method, 452 dataType: opts.dataType, 453 data: data, 454 cache: false, 455 contentType: opts.contentType, 456 processData: opts.processData, 457 success: function (result) { 458 AjaxResponseHandler.process(result); 459 resolve(result); 460 }, 461 error: function (error) { 462 reject(error); 463 }, 464 }); 465 }); 466 467 }, 468} 469
470/* cached content from: form-errors.js */ 471/** 472 * Form hibákat kezelÅ osztály 473 * @constructor 474 */ 475function FormErrors() { 476 let instance = this; 477 /** 478 * Form aminek a hibáit kezel az objektum 479 * @type {jQuery} 480 */ 481 this.$form = null; 482 /** 483 * Input groupokat tároló Objektum az input name tag-jét használja property kulcsnak 484 * @type {Object} 485 */ 486 this.inputGroups = {}; 487 /** 488 * A formra vonatkozó beáállÃtások<br/> 489 * <strong>inputGroupClass</strong>: input gropuok azonosÃtására szolgáló osztály<br/> 490 * <strong>inputGroupErrorClass</strong>: input group hibáját jelzÅ osztály<br/> 491 * <strong>ierrorElementClass</strong>: Hiba üzenet aktÃv státuszát jelszó osztály<br/> 492 * @type {Object} 493 */ 494 this.options = { 495 inputGroupClass: "input-group", 496 inputGroupErrorClass: "input-group--has-error", 497 inputGroupHideLabelErrorClass: "input-group--hide-error-label", 498 errorElementClass: "input-group__error", 499 hideErrorsAfterTime: 3000, 500 hideAnimationTime: 400, 501 }; 502 503 /** 504 * Inicializációs függvény 505 * @param {jQuery} $form a Form amit kezel az osztály 506 * @param {undefined|Object} options az osztály options objektumával mergeli összes a valid elemeket tulajdonságai:<br/> 507 * <strong>inputGroupClass</strong>: input gropuok azonosÃtására szolgáló osztály<br/> 508 * <strong>inputGroupErrorClass</strong>: input group hibáját jelzÅ osztály<br/> 509 * <strong>ierrorElementClass</strong>: Hiba üzenet aktÃv státuszát jelszó osztály<br/> 510 * @return {void} 511 */ 512 this.init = function ($form, options) { 513 this.$form = $form; 514 if (typeof options === "object") { 515 if (typeof options.inputGroupClass === "string") { 516 this.options.inputGroupClass = options.inputGroupClass; 517 } 518 if (typeof options.inputGroupErrorClass === "string") { 519 this.options.inputGroupErrorClass = options.inputGroupErrorClass; 520 } 521 if (typeof options.errorElementClass === "string") { 522 this.options.errorElementClass = options.errorElementClass; 523 } 524 } 525 this.refreshElements(); 526 this.bindEvents(); 527 }; 528 529 this.bindEvents = function () { 530 this.$form.on("focus", ".input-group input, .input-group textarea, .input-group select", function (e) { 531 let $inputGroup = $($(e.target).parents(".input-group")); 532 if ($inputGroup.hasClass(instance.options.inputGroupErrorClass) && !$inputGroup.hasClass(instance.options.inputGroupHideLabelErrorClass)) { 533 $inputGroup.addClass(instance.options.inputGroupHideLabelErrorClass); 534 } 535 }); 536 }; 537 538 this.refreshElements = function () { 539 this.inputGroups = {}; 540 $.each(this.$form.find("." + this.options.inputGroupClass), function (index, element) { 541 let $element = $(element); 542 instance.addElement($element, $element.find("." + instance.options.errorElementClass), $element.data('inputName')); 543 }); 544 }; 545 546 /** 547 * Hozzáad az elemkehz egy új elemet 548 * @param {jQuery} $element input group elem 549 * @param {jQuery} $errorMessage input group hibe üzenet eleme 550 * @param {string} name input neve 551 * @return {void} 552 */ 553 this.addElement = function($element, $errorMessage, name) { 554 this.inputGroups[name] = { 555 $element: $element, 556 $errorMessage: $errorMessage, 557 name: name, 558 }; 559 }; 560 561 /** 562 * Elrejti a meglevÅ hibaüzeneteket és megjeleÃnti az újjakat 563 * @param {Object} result 564 * @return {void} 565 */ 566 this.showErrors = function (result) { 567 this.hideErrors(); 568 for (let name in result) { 569 if (typeof result[name] === "string") { 570 this.showError(name, result[name]); 571 } else { 572 this.showError(name, result[name][0]); 573 } 574 } 575 let errors = $('.input-group.' + this.options.inputGroupErrorClass); 576 if(errors.length > 0) { 577 var scrollTop = errors.first().offset().top - 90; 578 if($(window).innerWidth() >= 768 || $('.mobile-tab-handler').length == 0) { 579 var container = $('html, body'); 580 } else { 581 var container = $('.mobile-tab-handler'); 582 scrollTop += $('.mobile-tab-handler').scrollTop(); 583 } 584 container.animate({ 585 scrollTop: scrollTop + 'px' 586 }, 500); 587 } 588 setTimeout(function () { 589 instance.hideErrorsExpire(); 590 }, this.options.hideErrorsAfterTime); 591 }; 592 593 /** 594 * MegjelÃt egy hiba üzenetet az elemhez 595 * @param {string} name elem neve amihez tartozik az üzenet 596 * @param {string} message üzenet tartalma 597 * @return {void} 598 */ 599 this.showError = function (name, message) { 600 if (typeof this.inputGroups[name] === "object") { 601 this.inputGroups[name].$element.addClass(this.options.inputGroupErrorClass); 602 this.inputGroups[name].$errorMessage.html(message); 603 } else { 604 if (config['DEBUG'] === 1) { 605 console.error('MezÅ nem található: ' + name); 606 } 607 } 608 }; 609 610 this.hideErrorsExpire = function () { 611 for (let name in this.inputGroups) { 612 this.inputGroups[name].$errorMessage.animate({ 613 opacity: 0, 614 }, this.options.hideAnimationTime, function () { 615 instance.inputGroups[name].$element.addClass(instance.options.inputGroupHideLabelErrorClass); 616 instance.inputGroups[name].$errorMessage.css({ 617 opacity: 1, 618 }); 619 }); 620 } 621 }; 622 623 /** 624 * Elrejti a hibaüzeteket az összes elemnél 625 * @return {void} 626 */ 627 this.hideErrors = function () { 628 for (let name in this.inputGroups) { 629 this.inputGroups[name].$element.removeClass(this.options.inputGroupErrorClass); 630 this.inputGroups[name].$element.removeClass(this.options.inputGroupHideLabelErrorClass); 631 } 632 }; 633} 634
635/* cached content from: ajax-callback.js */ 636/** 637 * Ajax callback osztály, callback-ek tárolására 638 * Sikeresek kérés kezelésére több callback adható hozzá 639 * @constructor 640 */ 641function AjaxCallback(){ 642 /** 643 * Sikeres hÃvások callbackjeit tároló tömb 644 * @type {function[]} 645 */ 646 this.successCallbacks = []; 647 648 /** 649 * Ha visszatért a vcálasz és fel lett dolgozva akkor fut le és mindenképpen lefut 650 * @type {function[]} 651 */ 652 this.executedCallbacks = []; 653 654 /** 655 * FelülÃrandó függvény az ajax kérés esetén fellépÅ hiba kezelésére 656 * @return {void} 657 */ 658 this.errorCallback = function(error){ 659 if (config['DEBUG']) { 660 console.error(error); 661 } 662 }; 663 664 /** 665 * Hozzáad egy sikeres ajax kérést kezelÅ függvényt a meglevÅkhöz 666 * @param {function} fn 667 */ 668 this.addSuccessCallback = function(fn) { 669 this.successCallbacks.push(fn); 670 }; 671 672 /** 673 * Visszaadja a sikeres ajax kérést kezelÅ callback függvényeket 674 * @return {function[]} 675 */ 676 this.getSuccessCallbacks = function () { 677 return this.successCallbacks; 678 }; 679 680 /** 681 * 682 * @param {function} func 683 */ 684 this.addExecutedCallback = function (func) { 685 if (typeof func !== "function") { 686 if (config['DEBUG']) { 687 console.error("Nem függvény paraméter"); 688 } 689 return; 690 } 691 this.executedCallbacks.push(func); 692 } 693 694 /** 695 * 696 * @return {function[]} 697 */ 698 this.getExecutedCallbacks = function () { 699 return this.executedCallbacks; 700 } 701} 702/* cached content from: layer.js */ 703/** 704 * Layer kezelÅ osztály 705 * @param {jQuery} $overlay 706 * @constructor 707 */ 708function Layer($overlay) { 709 let instance = this; 710 /** 711 * Overlay 712 * @type {jQuery} 713 */ 714 this.$overlay = $overlay; 715 /** 716 * Layer 717 * @type {jQuery} 718 */ 719 this.$content = null; 720 /** 721 * AktÃv állapotot jelölÅ osztály 722 * @type {string} 723 */ 724 this.activateClass = "layer--active"; 725 726 this.options = { 727 closeOnOverlayClick: true, 728 }; 729 730 /** 731 * Inicializálást végrehajtó függvény 732 * @param {Object} options 733 * @return {void} 734 */ 735 this.init = function (options) { 736 this.mergeOptions(options); 737 if (!this.options.closeOnOverlayClick) { 738 this.$overlay.addClass("layer--not-close-overlay"); 739 } 740 this.$content = this.$overlay.find(".layer__content"); 741 this.bindEvents(); 742 }; 743 744 /** 745 * Események hozzáadása 746 * @return {void} 747 */ 748 this.bindEvents = function () { 749 if (this.options.closeOnOverlayClick) { 750 let closeAllowed = false; 751 this.$overlay.on("mouseup", function (e) { 752 if (closeAllowed) { 753 const $target = $(e.target); 754 if ($target[0] === instance.$overlay[0] || $target.hasClass('layer__container')) { 755 instance.close(); 756 } 757 } 758 closeAllowed = false; 759 }); 760 this.$overlay.on("mousedown", function (e) { 761 const $target = $(e.target); 762 if ($target[0] === instance.$overlay[0] || $target.hasClass('layer__container')) { 763 closeAllowed = true; 764 } 765 }); 766 } 767 this.$content.find(".layer__close").on("click", function () { 768 instance.close(); 769 }); 770 }; 771 772 /** 773 * Layer megnyitása 774 * @return {void} 775 */ 776 this.open = function () { 777 this.$overlay.addClass(this.activateClass); 778 }; 779 780 this.isOpen = function (){ 781 return this.$overlay.hasClass(this.activateClass); 782 }; 783 784 /** 785 * Layer bezárása 786 * @return {void} 787 */ 788 this.close = function () { 789 this.$overlay.removeClass(this.activateClass); 790 this.closeListener(); 791 }; 792 793 this.mergeOptions = function (options) { 794 if (typeof options === "object") { 795 if (typeof options.closeOnOverlayClick === "boolean") { 796 this.options.closeOnOverlayClick = options.closeOnOverlayClick; 797 } 798 } 799 }; 800 801 this.closeListener = function () { 802 }; 803} 804
805/* cached content from: confirm-message.js */ 806function ConfirmMessage($overlay){ 807 let instance = this; 808 809 this.$overlay = $overlay; 810 811 this.layer = null; 812 813 this.$message = null; 814 815 this.$accept = null; 816 817 this.$cancel = null; 818 819 this.init = function(){ 820 this.layer = new Layer(this.$overlay); 821 this.layer.init(); 822 this.$message = $("#confirm-message-text"); 823 this.$accept = $("#confirm-message-accept"); 824 this.$cancel = $("#confirm-message-cancel"); 825 this.bindEvents(); 826 }; 827 828 this.bindEvents = function(){ 829 this.$accept.on("click", function () { 830 instance.acceptCallback(); 831 }); 832 this.$cancel.on("click", function () { 833 instance.cancelCallback(); 834 }); 835 }; 836 837 this.setMessage = function(message) { 838 this.$message.html(message); 839 }; 840 841 this.setAcceptLabel = function (label) { 842 this.$accept.html(label); 843 }; 844 845 this.setCancelLabel = function (label) { 846 this.$cancel.html(label); 847 }; 848 849 this.open = function () { 850 this.layer.open(); 851 }; 852 853 this.close = function () { 854 this.layer.close(); 855 }; 856 857 this.acceptCallback = function(){ 858 }; 859 860 this.cancelCallback = function(){ 861 } 862} 863/* cached content from: init.js */ 864if (typeof Viszony === "undefined") { 865 var Viszony = {}; 866} 867 868$(document).ready(function() { 869 if (typeof loadServerData === 'function') { 870 loadServerData(); 871 } 872 initModules(); 873}); 874 875function initModules() { 876 $.each(Viszony, function (index, element) { 877 if (typeof element.init === "function") { 878 element.init(); 879 } 880 }); 881} 882/* cached content from: utils.js */ 883 884Viszony.Utils = { 885 loadScript: function (fileName) { 886 return new Promise((resolve, reject) => { 887 const script = document.createElement("script"); 888 script.setAttribute("src", fileName); 889 script.setAttribute("type", "text/javascript"); 890 document.body.appendChild(script); 891 892 script.addEventListener("load", () => { 893 resolve(); 894 }); 895 896 script.addEventListener("error", (err) => { 897 reject(err); 898 }) 899 }); 900 }, 901 902 requestUrl: function (name) { 903 return 'ajaxRequest/' + name; 904 } 905 906} 907/* cached content from: responsiveness.js */ 908/** 909 * Automatikus kicsinyÃtést megvalósÃtó objektum 910 * 911 * @type {Object} 912 */ 913Viszony.responsiveness = { 914 915 init: function() { 916 this.scaleContainer(); 917 this.bindEvents(); 918 }, 919 920 scaleContainer: function() { 921 var element = $('.container.layout'); 922 var w = window.innerWidth; 923 var paddingTop = element.data('padding-top'); 924 925 var scale = 1; 926 if(w >= 768 && w < 960) { 927 if(typeof paddingTop == 'undefined') { 928 paddingTop = parseInt(element.css('padding-top')); 929 element.data('padding-top', paddingTop); 930 } 931 932 scale = (w - 10) / 960; 933 paddingTop = Math.round(paddingTop / scale); 934 935 element.css({ 936 'transform': 'scale(' + scale + ')', 937 'padding-top': paddingTop + 'px' 938 }); 939 } else { 940 element.css({ 941 'transform': '', 942 'padding-top': '' 943 }); 944 } 945 }, 946 947 bindEvents: function() { 948 var self = this; 949 950 $(window).resize(function() { 951 self.scaleContainer(); 952 }); 953 } 954 955}; 956/* cached content from: helper.js */ 957Viszony.Helper = { 958 tablet_breakpoint: 768, 959 960 search_url: config['path_ajaxRequest'] + "search/search", 961 favourites_search_url: config['path_ajaxRequest'] + "connection/favouritesSearch", 962 connection_search_url: config['path_ajaxRequest'] + "connection/connectionSearch", 963 connection_other_search_url: config['path_ajaxRequest'] + "connection/connectionOtherSearch", 964 story_search_url: config['path_ajaxRequest'] + "story/search", 965 966 Url: { 967 setEnding: function(value, replace) { 968 if(typeof replace == 'undefined') replace = true; 969 baseUrl = [location.protocol, '//', location.host, location.pathname].join(''); 970 urlQueryString = document.location.search; 971 urlParts = baseUrl.split('/'); 972 var lastPart = urlParts[urlParts.length - 1]; 973 974 if($.isNumeric(lastPart)) { 975 urlParts[urlParts.length - 1] = undefined; 976 var newUrl = urlParts.join('/') + value + urlQueryString; 977 } else { 978 var newUrl = baseUrl;
979 if(newUrl.charAt(newUrl.length - 1) != '/') { 980 newUrl += '/'; 981 } 982 newUrl += value + urlQueryString; 983 } 984 985 if(replace) { 986 window.history.replaceState({}, "", newUrl); 987 } else{ 988 window.history.pushState({}, "", newUrl); 989 } 990 }, 991 992 removeParameter: function(param) { 993 var urlParts = window.location.href.split('?'); 994 if(urlParts.length == 1) return; 995 var url = urlParts[0]+'?'; 996 var sPageURL = decodeURIComponent(window.location.search.substring(1)), 997 sURLVariables = sPageURL.split('&'); 998 999 for (var i = 0; i < sURLVariables.length; i++) { 1000 var sParameterName = sURLVariables[i].split('='); 1001 if (sParameterName[0] != param) { 1002 url = url + sParameterName[0] + '=' + sParameterName[1] + '&' 1003 } 1004 } 1005 1006 window.history.replaceState({}, "", url.substring(0, url.length - 1)); 1007 } 1008 }, 1009 1010 getScrollTop: function() { 1011 return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; 1012 }, 1013 1014 ConsentManagement: { 1015 gtag: function() { 1016 window.dataLayer.push(arguments); 1017 }, 1018 1019 setGoogleConsentMode: function() { 1020 let version = Cookies.get('cookieOptionsVersion'); 1021 1022 if (typeof version == 'undefined' || version < 2) { 1023 let options = Cookies.get('cookieOptions'); 1024 if (typeof options == 'undefined') return; 1025 1026 options = options.split(';'); 1027 if(options.indexOf('marketing=1') != -1) { 1028 this.gtag('consent', 'update', { 1029 'ad_user_data': 'granted', 1030 'ad_personalization': 'granted' 1031 }); 1032 } 1033 1034 Cookies.set('cookieOptionsVersion', 2, { 1035 expires: 3650, 1036 path: "/", 1037 }); 1038 } 1039 } 1040 } 1041 1042}; 1043/* cached content from: form-handler.js */ 1044/** 1045 * Form kezelÅ objektum 1046 * @type {Object} 1047 */ 1048Viszony.FormHandler = { 1049 1050 /** 1051 * Inicializációs függvény 1052 * az ajax-form osztállyal rendelkezÅ formok-hoz automatikusan létrehoz egy AjaxForm objektumot 1053 * és hozzáadja a megfelelÅ kezelÅ objektumot 1054 * @return {void} 1055 */ 1056 init: function () { 1057 let instance = this; 1058 $.each($(".ajax-form"), function (index, element) { 1059 instance.addAjaxForm($(element)); 1060 }); 1061 }, 1062 1063 addAjaxForm: function($form, ajaxCallback, options) { 1064 let instance = this; 1065 if (typeof ajaxCallback === "undefined" || ajaxCallback === null) { 1066 ajaxCallback = new AjaxCallback(); 1067 } 1068 let formErrors = new FormErrors(); 1069 formErrors.init($form); 1070 ajaxCallback.addSuccessCallback(function (result) { 1071 instance.showErrors(formErrors, result); 1072 }); 1073 let ajaxForm = new AjaxForm(); 1074 ajaxForm.init($form, ajaxCallback, options); 1075 return ajaxForm; 1076 }, 1077 1078 /** 1079 * Ha vannak a válaszban hibák akkor automatikus megjeléenÃti Åket ha nincs akkor elrejti Åket 1080 * @param {FormErrors} formErrors 1081 * @param {Object} result 1082 * @return {void} 1083 */ 1084 showErrors: function (formErrors, result) { 1085 if (typeof result.data.param === "object" && typeof result.data.param.errors === "object") { 1086 formErrors.showErrors(result.data.param.errors); 1087 } else { 1088 formErrors.hideErrors(); 1089 } 1090 }, 1091}; 1092 1093/* cached content from: layer-handler.js */ 1094/** 1095 * Layerek kezelését végzÅ objektum 1096 * @type {Object} 1097 */ 1098Viszony.LayerHandler = { 1099 1100 /** 1101 * Flash masseage layer objektum 1102 * @type {Layer} 1103 */ 1104 flashMessage: null, 1105 1106 confirmMessage: null, 1107 1108 /** 1109 * Inicializációs függvény 1110 * Sys message inicializálása és ha van üzeneet megjelenÃtése 1111 * @return {void} 1112 */ 1113 init: function(){ 1114 this.initFlashMessage(); 1115 if (typeof sysMessage !== "undefined") {
1116 this.showFlashMessage(sysMessage); 1117 } 1118 this.initConfirmMessage(); 1119 let $openLayers = $(".layer[data-show=\"1\"]"); 1120 $.each($openLayers, function (index, element) { 1121 let layer = new Layer($(element)); 1122 layer.init(); 1123 layer.open(); 1124 }); 1125 }, 1126 1127 /** 1128 * Flash message megjelenÃtését végzi 1129 * @param {string} message üzenet 1130 * @return {void} 1131 */ 1132 showFlashMessage: function (message) { 1133 this.flashMessage.setMessage(message); 1134 this.flashMessage.open(); 1135 }, 1136 1137 showConfirmMessage: function (message, acceptCallback, cancelCallback, acceptLabel, cancelLabel) { 1138 this.confirmMessage.setMessage(message); 1139 this.confirmMessage.acceptCallback = acceptCallback; 1140 if (typeof cancelCallback === "function") { 1141 this.confirmMessage.cancelCallback = cancelCallback; 1142 } 1143 if(typeof acceptLabel !== "string") { 1144 acceptLabel = lang['common.accept']; 1145 } 1146 this.confirmMessage.setAcceptLabel(acceptLabel); 1147 if(typeof cancelLabel !== "string") { 1148 cancelLabel = lang['common.cancel']; 1149 } 1150 this.confirmMessage.setCancelLabel(cancelLabel); 1151 this.confirmMessage.open(); 1152 }, 1153 1154 /** 1155 * Inicialiizálja a flash messaget 1156 * @return {void} 1157 */ 1158 initFlashMessage: function () { 1159 let $flashMessageOverlay = $("#flash-message"); 1160 this.flashMessage = new Layer($flashMessageOverlay); 1161 this.flashMessage.init(); 1162 this.flashMessage.$message = $flashMessageOverlay.find("#flash-message-text"); 1163 this.flashMessage.setMessage = function (message) { 1164 this.$message.html(message); 1165 }; 1166 }, 1167 1168 initConfirmMessage: function () { 1169 let $overlay = $("#confirm-message"); 1170 this.confirmMessage = new ConfirmMessage($overlay); 1171 this.confirmMessage.init(); 1172 }, 1173 1174}; 1175 1176/* cached content from: vc-common.js */ 1177Viszony.vcCommon = { 1178 1179 partnerID: undefined, 1180 1181 token: undefined, 1182 1183 termsLayer: undefined, 1184 1185 requestLayer: undefined, 1186 1187 ringSignal: undefined, 1188 1189 messageUrl: undefined, 1190 1191 callerHasVideo: true, 1192 1193 termsLayerCallback: undefined, 1194 1195 invitationCallback: undefined, 1196 1197 init: function() { 1198 if($('.videochat-request-layer').length > 0) { 1199 this.termsLayer = new Layer($('#videochat-terms-layer')); 1200 this.termsLayer.init(); 1201 1202 this.requestLayer = new Layer($('#videochat-request-layer')); 1203 this.requestLayer.init(); 1204 1205 this.ringSignal = $('.videochat-request-layer__ring-signal')[0]; 1206 this.ringSignal.volume = 0.5; 1207 } 1208 1209 this.bindEvents(); 1210 }, 1211 1212 showRequestLayer: function(param) { 1213 if(typeof Viszony.videochat == 'object') { 1214 if(Viszony.videochat.isBusy) { 1215 Viszony.vcCommon.vBusy(param.callerID, param.params.token); 1216 return; 1217 } 1218 1219 Viszony.videochat.setCallerData(param.callerID, param.params.token, param.params.msgID); 1220 } 1221 1222 this.partnerID = param.callerID; 1223 this.token = param.params.token; 1224 this.messageUrl = param.params.messageUrl; 1225 this.callerHasVideo = param.params.callerHasVideo; 1226 1227 var data = { 1228 'nick': param.params.callerNick, 1229 'avatar': param.params.callerAvatar 1230 }; 1231 1232 $('.videochat-request-layer__avatar').attr('src', data.avatar); 1233 $('.videochat-request-layer h2 .nick').text(data.nick); 1234 1235 this.requestLayer.open(); 1236 1237 if(param.params.recipientMuted === false) { 1238 this.ringSignal.currentTime = 0; 1239 this.ringSignal.play(); 1240 } 1241 }, 1242 1243 hideRequestLayer: function() { 1244 this.ringSignal.pause(); 1245 this.requestLayer.close(); 1246 }, 1247 1248 answerCall: function() { 1249 if(typeof Viszony.videochat == 'object') { 1250 if(Viszony.messages.getPartnerId() != this.partnerID) { 1251 var item = $('.messages-page .conversations__item[data-id="' + this.partnerID + '"]'); 1252 1253 if(item.length > 0) { 1254 Viszony.messages.loadConversation(this.partnerID); 1255 setTimeout(function() { 1256 Viszony.videochat.showPreview(true); 1257 }, 0); 1258 } else { 1259 location.href = this.messageUrl; 1260 } 1261 } else { 1262 Viszony.videochat.showPreview(true); 1263 } 1264 } else { 1265 location.href = this.messageUrl; 1266 } 1267 }, 1268 1269 showTermsLayer: function(callback) { 1270 var self = this; 1271 1272 this.termsLayerCallback = callback; 1273 1274 setTimeout(function() { 1275 self.termsLayer.open(); 1276 }, 100); 1277 }, 1278 1279 bindEvents: function() { 1280 var self = this; 1281 1282 $('.videochat-request-layer__button--answer').click(function() { 1283 self.ringSignal.pause(); 1284 self.requestLayer.close(); 1285 1286 if($('.videochat-terms-layer').length > 0) { 1287 self.showTermsLayer(function() { 1288 self.answerCall(); 1289 }); 1290 return; 1291 } 1292 1293 self.answerCall(); 1294 }); 1295 1296 $('.videochat-request-layer__button--reject').click(function() { 1297 self.ringSignal.pause(); 1298 self.requestLayer.close(); 1299 1300 Viszony.vcCommon.vDeny(self.partnerID, self.token); 1301 }); 1302 1303 $('.videochat-terms-layer__button--cancel').click(function() { 1304 if(typeof self.token != 'undefined') { 1305 Viszony.vcCommon.vDeny(self.partnerID, self.token); 1306 } 1307 self.termsLayer.close(); 1308 }); 1309 1310 $('.videochat-terms-layer__button--continue').click(function() { 1311 if(!$('.videochat-terms-layer input[name="accept"]').is(':checked')) { 1312 $('.videochat-terms-layer__error').show(); 1313 return; 1314 } 1315 1316 Ajax.processByParams('message', 'setVideoChatTermsAccepted'); 1317 1318 $('.messages-page .start-videochat').removeClass('start-videochat--show-vi
1318deochat-terms-layer'); 1319 1320 self.termsLayer.close(); 1321 1322 setTimeout(function() { 1323 $('.videochat-terms-layer').remove(); 1324 }, 1000); 1325 1326 if(typeof self.termsLayerCallback == 'function') { 1327 self.termsLayerCallback(); 1328 self.termsLayerCallback = undefined; 1329 } 1330 }); 1331 1332 }, 1333 1334 // websocket callbacks 1335 1336 // bejövÅ videóhÃvás 1337 _vIncomingCall: function(param){ 1338 this.showRequestLayer(param); 1339 }, 1340 1341 // hÃvás elfogadása utáni callback 1342 _vStartCall: function(param){ 1343 if(Viszony.videochat.hasVideo()) { 1344 Viszony.videochat.connect(param.token); 1345 } else { 1346 Viszony.videochat.token = param.token; 1347 Viszony.videochat.accept(); 1348 } 1349 }, 1350 1351 // hÃvás elutasÃtása utáni callback 1352 _vEndCall: function(param){ 1353 Viszony.videochat.showEndInfo(param.action); 1354 }, 1355 1356 // hiba történt 1357 _vErrorHandler: function(param){ 1358 if(typeof param.msg != 'undefined' && param.msg != '') { 1359 Viszony.LayerHandler.showFlashMessage(param.msg); 1360 } 1361 }, 1362 1363 // websocket methods 1364 1365 // accept video call 1366 vAccept: function(uid, token){ 1367 scope.sendRequest('videochat', 'acceptVideo', {userID: uid, token: token}); 1368 return true; 1369 }, 1370 1371 // deny video call 1372 vDeny: function(uid, token){ 1373 // hasonlóan mint az elfogadást 1374 scope.sendRequest('videochat', 'denyVideo', {userID: uid, token: token}); 1375 return false; 1376 }, 1377 1378 // iam busy 1379 vBusy: function(uid, token){ 1380 // hasonlóan mint az elfogadást csak instant válasz van, hogy foglalt. 1381 scope.sendRequest('videochat', 'busyVideo', {userID: uid, token: token}); 1382 return false;// callback legyen? 1383 }, 1384 1385 // stop video call 1386 vStop: function(uid, token){ 1387 // hasonlóan mint az elfogadást 1388 scope.sendRequest('videochat', 'stopVideo', {userID: uid, token: token}); 1389 return false; 1390 } 1391 1392}; 1393/* cached content from: crosstab.min.js */ 1394/*! 1395 * crosstab JavaScript Library v0.2.12 1396 * https://github.com/tejacques/crosstab 1397 * 1398 * License: Apache 2.0 https://github.com/tejacques/crosstab/blob/master/LICENSE 1399 * 1400 * Copyright 2015 Tom Jacques 1401 * 1402 * Licensed under the Apache License, Version 2.0 (the "License"); 1403 * you may not use this file except in compliance with the License. 1404 * You may obtain a copy of the License at 1405 * 1406 * http://www.apache.org/licenses/LICENSE-2.0 1407 * 1408 * Unless required by applicable law or agreed to in writing, software 1409 * distributed under the License is distributed on an "AS IS" BASIS, 1410 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1411 * See the License for the specific language governing permissions and 1412 * limitations under the License. 1413 * 1414 */ 1415(function(window,define){define("crosstab",function(require,exports,module){var useragent=(window.navigator&&(window.navigator.userAgent||window.navigator.vendor))||window.opera||"none";var isMobile=(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|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(useragent)||/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 )|
1415sy(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(useragent.substr(0,4)));var localStorage;try{localStorage=window.localStorage;localStorage=window["ie8-eventlistener/storage"]||window.localStorage;}catch(e){}var setItemAllowed=true;try{localStorage.setItem("__crosstab","");localStorage.removeItem("__crosstab");}catch(e){setItemAllowed=false;}var frozenTabEnvironment=false;function notSupported(){if(crosstab.supported){return;}var errorMsg="crosstab not supported";var reasons=[];if(!localStorage){reasons.push("localStorage not availabe");}if(!window.addEventListener){reasons.push("addEventListener not available");}if(isMobile){reasons.push("mobile browser");}if(frozenTabEnvironment){reasons.push("frozen tab environment detected");}if(!setItemAllowed){reasons.push("localStorage.setItem not allowed");}if(reasons.length>0){errorMsg+=": "+reasons.join(", ");}throw new Error(errorMsg);}var util={keys:{MESSAGE_KEY:"crosstab.MESSAGE_KEY",TABS_KEY:"crosstab.TABS_KEY",MASTER_TAB:"MASTER_TAB",SUPPORTED_KEY:"crosstab.SUPPORTED",FROZEN_TAB_ENVIRONMENT:"crosstab.FROZEN_TAB_ENVIRONMENT"}};util.isArray=Array.isArray||function(arr){return arr instanceof Array;};util.isNumber=function(num){return typeof num==="number";};util.isFunction=function(fn){return typeof fn==="function";};util.forEachObj=function(obj,fn){for(var key in obj){if(obj.hasOwnProperty(key)){fn.call(obj,obj[key],key,obj);}}};util.forEachArr=function(arr,fn){var len=arr.length;for(var i=0;i<len;i++){fn.call(arr,arr[i],i,arr);}};util.forEach=function(thing,fn){if(util.isArray(thing)){util.forEachArr(thing,fn);}else{util.forEachObj(thing,fn);}};util.map=function(thing,fn){var res=[];util.forEach(thing,function(item,key,obj){res.push(fn(item,key,obj));});return res;};util.filter=function(thing,fn){var isArr=util.isArray(thing);var res=isArr?[]:{};if(isArr){util.forEachArr(thing,function(value,key){if(fn(value,key)){res.push(value);}});}else{util.forEachObj(thing,function(value,key){if(fn(value,key)){res[key]=value;}});}return res;};util.reduce=function(thing,fn,accumulator){var first=arguments.length<3;util.forEach(thing,function(item,key,obj){if(first){accumulator=item;first=false;}else{accumulator=fn(accumulator,item,key,obj);}});return accumulator;};util.now=function(){return(new Date()).getTime();};util.tabs=getStoredTabs();util.eventTypes={becomeMaster:"becomeMaster",demoteFromMaster:"demotedFromMaster",tabUpdated:"tabUpdated",tabClosed:"tabClosed",tabPromoted:"tabPromoted"};util.storageEventKeys=util.reduce(util.keys,function(keys,val){keys[val]=1;return keys;},{});util.createEventHandler=function(){var events={};var subscribeKeyToListener={};var findHandlerByKey=function(event,key){var handler;if(subscribeKeyToListener[event]){handler=subscribeKeyToListener[event][key];}return handler;};var findHandlerIndex=function(event,listener){var listenerIndex=-1;var eventList=events[event];if(eventList&&listener){var len=eventList.length||0;for(var i=0;i<len;i++){if(eventList[i]===listener){listenerIndex=i;break;}}}return listenerIndex;};var addListener=function(event,listener,key){var handlers=listeners(event);var storedHandler=findHandlerByKey(event,key);var listenerIndex;if(storedHandler===undefined){listenerIndex=handlers.length;handlers[listenerIndex]=listener;if(!subscribeKeyToListener[event]){(subscribeKeyToListener[event]={});}if(key){subscribeKeyToListener[event][key]=listener;}}else{listenerIndex=findHandlerIndex(event,storedHandler);handlers[listenerIndex]=listener;}return key||listener;};var removeListener=function(event,key){var handler=util.isFunction(key)?key:findHandlerByKey(event,key);var listenerIndex=findHandlerIndex(event,handler);if(listenerIndex===-1){return false;}if(events[event]&&events[event][listenerIndex]){events[event].splice(listenerIndex,1);delete subscribeKeyToListener[event][key];return true;}return false;};var removeAllListeners=function(event){var successful=false;if(event){if(events[event]){delete events[event];successful=true;}if(subscribeKeyToListener[event]){delete subscribeKeyToListener[event];successful=successful&&true;}}else{events={};subscribeKeyToListener={};successful=true;}return successful;};var emit=function(event){var args=Array.prototype.slice.call(arguments,1
1415);var handlers=listeners(event);util.forEach(handlers,function(listener){if(util.isFunction(listener)){listener.apply(this,args);}});};var once=function(event,listener,key){while(!key||(findHandlerByKey(event,key)!==undefined)){key=util.generateId();}addListener(event,function(){removeListener(event,key);var args=Array.prototype.slice.call(arguments);listener.apply(this,args);},key);return key;};var listeners=function(event){var handlers=events[event]=events[event]||[];return handlers;};var destructor=function(){clearInterval(crosstab.keepAliveInterval);removeAllListeners();};return{addListener:addListener,destructor:destructor,on:addListener,off:function(event,key){var argsLen=arguments.length;if(!argsLen){return removeAllListeners();}else{if(argsLen===1){return removeAllListeners(event);}else{return removeListener(event,key);}}},once:once,emit:emit,listeners:listeners,removeListener:removeListener,removeAllListeners:removeAllListeners};};var eventHandler=util.createEventHandler();util.events={addListener:eventHandler.addListener,on:eventHandler.on,off:eventHandler.off,once:eventHandler.once,emit:eventHandler.emit,listeners:eventHandler.listeners,removeListener:eventHandler.removeListener,removeAllListeners:eventHandler.removeAllListeners,destructor:eventHandler.destructor};var lastNewValue;var lastOldValue;function onStorageEvent(event){if(!event||!(event.key in util.storageEventKeys)){return;}var eventValue;try{eventValue=event.newValue?JSON.parse(event.newValue):{};}catch(e){eventValue={};}if(!eventValue||!eventValue.id||eventValue.id===crosstab.id){return;}if(event.newValue===lastNewValue&&event.oldValue===lastOldValue){return;}lastNewValue=event.newValue;lastOldValue=event.oldValue;if(event.key===util.keys.MESSAGE_KEY){var message=eventValue.data;if(!message.destination||message.destination===crosstab.id){eventHandler.emit(message.event,message);}}else{if(event.key===util.keys.FROZEN_TAB_ENVIRONMENT){frozenTabEnvironment=eventValue.data;crosstab.supported=crosstab.supported&&!eventValue.data;}else{if(event.key===util.keys.SUPPORTED_KEY){crosstab.supported=crosstab.supported&&eventValue.data;}}}}function setLocalStorageItem(key,data){var storageItem={id:crosstab.id,data:data,timestamp:util.now()};localStorage.setItem(key,JSON.stringify(storageItem));}function getLocalStorageItem(key){var item=getLocalStorageRaw(key);return item.data;}function getLocalStorageRaw(key){var json=localStorage?localStorage.getItem(key):null;var item=json?JSON.parse(json):{};return item;}function unload(){crosstab.stopKeepalive=true;var numTabs=0;util.forEach(util.tabs,function(tab,key){if(key!==util.keys.MASTER_TAB){numTabs++;}});if(numTabs===1){util.tabs={};setStoredTabs();}else{broadcast(util.eventTypes.tabClosed,crosstab.id);}}function restoreLoop(){crosstab.stopKeepalive=false;keepaliveLoop();}function swapUnloadEvents(){window.removeEventListener("beforeunload",unload,false);window.addEventListener("unload",unload,false);restoreLoop();}function getMaster(){return util.tabs[util.keys.MASTER_TAB];}function setMaster(newMaster){util.tabs[util.keys.MASTER_TAB]=newMaster;}function deleteMaster(){delete util.tabs[util.keys.MASTER_TAB];}function getMasterId(){var master=getMaster();return master?master.id:0;}function isMaster(){return getMasterId()===crosstab.id;}function masterTabElection(){var maxId=null;util.forEach(util.tabs,function(tab){if(!maxId||tab.id<maxId){maxId=tab.id;}});if(maxId===crosstab.id){broadcast(util.eventTypes.tabPromoted,crosstab.id);}else{setMaster({id:maxId,lastUpdated:util.now()});}}eventHandler.addListener(util.eventTypes.tabClosed,function(message){var id=message.data;if(id in util.tabs){delete util.tabs[id];}var master=getMaster();if(!master||master.id===id){if(master){deleteMaster();}masterTabElection();}else{if(master.id===crosstab.id){setStoredTabs();}}});eventHandler.addListener(util.eventTypes.tabUpdated,function(message){var tab=message.data;util.tabs[tab.id]=tab;if(!getMaster()){masterTabElection();}if(getMasterId()===tab.id){setMaster(tab);}if(isMaster()){setStoredTabs();}});var bullying;eventHandler.addListener(util.eventTypes.tabPromoted,function(message){var id=message.data;var lastUpdated=message.timestamp;var previousMaster=getMasterId();if(crosstab.id<id){if(!bullying){bullying=setTimeout(function(){bullying=0;broadcast(util.eventTypes.tabPromoted,crosstab.id);},0);}return;}setMaster({id:id,lastUpdated:lastUpdated});if(isMaster()){setStoredTabs();}if(isMaster()&&previousMaster!==crosstab.id){util.events.emit(util.eventTypes.becomeMaster);}else{if(!isMaster()&&previousMaster===crosstab.id){util.events.emit(util.eventTypes.demoteFromMaster);}}});function pad(num,width,padChar){padChar=padChar||"0";var numStr=(num.toString());if(numStr.length>=width){return numStr;}return new Array(width-numStr.length+1).join(padChar)+numStr;}util.generateId=function(){return util.now().toString()+pad((Math.random()*2147483647)|0,10);};function broadcast(event,data,destination){if(!crosstab.supported){notSupported();}
1415var message={id:util.generateId(),event:event,data:data,destination:destination,origin:crosstab.id,timestamp:util.now()};if(message.destination!==message.origin){setLocalStorageItem(util.keys.MESSAGE_KEY,message);}if(!message.destination||message.destination===message.origin){eventHandler.emit(event,message);}}function broadcastMaster(event,data){broadcast(event,data,getMaster().id);}var setupComplete=false;util.events.once("setupComplete",function(){setupComplete=true;});var crosstab=function(fn){if(setupComplete){fn();}else{util.events.once("setupComplete",fn);}};crosstab.id=util.generateId();crosstab.supported=!!localStorage&&window.addEventListener&&!isMobile&&setItemAllowed;crosstab.util=util;crosstab.broadcast=broadcast;crosstab.broadcastMaster=broadcastMaster;crosstab.on=util.events.on;crosstab.once=util.events.once;crosstab.off=util.events.off;var CACHE_TIMEOUT=10*60*1000;if(!setupComplete&&crosstab.supported){var frozenTabsRaw=getLocalStorageRaw(util.keys.FROZEN_TAB_ENVIRONMENT);if(frozenTabsRaw.timestamp){var frozenTabs=frozenTabsRaw.data;if(util.now()-frozenTabsRaw.timestamp>CACHE_TIMEOUT){localStorage.removeItem(util.keys.FROZEN_TAB_ENVIRONMENT);}else{if(frozenTabs===true){frozenTabEnvironmentDetected();}}}var supportedRaw=getLocalStorageRaw(util.keys.SUPPORTED_KEY);if(supportedRaw.timestamp){var supported=supportedRaw.data;if(util.now()-supportedRaw.timestamp>CACHE_TIMEOUT){localStorage.removeItem(util.keys.SUPPORTED_KEY);}else{if(supported===false||supported===true){crosstab.supported=supported;util.events.emit("setupComplete");}}}}function frozenTabEnvironmentDetected(){crosstab.supported=false;frozenTabEnvironment=true;setLocalStorageItem(util.keys.FROZEN_TAB_ENVIRONMENT,true);setLocalStorageItem(util.keys.SUPPORTED_KEY,false);}var TAB_KEEPALIVE=3*1000;var TAB_TIMEOUT=5*1000;var PING_TIMEOUT=500;function getStoredTabs(){var storedTabs=getLocalStorageItem(util.keys.TABS_KEY);util.tabs=storedTabs||util.tabs||{};return util.tabs;}function setStoredTabs(){setLocalStorageItem(util.keys.TABS_KEY,util.tabs);}function keepalive(){var now=util.now();var myTab={id:crosstab.id,lastUpdated:now};broadcast(util.eventTypes.tabUpdated,myTab);function stillAlive(tab){return now-tab.lastUpdated<TAB_TIMEOUT;}function notAlive(tab,key){return key!==util.keys.MASTER_TAB&&!stillAlive(tab);}var deadTabs=util.filter(util.tabs,notAlive);util.forEach(deadTabs,function(tab){broadcast(util.eventTypes.tabClosed,tab.id);});if(!setupComplete){var master=getMaster();if(master&&master.id!==myTab.id){var timeout;var start;crosstab.util.events.once("PONG",function(){if(!setupComplete){clearTimeout(timeout);setLocalStorageItem(util.keys.SUPPORTED_KEY,true);setLocalStorageItem(util.keys.FROZEN_TAB_ENVIRONMENT,false);util.events.emit("setupComplete");}});start=util.now();var recursiveTimeout=function(iters){var diff=util.now()-start;if(!setupComplete){if(iters<=0&&diff>PING_TIMEOUT){frozenTabEnvironmentDetected();util.events.emit("setupComplete");}else{timeout=setTimeout(function(){recursiveTimeout(iters-1);},5);}}};var iterations=5;timeout=setTimeout(function(){recursiveTimeout(5);},PING_TIMEOUT-5*iterations);crosstab.broadcastMaster("PING");}else{if(master&&master.id===myTab.id){util.events.emit("setupComplete");}}}}function keepaliveLoop(){if(crosstab.supported&&!crosstab.stopKeepalive){keepalive();}}if(!crosstab.supported){crosstab.broadcast=notSupported;}else{window.addEventListener("storage",onStorageEvent,false);window.addEventListener("beforeunload",unload,false);window.addEventListener("DOMContentLoaded",swapUnloadEvents,false);util.events.on("PING",function(message){if(!message.destination||message.destination!==crosstab.id){return;}if(util.now()-message.timestamp<PING_TIMEOUT){crosstab.broadcast("PONG",null,message.origin);}});crosstab.keepAliveInterval=setInterval(keepaliveLoop,TAB_KEEPALIVE);keepaliveLoop();}module.exports=crosstab; 1416/*! 1417 * UMD/AMD/Global context Module Loader wrapper 1418 * 1419 * This wrapper will try to use a module loader with the 1420 * following priority: 1421 * 1422 * 1.) AMD 1423 * 2.) CommonJS 1424 * 3.) Context Variable (this) 1425 * - window in the browser 1426 * - module.exports in node and browserify 1427 */ 1428});})(typeof window=="object"?window:global,typeof define=="function"&&define.amd?define:(function(context){return typeof module=="object"?function(name,factory){factory(require,exports,module);}:function(name,factory){var module={exports:{}};var require=function(n){if(n==="jquery"){n="jQuery";}return context[n];};factory(require,module.exports,module);context[name]=module.exports;};})(this)); 1429/* cached content from: shared-events.js */ 1430var nSocket = { 1431 _wsServer: config['nSocketUrl'], 1432 _websocket: null, 1433 _reconnectTime: (5000+Math.random()*10000), 1434 _terminatedSession: false, 1435 init: function (scope){ 1436 if (wsOnline === false){ 1437 console.log('nSocket init failed: mode-polling'); 1438 return false;
1439 } 1440 console.log('nSocket init...'); 1441 if (crosstab.supported && scope._iamMaster === false){ 1442 console.log('clientTab from cache'); 1443 scope.getLastInfo(); 1444 return false; 1445 } 1446 if (this._websocket !== null){ 1447 console.log('socket already exists...'); 1448 return false; 1449 } 1450 if (wsNotify.didInitialize()===false){ 1451 console.log('ws init stop'); 1452 return false; 1453 } 1454 1455 this._websocket = new WebSocket(this._wsServer); 1456 var websocket = this._websocket; 1457 wsNotify._info.selectedPlatform = 'nSocket'; 1458 console.log('nSocket started ('+this._wsServer+')...'); 1459 1460 websocket.onopen = function (evt) { 1461 console.log("Connected to ws server."); 1462 1463 /*if(crosstab.supported) { 1464 crosstab.broadcast('disableMessagePolling', {}); 1465 } else { 1466 if(typeof Viszony.messages == 'object') { 1467 Viszony.messages.disablePolling(); 1468 } 1469 }*/ 1470 }; 1471 1472 websocket.onclose = function (evt) { 1473 nSocket._websocket = null; 1474 console.log("Disconnected"); 1475 // megpróbálunk újra csatlakozni 1476 nSocket.reconnect(scope); 1477 }; 1478 1479 websocket.onmessage = function (evt) { 1480 //console.log('Retrieved data from server: ' + evt.data); 1481 1482 // if result, then broadcast for all tab 1483 var jData = JSON.parse(evt.data); 1484 if (crosstab.supported){ 1485 if (jData.result == 'request'){ 1486 AjaxResponseHandler.process(jData); 1487 }else{ 1488 scope.sendMessage(jData); 1489 } 1490 }else{ 1491 AjaxResponseHandler.process(jData); 1492 } 1493 }; 1494 1495 websocket.onerror = function (evt, e) { 1496 console.log('Connection error, change to polling'); 1497 nSocket._websocket = null; 1498 console.log("Disconnected"); 1499 // megpróbálunk újra csatlakozni 1500 //nSocket.reconnect(scope); 1501 wsOnline = false; 1502 scope.startClient(); 1503 1504 /*if(typeof Viszony.messages == 'object') { 1505 if(crosstab.supported) { 1506 crosstab.broadcast('enableMessagePolling', {}); 1507 } else { 1508 if(typeof Viszony.messages == 'object') { 1509 Viszony.messages.enablePolling(); 1510 } 1511 } 1512 }*/ 1513 }; 1514 }, 1515 reconnect: function(scope){ 1516 if (this._terminatedSession === true){ 1517 console.log("Session terminated, try to polling"); 1518 wsOnline = false; 1519 scope.startClient(); 1520 return false; 1521 } 1522 var that = this; 1523 setTimeout(function(){ 1524 console.log("Reconnect..."); 1525 that.init(scope); 1526 }, this._reconnectTime); 1527 }, 1528 sendMsg: function (msg){ 1529 if (this._websocket !== null) { 1530 try { 1531 this._websocket.send(msg); 1532 } catch(e) { 1533 console.log("Websocket error: " + e.message); 1534 } 1535 } 1536 }, 1537}; 1538 1539var nPoll = { 1540 _url: "/ajaxRequest/user/notification", 1541 _fetchInterval: config['nPollTime'], 1542 _pollCounter: 0, 1543 1544 init: function(scope){ 1545 if (crosstab.supported && wsOnline === true){ 1546 console.log('nPoll init failed: mode-ws'); 1547 return false; 1548 } 1549 1550 /*console.log('nPoll exited'); 1551 return false;*/ 1552 1553 wsNotify._info.selectedPlatform = 'nPoll'; 1554 console.log('nPoll init...'); 1555 if (crosstab.supported && scope._iamMaster === false){ 1556 console.log('clientTab from cache'); 1557 scope.getLastInfo(); 1558 return false; 1559 } 1560 if (wsNotify.didInitialize()===false){ 1561 console.log('poll init stop'); 1562 return false; 1563 } 1564 1565 if (this._pollCounter == 0){ 1566 var that = this; 1567 setInterval(function() { 1568 that.connect(scope); 1569 }, this._fetchInterval); 1570 } 1571 1572 this.connect(scope); 1573 }, 1574 1575 connect: function(scope){ 1576 this._pollCounter++; 1577 $.getJSON(this._url, function(result) { 1578 if (crosstab.supported) { 1579 scope.sendMessage(result); 1580 }else{ 1581 AjaxResponseHandler.process(result); 1582 } 1583 }); 1584 } 1585}; 1586 1587var wsNotify = { 1588 _title: null, 1589 _inited: false, 1590 _cache: {}, 1591 _info: { 1592 selectedPlatform: null, 1593 }, 1594 _messagePageCounter: null, 1595 1596 init: function() { 1597 this._title = document.title; 1598 var that = this; 1599 this._inited = true; 1600 this._messagePageCounter = $('#newMessageCount'); 1601 1602 if (this.didInitialize() === false){ 1603 return false;
1604 } 1605 1606 scope.updateTabs(); 1607 //scope.startClient(); 1608 }, 1609 1610 setReaded: function(uid){ 1611 var msg = {request: 'pull', post: {userID: uid, action: 'setReaded'}}; 1612 scope.sendRequest('notifySystem', 'setReaded', msg); 1613 }, 1614 1615 _updateNotify: function(result){ 1616 var that = this; 1617 1618 if (typeof result.msg != 'undefined' && result.msg !== null){ 1619 /*if ($('.newMessageFlag').length > 0){ 1620 $('.newMessageFlag').removeClass('hidden'); 1621 }*/ 1622 1623 /*if ($('.messageViewContainer').length > 0 && $('.messageViewContainer').data('receipt-id') == result.msg.sender.id){ 1624 result.mail = result.mail - 1; 1625 messageSendingHandler.addMessageToHolder(result.msg, 'in'); 1626 wsNotify.setReaded(result.msg.sender.id); 1627 }*/ 1628 } 1629 1630 //if(typeof Viszony.messages == 'object' && Viszony.messages.pollingEnabled === false) { 1631 //Viszony.messages.poll(); 1632 // wsNotify.setReaded(result.msg.sender.id); 1633 //} 1634 1635 result.msg = undefined; 1636 var sum = 0; 1637 for(var counter in result) { 1638 that._showHeaderCounter(counter, result[counter]); 1639 if(result[counter]) sum += result[counter]; 1640 } 1641 1642 /*$('.notifications').find('.notification').each(function(index, elem) { 1643 var elem = $(elem); 1644 var elemName = elem.data('name'); 1645 var count = result[elemName]; 1646 if(count == undefined) { 1647 return true; 1648 } 1649 sum += count; 1650 that._cache[elemName] = count; 1651 if(count <= 0) { 1652 that._inactivateElement(elem); 1653 } else { 1654 that._showCountOnElement(elem, count); 1655 } 1656 1657 });*/ 1658 1659 /*if(sum > 0){ 1660 document.title = '(' +sum + ') ' + that._title; 1661 } else { 1662 document.title = that._title; 1663 }*/ 1664 }, 1665 1666 _updateInfo: function(param){ 1667 this._info = param; 1668 }, 1669 1670 _showHeaderCounter: function(counter, count) { 1671 if(counter == 'message' && typeof Viszony.messages == 'object') { 1672 if (this._messagePageCounter) { 1673 this._messagePageCounter.text(count); 1674 } 1675 return; 1676 } 1677 1678 var el = $('.header__counter--' + counter); 1679 if(el.length == 0) return; 1680 1681 if(count > 0) { 1682 if(count > 99) count = '99+'; 1683 el.text(count) 1684 .show(); 1685 } else { 1686 el.hide(); 1687 } 1688 }, 1689 1690 /*_inactivateElement: function(elem) { 1691 if(!elem.hasClass('inactive')) { 1692 elem.addClass('inactive'); 1693 } 1694 }, 1695 1696 _showCountOnElement: function(elem, count) { 1697 elem.removeClass('inactive'); 1698 elem.find('.unreadCounter span').html(count); 1699 },*/ 1700 1701 getInfo: function(){ 1702 var msg = {request: 'pull', post: {processor: 'notifySystem', action: 'getInfo'}}; 1703 crosstab.broadcast('message', {'type': 'script', 'msg': msg}, scope.masterTab.id); 1704 }, 1705 1706 didInitialize: function() { 1707 if(this._inited === false) { 1708 this.init(); 1709 } 1710 if(authData.userID == 0){ 1711 return false; 1712 } else if (authData.notificationsAllowed === 0) { 1713 return false; 1714 } 1715 return true; 1716 } 1717}; 1718 1719var scope = { 1720 _iamMaster: false, 1721 msg: null, 1722 messageTab: null, 1723 tabs: [], 1724 messages: [], 1725 _reloadOnLogin: null, 1726 _socketStatusCallback: undefined, 1727 1728 updateTabs: function () { 1729 if (crosstab.supported === false){ 1730 console.log('crosstab not supported...but i am Master'); 1731 this._iamMaster = true; 1732 return false; 1733 } 1734 1735 this.myTab = crosstab.util.tabs[crosstab.id]; 1736 this.masterTab = crosstab.util.tabs['MASTER_TAB']; 1737 1738 // ha masterTab, akkor Å indÃtja a kommunikációs klienst 1739 if (typeof this.myTab != 'object'){ 1740 return; 1741 } 1742 if (this._iamMaster === false && this.myTab.id == this.masterTab.id){ 1743 this._iamMaster = true; 1744 console.log('masterTab inited'); 1745 this.startClient(); 1746 } 1747 // egyébként kliensTab 1748 if (this.myTab.id != this.masterTab.id){ 1749 _iamMaster = false;
1750 } 1751 1752 while (this.tabs.length > 0) { 1753 this.tabs.pop(); 1754 } 1755 1756 var newtabs = JSON.parse(JSON.stringify(crosstab.util.tabs)); 1757 newtabs = crosstab.util.filter(newtabs, function (value, key) { 1758 return key !== 'MASTER_TAB'; 1759 }); 1760 1761 this.tabs = newtabs; 1762 1763 if (this.messageTab) { 1764 if (this.tabs[this.messageTab.id]) { 1765 this.messageTab = this.tabs[this.messageTab.id]; 1766 } else { 1767 this.messageTab = null; 1768 } 1769 } 1770 1771 if (this._reloadOnLogin == true){ 1772 this._reloadOnLogin = false; 1773 this.reloadOnLogin(); 1774 } 1775 }, 1776 1777 isWebsocketReady: function(callback, tryCount) { 1778 if(typeof tryCount == 'undefined') tryCount = 1; 1779 this._socketStatusCallback = callback; 1780 1781 if (crosstab.supported) { 1782 if(typeof this.masterTab == 'undefined') { 1783 if(tryCount < 10) { 1784 setTimeout(function() { 1785 scope.isWebsocketReady(callback, tryCount + 1); 1786 }, 300); 1787 } 1788 } else { 1789 crosstab.broadcast('isWebsocketReady', { 'requestTabId': crosstab.id }, this.masterTab.id); 1790 } 1791 } else { 1792 var ready = typeof nSocket != 'undefined' && nSocket._websocket !== null && nSocket._websocket.readyState != 0; 1793 this.returnWebsocketStatus(ready); 1794 } 1795 }, 1796 1797 returnWebsocketStatus: function(ready) { 1798 if(typeof this._socketStatusCallback == 'function') { 1799 this._socketStatusCallback(ready); 1800 this._socketStatusCallback = undefined; 1801 } 1802 }, 1803 1804 receiveMessage: function (message) { 1805 // ha request kérés, akkor elküldjük a szervernek 1806 if (message.data.type == 'request' && this._iamMaster){ 1807 authData.token = ''; 1808 message.data.msg.authData = authData; 1809 if (wsOnline === true) { 1810 nSocket.sendMsg(JSON.stringify(message.data.msg)); 1811 } 1812 return true; 1813 } 1814 1815 if (message.data.exceptMe && (typeof this.myTab == 'undefined' || message.origin == this.myTab.id)){ 1816 return false; 1817 } 1818 1819 AjaxResponseHandler.process(message.data.msg); 1820 }, 1821 1822 // üzenet küldés egy adott tab-nak, vagy mindenkinek 1823 sendMessage: function (msg, tabID, exceptMe) { 1824 try { 1825 crosstab.broadcast('message', { 1826 'exceptMe': exceptMe ? exceptMe : false, 1827 'type': 'script', 1828 'msg': msg 1829 }, tabID ? tabID : null); 1830 }catch (e) { 1831 console.log('crosstab error', e.message); 1832 } 1833 }, 1834 1835 reloadOnLogin: function(){ 1836 var msg ={type: 'script', data: {script: 'reloadMainPage'}}; 1837 this.sendMessage(msg, null, true); 1838 }, 1839 1840 // kérés/üzenet küldése csak a masterTabnak 1841 sendRequest: function(processor, action, params) { 1842 var post = $.extend({processor: processor, action: action}, params); 1843 var msg = {request: 'pull', post: post}; 1844 if (crosstab.supported && typeof this.myTab != 'undefined') { 1845 try { 1846 crosstab.broadcast('message', {'type': 'request', 'msg': msg}, this.masterTab.id); 1847 }catch (e) { 1848 console.log('crosstab error', e.message); 1849 } 1850 }else{ 1851 this.receiveMessage({'data': {'type': 'request', 'msg': msg}}); 1852 } 1853 }, 1854 1855 sendUserAuth: function() { 1856 var msg = {request: 'pull', post: {processor: 'notifySystem', action: 'getInfo'}}; 1857 if (crosstab.supported) { 1858 this.sendRequest('notifySystem', 'getInfo', {}); 1859 }else{ 1860 this.receiveMessage({'data': {'type': 'request', 'msg': msg}}); 1861 } 1862 }, 1863 1864 sessionTerminate: function(){ 1865 nSocket._terminatedSession = true; 1866 }, 1867 1868 // kommunikációs kliens indÃtása 1869 startClient: function () { 1870 // if (this._iamMaster===false) {return;} 1871 // crosstab.supported && 1872 if(typeof wsOnline == 'undefined') return; 1873 if(wsOnline === true) { 1874 nSocket.init(this); 1875 }else{ 1876 nPoll.init(this); 1877 } 1878 }, 1879 1880 // lekéri a masterTabtól a tárolt notify infókat 1881 getLastInfo: function(){ 1882 var msg = {'result': 'request', "type": "script", "data": {"script":"scope.broadcastCache", "param":this.myTab.id}}; 1883 crosstab.broadcast('message', {'type': 'script', 'msg': msg}, this.masterTab.id); 1884 }, 1885 1886 broadcastCache: function(tabID){ 1887 var msg = {'result': 'request', "type": "script", "data": {"script":"wsNotify._updateNotify", "param":wsNotify._cache}}; 1888 this.sendMessage(msg, tabID); 1889 }, 1890 1891 broadcastInfo: function(tabID){ 1892 var msg = {'result': 'request', "type": "script", "data": {"script":"wsNotify._updateInfo", "param":wsNotify._info}}; 1893 this.sendMessage(msg, tabID); 1894 } 1895 1896}; 1897 1898if (crosstab.supported){ 1899 crosstab.util.events.on(crosstab.util.eventTypes.tabUpdated, function () { 1900 scope_udt(); 1901 }); 1902 1903 crosstab.util.events.on(crosstab.util.eventTypes.tabClosed, function (e) { 1904 scope_udt(); 1905 }); 1906 1907 crosstab.util.events.on(crosstab.util.eventTypes.tabPromoted, function () { 1908 scope_udt(); 1909 }); 1910 1911 crosstab.util.events.on('message', function (message) { 1912 scope.receiveMessage(message); 1913 }); 1914 1915 crosstab.util.events.on('isWebsocketReady', function (message) { 1916 var ready = typeof nSocket != 'undefined' && nSocket._websocket !== null && nSocket._websocket.readyState != 0; 1917 crosstab.broadcast('returnWebsockeStatus', { 'ready': ready }, message.data.requestTabId); 1918 }); 1919 1920 crosstab.util.events.on('returnWebsockeStatus', function (message) { 1921 scope.returnWebsocketStatus(message.data.ready); 1922 }); 1923 1924 crosstab.util.events.on('enableMessagePolling', function () { 1925 if(typeof Viszony.messages == 'object') { 1926 Viszony.messages.enablePolling(); 1927 } 1928 }); 1929 1930 crosstab.util.events.on('disableMessagePolling', function () { 1931 if(typeof Viszony.messages == 'object') { 1932 Viszony.messages.disablePolling(); 1933 } 1934 }); 1935 1936 function scope_udt() { 1937 setTimeout(function() { 1938 scope.updateTabs(); 1939 }, 0); 1940 } 1941} 1942
1943/* cached content from: banners.js */ 1944/** 1945 * Bannereket kezelÅ objektum 1946 */ 1947Viszony.banners = { 1948 1949 gateBanner: false, 1950 1951 init: function() { 1952 if($('.adverticum-zone--gate').length > 0) { 1953 this.gateBanner = $('.adverticum-zone--gate'); 1954 } 1955 1956 this.bindEvents(); 1957 }, 1958 1959 loadAdverticumAjax: function(className){ 1960 if (className === undefined || className == ''){ 1961 className = '.goAdverticumAjax'; 1962 } 1963 if (window.goAdverticum3 === undefined){ 1964 return false; 1965 } 1966 window.goAdverticum3.onReady(function( goa3 ) { 1967 var $ = goa3.getjQuery(); 1968 $(className).each(function() { 1969 var item = $(this); 1970 var z = $(this).data('zonecode').match(/\d+/)[0]; 1971 item.empty(); 1972 1973 item.goa(z, { 1974 p: 100, // zona prioritas 1975 zP: "", // zone parameters 1976 fP: "", // forward parameters 1977 cT: "" // custom targeting parameters 1978 }, function(res){ 1979 if(res.length == 0) { 1980 item.closest('.adverticum-zone').remove(); 1981 } 1982 }); 1983 1984 }); 1985 }); 1986 }, 1987 1988 bindEvents: function() { 1989 var self = this; 1990 1991 if(this.gateBanner !== false) { 1992 $(window).scroll(function() { 1993 var scrollTop = Viszony.Helper.getScrollTop(); 1994 var bh = self.gateBanner.outerHeight(true) - $(window).innerHeight() - 10; 1995 if(bh < 60) bh = 60; 1996 if(scrollTop > bh) { 1997 self.gateBanner.addClass('adverticum-zone--gate-bottom'); 1998 } else { 1999 self.gateBanner.removeClass('adverticum-zone--gate-bottom'); 2000 } 2001 }); 2002 } 2003 } 2004 2005}; 2006/* cached content from: tooltip.js */ 2007Viszony.Tooltip = { 2008 2009 activeClass: "tooltip--active", 2010 2011 $active: null, 2012 2013 $items: null, 2014 2015 init: function () { 2016 this.$items = $(".tooltip"); 2017 this.bindEvents(); 2018 }, 2019 2020 bindEvents: function () { 2021 this.$items.on("mouseenter", function () { 2022 Viszony.Tooltip.open($(this)); 2023 }).on("mouseleave", function () { 2024 Viszony.Tooltip.close($(this)); 2025 }).on("click", function (e) { 2026 e.preventDefault(); 2027 e.stopPropagation(); 2028 Viszony.Tooltip.open($(this)); 2029 }); 2030 $(window).on("click", function () { 2031 if (Viszony.Tooltip.$active !== null) { 2032 Viszony.Tooltip.close(Viszony.Tooltip.$active); 2033 } 2034 }); 2035 }, 2036 2037 open: function ($item) { 2038 this.$items.removeClass(this.activeClass); 2039 $item.addClass(this.activeClass); 2040 this.$active = $item; 2041 }, 2042 2043 close: function ($item) { 2044 $item.removeClass(this.activeClass); 2045 this.$active = null; 2046 }, 2047}; 2048/* cached content from: multi-select.js */ 2049function MultiSelect($element){ 2050 2051 const instance = this; 2052 2053 this.$element = $element; 2054 2055 this.options = {}; 2056 2057 this.$options = null; 2058 2059 this.settings = { 2060 containerClass: "input-select__container", 2061 captionEmptyClass: "input-select__caption--empty", 2062 itemSelectedClass: "input-select__item--selected", 2063 itemsOpenClass: "input-select__items--open", 2064 }; 2065 2066 this.state = { 2067 selected: 0, 2068 count: 0, 2069 open: false, 2070 }; 2071 2072 this.$container = null; 2073 2074 this.$caption = null; 2075 2076 this.$items = null; 2077 2078 this.$select = null; 2079 2080 this.init = function () { 2081 this.$options = this.$element.find("select option"); 2082 this.$container = this.$element.find("." + this.settings.containerClass); 2083 this.$select = this.$container.find(".input-select__select"); 2084 this.$caption = $("<div class=\"input-select__caption\"></div>"); 2085 this.$container.append(this.$caption); 2086 this.$items = $("<div class=\"input-select__items\"></div>"); 2087 this.$container.append(this.$items); 2088 const maxHeight = this.$element.data("max-height"); 2089 if (typeof maxHeight === "number") { 2090 this.$items.css("max-height", maxHeight + "px"); 2091 } 2092 this.setOptions(); 2093 for (let i in this.options) { 2094 this.appendItem(this.options[i]); 2095 } 2096 this.refreshCaption(); 2097 this.bindEvents(); 2098 }; 2099 2100 this.bindEvents = function f () { 2101 this.$items.find(".input-select__item").on("click", function (e) { 2102 e.stopPropagation(); 2103 instance.toggleChecked(parseInt($(this).data("value"))); 2104 }); 2105 this.$caption.on("click", function (e) { 2106 if (instance.state.open) { 2107 instance.close(); 2108 } else { 2109 instance.open(); 2110 } 2111 }); 2112 $(document).on("click", function (e) { 2113 if (instance.state.open) { 2114 const $container = $(e.target).parents(".input-select__container"); 2115 if ($container.length === 0 || !$container.is(instance.$container)) { 2116 instance.close(); 2117 } 2118 } 2119 }); 2120 }; 2121 2122 this.close = function () { 2123 this.$items.removeClass(this.settings.itemsOpenClass); 2124 this.state.open = false;
2125 }; 2126 2127 this.open = function () { 2128 this.$items.addClass(this.settings.itemsOpenClass); 2129 this.state.open = true; 2130 }; 2131 2132 this.toggleChecked = function (value) { 2133 this.options[value].selected = !this.options[value].selected; 2134 if (this.options[value].selected) { 2135 this.options[value].$item.addClass(this.settings.itemSelectedClass); 2136 this.options[value].$option.prop("selected", true); 2137 this.state.selected++; 2138 } else { 2139 this.options[value].$item.removeClass(this.settings.itemSelectedClass); 2140 this.options[value].$option.prop("selected", false); 2141 this.state.selected--; 2142 } 2143 this.$select.trigger("change"); 2144 this.refreshCaption(); 2145 }; 2146 2147 this.setOptions = function () { 2148 $.each(this.$options, function (index, options) { 2149 const $option = $(options); 2150 const item = { 2151 $option: $option, 2152 $item: null, 2153 selected: $option.prop("selected"), 2154 value: $option.val(), 2155 label: $option.html(), 2156 }; 2157 if (item.selected) { 2158 instance.state.selected++; 2159 } 2160 instance.options[item.value] = item; 2161 instance.state.count++; 2162 }); 2163 }; 2164 2165 this.refreshCaption = function () { 2166 this.$caption.removeClass(this.settings.captionEmptyClass); 2167 if (this.state.selected === 0) { 2168 this.$caption.html(lang['multiselect.empty']); 2169 this.$caption.addClass(this.settings.captionEmptyClass); 2170 } else if (this.state.selected <= 2) { 2171 const items = []; 2172 for (let i in this.options) { 2173 if (this.options[i].selected) { 2174 items.push(this.options[i].label); 2175 if (items.length === this.state.selected) { 2176 break; 2177 } 2178 } 2179 } 2180 this.$caption.html(items.join(", ")); 2181 } else if (this.state.selected !== this.state.count) { 2182 this.$caption.html(lang['multiselect.some'].replace("{count}", this.state.selected)); 2183 } else { 2184 this.$caption.html(lang['multiselect.all']); 2185 } 2186 }; 2187 2188 this.appendItem = function(item) { 2189 item.$item = $("<div class=\"input-select__item\"></div>"); 2190 item.$item.append("<div class=\"input-select__item-checkbox\"></div>"); 2191 if (item.selected) { 2192 item.$item.addClass(this.settings.itemSelectedClass); 2193 } 2194 item.$item.data("value", item.value); 2195 item.$item.append("<span class=\"input-select__item-label\">" + item.label + "</div>"); 2196 this.$items.append(item.$item); 2197 }; 2198} 2199 2200Viszony.MultiSelectInitializer = { 2201 2202 init: function () { 2203 $.each($(".input-select--multiple"), function (index, item) { 2204 (new MultiSelect($(item))).init(); 2205 }); 2206 }, 2207}; 2208/* cached content from: nfsw.js */ 2209Viszony.nfsw = { 2210 _nfswFlag: true, 2211 2212 init: function () { 2213 if (window.nfswFlag === undefined){return;} 2214 this.initNFSWLayer(); 2215 this.setNFSW(); 2216 }, 2217 2218 initNFSWLayer: function(){ 2219 var that = this; 2220 const $layer = $("#nfsw-layer"); 2221 if ($layer.length === 0) {return;} 2222 const layer = new Layer($layer); 2223 layer.init(); 2224 if ($layer.data('nfsw')==0) {// ha még nem volt inicializálva.. 2225 layer.open(); 2226 } 2227 if ($('.nfswRibbon').length > 0){ 2228 $('.layout').css('padding-top','+=36'); 2229 } 2230 $('.openNFSWOption').on('click', function(){ 2231 layer.open(); 2232 }); 2233 $(".nfswInput .switch").on("change", function (event) { 2234 Ajax.processByParams("user", "setNFSWFilter", { 2235 switch: $('.nfswInput .switch input[type="checkbox"]').prop('checked')?'off':'on', 2236 }, {}, that.setNFSW($('.nfswInput .switch input[type="checkbox"]').prop('checked')?2:1) 2237 ); 2238 }); 2239 }, 2240 2241 setNFSW: function(mode) { 2242 if (mode !== undefined) { 2243 window.nfswFlag = mode; 2244 } 2245 if (window.nfswFlag === undefined || window.nfswFlag == 1){ 2246 this._nfswFlag = true; 2247 }else{ 2248 this._nfswFlag = false;
2249 } 2250 2251 this.refreshRibbon(); 2252 this.blurUserImgs(); 2253 }, 2254 2255 refreshRibbon: function(){ 2256 if (this._nfswFlag){ 2257 $('.nfswRibbon').hide(); 2258 }else{ 2259 $('.nfswRibbon').show(); 2260 } 2261 2262 }, 2263 2264 blurUserImgs: function(){ 2265 var filter = 'blur(10px)'; 2266 if (this._nfswFlag){ 2267 filter = 'blur(0)'; 2268 console.log('no imgs blurring'); 2269 } 2270 $('img[class*="user__img"]').css('filter', filter); 2271 $('img[class*="avatar__img"]').css('filter', filter); 2272 $('div.user-images__photo-img img').css('filter', filter); 2273 $('img[class*="box__item-img"]').css('filter', filter); 2274 $('img[class*="story-small__img"]').css('filter', filter); 2275 $('img[class*="story__img"]').css('filter', filter); 2276 } 2277 2278}; 2279/* cached content from: collect-game.js */ 2280Viszony.CollectGame = { 2281 2282 cookieName: "collect-game-layer-showed-cookie", 2283 2284 collectGameLayer: null, 2285 2286 init: function () { 2287 let $collectGameLayer = $("#collect-game-home-layer"); 2288 if ($collectGameLayer.length > 0) { 2289 this.collectGameLayer = new Layer($collectGameLayer); 2290 this.collectGameLayer.init(); 2291 this.bindEvents(); 2292 let val = Cookies.get(this.cookieName); 2293 if (typeof val === "undefined") { 2294 this.collectGameLayer.open(); 2295 Cookies.set(this.cookieName, 1, { expires: 15, path: '/' }) 2296 } 2297 } 2298 }, 2299 2300 bindEvents: function () { 2301 let self = this; 2302 $(".open-collect-game-layer").on("click", function (){ 2303 self.collectGameLayer.open(); 2304 }); 2305 2306 let $collectedLayer = $("#collect-game-collected-layer"); 2307 if ($collectedLayer.length > 0) { 2308 let $winLayer = $("#collect-game-win-layer"); 2309 let collectedLayer = new Layer($collectedLayer); 2310 collectedLayer.init(); 2311 if ($winLayer.length > 0) { 2312 let winLayer = new Layer($winLayer); 2313 winLayer.init(); 2314 collectedLayer.closeListener = function (){ 2315 winLayer.open(); 2316 }; 2317 winLayer.closeListener = function (){ 2318 location.reload(); 2319 }; 2320 } 2321 collectedLayer.open(); 2322 } 2323 }, 2324}; 2325/* cached content from: cookie-policy.js */ 2326/** 2327 * Cookie policy popupot szabályozo objektum 2328 */ 2329Viszony.CookiePolicy = { 2330 2331 layer: undefined, 2332 2333 /** 2334 * Inicializációs függvény 2335 * @return {void} 2336 */ 2337 init: function () { 2338 this.layer = new Layer($("#cookie-options-layer")); 2339 this.layer.init(); 2340 2341 $('html, body').css('overflow-y', 'hidden'); 2342 2343 Viszony.Helper.ConsentManagement.gtag('consent', 'default', { 2344 'ad_user_data': 'denied', 2345 'ad_personalization': 'denied' 2346 }); 2347 2348 this.bindEvents(); 2349 }, 2350 2351 /** 2352 * Elfogadás 2353 * @param all 2354 */ 2355 accept: function(all) { 2356 if(typeof all == 'undefined') all = true; 2357 2358 var options = ''; 2359 $('#cookie-options-layer li').each(function() { 2360 let input = $(this).find('input[type="checkbox"]'); 2361 let name = input.attr('name'); 2362 let value = all || input.is(':checked') ? 1 : 0; 2363 options += (options != '' ? ';' : '') + name + '=' + value; 2364 }); 2365 2366 Cookies.set('cookiePolicyAccepted', 1, { 2367 expires: 3650, 2368 path: "/", 2369 }); 2370 2371 Cookies.set('cookieOptions', options, { 2372 expires: 3650, 2373 path: "/", 2374 }); 2375 2376 Cookies.set('cookieOptionsVersion', 2, { 2377 expires: 3650, 2378 path: "/", 2379 }); 2380 2381 $('#cookie-policy-container').animate({ height: '0px' }, 600, function() { 2382 $(this).remove(); 2383 }); 2384 2385 $('.cookie-policy-fader').fadeOut(function() { 2386 $(this).remove(); 2387 $('html, body').css('overflow-y', 'auto'); 2388 }); 2389 2390 let marketingCookiesEnabled = all || 2391 ($('#cookie-options-layer li input[name="statistics"]').is(':checked') && 2392 $('#cookie-options-layer li input[name="marketing"]').is(':checked')); 2393 2394 let data = { 2395 marketingCookiesEnabled: marketingCookiesEnabled ? 1 : 0 2396 }; 2397 2398 let trackingCallback = new AjaxCallback(); 2399 trackingCallback.addSuccessCallback(this.trackingCallback); 2400 2401 Ajax.processByParams('user', 'getCookieDependentTrackingCodes', data, {}, trackingCallback); 2402 2403 if(marketingCookiesEnabled) { 2404 Viszony.Helper.ConsentManagement.gtag('consent', 'update', { 2405 'ad_user_data': 'granted', 2406 'ad_personalization': 'granted' 2407 }); 2408 } 2409 }, 2410 2411 /** 2412 * BeállÃtások mentése 2413 * @param all 2414 */ 2415 saveOptions: function(all) { 2416 if(typeof all == 'undefined') all = false;
2417 this.layer.close(); 2418 this.accept(all); 2419 }, 2420 2421 /** 2422 * Ajax visszatérés 2423 * @param response 2424 */ 2425 trackingCallback: function(response) { 2426 if(typeof response.data.codes != 'undefined' && response.data.codes != '') { 2427 $('head').append(response.data.codes); 2428 } 2429 }, 2430 2431 /** 2432 * Evenetek hozzáadása 2433 * @return {void} 2434 */ 2435 bindEvents: function () { 2436 var self = this; 2437 2438 $("#accept-privacy-cookie").on('click', function(e) { 2439 self.accept(); 2440 }); 2441 2442 $('#show-cookie-options').on('click', function(e) { 2443 self.layer.open(); 2444 }); 2445 2446 $('#cookie-options-layer .save-button').on('click', function(e) { 2447 self.saveOptions(); 2448 }); 2449 2450 $('#cookie-options-layer .accept-button').on('click', function(e) { 2451 self.saveOptions(true); 2452 }); 2453 } 2454}; 2455/* cached content from: toggle-box.js */ 2456/** 2457 * KettÅ vagy több elem nyitását és csukását kezeli 2458 * @constructor 2459 */ 2460function ToggleBox() { 2461 /** 2462 * Elemek 2463 * @type {Array} 2464 */ 2465 this.elements = []; 2466 /** 2467 * BeálÃltások<br/> 2468 * <strong>activeClass</strong>: AktÃv elem osztálya<br/> 2469 * <strong>changeElementClass</strong>: Váltó elem azonosÃtására szolgáló osztály(rá kattintásra lenyitja az elemet vagy bezárja és megynit egy másikat)<br/> 2470 * <strong>contentContainerClass</strong>: Tartalom konténer azonosÃtására szolgáló osztály<br/> 2471 * <strong>contentClass</strong>: Tartalom azonosÃtására szolgáló osztály<br/> 2472 * <strong>animateTime</strong>: Animáció ideje<br/> 2473 * @type {Object} 2474 */ 2475 this.options = { 2476 activeClass: null, 2477 changeElementClass: null, 2478 contentContainerClass: null, 2479 contentClass: null, 2480 animateTime: 800, 2481 }; 2482 /** 2483 * Aktuális állapotokat jelölÅ objektum 2484 * <strong>action</strong>: Ãppen folyik e elem váltás(egyik nylÃik másik csukódik)<br/> 2485 * @type {Object} 2486 */ 2487 this.state = { 2488 action: false, 2489 }; 2490 /** 2491 * Ãppen aktuális elem Indexe 2492 * @type {number} 2493 */ 2494 this.currentActiveIndex = 0; 2495 let instance = this; 2496 /** 2497 * Inicializációs függvény 2498 * @param {jQuery} $boxes Dobozok amiket kezel az osztály 2499 * @param {Object} options az osztály options objektumával kerül mergelésre 2500 */ 2501 this.init = function($boxes, options) { 2502 this.options.activeClass = options.activeClass; 2503 this.options.changeElementClass = options.changeElementClass; 2504 this.options.contentContainerClass = options.contentContainerClass; 2505 this.options.contentClass = options.contentClass; 2506 if (typeof options.animateTime === "number") { 2507 this.options.animateTime = options.animateTime; 2508 } 2509 let instance = this; 2510 $.each($boxes, function (index, element) { 2511 let $element = $(element); 2512 let $contentContainer = $($element.find("." + instance.options.contentContainerClass)); 2513 instance.elements.push({ 2514 box: $element, 2515 change: $($element.find("." + instance.options.changeElementClass)), 2516 contentContainer: $contentContainer, 2517 content: $($contentContainer.find("." + instance.options.contentClass)), 2518 }); 2519 }); 2520 let index; 2521 if (typeof options.openIndex === "number") { 2522 index = options.openIndex; 2523 } else { 2524 index = 0; 2525 } 2526 this.elements[index].box.addClass(this.options.activeClass); 2527 this.currentActiveIndex = index; 2528 this.bindEvents(); 2529 if (typeof options.onPrepared === "function") { 2530 options.onPrepared(); 2531 } 2532 }; 2533 2534 /** 2535 * Eventek hozzáadása 2536 * @return {void} 2537 */ 2538 this.bindEvents = function () { 2539 for (let i = 0; i < this.elements.length; i++) { 2540 this.elements[i].change.on("click", function(e){ 2541 instance.onChangeClick(i, this); 2542 }); 2543 } 2544 }; 2545 2546 /** 2547 * BeállÃtja az aktuális elemet aktÃvnak 2548 * @param {number} index 2549 * @return {void} 2550 */ 2551 this.onChangeClick = function(index, item){ 2552 if (this.state.action === false) { 2553 if (index >= this.elements.length) { 2554 for (let i = 0; i < this.elements.length; i++) { 2555 if (item === this.elements[i].change.get(0)) { 2556 index = i; 2557 break; 2558 } 2559 } 2560 } 2561 if (this.currentActiveIndex === index) { 2562 this.close(this.currentActiveIndex); 2563 this.open(this.elements.length - 1 - this.currentActiveIndex); 2564 } else { 2565 this.close(this.currentActiveIndex); 2566 this.open(index); 2567 } 2568 } 2569 }; 2570 2571 /** 2572 * Elem megnyitása index alapján 2573 * @param {number} index 2574 * @return {void} 2575 */ 2576 this.open = function(index) { 2577 this.elements[index].contentContainer.animate({ 2578 height: this.elements[index].content.outerHeight()}, this.options.animateTime, null, () => { 2579 this.elements[index].contentContainer.css({height: ""}); 2580 }); 2581 this.elements[index].box.addClass(this.options.activeClass); 2582 this.currentActiveIndex = index; 2583 }; 2584 2585 /** 2586 * Elem bezárása index alapján 2587 * @param {number} index 2588 * @return {void} 2589 */ 2590 this.close = function (index) { 2591 instance.state.action = true; 2592 this.elements[index].contentContainer.animate({height: ''}, this.options.animateTime, function () { 2593 instance.state.action = false;
2594 }, null, () => { 2595 this.elements[index].contentContainer.css({height: ""}); 2596 }); 2597 this.elements[index].box.removeClass(this.options.activeClass); 2598 }; 2599 2600} 2601 2602/* cached content from: start.js */ 2603Viszony.Start = { 2604 2605 init: function () { 2606 var toggleBox = new ToggleBox(); 2607 // toggle box 2608 let boxIndex = Cookies.get("loggedInYet") === "1" ? 1 : 0; 2609 toggleBox.init($(".landing-header__box"), { 2610 activeClass: "landing-header__box--active", 2611 changeElementClass: "landing-header__box-title", 2612 contentContainerClass: "landing-header__box-content-container", 2613 contentClass: "landing-header__box-content", 2614 openIndex: boxIndex, 2615 animateTime: 500, 2616 onPrepared: function () { 2617 setTimeout(function(){ 2618 for (let i = 0; i < toggleBox.elements.length; i++) { 2619 toggleBox.elements[i].box.removeClass("landing-header__box--not-prepared"); 2620 } 2621 }, 10); 2622 }, 2623 }); 2624 let famousCheatingSwiper = new Swiper($("#famous-cheating-swiper")); 2625 famousCheatingSwiper.init({ 2626 show: 1, 2627 step: 1, 2628 infinite: true, 2629 autoSwipe: 15000, 2630 scroll: true, 2631 }); 2632 this.addToggleBoxCustomChange(toggleBox); 2633 2634 Viszony.Helper.ConsentManagement.setGoogleConsentMode(); 2635 2636 if (!data.app) { 2637 GoogleSso.initGoogleSSO().then(() => { 2638 GoogleSso.renderGoogleButton(document.getElementById("googleLoginButton"), "signin_with", 250); 2639 }) 2640 2641 AppleSso.initAppleSSO() 2642 } 2643 setLazyLoadLoaded(document.querySelector('.viszony-stat')); 2644 setLazyLoadLoaded(document.querySelector('.appBanner')); 2645 const blog = document.querySelector('.blog'); 2646 if (blog) { 2647 setLazyload(blog, () => { 2648 const blogItems = document.querySelectorAll('.blog__element'); 2649 for (const blogItem of blogItems) { 2650 blogItem.style.backgroundImage = 'url(' + blogItem.dataset.image + ')'; 2651 } 2652 }) 2653 } 2654 setLazyLoadLoaded(document.querySelector('.relationship-goal-stat')); 2655 setLazyLoadLoaded(document.querySelector('.famous-cheating')); 2656 }, 2657 2658 addToggleBoxCustomChange: function (toggleBox) { 2659 toggleBox.onChange = function (index) { 2660 if (this.state.action === false) { 2661 if (this.currentActiveIndex !== index) { 2662 this.close(this.currentActiveIndex); 2663 this.open(index); 2664 } else { 2665 let closeIndex = this.currentActiveIndex; 2666 let openIndex = this.currentActiveIndex === 0 ? 1 : 0; 2667 this.close(closeIndex); 2668 this.open(openIndex); 2669 } 2670 } 2671 }; 2672 }, 2673}; 2674/* cached content from: heroSlider.js */ 2675Viszony.HeroSlider = { 2676 2677 activeSlide: 0, 2678 2679 slideInProgress: false, 2680 2681 $slides: null, 2682 2683 $sliderDots: null, 2684 2685 fadeTime: 600, 2686 2687 texts: [], 2688 2689 slideChangeTimeout: null, 2690 2691 slidesCount: null, 2692 2693 settings: { 2694 charAnimationDelay: 6, 2695 slideChangeDelay: 10000, 2696 }, 2697 2698 init: function () { 2699 this.$slides = $(".heroSlider .slide"); 2700 this.slidesCount = this.$slides.length; 2701 this.$slides.each((index, item) => { 2702 const $slide = $(item); 2703 const $title = $slide.find(".slideTitle"); 2704 if ($title.length) { 2705 this.addTextItem($title); 2706 } 2707 const $text = $slide.find(".slideText"); 2708 if ($text.length) { 2709 this.addTextItem($text); 2710 } 2711 }); 2712 this.$sliderDots = $(".sliderDots .sliderDot"); 2713 this.$sliderDots.on("click", (e) => { 2714 this.moveToSlide($(e.target).data("item")) 2715 }); 2716 this.setTimeout(); 2717 }, 2718 2719 addTextItem: function ($item) { 2720 const text = $item.data("text"); 2721 let content = ""; 2722 let tag = false;
2723 let inWord = false; 2724 for (let i = 0; i < text.length; i++) { 2725 if (tag) { 2726 content += text[i]; 2727 if (text[i] === ">") { 2728 tag = false; 2729 } 2730 } else if (text[i] === "<") { 2731 if (inWord) { 2732 inWord = false; 2733 content += '</span>'; 2734 } 2735 content += text[i]; 2736 tag = true; 2737 } else { 2738 if (text[i] === ' ') { 2739 content += '<span class="char"> </span>'; 2740 if (inWord) { 2741 inWord = false; 2742 content += '</span>'; 2743 } 2744 } else { 2745 if (!inWord) { 2746 inWord = true; 2747 content += '<span class="wordWrapper">'; 2748 } 2749 content += '<span class="char">' + text[i] + '</span>'; 2750 } 2751 } 2752 } 2753 if (inWord) { 2754 content += '</span>'; 2755 } 2756 $item.html(content); 2757 const $chars = $item.find(".char"); 2758 $chars.each((index, char) => { 2759 $(char).css({ 2760 animationDelay: this.settings.charAnimationDelay * index + "ms", 2761 }); 2762 }) 2763 }, 2764 2765 moveToSlide(index) { 2766 if (this.slideInProgress) { 2767 return; 2768 } 2769 if (this.activeSlide === index) { 2770 return; 2771 } 2772 clearTimeout(this.slideChangeTimeout); 2773 this.slideInProgress = true; 2774 const $currentSlide = $(this.$slides[this.activeSlide]); 2775 $currentSlide.addClass("hiding"); 2776 $currentSlide.removeClass("active"); 2777 $currentSlide.fadeOut(this.fadeTime, () => { 2778 $currentSlide.removeClass("hiding"); 2779 }); 2780 const $nextSlide = $(this.$slides[index]); 2781 $nextSlide.addClass("showing"); 2782 this.$sliderDots.removeClass("active"); 2783 this.$sliderDots[index].classList.add("active"); 2784 $nextSlide.fadeIn(this.fadeTime, () => { 2785 $nextSlide.addClass("active"); 2786 $nextSlide.removeClass("showing"); 2787 this.activeSlide = index; 2788 this.slideInProgress = false; 2789 this.setTimeout(); 2790 }); 2791 }, 2792 2793 setTimeout() { 2794 let nextItem = this.activeSlide + 1 === this.slidesCount ? 0 : this.activeSlide + 1; 2795 this.slideChangeTimeout = setTimeout(() => { 2796 this.moveToSlide(nextItem); 2797 }, this.settings.slideChangeDelay); 2798 } 2799 2800} 2801/* cached content from: landing-videos.js */ 2802Viszony.LandingVideos = { 2803 init: function () { 2804 this.loadYoutubeVideos(); 2805 }, 2806 2807 loadYoutubeVideos: function () { 2808 let self = this; 2809 let $videos = $(".landing-videos__video"); 2810 if ($videos.length === 0) { 2811 return; 2812 } 2813 for (var i = 0; i < $videos.length; i++) { 2814 // Construct Play Button 2815 var playButton = document.createElement("div"); 2816 playButton.className = "landing-videos__video-play-button"; 2817 $videos[i].appendChild(playButton); 2818 2819 // Construct thumbnail image 2820 var img = document.createElement('img'); 2821 img.className = "img img--responsive landing-videos__video-image"; 2822 $videos[i].appendChild(img); 2823 // ad load event 2824 let $video = $($videos[i]); 2825 $video.on("click", function () { 2826 self.loadVideo($video); 2827 }); 2828 } 2829 setLazyload($videos[0], () => { 2830 const images = document.querySelectorAll('.landing-videos__video img'); 2831 for (let i = 0; i < $videos.length; i++) { 2832 const img = images[i]; 2833 img.src = "https://img.youtube.com/vi/" + $videos[i].dataset.id+ "/hqdefault.jpg"; 2834 } 2835 }); 2836 }, 2837 2838 loadVideo: function ($video) { 2839 let iframe = document.createElement('iframe'); 2840 iframe.className = "landing-videos__video-content"; 2841 iframe.setAttribute("src", "https://www.youtube.com/embed/" + $video[0].dataset.id + "?rel=0&showinfo=0&autoplay=1"); 2842 iframe.setAttribute("frameborder", "0"); 2843 iframe.setAttribute("allowfullscreen", ""); 2844 $video.html(iframe); 2845 }, 2846 2847} 2848/* cached content from: lost-password.js */ 2849Viszony.LostPassword = { 2850 2851 $loginContent: null, 2852 $lostPassword: null, 2853 $lostPasswordContent: null, 2854 $lostPasswordResponse: null, 2855 $loginHeader: null, 2856 2857 init: function () { 2858 this.$loginContent = $("#login-content"); 2859 this.$lostPassword = $("#lost-password"); 2860 this.$lostPasswordContent = $("#lost-password-content"); 2861 this.$lostPasswordResponse = $("#lost-password-response"); 2862 this.$loginHeader = $("#login-header-title-text"); 2863 this.bindEvents(); 2864 }, 2865 2866 bindEvents: function () { 2867 let self = this; 2868 $("#lost-password-open-button").on("click", function () { 2869 self.openLostPasswordSection(); 2870 }); 2871 $("#lost-password-close, #lost-password-ok-button").on("click", function () { 2872 self.closeLostPasswordSection(); 2873 }); 2874 $("#lost-password-submit").on("click", function () { 2875 self.lostPasswordSend(); 2876 }); 2877 }, 2878 2879 lostPasswordSend: function(){ 2880 Ajax.processByParams('user', 'lostPassword', { 2881 email: $("#lost-password-email").val() 2882 }); 2883 }, 2884 2885 lostPasswordSuccessFullCallback: function(result) { 2886 this.$lostPassword.addClass('lost-password--sent'); 2887 this.$lostPasswordResponse.html(result.message); 2888 this.$lostPasswordContent.css({height: this.$lostPassword.outerHeight() + "px"}); 2889 }, 2890 2891 openLostPasswordSection: function () { 2892 this.$loginContent.animate({opacity: 0}, 800); 2893 this.$lostPasswordContent.animate({height: $("#lost-password").outerHeight()}, 800); 2894 this.$loginHeader.html(lang["pages.landing.boxes.lostPassword.title"]); 2895 }, 2896 2897 closeLostPasswordSection: function () { 2898 this.$loginContent.animate({opacity: 1}, 800); 2899 this.$lostPasswordContent.animate({height: ""}, 800); 2900 this.$loginHeader.html(lang["pages.landing.boxes.login.title"]); 2901 }, 2902}; 2903/* cached content from: pre-registration-form.js */ 2904Viszony.preRegistrationForm = { 2905 2906 validated: false, 2907 2908 $form: null, 2909 2910 ajaxForm: null, 2911 2912 init: function () { 2913 this.$form = $("#pre-registration-form"); 2914 this.bindEvents(); 2915 }, 2916 2917 bindEvents: function () { 2918 const callback = new AjaxCallback(); 2919 const self = this; 2920 callback.addSuccessCallback(function (res) { 2921 if (typeof res.data.success === "boolean" && res.data.success) { 2922 self.validated = true; 2923 self.ajaxForm.setActive(false); 2924 self.$form.submit(); 2925 } 2926 }); 2927 this.ajaxForm = Viszony.FormHandler.addAjaxForm(this.$form, callback, { 2928 action: "/ajaxRequest/registration/preRegistration", 2929 }); 2930 2931 }, 2932} 2933/* cached content from: swiper.js */ 2934/** 2935 * Swiper 2936 * @param {jQuery} $container 2937 * @constructor 2938 */ 2939function Swiper($container) { 2940 let instance = this; 2941 /** 2942 * Swiper konténere 2943 * @type {jQuery} 2944 */ 2945 this.$container = $container; 2946 /** 2947 * Swipper elemek wrappere 2948 * @type {jQuery} 2949 */ 2950 this.$wrapper = null; 2951 /** 2952 * Pagination elÅzÅ oldal 2953 * @type {jQuery} 2954 */ 2955 this.$paginationPrev = null; 2956 /** 2957 * Pagination következÅ oldal 2958 * @type {jQuery} 2959 */ 2960 this.$paginationNext = null; 2961 /** 2962 * $swiper elemek 2963 * @type {jQuery[]} 2964 */ 2965 this.$items = []; 2966 /** 2967 * Swiper beállÃtásokat tárollja el<br/> 2968 * <strong>wrapperClass</strong>: Wrapper azonosÃtására szolgáló osztály<br/> 2969 * <strong>itemClass</strong>: Elemek azonosÃtására szolgáló osztály<br/> 2970 * <strong>paginationActivateClass</strong>: AktÃv paginationt jelölÅ osztály<br/> 2971 * <strong>paginationPrevClass</strong>: ElÅzÅ paginatikon azonosÃtására szolgáló osztály<br/> 2972 * <strong>paginationNextClass</strong>: KövetkezÅ pagination azonosÃtására szolgáló osztály<br/> 2973 * <strong>infinite</strong>: infinite swiper<br/> 2974 * <strong>show</strong>: Mennyi elemet mutasson egszerre<br/> 2975 * <strong>step</strong>: Mennyi elemet léptessen egy oldallal<br/> 2976 * <strong>breakpoints</strong>: Felbontásra érvényes beállÃtások(show, step)<br/> 2977 * @type {Object} 2978 */ 2979 this.options = { 2980 wrapperClass: "swiper__wrapper", 2981 itemClass: "swiper__item", 2982 paginationActivateClass: "swiper-pagination--active", 2983 paginationPrevClass: "swiper-pagination--prev", 2984 paginationNextClass: "swiper-pagination--next", 2985 infinite: false, 2986 show: 1, 2987 step: 1, 2988 autoSwipe: 0, 2989 scroll: false, 2990 breakpoints: {}, 2991 }; 2992 /** 2993 * Ãllapotok tárolására szolgáló objektum 2994 * <strong>touch.animates</strong>: ha true éppen animálódik az elem 2995 * @type {Object} 2996 */ 2997 this.state = { 2998 touch: { 2999 animates: false, 3000 startTime: null, 3001 start: null, 3002 startY: null, 3003 last: null, 3004 }, 3005 swipe: { 3006 stopAnimating: false, 3007 inProgress: false, 3008 autoSwipeHandler: null, 3009 scroll: null, 3010 }, 3011 }; 3012 3013 /** 3014 * Inicializációs függvény 3015 * @param {Object} options az osztály options tömbjével kerül értékek:<br/> 3016 * <strong>show</strong>: Egyszerre mutatott elemek száma<br/> 3017 * <strong>step</strong>: Egy lépéssel lépendÅ elemek száma<br/> 3018 * <strong>breakpoints</strong>: felbontásra érvényes beállÃtások(show, step)<br/> 3019 */ 3020 this.init = function(options) { 3021 this.setOptions(options); 3022 this.$wrapper = this.$container.find("." + this.options.wrapperClass); 3023 this.$items = this.$container.find("." + this.options.itemClass); 3024 this.$paginationPrev = this.$container.find("." + this.options.paginationPrevClass); 3025 this.$paginationNext = this.$container.find("." + this.options.paginationNextClass); 3026 this.refreshState(); 3027 this.bindEvents(); 3028 }; 3029 3030 /** 3031 * BeállÃtja a kapott beállÃtásokat az érvényes beállÃtásokra 3032 * @param {Object} options 3033 * @return {void} 3034 */ 3035 this.setOptions = function (options) {
3036 let opts = this.getBreakpointOptions(options); 3037 for (let index in opts) { 3038 this.options[index] = opts[index]; 3039 } 3040 if (typeof options.breakpoints === "object") { 3041 for (let index in options.breakpoints) { 3042 opts = this.getBreakpointOptions(options.breakpoints[index]); 3043 if (typeof this.options.breakpoints[index] === "undefined") { 3044 this.options.breakpoints[index] = {}; 3045 } 3046 for (let j in opts) { 3047 this.options.breakpoints[index][j] = opts[j]; 3048 } 3049 } 3050 } 3051 if (typeof options === "object") { 3052 if (typeof options.infinite === "boolean") { 3053 this.options.infinite = options.infinite; 3054 } 3055 if (typeof options.autoSwipe === "number") { 3056 this.options.autoSwipe = options.autoSwipe; 3057 } 3058 if (typeof options.scroll === "boolean") { 3059 this.options.scroll = options.scroll; 3060 } 3061 } 3062 }; 3063 3064 /** 3065 * Visszaadja a felbontásra érvényes beállÃtásokat 3066 * @param source 3067 */ 3068 this.getBreakpointOptions = function (source) { 3069 let options = {}; 3070 if (typeof source.show === "number") { 3071 options.show = source.show; 3072 } 3073 if (typeof source.step === "number") { 3074 options.step = source.step; 3075 } 3076 return options; 3077 }; 3078 3079 /** 3080 * FrissÃti az aktuális állapotot, de csak akkor ha bármelyik érték ami azt befolyásolja változott 3081 * @return {void} 3082 */ 3083 this.refreshState = function () { 3084 this.stopAutoSwipe(); 3085 let settings = this.getSettings($(window).width()); 3086 let screenWidth = this.$container.outerWidth(true); 3087 let stepRatio = settings.step / settings.show; 3088 let itemWidth = screenWidth / settings.show; 3089 let stepSize = screenWidth * stepRatio; 3090 // csak akkor állÃtjuk újra be a dolgokat ha valóban változott valami 3091 if (screenWidth !== this.state.screenWidth || stepRatio !== this.state.stepRatio || 3092 itemWidth !== this.state.itemWidth || stepSize !== this.state.stepSize) { 3093 this.state.show = settings.show; 3094 this.state.step = settings.step; 3095 this.state.screenWidth = screenWidth; 3096 this.state.stepRatio = stepRatio; 3097 this.state.itemWidth = itemWidth; 3098 this.state.width = this.state.itemWidth * this.$items.length; 3099 this.state.stepSize = stepSize; 3100 this.state.maxLeft = this.state.width - this.state.screenWidth; 3101 this.state.maxStep = Math.ceil(this.state.width / this.state.stepSize) - 1; 3102 this.state.swipe.stopAnimating = true; 3103 this.state.animating = false; 3104 this.state.currentLeft = 0; 3105 this.state.currentStep = 0; 3106 this.$items.css({"maxWidth": this.state.itemWidth + "px", "flex-basis": this.state.itemWidth + "px"}); 3107 this.$wrapper.css({marginLeft: "0px"}); 3108 this.refreshPaginationActiveClasses(); 3109 } 3110 this.setAutoSwipe(); 3111 }; 3112 3113 /** 3114 * Események hozzáadása 3115 * @return {void} 3116 */ 3117 this.bindEvents = function () { 3118 this.$wrapper.on("touchstart", function (e) { 3119 instance.containerTouchStartEvent(e, this); 3120 }).on("touchmove", function (e) { 3121 instance.containerTouchMoveEvent(e, this); 3122 }).on("touchend", function (e) { 3123 instance.containerTouchEndEvent(e, this); 3124 }); 3125 this.$paginationPrev.on("click", function (e) { 3126 e.stopPropagation(); 3127 instance.moveToStep(instance.state.currentStep - 1); 3128 }); 3129 this.$paginationNext.on("click", function (e) { 3130 e.stopPropagation(); 3131 instance.moveToStep(instance.state.currentStep + 1); 3132 }); 3133 $(window).on("resize", function () { 3134 instance.refreshState(); 3135 }); 3136 }; 3137 3138 /** 3139 * Frissità a pagination aktÃv osztályokat az elemeken 3140 * @return {void} 3141 */ 3142 this.refreshPaginationActiveClasses = function () { 3143 if (this.state.currentStep > 0 || this.options.infinite) { 3144 this.$paginationPrev.addClass(this.options.paginationActivateClass); 3145 } else { 3146 this.$paginationPrev.removeClass(this.options.paginationActivateClass); 3147 } 3148 if (this.state.currentStep < this.state.maxStep || this.options.infinite) { 3149 this.$paginationNext.addClass(this.options.paginationActivateClass); 3150 } else { 3151 this.$paginationNext.removeClass(this.options.paginationActivateClass); 3152 } 3153 }; 3154 3155 /** 3156 * Az átadott értéket validálja és oda lépteti a swipert 3157 * @param {number} step 3158 * @param {boolean} autoSwipe 3159 * @return {void} 3160 */ 3161 this.moveToStep = function (step, autoSwipe = false) { 3162 if (autoSwipe === false) { 3163 this.stopAutoSwipe(); 3164 } 3165 if (step < 0) { 3166 if (this.options.infinite) { 3167 step = this.state.maxStep; 3168 } else { 3169 step = 0; 3170 } 3171 } else if (step > this.state.maxStep) { 3172 if (this.options.infinite) { 3173 step = 0; 3174 } else { 3175 step = this.state.maxStep; 3176 } 3177 } 3178 this.state.currentStep = step; 3179 this.moveToPosition(step * this.state.stepSize, true); 3180 this.setAutoSwipe(); 3181 }; 3182 3183 /** 3184 * Touchend event kezelése 3185 * @param {Event} e 3186 * @param {Element} element 3187 * @return {void} 3188 */ 3189 this.containerTouchEndEvent = function (e, element) { 3190 if (this.state.swipe.inProgress) { 3191 this.state.swipe.inProgress = false;
3192 if (!this.options.scroll || this.state.swipe.scroll === false) { 3193 e.preventDefault(); 3194 let dif = this.state.touch.start - this.state.touch.last; 3195 let date = new Date(); 3196 let time = date.getTime() - this.state.touch.startTime; 3197 this.moveByDifAndTime(dif, time); 3198 this.setAutoSwipe(); 3199 } 3200 if (this.options.scroll) { 3201 this.state.swipe.scroll = null; 3202 } 3203 } 3204 }; 3205 3206 /** 3207 * touchmove event kezelése 3208 * @param {Event} e 3209 * @param {Element} element 3210 * @return {void} 3211 */ 3212 this.containerTouchMoveEvent = function (e, element) { 3213 let swipe = false; 3214 if (this.options.scroll === false) { 3215 swipe = true; 3216 } else { 3217 if (this.state.swipe.scroll === null) { 3218 let lastX = e.originalEvent.targetTouches[0].clientX; 3219 let lastY = e.originalEvent.targetTouches[0].clientY; 3220 if (Math.abs(this.state.touch.startY - lastY) >= 10) { 3221 this.state.swipe.scroll = true; 3222 } else if (Math.abs(this.state.touch.start - lastX) >= 10) { 3223 swipe = true; 3224 this.state.swipe.scroll = false; 3225 } 3226 } else if (!this.state.swipe.scroll) { 3227 swipe = true; 3228 } 3229 } 3230 this.state.swipe.inProgress = true; 3231 if (swipe) { 3232 e.preventDefault(); 3233 this.state.touch.last = e.originalEvent.targetTouches[0].clientX; 3234 let position = this.state.currentLeft + (this.state.touch.start - this.state.touch.last) - this.state.swipe.dif; 3235 if (position < 0) { 3236 position = 0; 3237 } else if (position > this.state.maxLeft) { 3238 position = this.state.maxLeft; 3239 } 3240 this.$wrapper.css({marginLeft: "-" + position + "px"}); 3241 } 3242 }; 3243 3244 /** 3245 * Touschstart kezelése 3246 * @param {Event} e 3247 * @param {Element} element 3248 * @return {void} 3249 */ 3250 this.containerTouchStartEvent = function (e, element) { 3251 this.stopAutoSwipe(); 3252 this.state.swipe.stopAnimating = true; 3253 this.$wrapper.stop(); 3254 this.state.touch.start = e.originalEvent.targetTouches[0].clientX; 3255 this.state.swipe.dif = parseFloat(this.$wrapper.css("marginLeft")) + this.state.currentLeft; 3256 let date = new Date(); 3257 this.state.touch.startTime = date.getTime(); 3258 if (this.options.scroll) { 3259 this.state.touch.startY = e.originalEvent.targetTouches[0].clientY; 3260 } 3261 }; 3262 3263 this.moveByDifAndTime = function (dif, time) { 3264 instance.state.animates = true; 3265 if (time > 1000) { 3266 time = 1000; 3267 } 3268 this.state.swipe.animateFrom = this.state.currentLeft + (this.state.touch.start - this.state.touch.last) - this.state.swipe.dif; 3269 if (this.state.swipe.animateFrom < 0) { 3270 this.state.swipe.animateFrom = 0; 3271 } else if (this.state.swipe.animateFrom > this.state.maxLeft) { 3272 this.state.swipe.animateFrom = this.state.maxLeft; 3273 } 3274 let plusPosition = Math.round((this.state.touch.start - this.state.touch.last) / this.state.itemWidth) * this.state.itemWidth; 3275 let remainder = (this.state.touch.start - this.state.touch.last) % this.state.itemWidth; 3276 plusPosition -= remainder; 3277 plusPosition -= this.state.currentLeft % this.state.itemWidth; 3278 plusPosition += this.state.swipe.dif % this.state.itemWidth; 3279 this.state.swipe.animateTo = this.state.swipe.animateFrom + plusPosition; 3280 let swipeItemsCount = Math.round(((this.state.touch.start - this.state.touch.last) / this.state.screenWidth) / (time / 1000) / 2); 3281 this.state.swipe.animateTo += swipeItemsCount * this.state.itemWidth; 3282 if (this.state.swipe.animateTo < 0) { 3283 this.state.swipe.animateTo = 0; 3284 } else if (this.state.swipe.animateTo > this.state.maxLeft) { 3285 this.state.swipe.animateTo = this.state.maxLeft; 3286 } 3287 let executeTime = 300 + Math.abs(swipeItemsCount) * 110;
3288 let executeCount = Math.ceil(executeTime / 40); 3289 this.state.swipe.items = []; 3290 let animateValue = this.state.swipe.animateTo - this.state.swipe.animateFrom; 3291 let allWeight = 0; 3292 for (let i = 0; i < executeCount; i++) { 3293 allWeight += executeCount - i; 3294 } 3295 let pixelPerWeight = animateValue / allWeight; 3296 let value = 0; 3297 for (let i = 0; i < executeCount; i++) { 3298 let weight = executeCount - i; 3299 value += weight * pixelPerWeight; 3300 this.state.swipe.items.push(value); 3301 } 3302 this.state.swipe.stopAnimating = false; 3303 this.animateSlice(0); 3304 }; 3305 3306 this.animateSlice = function (index) { 3307 if (typeof this.state.swipe.items[index] !== "number") { 3308 instance.state.animates = false; 3309 this.state.currentLeft = this.state.swipe.animateTo; 3310 this.state.currentStep = Math.round(this.state.currentLeft / this.state.itemWidth); 3311 return; 3312 } else if (this.state.swipe.stopAnimating) { 3313 return; 3314 } 3315 let newValue = this.state.swipe.animateFrom + this.state.swipe.items[index]; 3316 this.$wrapper.animate({marginLeft: "-" + newValue+ "px"}, 30, function () { 3317 index++; 3318 instance.animateSlice(index); 3319 }); 3320 }; 3321 3322 /** 3323 * Az átadott pozicióra popzÃciónálja a swipert 3324 * @param {number} position 3325 * @return {void} 3326 */ 3327 this.moveToPosition = function (position) { 3328 if (position < 0) { 3329 position = 0; 3330 } else if (position > this.state.maxLeft) { 3331 position = this.state.maxLeft; 3332 } 3333 this.state.currentLeft = position; 3334 this.state.animates = true; 3335 this.$wrapper.animate({marginLeft: "-" + position + "px"}, 800, function () { 3336 instance.state.animates = false; 3337 }); 3338 this.refreshPaginationActiveClasses(); 3339 }; 3340 3341 /** 3342 * Visszaadja a felbontásra érvényes beállÃtásokat 3343 * @param {number} width 3344 * @return {{show: number, step: number}} 3345 */ 3346 this.getSettings = function (width) { 3347 let settings = { 3348 show: this.options.show, 3349 step: this.options.step, 3350 }; 3351 for (let size in this.options.breakpoints) { 3352 if (size <= width) { 3353 settings = Object.assign(settings, this.options.breakpoints[size]); 3354 } 3355 } 3356 return settings; 3357 }; 3358 3359 this.stopAutoSwipe = function () { 3360 if (this.state.autoSwipeHandler !== null) { 3361 clearTimeout(this.state.autoSwipeHandler); 3362 this.state.autoSwipeHandler = null; 3363 } 3364 }; 3365 3366 this.setAutoSwipe = function() { 3367 if (this.options.autoSwipe !== 0) { 3368 const self = this; 3369 this.state.autoSwipeHandler = setTimeout(function () { 3370 self.moveToStep(self.state.currentStep + 1, true); 3371 }, this.options.autoSwipe + 800); 3372 } 3373 }; 3374} 3375/* cached content from: erotic-stories.js */ 3376Viszony.eroticStories = { 3377 3378 $container: null, 3379 3380 $itemsWrapper: null, 3381 3382 $items: null, 3383 3384 state: { 3385 itemWidth: null, 3386 step: null, 3387 currentLeft: 0, 3388 maxLeft: 0, 3389 animation: null, 3390 }, 3391 3392 options: { 3393 switchInterval: 15000, 3394 animationTime: 600, 3395 }, 3396 3397 init: function() { 3398 this.$container = $("#erotic-stories-items"); 3399 this.$itemsWrapper = this.$container.find(".erotic-stories__items"); 3400 this.$items = this.$container.find(".erotic-stories__item"); 3401 this.bindEvents(); 3402 this.refreshState(); 3403 }, 3404 3405 bindEvents: function() { 3406 $(window).on("resize", function () { 3407 Viszony.eroticStories.refreshState(); 3408 }); 3409 }, 3410 3411 refreshState: function () { 3412 clearTimeout(this.state.animation); 3413 this.$items.css("width", ""); 3414 this.$itemsWrapper.css("margin-left", ""); 3415 this.$itemsWrapper.css("width", ""); 3416 this.$items.css("width", ""); 3417 this.state.itemWidth = this.$items.eq(0).outerWidth(true);
3418 this.state.step = this.$itemsWrapper.outerWidth(); 3419 this.state.currentLeft = 0; 3420 this.state.maxLeft = this.state.itemWidth * this.$items.length - this.state.step; 3421 this.$items.css("width", this.state.itemWidth); 3422 this.$itemsWrapper.css("width", this.state.itemWidth * this.$items.length); 3423 this.showStep(false); 3424 this.state.animation = setTimeout(function () { 3425 Viszony.eroticStories.nextStep(); 3426 }, this.options.switchInterval); 3427 }, 3428 3429 nextStep: function () { 3430 const newValue = this.state.currentLeft + this.state.step; 3431 if (newValue > this.state.maxLeft) { 3432 this.state.currentLeft = 0; 3433 } else { 3434 this.state.currentLeft = newValue; 3435 } 3436 this.showStep(true); 3437 this.state.animation = setTimeout(function () { 3438 Viszony.eroticStories.nextStep(); 3439 }, this.options.switchInterval + this.options.animationTime); 3440 }, 3441 3442 showStep: function (animate = true) { 3443 this.$itemsWrapper.stop(); 3444 const left = "-" + this.state.currentLeft + "px"; 3445 if (animate) { 3446 this.$itemsWrapper.animate({ 3447 "margin-left": left, 3448 }, this.options.animationTime); 3449 } else { 3450 this.$itemsWrapper.css("margin-left", left); 3451 } 3452 }, 3453}; 3454/* cached content from: lazyLoad.js */ 3455 3456function setLazyload(element, callback){ 3457 new LazyLoadElement(element, callback); 3458} 3459 3460function setLazyLoadLoaded(element) { 3461 if (!element) { 3462 return; 3463 } 3464 new LazyLoadElement(element, () => { 3465 element.classList.add('loaded'); 3466 }) 3467} 3468 3469class LazyLoadElement{ 3470 3471 elementHeight = 0; 3472 3473 constructor(element, callback) { 3474 this.element = element; 3475 this.callback = callback; 3476 this.elementHeight = this.element.offsetHeight; 3477 if (this.check()) { 3478 this.callback(); 3479 return; 3480 } 3481 3482 const scroll = () => { 3483 if (this.check()) { 3484 this.callback(); 3485 window.removeEventListener('scroll', scroll); 3486 window.removeEventListener('resize', resize); 3487 } 3488 } 3489 3490 const resize = () => { 3491 this.elementHeight = this.element.offsetHeight; 3492 scroll(); 3493 } 3494 window.addEventListener('scroll', scroll); 3495 window.addEventListener('resize', resize); 3496 } 3497 3498 check() { 3499 const elementOffset = this.element.getBoundingClientRect(); 3500 const offsetTop = elementOffset.top - window.innerHeight 3501 return elementOffset.top - window.innerHeight < 300 && offsetTop * -1 < window.innerHeight + this.elementHeight + 300; 3502 } 3503} 3504 3505$(document).on('ready', () => { 3506 const images = document.querySelectorAll('img.lazyLoad'); 3507 for (const image of images) { 3508 setLazyload(image, () => { 3509 image.src = image.dataset.src; 3510 image.dataset.src = ""; 3511 }); 3512 } 3513}); 3514/* cached content from: appleSso.js */ 3515 3516const AppleSso = { 3517 3518 redirectUri: window.location.origin + "/appleSSO", 3519 3520 listeners: [], 3521 3522 initiated: false, 3523 3524 initAppleSSO: function (){ 3525 if (this.initiated) { 3526 // ha már volt inicializálva, csak resolveolunk, hogy lefusson a callback 3527 return new Promise((resolve, reject) => { 3528 resolve(); 3529 }) 3530 } 3531 return Viszony.Utils.loadScript("https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/hu_HU/appleid.auth.js").then(() => { 3532 AppleID.auth.init({ 3533 clientId: data.credentials.appleSSO, 3534 scope: "email", 3535 redirectURI: this.redirectUri, 3536 state: 'Initial user authentication request', 3537 usePopup: true 3538 }); 3539 }); 3540 }, 3541 3542 addAppleLoginListener: function (listener) { 3543 if (typeof listener !== "function") { 3544 return 3545 } 3546 this.listeners.push(listener); 3547 }, 3548 3549 redirectToAppleRegistration: function (url) { 3550 // regisztráció alapértelmezett működés, regisztrációs oldalra irányÃtás 3551 const form = document.createElement("form"); 3552 form.setAttribute("method", "post"); 3553 form.setAttribute("action", url); 3554 const input = document.createElement("input"); 3555 input.setAttribute("type", "hidden"); 3556 input.setAttribute("name", "socialType"); 3557 input.setAttribute("value", "apple"); 3558 form.appendChild(input); 3559 document.body.appendChild(form); 3560 form.submit(); 3561 } 3562} 3563 3564 3565// Listen for authorization success. 3566document.addEventListener('AppleIDSignInOnSuccess', (event) => { 3567 Ajax.post(Viszony.Utils.requestUrl("user/appleSSO"), {
3568 auth: event.detail.authorization, 3569 grant_type: "authorization_code", 3570 redirect_uri: AppleSso.redirectUri, 3571 }).then((result) => { 3572 if (result.data.param.success) { 3573 for (const listener of AppleSso.listeners) { 3574 listener(result.data); 3575 } 3576 } 3577 }) 3578}); 3579 3580// Listen for authorization failures. 3581document.addEventListener('AppleIDSignInOnFailure', (event) => { 3582 3583}); 3584/* cached content from: googleSso.js */ 3585 3586const GoogleSso = { 3587 3588 initiated: false, 3589 3590 loaded: false, 3591 3592 loadedListeners: [], 3593 3594 listeners: [], 3595 3596 addLoadedListener : function (listener) { 3597 if (typeof listener !== "function") { 3598 return 3599 } 3600 if (!this.loaded) { 3601 this.loadedListeners.push(listener); 3602 } else { 3603 listener(); 3604 } 3605 }, 3606 3607 addGoogleLoginListener: function (listener) { 3608 if (typeof listener !== "function") { 3609 return 3610 } 3611 this.listeners.push(listener); 3612 }, 3613 3614 initGoogleSSO: function () { 3615 if (data.appIOS) { 3616 // ios app visszaadjuk a dummy választ 3617 return new Promise((resolve, reject) => { 3618 resolve(); 3619 }) 3620 } 3621 if (this.initiated) { 3622 // ha már volt inicializálva, csak resolveolunk, hogy lefusson a callback 3623 return new Promise((resolve, reject) => { 3624 resolve(); 3625 }) 3626 } 3627 this.initiated = true; 3628 if (data.appAndroid) { 3629 return initGoogleSSOApp(); 3630 } else { 3631 return initGoogleSSOBrowser(); 3632 } 3633 }, 3634 3635 redirectToGoogleRegistration: function (url) { 3636 // regisztráció alapértelmezett működés, regisztrációs oldalra irányÃtás 3637 const form = document.createElement("form"); 3638 form.setAttribute("method", "post"); 3639 form.setAttribute("action", url); 3640 const input = document.createElement("input"); 3641 input.setAttribute("type", "hidden"); 3642 input.setAttribute("name", "socialType"); 3643 input.setAttribute("value", "google"); 3644 form.appendChild(input); 3645 document.body.appendChild(form); 3646 form.submit(); 3647 }, 3648 3649 renderGoogleButton: function (item, text, width) { 3650 // Appnál nem csinálunk semmit, ez csak böngészÅs funkció 3651 if (data.app) { 3652 return; 3653 } 3654 google.accounts.id.renderButton( 3655 item, 3656 { theme: "outline", size: "large", shape: "pill", text: text, width: width, locale: 'hu'} 3657 ); 3658 }, 3659 3660 appGoogleLogin: function() { 3661 window.flutter_inappwebview.callHandler('googleLogin').then((res) => { 3662 processGoogleSSO(res.aToken, true); 3663 }); 3664 }, 3665 3666} 3667 3668window.onGoogleLibraryLoad = () => { 3669 GoogleSso.loaded = true; 3670 processLoadedListeners(); 3671}; 3672 3673function processLoadedListeners() { 3674 for (const listener of GoogleSso.loadedListeners) { 3675 listener(); 3676 } 3677} 3678 3679function processGoogleSSO(token, app) { 3680 let uri; 3681 if (app) { 3682 uri = "user/googleSSOByAccessToken"; 3683 } else { 3684 uri = "user/googleSSO"; 3685 } 3686 Ajax.post(Viszony.Utils.requestUrl(uri), { 3687 token: token, 3688 }).then((result) => { 3689 if (result.data.param.success) { 3690 for (const listener of GoogleSso.listeners) { 3691 listener(result.data); 3692 } 3693 } 3694 }); 3695} 3696 3697 3698function initGoogleSSOApp() { 3699 GoogleSso.loaded = true; 3700 processLoadedListeners(); 3701 // csak dummy választ adunk vissza 3702 return new Promise((resolve, reject) => { 3703 resolve(); 3704 }) 3705} 3706 3707function initGoogleSSOBrowser() { 3708 return Viszony.Utils.loadScript("https://accounts.google.com/gsi/client?hl=hu").then(() => { 3709 google.accounts.id.initialize({ 3710 client_id: data.credentials.googleSSO, 3711 callback: (res) => { 3712 processGoogleSSO(res.credential, false) 3713 }, 3714 }) 3715 // one tap 3716 // google.accounts.id.prompt(); 3717 }).catch(() => { 3718 console.error("Hiba történt a Google js fájl betöltése közben") 3719 }) 3720} 3721
3722/* cached content from: verifySocialLogin.js */ 3723Viszony.verifySocialLogin = { 3724 3725 layer: null, 3726 3727 social: null, 3728 3729 init: function(){ 3730 this.layer = new Layer($("#verifySocialLogin")); 3731 this.layer.init(); 3732 3733 document.getElementById('verifySocialLoginRegistration').addEventListener('click', () => { 3734 if (this.social === 'google') { 3735 GoogleSso.redirectToGoogleRegistration(data.data.registrationUrl); 3736 } else { 3737 AppleSso.redirectToAppleRegistration(data.data.registrationUrl); 3738 } 3739 }); 3740 }, 3741 3742 openLayer: function (result) { 3743 Viszony.verifySocialLogin.social = result.service; 3744 const serviceShow = result.service; 3745 const serviceHide = result.service === 'google' ? 'apple' : 'google'; 3746 $('.paragraph.contentParagraph.' + serviceShow).show(); 3747 $('.paragraph.contentParagraph.' + serviceHide).hide(); 3748 document.getElementById('connectSocialSocialName').value = result.service; 3749 this.layer.open(); 3750 } 3751 3752} 3753 3754 3755/* cached content from: hu.js */ 3756var lang = new Object(); 3757lang['err_common'] = "Hiba történt!"; 3758/** 3759 * Viszony SPECIFIKUS RÃSZ - START 3760 */ 3761lang['flashMessage.customerSupport.thanksMessage'] = "Köszönjük hogy elmondod a véleményed,<br />hamarosan válaszolunk!"; 3762lang['flashMessage.searchOutside.ComeRegister'] = "Ezek a feltételek csak regisztrált<br /> felhasználók számára érhetÅek el.<br ><br /><a style=\"width:auto;padding:5px 15px;font-weight:bold\" href=\"/regisztracio\" class=\"redGradient\">Tovább a regisztrációra!</a> " 3763lang['flashMessage.profileEdit.success'] = "Profilod módosÃtásait sikeresen mentettük!"; 3764lang['flashMessage.saving.successSaving'] = "Történeted mentése sikeresen megtörtént!"; 3765lang['flashMessage.privacyPopupText'] = '<a target="_blank" style="padding: 5px 0;" class="redGradient" href="/adatvedelem/hu">Adatvédelem (HUN)</a><br /><br /><a target="_blank" style="padding: 5px 0;" class="redGradient" href="/adatvedelem/en">Privacy Policy (ENG)</a>' 3766lang['flashMessage.smsInfo.emptyMessageError'] = "Ãres üzenetet nem tudsz küldeni!"; 3767lang['flashMessage.bannedUser'] = 'Ezt a felhasználót letiltottad, Ãgy nem nézheted meg az adatlapját!'; 3768lang['flashMessage.becomePartner'] = 'Amennyiben szeretné Ãn is búvóhelyét hirdetni, kérjük a részletekkel kapcsolatban keresse ügyfélszolgálatunkat:<br/><br/><a class="textPurple" href="mailto:[email protected]">[email protected]</a>.'; 3769lang['flashMessage.requestTimeout'] = '<b>Kapcsolódási hiba!</b><br/>Kérjük, frissÃtsd az oldalt és próbáld meg újra!'; 3770lang['flashMessage.unsavedModifications'] = 'Nem mentetted el a módosÃtást! Biztos ellépsz az oldalról?'; 3771 3772lang['commonConfirm'] = "Biztos vagy benne?"; 3773lang['confirm.conversationDel'] = 'Biztos törlöd ezt a beszélgetést?'; 3774lang['confirm.revokeUserBan'] = 'Biztos hogy feloldod ennek a felhasználónak a letiltását?'; 3775lang['confirm.subscriptionNeeded'] = "ElÅfizetés szükséges!"; 3776lang['confirm.cancelSubscription'] = "Biztos leállÃtod az elÅfizetésed folyamatos megújÃtását?" 3777 3778lang['mobile.subscription.successText'] = 'ElÅfizetésed sikeres!'; 3779lang['mobile.subscription.successHead'] = 'ElÅfizetésed sikeres!'; 3780lang['mobile.subscription.wrongText'] = 'Sikertelen elÅfizetés! Kérjük vedd fel a kapcsolatot az <a href="http://www.szexrandi.hu/segitseg">ügyfélszolgálattal</a>!'; 3781lang['mobile.subscription.wrongHead'] = 'ElÅfizetésed sikertelen!'; 3782 3783lang['gallery.defaultTitle'] = 'Képgaléria'; 3784lang['subscription.price'] = '{price} Ft'; 3785lang['subscription.price.perMonth'] = '{price_per_month} Ft/hó'; 3786lang['subscription.price.total'] = 'A teljes ár {price_total} Ft'; 3787lang['subscription.mv.error'] = "Sikertelen fizetés, bÅvebb tájékoztatást SMS-ben kapsz"; 3788 3789lang['messages.confirmDeletion'] = 'Biztos törölni szeretnéd ezt a levelezést?'; 3790 3791lang['frontend.boxOverlay.login.title'] = 'Belépés'; 3792lang['frontend.boxOverlay.passReset.title'] = 'Jelszó emlékeztetÅ'; 3793 3794lang['subscriptionPage.cancelRenew.text'] = '<span class="unsubConfirm"><h2>MegerÅsÃtés</h2><br /> Az automatikus megújulás egy kényelmi szolgáltatás: lejáratkor automatikusan levonjuk a következÅ periódusra szóló elÅfizetési dÃ
3794jat. Ãgy nem kell újra és újra végigmenned az elÅfizetési folyamaton, és nem kell figyelned a lejáratra- amÃg társat keresel, addig folyamatosan élvezheted az elÅfizetési szolgáltatásokat.<br><br>Biztosan lemondod ezt a szolgáltatást vagy inkább élvezed a megújulás kényelmét?</span>'; 3795lang['subscriptionPage.cancelRenew.No'] = 'Megtartom'; 3796lang['subscriptionPage.cancelRenew.Yes'] = 'Lemondom'; 3797 3798lang['connection.user.permanentBanned.alert'] = 'A felhasználót végleg letiltottad ezért nem láthatod az adatlapját!'; 3799lang['connection.user.permanentBanned.alert.action'] = 'Ez a funkció nem elérhetÅ, mert a felhasználót végleg letiltottad.'; 3800lang['connection.user.permanentBanned.alert.recipient'] = 'Ez a funkció nem elérhetÅ, mert a felhasználó letiltott téged.'; 3801 3802lang['connection.user.ban.prompt.revoke.alert'] = 'A felhasználót letiltottad ezért nem láthatod az adatlapját. A tiltás feloldására egyszeri lehetÅséget biztosÃtunk. '; 3803lang['connection.user.ban.prompt.revoke.accept'] = 'Feloldom'; 3804 3805lang['connection.user.ban.prompt.revoke.alert.action'] = 'Ez a funkció nem elérhetÅ, mert a felhasználót letiltottad. A tiltás feloldására egyszeri lehetÅséget biztosÃtunk.'; 3806 3807// Redesign 3808// common 3809lang['staticData.sex.1'] = 'NÅ'; 3810lang['staticData.sex.2'] = 'Férfi'; 3811 3812lang['common.imgAlt'] = "{userName} profilképe"; 3813lang['common.imgAltHidden'] = "Felhasználó profilképe"; 3814lang["common.budapestCounty"] = "{label} kerület"; 3815 3816lang['common.accept'] = "Rendben"; 3817lang['common.yes'] = "Igen"; 3818lang['common.cancel'] = "Mégsem"; 3819lang['common.no'] = "Nem"; 3820lang['common.successSave'] = "Sikeres mentés"; 3821lang['common.removed'] = "Sikeresen eltávolÃtva"; 3822 3823lang['common.ban.accept'] = 'letiltom'; 3824lang['common.revoke.accept'] = 'feloldom'; 3825 3826lang['common.error.general'] = 'Hiba történt, kérjük próbáld meg késÅbb!'; 3827 3828lang["connection.event.0"] = "Megnéztétek egymást"; 3829lang["connection.event.1"] = "Kedvelitek egymást"; 3830lang["connection.event.2"] = "Ãrtatok egymásnak"; 3831lang["connection.event.3"] = "Engedélyeztétek a titkos képeket"; 3832lang["connection.event.4"] = "Videochateltetek"; 3833 3834lang['disloyaltyIndex.chart.label'] = "Hűtlenségi index"; 3835 3836lang['user.privatePictureMe.withdraw.access'] = "Biztos visszavonod az engedélyt?"; 3837 3838// profil 3839lang['user.profile.successSupportMessage'] = 'Köszönjük a visszajelzést. Kollégáink hamarosan válaszolni fognak az általad megadott e-mail cÃmre.'; 3840 3841 3842// uri 3843 3844lang['pages.uri.profile'] = 'profil/'; 3845 3846// flash message 3847lang["flashMessage.story.voteFailed"] = "Sikeres szavazás!"; 3848lang["flashMessage.searchTerms.remove"] = "Biztos törlöd?"; 3849lang["flashMessage.photoEdit.remove"] = "Biztos törlöd?"; 3850lang['flashMessage.user.banned.withdraw.success'] = "A felhasználó tiltását visszavontad! Ãjra láthat téged!"; 3851 3852lang["confirmMessage.user.ban"] = "Ezzel a művelettel letiltod a felhasználót, mostantól nem láthat téged."; 3853lang["confirmMessage.user.revoke"] = "Ezzel a művelettel feloldod a tiltást, mostantól újra láthat téged."; 3854lang["confirmMessage.user.banPermanent"] = "A felhasználót már egyszer letiltottad. Ha most újra letiltod, többször már nem fogod tudni feloldani."; 3855lang["confirmMessage.user.bannedPermanent"] = "A felhasználót végleg letiltottad. Többször már nem tudod feloldani."; 3856lang["confirmMessage.user.revoke.home"] = "A felhasználót letiltottad ezért nem láthatod az adatlapját. A tiltás feloldására egyszeri lehetÅséget biztosÃtunk."; 3857 3858//story 3859 3860lang["story.status.published"] = "Publikálva:"; 3861lang["story.status.saved"] = "Mentve:"; 3862lang["story.status.incomplete"] = "Mentve:"; 3863lang["story.status.suspended"] = "Mentve:"; 3864 3865lang["story.view.points.voted"] = 'Már pontoztad ezt a történetet!'; 3866 3867lang['story.deleteQuestion'] = 'Biztos törlöd ezt a történetet?'; 3868 3869// pages 3870lang['pages.landing.boxes.lostPassword.title'] = 'jelszóemlékeztetÅ'; 3871lang['pages.landing.boxes.login.title'] = 'LÃPJ BE!'; 3872 3873// messages 3874lang['messages.delete.confirm'] = 'Biztosan törlöd a beszélgetést?';
3875lang['messages.multiDelete.confirm'] = 'Biztosan törlöd a beszélgetéseket?'; 3876lang['messages.photoViewer.wait'] = 'Kis türelmet...'; 3877lang['messages.videochatClosingInfo'] = 'Be fog záródni a videóbeszélgetés, biztosan elnavigálsz?'; 3878 3879// subscription 3880lang['subscription.mode.err.mobileNumberRequired'] = 'Add meg a telefonszámod!'; 3881lang['subscription.mode.confirmNavigation'] = 'Folyamatban vagy egy vásárlásod. Biztosan elnavigálsz?'; 3882 3883lang['multiselect.empty'] = 'Válassz...'; 3884lang['multiselect.some'] = '{count} kiválasztva'; 3885lang['multiselect.all'] = 'mind kiválasztva'; 3886 3887// url 3888lang['url_profile'] = config['path'] + "profil/";
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.