vendor: 12,699 bytes, lines 1-2
1/*! jQuery v3.4.0 | (c) JS Foundation and other contributors | jquery.org/license */ 2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.0",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N
vendor: 8,538 bytes, line 2
2(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=
vendor: 5,832 bytes, line 2
2A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=k.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&A.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(N
vendor: 8,719 bytes, line 2
2(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.
vendor: 8,633 bytes, line 2
2attachShadow&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(Q.set(this,i,k.event.trigger(k.extend(r.shift(),k.Event.prototype),r,this)),e.stopImmediatePropagation())}})):k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&N(t,"input")&&Q.get(t,"click")||N(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?
vendor: 1,513 bytes, line 2
2ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ae),!1},trigger:function(){return De(this,e),!0},delegateType:t}}
vendor: 1,067 bytes, line 2
2),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ne(this,e,t,n,r)},one:function(e,t,n,r){return Ne(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return N(e,"table")&&N
vendor: 18,145 bytes, line 2
2(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&
vendor: 2,246 bytes, line 2
2N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");
vendor: 5,840 bytes, line 2
2if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var At=/\[\]$/,Nt=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||At.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(Nt,"\r\n")}}):{name:t.name,value:n.replace(N
vendor: 14,531 bytes, line 2
2t,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=
vendor: 1,578 bytes, lines 2-47
2N,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); 3 4 5 6/*! 7 * jQuery Form Plugin 8 * version: 3.18 (28-SEP-2012) 9 * @requires jQuery v1.5 or later 10 * 11 * Examples and documentation at: https://malsup.com/jquery/form/ 12 * Project repository: https://github.com/malsup/form 13 * Dual licensed under the MIT and GPL licenses: 14 * https://malsup.github.com/mit-license.txt 15 * https://malsup.github.com/gpl-license-v2.txt 16 */ 17/*global ActiveXObject alert */ 18; 19(function($) { 20 "use strict"; 21 22 /* 23 Usage Note: 24 ----------- 25 Do not use both ajaxSubmit and ajaxForm on the same form. These 26 functions are mutually exclusive. Use ajaxSubmit if you want 27 to bind your own submit handler to the form. For example, 28 29 $(document).ready(function() { 30 $('#myForm').on('submit', function(e) { 31 e.preventDefault(); // <-- important 32 $(this).ajaxSubmit({ 33 target: '#output' 34 }); 35 }); 36 }); 37 38 Use ajaxForm when you want the plugin to manage all the event binding 39 for you. For example, 40 41 $(document).ready(function() { 42 $('#myForm').ajaxForm({ 43 target: '#output' 44 }); 45 }); 46 47 You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
48 form does not have to exist when you invoke ajaxForm: 49 50 $('#myForm').ajaxForm({ 51 delegation: true, 52 target: '#output' 53 }); 54 55 When using ajaxForm, the ajaxSubmit function will be invoked for you 56 at the appropriate time. 57 */ 58 59 /** 60 * Feature detection 61 */ 62 var feature = {}; 63 feature.fileapi = $("<input type='file'/>").get(0).files !== undefined; 64 feature.formdata = window.FormData !== undefined; 65 66 /** 67 * ajaxSubmit() provides a mechanism for immediately submitting 68 * an HTML form using AJAX. 69 */ 70 $.fn.ajaxSubmit = function(options) { 71 /*jshint scripturl:true */ 72 73 // fast fail if nothing selected (https://dev.jquery.com/ticket/2752) 74 if (!this.length) { 75 log('ajaxSubmit: skipping submit process - no element selected'); 76 return this; 77 } 78 79 var method, action, url, $form = this; 80 81 if (typeof options == 'function') { 82 options = {success: options}; 83 } 84 85 method = this.attr('method'); 86 action = this.attr('action'); 87 url = (typeof action === 'string') ? $.trim(action) : ''; 88 url = url || window.location.href || ''; 89 if (url) { 90 // clean url (don't include hash vaue) 91 url = (url.match(/^([^#]+)/) || [])[1]; 92 } 93 94 options = $.extend(true, { 95 url: url, 96 success: $.ajaxSettings.success, 97 type: method || 'GET', 98 iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' 99 }, options); 100 101 // hook for manipulating the form data before it is extracted; 102 // convenient for use with rich editors like tinyMCE or FCKEditor 103 var veto = {}; 104 this.trigger('form-pre-serialize', [this, options, veto]); 105 if (veto.veto) { 106 log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); 107 return this; 108 } 109 110 // provide opportunity to alter form data before it is serialized 111 if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { 112 log('ajaxSubmit: submit aborted via beforeSerialize callback'); 113 return this; 114 } 115 116 var traditional = options.traditional; 117 if (traditional === undefined) { 118 traditional = $.ajaxSettings.traditional; 119 } 120 121 var elements = []; 122 var qx, a = this.formToArray(options.semantic, elements); 123 if (options.data) { 124 options.extraData = options.data; 125 qx = $.param(options.data, traditional); 126 } 127 128 // give pre-submit callback an opportunity to abort the submit 129 if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { 130 log('ajaxSubmit: submit aborted via beforeSubmit callback'); 131 return this; 132 } 133 134 // fire vetoable 'validate' event 135 this.trigger('form-submit-validate', [a, this, options, veto]); 136 if (veto.veto) { 137 log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); 138 return this; 139 } 140 141 var q = $.param(a, traditional); 142 if (qx) { 143 q = (q ? (q + '&' + qx) : qx); 144 } 145 if (options.type.toUpperCase() == 'GET') { 146 options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; 147 options.data = null; // data is null for 'get' 148 } 149 else { 150 options.data = q; // data is the query string for 'post' 151 } 152 153 var callbacks = []; 154 if (options.resetForm) { 155 callbacks.push(function() { 156 $form.resetForm(); 157 }); 158 } 159 if (options.clearForm) { 160 callbacks.push(function() { 161 $form.clearForm(options.includeHidden); 162 }); 163 } 164 165 // perform a load on the target only if dataType is not provided 166 if (!options.dataType && options.target) { 167 var oldSuccess = options.success || function() { 168 }; 169 callbacks.push(function(data) { 170 var fn = options.replaceTarget ? 'replaceWith' : 'html'; 171 $(options.target)[fn](data).each(oldSuccess, arguments); 172 }); 173 } 174 else if (options.success) { 175 callbacks.push(options.success); 176 } 177 178 options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg 179 var context = options.context || this; // jQuery 1.4+ supports scope context 180 for (var i = 0, max = callbacks.length; i < max; i++) { 181 callbacks[i].apply(context, [data, status, xhr || $form, $form]); 182 } 183 }; 184 185 // are there files to upload? 186 var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113) 187 var hasFileInputs = fileInputs.length > 0; 188 var mp = 'multipart/form-data'; 189 var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); 190 191 var fileAPI = feature.fileapi && feature.formdata; 192 log("fileAPI :" + fileAPI); 193 var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; 194 195 var jqxhr; 196 197 // options.iframe allows user to force iframe mode 198 // 06-NOV-09: now defaulting to iframe mode if file input is detected 199 if (options.iframe !== false && (options.iframe || shouldUseFrame)) { 200 // hack to fix Safari hang (thanks to Tim Molendijk for this) 201 // see: https://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d 202 if (options.closeKeepAlive) { 203 $.get(options.closeKeepAlive, function() { 204 jqxhr = fileUploadIframe(a); 205 }); 206 } 207 else { 208 jqxhr = fileUploadIframe(a); 209 } 210 } 211 else if ((hasFileInputs || multipart) && fileAPI) { 212 jqxhr = fileUploadXhr(a); 213 } 214 else { 215 jqxhr = $.ajax(options); 216 } 217 218 $form.removeData('jqxhr').data('jqxhr', jqxhr); 219 220 // clear element array 221 for (var k = 0; k < elements.length; k++) 222 elements[k] = null; 223 224 // fire 'notify' event 225 this.trigger('form-submit-notify', [this, options]); 226 return this; 227 228 // utility fn for deep serialization 229 function deepSerialize(extraData) { 230 var serialized = $.param(extraData).split('&'); 231 var len = serialized.length; 232 var result = {}; 233 var i, part; 234 for (i = 0; i < len; i++) { 235 part = serialized[i].split('=');
236 result[decodeURIComponent(part[0])] = decodeURIComponent(part[1]); 237 } 238 return result; 239 } 240 241 // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz) 242 function fileUploadXhr(a) { 243 var formdata = new FormData(); 244 245 for (var i = 0; i < a.length; i++) { 246 formdata.append(a[i].name, a[i].value); 247 } 248 249 if (options.extraData) { 250 var serializedData = deepSerialize(options.extraData); 251 for (var p in serializedData) 252 if (serializedData.hasOwnProperty(p)) 253 formdata.append(p, serializedData[p]); 254 } 255 256 options.data = null; 257 258 var s = $.extend(true, {}, $.ajaxSettings, options, { 259 contentType: false, 260 processData: false, 261 cache: false, 262 type: method || 'POST' 263 }); 264 265 if (options.uploadProgress) { 266 // workaround because jqXHR does not expose upload property 267 s.xhr = function() { 268 var xhr = jQuery.ajaxSettings.xhr(); 269 if (xhr.upload) { 270 xhr.upload.onprogress = function(event) { 271 var percent = 0; 272 var position = event.loaded || event.position; /*event.position is deprecated*/ 273 var total = event.total; 274 if (event.lengthComputable) { 275 percent = Math.ceil(position / total * 100); 276 } 277 options.uploadProgress(event, position, total, percent); 278 }; 279 } 280 return xhr; 281 }; 282 } 283 284 s.data = null; 285 var beforeSend = s.beforeSend; 286 s.beforeSend = function(xhr, o) { 287 o.data = formdata; 288 if (beforeSend) 289 beforeSend.call(this, xhr, o); 290 }; 291 return $.ajax(s); 292 } 293 294 // private function for handling file uploads (hat tip to YAHOO!) 295 function fileUploadIframe(a) { 296 var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; 297 var useProp = !!$.fn.prop; 298 var deferred = $.Deferred(); 299 300 if ($(':input[name=submit],:input[id=submit]', form).length) { 301 // if there is an input with a name or id of 'submit' then we won't be 302 // able to invoke the submit fn on the form (at least not x-browser) 303 alert('Error: Form elements must not have name or id of "submit".'); 304 deferred.reject(); 305 return deferred; 306 } 307 308 if (a) { 309 // ensure that every serialized input is still enabled 310 for (i = 0; i < elements.length; i++) { 311 el = $(elements[i]); 312 if (useProp) 313 el.prop('disabled', false); 314 else 315 el.removeAttr('disabled'); 316 } 317 } 318 319 s = $.extend(true, {}, $.ajaxSettings, options); 320 s.context = s.context || s; 321 id = 'jqFormIO' + (new Date().getTime()); 322 if (s.iframeTarget) { 323 $io = $(s.iframeTarget); 324 n = $io.attr('name'); 325 if (!n) 326 $io.attr('name', id); 327 else 328 id = n; 329 } 330 else { 331 $io = $('<iframe name="' + id + '" src="' + s.iframeSrc + '" />'); 332 $io.css({position: 'absolute', top: '-1000px', left: '-1000px'}); 333 } 334 io = $io[0]; 335 336 337 xhr = {// mock object 338 aborted: 0, 339 responseText: null, 340 responseXML: null, 341 status: 0, 342 statusText: 'n/a', 343 getAllResponseHeaders: function() { 344 }, 345 getResponseHeader: function() { 346 }, 347 setRequestHeader: function() { 348 }, 349 abort: function(status) { 350 var e = (status === 'timeout' ? 'timeout' : 'aborted'); 351 log('aborting upload... ' + e); 352 this.aborted = 1; 353 // #214
354 if (io.contentWindow.document.execCommand) { 355 try { // #214 356 io.contentWindow.document.execCommand('Stop'); 357 } catch (ignore) { 358 } 359 } 360 $io.attr('src', s.iframeSrc); // abort op in progress 361 xhr.error = e; 362 if (s.error) 363 s.error.call(s.context, xhr, e, status); 364 if (g) 365 $.event.trigger("ajaxError", [xhr, s, e]); 366 if (s.complete) 367 s.complete.call(s.context, xhr, e); 368 } 369 }; 370 371 g = s.global; 372 // trigger ajax global events so that activity/block indicators work like normal 373 if (g && 0 === $.active++) { 374 $.event.trigger("ajaxStart"); 375 } 376 if (g) { 377 $.event.trigger("ajaxSend", [xhr, s]); 378 } 379 380 if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) { 381 if (s.global) { 382 $.active--; 383 } 384 deferred.reject(); 385 return deferred; 386 } 387 if (xhr.aborted) { 388 deferred.reject(); 389 return deferred; 390 } 391 392 // add submitting element to data if we know it 393 sub = form.clk; 394 if (sub) { 395 n = sub.name; 396 if (n && !sub.disabled) { 397 s.extraData = s.extraData || {}; 398 s.extraData[n] = sub.value; 399 if (sub.type == "image") { 400 s.extraData[n + '.x'] = form.clk_x; 401 s.extraData[n + '.y'] = form.clk_y; 402 } 403 } 404 } 405 406 var CLIENT_TIMEOUT_ABORT = 1; 407 var SERVER_ABORT = 2; 408 409 function getDoc(frame) { 410 var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document; 411 return doc; 412 } 413 414 // Rails CSRF hack (thanks to Yvan Barthelemy) 415 var csrf_token = $('meta[name=csrf-token]').attr('content'); 416 var csrf_param = $('meta[name=csrf-param]').attr('content'); 417 if (csrf_param && csrf_token) { 418 s.extraData = s.extraData || {}; 419 s.extraData[csrf_param] = csrf_token; 420 } 421 422 // take a breath so that pending repaints get some cpu time before the upload starts 423 function doSubmit() { 424 // make sure form attrs are set 425 var t = $form.attr('target'), a = $form.attr('action'); 426 427 // update form attrs in IE friendly way 428 form.setAttribute('target', id); 429 if (!method) { 430 form.setAttribute('method', 'POST'); 431 } 432 if (a != s.url) { 433 form.setAttribute('action', s.url); 434 } 435 436 // ie borks in some cases when setting encoding 437 if (!s.skipEncodingOverride && (!method || /post/i.test(method))) { 438 $form.attr({ 439 encoding: 'multipart/form-data', 440 enctype: 'multipart/form-data' 441 }); 442 } 443 444 // support timout 445 if (s.timeout) { 446 timeoutHandle = setTimeout(function() { 447 timedOut = true; 448 cb(CLIENT_TIMEOUT_ABORT); 449 }, s.timeout); 450 } 451 452 // look for server aborts 453 function checkState() { 454 try { 455 var state = getDoc(io).readyState; 456 log('state = ' + state); 457 if (state && state.toLowerCase() == 'uninitialized') 458 setTimeout(checkState, 50); 459 } 460 catch (e) { 461 log('Server abort: ', e, ' (', e.name, ')'); 462 cb(SERVER_ABORT); 463 if (timeoutHandle) 464 clearTimeout(timeoutHandle); 465 timeoutHandle = undefined; 466 } 467 } 468 469 // add "extra" data to form if provided in options 470 var extraInputs = []; 471 try { 472 if (s.extraData) { 473 for (var n in s.extraData) { 474 if (s.extraData.hasOwnProperty(n)) { 475 // if using the $.param format that allows for multiple values with the same name 476 if ($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) { 477 extraInputs.push( 478 $('<input type="hidden" name="' + s.extraData[n].name + '">').attr('value', s.extraData[n].value) 479 .appendTo(form)[0]); 480 } else { 481 extraInputs.push( 482 $('<input type="hidden" name="' + n + '">').attr('value', s.extraData[n]) 483 .appendTo(form)[0]); 484 } 485 } 486 } 487 } 488 489 if (!s.iframeTarget) { 490 // add iframe to doc and submit the form 491 $io.appendTo('body'); 492 if (io.attachEvent) 493 io.attachEvent('onload', cb); 494 else 495 io.addEventListener('load', cb, false); 496 } 497 setTimeout(checkState, 15); 498 form.submit(); 499 } 500 finally { 501 // reset attrs and remove "extra" input elements 502 form.setAttribute('action', a); 503 if (t) { 504 form.setAttribute('target', t); 505 } else { 506 $form.removeAttr('target'); 507 } 508 $(extraInputs).remove(); 509 } 510 } 511 512 if (s.forceSync) { 513 doSubmit(); 514 } 515 else { 516 setTimeout(doSubmit, 10); // this lets dom updates render 517 } 518 519 var data, doc, domCheckCount = 50, callbackProcessed; 520 521 function cb(e) { 522 if (xhr.aborted || callbackProcessed) { 523 return; 524 } 525 try { 526 doc = getDoc(io); 527 } 528 catch (ex) { 529 log('cannot access response document: ', ex); 530 e = SERVER_ABORT; 531 } 532 if (e === CLIENT_TIMEOUT_ABORT && xhr) { 533 xhr.abort('timeout'); 534 deferred.reject(xhr, 'timeout'); 535 return; 536 } 537 else if (e == SERVER_ABORT && xhr) { 538 xhr.abort('server abort'); 539 deferred.reject(xhr, 'error', 'server abort'); 540 return; 541 } 542 543 if (!doc || doc.location.href == s.iframeSrc) { 544 // response not received yet 545 if (!timedOut) 546 return; 547 } 548 if (io.detachEvent) 549 io.detachEvent('onload', cb); 550 else 551 io.removeEventListener('load', cb, false); 552 553 var status = 'success', errMsg; 554 try { 555 if (timedOut) { 556 throw 'timeout'; 557 } 558 559 var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc); 560 log('isXml=' + isXml); 561 if (!isXml && window.opera && (doc.body === null || !doc.body.innerHTML)) { 562 if (--domCheckCount) { 563 // in some browsers (Opera) the iframe DOM is not always traversable when 564 // the onload callback fires, so we loop a bit to accommodate 565 log('requeing onLoad callback, DOM not available'); 566 setTimeout(cb, 250); 567 return; 568 } 569 // let this fall through because server response could be an empty document 570 //log('Could not access iframe DOM after mutiple tries.'); 571 //throw 'DOMException: not available'; 572 } 573 574 //log('response detected'); 575 var docRoot = doc.body ? doc.body : doc.documentElement; 576 xhr.responseText = docRoot ? docRoot.innerHTML : null; 577 xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; 578 if (isXml) 579 s.dataType = 'xml'; 580 xhr.getResponseHeader = function(header) { 581 var headers = {'content-type': s.dataType}; 582 return headers[header]; 583 }; 584 // support for XHR 'status' & 'statusText' emulation : 585 if (docRoot) { 586 xhr.status = Number(docRoot.getAttribute('status')) || xhr.status; 587 xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText; 588 } 589 590 var dt = (s.dataType || '').toLowerCase(); 591 var scr = /(json|script|text)/.test(dt); 592 if (scr || s.textarea) { 593 // see if user embedded response in textarea 594 var ta = doc.getElementsByTagName('textarea')[0]; 595 if (ta) { 596 xhr.responseText = ta.value; 597 // support for XHR 'status' & 'statusText' emulation : 598 xhr.status = Number(ta.getAttribute('status')) || xhr.status; 599 xhr.statusText = ta.getAttribute('statusText') || xhr.statusText; 600 } 601 else if (scr) { 602 // account for browsers injecting pre around json response 603 var pre = doc.getElementsByTagName('pre')[0]; 604 var b = doc.getElementsByTagName('body')[0]; 605 if (pre) { 606 xhr.responseText = pre.textContent ? pre.textContent : pre.innerText; 607 } 608 else if (b) { 609 xhr.responseText = b.textContent ? b.textContent : b.innerText; 610 } 611 } 612 } 613 else if (dt == 'xml' && !xhr.responseXML && xhr.responseText) { 614 xhr.responseXML = toXml(xhr.responseText); 615 } 616 617 try { 618 data = httpData(xhr, dt, s); 619 } 620 catch (e) { 621 status = 'parsererror'; 622 xhr.error = errMsg = (e || status); 623 } 624 } 625 catch (e) { 626 log('error caught: ', e); 627 status = 'error'; 628 xhr.error = errMsg = (e || status); 629 } 630 631 if (xhr.aborted) { 632 log('upload aborted'); 633 status = null; 634 } 635 636 if (xhr.status) { // we've set xhr.status 637 status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error'; 638 } 639 640 // ordering of these callbacks/triggers is odd, but that's how $.ajax does it 641 if (status === 'success') { 642 if (s.success) 643 s.success.call(s.context, data, 'success', xhr); 644 deferred.resolve(xhr.responseText, 'success', xhr); 645 if (g) 646 $.event.trigger("ajaxSuccess", [xhr, s]); 647 } 648 else if (status) { 649 if (errMsg === undefined) 650 errMsg = xhr.statusText; 651 if (s.error) 652 s.error.call(s.context, xhr, status, errMsg); 653 deferred.reject(xhr, 'error', errMsg); 654 if (g) 655 $.event.trigger("ajaxError", [xhr, s, errMsg]); 656 } 657 658 if (g)
659 $.event.trigger("ajaxComplete", [xhr, s]); 660 661 if (g && !--$.active) { 662 $.event.trigger("ajaxStop"); 663 } 664 665 if (s.complete) 666 s.complete.call(s.context, xhr, status); 667 668 callbackProcessed = true; 669 if (s.timeout) 670 clearTimeout(timeoutHandle); 671 672 // clean up 673 setTimeout(function() { 674 if (!s.iframeTarget) 675 $io.remove(); 676 xhr.responseXML = null; 677 }, 100); 678 } 679 680 var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+) 681 if (window.ActiveXObject) { 682 doc = new ActiveXObject('Microsoft.XMLDOM'); 683 doc.async = 'false'; 684 doc.loadXML(s); 685 } 686 else { 687 doc = (new DOMParser()).parseFromString(s, 'text/xml'); 688 } 689 return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null; 690 }; 691 var parseJSON = $.parseJSON || function(s) { 692 /*jslint evil:true */ 693 return window['eval']('(' + s + ')'); 694 }; 695 696 var httpData = function(xhr, type, s) { // mostly lifted from jq1.4.4 697 698 var ct = xhr.getResponseHeader('content-type') || '', 699 xml = type === 'xml' || !type && ct.indexOf('xml') >= 0, 700 data = xml ? xhr.responseXML : xhr.responseText; 701 702 if (xml && data.documentElement.nodeName === 'parsererror') { 703 if ($.error) 704 $.error('parsererror'); 705 } 706 if (s && s.dataFilter) { 707 data = s.dataFilter(data, type); 708 } 709 if (typeof data === 'string') { 710 if (type === 'json' || !type && ct.indexOf('json') >= 0) { 711 data = parseJSON(data); 712 } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) { 713 $.globalEval(data); 714 } 715 } 716 return data; 717 }; 718 719 return deferred; 720 } 721 }; 722 723 /** 724 * ajaxForm() provides a mechanism for fully automating form submission. 725 * 726 * The advantages of using this method instead of ajaxSubmit() are: 727 * 728 * 1: This method will include coordinates for <input type="image" /> elements (if the element 729 * is used to submit the form). 730 * 2. This method will include the submit element's name/value data (for the element that was 731 * used to submit the form). 732 * 3. This method binds the submit() method to the form for you. 733 * 734 * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely 735 * passes the options argument along after properly binding events for submit elements and 736 * the form itself. 737 */ 738 $.fn.ajaxForm = function(options) { 739 options = options || {}; 740 options.delegation = options.delegation && $.isFunction($.fn.on); 741 742 // in jQuery 1.3+ we can fix mistakes with the ready state 743 if (!options.delegation && this.length === 0) { 744 var o = {s: this.selector, c: this.context}; 745 if (!$.isReady && o.s) { 746 log('DOM not ready, queuing ajaxForm'); 747 $(function() { 748 $(o.s, o.c).ajaxForm(options); 749 }); 750 return this; 751 } 752 // is your DOM ready? https://docs.jquery.com/Tutorials:Introducing_$(document).ready() 753 log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)')); 754 return this; 755 } 756 757 if (options.delegation) { 758 $(document) 759 .off('submit.form-plugin', this.selector, doAjaxSubmit) 760 .off('click.form-plugin', this.selector, captureSubmittingElement) 761 .on('submit.form-plugin', this.selector, options, doAjaxSubmit) 762 .on('click.form-plugin', this.selector, options, captureSubmittingElement); 763 return this; 764 } 765 766 return this.ajaxFormUnbind() 767 .bind('submit.form-plugin', options, doAjaxSubmit) 768 .bind('click.form-plugin', options, captureSubmittingElement); 769 }; 770 771// private event handlers 772 function doAjaxSubmit(e) { 773 /*jshint validthis:true */ 774 var options = e.data; 775 if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed 776 e.preventDefault(); 777 $(this).ajaxSubmit(options); 778 } 779 } 780 781 function captureSubmittingElement(e) { 782 /*jshint validthis:true */ 783 var target = e.target; 784 var $el = $(target); 785 if (!($el.is(":submit,input:image"))) { 786 // is this a child element of the submit el? (ex: a span within a button) 787 var t = $el.closest(':submit'); 788 if (t.length === 0) { 789 return; 790 } 791 target = t[0]; 792 } 793 var form = this; 794 form.clk = target; 795 if (target.type == 'image') { 796 if (e.offsetX !== undefined) { 797 form.clk_x = e.offsetX; 798 form.clk_y = e.offsetY; 799 } else if (typeof $.fn.offset == 'function') { 800 var offset = $el.offset(); 801 form.clk_x = e.pageX - offset.left; 802 form.clk_y = e.pageY - offset.top; 803 } else { 804 form.clk_x = e.pageX - target.offsetLeft; 805 form.clk_y = e.pageY - target.offsetTop; 806 } 807 } 808 // clear form vars 809 setTimeout(function() { 810 form.clk = form.clk_x = form.clk_y = null; 811 }, 100); 812 } 813 814 815// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm 816 $.fn.ajaxFormUnbind = function() { 817 return this.unbind('submit.form-plugin click.form-plugin'); 818 }; 819 820 /** 821 * formToArray() gathers form element data into an array of objects that can 822 * be passed to any of the following ajax functions: $.get, $.post, or load. 823 * Each object in the array has both a 'name' and 'value' property. An example of 824 * an array for a simple login form might be: 825 * 826 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] 827 * 828 * It is this array that is passed to pre-submit callback functions provided to the 829 * ajaxSubmit() and ajaxForm() methods. 830 */ 831 $.fn.formToArray = function(semantic, elements) { 832 var a = []; 833 if (this.length === 0) { 834 return a; 835 } 836 837 var form = this[0]; 838 var els = semantic ? form.getElementsByTagName('*') : form.elements; 839 if (!els) { 840 return a; 841 } 842 843 var i, j, n, v, el, max, jmax; 844 for (i = 0, max = els.length; i < max; i++) { 845 el = els[i]; 846 n = el.name; 847 if (!n) { 848 continue; 849 } 850 851 if (semantic && form.clk && el.type == "image") { 852 // handle image inputs on the fly when semantic == true 853 if (!el.disabled && form.clk == el) { 854 a.push({name: n, value: $(el).val(), type: el.type}); 855 a.push({name: n + '.x', value: form.clk_x}
855, {name: n + '.y', value: form.clk_y}); 856 } 857 continue; 858 } 859 860 v = $.fieldValue(el, true); 861 if (v && v.constructor == Array) { 862 if (elements) 863 elements.push(el); 864 for (j = 0, jmax = v.length; j < jmax; j++) { 865 a.push({name: n, value: v[j]}); 866 } 867 } 868 else if (feature.fileapi && el.type == 'file' && !el.disabled) { 869 if (elements) 870 elements.push(el); 871 var files = el.files; 872 if (files.length) { 873 for (j = 0; j < files.length; j++) { 874 a.push({name: n, value: files[j], type: el.type}); 875 } 876 } 877 else { 878 // #180 879 a.push({name: n, value: '', type: el.type}); 880 } 881 } 882 else if (v !== null && typeof v != 'undefined') { 883 if (elements) 884 elements.push(el); 885 a.push({name: n, value: v, type: el.type, required: el.required}); 886 } 887 } 888 889 if (!semantic && form.clk) { 890 // input type=='image' are not found in elements array! handle it here 891 var $input = $(form.clk), input = $input[0]; 892 n = input.name; 893 if (n && !input.disabled && input.type == 'image') { 894 a.push({name: n, value: $input.val()}); 895 a.push({name: n + '.x', value: form.clk_x}, {name: n + '.y', value: form.clk_y}); 896 } 897 } 898 return a; 899 }; 900 901 /** 902 * Serializes form data into a 'submittable' string. This method will return a string 903 * in the format: name1=value1&name2=value2 904 */ 905 $.fn.formSerialize = function(semantic) { 906 //hand off to jQuery.param for proper encoding 907 return $.param(this.formToArray(semantic)); 908 }; 909 910 /** 911 * Serializes all field elements in the jQuery object into a query string. 912 * This method will return a string in the format: name1=value1&name2=value2 913 */ 914 $.fn.fieldSerialize = function(successful) { 915 var a = []; 916 this.each(function() { 917 var n = this.name; 918 if (!n) { 919 return; 920 } 921 var v = $.fieldValue(this, successful); 922 if (v && v.constructor == Array) { 923 for (var i = 0, max = v.length; i < max; i++) { 924 a.push({name: n, value: v[i]}); 925 } 926 } 927 else if (v !== null && typeof v != 'undefined') { 928 a.push({name: this.name, value: v}); 929 } 930 }); 931 //hand off to jQuery.param for proper encoding 932 return $.param(a); 933 }; 934 935 /** 936 * Returns the value(s) of the element in the matched set. For example, consider the following form: 937 * 938 * <form><fieldset> 939 * <input name="A" type="text" /> 940 * <input name="A" type="text" /> 941 * <input name="B" type="checkbox" value="B1" /> 942 * <input name="B" type="checkbox" value="B2"/> 943 * <input name="C" type="radio" value="C1" /> 944 * <input name="C" type="radio" value="C2" /> 945 * </fieldset></form> 946 * 947 * var v = $(':text').fieldValue(); 948 * // if no values are entered into the text inputs 949 * v == ['',''] 950 * // if values entered into the text inputs are 'foo' and 'bar' 951 * v == ['foo','bar'] 952 * 953 * var v = $(':checkbox').fieldValue(); 954 * // if neither checkbox is checked 955 * v === undefined 956 * // if both checkboxes are checked 957 * v == ['B1', 'B2'] 958 * 959 * var v = $(':radio').fieldValue(); 960 * // if neither radio is checked 961 * v === undefined 962 * // if first radio is checked 963 * v == ['C1'] 964 * 965 * The successful argument controls whether or not the field element must be 'successful' 966 * (per https://www.w3.org/TR/html4/interact/forms.html#successful-controls). 967 * The default value of the successful argument is true. If this value is false the value(s) 968 * for each element is returned. 969 * 970 * Note: This method *always* returns an array. If no valid value can be determined the 971 * array will be empty, otherwise it will contain one or more values. 972 */ 973 $.fn.fieldValue = function(successful) { 974 for (var val = [], i = 0, max = this.length; i < max; i++) { 975 var el = this[i]; 976 var v = $.fieldValue(el, successful); 977 if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) { 978 continue; 979 } 980 if (v.constructor == Array) 981 $.merge(val, v); 982 else 983 val.push(v); 984 } 985 return val; 986 }; 987 988 /** 989 * Returns the value of the field element. 990 */ 991 $.fieldValue = function(el, successful) { 992 var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); 993 if (successful === undefined) { 994 successful = true; 995 } 996 997 if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || 998 (t == 'checkbox' || t == 'radio') && !el.checked || 999 (t == 'submit' || t == 'image') && el.form && el.form.clk != el || 1000 tag == 'select' && el.selectedIndex == -1)) { 1001 return null; 1002 } 1003 1004 if (tag == 'select') { 1005 var index = el.selectedIndex; 1006 if (index < 0) { 1007 return null; 1008 } 1009 var a = [], ops = el.options; 1010 var one = (t == 'select-one'); 1011 var max = (one ? index + 1 : ops.length); 1012 for (var i = (one ? index : 0); i < max; i++) { 1013 var op = ops[i]; 1014 if (op.selected) { 1015 var v = op.value; 1016 if (!v) { // extra pain for IE... 1017 v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value; 1018 } 1019 if (one) { 1020 return v; 1021 } 1022 a.push(v); 1023 } 1024 } 1025 return a; 1026 } 1027 return $(el).val(); 1028 }; 1029 1030 /** 1031 * Clears the form data. Takes the following actions on the form's input fields: 1032 * - input text fields will have their 'value' property set to the empty string 1033 * - select elements will have their 'selectedIndex' property set to -1 1034 * - checkbox and radio inputs will have their 'checked' property set to false 1035 * - inputs of type submit, button, reset, and hidden will *not* be effected 1036 * - button elements will *not* be effected 1037 */ 1038 $.fn.clearForm = function(includeHidden) { 1039 return this.each(function() { 1040 $('input,select,textarea', this).clearFields(includeHidden); 1041 }); 1042 }; 1043 1044 /** 1045 * Clears the selected form elements. 1046 */ 1047 $.fn.clearFields = $.fn.clearInputs = function(includeHidden) { 1048 var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list 1049 return this.each(function() { 1050 var t = this.type, tag = this.tagName.toLowerCase(); 1051 if (re.test(t) || tag == 'textarea') { 1052 this.value = ''; 1053 } 1054 else if (t == 'checkbox' || t == 'radio') { 1055 this.checked = false;
1056 } 1057 else if (tag == 'select') { 1058 this.selectedIndex = -1; 1059 } 1060 else if (includeHidden) { 1061 // includeHidden can be the value true, or it can be a selector string 1062 // indicating a special test; for example: 1063 // $('#myForm').clearForm('.special:hidden') 1064 // the above would clean hidden inputs that have the class of 'special' 1065 if ((includeHidden === true && /hidden/.test(t)) || 1066 (typeof includeHidden == 'string' && $(this).is(includeHidden))) 1067 this.value = ''; 1068 } 1069 }); 1070 }; 1071 1072 /** 1073 * Resets the form data. Causes all form elements to be reset to their original value. 1074 */ 1075 $.fn.resetForm = function() { 1076 return this.each(function() { 1077 // guard against an input with the name of 'reset' 1078 // note that IE reports the reset function as an 'object' 1079 if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) { 1080 this.reset(); 1081 } 1082 }); 1083 }; 1084 1085 /** 1086 * Enables or disables any matching elements. 1087 */ 1088 $.fn.enable = function(b) { 1089 if (b === undefined) { 1090 b = true; 1091 } 1092 return this.each(function() { 1093 this.disabled = !b; 1094 }); 1095 }; 1096 1097 /** 1098 * Checks/unchecks any matching checkboxes or radio buttons and 1099 * selects/deselects and matching option elements. 1100 */ 1101 $.fn.selected = function(select) { 1102 if (select === undefined) { 1103 select = true; 1104 } 1105 return this.each(function() { 1106 var t = this.type; 1107 if (t == 'checkbox' || t == 'radio') { 1108 this.checked = select; 1109 } 1110 else if (this.tagName.toLowerCase() == 'option') { 1111 var $sel = $(this).parent('select'); 1112 if (select && $sel[0] && $sel[0].type == 'select-one') { 1113 // deselect all other options 1114 $sel.find('option').selected(false); 1115 } 1116 this.selected = select; 1117 } 1118 }); 1119 }; 1120 1121// expose debug var 1122 $.fn.ajaxSubmit.debug = false; 1123 1124// helper fn for console logging 1125 function log() { 1126 if (!$.fn.ajaxSubmit.debug) 1127 return; 1128 var msg = '[jquery.form] ' + Array.prototype.join.call(arguments, ''); 1129 if (window.console && window.console.log) { 1130 window.console.log(msg); 1131 } 1132 else if (window.opera && window.opera.postError) { 1133 window.opera.postError(msg); 1134 } 1135 } 1136 1137})(jQuery); 1138 1139 1140 1141 1142/** 1143 * Default settings 1144 */ 1145var jqCronDefaultSettings = { 1146 texts: { 1147 fr: { 1148 empty: '-tout-', 1149 name_minute: 'minute', 1150 name_hour: 'heure', 1151 name_day: 'jour', 1152 name_week: 'semaine', 1153 name_month: 'mois', 1154 name_year: 'année', 1155 text_period: 'Chaque <b />', 1156 text_mins: 'à<b /> minutes', 1157 text_time: 'à<b />:<b />', 1158 text_dow: 'le <b />', 1159 text_month: 'de <b />', 1160 text_dom: 'le <b />', 1161 error1: 'La balise %s n\'est pas supportée !', 1162 error2: 'Mauvais nombre d\'éléments', 1163 error3: 'La propriété jquery_element doit être définie dans les paramètres jqCron', 1164 error4: 'Expression non reconnue', 1165 weekdays: ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche'], 1166 months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'] 1167 }, 1168 en: { 1169 empty: '-all-', 1170 name_minute: 'minute', 1171 name_hour: 'hour', 1172 name_day: 'day', 1173 name_week: 'week', 1174 name_month: 'month', 1175 name_year: 'year', 1176 text_period: 'Every <b />', 1177 text_mins: 'at <b /> minutes past the hour', 1178 text_time: 'at <b />:<b />', 1179 text_dow: 'on <b />', 1180 text_month: 'of <b />', 1181 text_dom: 'on the <b />', 1182 error1: 'The tag %s is not supported !', 1183 error2: 'Bad number of elements', 1184 error3: 'The jquery_element should be set into jqCron settings', 1185 error4: 'Unrecognized expression', 1186 weekdays: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'], 1187 months: ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'] 1188 } 1189 }, 1190 monthdays: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], 1191 hours: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], 1192 minutes: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59], 1193 lang: 'fr', 1194 enabled_minute: false, 1195 enabled_hour: true, 1196 enabled_day: true, 1197 enabled_week: true, 1198 enabled_month: true, 1199 enabled_year: true, 1200 multiple_dom: false,
1201 multiple_month: false, 1202 multiple_mins: false, 1203 multiple_dow: false, 1204 multiple_time_hours: false, 1205 multiple_time_minutes: false, 1206 default_period: 'day', 1207 default_value: '', 1208 no_reset_button: true, 1209 disabled: false, 1210 bind_to: null, 1211 bind_method: { 1212 set: function($element, value) { 1213 $element.is(':input') ? $element.val(value) : $element.data('jqCronValue', value); 1214 }, 1215 get: function($element) { 1216 return $element.is(':input') ? $element.val() : $element.data('jqCronValue'); 1217 } 1218 } 1219}; 1220 1221/** 1222 * Custom extend of json for jqCron settings. 1223 * We don't use jQuery.extend because simple extend does not fit our needs, and deep extend has a bad 1224 * feature for us : it replaces keys of "Arrays" instead of replacing the full array. 1225 */ 1226(function($) { 1227 var extend = function(dst, src) { 1228 for (var i in src) { 1229 if ($.isPlainObject(src[i])) { 1230 dst[i] = extend(dst[i] && $.isPlainObject(dst[i]) ? dst[i] : {}, src[i]); 1231 } 1232 else if ($.isArray(src[i])) { 1233 dst[i] = src[i].slice(0); 1234 } 1235 else if (src[i] !== undefined) { 1236 dst[i] = src[i]; 1237 } 1238 } 1239 return dst; 1240 }; 1241 this.jqCronMergeSettings = function(obj) { 1242 return extend(extend({}, jqCronDefaultSettings), obj || {}); 1243 }; 1244}).call(this, jQuery); 1245 1246/** 1247 * Shortcut to get the instance of jqCron instance from one jquery object 1248 */ 1249(function($) { 1250 $.fn.jqCronGetInstance = function() { 1251 return this.data('jqCron'); 1252 }; 1253}).call(this, jQuery); 1254 1255/** 1256 * Main plugin 1257 */ 1258(function($) { 1259 $.fn.jqCron = function(settings) { 1260 return this.each(function() { 1261 var cron, saved; 1262 var $this = $(this); 1263 settings = jqCronMergeSettings(settings); // clone settings 1264 if (!settings.jquery_container) { 1265 if ($this.is(':container')) { 1266 settings.jquery_element = $this.uniqueId('jqCron'); 1267 } 1268 else if ($this.is(':autoclose')) { 1269 // delete already generated dom if exists 1270 if ($this.next('.jqCron').length == 1) { 1271 $this.next('.jqCron').remove(); 1272 } 1273 // generate new 1274 settings.jquery_element = $('<span class="jqCron"></span>').uniqueId('jqCron').insertAfter($this); 1275 } 1276 else { 1277 console && console.error(settings.texts[settings.lang].error1.replace('%s', this.tagName)); 1278 return; 1279 } 1280 } 1281 1282 // autoset bind_to if it is an input 1283 if ($this.is(':input')) { 1284 settings.bind_to = settings.bind_to || $this; 1285 } 1286 1287 // init cron object 1288 if (settings.bind_to) { 1289 if (settings.bind_to.is(':input')) { 1290 // auto bind from input to object if an input, textarea ... 1291 settings.bind_to.blur(function() { 1292 var value = settings.bind_method.get(settings.bind_to); 1293 $this.jqCronGetInstance().setCron(value); 1294 }); 1295 } 1296 saved = settings.bind_method.get(settings.bind_to); 1297 cron = new jqCron(settings); 1298 cron.setCron(saved); 1299 } 1300 else { 1301 cron = new jqCron(settings); 1302 } 1303 $(this).data('jqCron', cron); 1304 }); 1305 }; 1306}).call(this, jQuery); 1307 1308/** 1309 * jqCron class 1310 */ 1311(function($) { 1312 var jqCronInstances = []; 1313 1314 function jqCron(settings) { 1315 var _initialized = false; 1316 var _self = this; 1317 var _$elt = this; 1318 var _$obj = $('<span class="jqCron-container"></span>'); 1319 var _$blocks = $('<span class="jqCron-blocks"></span>'); 1320 var _$blockPERIOD = $('<span class="jqCron-period"></span>'); 1321 var _$blockDOM = $('<span class="jqCron-dom"></span>'); 1322 var _$blockMONTH = $('<span class="jqCron-month"></span>'); 1323 var _$blockMINS = $('<span class="jqCron-mins"></span>'); 1324 var _$blockDOW = $('<span class="jqCron-dow"></span>'); 1325 var _$blockTIME = $('<span class="jqCron-time"></span>');
1326 var _$cross = $('<span class="jqCron-cross">✘</span>'); 1327 var _selectors = []; 1328 var _selectorPeriod, _selectorMins, _selectorTimeH, _selectorTimeM, _selectorDow, _selectorDom, _selectorMonth; 1329 1330 // instanciate a new selector 1331 function newSelector($block, multiple) { 1332 var selector = new jqCronSelector(_self, $block, multiple); 1333 selector.$.bind('selector:open', function() { 1334 // we close all opened selectors of all other jqCron 1335 for (var n = jqCronInstances.length; n--; ) { 1336 if (jqCronInstances[n] != _self) { 1337 jqCronInstances[n].closeSelectors(); 1338 } 1339 else { 1340 // we close all other opened selectors of this jqCron 1341 for (var o = _selectors.length; o--; ) { 1342 if (_selectors[o] != selector) { 1343 _selectors[o].close(); 1344 } 1345 } 1346 } 1347 } 1348 }); 1349 selector.$.bind('selector:change', function() { 1350 var boundChanged = false; 1351 // don't propagate if not initialized 1352 if (!_initialized) 1353 return; 1354 // bind data between two minute selectors (only if they have the same multiple settings) 1355 if (settings.multiple_mins == settings.multiple_time_minutes) { 1356 if (selector == _selectorMins) { 1357 boundChanged = _selectorTimeM.setValue(_selectorMins.getValue()); 1358 } 1359 else if (selector == _selectorTimeM) { 1360 boundChanged = _selectorMins.setValue(_selectorTimeM.getValue()); 1361 } 1362 } 1363 // we propagate the change event to the main object 1364 boundChanged || _$obj.trigger('cron:change', _self.getCron()); 1365 }); 1366 _selectors.push(selector); 1367 return selector; 1368 } 1369 1370 // disable the selector 1371 this.disable = function() { 1372 _$obj.addClass('disable'); 1373 settings.disable = true; 1374 _self.closeSelectors(); 1375 }; 1376 1377 // return if the selector is disabled 1378 this.isDisabled = function() { 1379 return settings.disable == true; 1380 }; 1381 1382 // enable the selector 1383 this.enable = function() { 1384 _$obj.removeClass('disable'); 1385 settings.disable = false; 1386 }; 1387 1388 // get cron value 1389 this.getCron = function() { 1390 var period = _selectorPeriod.getValue(); 1391 var items = ['*', '*', '*', '*', '*']; 1392 if (period == 'hour') { 1393 items[0] = _selectorMins.getCronValue(); 1394 } 1395 if (period == 'day' || period == 'week' || period == 'month' || period == 'year') { 1396 items[0] = _selectorTimeM.getCronValue(); 1397 items[1] = _selectorTimeH.getCronValue(); 1398 } 1399 if (period == 'month' || period == 'year') { 1400 items[2] = _selectorDom.getCronValue(); 1401 } 1402 if (period == 'year') { 1403 items[3] = _selectorMonth.getCronValue(); 1404 } 1405 if (period == 'week') { 1406 items[4] = _selectorDow.getCronValue(); 1407 } 1408 return items.join(' '); 1409 }; 1410 1411 // set cron (string like * * * * *) 1412 this.setCron = function(str) { 1413 if (!str) 1414 return; 1415 try { 1416 str = str.replace(/\s+/g, ' ').replace(/^ +/, '').replace(/ +$/, ''); // sanitize 1417 var mask = str.replace(/[^\* ]/g, '-').replace(/-+/g, '-').replace(/ +/g, ''); 1418 var items = str.split(' '); 1419 if (items.length != 5) 1420 _self.error(_self.getText('error2')); 1421 if (mask == '*****') { // 1 possibility 1422 _selectorPeriod.setValue('minute'); 1423 } 1424 else if (mask == '-****') { // 1 possibility 1425 _selectorPeriod.setValue('hour'); 1426 _selectorMins.setCronValue(items[0]); 1427 _selectorTimeM.setCronValue(items[0]); 1428 } 1429 else if (mask.substr(-3) == '***') { // 4 possibilities 1430 _selectorPeriod.setValue('day'); 1431 _selectorMins.setCronValue(items[0]); 1432 _selectorTimeM.setCronValue(items[0]); 1433 _selectorTimeH.setCronValue(items[1]); 1434 } 1435 else if (mask.substr(-3) == '-**') { // 4 possibilities 1436 _selectorPeriod.setValue('month'); 1437 _selectorMins.setCronValue(items[0]); 1438 _selectorTimeM.setCronValue(items[0]); 1439 _selectorTimeH.setCronValue(items[1]); 1440 _selectorDom.setCronValue(items[2]); 1441 } 1442 else if (mask.substr(-3) == '**-') { // 4 possibilities 1443 _selectorPeriod.setValue('week'); 1444 _selectorMins.setCronValue(items[0]); 1445 _selectorTimeM.setCronValue(items[0]); 1446 _selectorTimeH.setCronValue(items[1]); 1447 _selectorDow.setCronValue(items[4]); 1448 } 1449 else if (mask.substr(-2) == '-*') { // 8 possibilities 1450 _selectorPeriod.setValue('year'); 1451 _selectorMins.setCronValue(items[0]); 1452 _selectorTimeM.setCronValue(items[0]); 1453 _selectorTimeH.setCronValue(items[1]); 1454 _selectorDom.setCronValue(items[2]); 1455 _selectorMonth.setCronValue(items[3]); 1456 } 1457 else { 1458 _self.error(_self.getText('error4')); 1459 } 1460 _self.clearError(); 1461 } catch (e) { 1462 } 1463 }; 1464 1465 // close all child selectors 1466 this.closeSelectors = function() { 1467 for (var n = _selectors.length; n--; ) { 1468 _selectors[n].close(); 1469 } 1470 }; 1471 1472 // get the main element id 1473 this.getId = function() { 1474 return _$elt.attr('id'); 1475 }; 1476 1477 // get the translated text 1478 this.getText = function(key) { 1479 var text = settings.texts[settings.lang][key] || null; 1480 if (typeof(text) == "string" && text.match('<b')) { 1481 text = text.replace(/(<b *\/>)/gi, '</span><b /><span class="jqCron-text">'); 1482 text = '<span class="jqCron-text">
1482' + text + '</span>'; 1483 } 1484 return text; 1485 }; 1486 1487 // get settings 1488 this.getSettings = function() { 1489 return settings; 1490 }; 1491 1492 // display an error 1493 this.error = function(msg) { 1494 console && console.error('[jqCron Error] ' + msg); 1495 _$obj.addClass('jqCron-error').attr('title', msg); 1496 throw msg; 1497 }; 1498 1499 // clear error 1500 this.clearError = function() { 1501 _$obj.attr('title', '').removeClass('jqCron-error'); 1502 }; 1503 1504 // clear 1505 this.clear = function() { 1506 _selectorDom.setValue([]); 1507 _selectorDow.setValue([]); 1508 _selectorMins.setValue([]); 1509 _selectorMonth.setValue([]); 1510 _selectorTimeH.setValue([]); 1511 _selectorTimeM.setValue([]); 1512 _self.triggerChange(); 1513 }; 1514 1515 // init (called in constructor) 1516 this.init = function() { 1517 var n, i, list; 1518 if (_initialized) 1519 return; 1520 1521 settings = jqCronMergeSettings(settings); 1522 settings.jquery_element || _self.error(_self.getText('error3')); 1523 _$elt = settings.jquery_element; 1524 _$elt.append(_$obj); 1525 _$obj.data('id', settings.id); 1526 _$obj.data('jqCron', _self); 1527 _$obj.append(_$blocks); 1528 settings.no_reset_button || _$obj.append(_$cross); 1529 (!settings.disable) || _$obj.addClass('disable'); 1530 _$blocks.append(_$blockPERIOD); 1531 _$blocks.append(_$blockDOM); 1532 _$blocks.append(_$blockMONTH); 1533 _$blocks.append(_$blockMINS); 1534 _$blocks.append(_$blockDOW); 1535 _$blocks.append(_$blockTIME); 1536 1537 // various binding 1538 _$cross.click(function() { 1539 _self.isDisabled() || _self.clear(); 1540 }); 1541 1542 // binding from cron to target 1543 _$obj.bind('cron:change', function(evt, value) { 1544 if (!settings.bind_to) 1545 return; 1546 settings.bind_method.set && settings.bind_method.set(settings.bind_to, value); 1547 _self.clearError(); 1548 }); 1549 1550 // PERIOD
1551 _$blockPERIOD.append(_self.getText('text_period')); 1552 _selectorPeriod = newSelector(_$blockPERIOD, false); 1553 settings.enabled_minute && _selectorPeriod.add('minute', _self.getText('name_minute')); 1554 settings.enabled_hour && _selectorPeriod.add('hour', _self.getText('name_hour')); 1555 settings.enabled_day && _selectorPeriod.add('day', _self.getText('name_day')); 1556 settings.enabled_week && _selectorPeriod.add('week', _self.getText('name_week')); 1557 settings.enabled_month && _selectorPeriod.add('month', _self.getText('name_month')); 1558 settings.enabled_year && _selectorPeriod.add('year', _self.getText('name_year')); 1559 _selectorPeriod.$.bind('selector:change', function(e, value) { 1560 _$blockDOM.hide(); 1561 _$blockMONTH.hide(); 1562 _$blockMINS.hide(); 1563 _$blockDOW.hide(); 1564 _$blockTIME.hide(); 1565 if (value == 'hour') { 1566 _$blockMINS.show(); 1567 } 1568 else if (value == 'day') { 1569 _$blockTIME.show(); 1570 } 1571 else if (value == 'week') { 1572 _$blockDOW.show(); 1573 _$blockTIME.show(); 1574 } 1575 else if (value == 'month') { 1576 _$blockDOM.show(); 1577 _$blockTIME.show(); 1578 } 1579 else if (value == 'year') { 1580 _$blockDOM.show(); 1581 _$blockMONTH.show(); 1582 _$blockTIME.show(); 1583 } 1584 }); 1585 _selectorPeriod.setValue(settings.default_period); 1586 1587 // MINS (minutes) 1588 _$blockMINS.append(_self.getText('text_mins')); 1589 _selectorMins = newSelector(_$blockMINS, settings.multiple_mins); 1590 for (i = 0, list = settings.minutes; i < list.length; i++) { 1591 _selectorMins.add(list[i], list[i]); 1592 } 1593 1594 // TIME (hour:min) 1595 _$blockTIME.append(_self.getText('text_time')); 1596 _selectorTimeH = newSelector(_$blockTIME, settings.multiple_time_hours); 1597 for (i = 0, list = settings.hours; i < list.length; i++) { 1598 _selectorTimeH.add(list[i], list[i]); 1599 } 1600 _selectorTimeM = newSelector(_$blockTIME, settings.multiple_time_minutes); 1601 for (i = 0, list = settings.minutes; i < list.length; i++) { 1602 _selectorTimeM.add(list[i], list[i]); 1603 } 1604 1605 // DOW (day of week) 1606 _$blockDOW.append(_self.getText('text_dow')); 1607 _selectorDow = newSelector(_$blockDOW, settings.multiple_dow); 1608 for (i = 0, list = _self.getText('weekdays'); i < list.length; i++) { 1609 _selectorDow.add(i + 1, list[i]); 1610 } 1611 1612 // DOM (day of month)
1613 _$blockDOM.append(_self.getText('text_dom')); 1614 _selectorDom = newSelector(_$blockDOM, settings.multiple_dom); 1615 for (i = 0, list = settings.monthdays; i < list.length; i++) { 1616 _selectorDom.add(list[i], list[i]); 1617 } 1618 1619 // MONTH (day of week) 1620 _$blockMONTH.append(_self.getText('text_month')); 1621 _selectorMonth = newSelector(_$blockMONTH, settings.multiple_month); 1622 for (i = 0, list = _self.getText('months'); i < list.length; i++) { 1623 _selectorMonth.add(i + 1, list[i]); 1624 } 1625 1626 // close all selectors when we click in body 1627 $('body').click(function() { 1628 var i, n = _selectors.length; 1629 for (i = 0; i < n; i++) { 1630 _selectors[i].close(); 1631 } 1632 }); 1633 _initialized = true; 1634 1635 // default value 1636 if (settings.default_value) { 1637 _self.setCron(settings.default_value); 1638 } 1639 }; 1640 1641 // trigger a change event 1642 this.triggerChange = function() { 1643 _$obj.trigger('cron:change', _self.getCron()); 1644 }; 1645 1646 // store instance in array 1647 jqCronInstances.push(this); 1648 1649 // expose main jquery object 1650 this.$ = _$obj; 1651 1652 // init 1653 try { 1654 this.init(); 1655 _self.triggerChange(); 1656 } catch (e) { 1657 } 1658 } 1659 this.jqCron = jqCron; 1660}).call(this, jQuery); 1661 1662 1663/** 1664 * jqCronSelector class 1665 */ 1666(function($) { 1667 function jqCronSelector(_cron, _$block, _multiple) { 1668 var _self = this; 1669 var _$list = $('<ul class="jqCron-selector-list"></ul>'); 1670 var _$title = $('<span class="jqCron-selector-title"></span>'); 1671 var _$selector = $('<span class="jqCron-selector"></span>'); 1672 var _values = {}; 1673 var _value = []; 1674 var _hasNumericTexts = true; 1675 1676 // return an array without doublon 1677 function array_unique(l) { 1678 var i = 0, n = l.length, k = {}, a = []; 1679 while (i < n) { 1680 k[l[i]] || (k[l[i]] = 1 && a.push(l[i])); 1681 i++; 1682 } 1683 return a; 1684 } 1685 1686 // get the value (an array if multiple, else a single value) 1687 this.getValue = function() { 1688 return _multiple ? _value : _value[0]; 1689 }; 1690 1691 // get a correct string for cron 1692 this.getCronValue = function() { 1693 if (_value.length == 0) 1694 return '*'; 1695 var cron = [_value[0]], i, s = _value[0], c = _value[0], n = _value.length; 1696 for (i = 1; i < n; i++) { 1697 if (_value[i] == c + 1) { 1698 c = _value[i]; 1699 cron[cron.length - 1] = s + '-' + c; 1700 } 1701 else { 1702 s = c = _value[i]; 1703 cron.push(c); 1704 } 1705 } 1706 return cron.join(','); 1707 }; 1708 1709 // set the cron value 1710 this.setCronValue = function(str) { 1711 var values = [], m, i, n = str.length; 1712 if (str !== '*') { 1713 while (str != '') { 1714 // test "*/n" expression 1715 m = str.match(/^\*\/([0-9]+),?/); 1716 if (m && m.length == 2) { 1717 for (i = 0; i <= 59; i += (m[1] | 0)) { 1718 values.push(i); 1719 } 1720 str = str.replace(m[0], ''); 1721 } 1722 // test "a-b/n" expression 1723 m = str.match(/^([0-9]+)-([0-9]+)\/([0-9]+),?/); 1724 if (m && m.length == 4) { 1725 for (i = (m[1] | 0); i <= (m[2] | 0); i += (m[3] | 0)) { 1726 values.push(i); 1727 } 1728 str = str.replace(m[0], ''); 1729 } 1730 // test "a-b" expression 1731 m = str.match(/^([0-9]+)-([0-9]+),?/); 1732 if (m && m.length == 3) { 1733 for (i = (m[1] | 0); i <= (m[2] | 0); i++) { 1734 values.push(i); 1735 } 1736 str = str.replace(m[0], ''); 1737 } 1738 // test "c" expression 1739 m = str.match(/^([0-9]+),?/); 1740 if (m && m.length == 2) { 1741 values.push(m[1] | 0); 1742 str = str.replace(m[0], ''); 1743 } 1744 if (n == str.length) { 1745 // something goes wrong in the expression 1746 return; 1747 } 1748 n = str.length; 1749 } 1750 } 1751 _self.setValue(values); 1752 }; 1753 1754 // close the selector 1755 this.close = function() { 1756 _$selector.trigger('selector:close'); 1757 }; 1758 1759 // open the selector 1760 this.open = function() { 1761 _$selector.trigger('selector:open'); 1762 }; 1763
1764 // whether the selector is open 1765 this.isOpened = function() { 1766 return _$list.is(':visible'); 1767 }; 1768 1769 // add a selected value to the list 1770 this.addValue = function(key) { 1771 var values = _multiple ? _value.slice(0) : []; // clone array 1772 values.push(key); 1773 _self.setValue(values); 1774 }; 1775 1776 // remove a selected value from the list 1777 this.removeValue = function(key) { 1778 if (_multiple) { 1779 var i, newValue = []; 1780 for (i = 0; i < _value.length; i++) { 1781 if (key != [_value[i]]) { 1782 newValue.push(_value[i]); 1783 } 1784 } 1785 _self.setValue(newValue); 1786 } 1787 else { 1788 _self.clear(); 1789 } 1790 }; 1791 1792 // set the selected value(s) of the list 1793 this.setValue = function(keys) { 1794 var i, newKeys = [], saved = _value.join(' '); 1795 if (!$.isArray(keys)) 1796 keys = [keys]; 1797 _$list.find('li').removeClass('selected'); 1798 keys = array_unique(keys); 1799 keys.sort(function(a, b) { 1800 var ta = typeof(a); 1801 var tb = typeof(b); 1802 if (ta == tb && ta == "number") 1803 return a - b; 1804 else 1805 return String(a) == String(b) ? 0 : (String(a) < String(b) ? -1 : 1); 1806 }); 1807 if (_multiple) { 1808 for (i = 0; i < keys.length; i++) { 1809 if (keys[i] in _values) { 1810 _values[keys[i]].addClass('selected'); 1811 newKeys.push(keys[i]); 1812 } 1813 } 1814 } 1815 else { 1816 if (keys[0] in _values) { 1817 _values[keys[0]].addClass('selected'); 1818 newKeys.push(keys[0]); 1819 } 1820 } 1821 // remove unallowed values 1822 _value = newKeys; 1823 if (saved != _value.join(' ')) { 1824 _$selector.trigger('selector:change', _multiple ? keys : keys[0]); 1825 return true; 1826 } 1827 return false; 1828 }; 1829 1830 // get the title text 1831 this.getTitleText = function() { 1832 var getValueText = function(key) { 1833 return (key in _values) ? _values[key].text() : key; 1834 }; 1835 1836 if (_value.length == 0) 1837 return _cron.getText('empty'); 1838 var cron = [getValueText(_value[0])], i, s = _value[0], c = _value[0], n = _value.length; 1839 for (i = 1; i < n; i++) { 1840 if (_value[i] == c + 1) { 1841 c = _value[i]; 1842 cron[cron.length - 1] = getValueText(s) + '-' + getValueText(c); 1843 } 1844 else { 1845 s = c = _value[i]; 1846 cron.push(getValueText(c)); 1847 } 1848 } 1849 return cron.join(','); 1850 }; 1851 1852 // clear list 1853 this.clear = function() { 1854 _values = {}; 1855 _self.setValue([]); 1856 _$list.empty(); 1857 }; 1858 1859 // add a (key, value) pair 1860 this.add = function(key, value) { 1861 var $item = $('<li>' + value + '</li>'); 1862 if (!(value + '').match(/^[0-9]+$/)) 1863 _hasNumericTexts = false; 1864 _$list.append($item); 1865 _values[key] = $item; 1866 $item.click(function() { 1867 if (_multiple && $(this).hasClass('selected')) { 1868 _self.removeValue(key); 1869 } 1870 else { 1871 _self.addValue(key); 1872 if (!_multiple) 1873 _self.close(); 1874 } 1875 }); 1876 }; 1877 1878 // expose main jquery object 1879 this.$ = _$selector; 1880 1881 // constructor 1882 _$block.find('b:eq(0)').after(_$selector).remove(); 1883 _$selector 1884 .addClass('jqCron-selector-' + _$block.find('.jqCron-selector').length) 1885 .append(_$title) 1886 .append(_$list) 1887 .bind('selector:open', function() { 1888 if (_hasNumericTexts) { 1889 var nbcols = 1, n = _$list.find('li').length; 1890 if (n > 5 && n <= 16) 1891 nbcols = 2; 1892 else if (n > 16 && n <= 23) 1893 nbcols = 3; 1894 else if (n > 23 && n <= 40) 1895 nbcols = 4; 1896 else if (n > 40) 1897 nbcols = 5; 1898 _$list.addClass('cols' + nbcols); 1899 } 1900 _$list.show(); 1901 }) 1902 .bind('selector:close', function() { 1903 _$list.hide(); 1904 }) 1905 .bind('selector:change', function() { 1906 _$title.html(_self.getTitleText()); 1907 }) 1908 .click(function(e) { 1909 e.stopPropagation(); 1910 }) 1911 .trigger('selector:change') 1912 ; 1913 $.fn.disableSelection && _$selector.disableSelection();
1913 // only work with jQuery UI 1914 _$title.click(function(e) { 1915 (_self.isOpened() || _cron.isDisabled()) ? _self.close() : _self.open(); 1916 }); 1917 _self.close(); 1918 _self.clear(); 1919 } 1920 this.jqCronSelector = jqCronSelector; 1921}).call(this, jQuery); 1922 1923/** 1924 * Generate unique id for each element. 1925 * Skip elements which have already an id. 1926 */ 1927(function($) { 1928 var jqUID = 0; 1929 var jqGetUID = function(prefix) { 1930 var id; 1931 while (1) { 1932 jqUID++; 1933 id = ((prefix || 'JQUID') + '') + jqUID; 1934 if (!document.getElementById(id)) 1935 return id; 1936 } 1937 }; 1938 $.fn.uniqueId = function(prefix) { 1939 return this.each(function() { 1940 if ($(this).attr('id')) 1941 return; 1942 var id = jqGetUID(prefix); 1943 $(this).attr('id', id); 1944 }); 1945 }; 1946}).call(this, jQuery); 1947 1948 1949/** 1950 * Extends jQuery selectors with new block selector 1951 */ 1952(function($) { 1953 $.extend($.expr[':'], { 1954 container: function(a) { 1955 return (a.tagName + '').toLowerCase() in { 1956 a: 1, 1957 abbr: 1, 1958 acronym: 1, 1959 address: 1, 1960 b: 1, 1961 big: 1, 1962 blockquote: 1, 1963 button: 1, 1964 cite: 1, 1965 code: 1, 1966 dd: 1, 1967 del: 1, 1968 dfn: 1, 1969 div: 1, 1970 dt: 1, 1971 em: 1, 1972 fieldset: 1, 1973 form: 1, 1974 h1: 1, 1975 h2: 1, 1976 h3: 1, 1977 h4: 1, 1978 h5: 1, 1979 h6: 1, 1980 i: 1, 1981 ins: 1, 1982 kbd: 1, 1983 label: 1, 1984 li: 1, 1985 p: 1, 1986 pre: 1, 1987 q: 1, 1988 samp: 1, 1989 small: 1, 1990 span: 1, 1991 strong: 1, 1992 sub: 1, 1993 sup: 1, 1994 td: 1, 1995 tt: 1 1996 }; 1997 }, 1998 autoclose: function(a) { 1999 return (a.tagName + '').toLowerCase() in { 2000 area: 1, 2001 base: 1, 2002 basefont: 1, 2003 br: 1, 2004 col: 1, 2005 frame: 1, 2006 hr: 1, 2007 img: 1, 2008 input: 1, 2009 link: 1, 2010 meta: 1, 2011 param: 1 2012 }; 2013 } 2014 }); 2015}).call(this, jQuery); 2016 2017
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.