https://www.nosh.ca/fend/js/functions_js.asp?article_id=4&cache=aa46061d-91d6-4242-b5e6-3ef3549b14ab
1 2(function(n,t){function s(){var n=r.elements;return"string"==typeof n?n.split(" "):n}function u(n){var t=a[n[l]];return t||(t={},o++,n[l]=o,a[o]=t),t}function h(n,r,f){return(r||(r=t),i)?r.createElement(n):(f||(f=u(r)),r=f.cache[n]?f.cache[n].cloneNode():p.test(n)?(f.cache[n]=f.createElem(n)).cloneNode():f.createElem(n),r.canHaveChildren&&!y.test(n)?f.frag.appendChild(r):r)}function v(n,t){t.cache||(t.cache={},t.createElem=n.createElement,t.createFrag=n.createDocumentFragment,t.frag=t.createFrag());n.createElement=function(i){return r.shivMethods?h(i,n,t):t.createElem(i)};n.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+s().join().replace(/[\w\-]+/g,function(n){return t.createElem(n),t.frag.createElement(n),'c("'+n+'")'})+");return n}")(r,t.frag)}function c(n){var s,o,f;return n||(n=t),s=u(n),!r.shivCSS||e||s.hasCSS||(f=n,o=f.createElement("p"),f=f.getElementsByTagName("head")[0]||f.documentElement,o.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}<\/style>",o=f.insertBefore(o.lastChild,f.firstChild),s.hasCSS=!!o),i||v(n,s),n}var f=n.html5||{},y=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,e,l="_html5shiv",o=0,a={},i,r;(function(){var n,u,r;try{n=t.createElement("a");n.innerHTML="<xyz><\/xyz>";e="hidden"in n;(u=1===n.childNodes.length)||(t.createElement("a"),r=t.createDocumentFragment(),u="undefined"==typeof r.cloneNode||"undefined"==typeof r.createDocumentFragment||"undefined"==typeof r.createElement);i=u}catch(f){i=e=!0}})();r={elements:f.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==f.shivCSS,supportsUnknownElements:i,shivMethods:!1!==f.shivMethods,type:"default",shivDocument:c,createElement:h,createDocumentFragment:function(n,r){if(n||(n=t),i)return n.createDocumentFragment();for(var r=r||u(n),e=r.frag.cloneNode(),f=0,o=s(),h=o.length;f<h;f++)e.createElement(o[f]);return e}};n.html5=r;c(t)})(this,document);/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ 3/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ 4window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.style.background="none";d.appendChild(g);return function(h){g.innerHTML='­<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document); 5 6/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ 7(function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B<y;B++){A=D[B],z=A.href,C=A.media,x=A.rel&&A.rel.toLowerCase()==="stylesheet";if(!!z&&x&&!o[z]){if(A.styleSheet&&A.styleSheet.rawCssText){m(A.styleSheet.rawCssText,z,C);o[z]=true}else{if((!/^([a-zA-Z:]*\/\/)/.test(z)&&!g)||z.replace(RegExp.$1,"").split("/")[0]===e.location.host){d.push({href:z,media:C})}}}}u()},u=function(){if(d.length){var x=d.shift();n(x.href,function(y){m(y,x.href,x.media);o[x.href]=true;u()})}},m=function(I,x,z){var G=I.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),J=G&&G.length||0,x=x.substring(0,x.lastIndexOf("/")),y=function(K){return K.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+x+"$2$3")},A=!J&&z,D=0,C,E,F,B,H;if(x.length){x+="/"}if(A){J=1}for(;D<J;D++){C=0;if(A){E=z;k.push(y(I))}else{E=G[D].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;k.push(RegExp.$2&&y(RegExp.$2))}B=E.split(",");H=B.length;for(;C<H;C++){F=B[C];i.push({media:F.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:k.length-1,hasquery:F.indexOf("(")>-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);
7s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l<h){clearTimeout(r);r=setTimeout(j,h);return}else{l=z}for(var E in i){var K=i[E],C=K.minw,J=K.maxw,A=C===null,L=J===null,y="em";if(!!C){C=parseFloat(C)*(C.indexOf(y)>-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this);/*SWFObject v2.2 <http://code.google.com/p/swfobject/> 8is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 9*/ 10var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}
10else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();/*! 11 * jQuery JavaScript Library v2.2.4 12 * http://jquery.com/ 13 * 14 * Includes Sizzle.js 15 * http://sizzlejs.com/ 16 * 17 * Copyright jQuery Foundation and other contributors 18 * Released under the MIT license 19 * http://jquery.org/license 20 * 21 * Date: 2016-05-20T17:23Z 22 */ 23 24(function (global, factory) { 25 26if (typeof module === "object" && typeof module.exports === "object") { 27// For CommonJS and CommonJS-like environments where a proper `window` 28// is present, execute the factory and get jQuery. 29// For environments that do not have a `window` with a `document` 30// (such as Node.js), expose a factory as module.exports. 31// This accentuates the need for the creation of a real `window`.
vendor: 8,086 bytes, lines 32-386
32// e.g. var jQuery = require("jquery")(window); 33// See ticket #14549 for more info. 34module.exports = global.document ? 35factory(global, true) : 36function (w) { 37if (!w.document) { 38throw new Error("jQuery requires a window with a document"); 39} 40return factory(w); 41}; 42} else { 43factory(global); 44} 45 46// Pass this if window is not defined yet 47}(typeof window !== "undefined" ? window : this, function (window, noGlobal) { 48 49// Support: Firefox 18+ 50// Can't be in strict mode, several libs including ASP.NET trace 51// the stack via arguments.caller.callee and Firefox dies if 52// you try to trace through "use strict" call chains. (#13335) 53//"use strict"; 54var arr = []; 55 56var document = window.document; 57 58var slice = arr.slice; 59 60var concat = arr.concat; 61 62var push = arr.push; 63 64var indexOf = arr.indexOf; 65 66var class2type = {}; 67 68var toString = class2type.toString; 69 70var hasOwn = class2type.hasOwnProperty; 71 72var support = {}; 73 74 75 76var 77version = "2.2.4", 78 79// Define a local copy of jQuery 80jQuery = function (selector, context) { 81 82// The jQuery object is actually just the init constructor 'enhanced' 83// Need init if jQuery is called (just allow error to be thrown if not included) 84return new jQuery.fn.init(selector, context); 85}, 86 87// Support: Android<4.1 88// Make sure we trim BOM and NBSP 89rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, 90 91// Matches dashed string for camelizing 92rmsPrefix = /^-ms-/, 93rdashAlpha = /-([\da-z])/gi, 94 95// Used by jQuery.camelCase as callback to replace() 96fcamelCase = function (all, letter) { 97return letter.toUpperCase(); 98}; 99 100jQuery.fn = jQuery.prototype = { 101 102// The current version of jQuery being used 103jquery: version, 104 105constructor: jQuery, 106 107// Start with an empty selector 108selector: "", 109 110// The default length of a jQuery object is 0 111length: 0, 112 113toArray: function () { 114return slice.call(this); 115}, 116 117// Get the Nth element in the matched element set OR 118// Get the whole matched element set as a clean array 119get: function (num) { 120return num != null ? 121 122// Return just the one element from the set 123(num < 0 ? this[num + this.length] : this[num]) : 124 125// Return all the elements in a clean array 126slice.call(this); 127}, 128 129// Take an array of elements and push it onto the stack 130// (returning the new matched element set) 131pushStack: function (elems) { 132 133// Build a new jQuery matched element set 134var ret = jQuery.merge(this.constructor(), elems); 135 136// Add the old object onto the stack (as a reference) 137ret.prevObject = this; 138ret.context = this.context; 139 140// Return the newly-formed element set 141return ret; 142}, 143 144// Execute a callback for every element in the matched set. 145each: function (callback) { 146return jQuery.each(this, callback); 147}, 148 149map: function (callback) { 150return this.pushStack(jQuery.map(this, function (elem, i) { 151return callback.call(elem, i, elem); 152})); 153}, 154 155slice: function () { 156return this.pushStack(slice.apply(this, arguments)); 157}, 158 159first: function () { 160return this.eq(0); 161}, 162 163last: function () { 164return this.eq(-1); 165}, 166 167eq: function (i) { 168var len = this.length, 169j = +i + (i < 0 ? len : 0); 170return this.pushStack(j >= 0 && j < len ? [this[j]] : []); 171}, 172 173end: function () { 174return this.prevObject || this.constructor(); 175}, 176 177// For internal use only. 178// Behaves like an Array's method, not like a jQuery method. 179push: push, 180sort: arr.sort, 181splice: arr.splice 182}; 183 184jQuery.extend = jQuery.fn.extend = function () { 185var options, name, src, copy, copyIsArray, clone, 186target = arguments[0] || {}, 187i = 1, 188length = arguments.length, 189deep = false; 190 191// Handle a deep copy situation 192if (typeof target === "boolean") { 193deep = target; 194 195// Skip the boolean and the target 196target = arguments[i] || {}; 197i++; 198} 199 200// Handle case when target is a string or something (possible in deep copy) 201if (typeof target !== "object" && !jQuery.isFunction(target)) { 202target = {}; 203} 204 205// Extend jQuery itself if only one argument is passed 206if (i === length) { 207target = this; 208i--; 209} 210 211for (; i < length; i++) { 212 213// Only deal with non-null/undefined values 214if ((options = arguments[i]) != null) { 215 216// Extend the base object 217for (name in options) { 218src = target[name]; 219copy = options[name]; 220 221// Prevent never-ending loop 222if (target === copy) { 223continue; 224} 225 226// Recurse if we're merging plain objects or arrays 227if (deep && copy && (jQuery.isPlainObject(copy) || 228(copyIsArray = jQuery.isArray(copy)))) { 229 230if (copyIsArray) { 231copyIsArray = false; 232clone = src && jQuery.isArray(src) ? src : []; 233 234} else { 235clone = src && jQuery.isPlainObject(src) ? src : {}; 236} 237 238// Never move original objects, clone them 239target[name] = jQuery.extend(deep, clone, copy); 240 241// Don't bring in undefined values 242} else if (copy !== undefined) { 243target[name] = copy; 244} 245} 246} 247} 248 249// Return the modified object 250return target; 251}; 252 253jQuery.extend({ 254 255// Unique for each copy of jQuery on the page 256expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 257 258// Assume jQuery is ready without the ready module 259isReady: true, 260 261error: function (msg) { 262throw new Error(msg); 263}, 264 265noop: function () { }, 266 267isFunction: function (obj) { 268return jQuery.type(obj) === "function"; 269}, 270 271isArray: Array.isArray, 272 273isWindow: function (obj) { 274return obj != null && obj === obj.window; 275}, 276 277isNumeric: function (obj) { 278 279// parseFloat NaNs numeric-cast false positives (null|true|false|"") 280// ...but misinterprets leading-number strings, particularly hex literals ("0x...") 281// subtraction forces infinities to NaN 282// adding 1 corrects loss of precision from parseFloat (#15100) 283var realStringObj = obj && obj.toString(); 284return !jQuery.isArray(obj) && (realStringObj - parseFloat(realStringObj) + 1) >= 0; 285}, 286 287isPlainObject: function (obj) { 288var key; 289 290// Not plain objects: 291// - Any object or value whose internal [[Class]] property is not "[object Object]" 292// - DOM nodes 293// - window 294if (jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) { 295return false; 296} 297 298// Not own constructor property must be Object 299if (obj.constructor && 300!hasOwn.call(obj, "constructor") && 301!hasOwn.call(obj.constructor.prototype || {}, "isPrototypeOf")) { 302return false; 303} 304 305// Own properties are enumerated firstly, so to speed up, 306// if last one is own, then all properties are own 307for (key in obj) { } 308 309return key === undefined || hasOwn.call(obj, key); 310}, 311 312isEmptyObject: function (obj) { 313var name; 314for (name in obj) { 315return false; 316} 317return true; 318}, 319 320type: function (obj) { 321if (obj == null) { 322return obj + ""; 323} 324 325// Support: Android<4.0, iOS<6 (functionish RegExp) 326return typeof obj === "object" || typeof obj === "function" ? 327class2type[toString.call(obj)] || "object" : 328typeof obj; 329}, 330 331// Evaluates a script in a global context 332globalEval: function (code) { 333var script, 334indirect = eval; 335 336code = jQuery.trim(code); 337 338if (code) { 339 340// If the code includes a valid, prologue position 341// strict mode pragma, execute code by injecting a 342// script tag into the document. 343if (code.indexOf("use strict") === 1) { 344script = document.createElement("script"); 345script.text = code; 346document.head.appendChild(script).parentNode.removeChild(script); 347} else { 348 349// Otherwise, avoid the DOM node creation, insertion 350// and removal by using an indirect global eval 351 352indirect(code); 353} 354} 355}, 356 357// Convert dashed to camelCase; used by the css and data modules 358// Support: IE9-11+ 359// Microsoft forgot to hump their vendor prefix (#9572) 360camelCase: function (string) { 361return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 362}, 363 364nodeName: function (elem, name) { 365return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 366}, 367 368each: function (obj, callback) { 369var length, i = 0; 370 371if (isArrayLike(obj)) { 372length = obj.length; 373for (; i < length; i++) { 374if (callback.call(obj[i], i, obj[i]) === false) { 375break; 376} 377} 378} else { 379for (i in obj) { 380if (callback.call(obj[i], i, obj[i]) === false) { 381break; 382} 383} 384} 385 386return obj;
vendor: 4,478 bytes, lines 387-598
387}, 388 389// Support: Android<4.1 390trim: function (text) { 391return text == null ? 392"" : 393(text + "").replace(rtrim, ""); 394}, 395 396// results is for internal usage only 397makeArray: function (arr, results) { 398var ret = results || []; 399 400if (arr != null) { 401if (isArrayLike(Object(arr))) { 402jQuery.merge(ret, 403typeof arr === "string" ? 404[arr] : arr 405); 406} else { 407push.call(ret, arr); 408} 409} 410 411return ret; 412}, 413 414inArray: function (elem, arr, i) { 415return arr == null ? -1 : indexOf.call(arr, elem, i); 416}, 417 418merge: function (first, second) { 419var len = +second.length, 420j = 0, 421i = first.length; 422 423for (; j < len; j++) { 424first[i++] = second[j]; 425} 426 427first.length = i; 428 429return first; 430}, 431 432grep: function (elems, callback, invert) { 433var callbackInverse, 434matches = [], 435i = 0, 436length = elems.length, 437callbackExpect = !invert; 438 439// Go through the array, only saving the items 440// that pass the validator function 441for (; i < length; i++) { 442callbackInverse = !callback(elems[i], i); 443if (callbackInverse !== callbackExpect) { 444matches.push(elems[i]); 445} 446} 447 448return matches; 449}, 450 451// arg is for internal usage only 452map: function (elems, callback, arg) { 453var length, value, 454i = 0, 455ret = []; 456 457// Go through the array, translating each of the items to their new values 458if (isArrayLike(elems)) { 459length = elems.length; 460for (; i < length; i++) { 461value = callback(elems[i], i, arg); 462 463if (value != null) { 464ret.push(value); 465} 466} 467 468// Go through every key on the object, 469} else { 470for (i in elems) { 471value = callback(elems[i], i, arg); 472 473if (value != null) { 474ret.push(value); 475} 476} 477} 478 479// Flatten any nested arrays 480return concat.apply([], ret); 481}, 482 483// A global GUID counter for objects 484guid: 1, 485 486// Bind a function to a context, optionally partially applying any 487// arguments. 488proxy: function (fn, context) { 489var tmp, args, proxy; 490 491if (typeof context === "string") { 492tmp = fn[context]; 493context = fn; 494fn = tmp; 495} 496 497// Quick check to determine if target is callable, in the spec 498// this throws a TypeError, but we will just return undefined. 499if (!jQuery.isFunction(fn)) { 500return undefined; 501} 502 503// Simulated bind 504args = slice.call(arguments, 2); 505proxy = function () { 506return fn.apply(context || this, args.concat(slice.call(arguments))); 507}; 508 509// Set the guid of unique handler to the same of original handler, so it can be removed 510proxy.guid = fn.guid = fn.guid || jQuery.guid++; 511 512return proxy; 513}, 514 515now: Date.now, 516 517// jQuery.support is not used in Core but other projects attach their 518// properties to it so it needs to exist. 519support: support 520}); 521 522// JSHint would error on this code due to the Symbol not being defined in ES5. 523// Defining this global in .jshintrc would create a danger of using the global 524// unguarded in another place, it seems safer to just disable JSHint for these 525// three lines. 526/* jshint ignore: start */ 527if (typeof Symbol === "function") { 528jQuery.fn[Symbol.iterator] = arr[Symbol.iterator]; 529} 530/* jshint ignore: end */ 531 532// Populate the class2type map 533jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), 534function (i, name) { 535class2type["[object " + name + "]"] = name.toLowerCase(); 536}); 537 538function isArrayLike(obj) { 539 540// Support: iOS 8.2 (not reproducible in simulator) 541// `in` check used to prevent JIT error (gh-2145) 542// hasOwn isn't used here due to false negatives 543// regarding Nodelist length in IE 544var length = !!obj && "length" in obj && obj.length, 545type = jQuery.type(obj); 546 547if (type === "function" || jQuery.isWindow(obj)) { 548return false; 549} 550 551return type === "array" || length === 0 || 552typeof length === "number" && length > 0 && (length - 1) in obj; 553} 554var Sizzle = 555/*! 556 * Sizzle CSS Selector Engine v2.2.1 557 * http://sizzlejs.com/ 558 * 559 * Copyright jQuery Foundation and other contributors 560 * Released under the MIT license 561 * http://jquery.org/license 562 * 563 * Date: 2015-10-17 564 */ 565(function (window) { 566 567var i, 568support, 569Expr, 570getText, 571isXML, 572tokenize, 573compile, 574select, 575outermostContext, 576sortInput, 577hasDuplicate, 578 579// Local document vars 580setDocument, 581document, 582docElem, 583documentIsHTML, 584rbuggyQSA, 585rbuggyMatches, 586matches, 587contains, 588 589// Instance-specific data 590expando = "sizzle" + 1 * new Date(), 591preferredDoc = window.document, 592dirruns = 0, 593done = 0, 594classCache = createCache(), 595tokenCache = createCache(), 596compilerCache = createCache(), 597sortOrder = function (a, b) { 598if (a === b) {
vendor: 17,080 bytes, lines 599-1205
599hasDuplicate = true; 600} 601return 0; 602}, 603 604// General-purpose constants 605MAX_NEGATIVE = 1 << 31, 606 607// Instance methods 608hasOwn = ({}).hasOwnProperty, 609arr = [], 610pop = arr.pop, 611push_native = arr.push, 612push = arr.push, 613slice = arr.slice, 614// Use a stripped-down indexOf as it's faster than native 615// http://jsperf.com/thor-indexof-vs-for/5 616indexOf = function (list, elem) { 617var i = 0, 618len = list.length; 619for (; i < len; i++) { 620if (list[i] === elem) { 621return i; 622} 623} 624return -1; 625}, 626 627booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 628 629// Regular expressions 630 631// http://www.w3.org/TR/css3-selectors/#whitespace 632whitespace = "[\\x20\\t\\r\\n\\f]", 633 634// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier 635identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", 636 637// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 638attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 639// Operator (capture 2) 640"*([*^$|!~]?=)" + whitespace + 641// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 642"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + 643"*\\]", 644 645pseudos = ":(" + identifier + ")(?:\\((" + 646// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 647// 1. quoted (capture 3; capture 4 or capture 5) 648"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 649// 2. simple (capture 6) 650"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 651// 3. anything else (capture 2) 652".*" + 653")\\)|)", 654 655// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 656rwhitespace = new RegExp(whitespace + "+", "g"), 657rtrim = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), 658 659rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), 660rcombinators = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), 661 662rattributeQuotes = new RegExp("=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g"), 663 664rpseudo = new RegExp(pseudos), 665ridentifier = new RegExp("^" + identifier + "$"), 666 667matchExpr = { 668"ID": new RegExp("^#(" + identifier + ")"), 669"CLASS": new RegExp("^\\.(" + identifier + ")"), 670"TAG": new RegExp("^(" + identifier + "|[*])"), 671"ATTR": new RegExp("^" + attributes), 672"PSEUDO": new RegExp("^" + pseudos), 673"CHILD": new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + 674"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + 675"*(\\d+)|))" + whitespace + "*\\)|)", "i"), 676"bool": new RegExp("^(?:" + booleans + ")$", "i"), 677// For use in libraries implementing .is() 678// We use this for POS matching in `select` 679"needsContext": new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + 680whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 681}, 682 683rinputs = /^(?:input|select|textarea|button)$/i, 684rheader = /^h\d$/i, 685 686rnative = /^[^{]+\{\s*\[native \w/, 687 688// Easily-parseable/retrievable ID or TAG or CLASS selectors 689rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 690 691rsibling = /[+~]/, 692rescape = /'|\\/g, 693 694// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 695runescape = new RegExp("\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig"), 696funescape = function (_, escaped, escapedWhitespace) { 697var high = "0x" + escaped - 0x10000; 698// NaN means non-codepoint 699// Support: Firefox<24 700// Workaround erroneous numeric interpretation of +"0x" 701return high !== high || escapedWhitespace ? 702escaped : 703high < 0 ? 704// BMP codepoint 705String.fromCharCode(high + 0x10000) : 706// Supplemental Plane codepoint (surrogate pair) 707String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00); 708}, 709 710// Used for iframes 711// See setDocument() 712// Removing the function wrapper causes a "Permission Denied" 713// error in IE 714unloadHandler = function () { 715setDocument(); 716}; 717 718// Optimize for push.apply( _, NodeList ) 719try { 720push.apply( 721(arr = slice.call(preferredDoc.childNodes)), 722preferredDoc.childNodes 723); 724// Support: Android<4.0 725// Detect silently failing push.apply 726arr[preferredDoc.childNodes.length].nodeType; 727} catch (e) { 728push = { 729apply: arr.length ? 730 731// Leverage slice if possible 732function (target, els) { 733push_native.apply(target, slice.call(els)); 734} : 735 736// Support: IE<9 737// Otherwise append directly 738function (target, els) { 739var j = target.length, 740i = 0; 741// Can't trust NodeList.length 742while ((target[j++] = els[i++])) { } 743target.length = j - 1; 744} 745}; 746} 747 748function Sizzle(selector, context, results, seed) { 749var m, i, elem, nid, nidselect, match, groups, newSelector, 750newContext = context && context.ownerDocument, 751 752// nodeType defaults to 9, since context defaults to document 753nodeType = context ? context.nodeType : 9; 754 755results = results || []; 756 757// Return early from calls with invalid selector or context 758if (typeof selector !== "string" || !selector || 759nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 760 761return results; 762} 763 764// Try to shortcut find operations (as opposed to filters) in HTML documents 765if (!seed) { 766 767if ((context ? context.ownerDocument || context : preferredDoc) !== document) { 768setDocument(context); 769} 770context = context || document; 771 772if (documentIsHTML) { 773 774// If the selector is sufficiently simple, try using a "get*By*" DOM method 775// (excepting DocumentFragment context, where the methods don't exist) 776if (nodeType !== 11 && (match = rquickExpr.exec(selector))) { 777 778// ID selector 779if ((m = match[1])) { 780 781// Document context 782if (nodeType === 9) { 783if ((elem = context.getElementById(m))) { 784 785// Support: IE, Opera, Webkit 786// TODO: identify versions 787// getElementById can match elements by name instead of ID 788if (elem.id === m) { 789results.push(elem); 790return results; 791} 792} else { 793return results; 794} 795 796// Element context 797} else { 798 799// Support: IE, Opera, Webkit 800// TODO: identify versions 801// getElementById can match elements by name instead of ID 802if (newContext && (elem = newContext.getElementById(m)) && 803contains(context, elem) && 804elem.id === m) { 805 806results.push(elem); 807return results; 808} 809} 810 811// Type selector 812} else if (match[2]) { 813push.apply(results, context.getElementsByTagName(selector)); 814return results; 815 816// Class selector 817} else if ((m = match[3]) && support.getElementsByClassName && 818context.getElementsByClassName) { 819 820push.apply(results, context.getElementsByClassName(m)); 821return results; 822} 823} 824 825// Take advantage of querySelectorAll 826if (support.qsa && 827!compilerCache[selector + " "] && 828(!rbuggyQSA || !rbuggyQSA.test(selector))) { 829 830if (nodeType !== 1) { 831newContext = context; 832newSelector = selector; 833 834// qSA looks outside Element context, which is not what we want 835// Thanks to Andrew Dupont for this workaround technique 836// Support: IE <=8 837// Exclude object elements 838} else if (context.nodeName.toLowerCase() !== "object") { 839 840// Capture the context ID, setting it first if necessary 841if ((nid = context.getAttribute("id"))) { 842nid = nid.replace(rescape, "\\$&"); 843} else { 844context.setAttribute("id", (nid = expando)); 845} 846 847// Prefix every selector in the list 848groups = tokenize(selector); 849i = groups.length; 850nidselect = ridentifier.test(nid) ? "#" + nid : "[id='" + nid + "']"; 851while (i--) { 852groups[i] = nidselect + " " + toSelector(groups[i]); 853} 854newSelector = groups.join(","); 855 856// Expand context for sibling selectors 857newContext = rsibling.test(selector) && testContext(context.parentNode) || 858context; 859} 860 861if (newSelector) { 862try { 863push.apply(results, 864newContext.querySelectorAll(newSelector) 865); 866return results; 867} catch (qsaError) { 868} finally { 869if (nid === expando) { 870context.removeAttribute("id"); 871} 872} 873} 874} 875} 876} 877 878// All others 879return select(selector.replace(rtrim, "$1"), context, results, seed); 880} 881 882/** 883 * Create key-value caches of limited size 884 * @returns {function(string, object)} Returns the Object data after storing it on itself with 885 *property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 886 *deleting the oldest entry 887 */ 888function createCache() { 889var keys = []; 890 891function cache(key, value) { 892// Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 893if (keys.push(key + " ") > Expr.cacheLength) { 894// Only keep the most recent entries 895delete cache[keys.shift()]; 896} 897return (cache[key + " "] = value); 898} 899return cache; 900} 901 902/** 903 * Mark a function for special use by Sizzle 904 * @param {Function} fn The function to mark 905 */ 906function markFunction(fn) { 907fn[expando] = true; 908return fn; 909} 910 911/** 912 * Support testing using an element 913 * @param {Function} fn Passed the created div and expects a boolean result 914 */ 915function assert(fn) { 916var div = document.createElement("div"); 917 918try { 919return !!fn(div); 920} catch (e) { 921return false; 922} finally { 923// Remove from its parent by default 924if (div.parentNode) { 925div.parentNode.removeChild(div); 926} 927// release memory in IE 928div = null; 929} 930} 931 932/** 933 * Adds the same handler for all of the specified attrs 934 * @param {String} attrs Pipe-separated list of attributes 935 * @param {Function} handler The method that will be applied 936 */ 937function addHandle(attrs, handler) { 938var arr = attrs.split("|"), 939i = arr.length; 940 941while (i--) { 942Expr.attrHandle[arr[i]] = handler; 943} 944} 945 946/** 947 * Checks document order of two siblings 948 * @param {Element} a 949 * @param {Element} b 950 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 951 */ 952function siblingCheck(a, b) { 953var cur = b && a, 954diff = cur && a.nodeType === 1 && b.nodeType === 1 && 955(~b.sourceIndex || MAX_NEGATIVE) - 956(~a.sourceIndex || MAX_NEGATIVE); 957 958// Use IE sourceIndex if available on both nodes 959if (diff) { 960return diff; 961} 962 963// Check if b follows a 964if (cur) { 965while ((cur = cur.nextSibling)) { 966if (cur === b) { 967return -1; 968} 969} 970} 971 972return a ? 1 : -1; 973} 974 975/** 976 * Returns a function to use in pseudos for input types 977 * @param {String} type 978 */ 979function createInputPseudo(type) { 980return function (elem) { 981var name = elem.nodeName.toLowerCase(); 982return name === "input" && elem.type === type; 983}; 984} 985 986/** 987 * Returns a function to use in pseudos for buttons 988 * @param {String} type 989 */ 990function createButtonPseudo(type) { 991return function (elem) { 992var name = elem.nodeName.toLowerCase(); 993return (name === "input" || name === "button") && elem.type === type; 994}; 995} 996 997/** 998 * Returns a function to use in pseudos for positionals 999 * @param {Function} fn 1000 */ 1001function createPositionalPseudo(fn) { 1002return markFunction(function (argument) { 1003argument = +argument; 1004return markFunction(function (seed, matches) { 1005var j, 1006matchIndexes = fn([], seed.length, argument), 1007i = matchIndexes.length; 1008 1009// Match elements found at the specified indexes 1010while (i--) { 1011if (seed[(j = matchIndexes[i])]) { 1012seed[j] = !(matches[j] = seed[j]); 1013} 1014} 1015}); 1016}); 1017} 1018 1019/** 1020 * Checks a node for validity as a Sizzle context 1021 * @param {Element|Object=} context 1022 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 1023 */ 1024function testContext(context) { 1025return context && typeof context.getElementsByTagName !== "undefined" && context; 1026} 1027 1028// Expose support vars for convenience 1029support = Sizzle.support = {}; 1030 1031/** 1032 * Detects XML nodes 1033 * @param {Element|Object} elem An element or a document 1034 * @returns {Boolean} True iff elem is a non-HTML XML node 1035 */ 1036isXML = Sizzle.isXML = function (elem) { 1037// documentElement is verified for cases where it doesn't yet exist 1038// (such as loading iframes in IE - #4833) 1039var documentElement = elem && (elem.ownerDocument || elem).documentElement; 1040return documentElement ? documentElement.nodeName !== "HTML" : false; 1041}; 1042 1043/** 1044 * Sets document-related variables once based on the current document 1045 * @param {Element|Object} [doc] An element or document object to use to set the document 1046 * @returns {Object} Returns the current document 1047 */ 1048setDocument = Sizzle.setDocument = function (node) { 1049var hasCompare, parent, 1050doc = node ? node.ownerDocument || node : preferredDoc; 1051 1052// Return early if doc is invalid or already selected 1053if (doc === document || doc.nodeType !== 9 || !doc.documentElement) { 1054return document; 1055} 1056 1057// Update global variables 1058document = doc; 1059docElem = document.documentElement; 1060documentIsHTML = !isXML(document); 1061 1062// Support: IE 9-11, Edge 1063// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) 1064if ((parent = document.defaultView) && parent.top !== parent) { 1065// Support: IE 11 1066if (parent.addEventListener) { 1067parent.addEventListener("unload", unloadHandler, false); 1068 1069// Support: IE 9 - 10 only 1070} else if (parent.attachEvent) { 1071parent.attachEvent("onunload", unloadHandler); 1072} 1073} 1074 1075/* Attributes 1076---------------------------------------------------------------------- */ 1077 1078// Support: IE<8 1079// Verify that getAttribute really returns attributes and not properties 1080// (excepting IE8 booleans) 1081support.attributes = assert(function (div) { 1082div.className = "i"; 1083return !div.getAttribute("className"); 1084}); 1085 1086/* getElement(s)By* 1087---------------------------------------------------------------------- */ 1088 1089// Check if getElementsByTagName("*") returns only elements 1090support.getElementsByTagName = assert(function (div) { 1091div.appendChild(document.createComment("")); 1092return !div.getElementsByTagName("*").length; 1093}); 1094 1095// Support: IE<9 1096support.getElementsByClassName = rnative.test(document.getElementsByClassName); 1097 1098// Support: IE<10 1099// Check if getElementById returns elements by name 1100// The broken getElementById methods don't pick up programatically-set names, 1101// so use a roundabout getElementsByName test 1102support.getById = assert(function (div) { 1103docElem.appendChild(div).id = expando; 1104return !document.getElementsByName || !document.getElementsByName(expando).length; 1105}); 1106 1107// ID find and filter 1108if (support.getById) { 1109Expr.find["ID"] = function (id, context) { 1110if (typeof context.getElementById !== "undefined" && documentIsHTML) { 1111var m = context.getElementById(id); 1112return m ? [m] : []; 1113} 1114}; 1115Expr.filter["ID"] = function (id) { 1116var attrId = id.replace(runescape, funescape); 1117return function (elem) { 1118return elem.getAttribute("id") === attrId; 1119}; 1120}; 1121} else { 1122// Support: IE6/7 1123// getElementById is not reliable as a find shortcut 1124delete Expr.find["ID"]; 1125 1126Expr.filter["ID"] = function (id) { 1127var attrId = id.replace(runescape, funescape); 1128return function (elem) { 1129var node = typeof elem.getAttributeNode !== "undefined" && 1130elem.getAttributeNode("id"); 1131return node && node.value === attrId; 1132}; 1133}; 1134} 1135 1136// Tag 1137Expr.find["TAG"] = support.getElementsByTagName ? 1138function (tag, context) { 1139if (typeof context.getElementsByTagName !== "undefined") { 1140return context.getElementsByTagName(tag); 1141 1142// DocumentFragment nodes don't have gEBTN 1143} else if (support.qsa) { 1144return context.querySelectorAll(tag); 1145} 1146} : 1147 1148function (tag, context) { 1149var elem, 1150tmp = [], 1151i = 0, 1152// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 1153results = context.getElementsByTagName(tag); 1154 1155// Filter out possible comments 1156if (tag === "*") { 1157while ((elem = results[i++])) { 1158if (elem.nodeType === 1) { 1159tmp.push(elem); 1160} 1161} 1162 1163return tmp; 1164} 1165return results; 1166}; 1167 1168// Class 1169Expr.find["CLASS"] = support.getElementsByClassName && function (className, context) { 1170if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { 1171return context.getElementsByClassName(className); 1172} 1173}; 1174 1175/* QSA/matchesSelector 1176---------------------------------------------------------------------- */ 1177 1178// QSA and matchesSelector support 1179 1180// matchesSelector(:active) reports false when true (IE9/Opera 11.5) 1181rbuggyMatches = []; 1182 1183// qSa(:focus) reports false when true (Chrome 21) 1184// We allow this because of a bug in IE8/9 that throws an error 1185// whenever `document.activeElement` is accessed on an iframe 1186// So, we allow :focus to pass through QSA all the time to avoid the IE error 1187// See http://bugs.jquery.com/ticket/13378 1188rbuggyQSA = []; 1189 1190if ((support.qsa = rnative.test(document.querySelectorAll))) { 1191// Build QSA regex 1192// Regex strategy adopted from Diego Perini 1193assert(function (div) { 1194// Select is set to empty string on purpose 1195// This is to test IE's treatment of not explicitly 1196// setting a boolean content attribute, 1197// since its presence should be enough 1198// http://bugs.jquery.com/ticket/12359 1199docElem.appendChild(div).innerHTML = "<a id='" + expando + "'></a>" + 1200"<select id='" + expando + "-\r\\' msallowcapture=''>" + 1201"<option selected=''></option></select>"; 1202 1203// Support: IE8, Opera 11-12.16 1204// Nothing should be selected when empty strings follow ^= or $= or *= 1205// The test attribute must be unknown in Opera but "safe" for WinRT
vendor: 4,553 bytes, lines 1206-1359
1206// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 1207if (div.querySelectorAll("[msallowcapture^='']").length) { 1208rbuggyQSA.push("[*^$]=" + whitespace + "*(?:''|\"\")"); 1209} 1210 1211// Support: IE8 1212// Boolean attributes and "value" are not treated correctly 1213if (!div.querySelectorAll("[selected]").length) { 1214rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 1215} 1216 1217// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ 1218if (!div.querySelectorAll("[id~=" + expando + "-]").length) { 1219rbuggyQSA.push("~="); 1220} 1221 1222// Webkit/Opera - :checked should return selected option elements 1223// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 1224// IE8 throws error here and will not see later tests 1225if (!div.querySelectorAll(":checked").length) { 1226rbuggyQSA.push(":checked"); 1227} 1228 1229// Support: Safari 8+, iOS 8+ 1230// https://bugs.webkit.org/show_bug.cgi?id=136851 1231// In-page `selector#id sibing-combinator selector` fails 1232if (!div.querySelectorAll("a#" + expando + "+*").length) { 1233rbuggyQSA.push(".#.+[+~]"); 1234} 1235}); 1236 1237assert(function (div) { 1238// Support: Windows 8 Native Apps 1239// The type and name attributes are restricted during .innerHTML assignment 1240var input = document.createElement("input"); 1241input.setAttribute("type", "hidden"); 1242div.appendChild(input).setAttribute("name", "D"); 1243 1244// Support: IE8 1245// Enforce case-sensitivity of name attribute 1246if (div.querySelectorAll("[name=d]").length) { 1247rbuggyQSA.push("name" + whitespace + "*[*^$|!~]?="); 1248} 1249 1250// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) 1251// IE8 throws error here and will not see later tests 1252if (!div.querySelectorAll(":enabled").length) { 1253rbuggyQSA.push(":enabled", ":disabled"); 1254} 1255 1256// Opera 10-11 does not throw on post-comma invalid pseudos 1257div.querySelectorAll("*,:x"); 1258rbuggyQSA.push(",.*:"); 1259}); 1260} 1261 1262if ((support.matchesSelector = rnative.test((matches = docElem.matches || 1263docElem.webkitMatchesSelector || 1264docElem.mozMatchesSelector || 1265docElem.oMatchesSelector || 1266docElem.msMatchesSelector)))) { 1267 1268assert(function (div) { 1269// Check to see if it's possible to do matchesSelector 1270// on a disconnected node (IE 9) 1271support.disconnectedMatch = matches.call(div, "div"); 1272 1273// This should fail with an exception 1274// Gecko does not error, returns false instead 1275matches.call(div, "[s!='']:x"); 1276rbuggyMatches.push("!=", pseudos); 1277}); 1278} 1279 1280rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 1281rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join("|")); 1282 1283/* Contains 1284---------------------------------------------------------------------- */ 1285hasCompare = rnative.test(docElem.compareDocumentPosition); 1286 1287// Element contains another 1288// Purposefully self-exclusive 1289// As in, an element does not contain itself 1290contains = hasCompare || rnative.test(docElem.contains) ? 1291function (a, b) { 1292var adown = a.nodeType === 9 ? a.documentElement : a, 1293bup = b && b.parentNode; 1294return a === bup || !!(bup && bup.nodeType === 1 && ( 1295adown.contains ? 1296adown.contains(bup) : 1297a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16 1298)); 1299} : 1300function (a, b) { 1301if (b) { 1302while ((b = b.parentNode)) { 1303if (b === a) { 1304return true; 1305} 1306} 1307} 1308return false; 1309}; 1310 1311/* Sorting 1312---------------------------------------------------------------------- */ 1313 1314// Document order sorting 1315sortOrder = hasCompare ? 1316function (a, b) { 1317 1318// Flag for duplicate removal 1319if (a === b) { 1320hasDuplicate = true; 1321return 0; 1322} 1323 1324// Sort on method existence if only one input has compareDocumentPosition 1325var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 1326if (compare) { 1327return compare; 1328} 1329 1330// Calculate position if both inputs belong to the same document 1331compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? 1332a.compareDocumentPosition(b) : 1333 1334// Otherwise we know they are disconnected 13351; 1336 1337// Disconnected nodes 1338if (compare & 1 || 1339(!support.sortDetached && b.compareDocumentPosition(a) === compare)) { 1340 1341// Choose the first element that is related to our preferred document 1342if (a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) { 1343return -1; 1344} 1345if (b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) { 1346return 1; 1347} 1348 1349// Maintain original order 1350return sortInput ? 1351(indexOf(sortInput, a) - indexOf(sortInput, b)) : 13520; 1353} 1354 1355return compare & 4 ? -1 : 1; 1356} : 1357function (a, b) { 1358// Exit early if the nodes are identical 1359if (a === b) {
vendor: 9,468 bytes, lines 1360-1745
1360hasDuplicate = true; 1361return 0; 1362} 1363 1364var cur, 1365i = 0, 1366aup = a.parentNode, 1367bup = b.parentNode, 1368ap = [a], 1369bp = [b]; 1370 1371// Parentless nodes are either documents or disconnected 1372if (!aup || !bup) { 1373return a === document ? -1 : 1374b === document ? 1 : 1375aup ? -1 : 1376bup ? 1 : 1377sortInput ? 1378(indexOf(sortInput, a) - indexOf(sortInput, b)) : 13790; 1380 1381// If the nodes are siblings, we can do a quick check 1382} else if (aup === bup) { 1383return siblingCheck(a, b); 1384} 1385 1386// Otherwise we need full lists of their ancestors for comparison 1387cur = a; 1388while ((cur = cur.parentNode)) { 1389ap.unshift(cur); 1390} 1391cur = b; 1392while ((cur = cur.parentNode)) { 1393bp.unshift(cur); 1394} 1395 1396// Walk down the tree looking for a discrepancy 1397while (ap[i] === bp[i]) { 1398i++; 1399} 1400 1401return i ? 1402// Do a sibling check if the nodes have a common ancestor 1403siblingCheck(ap[i], bp[i]) : 1404 1405// Otherwise nodes in our document sort first 1406ap[i] === preferredDoc ? -1 : 1407bp[i] === preferredDoc ? 1 : 14080; 1409}; 1410 1411return document; 1412}; 1413 1414Sizzle.matches = function (expr, elements) { 1415return Sizzle(expr, null, null, elements); 1416}; 1417 1418Sizzle.matchesSelector = function (elem, expr) { 1419// Set document vars if needed 1420if ((elem.ownerDocument || elem) !== document) { 1421setDocument(elem); 1422} 1423 1424// Make sure that attribute selectors are quoted 1425expr = expr.replace(rattributeQuotes, "='$1']"); 1426 1427if (support.matchesSelector && documentIsHTML && 1428!compilerCache[expr + " "] && 1429(!rbuggyMatches || !rbuggyMatches.test(expr)) && 1430(!rbuggyQSA || !rbuggyQSA.test(expr))) { 1431 1432try { 1433var ret = matches.call(elem, expr); 1434 1435// IE 9's matchesSelector returns false on disconnected nodes 1436if (ret || support.disconnectedMatch || 1437// As well, disconnected nodes are said to be in a document 1438// fragment in IE 9 1439elem.document && elem.document.nodeType !== 11) { 1440return ret; 1441} 1442} catch (e) { } 1443} 1444 1445return Sizzle(expr, document, null, [elem]).length > 0; 1446}; 1447 1448Sizzle.contains = function (context, elem) { 1449// Set document vars if needed 1450if ((context.ownerDocument || context) !== document) { 1451setDocument(context); 1452} 1453return contains(context, elem); 1454}; 1455 1456Sizzle.attr = function (elem, name) { 1457// Set document vars if needed 1458if ((elem.ownerDocument || elem) !== document) { 1459setDocument(elem); 1460} 1461 1462var fn = Expr.attrHandle[name.toLowerCase()], 1463// Don't get fooled by Object.prototype properties (jQuery #13807) 1464val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? 1465fn(elem, name, !documentIsHTML) : 1466undefined; 1467 1468return val !== undefined ? 1469val : 1470support.attributes || !documentIsHTML ? 1471elem.getAttribute(name) : 1472(val = elem.getAttributeNode(name)) && val.specified ? 1473val.value : 1474null; 1475}; 1476 1477Sizzle.error = function (msg) { 1478throw new Error("Syntax error, unrecognized expression: " + msg); 1479}; 1480 1481/** 1482 * Document sorting and removing duplicates 1483 * @param {ArrayLike} results 1484 */ 1485Sizzle.uniqueSort = function (results) { 1486var elem, 1487duplicates = [], 1488j = 0, 1489i = 0; 1490 1491// Unless we *know* we can detect duplicates, assume their presence 1492hasDuplicate = !support.detectDuplicates; 1493sortInput = !support.sortStable && results.slice(0); 1494results.sort(sortOrder); 1495 1496if (hasDuplicate) { 1497while ((elem = results[i++])) { 1498if (elem === results[i]) { 1499j = duplicates.push(i); 1500} 1501} 1502while (j--) { 1503results.splice(duplicates[j], 1); 1504} 1505} 1506 1507// Clear input after sorting to release objects 1508// See https://github.com/jquery/sizzle/pull/225 1509sortInput = null; 1510 1511return results; 1512}; 1513 1514/** 1515 * Utility function for retrieving the text value of an array of DOM nodes 1516 * @param {Array|Element} elem 1517 */ 1518getText = Sizzle.getText = function (elem) { 1519var node, 1520ret = "", 1521i = 0, 1522nodeType = elem.nodeType; 1523 1524if (!nodeType) { 1525// If no nodeType, this is expected to be an array 1526while ((node = elem[i++])) { 1527// Do not traverse comment nodes 1528ret += getText(node); 1529} 1530} else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { 1531// Use textContent for elements 1532// innerText usage removed for consistency of new lines (jQuery #11153) 1533if (typeof elem.textContent === "string") { 1534return elem.textContent; 1535} else { 1536// Traverse its children 1537for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 1538ret += getText(elem); 1539} 1540} 1541} else if (nodeType === 3 || nodeType === 4) { 1542return elem.nodeValue; 1543} 1544// Do not include comment or processing instruction nodes 1545 1546return ret; 1547}; 1548 1549Expr = Sizzle.selectors = { 1550 1551// Can be adjusted by the user 1552cacheLength: 50, 1553 1554createPseudo: markFunction, 1555 1556match: matchExpr, 1557 1558attrHandle: {}, 1559 1560find: {}, 1561 1562relative: { 1563">": { dir: "parentNode", first: true }, 1564" ": { dir: "parentNode" }, 1565"+": { dir: "previousSibling", first: true }, 1566"~": { dir: "previousSibling" } 1567}, 1568 1569preFilter: { 1570"ATTR": function (match) { 1571match[1] = match[1].replace(runescape, funescape); 1572 1573// Move the given value to match[3] whether quoted or unquoted 1574match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 1575 1576if (match[2] === "~=") { 1577match[3] = " " + match[3] + " "; 1578} 1579 1580return match.slice(0, 4); 1581}, 1582 1583"CHILD": function (match) { 1584/* matches from matchExpr["CHILD"] 15851 type (only|nth|...) 15862 what (child|of-type) 15873 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 15884 xn-component of xn+y argument ([+-]?\d*n|) 15895 sign of xn-component 15906 x of xn-component 15917 sign of y-component 15928 y of y-component 1593*/ 1594match[1] = match[1].toLowerCase(); 1595 1596if (match[1].slice(0, 3) === "nth") { 1597// nth-* requires argument 1598if (!match[3]) { 1599Sizzle.error(match[0]); 1600} 1601 1602// numeric x and y parameters for Expr.filter.CHILD 1603// remember that false/true cast respectively to 0/1 1604match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 1605match[5] = +((match[7] + match[8]) || match[3] === "odd"); 1606 1607// other types prohibit arguments 1608} else if (match[3]) { 1609Sizzle.error(match[0]); 1610} 1611 1612return match; 1613}, 1614 1615"PSEUDO": function (match) { 1616var excess, 1617unquoted = !match[6] && match[2]; 1618 1619if (matchExpr["CHILD"].test(match[0])) { 1620return null; 1621} 1622 1623// Accept quoted arguments as-is 1624if (match[3]) { 1625match[2] = match[4] || match[5] || ""; 1626 1627// Strip excess characters from unquoted arguments 1628} else if (unquoted && rpseudo.test(unquoted) && 1629// Get excess from tokenize (recursively) 1630(excess = tokenize(unquoted, true)) && 1631// advance to the next closing parenthesis 1632(excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 1633 1634// excess is a negative index 1635match[0] = match[0].slice(0, excess); 1636match[2] = unquoted.slice(0, excess); 1637} 1638 1639// Return only captures needed by the pseudo filter method (type and argument) 1640return match.slice(0, 3); 1641} 1642}, 1643 1644filter: { 1645 1646"TAG": function (nodeNameSelector) { 1647var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 1648return nodeNameSelector === "*" ? 1649function () { return true; } : 1650function (elem) { 1651return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 1652}; 1653}, 1654 1655"CLASS": function (className) { 1656var pattern = classCache[className + " "]; 1657 1658return pattern || 1659(pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && 1660classCache(className, function (elem) { 1661return pattern.test(typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""); 1662}); 1663}, 1664 1665"ATTR": function (name, operator, check) { 1666return function (elem) { 1667var result = Sizzle.attr(elem, name); 1668 1669if (result == null) { 1670return operator === "!="; 1671} 1672if (!operator) { 1673return true; 1674} 1675 1676result += ""; 1677 1678return operator === "=" ? result === check : 1679operator === "!=" ? result !== check : 1680operator === "^=" ? check && result.indexOf(check) === 0 : 1681operator === "*=" ? check && result.indexOf(check) > -1 : 1682operator === "$=" ? check && result.slice(-check.length) === check : 1683operator === "~=" ? (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1 : 1684operator === "|=" ? result === check || result.slice(0, check.length + 1) === check + "-" : 1685false; 1686}; 1687}, 1688 1689"CHILD": function (type, what, argument, first, last) { 1690var simple = type.slice(0, 3) !== "nth", 1691forward = type.slice(-4) !== "last", 1692ofType = what === "of-type"; 1693 1694return first === 1 && last === 0 ? 1695 1696// Shortcut for :nth-*(n) 1697function (elem) { 1698return !!elem.parentNode; 1699} : 1700 1701function (elem, context, xml) { 1702var cache, uniqueCache, outerCache, node, nodeIndex, start, 1703dir = simple !== forward ? "nextSibling" : "previousSibling", 1704parent = elem.parentNode, 1705name = ofType && elem.nodeName.toLowerCase(), 1706useCache = !xml && !ofType, 1707diff = false; 1708 1709if (parent) { 1710 1711// :(first|last|only)-(child|of-type) 1712if (simple) { 1713while (dir) { 1714node = elem; 1715while ((node = node[dir])) { 1716if (ofType ? 1717node.nodeName.toLowerCase() === name : 1718node.nodeType === 1) { 1719 1720return false; 1721} 1722} 1723// Reverse direction for :only-* (if we haven't yet done so) 1724start = dir = type === "only" && !start && "nextSibling"; 1725} 1726return true; 1727} 1728 1729start = [forward ? parent.firstChild : parent.lastChild]; 1730 1731// non-xml :nth-child(...) stores cache data on `parent` 1732if (forward && useCache) { 1733 1734// Seek `elem` from a previously-cached index 1735 1736// ...in a gzip-friendly way 1737node = parent; 1738outerCache = node[expando] || (node[expando] = {}); 1739 1740// Support: IE <9 only 1741// Defend against cloned attroperties (jQuery gh-1709) 1742uniqueCache = outerCache[node.uniqueID] || 1743(outerCache[node.uniqueID] = {}); 1744 1745cache = uniqueCache[type] || [];
vendor: 19,752 bytes, lines 1746-2507
1746nodeIndex = cache[0] === dirruns && cache[1]; 1747diff = nodeIndex && cache[2]; 1748node = nodeIndex && parent.childNodes[nodeIndex]; 1749 1750while ((node = ++nodeIndex && node && node[dir] || 1751 1752// Fallback to seeking `elem` from the start 1753(diff = nodeIndex = 0) || start.pop())) { 1754 1755// When found, cache indexes on `parent` and break 1756if (node.nodeType === 1 && ++diff && node === elem) { 1757uniqueCache[type] = [dirruns, nodeIndex, diff]; 1758break; 1759} 1760} 1761 1762} else { 1763// Use previously-cached element index if available 1764if (useCache) { 1765// ...in a gzip-friendly way 1766node = elem; 1767outerCache = node[expando] || (node[expando] = {}); 1768 1769// Support: IE <9 only 1770// Defend against cloned attroperties (jQuery gh-1709) 1771uniqueCache = outerCache[node.uniqueID] || 1772(outerCache[node.uniqueID] = {}); 1773 1774cache = uniqueCache[type] || []; 1775nodeIndex = cache[0] === dirruns && cache[1]; 1776diff = nodeIndex; 1777} 1778 1779// xml :nth-child(...) 1780// or :nth-last-child(...) or :nth(-last)?-of-type(...) 1781if (diff === false) { 1782// Use the same loop as above to seek `elem` from the start 1783while ((node = ++nodeIndex && node && node[dir] || 1784(diff = nodeIndex = 0) || start.pop())) { 1785 1786if ((ofType ? 1787node.nodeName.toLowerCase() === name : 1788node.nodeType === 1) && 1789++diff) { 1790 1791// Cache the index of each encountered element 1792if (useCache) { 1793outerCache = node[expando] || (node[expando] = {}); 1794 1795// Support: IE <9 only 1796// Defend against cloned attroperties (jQuery gh-1709) 1797uniqueCache = outerCache[node.uniqueID] || 1798(outerCache[node.uniqueID] = {}); 1799 1800uniqueCache[type] = [dirruns, diff]; 1801} 1802 1803if (node === elem) { 1804break; 1805} 1806} 1807} 1808} 1809} 1810 1811// Incorporate the offset, then check against cycle size 1812diff -= last; 1813return diff === first || (diff % first === 0 && diff / first >= 0); 1814} 1815}; 1816}, 1817 1818"PSEUDO": function (pseudo, argument) { 1819// pseudo-class names are case-insensitive 1820// http://www.w3.org/TR/selectors/#pseudo-classes 1821// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 1822// Remember that setFilters inherits from pseudos 1823var args, 1824fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || 1825Sizzle.error("unsupported pseudo: " + pseudo); 1826 1827// The user may use createPseudo to indicate that 1828// arguments are needed to create the filter function 1829// just as Sizzle does 1830if (fn[expando]) { 1831return fn(argument); 1832} 1833 1834// But maintain support for old signatures 1835if (fn.length > 1) { 1836args = [pseudo, pseudo, "", argument]; 1837return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? 1838markFunction(function (seed, matches) { 1839var idx, 1840matched = fn(seed, argument), 1841i = matched.length; 1842while (i--) { 1843idx = indexOf(seed, matched[i]); 1844seed[idx] = !(matches[idx] = matched[i]); 1845} 1846}) : 1847function (elem) { 1848return fn(elem, 0, args); 1849}; 1850} 1851 1852return fn; 1853} 1854}, 1855 1856pseudos: { 1857// Potentially complex pseudos 1858"not": markFunction(function (selector) { 1859// Trim the selector passed to compile 1860// to avoid treating leading and trailing 1861// spaces as combinators 1862var input = [], 1863results = [], 1864matcher = compile(selector.replace(rtrim, "$1")); 1865 1866return matcher[expando] ? 1867markFunction(function (seed, matches, context, xml) { 1868var elem, 1869unmatched = matcher(seed, null, xml, []), 1870i = seed.length; 1871 1872// Match elements unmatched by `matcher` 1873while (i--) { 1874if ((elem = unmatched[i])) { 1875seed[i] = !(matches[i] = elem); 1876} 1877} 1878}) : 1879function (elem, context, xml) { 1880input[0] = elem; 1881matcher(input, null, xml, results); 1882// Don't keep the element (issue #299) 1883input[0] = null; 1884return !results.pop(); 1885}; 1886}), 1887 1888"has": markFunction(function (selector) { 1889return function (elem) { 1890return Sizzle(selector, elem).length > 0; 1891}; 1892}), 1893 1894"contains": markFunction(function (text) { 1895text = text.replace(runescape, funescape); 1896return function (elem) { 1897return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1; 1898}; 1899}), 1900 1901// "Whether an element is represented by a :lang() selector 1902// is based solely on the element's language value 1903// being equal to the identifier C, 1904// or beginning with the identifier C immediately followed by "-". 1905// The matching of C against the element's language value is performed case-insensitively. 1906// The identifier C does not have to be a valid language name." 1907// http://www.w3.org/TR/selectors/#lang-pseudo 1908"lang": markFunction(function (lang) { 1909// lang value must be a valid identifier 1910if (!ridentifier.test(lang || "")) { 1911Sizzle.error("unsupported lang: " + lang); 1912} 1913lang = lang.replace(runescape, funescape).toLowerCase(); 1914return function (elem) { 1915var elemLang; 1916do { 1917if ((elemLang = documentIsHTML ? 1918elem.lang : 1919elem.getAttribute("xml:lang") || elem.getAttribute("lang"))) { 1920 1921elemLang = elemLang.toLowerCase(); 1922return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 1923} 1924} while ((elem = elem.parentNode) && elem.nodeType === 1); 1925return false; 1926}; 1927}), 1928 1929// Miscellaneous 1930"target": function (elem) { 1931var hash = window.location && window.location.hash; 1932return hash && hash.slice(1) === elem.id; 1933}, 1934 1935"root": function (elem) { 1936return elem === docElem; 1937}, 1938 1939"focus": function (elem) { 1940return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); 1941}, 1942 1943// Boolean properties 1944"enabled": function (elem) { 1945return elem.disabled === false; 1946}, 1947 1948"disabled": function (elem) { 1949return elem.disabled === true; 1950}, 1951 1952"checked": function (elem) { 1953// In CSS3, :checked should return both checked and selected elements 1954// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 1955var nodeName = elem.nodeName.toLowerCase(); 1956return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); 1957}, 1958 1959"selected": function (elem) { 1960// Accessing this property makes selected-by-default 1961// options in Safari work properly 1962if (elem.parentNode) { 1963elem.parentNode.selectedIndex; 1964} 1965 1966return elem.selected === true; 1967}, 1968 1969// Contents 1970"empty": function (elem) { 1971// http://www.w3.org/TR/selectors/#empty-pseudo 1972// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 1973// but not by others (comment: 8; processing instruction: 7; etc.) 1974// nodeType < 6 works because attributes (2) do not appear as children 1975for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 1976if (elem.nodeType < 6) { 1977return false; 1978} 1979} 1980return true; 1981}, 1982 1983"parent": function (elem) { 1984return !Expr.pseudos["empty"](elem); 1985}, 1986 1987// Element/input types 1988"header": function (elem) { 1989return rheader.test(elem.nodeName); 1990}, 1991 1992"input": function (elem) { 1993return rinputs.test(elem.nodeName); 1994}, 1995 1996"button": function (elem) { 1997var name = elem.nodeName.toLowerCase(); 1998return name === "input" && elem.type === "button" || name === "button"; 1999}, 2000 2001"text": function (elem) { 2002var attr; 2003return elem.nodeName.toLowerCase() === "input" && 2004elem.type === "text" && 2005 2006// Support: IE<8 2007// New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 2008((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 2009}, 2010 2011// Position-in-collection 2012"first": createPositionalPseudo(function () { 2013return [0]; 2014}), 2015 2016"last": createPositionalPseudo(function (matchIndexes, length) { 2017return [length - 1]; 2018}), 2019 2020"eq": createPositionalPseudo(function (matchIndexes, length, argument) { 2021return [argument < 0 ? argument + length : argument]; 2022}), 2023 2024"even": createPositionalPseudo(function (matchIndexes, length) { 2025var i = 0; 2026for (; i < length; i += 2) { 2027matchIndexes.push(i); 2028} 2029return matchIndexes; 2030}), 2031 2032"odd": createPositionalPseudo(function (matchIndexes, length) { 2033var i = 1; 2034for (; i < length; i += 2) { 2035matchIndexes.push(i); 2036} 2037return matchIndexes; 2038}), 2039 2040"lt": createPositionalPseudo(function (matchIndexes, length, argument) { 2041var i = argument < 0 ? argument + length : argument; 2042for (; --i >= 0;) { 2043matchIndexes.push(i); 2044} 2045return matchIndexes; 2046}), 2047 2048"gt": createPositionalPseudo(function (matchIndexes, length, argument) { 2049var i = argument < 0 ? argument + length : argument; 2050for (; ++i < length;) { 2051matchIndexes.push(i); 2052} 2053return matchIndexes; 2054}) 2055} 2056}; 2057 2058Expr.pseudos["nth"] = Expr.pseudos["eq"]; 2059 2060// Add button/input type pseudos 2061for (i in { radio: true, checkbox: true, file: true, password: true, image: true }) { 2062Expr.pseudos[i] = createInputPseudo(i); 2063} 2064for (i in { submit: true, reset: true }) { 2065Expr.pseudos[i] = createButtonPseudo(i); 2066} 2067 2068// Easy API for creating new setFilters 2069function setFilters() { } 2070setFilters.prototype = Expr.filters = Expr.pseudos; 2071Expr.setFilters = new setFilters(); 2072 2073tokenize = Sizzle.tokenize = function (selector, parseOnly) { 2074var matched, match, tokens, type, 2075soFar, groups, preFilters, 2076cached = tokenCache[selector + " "]; 2077 2078if (cached) { 2079return parseOnly ? 0 : cached.slice(0); 2080} 2081 2082soFar = selector; 2083groups = []; 2084preFilters = Expr.preFilter; 2085 2086while (soFar) { 2087 2088// Comma and first run 2089if (!matched || (match = rcomma.exec(soFar))) { 2090if (match) { 2091// Don't consume trailing commas as valid 2092soFar = soFar.slice(match[0].length) || soFar; 2093} 2094groups.push((tokens = [])); 2095} 2096 2097matched = false; 2098 2099// Combinators 2100if ((match = rcombinators.exec(soFar))) { 2101matched = match.shift(); 2102tokens.push({ 2103value: matched, 2104// Cast descendant combinators to space 2105type: match[0].replace(rtrim, " ") 2106}); 2107soFar = soFar.slice(matched.length); 2108} 2109 2110// Filters 2111for (type in Expr.filter) { 2112if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || 2113(match = preFilters[type](match)))) { 2114matched = match.shift(); 2115tokens.push({ 2116value: matched, 2117type: type, 2118matches: match 2119}); 2120soFar = soFar.slice(matched.length); 2121} 2122} 2123 2124if (!matched) { 2125break; 2126} 2127} 2128 2129// Return the length of the invalid excess 2130// if we're just parsing 2131// Otherwise, throw an error or return tokens 2132return parseOnly ? 2133soFar.length : 2134soFar ? 2135Sizzle.error(selector) : 2136// Cache the tokens 2137tokenCache(selector, groups).slice(0); 2138}; 2139 2140function toSelector(tokens) { 2141var i = 0, 2142len = tokens.length, 2143selector = ""; 2144for (; i < len; i++) { 2145selector += tokens[i].value; 2146} 2147return selector; 2148} 2149 2150function addCombinator(matcher, combinator, base) { 2151var dir = combinator.dir, 2152checkNonElements = base && dir === "parentNode", 2153doneName = done++; 2154 2155return combinator.first ? 2156// Check against closest ancestor/preceding element 2157function (elem, context, xml) { 2158while ((elem = elem[dir])) { 2159if (elem.nodeType === 1 || checkNonElements) { 2160return matcher(elem, context, xml); 2161} 2162} 2163} : 2164 2165// Check against all ancestor/preceding elements 2166function (elem, context, xml) { 2167var oldCache, uniqueCache, outerCache, 2168newCache = [dirruns, doneName]; 2169 2170// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 2171if (xml) { 2172while ((elem = elem[dir])) { 2173if (elem.nodeType === 1 || checkNonElements) { 2174if (matcher(elem, context, xml)) { 2175return true; 2176} 2177} 2178} 2179} else { 2180while ((elem = elem[dir])) { 2181if (elem.nodeType === 1 || checkNonElements) { 2182outerCache = elem[expando] || (elem[expando] = {}); 2183 2184// Support: IE <9 only 2185// Defend against cloned attroperties (jQuery gh-1709) 2186uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {}); 2187 2188if ((oldCache = uniqueCache[dir]) && 2189oldCache[0] === dirruns && oldCache[1] === doneName) { 2190 2191// Assign to newCache so results back-propagate to previous elements 2192return (newCache[2] = oldCache[2]); 2193} else { 2194// Reuse newcache so results back-propagate to previous elements 2195uniqueCache[dir] = newCache; 2196 2197// A match means we're done; a fail means we have to keep checking 2198if ((newCache[2] = matcher(elem, context, xml))) { 2199return true; 2200} 2201} 2202} 2203} 2204} 2205}; 2206} 2207 2208function elementMatcher(matchers) { 2209return matchers.length > 1 ? 2210function (elem, context, xml) { 2211var i = matchers.length; 2212while (i--) { 2213if (!matchers[i](elem, context, xml)) { 2214return false; 2215} 2216} 2217return true; 2218} : 2219matchers[0]; 2220} 2221 2222function multipleContexts(selector, contexts, results) { 2223var i = 0, 2224len = contexts.length; 2225for (; i < len; i++) { 2226Sizzle(selector, contexts[i], results); 2227} 2228return results; 2229} 2230 2231function condense(unmatched, map, filter, context, xml) { 2232var elem, 2233newUnmatched = [], 2234i = 0, 2235len = unmatched.length, 2236mapped = map != null; 2237 2238for (; i < len; i++) { 2239if ((elem = unmatched[i])) { 2240if (!filter || filter(elem, context, xml)) { 2241newUnmatched.push(elem); 2242if (mapped) { 2243map.push(i); 2244} 2245} 2246} 2247} 2248 2249return newUnmatched; 2250} 2251 2252function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { 2253if (postFilter && !postFilter[expando]) { 2254postFilter = setMatcher(postFilter); 2255} 2256if (postFinder && !postFinder[expando]) { 2257postFinder = setMatcher(postFinder, postSelector); 2258} 2259return markFunction(function (seed, results, context, xml) { 2260var temp, i, elem, 2261preMap = [], 2262postMap = [], 2263preexisting = results.length, 2264 2265// Get initial elements from seed or context 2266elems = seed || multipleContexts(selector || "*", context.nodeType ? [context] : context, []), 2267 2268// Prefilter to get matcher input, preserving a map for seed-results synchronization 2269matcherIn = preFilter && (seed || !selector) ? 2270condense(elems, preMap, preFilter, context, xml) : 2271elems, 2272 2273matcherOut = matcher ? 2274// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, 2275postFinder || (seed ? preFilter : preexisting || postFilter) ? 2276 2277// ...intermediate processing is necessary 2278[] : 2279 2280// ...otherwise use results directly 2281results : 2282matcherIn; 2283 2284// Find primary matches 2285if (matcher) { 2286matcher(matcherIn, matcherOut, context, xml); 2287} 2288 2289// Apply postFilter 2290if (postFilter) { 2291temp = condense(matcherOut, postMap); 2292postFilter(temp, [], context, xml); 2293 2294// Un-match failing elements by moving them back to matcherIn 2295i = temp.length; 2296while (i--) { 2297if ((elem = temp[i])) { 2298matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem); 2299} 2300} 2301} 2302 2303if (seed) { 2304if (postFinder || preFilter) { 2305if (postFinder) { 2306// Get the final matcherOut by condensing this intermediate into postFinder contexts 2307temp = []; 2308i = matcherOut.length; 2309while (i--) { 2310if ((elem = matcherOut[i])) { 2311// Restore matcherIn since elem is not yet a final match 2312temp.push((matcherIn[i] = elem)); 2313} 2314} 2315postFinder(null, (matcherOut = []), temp, xml); 2316} 2317 2318// Move matched elements from seed to results to keep them synchronized 2319i = matcherOut.length; 2320while (i--) { 2321if ((elem = matcherOut[i]) && 2322(temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) { 2323 2324seed[temp] = !(results[temp] = elem); 2325} 2326} 2327} 2328 2329// Add elements to results, through postFinder if defined 2330} else { 2331matcherOut = condense( 2332matcherOut === results ? 2333matcherOut.splice(preexisting, matcherOut.length) : 2334matcherOut 2335); 2336if (postFinder) { 2337postFinder(null, results, matcherOut, xml); 2338} else { 2339push.apply(results, matcherOut); 2340} 2341} 2342}); 2343} 2344 2345function matcherFromTokens(tokens) { 2346var checkContext, matcher, j, 2347len = tokens.length, 2348leadingRelative = Expr.relative[tokens[0].type], 2349implicitRelative = leadingRelative || Expr.relative[" "], 2350i = leadingRelative ? 1 : 0, 2351 2352// The foundational matcher ensures that elements are reachable from top-level context(s) 2353matchContext = addCombinator(function (elem) { 2354return elem === checkContext; 2355}, implicitRelative, true), 2356matchAnyContext = addCombinator(function (elem) { 2357return indexOf(checkContext, elem) > -1; 2358}, implicitRelative, true), 2359matchers = [function (elem, context, xml) { 2360var ret = (!leadingRelative && (xml || context !== outermostContext)) || ( 2361(checkContext = context).nodeType ? 2362matchContext(elem, context, xml) : 2363matchAnyContext(elem, context, xml)); 2364// Avoid hanging onto element (issue #299) 2365checkContext = null; 2366return ret; 2367}]; 2368 2369for (; i < len; i++) { 2370if ((matcher = Expr.relative[tokens[i].type])) { 2371matchers = [addCombinator(elementMatcher(matchers), matcher)]; 2372} else { 2373matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); 2374 2375// Return special upon seeing a positional matcher 2376if (matcher[expando]) { 2377// Find the next relative operator (if any) for proper handling 2378j = ++i; 2379for (; j < len; j++) { 2380if (Expr.relative[tokens[j].type]) { 2381break; 2382} 2383} 2384return setMatcher( 2385i > 1 && elementMatcher(matchers), 2386i > 1 && toSelector( 2387// If the preceding token was a descendant combinator, insert an implicit any-element `*` 2388tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === " " ? "*" : "" }) 2389).replace(rtrim, "$1"), 2390matcher, 2391i < j && matcherFromTokens(tokens.slice(i, j)), 2392j < len && matcherFromTokens((tokens = tokens.slice(j))), 2393j < len && toSelector(tokens) 2394); 2395} 2396matchers.push(matcher); 2397} 2398} 2399 2400return elementMatcher(matchers); 2401} 2402 2403function matcherFromGroupMatchers(elementMatchers, setMatchers) { 2404var bySet = setMatchers.length > 0, 2405byElement = elementMatchers.length > 0, 2406superMatcher = function (seed, context, xml, results, outermost) { 2407var elem, j, matcher, 2408matchedCount = 0, 2409i = "0", 2410unmatched = seed && [], 2411setMatched = [], 2412contextBackup = outermostContext, 2413// We must always have either seed elements or outermost context 2414elems = seed || byElement && Expr.find["TAG"]("*", outermost), 2415// Use integer dirruns iff this is the outermost matcher 2416dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), 2417len = elems.length; 2418 2419if (outermost) { 2420outermostContext = context === document || context || outermost; 2421} 2422 2423// Add elements passing elementMatchers directly to results 2424// Support: IE<9, Safari 2425// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 2426for (; i !== len && (elem = elems[i]) != null; i++) { 2427if (byElement && elem) { 2428j = 0; 2429if (!context && elem.ownerDocument !== document) { 2430setDocument(elem); 2431xml = !documentIsHTML; 2432} 2433while ((matcher = elementMatchers[j++])) { 2434if (matcher(elem, context || document, xml)) { 2435results.push(elem); 2436break; 2437} 2438} 2439if (outermost) { 2440dirruns = dirrunsUnique; 2441} 2442} 2443 2444// Track unmatched elements for set filters 2445if (bySet) { 2446// They will have gone through all possible matchers 2447if ((elem = !matcher && elem)) { 2448matchedCount--; 2449} 2450 2451// Lengthen the array for every element, matched or not 2452if (seed) { 2453unmatched.push(elem); 2454} 2455} 2456} 2457 2458// `i` is now the count of elements visited above, and adding it to `matchedCount` 2459// makes the latter nonnegative. 2460matchedCount += i; 2461 2462// Apply set filters to unmatched elements 2463// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 2464// equals `i`), unless we didn't visit _any_ elements in the above loop because we have 2465// no element matchers and no seed. 2466// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 2467// case, which will result in a "00" `matchedCount` that differs from `i` but is also 2468// numerically zero. 2469if (bySet && i !== matchedCount) { 2470j = 0; 2471while ((matcher = setMatchers[j++])) { 2472matcher(unmatched, setMatched, context, xml); 2473} 2474 2475if (seed) { 2476// Reintegrate element matches to eliminate the need for sorting 2477if (matchedCount > 0) { 2478while (i--) { 2479if (!(unmatched[i] || setMatched[i])) { 2480setMatched[i] = pop.call(results); 2481} 2482} 2483} 2484 2485// Discard index placeholder values to get only actual matches 2486setMatched = condense(setMatched); 2487} 2488 2489// Add matches to results 2490push.apply(results, setMatched); 2491 2492// Seedless set matches succeeding multiple successful matchers stipulate sorting 2493if (outermost && !seed && setMatched.length > 0 && 2494(matchedCount + setMatchers.length) > 1) { 2495 2496Sizzle.uniqueSort(results); 2497} 2498} 2499 2500// Override manipulation of globals by nested matchers 2501if (outermost) { 2502dirruns = dirrunsUnique; 2503outermostContext = contextBackup; 2504} 2505 2506return unmatched; 2507};
vendor: 4,272 bytes, lines 2508-2657
2508 2509return bySet ? 2510markFunction(superMatcher) : 2511superMatcher; 2512} 2513 2514compile = Sizzle.compile = function (selector, match /* Internal Use Only */) { 2515var i, 2516setMatchers = [], 2517elementMatchers = [], 2518cached = compilerCache[selector + " "]; 2519 2520if (!cached) { 2521// Generate a function of recursive functions that can be used to check each element 2522if (!match) { 2523match = tokenize(selector); 2524} 2525i = match.length; 2526while (i--) { 2527cached = matcherFromTokens(match[i]); 2528if (cached[expando]) { 2529setMatchers.push(cached); 2530} else { 2531elementMatchers.push(cached); 2532} 2533} 2534 2535// Cache the compiled function 2536cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); 2537 2538// Save selector and tokenization 2539cached.selector = selector; 2540} 2541return cached; 2542}; 2543 2544/** 2545 * A low-level selection function that works with Sizzle's compiled 2546 * selector functions 2547 * @param {String|Function} selector A selector or a pre-compiled 2548 * selector function built with Sizzle.compile 2549 * @param {Element} context 2550 * @param {Array} [results] 2551 * @param {Array} [seed] A set of elements to match against 2552 */ 2553select = Sizzle.select = function (selector, context, results, seed) { 2554var i, tokens, token, type, find, 2555compiled = typeof selector === "function" && selector, 2556match = !seed && tokenize((selector = compiled.selector || selector)); 2557 2558results = results || []; 2559 2560// Try to minimize operations if there is only one selector in the list and no seed 2561// (the latter of which guarantees us context) 2562if (match.length === 1) { 2563 2564// Reduce context if the leading compound selector is an ID 2565tokens = match[0] = match[0].slice(0); 2566if (tokens.length > 2 && (token = tokens[0]).type === "ID" && 2567support.getById && context.nodeType === 9 && documentIsHTML && 2568Expr.relative[tokens[1].type]) { 2569 2570context = (Expr.find["ID"](token.matches[0].replace(runescape, funescape), context) || [])[0]; 2571if (!context) { 2572return results; 2573 2574// Precompiled matchers will still verify ancestry, so step up a level 2575} else if (compiled) { 2576context = context.parentNode; 2577} 2578 2579selector = selector.slice(tokens.shift().value.length); 2580} 2581 2582// Fetch a seed set for right-to-left matching 2583i = matchExpr["needsContext"].test(selector) ? 0 : tokens.length; 2584while (i--) { 2585token = tokens[i]; 2586 2587// Abort if we hit a combinator 2588if (Expr.relative[(type = token.type)]) { 2589break; 2590} 2591if ((find = Expr.find[type])) { 2592// Search, expanding context for leading sibling combinators 2593if ((seed = find( 2594token.matches[0].replace(runescape, funescape), 2595rsibling.test(tokens[0].type) && testContext(context.parentNode) || context 2596))) { 2597 2598// If seed is empty or no tokens remain, we can return early 2599tokens.splice(i, 1); 2600selector = seed.length && toSelector(tokens); 2601if (!selector) { 2602push.apply(results, seed); 2603return results; 2604} 2605 2606break; 2607} 2608} 2609} 2610} 2611 2612// Compile and execute a filtering function if one is not provided 2613// Provide `match` to avoid retokenization if we modified the selector above 2614(compiled || compile(selector, match))( 2615seed, 2616context, 2617!documentIsHTML, 2618results, 2619!context || rsibling.test(selector) && testContext(context.parentNode) || context 2620); 2621return results; 2622}; 2623 2624// One-time assignments 2625 2626// Sort stability 2627support.sortStable = expando.split("").sort(sortOrder).join("") === expando; 2628 2629// Support: Chrome 14-35+ 2630// Always assume duplicates if they aren't passed to the comparison function 2631support.detectDuplicates = !!hasDuplicate; 2632 2633// Initialize against the default document 2634setDocument(); 2635 2636// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 2637// Detached nodes confoundingly follow *each other* 2638support.sortDetached = assert(function (div1) { 2639// Should return 1, but returns 4 (following) 2640return div1.compareDocumentPosition(document.createElement("div")) & 1; 2641}); 2642 2643// Support: IE<8 2644// Prevent attribute/property "interpolation" 2645// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 2646if (!assert(function (div) { 2647div.innerHTML = "<a href='#'></a>"; 2648return div.firstChild.getAttribute("href") === "#"; 2649})) { 2650addHandle("type|href|height|width", function (elem, name, isXML) { 2651if (!isXML) { 2652return elem.getAttribute(name, name.toLowerCase() === "type" ? 1 : 2); 2653} 2654}); 2655} 2656 2657// Support: IE<9
vendor: 8,719 bytes, lines 2658-3040
2658// Use defaultValue in place of getAttribute("value") 2659if (!support.attributes || !assert(function (div) { 2660div.innerHTML = "<input/>"; 2661div.firstChild.setAttribute("value", ""); 2662return div.firstChild.getAttribute("value") === ""; 2663})) { 2664addHandle("value", function (elem, name, isXML) { 2665if (!isXML && elem.nodeName.toLowerCase() === "input") { 2666return elem.defaultValue; 2667} 2668}); 2669} 2670 2671// Support: IE<9 2672// Use getAttributeNode to fetch booleans when getAttribute lies 2673if (!assert(function (div) { 2674return div.getAttribute("disabled") == null; 2675})) { 2676addHandle(booleans, function (elem, name, isXML) { 2677var val; 2678if (!isXML) { 2679return elem[name] === true ? name.toLowerCase() : 2680(val = elem.getAttributeNode(name)) && val.specified ? 2681val.value : 2682null; 2683} 2684}); 2685} 2686 2687return Sizzle; 2688 2689})(window); 2690 2691 2692 2693jQuery.find = Sizzle; 2694jQuery.expr = Sizzle.selectors; 2695jQuery.expr[":"] = jQuery.expr.pseudos; 2696jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 2697jQuery.text = Sizzle.getText; 2698jQuery.isXMLDoc = Sizzle.isXML; 2699jQuery.contains = Sizzle.contains; 2700 2701 2702 2703var dir = function (elem, dir, until) { 2704var matched = [], 2705truncate = until !== undefined; 2706 2707while ((elem = elem[dir]) && elem.nodeType !== 9) { 2708if (elem.nodeType === 1) { 2709if (truncate && jQuery(elem).is(until)) { 2710break; 2711} 2712matched.push(elem); 2713} 2714} 2715return matched; 2716}; 2717 2718 2719var siblings = function (n, elem) { 2720var matched = []; 2721 2722for (; n; n = n.nextSibling) { 2723if (n.nodeType === 1 && n !== elem) { 2724matched.push(n); 2725} 2726} 2727 2728return matched; 2729}; 2730 2731 2732var rneedsContext = jQuery.expr.match.needsContext; 2733 2734var rsingleTag = (/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/); 2735 2736 2737 2738var risSimple = /^.[^:#\[\.,]*$/; 2739 2740// Implement the identical functionality for filter and not 2741function winnow(elements, qualifier, not) { 2742if (jQuery.isFunction(qualifier)) { 2743return jQuery.grep(elements, function (elem, i) { 2744/* jshint -W018 */ 2745return !!qualifier.call(elem, i, elem) !== not; 2746}); 2747 2748} 2749 2750if (qualifier.nodeType) { 2751return jQuery.grep(elements, function (elem) { 2752return (elem === qualifier) !== not; 2753}); 2754 2755} 2756 2757if (typeof qualifier === "string") { 2758if (risSimple.test(qualifier)) { 2759return jQuery.filter(qualifier, elements, not); 2760} 2761 2762qualifier = jQuery.filter(qualifier, elements); 2763} 2764 2765return jQuery.grep(elements, function (elem) { 2766return (indexOf.call(qualifier, elem) > -1) !== not; 2767}); 2768} 2769 2770jQuery.filter = function (expr, elems, not) { 2771var elem = elems[0]; 2772 2773if (not) { 2774expr = ":not(" + expr + ")"; 2775} 2776 2777return elems.length === 1 && elem.nodeType === 1 ? 2778jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : 2779jQuery.find.matches(expr, jQuery.grep(elems, function (elem) { 2780return elem.nodeType === 1; 2781})); 2782}; 2783 2784jQuery.fn.extend({ 2785find: function (selector) { 2786var i, 2787len = this.length, 2788ret = [], 2789self = this; 2790 2791if (typeof selector !== "string") { 2792return this.pushStack(jQuery(selector).filter(function () { 2793for (i = 0; i < len; i++) { 2794if (jQuery.contains(self[i], this)) { 2795return true; 2796} 2797} 2798})); 2799} 2800 2801for (i = 0; i < len; i++) { 2802jQuery.find(selector, self[i], ret); 2803} 2804 2805// Needed because $( selector, context ) becomes $( context ).find( selector ) 2806ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret); 2807ret.selector = this.selector ? this.selector + " " + selector : selector; 2808return ret; 2809}, 2810filter: function (selector) { 2811return this.pushStack(winnow(this, selector || [], false)); 2812}, 2813not: function (selector) { 2814return this.pushStack(winnow(this, selector || [], true)); 2815}, 2816is: function (selector) { 2817return !!winnow( 2818this, 2819 2820// If this is a positional/relative selector, check membership in the returned set 2821// so $("p:first").is("p:last") won't return true for a doc with two "p". 2822typeof selector === "string" && rneedsContext.test(selector) ? 2823jQuery(selector) : 2824selector || [], 2825false 2826).length; 2827} 2828}); 2829 2830 2831// Initialize a jQuery object 2832 2833 2834// A central reference to the root jQuery(document) 2835var rootjQuery, 2836 2837// A simple way to check for HTML strings 2838// Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 2839// Strict HTML recognition (#11290: must start with <) 2840rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, 2841 2842init = jQuery.fn.init = function (selector, context, root) { 2843var match, elem; 2844 2845// HANDLE: $(""), $(null), $(undefined), $(false) 2846if (!selector) { 2847return this; 2848} 2849 2850// Method init() accepts an alternate rootjQuery 2851// so migrate can support jQuery.sub (gh-2101) 2852root = root || rootjQuery; 2853 2854// Handle HTML strings 2855if (typeof selector === "string") { 2856if (selector[0] === "<" && 2857selector[selector.length - 1] === ">" && 2858selector.length >= 3) { 2859 2860// Assume that strings that start and end with <> are HTML and skip the regex check 2861match = [null, selector, null]; 2862 2863} else { 2864match = rquickExpr.exec(selector); 2865} 2866 2867// Match html or make sure no context is specified for #id 2868if (match && (match[1] || !context)) { 2869 2870// HANDLE: $(html) -> $(array) 2871if (match[1]) { 2872context = context instanceof jQuery ? context[0] : context; 2873 2874// Option to run scripts is true for back-compat 2875// Intentionally let the error be thrown if parseHTML is not present 2876jQuery.merge(this, jQuery.parseHTML( 2877match[1], 2878context && context.nodeType ? context.ownerDocument || context : document, 2879true 2880)); 2881 2882// HANDLE: $(html, props) 2883if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) { 2884for (match in context) { 2885 2886// Properties of context are called as methods if possible 2887if (jQuery.isFunction(this[match])) { 2888this[match](context[match]); 2889 2890// ...and otherwise set as attributes 2891} else { 2892this.attr(match, context[match]); 2893} 2894} 2895} 2896 2897return this; 2898 2899// HANDLE: $(#id) 2900} else { 2901elem = document.getElementById(match[2]); 2902 2903// Support: Blackberry 4.6 2904// gEBID returns nodes no longer in the document (#6963) 2905if (elem && elem.parentNode) { 2906 2907// Inject the element directly into the jQuery object 2908this.length = 1; 2909this[0] = elem; 2910} 2911 2912this.context = document; 2913this.selector = selector; 2914return this; 2915} 2916 2917// HANDLE: $(expr, $(...)) 2918} else if (!context || context.jquery) { 2919return (context || root).find(selector); 2920 2921// HANDLE: $(expr, context) 2922// (which is just equivalent to: $(context).find(expr) 2923} else { 2924return this.constructor(context).find(selector); 2925} 2926 2927// HANDLE: $(DOMElement) 2928} else if (selector.nodeType) { 2929this.context = this[0] = selector; 2930this.length = 1; 2931return this; 2932 2933// HANDLE: $(function) 2934// Shortcut for document ready 2935} else if (jQuery.isFunction(selector)) { 2936return root.ready !== undefined ? 2937root.ready(selector) : 2938 2939// Execute immediately if ready is not present 2940selector(jQuery); 2941} 2942 2943if (selector.selector !== undefined) { 2944this.selector = selector.selector; 2945this.context = selector.context; 2946} 2947 2948return jQuery.makeArray(selector, this); 2949}; 2950 2951// Give the init function the jQuery prototype for later instantiation 2952init.prototype = jQuery.fn; 2953 2954// Initialize central reference 2955rootjQuery = jQuery(document); 2956 2957 2958var rparentsprev = /^(?:parents|prev(?:Until|All))/, 2959 2960// Methods guaranteed to produce a unique set when starting from a unique set 2961guaranteedUnique = { 2962children: true, 2963contents: true, 2964next: true, 2965prev: true 2966}; 2967 2968jQuery.fn.extend({ 2969has: function (target) { 2970var targets = jQuery(target, this), 2971l = targets.length; 2972 2973return this.filter(function () { 2974var i = 0; 2975for (; i < l; i++) { 2976if (jQuery.contains(this, targets[i])) { 2977return true; 2978} 2979} 2980}); 2981}, 2982 2983closest: function (selectors, context) { 2984var cur, 2985i = 0, 2986l = this.length, 2987matched = [], 2988pos = rneedsContext.test(selectors) || typeof selectors !== "string" ? 2989jQuery(selectors, context || this.context) : 29900; 2991 2992for (; i < l; i++) { 2993for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) { 2994 2995// Always skip document fragments 2996if (cur.nodeType < 11 && (pos ? 2997pos.index(cur) > -1 : 2998 2999// Don't pass non-elements to Sizzle 3000cur.nodeType === 1 && 3001jQuery.find.matchesSelector(cur, selectors))) { 3002 3003matched.push(cur); 3004break; 3005} 3006} 3007} 3008 3009return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched); 3010}, 3011 3012// Determine the position of an element within the set 3013index: function (elem) { 3014 3015// No argument, return index in parent 3016if (!elem) { 3017return (this[0] && this[0].parentNode) ? this.first().prevAll().length : -1; 3018} 3019 3020// Index in selector 3021if (typeof elem === "string") { 3022return indexOf.call(jQuery(elem), this[0]); 3023} 3024 3025// Locate the position of the desired element 3026return indexOf.call(this, 3027 3028// If it receives a jQuery object, the first element is used 3029elem.jquery ? elem[0] : elem 3030); 3031}, 3032 3033add: function (selector, context) { 3034return this.pushStack( 3035jQuery.uniqueSort( 3036jQuery.merge(this.get(), jQuery(selector, context)) 3037) 3038); 3039}, 3040
vendor: 5,523 bytes, lines 3041-3283
3041addBack: function (selector) { 3042return this.add(selector == null ? 3043this.prevObject : this.prevObject.filter(selector) 3044); 3045} 3046}); 3047 3048function sibling(cur, dir) { 3049while ((cur = cur[dir]) && cur.nodeType !== 1) { } 3050return cur; 3051} 3052 3053jQuery.each({ 3054parent: function (elem) { 3055var parent = elem.parentNode; 3056return parent && parent.nodeType !== 11 ? parent : null; 3057}, 3058parents: function (elem) { 3059return dir(elem, "parentNode"); 3060}, 3061parentsUntil: function (elem, i, until) { 3062return dir(elem, "parentNode", until); 3063}, 3064next: function (elem) { 3065return sibling(elem, "nextSibling"); 3066}, 3067prev: function (elem) { 3068return sibling(elem, "previousSibling"); 3069}, 3070nextAll: function (elem) { 3071return dir(elem, "nextSibling"); 3072}, 3073prevAll: function (elem) { 3074return dir(elem, "previousSibling"); 3075}, 3076nextUntil: function (elem, i, until) { 3077return dir(elem, "nextSibling", until); 3078}, 3079prevUntil: function (elem, i, until) { 3080return dir(elem, "previousSibling", until); 3081}, 3082siblings: function (elem) { 3083return siblings((elem.parentNode || {}).firstChild, elem); 3084}, 3085children: function (elem) { 3086return siblings(elem.firstChild); 3087}, 3088contents: function (elem) { 3089return elem.contentDocument || jQuery.merge([], elem.childNodes); 3090} 3091}, function (name, fn) { 3092jQuery.fn[name] = function (until, selector) { 3093var matched = jQuery.map(this, fn, until); 3094 3095if (name.slice(-5) !== "Until") { 3096selector = until; 3097} 3098 3099if (selector && typeof selector === "string") { 3100matched = jQuery.filter(selector, matched); 3101} 3102 3103if (this.length > 1) { 3104 3105// Remove duplicates 3106if (!guaranteedUnique[name]) { 3107jQuery.uniqueSort(matched); 3108} 3109 3110// Reverse order for parents* and prev-derivatives 3111if (rparentsprev.test(name)) { 3112matched.reverse(); 3113} 3114} 3115 3116return this.pushStack(matched); 3117}; 3118}); 3119var rnotwhite = (/\S+/g); 3120 3121 3122 3123// Convert String-formatted options into Object-formatted ones 3124function createOptions(options) { 3125var object = {}; 3126jQuery.each(options.match(rnotwhite) || [], function (_, flag) { 3127object[flag] = true; 3128}); 3129return object; 3130} 3131 3132/* 3133 * Create a callback list using the following parameters: 3134 * 3135 *options: an optional list of space-separated options that will change how 3136 *the callback list behaves or a more traditional option object 3137 * 3138 * By default a callback list will act like an event callback list and can be 3139 * "fired" multiple times. 3140 * 3141 * Possible options: 3142 * 3143 *once:will ensure the callback list can only be fired once (like a Deferred) 3144 * 3145 *memory:will keep track of previous values and will call any callback added 3146 *after the list has been fired right away with the latest "memorized" 3147 *values (like a Deferred) 3148 * 3149 *unique:will ensure a callback can only be added once (no duplicate in the list) 3150 * 3151 *stopOnFalse:interrupt callings when a callback returns false 3152 * 3153 */ 3154jQuery.Callbacks = function (options) { 3155 3156// Convert options from String-formatted to Object-formatted if needed 3157// (we check in cache first) 3158options = typeof options === "string" ? 3159createOptions(options) : 3160jQuery.extend({}, options); 3161 3162var // Flag to know if list is currently firing 3163firing, 3164 3165// Last fire value for non-forgettable lists 3166memory, 3167 3168// Flag to know if list was already fired 3169fired, 3170 3171// Flag to prevent firing 3172locked, 3173 3174// Actual callback list 3175list = [], 3176 3177// Queue of execution data for repeatable lists 3178queue = [], 3179 3180// Index of currently firing callback (modified by add/remove as needed) 3181firingIndex = -1, 3182 3183// Fire callbacks 3184fire = function () { 3185 3186// Enforce single-firing 3187locked = options.once; 3188 3189// Execute callbacks for all pending executions, 3190// respecting firingIndex overrides and runtime changes 3191fired = firing = true; 3192for (; queue.length; firingIndex = -1) { 3193memory = queue.shift(); 3194while (++firingIndex < list.length) { 3195 3196// Run callback and check for early termination 3197if (list[firingIndex].apply(memory[0], memory[1]) === false && 3198options.stopOnFalse) { 3199 3200// Jump to end and forget the data so .add doesn't re-fire 3201firingIndex = list.length; 3202memory = false; 3203} 3204} 3205} 3206 3207// Forget the data if we're done with it 3208if (!options.memory) { 3209memory = false; 3210} 3211 3212firing = false; 3213 3214// Clean up if we're done firing for good 3215if (locked) { 3216 3217// Keep an empty list if we have data for future add calls 3218if (memory) { 3219list = []; 3220 3221// Otherwise, this object is spent 3222} else { 3223list = ""; 3224} 3225} 3226}, 3227 3228// Actual Callbacks object 3229self = { 3230 3231// Add a callback or a collection of callbacks to the list 3232add: function () { 3233if (list) { 3234 3235// If we have memory from a past run, we should fire after adding 3236if (memory && !firing) { 3237firingIndex = list.length - 1; 3238queue.push(memory); 3239} 3240 3241(function add(args) { 3242jQuery.each(args, function (_, arg) { 3243if (jQuery.isFunction(arg)) { 3244if (!options.unique || !self.has(arg)) { 3245list.push(arg); 3246} 3247} else if (arg && arg.length && jQuery.type(arg) !== "string") { 3248 3249// Inspect recursively 3250add(arg); 3251} 3252}); 3253})(arguments); 3254 3255if (memory && !firing) { 3256fire(); 3257} 3258} 3259return this; 3260}, 3261 3262// Remove a callback from the list 3263remove: function () { 3264jQuery.each(arguments, function (_, arg) { 3265var index; 3266while ((index = jQuery.inArray(arg, list, index)) > -1) { 3267list.splice(index, 1); 3268 3269// Handle firing indexes 3270if (index <= firingIndex) { 3271firingIndex--; 3272} 3273} 3274}); 3275return this; 3276}, 3277 3278// Check if a given callback is in the list. 3279// If no argument is given, return whether or not list has callbacks attached. 3280has: function (fn) { 3281return fn ? 3282jQuery.inArray(fn, list) > -1 : 3283list.length > 0;
vendor: 49,745 bytes, lines 3284-5319
3284}, 3285 3286// Remove all callbacks from the list 3287empty: function () { 3288if (list) { 3289list = []; 3290} 3291return this; 3292}, 3293 3294// Disable .fire and .add 3295// Abort any current/pending executions 3296// Clear all callbacks and values 3297disable: function () { 3298locked = queue = []; 3299list = memory = ""; 3300return this; 3301}, 3302disabled: function () { 3303return !list; 3304}, 3305 3306// Disable .fire 3307// Also disable .add unless we have memory (since it would have no effect) 3308// Abort any pending executions 3309lock: function () { 3310locked = queue = []; 3311if (!memory) { 3312list = memory = ""; 3313} 3314return this; 3315}, 3316locked: function () { 3317return !!locked; 3318}, 3319 3320// Call all callbacks with the given context and arguments 3321fireWith: function (context, args) { 3322if (!locked) { 3323args = args || []; 3324args = [context, args.slice ? args.slice() : args]; 3325queue.push(args); 3326if (!firing) { 3327fire(); 3328} 3329} 3330return this; 3331}, 3332 3333// Call all the callbacks with the given arguments 3334fire: function () { 3335self.fireWith(this, arguments); 3336return this; 3337}, 3338 3339// To know if the callbacks have already been called at least once 3340fired: function () { 3341return !!fired; 3342} 3343}; 3344 3345return self; 3346}; 3347 3348 3349jQuery.extend({ 3350 3351Deferred: function (func) { 3352var tuples = [ 3353 3354// action, add listener, listener list, final state 3355["resolve", "done", jQuery.Callbacks("once memory"), "resolved"], 3356["reject", "fail", jQuery.Callbacks("once memory"), "rejected"], 3357["notify", "progress", jQuery.Callbacks("memory")] 3358], 3359state = "pending", 3360promise = { 3361state: function () { 3362return state; 3363}, 3364always: function () { 3365deferred.done(arguments).fail(arguments); 3366return this; 3367}, 3368then: function ( /* fnDone, fnFail, fnProgress */) { 3369var fns = arguments; 3370return jQuery.Deferred(function (newDefer) { 3371jQuery.each(tuples, function (i, tuple) { 3372var fn = jQuery.isFunction(fns[i]) && fns[i]; 3373 3374// deferred[ done | fail | progress ] for forwarding actions to newDefer 3375deferred[tuple[1]](function () { 3376var returned = fn && fn.apply(this, arguments); 3377if (returned && jQuery.isFunction(returned.promise)) { 3378returned.promise() 3379.progress(newDefer.notify) 3380.done(newDefer.resolve) 3381.fail(newDefer.reject); 3382} else { 3383newDefer[tuple[0] + "With"]( 3384this === promise ? newDefer.promise() : this, 3385fn ? [returned] : arguments 3386); 3387} 3388}); 3389}); 3390fns = null; 3391}).promise(); 3392}, 3393 3394// Get a promise for this deferred 3395// If obj is provided, the promise aspect is added to the object 3396promise: function (obj) { 3397return obj != null ? jQuery.extend(obj, promise) : promise; 3398} 3399}, 3400deferred = {}; 3401 3402// Keep pipe for back-compat 3403promise.pipe = promise.then; 3404 3405// Add list-specific methods 3406jQuery.each(tuples, function (i, tuple) { 3407var list = tuple[2], 3408stateString = tuple[3]; 3409 3410// promise[ done | fail | progress ] = list.add 3411promise[tuple[1]] = list.add; 3412 3413// Handle state 3414if (stateString) { 3415list.add(function () { 3416 3417// state = [ resolved | rejected ] 3418state = stateString; 3419 3420// [ reject_list | resolve_list ].disable; progress_list.lock 3421}, tuples[i ^ 1][2].disable, tuples[2][2].lock); 3422} 3423 3424// deferred[ resolve | reject | notify ] 3425deferred[tuple[0]] = function () { 3426deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments); 3427return this; 3428}; 3429deferred[tuple[0] + "With"] = list.fireWith; 3430}); 3431 3432// Make the deferred a promise 3433promise.promise(deferred); 3434 3435// Call given func if any 3436if (func) { 3437func.call(deferred, deferred); 3438} 3439 3440// All done! 3441return deferred; 3442}, 3443 3444// Deferred helper 3445when: function (subordinate /* , ..., subordinateN */) { 3446var i = 0, 3447resolveValues = slice.call(arguments), 3448length = resolveValues.length, 3449 3450// the count of uncompleted subordinates 3451remaining = length !== 1 || 3452(subordinate && jQuery.isFunction(subordinate.promise)) ? length : 0, 3453 3454// the master Deferred. 3455// If resolveValues consist of only a single Deferred, just use that. 3456deferred = remaining === 1 ? subordinate : jQuery.Deferred(), 3457 3458// Update function for both resolve and progress values 3459updateFunc = function (i, contexts, values) { 3460return function (value) { 3461contexts[i] = this; 3462values[i] = arguments.length > 1 ? slice.call(arguments) : value; 3463if (values === progressValues) { 3464deferred.notifyWith(contexts, values); 3465} else if (!(--remaining)) { 3466deferred.resolveWith(contexts, values); 3467} 3468}; 3469}, 3470 3471progressValues, progressContexts, resolveContexts; 3472 3473// Add listeners to Deferred subordinates; treat others as resolved 3474if (length > 1) { 3475progressValues = new Array(length); 3476progressContexts = new Array(length); 3477resolveContexts = new Array(length); 3478for (; i < length; i++) { 3479if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) { 3480resolveValues[i].promise() 3481.progress(updateFunc(i, progressContexts, progressValues)) 3482.done(updateFunc(i, resolveContexts, resolveValues)) 3483.fail(deferred.reject); 3484} else { 3485--remaining; 3486} 3487} 3488} 3489 3490// If we're not waiting on anything, resolve the master 3491if (!remaining) { 3492deferred.resolveWith(resolveContexts, resolveValues); 3493} 3494 3495return deferred.promise(); 3496} 3497}); 3498 3499 3500// The deferred used on DOM ready 3501var readyList; 3502 3503jQuery.fn.ready = function (fn) { 3504 3505// Add the callback 3506jQuery.ready.promise().done(fn); 3507 3508return this; 3509}; 3510 3511jQuery.extend({ 3512 3513// Is the DOM ready to be used? Set to true once it occurs. 3514isReady: false, 3515 3516// A counter to track how many items to wait for before 3517// the ready event fires. See #6781 3518readyWait: 1, 3519 3520// Hold (or release) the ready event 3521holdReady: function (hold) { 3522if (hold) { 3523jQuery.readyWait++; 3524} else { 3525jQuery.ready(true); 3526} 3527}, 3528 3529// Handle when the DOM is ready 3530ready: function (wait) { 3531 3532// Abort if there are pending holds or we're already ready 3533if (wait === true ? --jQuery.readyWait : jQuery.isReady) { 3534return; 3535} 3536 3537// Remember that the DOM is ready 3538jQuery.isReady = true; 3539 3540// If a normal DOM Ready event fired, decrement, and wait if need be 3541if (wait !== true && --jQuery.readyWait > 0) { 3542return; 3543} 3544 3545// If there are functions bound, to execute 3546readyList.resolveWith(document, [jQuery]); 3547 3548// Trigger any bound ready events 3549if (jQuery.fn.triggerHandler) { 3550jQuery(document).triggerHandler("ready"); 3551jQuery(document).off("ready"); 3552} 3553} 3554}); 3555 3556/** 3557 * The ready event handler and self cleanup method 3558 */ 3559function completed() { 3560document.removeEventListener("DOMContentLoaded", completed); 3561window.removeEventListener("load", completed); 3562jQuery.ready(); 3563} 3564 3565jQuery.ready.promise = function (obj) { 3566if (!readyList) { 3567 3568readyList = jQuery.Deferred(); 3569 3570// Catch cases where $(document).ready() is called 3571// after the browser event has already occurred. 3572// Support: IE9-10 only 3573// Older IE sometimes signals "interactive" too soon 3574if (document.readyState === "complete" || 3575(document.readyState !== "loading" && !document.documentElement.doScroll)) { 3576 3577// Handle it asynchronously to allow scripts the opportunity to delay ready 3578window.setTimeout(jQuery.ready); 3579 3580} else { 3581 3582// Use the handy event callback 3583document.addEventListener("DOMContentLoaded", completed); 3584 3585// A fallback to window.onload, that will always work 3586window.addEventListener("load", completed); 3587} 3588} 3589return readyList.promise(obj); 3590}; 3591 3592// Kick off the DOM ready check even if the user does not 3593jQuery.ready.promise(); 3594 3595 3596 3597 3598// Multifunctional method to get and set values of a collection 3599// The value/s can optionally be executed if it's a function 3600var access = function (elems, fn, key, value, chainable, emptyGet, raw) { 3601var i = 0, 3602len = elems.length, 3603bulk = key == null; 3604 3605// Sets many values 3606if (jQuery.type(key) === "object") { 3607chainable = true; 3608for (i in key) { 3609access(elems, fn, i, key[i], true, emptyGet, raw); 3610} 3611 3612// Sets one value 3613} else if (value !== undefined) { 3614chainable = true; 3615 3616if (!jQuery.isFunction(value)) { 3617raw = true; 3618} 3619 3620if (bulk) { 3621 3622// Bulk operations run against the entire set 3623if (raw) { 3624fn.call(elems, value); 3625fn = null; 3626 3627// ...except when executing function values 3628} else { 3629bulk = fn; 3630fn = function (elem, key, value) { 3631return bulk.call(jQuery(elem), value); 3632}; 3633} 3634} 3635 3636if (fn) { 3637for (; i < len; i++) { 3638fn( 3639elems[i], key, raw ? 3640value : 3641value.call(elems[i], i, fn(elems[i], key)) 3642); 3643} 3644} 3645} 3646 3647return chainable ? 3648elems : 3649 3650// Gets 3651bulk ? 3652fn.call(elems) : 3653len ? fn(elems[0], key) : emptyGet; 3654}; 3655var acceptData = function (owner) { 3656 3657// Accepts only: 3658// - Node 3659// - Node.ELEMENT_NODE 3660// - Node.DOCUMENT_NODE 3661// - Object 3662// - Any 3663/* jshint -W018 */ 3664return owner.nodeType === 1 || owner.nodeType === 9 || !(+owner.nodeType); 3665}; 3666 3667 3668 3669 3670function Data() { 3671this.expando = jQuery.expando + Data.uid++; 3672} 3673 3674Data.uid = 1; 3675 3676Data.prototype = { 3677 3678register: function (owner, initial) { 3679var value = initial || {}; 3680 3681// If it is a node unlikely to be stringify-ed or looped over 3682// use plain assignment 3683if (owner.nodeType) { 3684owner[this.expando] = value; 3685 3686// Otherwise secure it in a non-enumerable, non-writable property 3687// configurability must be true to allow the property to be 3688// deleted with the delete operator 3689} else { 3690Object.defineProperty(owner, this.expando, { 3691value: value, 3692writable: true, 3693configurable: true 3694}); 3695} 3696return owner[this.expando]; 3697}, 3698cache: function (owner) { 3699 3700// We can accept data for non-element nodes in modern browsers, 3701// but we should not, see #8335. 3702// Always return an empty object. 3703if (!acceptData(owner)) { 3704return {}; 3705} 3706 3707// Check if the owner object already has a cache 3708var value = owner[this.expando]; 3709 3710// If not, create one 3711if (!value) { 3712value = {}; 3713 3714// We can accept data for non-element nodes in modern browsers, 3715// but we should not, see #8335. 3716// Always return an empty object. 3717if (acceptData(owner)) { 3718 3719// If it is a node unlikely to be stringify-ed or looped over 3720// use plain assignment 3721if (owner.nodeType) { 3722owner[this.expando] = value; 3723 3724// Otherwise secure it in a non-enumerable property 3725// configurable must be true to allow the property to be 3726// deleted when data is removed 3727} else { 3728Object.defineProperty(owner, this.expando, { 3729value: value, 3730configurable: true 3731}); 3732} 3733} 3734} 3735 3736return value; 3737}, 3738set: function (owner, data, value) { 3739var prop, 3740cache = this.cache(owner); 3741 3742// Handle: [ owner, key, value ] args 3743if (typeof data === "string") { 3744cache[data] = value; 3745 3746// Handle: [ owner, { properties } ] args 3747} else { 3748 3749// Copy the properties one-by-one to the cache object 3750for (prop in data) { 3751cache[prop] = data[prop]; 3752} 3753} 3754return cache; 3755}, 3756get: function (owner, key) { 3757return key === undefined ? 3758this.cache(owner) : 3759owner[this.expando] && owner[this.expando][key]; 3760}, 3761access: function (owner, key, value) { 3762var stored; 3763 3764// In cases where either: 3765// 3766// 1. No key was specified 3767// 2. A string key was specified, but no value provided 3768// 3769// Take the "read" path and allow the get method to determine 3770// which value to return, respectively either: 3771// 3772// 1. The entire cache object 3773// 2. The data stored at the key 3774// 3775if (key === undefined || 3776((key && typeof key === "string") && value === undefined)) { 3777 3778stored = this.get(owner, key); 3779 3780return stored !== undefined ? 3781stored : this.get(owner, jQuery.camelCase(key)); 3782} 3783 3784// When the key is not a string, or both a key and value 3785// are specified, set or extend (existing objects) with either: 3786// 3787// 1. An object of properties 3788// 2. A key and value 3789// 3790this.set(owner, key, value); 3791 3792// Since the "set" path can have two possible entry points 3793// return the expected data based on which path was taken[*] 3794return value !== undefined ? value : key; 3795}, 3796remove: function (owner, key) { 3797var i, name, camel, 3798cache = owner[this.expando]; 3799 3800if (cache === undefined) { 3801return; 3802} 3803 3804if (key === undefined) { 3805this.register(owner); 3806 3807} else { 3808 3809// Support array or space separated string of keys 3810if (jQuery.isArray(key)) { 3811 3812// If "name" is an array of keys... 3813// When data is initially created, via ("key", "val") signature, 3814// keys will be converted to camelCase. 3815// Since there is no way to tell _how_ a key was added, remove 3816// both plain key and camelCase key. #12786 3817// This will only penalize the array argument path. 3818name = key.concat(key.map(jQuery.camelCase)); 3819} else { 3820camel = jQuery.camelCase(key); 3821 3822// Try the string as a key before any manipulation 3823if (key in cache) { 3824name = [key, camel]; 3825} else { 3826 3827// If a key with the spaces exists, use it. 3828// Otherwise, create an array by matching non-whitespace 3829name = camel; 3830name = name in cache ? 3831[name] : (name.match(rnotwhite) || []); 3832} 3833} 3834 3835i = name.length; 3836 3837while (i--) { 3838delete cache[name[i]]; 3839} 3840} 3841 3842// Remove the expando if there's no more data 3843if (key === undefined || jQuery.isEmptyObject(cache)) { 3844 3845// Support: Chrome <= 35-45+ 3846// Webkit & Blink performance suffers when deleting properties 3847// from DOM nodes, so set to undefined instead 3848// https://code.google.com/p/chromium/issues/detail?id=378607 3849if (owner.nodeType) { 3850owner[this.expando] = undefined; 3851} else { 3852delete owner[this.expando]; 3853} 3854} 3855}, 3856hasData: function (owner) { 3857var cache = owner[this.expando]; 3858return cache !== undefined && !jQuery.isEmptyObject(cache); 3859} 3860}; 3861var dataPriv = new Data(); 3862 3863var dataUser = new Data(); 3864 3865 3866 3867//Implementation Summary 3868// 3869//1. Enforce API surface and semantic compatibility with 1.9.x branch 3870//2. Improve the module's maintainability by reducing the storage 3871//paths to a single mechanism. 3872//3. Use the same single mechanism to support "private" and "user" data. 3873//4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 3874//5. Avoid exposing implementation details on user objects (eg. expando properties) 3875//6. Provide a clear path for implementation upgrade to WeakMap in 2014 3876 3877var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 3878rmultiDash = /[A-Z]/g; 3879 3880function dataAttr(elem, key, data) { 3881var name; 3882 3883// If nothing was found internally, try to fetch any 3884// data from the HTML5 data-* attribute 3885if (data === undefined && elem.nodeType === 1) { 3886name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 3887data = elem.getAttribute(name); 3888 3889if (typeof data === "string") { 3890try { 3891data = data === "true" ? true : 3892data === "false" ? false : 3893data === "null" ? null : 3894 3895// Only convert to a number if it doesn't change the string 3896+data + "" === data ? +data : 3897rbrace.test(data) ? jQuery.parseJSON(data) : 3898data; 3899} catch (e) { } 3900 3901// Make sure we set the data so it isn't changed later 3902dataUser.set(elem, key, data); 3903} else { 3904data = undefined; 3905} 3906} 3907return data; 3908} 3909 3910jQuery.extend({ 3911hasData: function (elem) { 3912return dataUser.hasData(elem) || dataPriv.hasData(elem); 3913}, 3914 3915data: function (elem, name, data) { 3916return dataUser.access(elem, name, data); 3917}, 3918 3919removeData: function (elem, name) { 3920dataUser.remove(elem, name); 3921}, 3922 3923// TODO: Now that all calls to _data and _removeData have been replaced 3924// with direct calls to dataPriv methods, these can be deprecated. 3925_data: function (elem, name, data) { 3926return dataPriv.access(elem, name, data); 3927}, 3928 3929_removeData: function (elem, name) { 3930dataPriv.remove(elem, name); 3931} 3932}); 3933 3934jQuery.fn.extend({ 3935data: function (key, value) { 3936var i, name, data, 3937elem = this[0], 3938attrs = elem && elem.attributes; 3939 3940// Gets all values 3941if (key === undefined) { 3942if (this.length) { 3943data = dataUser.get(elem); 3944 3945if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 3946i = attrs.length; 3947while (i--) { 3948 3949// Support: IE11+ 3950// The attrs elements can be null (#14894) 3951if (attrs[i]) { 3952name = attrs[i].name; 3953if (name.indexOf("data-") === 0) { 3954name = jQuery.camelCase(name.slice(5)); 3955dataAttr(elem, name, data[name]); 3956} 3957} 3958} 3959dataPriv.set(elem, "hasDataAttrs", true); 3960} 3961} 3962 3963return data; 3964} 3965 3966// Sets multiple values 3967if (typeof key === "object") { 3968return this.each(function () { 3969dataUser.set(this, key); 3970}); 3971} 3972 3973return access(this, function (value) { 3974var data, camelKey; 3975 3976// The calling jQuery object (element matches) is not empty 3977// (and therefore has an element appears at this[ 0 ]) and the 3978// `value` parameter was not undefined. An empty jQuery object 3979// will result in `undefined` for elem = this[ 0 ] which will 3980// throw an exception if an attempt to read a data cache is made. 3981if (elem && value === undefined) { 3982 3983// Attempt to get data from the cache 3984// with the key as-is 3985data = dataUser.get(elem, key) || 3986 3987// Try to find dashed key if it exists (gh-2779) 3988// This is for 2.2.x only 3989dataUser.get(elem, key.replace(rmultiDash, "-$&").toLowerCase()); 3990 3991if (data !== undefined) { 3992return data; 3993} 3994 3995camelKey = jQuery.camelCase(key); 3996 3997// Attempt to get data from the cache 3998// with the key camelized 3999data = dataUser.get(elem, camelKey); 4000if (data !== undefined) { 4001return data; 4002} 4003 4004// Attempt to "discover" the data in 4005// HTML5 custom data-* attrs 4006data = dataAttr(elem, camelKey, undefined); 4007if (data !== undefined) { 4008return data; 4009} 4010 4011// We tried really hard, but the data doesn't exist. 4012return; 4013} 4014 4015// Set the data... 4016camelKey = jQuery.camelCase(key); 4017this.each(function () { 4018 4019// First, attempt to store a copy or reference of any 4020// data that might've been store with a camelCased key. 4021var data = dataUser.get(this, camelKey); 4022 4023// For HTML5 data-* attribute interop, we have to 4024// store property names with dashes in a camelCase form. 4025// This might not apply to all properties...* 4026dataUser.set(this, camelKey, value); 4027 4028// *... In the case of properties that might _actually_ 4029// have dashes, we need to also store a copy of that 4030// unchanged property. 4031if (key.indexOf("-") > -1 && data !== undefined) { 4032dataUser.set(this, key, value); 4033} 4034}); 4035}, null, value, arguments.length > 1, null, true); 4036}, 4037 4038removeData: function (key) { 4039return this.each(function () { 4040dataUser.remove(this, key); 4041}); 4042} 4043}); 4044 4045 4046jQuery.extend({ 4047queue: function (elem, type, data) { 4048var queue; 4049 4050if (elem) { 4051type = (type || "fx") + "queue"; 4052queue = dataPriv.get(elem, type); 4053 4054// Speed up dequeue by getting out quickly if this is just a lookup 4055if (data) { 4056if (!queue || jQuery.isArray(data)) { 4057queue = dataPriv.access(elem, type, jQuery.makeArray(data)); 4058} else { 4059queue.push(data); 4060} 4061} 4062return queue || []; 4063} 4064}, 4065 4066dequeue: function (elem, type) { 4067type = type || "fx"; 4068 4069var queue = jQuery.queue(elem, type), 4070startLength = queue.length, 4071fn = queue.shift(), 4072hooks = jQuery._queueHooks(elem, type), 4073next = function () { 4074jQuery.dequeue(elem, type); 4075}; 4076 4077// If the fx queue is dequeued, always remove the progress sentinel 4078if (fn === "inprogress") { 4079fn = queue.shift(); 4080startLength--; 4081} 4082 4083if (fn) { 4084 4085// Add a progress sentinel to prevent the fx queue from being 4086// automatically dequeued 4087if (type === "fx") { 4088queue.unshift("inprogress"); 4089} 4090 4091// Clear up the last queue stop function 4092delete hooks.stop; 4093fn.call(elem, next, hooks); 4094} 4095 4096if (!startLength && hooks) { 4097hooks.empty.fire(); 4098} 4099}, 4100 4101// Not public - generate a queueHooks object, or return the current one 4102_queueHooks: function (elem, type) { 4103var key = type + "queueHooks"; 4104return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 4105empty: jQuery.Callbacks("once memory").add(function () { 4106dataPriv.remove(elem, [type + "queue", key]); 4107}) 4108}); 4109} 4110}); 4111 4112jQuery.fn.extend({ 4113queue: function (type, data) { 4114var setter = 2; 4115 4116if (typeof type !== "string") { 4117data = type; 4118type = "fx"; 4119setter--; 4120} 4121 4122if (arguments.length < setter) { 4123return jQuery.queue(this[0], type); 4124} 4125 4126return data === undefined ? 4127this : 4128this.each(function () { 4129var queue = jQuery.queue(this, type, data); 4130 4131// Ensure a hooks for this queue 4132jQuery._queueHooks(this, type); 4133 4134if (type === "fx" && queue[0] !== "inprogress") { 4135jQuery.dequeue(this, type); 4136} 4137}); 4138}, 4139dequeue: function (type) { 4140return this.each(function () { 4141jQuery.dequeue(this, type); 4142}); 4143}, 4144clearQueue: function (type) { 4145return this.queue(type || "fx", []); 4146}, 4147 4148// Get a promise resolved when queues of a certain type 4149// are emptied (fx is the type by default) 4150promise: function (type, obj) { 4151var tmp, 4152count = 1, 4153defer = jQuery.Deferred(), 4154elements = this, 4155i = this.length, 4156resolve = function () { 4157if (!(--count)) { 4158defer.resolveWith(elements, [elements]); 4159} 4160}; 4161 4162if (typeof type !== "string") { 4163obj = type; 4164type = undefined; 4165} 4166type = type || "fx"; 4167 4168while (i--) { 4169tmp = dataPriv.get(elements[i], type + "queueHooks"); 4170if (tmp && tmp.empty) { 4171count++; 4172tmp.empty.add(resolve); 4173} 4174} 4175resolve(); 4176return defer.promise(obj); 4177} 4178}); 4179var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 4180 4181var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 4182 4183 4184var cssExpand = ["Top", "Right", "Bottom", "Left"]; 4185 4186var isHidden = function (elem, el) { 4187 4188// isHidden might be called from jQuery#filter function; 4189// in that case, element will be second argument 4190elem = el || elem; 4191return jQuery.css(elem, "display") === "none" || 4192!jQuery.contains(elem.ownerDocument, elem); 4193}; 4194 4195 4196 4197function adjustCSS(elem, prop, valueParts, tween) { 4198var adjusted, 4199scale = 1, 4200maxIterations = 20, 4201currentValue = tween ? 4202function () { return tween.cur(); } : 4203function () { return jQuery.css(elem, prop, ""); }, 4204initial = currentValue(), 4205unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? "" : "px"), 4206 4207// Starting value computation is required for potential unit mismatches 4208initialInUnit = (jQuery.cssNumber[prop] || unit !== "px" && +initial) && 4209rcssNum.exec(jQuery.css(elem, prop)); 4210 4211if (initialInUnit && initialInUnit[3] !== unit) { 4212 4213// Trust units reported by jQuery.css 4214unit = unit || initialInUnit[3]; 4215 4216// Make sure we update the tween properties later on 4217valueParts = valueParts || []; 4218 4219// Iteratively approximate from a nonzero starting point 4220initialInUnit = +initial || 1; 4221 4222do { 4223 4224// If previous iteration zeroed out, double until we get *something*. 4225// Use string for doubling so we don't accidentally see scale as unchanged below 4226scale = scale || ".5"; 4227 4228// Adjust and apply 4229initialInUnit = initialInUnit / scale; 4230jQuery.style(elem, prop, initialInUnit + unit); 4231 4232// Update scale, tolerating zero or NaN from tween.cur() 4233// Break the loop if scale is unchanged or perfect, or if we've just had enough. 4234} while ( 4235scale !== (scale = currentValue() / initial) && scale !== 1 && --maxIterations 4236); 4237} 4238 4239if (valueParts) { 4240initialInUnit = +initialInUnit || +initial || 0; 4241 4242// Apply relative offset (+=/-=) if specified 4243adjusted = valueParts[1] ? 4244initialInUnit + (valueParts[1] + 1) * valueParts[2] : 4245+valueParts[2]; 4246if (tween) { 4247tween.unit = unit; 4248tween.start = initialInUnit; 4249tween.end = adjusted; 4250} 4251} 4252return adjusted; 4253} 4254var rcheckableType = (/^(?:checkbox|radio)$/i); 4255 4256var rtagName = (/<([\w:-]+)/); 4257 4258var rscriptType = (/^$|\/(?:java|ecma)script/i); 4259 4260 4261 4262// We have to close these tags to support XHTML (#13200) 4263var wrapMap = { 4264 4265// Support: IE9 4266option: [1, "<select multiple='multiple'>", "</select>"], 4267 4268// XHTML parsers do not magically insert elements in the 4269// same way that tag soup parsers do. So we cannot shorten 4270// this by omitting <tbody> or other required elements. 4271thead: [1, "<table>", "</table>"], 4272col: [2, "<table><colgroup>", "</colgroup></table>"], 4273tr: [2, "<table><tbody>", "</tbody></table>"], 4274td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 4275 4276_default: [0, "", ""] 4277}; 4278 4279// Support: IE9 4280wrapMap.optgroup = wrapMap.option; 4281 4282wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 4283wrapMap.th = wrapMap.td; 4284 4285 4286function getAll(context, tag) { 4287 4288// Support: IE9-11+ 4289// Use typeof to avoid zero-argument method invocation on host objects (#15151) 4290var ret = typeof context.getElementsByTagName !== "undefined" ? 4291context.getElementsByTagName(tag || "*") : 4292typeof context.querySelectorAll !== "undefined" ? 4293context.querySelectorAll(tag || "*") : 4294[]; 4295 4296return tag === undefined || tag && jQuery.nodeName(context, tag) ? 4297jQuery.merge([context], ret) : 4298ret; 4299} 4300 4301 4302// Mark scripts as having already been evaluated 4303function setGlobalEval(elems, refElements) { 4304var i = 0, 4305l = elems.length; 4306 4307for (; i < l; i++) { 4308dataPriv.set( 4309elems[i], 4310"globalEval", 4311!refElements || dataPriv.get(refElements[i], "globalEval") 4312); 4313} 4314} 4315 4316 4317var rhtml = /<|&#?\w+;/; 4318 4319function buildFragment(elems, context, scripts, selection, ignored) { 4320var elem, tmp, tag, wrap, contains, j, 4321fragment = context.createDocumentFragment(), 4322nodes = [], 4323i = 0, 4324l = elems.length; 4325 4326for (; i < l; i++) { 4327elem = elems[i]; 4328 4329if (elem || elem === 0) { 4330 4331// Add nodes directly 4332if (jQuery.type(elem) === "object") { 4333 4334// Support: Android<4.1, PhantomJS<2 4335// push.apply(_, arraylike) throws on ancient WebKit 4336jQuery.merge(nodes, elem.nodeType ? [elem] : elem); 4337 4338// Convert non-html into a text node 4339} else if (!rhtml.test(elem)) { 4340nodes.push(context.createTextNode(elem)); 4341 4342// Convert html into DOM nodes 4343} else { 4344tmp = tmp || fragment.appendChild(context.createElement("div")); 4345 4346// Deserialize a standard representation 4347tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 4348wrap = wrapMap[tag] || wrapMap._default; 4349tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; 4350 4351// Descend through wrappers to the right content 4352j = wrap[0]; 4353while (j--) { 4354tmp = tmp.lastChild; 4355} 4356 4357// Support: Android<4.1, PhantomJS<2 4358// push.apply(_, arraylike) throws on ancient WebKit 4359jQuery.merge(nodes, tmp.childNodes); 4360 4361// Remember the top-level container 4362tmp = fragment.firstChild; 4363 4364// Ensure the created nodes are orphaned (#12392) 4365tmp.textContent = ""; 4366} 4367} 4368} 4369 4370// Remove wrapper from fragment 4371fragment.textContent = ""; 4372 4373i = 0; 4374while ((elem = nodes[i++])) { 4375 4376// Skip elements already in the context collection (trac-4087) 4377if (selection && jQuery.inArray(elem, selection) > -1) { 4378if (ignored) { 4379ignored.push(elem); 4380} 4381continue; 4382} 4383 4384contains = jQuery.contains(elem.ownerDocument, elem); 4385 4386// Append to fragment 4387tmp = getAll(fragment.appendChild(elem), "script"); 4388 4389// Preserve script evaluation history 4390if (contains) { 4391setGlobalEval(tmp); 4392} 4393 4394// Capture executables 4395if (scripts) { 4396j = 0; 4397while ((elem = tmp[j++])) { 4398if (rscriptType.test(elem.type || "")) { 4399scripts.push(elem); 4400} 4401} 4402} 4403} 4404 4405return fragment; 4406} 4407 4408 4409(function () { 4410var fragment = document.createDocumentFragment(), 4411div = fragment.appendChild(document.createElement("div")), 4412input = document.createElement("input"); 4413 4414// Support: Android 4.0-4.3, Safari<=5.1 4415// Check state lost if the name is set (#11217) 4416// Support: Windows Web Apps (WWA) 4417// `name` and `type` must use .setAttribute for WWA (#14901) 4418input.setAttribute("type", "radio"); 4419input.setAttribute("checked", "checked"); 4420input.setAttribute("name", "t"); 4421 4422div.appendChild(input); 4423 4424// Support: Safari<=5.1, Android<4.2 4425// Older WebKit doesn't clone checked state correctly in fragments 4426support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; 4427 4428// Support: IE<=11+ 4429// Make sure textarea (and checkbox) defaultValue is properly cloned 4430div.innerHTML = "<textarea>x</textarea>"; 4431support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; 4432})(); 4433 4434 4435var 4436rkeyEvent = /^key/, 4437rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, 4438rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 4439 4440function returnTrue() { 4441return true; 4442} 4443 4444function returnFalse() { 4445return false; 4446} 4447 4448// Support: IE9 4449// See #13393 for more info 4450function safeActiveElement() { 4451try { 4452return document.activeElement; 4453} catch (err) { } 4454} 4455 4456function on(elem, types, selector, data, fn, one) { 4457var origFn, type; 4458 4459// Types can be a map of types/handlers 4460if (typeof types === "object") { 4461 4462// ( types-Object, selector, data ) 4463if (typeof selector !== "string") { 4464 4465// ( types-Object, data ) 4466data = data || selector; 4467selector = undefined; 4468} 4469for (type in types) { 4470on(elem, type, selector, data, types[type], one); 4471} 4472return elem; 4473} 4474 4475if (data == null && fn == null) { 4476 4477// ( types, fn ) 4478fn = selector; 4479data = selector = undefined; 4480} else if (fn == null) { 4481if (typeof selector === "string") { 4482 4483// ( types, selector, fn ) 4484fn = data; 4485data = undefined; 4486} else { 4487 4488// ( types, data, fn ) 4489fn = data; 4490data = selector; 4491selector = undefined; 4492} 4493} 4494if (fn === false) { 4495fn = returnFalse; 4496} else if (!fn) { 4497return elem; 4498} 4499 4500if (one === 1) { 4501origFn = fn; 4502fn = function (event) { 4503 4504// Can use an empty set, since event contains the info 4505jQuery().off(event); 4506return origFn.apply(this, arguments); 4507}; 4508 4509// Use same guid so caller can remove using origFn 4510fn.guid = origFn.guid || (origFn.guid = jQuery.guid++); 4511} 4512return elem.each(function () { 4513jQuery.event.add(this, types, fn, data, selector); 4514}); 4515} 4516 4517/* 4518 * Helper functions for managing events -- not part of the public interface. 4519 * Props to Dean Edwards' addEvent library for many of the ideas. 4520 */ 4521jQuery.event = { 4522 4523global: {}, 4524 4525add: function (elem, types, handler, data, selector) { 4526 4527var handleObjIn, eventHandle, tmp, 4528events, t, handleObj, 4529special, handlers, type, namespaces, origType, 4530elemData = dataPriv.get(elem); 4531 4532// Don't attach events to noData or text/comment nodes (but allow plain objects) 4533if (!elemData) { 4534return; 4535} 4536 4537// Caller can pass in an object of custom data in lieu of the handler 4538if (handler.handler) { 4539handleObjIn = handler; 4540handler = handleObjIn.handler; 4541selector = handleObjIn.selector; 4542} 4543 4544// Make sure that the handler has a unique ID, used to find/remove it later 4545if (!handler.guid) { 4546handler.guid = jQuery.guid++; 4547} 4548 4549// Init the element's event structure and main handler, if this is the first 4550if (!(events = elemData.events)) { 4551events = elemData.events = {}; 4552} 4553if (!(eventHandle = elemData.handle)) { 4554eventHandle = elemData.handle = function (e) { 4555 4556// Discard the second event of a jQuery.event.trigger() and 4557// when an event is called after a page has unloaded 4558return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 4559jQuery.event.dispatch.apply(elem, arguments) : undefined; 4560}; 4561} 4562 4563// Handle multiple events separated by a space 4564types = (types || "").match(rnotwhite) || [""]; 4565t = types.length; 4566while (t--) { 4567tmp = rtypenamespace.exec(types[t]) || []; 4568type = origType = tmp[1]; 4569namespaces = (tmp[2] || "").split(".").sort(); 4570 4571// There *must* be a type, no attaching namespace-only handlers 4572if (!type) { 4573continue; 4574} 4575 4576// If event changes its type, use the special event handlers for the changed type 4577special = jQuery.event.special[type] || {}; 4578 4579// If selector defined, determine special event api type, otherwise given type 4580type = (selector ? special.delegateType : special.bindType) || type; 4581 4582// Update special based on newly reset type 4583special = jQuery.event.special[type] || {}; 4584 4585// handleObj is passed to all event handlers 4586handleObj = jQuery.extend({ 4587type: type, 4588origType: origType, 4589data: data, 4590handler: handler, 4591guid: handler.guid, 4592selector: selector, 4593needsContext: selector && jQuery.expr.match.needsContext.test(selector), 4594namespace: namespaces.join(".") 4595}, handleObjIn); 4596 4597// Init the event handler queue if we're the first 4598if (!(handlers = events[type])) { 4599handlers = events[type] = []; 4600handlers.delegateCount = 0; 4601 4602// Only use addEventListener if the special events handler returns false 4603if (!special.setup || 4604special.setup.call(elem, data, namespaces, eventHandle) === false) { 4605 4606if (elem.addEventListener) { 4607elem.addEventListener(type, eventHandle); 4608} 4609} 4610} 4611 4612if (special.add) { 4613special.add.call(elem, handleObj); 4614 4615if (!handleObj.handler.guid) { 4616handleObj.handler.guid = handler.guid; 4617} 4618} 4619 4620// Add to the element's handler list, delegates in front 4621if (selector) { 4622handlers.splice(handlers.delegateCount++, 0, handleObj); 4623} else { 4624handlers.push(handleObj); 4625} 4626 4627// Keep track of which events have ever been used, for event optimization 4628jQuery.event.global[type] = true; 4629} 4630 4631}, 4632 4633// Detach an event or set of events from an element 4634remove: function (elem, types, handler, selector, mappedTypes) { 4635 4636var j, origCount, tmp, 4637events, t, handleObj, 4638special, handlers, type, namespaces, origType, 4639elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 4640 4641if (!elemData || !(events = elemData.events)) { 4642return; 4643} 4644 4645// Once for each type.namespace in types; type may be omitted 4646types = (types || "").match(rnotwhite) || [""]; 4647t = types.length; 4648while (t--) { 4649tmp = rtypenamespace.exec(types[t]) || []; 4650type = origType = tmp[1]; 4651namespaces = (tmp[2] || "").split(".").sort(); 4652 4653// Unbind all events (on this namespace, if provided) for the element 4654if (!type) { 4655for (type in events) { 4656jQuery.event.remove(elem, type + types[t], handler, selector, true); 4657} 4658continue; 4659} 4660 4661special = jQuery.event.special[type] || {}; 4662type = (selector ? special.delegateType : special.bindType) || type; 4663handlers = events[type] || []; 4664tmp = tmp[2] && 4665new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); 4666 4667// Remove matching events 4668origCount = j = handlers.length; 4669while (j--) { 4670handleObj = handlers[j]; 4671 4672if ((mappedTypes || origType === handleObj.origType) && 4673(!handler || handler.guid === handleObj.guid) && 4674(!tmp || tmp.test(handleObj.namespace)) && 4675(!selector || selector === handleObj.selector || 4676selector === "**" && handleObj.selector)) { 4677handlers.splice(j, 1); 4678 4679if (handleObj.selector) { 4680handlers.delegateCount--; 4681} 4682if (special.remove) { 4683special.remove.call(elem, handleObj); 4684} 4685} 4686} 4687 4688// Remove generic event handler if we removed something and no more handlers exist 4689// (avoids potential for endless recursion during removal of special event handlers) 4690if (origCount && !handlers.length) { 4691if (!special.teardown || 4692special.teardown.call(elem, namespaces, elemData.handle) === false) { 4693 4694jQuery.removeEvent(elem, type, elemData.handle); 4695} 4696 4697delete events[type]; 4698} 4699} 4700 4701// Remove data and the expando if it's no longer used 4702if (jQuery.isEmptyObject(events)) { 4703dataPriv.remove(elem, "handle events"); 4704} 4705}, 4706 4707dispatch: function (event) { 4708 4709// Make a writable jQuery.Event from the native event object 4710event = jQuery.event.fix(event); 4711 4712var i, j, ret, matched, handleObj, 4713handlerQueue = [], 4714args = slice.call(arguments), 4715handlers = (dataPriv.get(this, "events") || {})[event.type] || [], 4716special = jQuery.event.special[event.type] || {}; 4717 4718// Use the fix-ed jQuery.Event rather than the (read-only) native event 4719args[0] = event; 4720event.delegateTarget = this; 4721 4722// Call the preDispatch hook for the mapped type, and let it bail if desired 4723if (special.preDispatch && special.preDispatch.call(this, event) === false) { 4724return; 4725} 4726 4727// Determine handlers 4728handlerQueue = jQuery.event.handlers.call(this, event, handlers); 4729 4730// Run delegates first; they may want to stop propagation beneath us 4731i = 0; 4732while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) { 4733event.currentTarget = matched.elem; 4734 4735j = 0; 4736while ((handleObj = matched.handlers[j++]) && 4737!event.isImmediatePropagationStopped()) { 4738 4739// Triggered event must either 1) have no namespace, or 2) have namespace(s) 4740// a subset or equal to those in the bound event (both can have no namespace). 4741if (!event.rnamespace || event.rnamespace.test(handleObj.namespace)) { 4742 4743event.handleObj = handleObj; 4744event.data = handleObj.data; 4745 4746ret = ((jQuery.event.special[handleObj.origType] || {}).handle || 4747handleObj.handler).apply(matched.elem, args); 4748 4749if (ret !== undefined) { 4750if ((event.result = ret) === false) { 4751event.preventDefault(); 4752event.stopPropagation(); 4753} 4754} 4755} 4756} 4757} 4758 4759// Call the postDispatch hook for the mapped type 4760if (special.postDispatch) { 4761special.postDispatch.call(this, event); 4762} 4763 4764return event.result; 4765}, 4766 4767handlers: function (event, handlers) { 4768var i, matches, sel, handleObj, 4769handlerQueue = [], 4770delegateCount = handlers.delegateCount, 4771cur = event.target; 4772 4773// Support (at least): Chrome, IE9 4774// Find delegate handlers 4775// Black-hole SVG <use> instance trees (#13180) 4776// 4777// Support: Firefox<=42+ 4778// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) 4779if (delegateCount && cur.nodeType && 4780(event.type !== "click" || isNaN(event.button) || event.button < 1)) { 4781 4782for (; cur !== this; cur = cur.parentNode || this) { 4783 4784// Don't check non-elements (#13208) 4785// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) 4786if (cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click")) { 4787matches = []; 4788for (i = 0; i < delegateCount; i++) { 4789handleObj = handlers[i]; 4790 4791// Don't conflict with Object.prototype properties (#13203) 4792sel = handleObj.selector + " "; 4793 4794if (matches[sel] === undefined) { 4795matches[sel] = handleObj.needsContext ? 4796jQuery(sel, this).index(cur) > -1 : 4797jQuery.find(sel, this, null, [cur]).length; 4798} 4799if (matches[sel]) { 4800matches.push(handleObj); 4801} 4802} 4803if (matches.length) { 4804handlerQueue.push({ elem: cur, handlers: matches }); 4805} 4806} 4807} 4808} 4809 4810// Add the remaining (directly-bound) handlers 4811if (delegateCount < handlers.length) { 4812handlerQueue.push({ elem: this, handlers: handlers.slice(delegateCount) }); 4813} 4814 4815return handlerQueue; 4816}, 4817 4818// Includes some event props shared by KeyEvent and MouseEvent 4819props: ("altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " + 4820"metaKey relatedTarget shiftKey target timeStamp view which").split(" "), 4821 4822fixHooks: {}, 4823 4824keyHooks: { 4825props: "char charCode key keyCode".split(" "), 4826filter: function (event, original) { 4827 4828// Add which for key events 4829if (event.which == null) { 4830event.which = original.charCode != null ? original.charCode : original.keyCode; 4831} 4832 4833return event; 4834} 4835}, 4836 4837mouseHooks: { 4838props: ("button buttons clientX clientY offsetX offsetY pageX pageY " + 4839"screenX screenY toElement").split(" "), 4840filter: function (event, original) { 4841var eventDoc, doc, body, 4842button = original.button; 4843 4844// Calculate pageX/Y if missing and clientX/Y available 4845if (event.pageX == null && original.clientX != null) { 4846eventDoc = event.target.ownerDocument || document; 4847doc = eventDoc.documentElement; 4848body = eventDoc.body; 4849 4850event.pageX = original.clientX + 4851(doc && doc.scrollLeft || body && body.scrollLeft || 0) - 4852(doc && doc.clientLeft || body && body.clientLeft || 0); 4853event.pageY = original.clientY + 4854(doc && doc.scrollTop || body && body.scrollTop || 0) - 4855(doc && doc.clientTop || body && body.clientTop || 0); 4856} 4857 4858// Add which for click: 1 === left; 2 === middle; 3 === right 4859// Note: button is not normalized, so don't use it 4860if (!event.which && button !== undefined) { 4861event.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0))); 4862} 4863 4864return event; 4865} 4866}, 4867 4868fix: function (event) { 4869if (event[jQuery.expando]) { 4870return event; 4871} 4872 4873// Create a writable copy of the event object and normalize some properties 4874var i, prop, copy, 4875type = event.type, 4876originalEvent = event, 4877fixHook = this.fixHooks[type]; 4878 4879if (!fixHook) { 4880this.fixHooks[type] = fixHook = 4881rmouseEvent.test(type) ? this.mouseHooks : 4882rkeyEvent.test(type) ? this.keyHooks : 4883{}; 4884} 4885copy = fixHook.props ? this.props.concat(fixHook.props) : this.props; 4886 4887event = new jQuery.Event(originalEvent); 4888 4889i = copy.length; 4890while (i--) { 4891prop = copy[i]; 4892event[prop] = originalEvent[prop]; 4893} 4894 4895// Support: Cordova 2.5 (WebKit) (#13255) 4896// All events should have a target; Cordova deviceready doesn't 4897if (!event.target) { 4898event.target = document; 4899} 4900 4901// Support: Safari 6.0+, Chrome<28 4902// Target should not be a text node (#504, #13143) 4903if (event.target.nodeType === 3) { 4904event.target = event.target.parentNode; 4905} 4906 4907return fixHook.filter ? fixHook.filter(event, originalEvent) : event; 4908}, 4909 4910special: { 4911load: { 4912 4913// Prevent triggered image.load events from bubbling to window.load 4914noBubble: true 4915}, 4916focus: { 4917 4918// Fire native event if possible so blur/focus sequence is correct 4919trigger: function () { 4920if (this !== safeActiveElement() && this.focus) { 4921this.focus(); 4922return false; 4923} 4924}, 4925delegateType: "focusin" 4926}, 4927blur: { 4928trigger: function () { 4929if (this === safeActiveElement() && this.blur) { 4930this.blur(); 4931return false; 4932} 4933}, 4934delegateType: "focusout" 4935}, 4936click: { 4937 4938// For checkbox, fire native event so checked state will be right 4939trigger: function () { 4940if (this.type === "checkbox" && this.click && jQuery.nodeName(this, "input")) { 4941this.click(); 4942return false; 4943} 4944}, 4945 4946// For cross-browser consistency, don't fire native .click() on links 4947_default: function (event) { 4948return jQuery.nodeName(event.target, "a"); 4949} 4950}, 4951 4952beforeunload: { 4953postDispatch: function (event) { 4954 4955// Support: Firefox 20+ 4956// Firefox doesn't alert if the returnValue field is not set. 4957if (event.result !== undefined && event.originalEvent) { 4958event.originalEvent.returnValue = event.result; 4959} 4960} 4961} 4962} 4963}; 4964 4965jQuery.removeEvent = function (elem, type, handle) { 4966 4967// This "if" is needed for plain objects 4968if (elem.removeEventListener) { 4969elem.removeEventListener(type, handle); 4970} 4971}; 4972 4973jQuery.Event = function (src, props) { 4974 4975// Allow instantiation without the 'new' keyword 4976if (!(this instanceof jQuery.Event)) { 4977return new jQuery.Event(src, props); 4978} 4979 4980// Event object 4981if (src && src.type) { 4982this.originalEvent = src; 4983this.type = src.type; 4984 4985// Events bubbling up the document may have been marked as prevented 4986// by a handler lower down the tree; reflect the correct value. 4987this.isDefaultPrevented = src.defaultPrevented || 4988src.defaultPrevented === undefined && 4989 4990// Support: Android<4.0 4991src.returnValue === false ? 4992returnTrue : 4993returnFalse; 4994 4995// Event type 4996} else { 4997this.type = src; 4998} 4999 5000// Put explicitly provided properties onto the event object 5001if (props) { 5002jQuery.extend(this, props); 5003} 5004 5005// Create a timestamp if incoming event doesn't have one 5006this.timeStamp = src && src.timeStamp || jQuery.now(); 5007 5008// Mark it as fixed 5009this[jQuery.expando] = true; 5010}; 5011 5012// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 5013// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 5014jQuery.Event.prototype = { 5015constructor: jQuery.Event, 5016isDefaultPrevented: returnFalse, 5017isPropagationStopped: returnFalse, 5018isImmediatePropagationStopped: returnFalse, 5019isSimulated: false, 5020 5021preventDefault: function () { 5022var e = this.originalEvent; 5023 5024this.isDefaultPrevented = returnTrue; 5025 5026if (e && !this.isSimulated) { 5027e.preventDefault(); 5028} 5029}, 5030stopPropagation: function () { 5031var e = this.originalEvent; 5032 5033this.isPropagationStopped = returnTrue; 5034 5035if (e && !this.isSimulated) { 5036e.stopPropagation(); 5037} 5038}, 5039stopImmediatePropagation: function () { 5040var e = this.originalEvent; 5041 5042this.isImmediatePropagationStopped = returnTrue; 5043 5044if (e && !this.isSimulated) { 5045e.stopImmediatePropagation(); 5046} 5047 5048this.stopPropagation(); 5049} 5050}; 5051 5052// Create mouseenter/leave events using mouseover/out and event-time checks 5053// so that event delegation works in jQuery. 5054// Do the same for pointerenter/pointerleave and pointerover/pointerout 5055// 5056// Support: Safari 7 only 5057// Safari sends mouseenter too often; see: 5058// https://code.google.com/p/chromium/issues/detail?id=470258 5059// for the description of the bug (it existed in older Chrome versions as well). 5060jQuery.each({ 5061mouseenter: "mouseover", 5062mouseleave: "mouseout", 5063pointerenter: "pointerover", 5064pointerleave: "pointerout" 5065}, function (orig, fix) { 5066jQuery.event.special[orig] = { 5067delegateType: fix, 5068bindType: fix, 5069 5070handle: function (event) { 5071var ret, 5072target = this, 5073related = event.relatedTarget, 5074handleObj = event.handleObj; 5075 5076// For mouseenter/leave call the handler if related is outside the target. 5077// NB: No relatedTarget if the mouse left/entered the browser window 5078if (!related || (related !== target && !jQuery.contains(target, related))) { 5079event.type = handleObj.origType; 5080ret = handleObj.handler.apply(this, arguments); 5081event.type = fix; 5082} 5083return ret; 5084} 5085}; 5086}); 5087 5088jQuery.fn.extend({ 5089on: function (types, selector, data, fn) { 5090return on(this, types, selector, data, fn); 5091}, 5092one: function (types, selector, data, fn) { 5093return on(this, types, selector, data, fn, 1); 5094}, 5095off: function (types, selector, fn) { 5096var handleObj, type; 5097if (types && types.preventDefault && types.handleObj) { 5098 5099// ( event ) dispatched jQuery.Event 5100handleObj = types.handleObj; 5101jQuery(types.delegateTarget).off( 5102handleObj.namespace ? 5103handleObj.origType + "." + handleObj.namespace : 5104handleObj.origType, 5105handleObj.selector, 5106handleObj.handler 5107); 5108return this; 5109} 5110if (typeof types === "object") { 5111 5112// ( types-object [, selector] ) 5113for (type in types) { 5114this.off(type, selector, types[type]); 5115} 5116return this; 5117} 5118if (selector === false || typeof selector === "function") { 5119 5120// ( types [, fn] ) 5121fn = selector; 5122selector = undefined; 5123} 5124if (fn === false) { 5125fn = returnFalse; 5126} 5127return this.each(function () { 5128jQuery.event.remove(this, types, fn, selector); 5129}); 5130} 5131}); 5132 5133 5134var 5135rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, 5136 5137// Support: IE 10-11, Edge 10240+ 5138// In IE/Edge using regex groups here causes severe slowdowns. 5139// See https://connect.microsoft.com/IE/feedback/details/1736512/ 5140rnoInnerhtml = /<script|<style|<link/i, 5141 5142// checked="checked" or checked 5143rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 5144rscriptTypeMasked = /^true\/(.*)/, 5145rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 5146 5147// Manipulating tables requires a tbody 5148function manipulationTarget(elem, content) { 5149return jQuery.nodeName(elem, "table") && 5150jQuery.nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr") ? 5151 5152elem.getElementsByTagName("tbody")[0] || 5153elem.appendChild(elem.ownerDocument.createElement("tbody")) : 5154elem; 5155} 5156 5157// Replace/restore the type attribute of script elements for safe DOM manipulation 5158function disableScript(elem) { 5159elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 5160return elem; 5161} 5162function restoreScript(elem) { 5163var match = rscriptTypeMasked.exec(elem.type); 5164 5165if (match) { 5166elem.type = match[1]; 5167} else { 5168elem.removeAttribute("type"); 5169} 5170 5171return elem; 5172} 5173 5174function cloneCopyEvent(src, dest) { 5175var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; 5176 5177if (dest.nodeType !== 1) { 5178return; 5179} 5180 5181// 1. Copy private data: events, handlers, etc. 5182if (dataPriv.hasData(src)) { 5183pdataOld = dataPriv.access(src); 5184pdataCur = dataPriv.set(dest, pdataOld); 5185events = pdataOld.events; 5186 5187if (events) { 5188delete pdataCur.handle; 5189pdataCur.events = {}; 5190 5191for (type in events) { 5192for (i = 0, l = events[type].length; i < l; i++) { 5193jQuery.event.add(dest, type, events[type][i]); 5194} 5195} 5196} 5197} 5198 5199// 2. Copy user data 5200if (dataUser.hasData(src)) { 5201udataOld = dataUser.access(src); 5202udataCur = jQuery.extend({}, udataOld); 5203 5204dataUser.set(dest, udataCur); 5205} 5206} 5207 5208// Fix IE bugs, see support tests 5209function fixInput(src, dest) { 5210var nodeName = dest.nodeName.toLowerCase(); 5211 5212// Fails to persist the checked state of a cloned checkbox or radio button. 5213if (nodeName === "input" && rcheckableType.test(src.type)) { 5214dest.checked = src.checked; 5215 5216// Fails to return the selected option to the default selected state when cloning options 5217} else if (nodeName === "input" || nodeName === "textarea") { 5218dest.defaultValue = src.defaultValue; 5219} 5220} 5221 5222function domManip(collection, args, callback, ignored) { 5223 5224// Flatten any nested arrays 5225args = concat.apply([], args); 5226 5227var fragment, first, scripts, hasScripts, node, doc, 5228i = 0, 5229l = collection.length, 5230iNoClone = l - 1, 5231value = args[0], 5232isFunction = jQuery.isFunction(value); 5233 5234// We can't cloneNode fragments that contain checked, in WebKit 5235if (isFunction || 5236(l > 1 && typeof value === "string" && 5237!support.checkClone && rchecked.test(value))) { 5238return collection.each(function (index) { 5239var self = collection.eq(index); 5240if (isFunction) { 5241args[0] = value.call(this, index, self.html()); 5242} 5243domManip(self, args, callback, ignored); 5244}); 5245} 5246 5247if (l) { 5248fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 5249first = fragment.firstChild; 5250 5251if (fragment.childNodes.length === 1) { 5252fragment = first; 5253} 5254 5255// Require either new content or an interest in ignored elements to invoke the callback 5256if (first || ignored) { 5257scripts = jQuery.map(getAll(fragment, "script"), disableScript); 5258hasScripts = scripts.length; 5259 5260// Use the original fragment for the last item 5261// instead of the first because it can end up 5262// being emptied incorrectly in certain situations (#8070). 5263for (; i < l; i++) { 5264node = fragment; 5265 5266if (i !== iNoClone) { 5267node = jQuery.clone(node, true, true); 5268 5269// Keep references to cloned scripts for later restoration 5270if (hasScripts) { 5271 5272// Support: Android<4.1, PhantomJS<2 5273// push.apply(_, arraylike) throws on ancient WebKit 5274jQuery.merge(scripts, getAll(node, "script")); 5275} 5276} 5277 5278callback.call(collection[i], node, i); 5279} 5280 5281if (hasScripts) { 5282doc = scripts[scripts.length - 1].ownerDocument; 5283 5284// Reenable scripts 5285jQuery.map(scripts, restoreScript); 5286 5287// Evaluate executable scripts on first document insertion 5288for (i = 0; i < hasScripts; i++) { 5289node = scripts[i]; 5290if (rscriptType.test(node.type || "") && 5291!dataPriv.access(node, "globalEval") && 5292jQuery.contains(doc, node)) { 5293 5294if (node.src) { 5295 5296// Optional AJAX dependency, but won't run scripts if not present 5297if (jQuery._evalUrl) { 5298jQuery._evalUrl(node.src); 5299} 5300} else { 5301jQuery.globalEval(node.textContent.replace(rcleanScript, "")); 5302} 5303} 5304} 5305} 5306} 5307} 5308 5309return collection; 5310} 5311 5312function remove(elem, selector, keepData) { 5313var node, 5314nodes = selector ? jQuery.filter(selector, elem) : elem, 5315i = 0; 5316 5317for (; (node = nodes[i]) != null; i++) { 5318if (!keepData && node.nodeType === 1) { 5319jQuery.cleanData(getAll(node));
vendor: 4,454 bytes, lines 5320-5512
5320} 5321 5322if (node.parentNode) { 5323if (keepData && jQuery.contains(node.ownerDocument, node)) { 5324setGlobalEval(getAll(node, "script")); 5325} 5326node.parentNode.removeChild(node); 5327} 5328} 5329 5330return elem; 5331} 5332 5333jQuery.extend({ 5334htmlPrefilter: function (html) { 5335return html.replace(rxhtmlTag, "<$1></$2>"); 5336}, 5337 5338clone: function (elem, dataAndEvents, deepDataAndEvents) { 5339var i, l, srcElements, destElements, 5340clone = elem.cloneNode(true), 5341inPage = jQuery.contains(elem.ownerDocument, elem); 5342 5343// Fix IE cloning issues 5344if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && 5345!jQuery.isXMLDoc(elem)) { 5346 5347// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 5348destElements = getAll(clone); 5349srcElements = getAll(elem); 5350 5351for (i = 0, l = srcElements.length; i < l; i++) { 5352fixInput(srcElements[i], destElements[i]); 5353} 5354} 5355 5356// Copy the events from the original to the clone 5357if (dataAndEvents) { 5358if (deepDataAndEvents) { 5359srcElements = srcElements || getAll(elem); 5360destElements = destElements || getAll(clone); 5361 5362for (i = 0, l = srcElements.length; i < l; i++) { 5363cloneCopyEvent(srcElements[i], destElements[i]); 5364} 5365} else { 5366cloneCopyEvent(elem, clone); 5367} 5368} 5369 5370// Preserve script evaluation history 5371destElements = getAll(clone, "script"); 5372if (destElements.length > 0) { 5373setGlobalEval(destElements, !inPage && getAll(elem, "script")); 5374} 5375 5376// Return the cloned set 5377return clone; 5378}, 5379 5380cleanData: function (elems) { 5381var data, elem, type, 5382special = jQuery.event.special, 5383i = 0; 5384 5385for (; (elem = elems[i]) !== undefined; i++) { 5386if (acceptData(elem)) { 5387if ((data = elem[dataPriv.expando])) { 5388if (data.events) { 5389for (type in data.events) { 5390if (special[type]) { 5391jQuery.event.remove(elem, type); 5392 5393// This is a shortcut to avoid jQuery.event.remove's overhead 5394} else { 5395jQuery.removeEvent(elem, type, data.handle); 5396} 5397} 5398} 5399 5400// Support: Chrome <= 35-45+ 5401// Assign undefined instead of using delete, see Data#remove 5402elem[dataPriv.expando] = undefined; 5403} 5404if (elem[dataUser.expando]) { 5405 5406// Support: Chrome <= 35-45+ 5407// Assign undefined instead of using delete, see Data#remove 5408elem[dataUser.expando] = undefined; 5409} 5410} 5411} 5412} 5413}); 5414 5415jQuery.fn.extend({ 5416 5417// Keep domManip exposed until 3.0 (gh-2225) 5418domManip: domManip, 5419 5420detach: function (selector) { 5421return remove(this, selector, true); 5422}, 5423 5424remove: function (selector) { 5425return remove(this, selector); 5426}, 5427 5428text: function (value) { 5429return access(this, function (value) { 5430return value === undefined ? 5431jQuery.text(this) : 5432this.empty().each(function () { 5433if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 5434this.textContent = value; 5435} 5436}); 5437}, null, value, arguments.length); 5438}, 5439 5440append: function () { 5441return domManip(this, arguments, function (elem) { 5442if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 5443var target = manipulationTarget(this, elem); 5444target.appendChild(elem); 5445} 5446}); 5447}, 5448 5449prepend: function () { 5450return domManip(this, arguments, function (elem) { 5451if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 5452var target = manipulationTarget(this, elem); 5453target.insertBefore(elem, target.firstChild); 5454} 5455}); 5456}, 5457 5458before: function () { 5459return domManip(this, arguments, function (elem) { 5460if (this.parentNode) { 5461this.parentNode.insertBefore(elem, this); 5462} 5463}); 5464}, 5465 5466after: function () { 5467return domManip(this, arguments, function (elem) { 5468if (this.parentNode) { 5469this.parentNode.insertBefore(elem, this.nextSibling); 5470} 5471}); 5472}, 5473 5474empty: function () { 5475var elem, 5476i = 0; 5477 5478for (; (elem = this[i]) != null; i++) { 5479if (elem.nodeType === 1) { 5480 5481// Prevent memory leaks 5482jQuery.cleanData(getAll(elem, false)); 5483 5484// Remove any remaining nodes 5485elem.textContent = ""; 5486} 5487} 5488 5489return this; 5490}, 5491 5492clone: function (dataAndEvents, deepDataAndEvents) { 5493dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 5494deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 5495 5496return this.map(function () { 5497return jQuery.clone(this, dataAndEvents, deepDataAndEvents); 5498}); 5499}, 5500 5501html: function (value) { 5502return access(this, function (value) { 5503var elem = this[0] || {}, 5504i = 0, 5505l = this.length; 5506 5507if (value === undefined && elem.nodeType === 1) { 5508return elem.innerHTML; 5509} 5510 5511// See if we can take a shortcut and just use innerHTML 5512if (typeof value === "string" && !rnoInnerhtml.test(value) &&
vendor: 25,568 bytes, lines 5513-6529
5513!wrapMap[(rtagName.exec(value) || ["", ""])[1].toLowerCase()]) { 5514 5515value = jQuery.htmlPrefilter(value); 5516 5517try { 5518for (; i < l; i++) { 5519elem = this[i] || {}; 5520 5521// Remove element nodes and prevent memory leaks 5522if (elem.nodeType === 1) { 5523jQuery.cleanData(getAll(elem, false)); 5524elem.innerHTML = value; 5525} 5526} 5527 5528elem = 0; 5529 5530// If using innerHTML throws an exception, use the fallback method 5531} catch (e) { } 5532} 5533 5534if (elem) { 5535this.empty().append(value); 5536} 5537}, null, value, arguments.length); 5538}, 5539 5540replaceWith: function () { 5541var ignored = []; 5542 5543// Make the changes, replacing each non-ignored context element with the new content 5544return domManip(this, arguments, function (elem) { 5545var parent = this.parentNode; 5546 5547if (jQuery.inArray(this, ignored) < 0) { 5548jQuery.cleanData(getAll(this)); 5549if (parent) { 5550parent.replaceChild(elem, this); 5551} 5552} 5553 5554// Force callback invocation 5555}, ignored); 5556} 5557}); 5558 5559jQuery.each({ 5560appendTo: "append", 5561prependTo: "prepend", 5562insertBefore: "before", 5563insertAfter: "after", 5564replaceAll: "replaceWith" 5565}, function (name, original) { 5566jQuery.fn[name] = function (selector) { 5567var elems, 5568ret = [], 5569insert = jQuery(selector), 5570last = insert.length - 1, 5571i = 0; 5572 5573for (; i <= last; i++) { 5574elems = i === last ? this : this.clone(true); 5575jQuery(insert[i])[original](elems); 5576 5577// Support: QtWebKit 5578// .get() because push.apply(_, arraylike) throws 5579push.apply(ret, elems.get()); 5580} 5581 5582return this.pushStack(ret); 5583}; 5584}); 5585 5586 5587var iframe, 5588elemdisplay = { 5589 5590// Support: Firefox 5591// We have to pre-define these values for FF (#10227) 5592HTML: "block", 5593BODY: "block" 5594}; 5595 5596/** 5597 * Retrieve the actual display of a element 5598 * @param {String} name nodeName of the element 5599 * @param {Object} doc Document object 5600 */ 5601 5602// Called only from within defaultDisplay 5603function actualDisplay(name, doc) { 5604var elem = jQuery(doc.createElement(name)).appendTo(doc.body), 5605 5606display = jQuery.css(elem[0], "display"); 5607 5608// We don't have any data stored on the element, 5609// so use "detach" method as fast way to get rid of the element 5610elem.detach(); 5611 5612return display; 5613} 5614 5615/** 5616 * Try to determine the default display value of an element 5617 * @param {String} nodeName 5618 */ 5619function defaultDisplay(nodeName) { 5620var doc = document, 5621display = elemdisplay[nodeName]; 5622 5623if (!display) { 5624display = actualDisplay(nodeName, doc); 5625 5626// If the simple way fails, read from inside an iframe 5627if (display === "none" || !display) { 5628 5629// Use the already-created iframe if possible 5630iframe = (iframe || jQuery("<iframe frameborder='0' width='0' height='0'/>")) 5631.appendTo(doc.documentElement); 5632 5633// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse 5634doc = iframe[0].contentDocument; 5635 5636// Support: IE 5637doc.write(); 5638doc.close(); 5639 5640display = actualDisplay(nodeName, doc); 5641iframe.detach(); 5642} 5643 5644// Store the correct default display 5645elemdisplay[nodeName] = display; 5646} 5647 5648return display; 5649} 5650var rmargin = (/^margin/); 5651 5652var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 5653 5654var getStyles = function (elem) { 5655 5656// Support: IE<=11+, Firefox<=30+ (#15098, #14150) 5657// IE throws on elements created in popups 5658// FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 5659var view = elem.ownerDocument.defaultView; 5660 5661if (!view || !view.opener) { 5662view = window; 5663} 5664 5665return view.getComputedStyle(elem); 5666}; 5667 5668var swap = function (elem, options, callback, args) { 5669var ret, name, 5670old = {}; 5671 5672// Remember the old values, and insert the new ones 5673for (name in options) { 5674old[name] = elem.style[name]; 5675elem.style[name] = options[name]; 5676} 5677 5678ret = callback.apply(elem, args || []); 5679 5680// Revert the old values 5681for (name in options) { 5682elem.style[name] = old[name]; 5683} 5684 5685return ret; 5686}; 5687 5688 5689var documentElement = document.documentElement; 5690 5691 5692 5693(function () { 5694var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, 5695container = document.createElement("div"), 5696div = document.createElement("div"); 5697 5698// Finish early in limited (non-browser) environments 5699if (!div.style) { 5700return; 5701} 5702 5703// Support: IE9-11+ 5704// Style of cloned element affects source element cloned (#8908) 5705div.style.backgroundClip = "content-box"; 5706div.cloneNode(true).style.backgroundClip = ""; 5707support.clearCloneStyle = div.style.backgroundClip === "content-box"; 5708 5709container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + 5710"padding:0;margin-top:1px;position:absolute"; 5711container.appendChild(div); 5712 5713// Executing both pixelPosition & boxSizingReliable tests require only one layout 5714// so they're executed at the same time to save the second computation. 5715function computeStyleTests() { 5716div.style.cssText = 5717 5718// Support: Firefox<29, Android 2.3 5719// Vendor-prefix box-sizing 5720"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" + 5721"position:relative;display:block;" + 5722"margin:auto;border:1px;padding:1px;" + 5723"top:1%;width:50%"; 5724div.innerHTML = ""; 5725documentElement.appendChild(container); 5726 5727var divStyle = window.getComputedStyle(div); 5728pixelPositionVal = divStyle.top !== "1%"; 5729reliableMarginLeftVal = divStyle.marginLeft === "2px"; 5730boxSizingReliableVal = divStyle.width === "4px"; 5731 5732// Support: Android 4.0 - 4.3 only 5733// Some styles come back with percentage values, even though they shouldn't 5734div.style.marginRight = "50%"; 5735pixelMarginRightVal = divStyle.marginRight === "4px"; 5736 5737documentElement.removeChild(container); 5738} 5739 5740jQuery.extend(support, { 5741pixelPosition: function () { 5742 5743// This test is executed only once but we still do memoizing 5744// since we can use the boxSizingReliable pre-computing. 5745// No need to check if the test was already performed, though. 5746computeStyleTests(); 5747return pixelPositionVal; 5748}, 5749boxSizingReliable: function () { 5750if (boxSizingReliableVal == null) { 5751computeStyleTests(); 5752} 5753return boxSizingReliableVal; 5754}, 5755pixelMarginRight: function () { 5756 5757// Support: Android 4.0-4.3 5758// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal 5759// since that compresses better and they're computed together anyway. 5760if (boxSizingReliableVal == null) { 5761computeStyleTests(); 5762} 5763return pixelMarginRightVal; 5764}, 5765reliableMarginLeft: function () { 5766 5767// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37 5768if (boxSizingReliableVal == null) { 5769computeStyleTests(); 5770} 5771return reliableMarginLeftVal; 5772}, 5773reliableMarginRight: function () { 5774 5775// Support: Android 2.3 5776// Check if div with explicit width and no margin-right incorrectly 5777// gets computed margin-right based on width of container. (#3333) 5778// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right 5779// This support function is only executed once so no memoizing is needed. 5780var ret, 5781marginDiv = div.appendChild(document.createElement("div")); 5782 5783// Reset CSS: box-sizing; display; margin; border; padding 5784marginDiv.style.cssText = div.style.cssText = 5785 5786// Support: Android 2.3 5787// Vendor-prefix box-sizing 5788"-webkit-box-sizing:content-box;box-sizing:content-box;" + 5789"display:block;margin:0;border:0;padding:0"; 5790marginDiv.style.marginRight = marginDiv.style.width = "0"; 5791div.style.width = "1px"; 5792documentElement.appendChild(container); 5793 5794ret = !parseFloat(window.getComputedStyle(marginDiv).marginRight); 5795 5796documentElement.removeChild(container); 5797div.removeChild(marginDiv); 5798 5799return ret; 5800} 5801}); 5802})(); 5803 5804 5805function curCSS(elem, name, computed) { 5806var width, minWidth, maxWidth, ret, 5807style = elem.style; 5808 5809computed = computed || getStyles(elem); 5810ret = computed ? computed.getPropertyValue(name) || computed[name] : undefined; 5811 5812// Support: Opera 12.1x only 5813// Fall back to style even without computed 5814// computed is undefined for elems on document fragments 5815if ((ret === "" || ret === undefined) && !jQuery.contains(elem.ownerDocument, elem)) { 5816ret = jQuery.style(elem, name); 5817} 5818 5819// Support: IE9 5820// getPropertyValue is only needed for .css('filter') (#12537) 5821if (computed) { 5822 5823// A tribute to the "awesome hack by Dean Edwards" 5824// Android Browser returns percentage for some values, 5825// but width seems to be reliably pixels. 5826// This is against the CSSOM draft spec: 5827// http://dev.w3.org/csswg/cssom/#resolved-values 5828if (!support.pixelMarginRight() && rnumnonpx.test(ret) && rmargin.test(name)) { 5829 5830// Remember the original values 5831width = style.width; 5832minWidth = style.minWidth; 5833maxWidth = style.maxWidth; 5834 5835// Put in the new values to get a computed value out 5836style.minWidth = style.maxWidth = style.width = ret; 5837ret = computed.width; 5838 5839// Revert the changed values 5840style.width = width; 5841style.minWidth = minWidth; 5842style.maxWidth = maxWidth; 5843} 5844} 5845 5846return ret !== undefined ? 5847 5848// Support: IE9-11+ 5849// IE returns zIndex value as an integer. 5850ret + "" : 5851ret; 5852} 5853 5854 5855function addGetHookIf(conditionFn, hookFn) { 5856 5857// Define the hook, we'll check on the first run if it's really needed. 5858return { 5859get: function () { 5860if (conditionFn()) { 5861 5862// Hook not needed (or it's not possible to use it due 5863// to missing dependency), remove it. 5864delete this.get; 5865return; 5866} 5867 5868// Hook needed; redefine it so that the support test is not executed again. 5869return (this.get = hookFn).apply(this, arguments); 5870} 5871}; 5872} 5873 5874 5875var 5876 5877// Swappable if display is none or starts with table 5878// except "table", "table-cell", or "table-caption" 5879// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 5880rdisplayswap = /^(none|table(?!-c[ea]).+)/, 5881 5882cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 5883cssNormalTransform = { 5884letterSpacing: "0", 5885fontWeight: "400" 5886}, 5887 5888cssPrefixes = ["Webkit", "O", "Moz", "ms"], 5889emptyStyle = document.createElement("div").style; 5890 5891// Return a css property mapped to a potentially vendor prefixed property 5892function vendorPropName(name) { 5893 5894// Shortcut for names that are not vendor prefixed 5895if (name in emptyStyle) { 5896return name; 5897} 5898 5899// Check for vendor prefixed names 5900var capName = name[0].toUpperCase() + name.slice(1), 5901i = cssPrefixes.length; 5902 5903while (i--) { 5904name = cssPrefixes[i] + capName; 5905if (name in emptyStyle) { 5906return name; 5907} 5908} 5909} 5910 5911function setPositiveNumber(elem, value, subtract) { 5912 5913// Any relative (+/-) values have already been 5914// normalized at this point 5915var matches = rcssNum.exec(value); 5916return matches ? 5917 5918// Guard against undefined "subtract", e.g., when used as in cssHooks 5919Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") : 5920value; 5921} 5922 5923function augmentWidthOrHeight(elem, name, extra, isBorderBox, styles) { 5924var i = extra === (isBorderBox ? "border" : "content") ? 5925 5926// If we already have the right measurement, avoid augmentation 59274 : 5928 5929// Otherwise initialize for horizontal or vertical properties 5930name === "width" ? 1 : 0, 5931 5932val = 0; 5933 5934for (; i < 4; i += 2) { 5935 5936// Both box models exclude margin, so add it if we want it 5937if (extra === "margin") { 5938val += jQuery.css(elem, extra + cssExpand[i], true, styles); 5939} 5940 5941if (isBorderBox) { 5942 5943// border-box includes padding, so remove it if we want content 5944if (extra === "content") { 5945val -= jQuery.css(elem, "padding" + cssExpand[i], true, styles); 5946} 5947 5948// At this point, extra isn't border nor margin, so remove border 5949if (extra !== "margin") { 5950val -= jQuery.css(elem, "border" + cssExpand[i] + "Width", true, styles); 5951} 5952} else { 5953 5954// At this point, extra isn't content, so add padding 5955val += jQuery.css(elem, "padding" + cssExpand[i], true, styles); 5956 5957// At this point, extra isn't content nor padding, so add border 5958if (extra !== "padding") { 5959val += jQuery.css(elem, "border" + cssExpand[i] + "Width", true, styles); 5960} 5961} 5962} 5963 5964return val; 5965} 5966 5967function getWidthOrHeight(elem, name, extra) { 5968 5969// Start with offset property, which is equivalent to the border-box value 5970var valueIsBorderBox = true, 5971val = name === "width" ? elem.offsetWidth : elem.offsetHeight, 5972styles = getStyles(elem), 5973isBorderBox = jQuery.css(elem, "boxSizing", false, styles) === "border-box"; 5974 5975// Some non-html elements return undefined for offsetWidth, so check for null/undefined 5976// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 5977// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 5978if (val <= 0 || val == null) { 5979 5980// Fall back to computed then uncomputed css if necessary 5981val = curCSS(elem, name, styles); 5982if (val < 0 || val == null) { 5983val = elem.style[name]; 5984} 5985 5986// Computed unit is not pixels. Stop here and return. 5987if (rnumnonpx.test(val)) { 5988return val; 5989} 5990 5991// Check for style in case a browser which returns unreliable values 5992// for getComputedStyle silently falls back to the reliable elem.style 5993valueIsBorderBox = isBorderBox && 5994(support.boxSizingReliable() || val === elem.style[name]); 5995 5996// Normalize "", auto, and prepare for extra 5997val = parseFloat(val) || 0; 5998} 5999 6000// Use the active box-sizing model to add/subtract irrelevant styles 6001return (val + 6002augmentWidthOrHeight( 6003elem, 6004name, 6005extra || (isBorderBox ? "border" : "content"), 6006valueIsBorderBox, 6007styles 6008) 6009) + "px"; 6010} 6011 6012function showHide(elements, show) { 6013var display, elem, hidden, 6014values = [], 6015index = 0, 6016length = elements.length; 6017 6018for (; index < length; index++) { 6019elem = elements[index]; 6020if (!elem.style) { 6021continue; 6022} 6023 6024values[index] = dataPriv.get(elem, "olddisplay"); 6025display = elem.style.display; 6026if (show) { 6027 6028// Reset the inline display of this element to learn if it is 6029// being hidden by cascaded rules or not 6030if (!values[index] && display === "none") { 6031elem.style.display = ""; 6032} 6033 6034// Set elements which have been overridden with display: none 6035// in a stylesheet to whatever the default browser style is 6036// for such an element 6037if (elem.style.display === "" && isHidden(elem)) { 6038values[index] = dataPriv.access( 6039elem, 6040"olddisplay", 6041defaultDisplay(elem.nodeName) 6042); 6043} 6044} else { 6045hidden = isHidden(elem); 6046 6047if (display !== "none" || !hidden) { 6048dataPriv.set( 6049elem, 6050"olddisplay", 6051hidden ? display : jQuery.css(elem, "display") 6052); 6053} 6054} 6055} 6056 6057// Set the display of most of the elements in a second loop 6058// to avoid the constant reflow 6059for (index = 0; index < length; index++) { 6060elem = elements[index]; 6061if (!elem.style) { 6062continue; 6063} 6064if (!show || elem.style.display === "none" || elem.style.display === "") { 6065elem.style.display = show ? values[index] || "" : "none"; 6066} 6067} 6068 6069return elements; 6070} 6071 6072jQuery.extend({ 6073 6074// Add in style property hooks for overriding the default 6075// behavior of getting and setting a style property 6076cssHooks: { 6077opacity: { 6078get: function (elem, computed) { 6079if (computed) { 6080 6081// We should always get a number back from opacity 6082var ret = curCSS(elem, "opacity"); 6083return ret === "" ? "1" : ret; 6084} 6085} 6086} 6087}, 6088 6089// Don't automatically add "px" to these possibly-unitless properties 6090cssNumber: { 6091"animationIterationCount": true, 6092"columnCount": true, 6093"fillOpacity": true, 6094"flexGrow": true, 6095"flexShrink": true, 6096"fontWeight": true, 6097"lineHeight": true, 6098"opacity": true, 6099"order": true, 6100"orphans": true, 6101"widows": true, 6102"zIndex": true, 6103"zoom": true 6104}, 6105 6106// Add in properties whose names you wish to fix before 6107// setting or getting the value 6108cssProps: { 6109"float": "cssFloat" 6110}, 6111 6112// Get and set the style property on a DOM Node 6113style: function (elem, name, value, extra) { 6114 6115// Don't set styles on text and comment nodes 6116if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 6117return; 6118} 6119 6120// Make sure that we're working with the right name 6121var ret, type, hooks, 6122origName = jQuery.camelCase(name), 6123style = elem.style; 6124 6125name = jQuery.cssProps[origName] || 6126(jQuery.cssProps[origName] = vendorPropName(origName) || origName); 6127 6128// Gets hook for the prefixed version, then unprefixed version 6129hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; 6130 6131// Check if we're setting a value 6132if (value !== undefined) { 6133type = typeof value; 6134 6135// Convert "+=" or "-=" to relative numbers (#7345) 6136if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) { 6137value = adjustCSS(elem, name, ret); 6138 6139// Fixes bug #9237 6140type = "number"; 6141} 6142 6143// Make sure that null and NaN values aren't set (#7116) 6144if (value == null || value !== value) { 6145return; 6146} 6147 6148// If a number was passed in, add the unit (except for certain CSS properties) 6149if (type === "number") { 6150value += ret && ret[3] || (jQuery.cssNumber[origName] ? "" : "px"); 6151} 6152 6153// Support: IE9-11+ 6154// background-* props affect original clone's values 6155if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { 6156style[name] = "inherit"; 6157} 6158 6159// If a hook was provided, use that value, otherwise just set the specified value 6160if (!hooks || !("set" in hooks) || 6161(value = hooks.set(elem, value, extra)) !== undefined) { 6162 6163style[name] = value; 6164} 6165 6166} else { 6167 6168// If a hook was provided get the non-computed value from there 6169if (hooks && "get" in hooks && 6170(ret = hooks.get(elem, false, extra)) !== undefined) { 6171 6172return ret; 6173} 6174 6175// Otherwise just get the value from the style object 6176return style[name]; 6177} 6178}, 6179 6180css: function (elem, name, extra, styles) { 6181var val, num, hooks, 6182origName = jQuery.camelCase(name); 6183 6184// Make sure that we're working with the right name 6185name = jQuery.cssProps[origName] || 6186(jQuery.cssProps[origName] = vendorPropName(origName) || origName); 6187 6188// Try prefixed name followed by the unprefixed name 6189hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; 6190 6191// If a hook was provided get the computed value from there 6192if (hooks && "get" in hooks) { 6193val = hooks.get(elem, true, extra); 6194} 6195 6196// Otherwise, if a way to get the computed value exists, use that 6197if (val === undefined) { 6198val = curCSS(elem, name, styles); 6199} 6200 6201// Convert "normal" to computed value 6202if (val === "normal" && name in cssNormalTransform) { 6203val = cssNormalTransform[name]; 6204} 6205 6206// Make numeric if forced or a qualifier was provided and val looks numeric 6207if (extra === "" || extra) { 6208num = parseFloat(val); 6209return extra === true || isFinite(num) ? num || 0 : val; 6210} 6211return val; 6212} 6213}); 6214 6215jQuery.each(["height", "width"], function (i, name) { 6216jQuery.cssHooks[name] = { 6217get: function (elem, computed, extra) { 6218if (computed) { 6219 6220// Certain elements can have dimension info if we invisibly show them 6221// but it must have a current display style that would benefit 6222return rdisplayswap.test(jQuery.css(elem, "display")) && 6223elem.offsetWidth === 0 ? 6224swap(elem, cssShow, function () { 6225return getWidthOrHeight(elem, name, extra); 6226}) : 6227getWidthOrHeight(elem, name, extra); 6228} 6229}, 6230 6231set: function (elem, value, extra) { 6232var matches, 6233styles = extra && getStyles(elem), 6234subtract = extra && augmentWidthOrHeight( 6235elem, 6236name, 6237extra, 6238jQuery.css(elem, "boxSizing", false, styles) === "border-box", 6239styles 6240); 6241 6242// Convert to pixels if value adjustment is needed 6243if (subtract && (matches = rcssNum.exec(value)) && 6244(matches[3] || "px") !== "px") { 6245 6246elem.style[name] = value; 6247value = jQuery.css(elem, name); 6248} 6249 6250return setPositiveNumber(elem, value, subtract); 6251} 6252}; 6253}); 6254 6255jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, 6256function (elem, computed) { 6257if (computed) { 6258return (parseFloat(curCSS(elem, "marginLeft")) || 6259elem.getBoundingClientRect().left - 6260swap(elem, { marginLeft: 0 }, function () { 6261return elem.getBoundingClientRect().left; 6262}) 6263) + "px"; 6264} 6265} 6266); 6267 6268// Support: Android 2.3 6269jQuery.cssHooks.marginRight = addGetHookIf(support.reliableMarginRight, 6270function (elem, computed) { 6271if (computed) { 6272return swap(elem, { "display": "inline-block" }, 6273curCSS, [elem, "marginRight"]); 6274} 6275} 6276); 6277 6278// These hooks are used by animate to expand properties 6279jQuery.each({ 6280margin: "", 6281padding: "", 6282border: "Width" 6283}, function (prefix, suffix) { 6284jQuery.cssHooks[prefix + suffix] = { 6285expand: function (value) { 6286var i = 0, 6287expanded = {}, 6288 6289// Assumes a single number if not a string 6290parts = typeof value === "string" ? value.split(" ") : [value]; 6291 6292for (; i < 4; i++) { 6293expanded[prefix + cssExpand[i] + suffix] = 6294parts[i] || parts[i - 2] || parts[0]; 6295} 6296 6297return expanded; 6298} 6299}; 6300 6301if (!rmargin.test(prefix)) { 6302jQuery.cssHooks[prefix + suffix].set = setPositiveNumber; 6303} 6304}); 6305 6306jQuery.fn.extend({ 6307css: function (name, value) { 6308return access(this, function (elem, name, value) { 6309var styles, len, 6310map = {}, 6311i = 0; 6312 6313if (jQuery.isArray(name)) { 6314styles = getStyles(elem); 6315len = name.length; 6316 6317for (; i < len; i++) { 6318map[name[i]] = jQuery.css(elem, name[i], false, styles); 6319} 6320 6321return map; 6322} 6323 6324return value !== undefined ? 6325jQuery.style(elem, name, value) : 6326jQuery.css(elem, name); 6327}, name, value, arguments.length > 1); 6328}, 6329show: function () { 6330return showHide(this, true); 6331}, 6332hide: function () { 6333return showHide(this); 6334}, 6335toggle: function (state) { 6336if (typeof state === "boolean") { 6337return state ? this.show() : this.hide(); 6338} 6339 6340return this.each(function () { 6341if (isHidden(this)) { 6342jQuery(this).show(); 6343} else { 6344jQuery(this).hide(); 6345} 6346}); 6347} 6348}); 6349 6350 6351function Tween(elem, options, prop, end, easing) { 6352return new Tween.prototype.init(elem, options, prop, end, easing); 6353} 6354jQuery.Tween = Tween; 6355 6356Tween.prototype = { 6357constructor: Tween, 6358init: function (elem, options, prop, end, easing, unit) { 6359this.elem = elem; 6360this.prop = prop; 6361this.easing = easing || jQuery.easing._default; 6362this.options = options; 6363this.start = this.now = this.cur(); 6364this.end = end; 6365this.unit = unit || (jQuery.cssNumber[prop] ? "" : "px"); 6366}, 6367cur: function () { 6368var hooks = Tween.propHooks[this.prop]; 6369 6370return hooks && hooks.get ? 6371hooks.get(this) : 6372Tween.propHooks._default.get(this); 6373}, 6374run: function (percent) { 6375var eased, 6376hooks = Tween.propHooks[this.prop]; 6377 6378if (this.options.duration) { 6379this.pos = eased = jQuery.easing[this.easing]( 6380percent, this.options.duration * percent, 0, 1, this.options.duration 6381); 6382} else { 6383this.pos = eased = percent; 6384} 6385this.now = (this.end - this.start) * eased + this.start; 6386 6387if (this.options.step) { 6388this.options.step.call(this.elem, this.now, this); 6389} 6390 6391if (hooks && hooks.set) { 6392hooks.set(this); 6393} else { 6394Tween.propHooks._default.set(this); 6395} 6396return this; 6397} 6398}; 6399 6400Tween.prototype.init.prototype = Tween.prototype; 6401 6402Tween.propHooks = { 6403_default: { 6404get: function (tween) { 6405var result; 6406 6407// Use a property on the element directly when it is not a DOM element, 6408// or when there is no matching style property that exists. 6409if (tween.elem.nodeType !== 1 || 6410tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 6411return tween.elem[tween.prop]; 6412} 6413 6414// Passing an empty string as a 3rd parameter to .css will automatically 6415// attempt a parseFloat and fallback to a string if the parse fails. 6416// Simple values such as "10px" are parsed to Float; 6417// complex values such as "rotate(1rad)" are returned as-is. 6418result = jQuery.css(tween.elem, tween.prop, ""); 6419 6420// Empty strings, null, undefined and "auto" are converted to 0. 6421return !result || result === "auto" ? 0 : result; 6422}, 6423set: function (tween) { 6424 6425// Use step hook for back compat. 6426// Use cssHook if its there. 6427// Use .style if available and use plain properties where available. 6428if (jQuery.fx.step[tween.prop]) { 6429jQuery.fx.step[tween.prop](tween); 6430} else if (tween.elem.nodeType === 1 && 6431(tween.elem.style[jQuery.cssProps[tween.prop]] != null || 6432jQuery.cssHooks[tween.prop])) { 6433jQuery.style(tween.elem, tween.prop, tween.now + tween.unit); 6434} else { 6435tween.elem[tween.prop] = tween.now; 6436} 6437} 6438} 6439}; 6440 6441// Support: IE9 6442// Panic based approach to setting things on disconnected nodes 6443Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 6444set: function (tween) { 6445if (tween.elem.nodeType && tween.elem.parentNode) { 6446tween.elem[tween.prop] = tween.now; 6447} 6448} 6449}; 6450 6451jQuery.easing = { 6452linear: function (p) { 6453return p; 6454}, 6455swing: function (p) { 6456return 0.5 - Math.cos(p * Math.PI) / 2; 6457}, 6458_default: "swing" 6459}; 6460 6461jQuery.fx = Tween.prototype.init; 6462 6463// Back Compat <1.8 extension point 6464jQuery.fx.step = {}; 6465 6466 6467 6468 6469var 6470fxNow, timerId, 6471rfxtypes = /^(?:toggle|show|hide)$/, 6472rrun = /queueHooks$/; 6473 6474// Animations created synchronously will run synchronously 6475function createFxNow() { 6476window.setTimeout(function () { 6477fxNow = undefined; 6478}); 6479return (fxNow = jQuery.now()); 6480} 6481 6482// Generate parameters to create a standard animation 6483function genFx(type, includeWidth) { 6484var which, 6485i = 0, 6486attrs = { height: type }; 6487 6488// If we include width, step value is 1 to do all cssExpand values, 6489// otherwise step value is 2 to skip over Left and Right 6490includeWidth = includeWidth ? 1 : 0; 6491for (; i < 4 ; i += 2 - includeWidth) { 6492which = cssExpand[i]; 6493attrs["margin" + which] = attrs["padding" + which] = type; 6494} 6495 6496if (includeWidth) { 6497attrs.opacity = attrs.width = type; 6498} 6499 6500return attrs; 6501} 6502 6503function createTween(value, prop, animation) { 6504var tween, 6505collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners["*"]), 6506index = 0, 6507length = collection.length; 6508for (; index < length; index++) { 6509if ((tween = collection[index].call(animation, prop, value))) { 6510 6511// We're done with this property 6512return tween; 6513} 6514} 6515} 6516 6517function defaultPrefilter(elem, props, opts) { 6518/* jshint validthis: true */ 6519var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, 6520anim = this, 6521orig = {}, 6522style = elem.style, 6523hidden = elem.nodeType && isHidden(elem), 6524dataShow = dataPriv.get(elem, "fxshow"); 6525 6526// Handle queue: false promises 6527if (!opts.queue) { 6528hooks = jQuery._queueHooks(elem, "fx"); 6529if (hooks.unqueued == null) {
vendor: 3,223 bytes, lines 6530-6658
6530hooks.unqueued = 0; 6531oldfire = hooks.empty.fire; 6532hooks.empty.fire = function () { 6533if (!hooks.unqueued) { 6534oldfire(); 6535} 6536}; 6537} 6538hooks.unqueued++; 6539 6540anim.always(function () { 6541 6542// Ensure the complete handler is called before this completes 6543anim.always(function () { 6544hooks.unqueued--; 6545if (!jQuery.queue(elem, "fx").length) { 6546hooks.empty.fire(); 6547} 6548}); 6549}); 6550} 6551 6552// Height/width overflow pass 6553if (elem.nodeType === 1 && ("height" in props || "width" in props)) { 6554 6555// Make sure that nothing sneaks out 6556// Record all 3 overflow attributes because IE9-10 do not 6557// change the overflow attribute when overflowX and 6558// overflowY are set to the same value 6559opts.overflow = [style.overflow, style.overflowX, style.overflowY]; 6560 6561// Set display property to inline-block for height/width 6562// animations on inline elements that are having width/height animated 6563display = jQuery.css(elem, "display"); 6564 6565// Test default display if display is currently "none" 6566checkDisplay = display === "none" ? 6567dataPriv.get(elem, "olddisplay") || defaultDisplay(elem.nodeName) : display; 6568 6569if (checkDisplay === "inline" && jQuery.css(elem, "float") === "none") { 6570style.display = "inline-block"; 6571} 6572} 6573 6574if (opts.overflow) { 6575style.overflow = "hidden"; 6576anim.always(function () { 6577style.overflow = opts.overflow[0]; 6578style.overflowX = opts.overflow[1]; 6579style.overflowY = opts.overflow[2]; 6580}); 6581} 6582 6583// show/hide pass 6584for (prop in props) { 6585value = props[prop]; 6586if (rfxtypes.exec(value)) { 6587delete props[prop]; 6588toggle = toggle || value === "toggle"; 6589if (value === (hidden ? "hide" : "show")) { 6590 6591// If there is dataShow left over from a stopped hide or show 6592// and we are going to proceed with show, we should pretend to be hidden 6593if (value === "show" && dataShow && dataShow[prop] !== undefined) { 6594hidden = true; 6595} else { 6596continue; 6597} 6598} 6599orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop); 6600 6601// Any non-fx value stops us from restoring the original display value 6602} else { 6603display = undefined; 6604} 6605} 6606 6607if (!jQuery.isEmptyObject(orig)) { 6608if (dataShow) { 6609if ("hidden" in dataShow) { 6610hidden = dataShow.hidden; 6611} 6612} else { 6613dataShow = dataPriv.access(elem, "fxshow", {}); 6614} 6615 6616// Store state if its toggle - enables .stop().toggle() to "reverse" 6617if (toggle) { 6618dataShow.hidden = !hidden; 6619} 6620if (hidden) { 6621jQuery(elem).show(); 6622} else { 6623anim.done(function () { 6624jQuery(elem).hide(); 6625}); 6626} 6627anim.done(function () { 6628var prop; 6629 6630dataPriv.remove(elem, "fxshow"); 6631for (prop in orig) { 6632jQuery.style(elem, prop, orig[prop]); 6633} 6634}); 6635for (prop in orig) { 6636tween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 6637 6638if (!(prop in dataShow)) { 6639dataShow[prop] = tween.start; 6640if (hidden) { 6641tween.end = tween.start; 6642tween.start = prop === "width" || prop === "height" ? 1 : 0; 6643} 6644} 6645} 6646 6647// If this is a noop like .hide().hide(), restore an overwritten display value 6648} else if ((display === "none" ? defaultDisplay(elem.nodeName) : display) === "inline") { 6649style.display = display; 6650} 6651} 6652 6653function propFilter(props, specialEasing) { 6654var index, name, easing, value, hooks; 6655 6656// camelCase, specialEasing and expand cssHook pass 6657for (index in props) { 6658name = jQuery.camelCase(index);
vendor: 24,186 bytes, lines 6659-7754
6659easing = specialEasing[name]; 6660value = props[index]; 6661if (jQuery.isArray(value)) { 6662easing = value[1]; 6663value = props[index] = value[0]; 6664} 6665 6666if (index !== name) { 6667props[name] = value; 6668delete props[index]; 6669} 6670 6671hooks = jQuery.cssHooks[name]; 6672if (hooks && "expand" in hooks) { 6673value = hooks.expand(value); 6674delete props[name]; 6675 6676// Not quite $.extend, this won't overwrite existing keys. 6677// Reusing 'index' because we have the correct "name" 6678for (index in value) { 6679if (!(index in props)) { 6680props[index] = value[index]; 6681specialEasing[index] = easing; 6682} 6683} 6684} else { 6685specialEasing[name] = easing; 6686} 6687} 6688} 6689 6690function Animation(elem, properties, options) { 6691var result, 6692stopped, 6693index = 0, 6694length = Animation.prefilters.length, 6695deferred = jQuery.Deferred().always(function () { 6696 6697// Don't match elem in the :animated selector 6698delete tick.elem; 6699}), 6700tick = function () { 6701if (stopped) { 6702return false; 6703} 6704var currentTime = fxNow || createFxNow(), 6705remaining = Math.max(0, animation.startTime + animation.duration - currentTime), 6706 6707// Support: Android 2.3 6708// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) 6709temp = remaining / animation.duration || 0, 6710percent = 1 - temp, 6711index = 0, 6712length = animation.tweens.length; 6713 6714for (; index < length ; index++) { 6715animation.tweens[index].run(percent); 6716} 6717 6718deferred.notifyWith(elem, [animation, percent, remaining]); 6719 6720if (percent < 1 && length) { 6721return remaining; 6722} else { 6723deferred.resolveWith(elem, [animation]); 6724return false; 6725} 6726}, 6727animation = deferred.promise({ 6728elem: elem, 6729props: jQuery.extend({}, properties), 6730opts: jQuery.extend(true, { 6731specialEasing: {}, 6732easing: jQuery.easing._default 6733}, options), 6734originalProperties: properties, 6735originalOptions: options, 6736startTime: fxNow || createFxNow(), 6737duration: options.duration, 6738tweens: [], 6739createTween: function (prop, end) { 6740var tween = jQuery.Tween(elem, animation.opts, prop, end, 6741animation.opts.specialEasing[prop] || animation.opts.easing); 6742animation.tweens.push(tween); 6743return tween; 6744}, 6745stop: function (gotoEnd) { 6746var index = 0, 6747 6748// If we are going to the end, we want to run all the tweens 6749// otherwise we skip this part 6750length = gotoEnd ? animation.tweens.length : 0; 6751if (stopped) { 6752return this; 6753} 6754stopped = true; 6755for (; index < length ; index++) { 6756animation.tweens[index].run(1); 6757} 6758 6759// Resolve when we played the last frame; otherwise, reject 6760if (gotoEnd) { 6761deferred.notifyWith(elem, [animation, 1, 0]); 6762deferred.resolveWith(elem, [animation, gotoEnd]); 6763} else { 6764deferred.rejectWith(elem, [animation, gotoEnd]); 6765} 6766return this; 6767} 6768}), 6769props = animation.props; 6770 6771propFilter(props, animation.opts.specialEasing); 6772 6773for (; index < length ; index++) { 6774result = Animation.prefilters[index].call(animation, elem, props, animation.opts); 6775if (result) { 6776if (jQuery.isFunction(result.stop)) { 6777jQuery._queueHooks(animation.elem, animation.opts.queue).stop = 6778jQuery.proxy(result.stop, result); 6779} 6780return result; 6781} 6782} 6783 6784jQuery.map(props, createTween, animation); 6785 6786if (jQuery.isFunction(animation.opts.start)) { 6787animation.opts.start.call(elem, animation); 6788} 6789 6790jQuery.fx.timer( 6791jQuery.extend(tick, { 6792elem: elem, 6793anim: animation, 6794queue: animation.opts.queue 6795}) 6796); 6797 6798// attach callbacks from options 6799return animation.progress(animation.opts.progress) 6800.done(animation.opts.done, animation.opts.complete) 6801.fail(animation.opts.fail) 6802.always(animation.opts.always); 6803} 6804 6805jQuery.Animation = jQuery.extend(Animation, { 6806tweeners: { 6807"*": [function (prop, value) { 6808var tween = this.createTween(prop, value); 6809adjustCSS(tween.elem, prop, rcssNum.exec(value), tween); 6810return tween; 6811}] 6812}, 6813 6814tweener: function (props, callback) { 6815if (jQuery.isFunction(props)) { 6816callback = props; 6817props = ["*"]; 6818} else { 6819props = props.match(rnotwhite); 6820} 6821 6822var prop, 6823index = 0, 6824length = props.length; 6825 6826for (; index < length ; index++) { 6827prop = props[index]; 6828Animation.tweeners[prop] = Animation.tweeners[prop] || []; 6829Animation.tweeners[prop].unshift(callback); 6830} 6831}, 6832 6833prefilters: [defaultPrefilter], 6834 6835prefilter: function (callback, prepend) { 6836if (prepend) { 6837Animation.prefilters.unshift(callback); 6838} else { 6839Animation.prefilters.push(callback); 6840} 6841} 6842}); 6843 6844jQuery.speed = function (speed, easing, fn) { 6845var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : { 6846complete: fn || !fn && easing || 6847jQuery.isFunction(speed) && speed, 6848duration: speed, 6849easing: fn && easing || easing && !jQuery.isFunction(easing) && easing 6850}; 6851 6852opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? 6853opt.duration : opt.duration in jQuery.fx.speeds ? 6854jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default; 6855 6856// Normalize opt.queue - true/undefined/null -> "fx" 6857if (opt.queue == null || opt.queue === true) { 6858opt.queue = "fx"; 6859} 6860 6861// Queueing 6862opt.old = opt.complete; 6863 6864opt.complete = function () { 6865if (jQuery.isFunction(opt.old)) { 6866opt.old.call(this); 6867} 6868 6869if (opt.queue) { 6870jQuery.dequeue(this, opt.queue); 6871} 6872}; 6873 6874return opt; 6875}; 6876 6877jQuery.fn.extend({ 6878fadeTo: function (speed, to, easing, callback) { 6879 6880// Show any hidden elements after setting opacity to 0 6881return this.filter(isHidden).css("opacity", 0).show() 6882 6883// Animate to the value specified 6884.end().animate({ opacity: to }, speed, easing, callback); 6885}, 6886animate: function (prop, speed, easing, callback) { 6887var empty = jQuery.isEmptyObject(prop), 6888optall = jQuery.speed(speed, easing, callback), 6889doAnimation = function () { 6890 6891// Operate on a copy of prop so per-property easing won't be lost 6892var anim = Animation(this, jQuery.extend({}, prop), optall); 6893 6894// Empty animations, or finishing resolves immediately 6895if (empty || dataPriv.get(this, "finish")) { 6896anim.stop(true); 6897} 6898}; 6899doAnimation.finish = doAnimation; 6900 6901return empty || optall.queue === false ? 6902this.each(doAnimation) : 6903this.queue(optall.queue, doAnimation); 6904}, 6905stop: function (type, clearQueue, gotoEnd) { 6906var stopQueue = function (hooks) { 6907var stop = hooks.stop; 6908delete hooks.stop; 6909stop(gotoEnd); 6910}; 6911 6912if (typeof type !== "string") { 6913gotoEnd = clearQueue; 6914clearQueue = type; 6915type = undefined; 6916} 6917if (clearQueue && type !== false) { 6918this.queue(type || "fx", []); 6919} 6920 6921return this.each(function () { 6922var dequeue = true, 6923index = type != null && type + "queueHooks", 6924timers = jQuery.timers, 6925data = dataPriv.get(this); 6926 6927if (index) { 6928if (data[index] && data[index].stop) { 6929stopQueue(data[index]); 6930} 6931} else { 6932for (index in data) { 6933if (data[index] && data[index].stop && rrun.test(index)) { 6934stopQueue(data[index]); 6935} 6936} 6937} 6938 6939for (index = timers.length; index--;) { 6940if (timers[index].elem === this && 6941(type == null || timers[index].queue === type)) { 6942 6943timers[index].anim.stop(gotoEnd); 6944dequeue = false; 6945timers.splice(index, 1); 6946} 6947} 6948 6949// Start the next in the queue if the last step wasn't forced. 6950// Timers currently will call their complete callbacks, which 6951// will dequeue but only if they were gotoEnd. 6952if (dequeue || !gotoEnd) { 6953jQuery.dequeue(this, type); 6954} 6955}); 6956}, 6957finish: function (type) { 6958if (type !== false) { 6959type = type || "fx"; 6960} 6961return this.each(function () { 6962var index, 6963data = dataPriv.get(this), 6964queue = data[type + "queue"], 6965hooks = data[type + "queueHooks"], 6966timers = jQuery.timers, 6967length = queue ? queue.length : 0; 6968 6969// Enable finishing flag on private data 6970data.finish = true; 6971 6972// Empty the queue first 6973jQuery.queue(this, type, []); 6974 6975if (hooks && hooks.stop) { 6976hooks.stop.call(this, true); 6977} 6978 6979// Look for any active animations, and finish them 6980for (index = timers.length; index--;) { 6981if (timers[index].elem === this && timers[index].queue === type) { 6982timers[index].anim.stop(true); 6983timers.splice(index, 1); 6984} 6985} 6986 6987// Look for any animations in the old queue and finish them 6988for (index = 0; index < length; index++) { 6989if (queue[index] && queue[index].finish) { 6990queue[index].finish.call(this); 6991} 6992} 6993 6994// Turn off finishing flag 6995delete data.finish; 6996}); 6997} 6998}); 6999 7000jQuery.each(["toggle", "show", "hide"], function (i, name) { 7001var cssFn = jQuery.fn[name]; 7002jQuery.fn[name] = function (speed, easing, callback) { 7003return speed == null || typeof speed === "boolean" ? 7004cssFn.apply(this, arguments) : 7005this.animate(genFx(name, true), speed, easing, callback); 7006}; 7007}); 7008 7009// Generate shortcuts for custom animations 7010jQuery.each({ 7011slideDown: genFx("show"), 7012slideUp: genFx("hide"), 7013slideToggle: genFx("toggle"), 7014fadeIn: { opacity: "show" }, 7015fadeOut: { opacity: "hide" }, 7016fadeToggle: { opacity: "toggle" } 7017}, function (name, props) { 7018jQuery.fn[name] = function (speed, easing, callback) { 7019return this.animate(props, speed, easing, callback); 7020}; 7021}); 7022 7023jQuery.timers = []; 7024jQuery.fx.tick = function () { 7025var timer, 7026i = 0, 7027timers = jQuery.timers; 7028 7029fxNow = jQuery.now(); 7030 7031for (; i < timers.length; i++) { 7032timer = timers[i]; 7033 7034// Checks the timer has not already been removed 7035if (!timer() && timers[i] === timer) { 7036timers.splice(i--, 1); 7037} 7038} 7039 7040if (!timers.length) { 7041jQuery.fx.stop(); 7042} 7043fxNow = undefined; 7044}; 7045 7046jQuery.fx.timer = function (timer) { 7047jQuery.timers.push(timer); 7048if (timer()) { 7049jQuery.fx.start(); 7050} else { 7051jQuery.timers.pop(); 7052} 7053}; 7054 7055jQuery.fx.interval = 13; 7056jQuery.fx.start = function () { 7057if (!timerId) { 7058timerId = window.setInterval(jQuery.fx.tick, jQuery.fx.interval); 7059} 7060}; 7061 7062jQuery.fx.stop = function () { 7063window.clearInterval(timerId); 7064 7065timerId = null; 7066}; 7067 7068jQuery.fx.speeds = { 7069slow: 600, 7070fast: 200, 7071 7072// Default speed 7073_default: 400 7074}; 7075 7076 7077// Based off of the plugin by Clint Helfers, with permission. 7078// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 7079jQuery.fn.delay = function (time, type) { 7080time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; 7081type = type || "fx"; 7082 7083return this.queue(type, function (next, hooks) { 7084var timeout = window.setTimeout(next, time); 7085hooks.stop = function () { 7086window.clearTimeout(timeout); 7087}; 7088}); 7089}; 7090 7091 7092(function () { 7093var input = document.createElement("input"), 7094select = document.createElement("select"), 7095opt = select.appendChild(document.createElement("option")); 7096 7097input.type = "checkbox"; 7098 7099// Support: iOS<=5.1, Android<=4.2+ 7100// Default value for a checkbox should be "on" 7101support.checkOn = input.value !== ""; 7102 7103// Support: IE<=11+ 7104// Must access selectedIndex to make default options select 7105support.optSelected = opt.selected; 7106 7107// Support: Android<=2.3 7108// Options inside disabled selects are incorrectly marked as disabled 7109select.disabled = true; 7110support.optDisabled = !opt.disabled; 7111 7112// Support: IE<=11+ 7113// An input loses its value after becoming a radio 7114input = document.createElement("input"); 7115input.value = "t"; 7116input.type = "radio"; 7117support.radioValue = input.value === "t"; 7118})(); 7119 7120 7121var boolHook, 7122attrHandle = jQuery.expr.attrHandle; 7123 7124jQuery.fn.extend({ 7125attr: function (name, value) { 7126return access(this, jQuery.attr, name, value, arguments.length > 1); 7127}, 7128 7129removeAttr: function (name) { 7130return this.each(function () { 7131jQuery.removeAttr(this, name); 7132}); 7133} 7134}); 7135 7136jQuery.extend({ 7137attr: function (elem, name, value) { 7138var ret, hooks, 7139nType = elem.nodeType; 7140 7141// Don't get/set attributes on text, comment and attribute nodes 7142if (nType === 3 || nType === 8 || nType === 2) { 7143return; 7144} 7145 7146// Fallback to prop when attributes are not supported 7147if (typeof elem.getAttribute === "undefined") { 7148return jQuery.prop(elem, name, value); 7149} 7150 7151// All attributes are lowercase 7152// Grab necessary hook if one is defined 7153if (nType !== 1 || !jQuery.isXMLDoc(elem)) { 7154name = name.toLowerCase(); 7155hooks = jQuery.attrHooks[name] || 7156(jQuery.expr.match.bool.test(name) ? boolHook : undefined); 7157} 7158 7159if (value !== undefined) { 7160if (value === null) { 7161jQuery.removeAttr(elem, name); 7162return; 7163} 7164 7165if (hooks && "set" in hooks && 7166(ret = hooks.set(elem, value, name)) !== undefined) { 7167return ret; 7168} 7169 7170elem.setAttribute(name, value + ""); 7171return value; 7172} 7173 7174if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 7175return ret; 7176} 7177 7178ret = jQuery.find.attr(elem, name); 7179 7180// Non-existent attributes return null, we normalize to undefined 7181return ret == null ? undefined : ret; 7182}, 7183 7184attrHooks: { 7185type: { 7186set: function (elem, value) { 7187if (!support.radioValue && value === "radio" && 7188jQuery.nodeName(elem, "input")) { 7189var val = elem.value; 7190elem.setAttribute("type", value); 7191if (val) { 7192elem.value = val; 7193} 7194return value; 7195} 7196} 7197} 7198}, 7199 7200removeAttr: function (elem, value) { 7201var name, propName, 7202i = 0, 7203attrNames = value && value.match(rnotwhite); 7204 7205if (attrNames && elem.nodeType === 1) { 7206while ((name = attrNames[i++])) { 7207propName = jQuery.propFix[name] || name; 7208 7209// Boolean attributes get special treatment (#10870) 7210if (jQuery.expr.match.bool.test(name)) { 7211 7212// Set corresponding property to false 7213elem[propName] = false; 7214} 7215 7216elem.removeAttribute(name); 7217} 7218} 7219} 7220}); 7221 7222// Hooks for boolean attributes 7223boolHook = { 7224set: function (elem, value, name) { 7225if (value === false) { 7226 7227// Remove boolean attributes when set to false 7228jQuery.removeAttr(elem, name); 7229} else { 7230elem.setAttribute(name, name); 7231} 7232return name; 7233} 7234}; 7235jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g), function (i, name) { 7236var getter = attrHandle[name] || jQuery.find.attr; 7237 7238attrHandle[name] = function (elem, name, isXML) { 7239var ret, handle; 7240if (!isXML) { 7241 7242// Avoid an infinite loop by temporarily removing this function from the getter 7243handle = attrHandle[name]; 7244attrHandle[name] = ret; 7245ret = getter(elem, name, isXML) != null ? 7246name.toLowerCase() : 7247null; 7248attrHandle[name] = handle; 7249} 7250return ret; 7251}; 7252}); 7253 7254 7255 7256 7257var rfocusable = /^(?:input|select|textarea|button)$/i, 7258rclickable = /^(?:a|area)$/i; 7259 7260jQuery.fn.extend({ 7261prop: function (name, value) { 7262return access(this, jQuery.prop, name, value, arguments.length > 1); 7263}, 7264 7265removeProp: function (name) { 7266return this.each(function () { 7267delete this[jQuery.propFix[name] || name]; 7268}); 7269} 7270}); 7271 7272jQuery.extend({ 7273prop: function (elem, name, value) { 7274var ret, hooks, 7275nType = elem.nodeType; 7276 7277// Don't get/set properties on text, comment and attribute nodes 7278if (nType === 3 || nType === 8 || nType === 2) { 7279return; 7280} 7281 7282if (nType !== 1 || !jQuery.isXMLDoc(elem)) { 7283 7284// Fix name and attach hooks 7285name = jQuery.propFix[name] || name; 7286hooks = jQuery.propHooks[name]; 7287} 7288 7289if (value !== undefined) { 7290if (hooks && "set" in hooks && 7291(ret = hooks.set(elem, value, name)) !== undefined) { 7292return ret; 7293} 7294 7295return (elem[name] = value); 7296} 7297 7298if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 7299return ret; 7300} 7301 7302return elem[name]; 7303}, 7304 7305propHooks: { 7306tabIndex: { 7307get: function (elem) { 7308 7309// elem.tabIndex doesn't always return the 7310// correct value when it hasn't been explicitly set 7311// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 7312// Use proper attribute retrieval(#12072) 7313var tabindex = jQuery.find.attr(elem, "tabindex"); 7314 7315return tabindex ? 7316parseInt(tabindex, 10) : 7317rfocusable.test(elem.nodeName) || 7318rclickable.test(elem.nodeName) && elem.href ? 73190 : 7320-1; 7321} 7322} 7323}, 7324 7325propFix: { 7326"for": "htmlFor", 7327"class": "className" 7328} 7329}); 7330 7331// Support: IE <=11 only 7332// Accessing the selectedIndex property 7333// forces the browser to respect setting selected 7334// on the option 7335// The getter ensures a default option is selected 7336// when in an optgroup 7337if (!support.optSelected) { 7338jQuery.propHooks.selected = { 7339get: function (elem) { 7340var parent = elem.parentNode; 7341if (parent && parent.parentNode) { 7342parent.parentNode.selectedIndex; 7343} 7344return null; 7345}, 7346set: function (elem) { 7347var parent = elem.parentNode; 7348if (parent) { 7349parent.selectedIndex; 7350 7351if (parent.parentNode) { 7352parent.parentNode.selectedIndex; 7353} 7354} 7355} 7356}; 7357} 7358 7359jQuery.each([ 7360"tabIndex", 7361"readOnly", 7362"maxLength", 7363"cellSpacing", 7364"cellPadding", 7365"rowSpan", 7366"colSpan", 7367"useMap", 7368"frameBorder", 7369"contentEditable" 7370], function () { 7371jQuery.propFix[this.toLowerCase()] = this; 7372}); 7373 7374 7375 7376 7377var rclass = /[\t\r\n\f]/g; 7378 7379function getClass(elem) { 7380return elem.getAttribute && elem.getAttribute("class") || ""; 7381} 7382 7383jQuery.fn.extend({ 7384addClass: function (value) { 7385var classes, elem, cur, curValue, clazz, j, finalValue, 7386i = 0; 7387 7388if (jQuery.isFunction(value)) { 7389return this.each(function (j) { 7390jQuery(this).addClass(value.call(this, j, getClass(this))); 7391}); 7392} 7393 7394if (typeof value === "string" && value) { 7395classes = value.match(rnotwhite) || []; 7396 7397while ((elem = this[i++])) { 7398curValue = getClass(elem); 7399cur = elem.nodeType === 1 && 7400(" " + curValue + " ").replace(rclass, " "); 7401 7402if (cur) { 7403j = 0; 7404while ((clazz = classes[j++])) { 7405if (cur.indexOf(" " + clazz + " ") < 0) { 7406cur += clazz + " "; 7407} 7408} 7409 7410// Only assign if different to avoid unneeded rendering. 7411finalValue = jQuery.trim(cur); 7412if (curValue !== finalValue) { 7413elem.setAttribute("class", finalValue); 7414} 7415} 7416} 7417} 7418 7419return this; 7420}, 7421 7422removeClass: function (value) { 7423var classes, elem, cur, curValue, clazz, j, finalValue, 7424i = 0; 7425 7426if (jQuery.isFunction(value)) { 7427return this.each(function (j) { 7428jQuery(this).removeClass(value.call(this, j, getClass(this))); 7429}); 7430} 7431 7432if (!arguments.length) { 7433return this.attr("class", ""); 7434} 7435 7436if (typeof value === "string" && value) { 7437classes = value.match(rnotwhite) || []; 7438 7439while ((elem = this[i++])) { 7440curValue = getClass(elem); 7441 7442// This expression is here for better compressibility (see addClass) 7443cur = elem.nodeType === 1 && 7444(" " + curValue + " ").replace(rclass, " "); 7445 7446if (cur) { 7447j = 0; 7448while ((clazz = classes[j++])) { 7449 7450// Remove *all* instances 7451while (cur.indexOf(" " + clazz + " ") > -1) { 7452cur = cur.replace(" " + clazz + " ", " "); 7453} 7454} 7455 7456// Only assign if different to avoid unneeded rendering. 7457finalValue = jQuery.trim(cur); 7458if (curValue !== finalValue) { 7459elem.setAttribute("class", finalValue); 7460} 7461} 7462} 7463} 7464 7465return this; 7466}, 7467 7468toggleClass: function (value, stateVal) { 7469var type = typeof value; 7470 7471if (typeof stateVal === "boolean" && type === "string") { 7472return stateVal ? this.addClass(value) : this.removeClass(value); 7473} 7474 7475if (jQuery.isFunction(value)) { 7476return this.each(function (i) { 7477jQuery(this).toggleClass( 7478value.call(this, i, getClass(this), stateVal), 7479stateVal 7480); 7481}); 7482} 7483 7484return this.each(function () { 7485var className, i, self, classNames; 7486 7487if (type === "string") { 7488 7489// Toggle individual class names 7490i = 0; 7491self = jQuery(this); 7492classNames = value.match(rnotwhite) || []; 7493 7494while ((className = classNames[i++])) { 7495 7496// Check each className given, space separated list 7497if (self.hasClass(className)) { 7498self.removeClass(className); 7499} else { 7500self.addClass(className); 7501} 7502} 7503 7504// Toggle whole class name 7505} else if (value === undefined || type === "boolean") { 7506className = getClass(this); 7507if (className) { 7508 7509// Store className if set 7510dataPriv.set(this, "__className__", className); 7511} 7512 7513// If the element has a class name or if we're passed `false`, 7514// then remove the whole classname (if there was one, the above saved it). 7515// Otherwise bring back whatever was previously saved (if anything), 7516// falling back to the empty string if nothing was stored. 7517if (this.setAttribute) { 7518this.setAttribute("class", 7519className || value === false ? 7520"" : 7521dataPriv.get(this, "__className__") || "" 7522); 7523} 7524} 7525}); 7526}, 7527 7528hasClass: function (selector) { 7529var className, elem, 7530i = 0; 7531 7532className = " " + selector + " "; 7533while ((elem = this[i++])) { 7534if (elem.nodeType === 1 && 7535(" " + getClass(elem) + " ").replace(rclass, " ") 7536.indexOf(className) > -1 7537) { 7538return true; 7539} 7540} 7541 7542return false; 7543} 7544}); 7545 7546 7547 7548 7549var rreturn = /\r/g, 7550rspaces = /[\x20\t\r\n\f]+/g; 7551 7552jQuery.fn.extend({ 7553val: function (value) { 7554var hooks, ret, isFunction, 7555elem = this[0]; 7556 7557if (!arguments.length) { 7558if (elem) { 7559hooks = jQuery.valHooks[elem.type] || 7560jQuery.valHooks[elem.nodeName.toLowerCase()]; 7561 7562if (hooks && 7563"get" in hooks && 7564(ret = hooks.get(elem, "value")) !== undefined 7565) { 7566return ret; 7567} 7568 7569ret = elem.value; 7570 7571return typeof ret === "string" ? 7572 7573// Handle most common string cases 7574ret.replace(rreturn, "") : 7575 7576// Handle cases where value is null/undef or number 7577ret == null ? "" : ret; 7578} 7579 7580return; 7581} 7582 7583isFunction = jQuery.isFunction(value); 7584 7585return this.each(function (i) { 7586var val; 7587 7588if (this.nodeType !== 1) { 7589return; 7590} 7591 7592if (isFunction) { 7593val = value.call(this, i, jQuery(this).val()); 7594} else { 7595val = value; 7596} 7597 7598// Treat null/undefined as ""; convert numbers to string 7599if (val == null) { 7600val = ""; 7601 7602} else if (typeof val === "number") { 7603val += ""; 7604 7605} else if (jQuery.isArray(val)) { 7606val = jQuery.map(val, function (value) { 7607return value == null ? "" : value + ""; 7608}); 7609} 7610 7611hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; 7612 7613// If set returns undefined, fall back to normal setting 7614if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === undefined) { 7615this.value = val; 7616} 7617}); 7618} 7619}); 7620 7621jQuery.extend({ 7622valHooks: { 7623option: { 7624get: function (elem) { 7625 7626var val = jQuery.find.attr(elem, "value"); 7627return val != null ? 7628val : 7629 7630// Support: IE10-11+ 7631// option.text throws exceptions (#14686, #14858) 7632// Strip and collapse whitespace 7633// https://html.spec.whatwg.org/#strip-and-collapse-whitespace 7634jQuery.trim(jQuery.text(elem)).replace(rspaces, " "); 7635} 7636}, 7637select: { 7638get: function (elem) { 7639var value, option, 7640options = elem.options, 7641index = elem.selectedIndex, 7642one = elem.type === "select-one" || index < 0, 7643values = one ? null : [], 7644max = one ? index + 1 : options.length, 7645i = index < 0 ? 7646max : 7647one ? index : 0; 7648 7649// Loop through all the selected options 7650for (; i < max; i++) { 7651option = options[i]; 7652 7653// IE8-9 doesn't update selected after form reset (#2551) 7654if ((option.selected || i === index) && 7655 7656// Don't return options that are disabled or in a disabled optgroup 7657(support.optDisabled ? 7658!option.disabled : option.getAttribute("disabled") === null) && 7659(!option.parentNode.disabled || 7660!jQuery.nodeName(option.parentNode, "optgroup"))) { 7661 7662// Get the specific value for the option 7663value = jQuery(option).val(); 7664 7665// We don't need an array for one selects 7666if (one) { 7667return value; 7668} 7669 7670// Multi-Selects return an array 7671values.push(value); 7672} 7673} 7674 7675return values; 7676}, 7677 7678set: function (elem, value) { 7679var optionSet, option, 7680options = elem.options, 7681values = jQuery.makeArray(value), 7682i = options.length; 7683 7684while (i--) { 7685option = options[i]; 7686if (option.selected = 7687jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1 7688) { 7689optionSet = true; 7690} 7691} 7692 7693// Force browsers to behave consistently when non-matching value is set 7694if (!optionSet) { 7695elem.selectedIndex = -1; 7696} 7697return values; 7698} 7699} 7700} 7701}); 7702 7703// Radios and checkboxes getter/setter 7704jQuery.each(["radio", "checkbox"], function () { 7705jQuery.valHooks[this] = { 7706set: function (elem, value) { 7707if (jQuery.isArray(value)) { 7708return (elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1); 7709} 7710} 7711}; 7712if (!support.checkOn) { 7713jQuery.valHooks[this].get = function (elem) { 7714return elem.getAttribute("value") === null ? "on" : elem.value; 7715}; 7716} 7717}); 7718 7719 7720 7721 7722// Return jQuery for attributes-only inclusion 7723 7724 7725var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; 7726 7727jQuery.extend(jQuery.event, { 7728 7729trigger: function (event, data, elem, onlyHandlers) { 7730 7731var i, cur, tmp, bubbleType, ontype, handle, special, 7732eventPath = [elem || document], 7733type = hasOwn.call(event, "type") ? event.type : event, 7734namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : []; 7735 7736cur = tmp = elem = elem || document; 7737 7738// Don't do events on text and comment nodes 7739if (elem.nodeType === 3 || elem.nodeType === 8) { 7740return; 7741} 7742 7743// focus/blur morphs to focusin/out; ensure we're not firing them right now 7744if (rfocusMorph.test(type + jQuery.event.triggered)) { 7745return; 7746} 7747 7748if (type.indexOf(".") > -1) { 7749 7750// Namespaced trigger; create a regexp to match event type in handle() 7751namespaces = type.split("."); 7752type = namespaces.shift(); 7753namespaces.sort(); 7754}
vendor: 5,366 bytes, lines 7755-7956
7755ontype = type.indexOf(":") < 0 && "on" + type; 7756 7757// Caller can pass in a jQuery.Event object, Object, or just an event type string 7758event = event[jQuery.expando] ? 7759event : 7760new jQuery.Event(type, typeof event === "object" && event); 7761 7762// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 7763event.isTrigger = onlyHandlers ? 2 : 3; 7764event.namespace = namespaces.join("."); 7765event.rnamespace = event.namespace ? 7766new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : 7767null; 7768 7769// Clean up the event in case it is being reused 7770event.result = undefined; 7771if (!event.target) { 7772event.target = elem; 7773} 7774 7775// Clone any incoming data and prepend the event, creating the handler arg list 7776data = data == null ? 7777[event] : 7778jQuery.makeArray(data, [event]); 7779 7780// Allow special events to draw outside the lines 7781special = jQuery.event.special[type] || {}; 7782if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 7783return; 7784} 7785 7786// Determine event propagation path in advance, per W3C events spec (#9951) 7787// Bubble up to document, then to window; watch for a global ownerDocument var (#9724) 7788if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) { 7789 7790bubbleType = special.delegateType || type; 7791if (!rfocusMorph.test(bubbleType + type)) { 7792cur = cur.parentNode; 7793} 7794for (; cur; cur = cur.parentNode) { 7795eventPath.push(cur); 7796tmp = cur; 7797} 7798 7799// Only add window if we got to document (e.g., not plain obj or detached DOM) 7800if (tmp === (elem.ownerDocument || document)) { 7801eventPath.push(tmp.defaultView || tmp.parentWindow || window); 7802} 7803} 7804 7805// Fire handlers on the event path 7806i = 0; 7807while ((cur = eventPath[i++]) && !event.isPropagationStopped()) { 7808 7809event.type = i > 1 ? 7810bubbleType : 7811special.bindType || type; 7812 7813// jQuery handler 7814handle = (dataPriv.get(cur, "events") || {})[event.type] && 7815dataPriv.get(cur, "handle"); 7816if (handle) { 7817handle.apply(cur, data); 7818} 7819 7820// Native handler 7821handle = ontype && cur[ontype]; 7822if (handle && handle.apply && acceptData(cur)) { 7823event.result = handle.apply(cur, data); 7824if (event.result === false) { 7825event.preventDefault(); 7826} 7827} 7828} 7829event.type = type; 7830 7831// If nobody prevented the default action, do it now 7832if (!onlyHandlers && !event.isDefaultPrevented()) { 7833 7834if ((!special._default || 7835special._default.apply(eventPath.pop(), data) === false) && 7836acceptData(elem)) { 7837 7838// Call a native DOM method on the target with the same name name as the event. 7839// Don't do default actions on window, that's where global variables be (#6170) 7840if (ontype && jQuery.isFunction(elem[type]) && !jQuery.isWindow(elem)) { 7841 7842// Don't re-trigger an onFOO event when we call its FOO() method 7843tmp = elem[ontype]; 7844 7845if (tmp) { 7846elem[ontype] = null; 7847} 7848 7849// Prevent re-triggering of the same event, since we already bubbled it above 7850jQuery.event.triggered = type; 7851elem[type](); 7852jQuery.event.triggered = undefined; 7853 7854if (tmp) { 7855elem[ontype] = tmp; 7856} 7857} 7858} 7859} 7860 7861return event.result; 7862}, 7863 7864// Piggyback on a donor event to simulate a different one 7865// Used only for `focus(in | out)` events 7866simulate: function (type, elem, event) { 7867var e = jQuery.extend( 7868new jQuery.Event(), 7869event, 7870{ 7871type: type, 7872isSimulated: true 7873} 7874); 7875 7876jQuery.event.trigger(e, null, elem); 7877} 7878 7879}); 7880 7881jQuery.fn.extend({ 7882 7883trigger: function (type, data) { 7884return this.each(function () { 7885jQuery.event.trigger(type, data, this); 7886}); 7887}, 7888triggerHandler: function (type, data) { 7889var elem = this[0]; 7890if (elem) { 7891return jQuery.event.trigger(type, data, elem, true); 7892} 7893} 7894}); 7895 7896 7897jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick " + 7898"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 7899"change select submit keydown keypress keyup error contextmenu").split(" "), 7900function (i, name) { 7901 7902// Handle event binding 7903jQuery.fn[name] = function (data, fn) { 7904return arguments.length > 0 ? 7905this.on(name, null, data, fn) : 7906this.trigger(name); 7907}; 7908}); 7909 7910jQuery.fn.extend({ 7911hover: function (fnOver, fnOut) { 7912return this.mouseenter(fnOver).mouseleave(fnOut || fnOver); 7913} 7914}); 7915 7916 7917 7918 7919support.focusin = "onfocusin" in window; 7920 7921 7922// Support: Firefox 7923// Firefox doesn't have focus(in | out) events 7924// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 7925// 7926// Support: Chrome, Safari 7927// focus(in | out) events fire after focus & blur events, 7928// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 7929// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857 7930if (!support.focusin) { 7931jQuery.each({ focus: "focusin", blur: "focusout" }, function (orig, fix) { 7932 7933// Attach a single capturing handler on the document while someone wants focusin/focusout 7934var handler = function (event) { 7935jQuery.event.simulate(fix, event.target, jQuery.event.fix(event)); 7936}; 7937 7938jQuery.event.special[fix] = { 7939setup: function () { 7940var doc = this.ownerDocument || this, 7941attaches = dataPriv.access(doc, fix); 7942 7943if (!attaches) { 7944doc.addEventListener(orig, handler, true); 7945} 7946dataPriv.access(doc, fix, (attaches || 0) + 1); 7947}, 7948teardown: function () { 7949var doc = this.ownerDocument || this, 7950attaches = dataPriv.access(doc, fix) - 1; 7951 7952if (!attaches) { 7953doc.removeEventListener(orig, handler, true); 7954dataPriv.remove(doc, fix); 7955 7956} else {
vendor: 4,791 bytes, lines 7957-8146
7957dataPriv.access(doc, fix, attaches); 7958} 7959} 7960}; 7961}); 7962} 7963var location = window.location; 7964 7965var nonce = jQuery.now(); 7966 7967var rquery = (/\?/); 7968 7969 7970 7971// Support: Android 2.3 7972// Workaround failure to string-cast null input 7973jQuery.parseJSON = function (data) { 7974return JSON.parse(data + ""); 7975}; 7976 7977 7978// Cross-browser xml parsing 7979jQuery.parseXML = function (data) { 7980var xml; 7981if (!data || typeof data !== "string") { 7982return null; 7983} 7984 7985// Support: IE9 7986try { 7987xml = (new window.DOMParser()).parseFromString(data, "text/xml"); 7988} catch (e) { 7989xml = undefined; 7990} 7991 7992if (!xml || xml.getElementsByTagName("parsererror").length) { 7993jQuery.error("Invalid XML: " + data); 7994} 7995return xml; 7996}; 7997 7998 7999var 8000rhash = /#.*$/, 8001rts = /([?&])_=[^&]*/, 8002rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 8003 8004// #7653, #8125, #8152: local protocol detection 8005rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 8006rnoContent = /^(?:GET|HEAD)$/, 8007rprotocol = /^\/\//, 8008 8009/* Prefilters 8010 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 8011 * 2) These are called: 8012 * - BEFORE asking for a transport 8013 * - AFTER param serialization (s.data is a string if s.processData is true) 8014 * 3) key is the dataType 8015 * 4) the catchall symbol "*" can be used 8016 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 8017 */ 8018prefilters = {}, 8019 8020/* Transports bindings 8021 * 1) key is the dataType 8022 * 2) the catchall symbol "*" can be used 8023 * 3) selection will start with transport dataType and THEN go to "*" if needed 8024 */ 8025transports = {}, 8026 8027// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression 8028allTypes = "*/".concat("*"), 8029 8030// Anchor tag for parsing the document origin 8031originAnchor = document.createElement("a"); 8032originAnchor.href = location.href; 8033 8034// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 8035function addToPrefiltersOrTransports(structure) { 8036 8037// dataTypeExpression is optional and defaults to "*" 8038return function (dataTypeExpression, func) { 8039 8040if (typeof dataTypeExpression !== "string") { 8041func = dataTypeExpression; 8042dataTypeExpression = "*"; 8043} 8044 8045var dataType, 8046i = 0, 8047dataTypes = dataTypeExpression.toLowerCase().match(rnotwhite) || []; 8048 8049if (jQuery.isFunction(func)) { 8050 8051// For each dataType in the dataTypeExpression 8052while ((dataType = dataTypes[i++])) { 8053 8054// Prepend if requested 8055if (dataType[0] === "+") { 8056dataType = dataType.slice(1) || "*"; 8057(structure[dataType] = structure[dataType] || []).unshift(func); 8058 8059// Otherwise append 8060} else { 8061(structure[dataType] = structure[dataType] || []).push(func); 8062} 8063} 8064} 8065}; 8066} 8067 8068// Base inspection function for prefilters and transports 8069function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 8070 8071var inspected = {}, 8072seekingTransport = (structure === transports); 8073 8074function inspect(dataType) { 8075var selected; 8076inspected[dataType] = true; 8077jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) { 8078var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 8079if (typeof dataTypeOrTransport === "string" && 8080!seekingTransport && !inspected[dataTypeOrTransport]) { 8081 8082options.dataTypes.unshift(dataTypeOrTransport); 8083inspect(dataTypeOrTransport); 8084return false; 8085} else if (seekingTransport) { 8086return !(selected = dataTypeOrTransport); 8087} 8088}); 8089return selected; 8090} 8091 8092return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 8093} 8094 8095// A special extend for ajax options 8096// that takes "flat" options (not to be deep extended) 8097// Fixes #9887 8098function ajaxExtend(target, src) { 8099var key, deep, 8100flatOptions = jQuery.ajaxSettings.flatOptions || {}; 8101 8102for (key in src) { 8103if (src[key] !== undefined) { 8104(flatOptions[key] ? target : (deep || (deep = {})))[key] = src[key]; 8105} 8106} 8107if (deep) { 8108jQuery.extend(true, target, deep); 8109} 8110 8111return target; 8112} 8113 8114/* Handles responses to an ajax request: 8115 * - finds the right dataType (mediates between content-type and expected dataType) 8116 * - returns the corresponding response 8117 */ 8118function ajaxHandleResponses(s, jqXHR, responses) { 8119 8120var ct, type, finalDataType, firstDataType, 8121contents = s.contents, 8122dataTypes = s.dataTypes; 8123 8124// Remove auto dataType and get content-type in the process 8125while (dataTypes[0] === "*") { 8126dataTypes.shift(); 8127if (ct === undefined) { 8128ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); 8129} 8130} 8131 8132// Check if we're dealing with a known content-type 8133if (ct) { 8134for (type in contents) { 8135if (contents[type] && contents[type].test(ct)) { 8136dataTypes.unshift(type); 8137break; 8138} 8139} 8140} 8141 8142// Check to see if we have a response for the expected dataType 8143if (dataTypes[0] in responses) { 8144finalDataType = dataTypes[0]; 8145} else { 8146
vendor: 4,940 bytes, lines 8147-8376
8147// Try convertible dataTypes 8148for (type in responses) { 8149if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { 8150finalDataType = type; 8151break; 8152} 8153if (!firstDataType) { 8154firstDataType = type; 8155} 8156} 8157 8158// Or just use first one 8159finalDataType = finalDataType || firstDataType; 8160} 8161 8162// If we found a dataType 8163// We add the dataType to the list if needed 8164// and return the corresponding response 8165if (finalDataType) { 8166if (finalDataType !== dataTypes[0]) { 8167dataTypes.unshift(finalDataType); 8168} 8169return responses[finalDataType]; 8170} 8171} 8172 8173/* Chain conversions given the request and the original response 8174 * Also sets the responseXXX fields on the jqXHR instance 8175 */ 8176function ajaxConvert(s, response, jqXHR, isSuccess) { 8177var conv2, current, conv, tmp, prev, 8178converters = {}, 8179 8180// Work with a copy of dataTypes in case we need to modify it for conversion 8181dataTypes = s.dataTypes.slice(); 8182 8183// Create converters map with lowercased keys 8184if (dataTypes[1]) { 8185for (conv in s.converters) { 8186converters[conv.toLowerCase()] = s.converters[conv]; 8187} 8188} 8189 8190current = dataTypes.shift(); 8191 8192// Convert to each sequential dataType 8193while (current) { 8194 8195if (s.responseFields[current]) { 8196jqXHR[s.responseFields[current]] = response; 8197} 8198 8199// Apply the dataFilter if provided 8200if (!prev && isSuccess && s.dataFilter) { 8201response = s.dataFilter(response, s.dataType); 8202} 8203 8204prev = current; 8205current = dataTypes.shift(); 8206 8207if (current) { 8208 8209// There's only work to do if current dataType is non-auto 8210if (current === "*") { 8211 8212current = prev; 8213 8214// Convert response if prev dataType is non-auto and differs from current 8215} else if (prev !== "*" && prev !== current) { 8216 8217// Seek a direct converter 8218conv = converters[prev + " " + current] || converters["* " + current]; 8219 8220// If none found, seek a pair 8221if (!conv) { 8222for (conv2 in converters) { 8223 8224// If conv2 outputs current 8225tmp = conv2.split(" "); 8226if (tmp[1] === current) { 8227 8228// If prev can be converted to accepted input 8229conv = converters[prev + " " + tmp[0]] || 8230converters["* " + tmp[0]]; 8231if (conv) { 8232 8233// Condense equivalence converters 8234if (conv === true) { 8235conv = converters[conv2]; 8236 8237// Otherwise, insert the intermediate dataType 8238} else if (converters[conv2] !== true) { 8239current = tmp[0]; 8240dataTypes.unshift(tmp[1]); 8241} 8242break; 8243} 8244} 8245} 8246} 8247 8248// Apply converter (if not an equivalence) 8249if (conv !== true) { 8250 8251// Unless errors are allowed to bubble, catch and return them 8252if (conv && s.throws) { 8253response = conv(response); 8254} else { 8255try { 8256response = conv(response); 8257} catch (e) { 8258return { 8259state: "parsererror", 8260error: conv ? e : "No conversion from " + prev + " to " + current 8261}; 8262} 8263} 8264} 8265} 8266} 8267} 8268 8269return { state: "success", data: response }; 8270} 8271 8272jQuery.extend({ 8273 8274// Counter for holding the number of active queries 8275active: 0, 8276 8277// Last-Modified header cache for next request 8278lastModified: {}, 8279etag: {}, 8280 8281ajaxSettings: { 8282url: location.href, 8283type: "GET", 8284isLocal: rlocalProtocol.test(location.protocol), 8285global: true, 8286processData: true, 8287async: true, 8288contentType: "application/x-www-form-urlencoded; charset=UTF-8", 8289/* 8290timeout: 0, 8291data: null, 8292dataType: null, 8293username: null, 8294password: null, 8295cache: null, 8296throws: false, 8297traditional: false, 8298headers: {}, 8299*/ 8300 8301accepts: { 8302"*": allTypes, 8303text: "text/plain", 8304html: "text/html", 8305xml: "application/xml, text/xml", 8306json: "application/json, text/javascript" 8307}, 8308 8309contents: { 8310xml: /\bxml\b/, 8311html: /\bhtml/, 8312json: /\bjson\b/ 8313}, 8314 8315responseFields: { 8316xml: "responseXML", 8317text: "responseText", 8318json: "responseJSON" 8319}, 8320 8321// Data converters 8322// Keys separate source (or catchall "*") and destination types with a single space 8323converters: { 8324 8325// Convert anything to text 8326"* text": String, 8327 8328// Text to html (true = no transformation) 8329"text html": true, 8330 8331// Evaluate text as a json expression 8332"text json": jQuery.parseJSON, 8333 8334// Parse text as xml 8335"text xml": jQuery.parseXML 8336}, 8337 8338// For options that shouldn't be deep extended: 8339// you can add your own custom options here if 8340// and when you create one that shouldn't be 8341// deep extended (see ajaxExtend) 8342flatOptions: { 8343url: true, 8344context: true 8345} 8346}, 8347 8348// Creates a full fledged settings object into target 8349// with both ajaxSettings and settings fields. 8350// If target is omitted, writes into ajaxSettings. 8351ajaxSetup: function (target, settings) { 8352return settings ? 8353 8354// Building a settings object 8355ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : 8356 8357// Extending ajaxSettings 8358ajaxExtend(jQuery.ajaxSettings, target); 8359}, 8360 8361ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 8362ajaxTransport: addToPrefiltersOrTransports(transports), 8363 8364// Main method 8365ajax: function (url, options) { 8366 8367// If url is an object, simulate pre-1.5 signature 8368if (typeof url === "object") { 8369options = url; 8370url = undefined; 8371} 8372 8373// Force options to be an object 8374options = options || {}; 8375 8376var transport,
vendor: 30,599 bytes, lines 8377-9679
8377 8378// URL without anti-cache param 8379cacheURL, 8380 8381// Response headers 8382responseHeadersString, 8383responseHeaders, 8384 8385// timeout handle 8386timeoutTimer, 8387 8388// Url cleanup var 8389urlAnchor, 8390 8391// To know if global events are to be dispatched 8392fireGlobals, 8393 8394// Loop variable 8395i, 8396 8397// Create the final options object 8398s = jQuery.ajaxSetup({}, options), 8399 8400// Callbacks context 8401callbackContext = s.context || s, 8402 8403// Context for global events is callbackContext if it is a DOM node or jQuery collection 8404globalEventContext = s.context && 8405(callbackContext.nodeType || callbackContext.jquery) ? 8406jQuery(callbackContext) : 8407jQuery.event, 8408 8409// Deferreds 8410deferred = jQuery.Deferred(), 8411completeDeferred = jQuery.Callbacks("once memory"), 8412 8413// Status-dependent callbacks 8414statusCode = s.statusCode || {}, 8415 8416// Headers (they are sent all at once) 8417requestHeaders = {}, 8418requestHeadersNames = {}, 8419 8420// The jqXHR state 8421state = 0, 8422 8423// Default abort message 8424strAbort = "canceled", 8425 8426// Fake xhr 8427jqXHR = { 8428readyState: 0, 8429 8430// Builds headers hashtable if needed 8431getResponseHeader: function (key) { 8432var match; 8433if (state === 2) { 8434if (!responseHeaders) { 8435responseHeaders = {}; 8436while ((match = rheaders.exec(responseHeadersString))) { 8437responseHeaders[match[1].toLowerCase()] = match[2]; 8438} 8439} 8440match = responseHeaders[key.toLowerCase()]; 8441} 8442return match == null ? null : match; 8443}, 8444 8445// Raw string 8446getAllResponseHeaders: function () { 8447return state === 2 ? responseHeadersString : null; 8448}, 8449 8450// Caches the header 8451setRequestHeader: function (name, value) { 8452var lname = name.toLowerCase(); 8453if (!state) { 8454name = requestHeadersNames[lname] = requestHeadersNames[lname] || name; 8455requestHeaders[name] = value; 8456} 8457return this; 8458}, 8459 8460// Overrides response content-type header 8461overrideMimeType: function (type) { 8462if (!state) { 8463s.mimeType = type; 8464} 8465return this; 8466}, 8467 8468// Status-dependent callbacks 8469statusCode: function (map) { 8470var code; 8471if (map) { 8472if (state < 2) { 8473for (code in map) { 8474 8475// Lazy-add the new callback in a way that preserves old ones 8476statusCode[code] = [statusCode[code], map[code]]; 8477} 8478} else { 8479 8480// Execute the appropriate callbacks 8481jqXHR.always(map[jqXHR.status]); 8482} 8483} 8484return this; 8485}, 8486 8487// Cancel the request 8488abort: function (statusText) { 8489var finalText = statusText || strAbort; 8490if (transport) { 8491transport.abort(finalText); 8492} 8493done(0, finalText); 8494return this; 8495} 8496}; 8497 8498// Attach deferreds 8499deferred.promise(jqXHR).complete = completeDeferred.add; 8500jqXHR.success = jqXHR.done; 8501jqXHR.error = jqXHR.fail; 8502 8503// Remove hash character (#7531: and string promotion) 8504// Add protocol if not provided (prefilters might expect it) 8505// Handle falsy url in the settings object (#10093: consistency with old signature) 8506// We also use the url parameter if available 8507s.url = ((url || s.url || location.href) + "").replace(rhash, "") 8508.replace(rprotocol, location.protocol + "//"); 8509 8510// Alias method option to type as per ticket #12004 8511s.type = options.method || options.type || s.method || s.type; 8512 8513// Extract dataTypes list 8514s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().match(rnotwhite) || [""]; 8515 8516// A cross-domain request is in order when the origin doesn't match the current origin. 8517if (s.crossDomain == null) { 8518urlAnchor = document.createElement("a"); 8519 8520// Support: IE8-11+ 8521// IE throws exception if url is malformed, e.g. http://example.com:80x/ 8522try { 8523urlAnchor.href = s.url; 8524 8525// Support: IE8-11+ 8526// Anchor's host property isn't correctly set when s.url is relative 8527urlAnchor.href = urlAnchor.href; 8528s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 8529urlAnchor.protocol + "//" + urlAnchor.host; 8530} catch (e) { 8531 8532// If there is an error parsing the URL, assume it is crossDomain, 8533// it can be rejected by the transport if it is invalid 8534s.crossDomain = true; 8535} 8536} 8537 8538// Convert data if not already a string 8539if (s.data && s.processData && typeof s.data !== "string") { 8540s.data = jQuery.param(s.data, s.traditional); 8541} 8542 8543// Apply prefilters 8544inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); 8545 8546// If request was aborted inside a prefilter, stop there 8547if (state === 2) { 8548return jqXHR; 8549} 8550 8551// We can fire global events as of now if asked to 8552// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) 8553fireGlobals = jQuery.event && s.global; 8554 8555// Watch for a new set of requests 8556if (fireGlobals && jQuery.active++ === 0) { 8557jQuery.event.trigger("ajaxStart"); 8558} 8559 8560// Uppercase the type 8561s.type = s.type.toUpperCase(); 8562 8563// Determine if request has content 8564s.hasContent = !rnoContent.test(s.type); 8565 8566// Save the URL in case we're toying with the If-Modified-Since 8567// and/or If-None-Match header later on 8568cacheURL = s.url; 8569 8570// More options handling for requests with no content 8571if (!s.hasContent) { 8572 8573// If data is available, append data to url 8574if (s.data) { 8575cacheURL = (s.url += (rquery.test(cacheURL) ? "&" : "?") + s.data); 8576 8577// #9682: remove data so that it's not used in an eventual retry 8578delete s.data; 8579} 8580 8581// Add anti-cache in url if needed 8582if (s.cache === false) { 8583s.url = rts.test(cacheURL) ? 8584 8585// If there is already a '_' parameter, set its value 8586cacheURL.replace(rts, "$1_=" + nonce++) : 8587 8588// Otherwise add one to the end 8589cacheURL + (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce++; 8590} 8591} 8592 8593// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 8594if (s.ifModified) { 8595if (jQuery.lastModified[cacheURL]) { 8596jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[cacheURL]); 8597} 8598if (jQuery.etag[cacheURL]) { 8599jqXHR.setRequestHeader("If-None-Match", jQuery.etag[cacheURL]); 8600} 8601} 8602 8603// Set the correct header, if data is being sent 8604if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 8605jqXHR.setRequestHeader("Content-Type", s.contentType); 8606} 8607 8608// Set the Accepts header for the server, depending on the dataType 8609jqXHR.setRequestHeader( 8610"Accept", 8611s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? 8612s.accepts[s.dataTypes[0]] + 8613(s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : 8614s.accepts["*"] 8615); 8616 8617// Check for headers option 8618for (i in s.headers) { 8619jqXHR.setRequestHeader(i, s.headers[i]); 8620} 8621 8622// Allow custom headers/mimetypes and early abort 8623if (s.beforeSend && 8624(s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2)) { 8625 8626// Abort if not done already and return 8627return jqXHR.abort(); 8628} 8629 8630// Aborting is no longer a cancellation 8631strAbort = "abort"; 8632 8633// Install callbacks on deferreds 8634for (i in { success: 1, error: 1, complete: 1 }) { 8635jqXHR[i](s[i]); 8636} 8637 8638// Get transport 8639transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); 8640 8641// If no transport, we auto-abort 8642if (!transport) { 8643done(-1, "No Transport"); 8644} else { 8645jqXHR.readyState = 1; 8646 8647// Send global event 8648if (fireGlobals) { 8649globalEventContext.trigger("ajaxSend", [jqXHR, s]); 8650} 8651 8652// If request was aborted inside ajaxSend, stop there 8653if (state === 2) { 8654return jqXHR; 8655} 8656 8657// Timeout 8658if (s.async && s.timeout > 0) { 8659timeoutTimer = window.setTimeout(function () { 8660jqXHR.abort("timeout"); 8661}, s.timeout); 8662} 8663 8664try { 8665state = 1; 8666transport.send(requestHeaders, done); 8667} catch (e) { 8668 8669// Propagate exception as error if not done 8670if (state < 2) { 8671done(-1, e); 8672 8673// Simply rethrow otherwise 8674} else { 8675throw e; 8676} 8677} 8678} 8679 8680// Callback for when everything is done 8681function done(status, nativeStatusText, responses, headers) { 8682var isSuccess, success, error, response, modified, 8683statusText = nativeStatusText; 8684 8685// Called once 8686if (state === 2) { 8687return; 8688} 8689 8690// State is "done" now 8691state = 2; 8692 8693// Clear timeout if it exists 8694if (timeoutTimer) { 8695window.clearTimeout(timeoutTimer); 8696} 8697 8698// Dereference transport for early garbage collection 8699// (no matter how long the jqXHR object will be used) 8700transport = undefined; 8701 8702// Cache response headers 8703responseHeadersString = headers || ""; 8704 8705// Set readyState 8706jqXHR.readyState = status > 0 ? 4 : 0; 8707 8708// Determine if successful 8709isSuccess = status >= 200 && status < 300 || status === 304; 8710 8711// Get response data 8712if (responses) { 8713response = ajaxHandleResponses(s, jqXHR, responses); 8714} 8715 8716// Convert no matter what (that way responseXXX fields are always set) 8717response = ajaxConvert(s, response, jqXHR, isSuccess); 8718 8719// If successful, handle type chaining 8720if (isSuccess) { 8721 8722// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 8723if (s.ifModified) { 8724modified = jqXHR.getResponseHeader("Last-Modified"); 8725if (modified) { 8726jQuery.lastModified[cacheURL] = modified; 8727} 8728modified = jqXHR.getResponseHeader("etag"); 8729if (modified) { 8730jQuery.etag[cacheURL] = modified; 8731} 8732} 8733 8734// if no content 8735if (status === 204 || s.type === "HEAD") { 8736statusText = "nocontent"; 8737 8738// if not modified 8739} else if (status === 304) { 8740statusText = "notmodified"; 8741 8742// If we have data, let's convert it 8743} else { 8744statusText = response.state; 8745success = response.data; 8746error = response.error; 8747isSuccess = !error; 8748} 8749} else { 8750 8751// Extract error from statusText and normalize for non-aborts 8752error = statusText; 8753if (status || !statusText) { 8754statusText = "error"; 8755if (status < 0) { 8756status = 0; 8757} 8758} 8759} 8760 8761// Set data for the fake xhr object 8762jqXHR.status = status; 8763jqXHR.statusText = (nativeStatusText || statusText) + ""; 8764 8765// Success/Error 8766if (isSuccess) { 8767deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 8768} else { 8769deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 8770} 8771 8772// Status-dependent callbacks 8773jqXHR.statusCode(statusCode); 8774statusCode = undefined; 8775 8776if (fireGlobals) { 8777globalEventContext.trigger(isSuccess ? "ajaxSuccess" : "ajaxError", 8778[jqXHR, s, isSuccess ? success : error]); 8779} 8780 8781// Complete 8782completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 8783 8784if (fireGlobals) { 8785globalEventContext.trigger("ajaxComplete", [jqXHR, s]); 8786 8787// Handle the global AJAX counter 8788if (!(--jQuery.active)) { 8789jQuery.event.trigger("ajaxStop"); 8790} 8791} 8792} 8793 8794return jqXHR; 8795}, 8796 8797getJSON: function (url, data, callback) { 8798return jQuery.get(url, data, callback, "json"); 8799}, 8800 8801getScript: function (url, callback) { 8802return jQuery.get(url, undefined, callback, "script"); 8803} 8804}); 8805 8806jQuery.each(["get", "post"], function (i, method) { 8807jQuery[method] = function (url, data, callback, type) { 8808 8809// Shift arguments if data argument was omitted 8810if (jQuery.isFunction(data)) { 8811type = type || callback; 8812callback = data; 8813data = undefined; 8814} 8815 8816// The url can be an options object (which then must have .url) 8817return jQuery.ajax(jQuery.extend({ 8818url: url, 8819type: method, 8820dataType: type, 8821data: data, 8822success: callback 8823}, jQuery.isPlainObject(url) && url)); 8824}; 8825}); 8826 8827 8828jQuery._evalUrl = function (url) { 8829return jQuery.ajax({ 8830url: url, 8831 8832// Make this explicit, since user can override this through ajaxSetup (#11264) 8833type: "GET", 8834dataType: "script", 8835async: false, 8836global: false, 8837"throws": true 8838}); 8839}; 8840 8841 8842jQuery.fn.extend({ 8843wrapAll: function (html) { 8844var wrap; 8845 8846if (jQuery.isFunction(html)) { 8847return this.each(function (i) { 8848jQuery(this).wrapAll(html.call(this, i)); 8849}); 8850} 8851 8852if (this[0]) { 8853 8854// The elements to wrap the target around 8855wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true); 8856 8857if (this[0].parentNode) { 8858wrap.insertBefore(this[0]); 8859} 8860 8861wrap.map(function () { 8862var elem = this; 8863 8864while (elem.firstElementChild) { 8865elem = elem.firstElementChild; 8866} 8867 8868return elem; 8869}).append(this); 8870} 8871 8872return this; 8873}, 8874 8875wrapInner: function (html) { 8876if (jQuery.isFunction(html)) { 8877return this.each(function (i) { 8878jQuery(this).wrapInner(html.call(this, i)); 8879}); 8880} 8881 8882return this.each(function () { 8883var self = jQuery(this), 8884contents = self.contents(); 8885 8886if (contents.length) { 8887contents.wrapAll(html); 8888 8889} else { 8890self.append(html); 8891} 8892}); 8893}, 8894 8895wrap: function (html) { 8896var isFunction = jQuery.isFunction(html); 8897 8898return this.each(function (i) { 8899jQuery(this).wrapAll(isFunction ? html.call(this, i) : html); 8900}); 8901}, 8902 8903unwrap: function () { 8904return this.parent().each(function () { 8905if (!jQuery.nodeName(this, "body")) { 8906jQuery(this).replaceWith(this.childNodes); 8907} 8908}).end(); 8909} 8910}); 8911 8912 8913jQuery.expr.filters.hidden = function (elem) { 8914return !jQuery.expr.filters.visible(elem); 8915}; 8916jQuery.expr.filters.visible = function (elem) { 8917 8918// Support: Opera <= 12.12 8919// Opera reports offsetWidths and offsetHeights less than zero on some elements 8920// Use OR instead of AND as the element is not visible if either is true 8921// See tickets #10406 and #13132 8922return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0; 8923}; 8924 8925 8926 8927 8928var r20 = /%20/g, 8929rbracket = /\[\]$/, 8930rCRLF = /\r?\n/g, 8931rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 8932rsubmittable = /^(?:input|select|textarea|keygen)/i; 8933 8934function buildParams(prefix, obj, traditional, add) { 8935var name; 8936 8937if (jQuery.isArray(obj)) { 8938 8939// Serialize array item. 8940jQuery.each(obj, function (i, v) { 8941if (traditional || rbracket.test(prefix)) { 8942 8943// Treat each array item as a scalar. 8944add(prefix, v); 8945 8946} else { 8947 8948// Item is non-scalar (array or object), encode its numeric index. 8949buildParams( 8950prefix + "[" + (typeof v === "object" && v != null ? i : "") + "]", 8951v, 8952traditional, 8953add 8954); 8955} 8956}); 8957 8958} else if (!traditional && jQuery.type(obj) === "object") { 8959 8960// Serialize object item. 8961for (name in obj) { 8962buildParams(prefix + "[" + name + "]", obj[name], traditional, add); 8963} 8964 8965} else { 8966 8967// Serialize scalar item. 8968add(prefix, obj); 8969} 8970} 8971 8972// Serialize an array of form elements or a set of 8973// key/values into a query string 8974jQuery.param = function (a, traditional) { 8975var prefix, 8976s = [], 8977add = function (key, value) { 8978 8979// If value is a function, invoke it and return its value 8980value = jQuery.isFunction(value) ? value() : (value == null ? "" : value); 8981s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value); 8982}; 8983 8984// Set traditional to true for jQuery <= 1.3.2 behavior. 8985if (traditional === undefined) { 8986traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; 8987} 8988 8989// If an array was passed in, assume that it is an array of form elements. 8990if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) { 8991 8992// Serialize the form elements 8993jQuery.each(a, function () { 8994add(this.name, this.value); 8995}); 8996 8997} else { 8998 8999// If traditional, encode the "old" way (the way 1.3.2 or older 9000// did it), otherwise encode params recursively. 9001for (prefix in a) { 9002buildParams(prefix, a[prefix], traditional, add); 9003} 9004} 9005 9006// Return the resulting serialization 9007return s.join("&").replace(r20, "+"); 9008}; 9009 9010jQuery.fn.extend({ 9011serialize: function () { 9012return jQuery.param(this.serializeArray()); 9013}, 9014serializeArray: function () { 9015return this.map(function () { 9016 9017// Can add propHook for "elements" to filter or add form elements 9018var elements = jQuery.prop(this, "elements"); 9019return elements ? jQuery.makeArray(elements) : this; 9020}) 9021.filter(function () { 9022var type = this.type; 9023 9024// Use .is( ":disabled" ) so that fieldset[disabled] works 9025return this.name && !jQuery(this).is(":disabled") && 9026rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && 9027(this.checked || !rcheckableType.test(type)); 9028}) 9029.map(function (i, elem) { 9030var val = jQuery(this).val(); 9031 9032return val == null ? 9033null : 9034jQuery.isArray(val) ? 9035jQuery.map(val, function (val) { 9036return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; 9037}) : 9038{ name: elem.name, value: val.replace(rCRLF, "\r\n") }; 9039}).get(); 9040} 9041}); 9042 9043 9044jQuery.ajaxSettings.xhr = function () { 9045try { 9046return new window.XMLHttpRequest(); 9047} catch (e) { } 9048}; 9049 9050var xhrSuccessStatus = { 9051 9052// File protocol always yields status code 0, assume 200 90530: 200, 9054 9055// Support: IE9 9056// #1450: sometimes IE returns 1223 when it should be 204 90571223: 204 9058}, 9059xhrSupported = jQuery.ajaxSettings.xhr(); 9060 9061support.cors = !!xhrSupported && ("withCredentials" in xhrSupported); 9062support.ajax = xhrSupported = !!xhrSupported; 9063 9064jQuery.ajaxTransport(function (options) { 9065var callback, errorCallback; 9066 9067// Cross domain only allowed if supported through XMLHttpRequest 9068if (support.cors || xhrSupported && !options.crossDomain) { 9069return { 9070send: function (headers, complete) { 9071var i, 9072xhr = options.xhr(); 9073 9074xhr.open( 9075options.type, 9076options.url, 9077options.async, 9078options.username, 9079options.password 9080); 9081 9082// Apply custom fields if provided 9083if (options.xhrFields) { 9084for (i in options.xhrFields) { 9085xhr[i] = options.xhrFields[i]; 9086} 9087} 9088 9089// Override mime type if needed 9090if (options.mimeType && xhr.overrideMimeType) { 9091xhr.overrideMimeType(options.mimeType); 9092} 9093 9094// X-Requested-With header 9095// For cross-domain requests, seeing as conditions for a preflight are 9096// akin to a jigsaw puzzle, we simply never set it to be sure. 9097// (it can always be set on a per-request basis or even using ajaxSetup) 9098// For same-domain requests, won't change header if already provided. 9099if (!options.crossDomain && !headers["X-Requested-With"]) { 9100headers["X-Requested-With"] = "XMLHttpRequest"; 9101} 9102 9103// Set headers 9104for (i in headers) { 9105xhr.setRequestHeader(i, headers[i]); 9106} 9107 9108// Callback 9109callback = function (type) { 9110return function () { 9111if (callback) { 9112callback = errorCallback = xhr.onload = 9113xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; 9114 9115if (type === "abort") { 9116xhr.abort(); 9117} else if (type === "error") { 9118 9119// Support: IE9 9120// On a manual native abort, IE9 throws 9121// errors on any property access that is not readyState 9122if (typeof xhr.status !== "number") { 9123complete(0, "error"); 9124} else { 9125complete( 9126 9127// File: protocol always yields status 0; see #8605, #14207 9128xhr.status, 9129xhr.statusText 9130); 9131} 9132} else { 9133complete( 9134xhrSuccessStatus[xhr.status] || xhr.status, 9135xhr.statusText, 9136 9137// Support: IE9 only 9138// IE9 has no XHR2 but throws on binary (trac-11426) 9139// For XHR2 non-text, let the caller handle it (gh-2498) 9140(xhr.responseType || "text") !== "text" || 9141typeof xhr.responseText !== "string" ? 9142{ binary: xhr.response } : 9143{ text: xhr.responseText }, 9144xhr.getAllResponseHeaders() 9145); 9146} 9147} 9148}; 9149}; 9150 9151// Listen to events 9152xhr.onload = callback(); 9153errorCallback = xhr.onerror = callback("error"); 9154 9155// Support: IE9 9156// Use onreadystatechange to replace onabort 9157// to handle uncaught aborts 9158if (xhr.onabort !== undefined) { 9159xhr.onabort = errorCallback; 9160} else { 9161xhr.onreadystatechange = function () { 9162 9163// Check readyState before timeout as it changes 9164if (xhr.readyState === 4) { 9165 9166// Allow onerror to be called first, 9167// but that will not handle a native abort 9168// Also, save errorCallback to a variable 9169// as xhr.onerror cannot be accessed 9170window.setTimeout(function () { 9171if (callback) { 9172errorCallback(); 9173} 9174}); 9175} 9176}; 9177} 9178 9179// Create the abort callback 9180callback = callback("abort"); 9181 9182try { 9183 9184// Do send the request (this may raise an exception) 9185xhr.send(options.hasContent && options.data || null); 9186} catch (e) { 9187 9188// #14683: Only rethrow if this hasn't been notified as an error yet 9189if (callback) { 9190throw e; 9191} 9192} 9193}, 9194 9195abort: function () { 9196if (callback) { 9197callback(); 9198} 9199} 9200}; 9201} 9202}); 9203 9204 9205 9206 9207// Install script dataType 9208jQuery.ajaxSetup({ 9209accepts: { 9210script: "text/javascript, application/javascript, " + 9211"application/ecmascript, application/x-ecmascript" 9212}, 9213contents: { 9214script: /\b(?:java|ecma)script\b/ 9215}, 9216converters: { 9217"text script": function (text) { 9218jQuery.globalEval(text); 9219return text; 9220} 9221} 9222}); 9223 9224// Handle cache's special case and crossDomain 9225jQuery.ajaxPrefilter("script", function (s) { 9226if (s.cache === undefined) { 9227s.cache = false; 9228} 9229if (s.crossDomain) { 9230s.type = "GET"; 9231} 9232}); 9233 9234// Bind script tag hack transport 9235jQuery.ajaxTransport("script", function (s) { 9236 9237// This transport only deals with cross domain requests 9238if (s.crossDomain) { 9239var script, callback; 9240return { 9241send: function (_, complete) { 9242script = jQuery("<script>").prop({ 9243charset: s.scriptCharset, 9244src: s.url 9245}).on( 9246"load error", 9247callback = function (evt) { 9248script.remove(); 9249callback = null; 9250if (evt) { 9251complete(evt.type === "error" ? 404 : 200, evt.type); 9252} 9253} 9254); 9255 9256// Use native DOM manipulation to avoid our domManip AJAX trickery 9257document.head.appendChild(script[0]); 9258}, 9259abort: function () { 9260if (callback) { 9261callback(); 9262} 9263} 9264}; 9265} 9266}); 9267 9268 9269 9270 9271var oldCallbacks = [], 9272rjsonp = /(=)\?(?=&|$)|\?\?/; 9273 9274// Default jsonp settings 9275jQuery.ajaxSetup({ 9276jsonp: "callback", 9277jsonpCallback: function () { 9278var callback = oldCallbacks.pop() || (jQuery.expando + "_" + (nonce++)); 9279this[callback] = true; 9280return callback; 9281} 9282}); 9283 9284// Detect, normalize options and install callbacks for jsonp requests 9285jQuery.ajaxPrefilter("json jsonp", function (s, originalSettings, jqXHR) { 9286 9287var callbackName, overwritten, responseContainer, 9288jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? 9289"url" : 9290typeof s.data === "string" && 9291(s.contentType || "") 9292.indexOf("application/x-www-form-urlencoded") === 0 && 9293rjsonp.test(s.data) && "data" 9294); 9295 9296// Handle iff the expected data type is "jsonp" or we have a parameter to set 9297if (jsonProp || s.dataTypes[0] === "jsonp") { 9298 9299// Get callback name, remembering preexisting value associated with it 9300callbackName = s.jsonpCallback = jQuery.isFunction(s.jsonpCallback) ? 9301s.jsonpCallback() : 9302s.jsonpCallback; 9303 9304// Insert callback into url or form data 9305if (jsonProp) { 9306s[jsonProp] = s[jsonProp].replace(rjsonp, "$1" + callbackName); 9307} else if (s.jsonp !== false) { 9308s.url += (rquery.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName; 9309} 9310 9311// Use data converter to retrieve json after script execution 9312s.converters["script json"] = function () { 9313if (!responseContainer) { 9314jQuery.error(callbackName + " was not called"); 9315} 9316return responseContainer[0]; 9317}; 9318 9319// Force json dataType 9320s.dataTypes[0] = "json"; 9321 9322// Install callback 9323overwritten = window[callbackName]; 9324window[callbackName] = function () { 9325responseContainer = arguments; 9326}; 9327 9328// Clean-up function (fires after converters) 9329jqXHR.always(function () { 9330 9331// If previous value didn't exist - remove it 9332if (overwritten === undefined) { 9333jQuery(window).removeProp(callbackName); 9334 9335// Otherwise restore preexisting value 9336} else { 9337window[callbackName] = overwritten; 9338} 9339 9340// Save back as free 9341if (s[callbackName]) { 9342 9343// Make sure that re-using the options doesn't screw things around 9344s.jsonpCallback = originalSettings.jsonpCallback; 9345 9346// Save the callback name for future use 9347oldCallbacks.push(callbackName); 9348} 9349 9350// Call if it was a function and we have a response 9351if (responseContainer && jQuery.isFunction(overwritten)) { 9352overwritten(responseContainer[0]); 9353} 9354 9355responseContainer = overwritten = undefined; 9356}); 9357 9358// Delegate to script 9359return "script"; 9360} 9361}); 9362 9363 9364 9365 9366// Argument "data" should be string of html 9367// context (optional): If specified, the fragment will be created in this context, 9368// defaults to document 9369// keepScripts (optional): If true, will include scripts passed in the html string 9370jQuery.parseHTML = function (data, context, keepScripts) { 9371if (!data || typeof data !== "string") { 9372return null; 9373} 9374if (typeof context === "boolean") { 9375keepScripts = context; 9376context = false; 9377} 9378context = context || document; 9379 9380var parsed = rsingleTag.exec(data), 9381scripts = !keepScripts && []; 9382 9383// Single tag 9384if (parsed) { 9385return [context.createElement(parsed[1])]; 9386} 9387 9388parsed = buildFragment([data], context, scripts); 9389 9390if (scripts && scripts.length) { 9391jQuery(scripts).remove(); 9392} 9393 9394return jQuery.merge([], parsed.childNodes); 9395}; 9396 9397 9398// Keep a copy of the old load method 9399var _load = jQuery.fn.load; 9400 9401/** 9402 * Load a url into a page 9403 */ 9404jQuery.fn.load = function (url, params, callback) { 9405if (typeof url !== "string" && _load) { 9406return _load.apply(this, arguments); 9407} 9408 9409var selector, type, response, 9410self = this, 9411off = url.indexOf(" "); 9412 9413if (off > -1) { 9414selector = jQuery.trim(url.slice(off)); 9415url = url.slice(0, off); 9416} 9417 9418// If it's a function 9419if (jQuery.isFunction(params)) { 9420 9421// We assume that it's the callback 9422callback = params; 9423params = undefined; 9424 9425// Otherwise, build a param string 9426} else if (params && typeof params === "object") { 9427type = "POST"; 9428} 9429 9430// If we have elements to modify, make the request 9431if (self.length > 0) { 9432jQuery.ajax({ 9433url: url, 9434 9435// If "type" variable is undefined, then "GET" method will be used. 9436// Make value of this field explicit since 9437// user can override it through ajaxSetup method 9438type: type || "GET", 9439dataType: "html", 9440data: params 9441}).done(function (responseText) { 9442 9443// Save response for use in complete callback 9444response = arguments; 9445 9446self.html(selector ? 9447 9448// If a selector was specified, locate the right elements in a dummy div 9449// Exclude scripts to avoid IE 'Permission Denied' errors 9450jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector) : 9451 9452// Otherwise use the full result 9453responseText); 9454 9455// If the request succeeds, this function gets "data", "status", "jqXHR" 9456// but they are ignored because response was set above. 9457// If it fails, this function gets "jqXHR", "status", "error" 9458}).always(callback && function (jqXHR, status) { 9459self.each(function () { 9460callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 9461}); 9462}); 9463} 9464 9465return this; 9466}; 9467 9468 9469 9470 9471// Attach a bunch of functions for handling common AJAX events 9472jQuery.each([ 9473"ajaxStart", 9474"ajaxStop", 9475"ajaxComplete", 9476"ajaxError", 9477"ajaxSuccess", 9478"ajaxSend" 9479], function (i, type) { 9480jQuery.fn[type] = function (fn) { 9481return this.on(type, fn); 9482}; 9483}); 9484 9485 9486 9487 9488jQuery.expr.filters.animated = function (elem) { 9489return jQuery.grep(jQuery.timers, function (fn) { 9490return elem === fn.elem; 9491}).length; 9492}; 9493 9494 9495 9496 9497/** 9498 * Gets a window from an element 9499 */ 9500function getWindow(elem) { 9501return jQuery.isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; 9502} 9503 9504jQuery.offset = { 9505setOffset: function (elem, options, i) { 9506var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 9507position = jQuery.css(elem, "position"), 9508curElem = jQuery(elem), 9509props = {}; 9510 9511// Set position first, in-case top/left are set even on static elem 9512if (position === "static") { 9513elem.style.position = "relative"; 9514} 9515 9516curOffset = curElem.offset(); 9517curCSSTop = jQuery.css(elem, "top"); 9518curCSSLeft = jQuery.css(elem, "left"); 9519calculatePosition = (position === "absolute" || position === "fixed") && 9520(curCSSTop + curCSSLeft).indexOf("auto") > -1; 9521 9522// Need to be able to calculate position if either 9523// top or left is auto and position is either absolute or fixed 9524if (calculatePosition) { 9525curPosition = curElem.position(); 9526curTop = curPosition.top; 9527curLeft = curPosition.left; 9528 9529} else { 9530curTop = parseFloat(curCSSTop) || 0; 9531curLeft = parseFloat(curCSSLeft) || 0; 9532} 9533 9534if (jQuery.isFunction(options)) { 9535 9536// Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 9537options = options.call(elem, i, jQuery.extend({}, curOffset)); 9538} 9539 9540if (options.top != null) { 9541props.top = (options.top - curOffset.top) + curTop; 9542} 9543if (options.left != null) { 9544props.left = (options.left - curOffset.left) + curLeft; 9545} 9546 9547if ("using" in options) { 9548options.using.call(elem, props); 9549 9550} else { 9551curElem.css(props); 9552} 9553} 9554}; 9555 9556jQuery.fn.extend({ 9557offset: function (options) { 9558if (arguments.length) { 9559return options === undefined ? 9560this : 9561this.each(function (i) { 9562jQuery.offset.setOffset(this, options, i); 9563}); 9564} 9565 9566var docElem, win, 9567elem = this[0], 9568box = { top: 0, left: 0 }, 9569doc = elem && elem.ownerDocument; 9570 9571if (!doc) { 9572return; 9573} 9574 9575docElem = doc.documentElement; 9576 9577// Make sure it's not a disconnected DOM node 9578if (!jQuery.contains(docElem, elem)) { 9579return box; 9580} 9581 9582box = elem.getBoundingClientRect(); 9583win = getWindow(doc); 9584return { 9585top: box.top + win.pageYOffset - docElem.clientTop, 9586left: box.left + win.pageXOffset - docElem.clientLeft 9587}; 9588}, 9589 9590position: function () { 9591if (!this[0]) { 9592return; 9593} 9594 9595var offsetParent, offset, 9596elem = this[0], 9597parentOffset = { top: 0, left: 0 }; 9598 9599// Fixed elements are offset from window (parentOffset = {top:0, left: 0}, 9600// because it is its only offset parent 9601if (jQuery.css(elem, "position") === "fixed") { 9602 9603// Assume getBoundingClientRect is there when computed position is fixed 9604offset = elem.getBoundingClientRect(); 9605 9606} else { 9607 9608// Get *real* offsetParent 9609offsetParent = this.offsetParent(); 9610 9611// Get correct offsets 9612offset = this.offset(); 9613if (!jQuery.nodeName(offsetParent[0], "html")) { 9614parentOffset = offsetParent.offset(); 9615} 9616 9617// Add offsetParent borders 9618parentOffset.top += jQuery.css(offsetParent[0], "borderTopWidth", true); 9619parentOffset.left += jQuery.css(offsetParent[0], "borderLeftWidth", true); 9620} 9621 9622// Subtract parent offsets and element margins 9623return { 9624top: offset.top - parentOffset.top - jQuery.css(elem, "marginTop", true), 9625left: offset.left - parentOffset.left - jQuery.css(elem, "marginLeft", true) 9626}; 9627}, 9628 9629// This method will return documentElement in the following cases: 9630// 1) For the element inside the iframe without offsetParent, this method will return 9631// documentElement of the parent window 9632// 2) For the hidden or detached element 9633// 3) For body or html element, i.e. in case of the html node - it will return itself 9634// 9635// but those exceptions were never presented as a real life use-cases 9636// and might be considered as more preferable results. 9637// 9638// This logic, however, is not guaranteed and can change at any point in the future 9639offsetParent: function () { 9640return this.map(function () { 9641var offsetParent = this.offsetParent; 9642 9643while (offsetParent && jQuery.css(offsetParent, "position") === "static") { 9644offsetParent = offsetParent.offsetParent; 9645} 9646 9647return offsetParent || documentElement; 9648}); 9649} 9650}); 9651 9652// Create scrollLeft and scrollTop methods 9653jQuery.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (method, prop) { 9654var top = "pageYOffset" === prop; 9655 9656jQuery.fn[method] = function (val) { 9657return access(this, function (elem, method, val) { 9658var win = getWindow(elem); 9659 9660if (val === undefined) { 9661return win ? win[prop] : elem[method]; 9662} 9663 9664if (win) { 9665win.scrollTo( 9666!top ? val : win.pageXOffset, 9667top ? val : win.pageYOffset 9668); 9669 9670} else { 9671elem[method] = val; 9672} 9673}, method, val, arguments.length); 9674}; 9675}); 9676 9677// Support: Safari<7-8+, Chrome<37-44+ 9678// Add the top/left cssHooks using jQuery.fn.position 9679// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
9680// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 9681// getComputedStyle returns percent when specified for top/left/bottom/right; 9682// rather than make the css module depend on the offset module, just check for it here 9683jQuery.each(["top", "left"], function (i, prop) { 9684jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, 9685function (elem, computed) { 9686if (computed) { 9687computed = curCSS(elem, prop); 9688 9689// If curCSS returns percentage, fallback to offset 9690return rnumnonpx.test(computed) ? 9691jQuery(elem).position()[prop] + "px" : 9692computed; 9693} 9694} 9695); 9696}); 9697 9698 9699// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 9700jQuery.each({ Height: "height", Width: "width" }, function (name, type) { 9701jQuery.each({ padding: "inner" + name, content: type, "": "outer" + name }, 9702function (defaultExtra, funcName) { 9703 9704// Margin is only for outerHeight, outerWidth 9705jQuery.fn[funcName] = function (margin, value) { 9706var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), 9707extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); 9708 9709return access(this, function (elem, type, value) { 9710var doc; 9711 9712if (jQuery.isWindow(elem)) { 9713 9714// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there 9715// isn't a whole lot we can do. See pull request at this URL for discussion: 9716// https://github.com/jquery/jquery/pull/764 9717return elem.document.documentElement["client" + name]; 9718} 9719 9720// Get document width or height 9721if (elem.nodeType === 9) { 9722doc = elem.documentElement; 9723 9724// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 9725// whichever is greatest 9726return Math.max( 9727elem.body["scroll" + name], doc["scroll" + name], 9728elem.body["offset" + name], doc["offset" + name], 9729doc["client" + name] 9730); 9731} 9732 9733return value === undefined ? 9734 9735// Get width or height on the element, requesting but not forcing parseFloat 9736jQuery.css(elem, type, extra) : 9737 9738// Set width or height on the element 9739jQuery.style(elem, type, value, extra); 9740}, type, chainable ? margin : undefined, chainable, null); 9741}; 9742}); 9743}); 9744 9745 9746jQuery.fn.extend({ 9747 9748bind: function (types, data, fn) { 9749return this.on(types, null, data, fn); 9750}, 9751unbind: function (types, fn) { 9752return this.off(types, null, fn); 9753}, 9754 9755delegate: function (selector, types, data, fn) { 9756return this.on(types, selector, data, fn); 9757}, 9758undelegate: function (selector, types, fn) { 9759 9760// ( namespace ) or ( selector, types [, fn] ) 9761return arguments.length === 1 ? 9762this.off(selector, "**") : 9763this.off(types, selector || "**", fn); 9764}, 9765size: function () { 9766return this.length; 9767} 9768}); 9769 9770jQuery.fn.andSelf = jQuery.fn.addBack; 9771 9772 9773 9774 9775// Register as a named AMD module, since jQuery can be concatenated with other 9776// files that may use define, but not via a proper concatenation script that 9777// understands anonymous AMD modules. A named AMD is safest and most robust 9778// way to register. Lowercase jquery is used because AMD module names are 9779// derived from file names, and jQuery is normally delivered in a lowercase 9780// file name. Do this after creating the global so that if an AMD module wants 9781// to call noConflict to hide this version of jQuery, it will work. 9782 9783// Note that for maximum portability, libraries that are not jQuery should 9784// declare themselves as anonymous modules, and avoid setting a global if an 9785// AMD loader is present. jQuery is a special case. For more information, see 9786// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 9787 9788if (typeof define === "function" && define.amd) { 9789define("jquery", [], function () { 9790return jQuery; 9791}); 9792} 9793 9794 9795 9796var 9797 9798// Map over jQuery in case of overwrite 9799_jQuery = window.jQuery, 9800 9801// Map over the $ in case of overwrite 9802_$ = window.$; 9803 9804jQuery.noConflict = function (deep) { 9805if (window.$ === jQuery) { 9806window.$ = _$; 9807} 9808 9809if (deep && window.jQuery === jQuery) { 9810window.jQuery = _jQuery; 9811} 9812 9813return jQuery; 9814}; 9815 9816// Expose jQuery and $ identifiers, even in AMD 9817// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 9818// and CommonJS for browser emulators (#13566) 9819if (!noGlobal) { 9820window.jQuery = window.$ = jQuery; 9821} 9822 9823return jQuery; 9824})); 9825/*! 9826* Lightbox for Bootstrap 3 by @ashleydw 9827* https://github.com/ashleydw/lightbox 9828* 9829* License: https://github.com/ashleydw/lightbox/blob/master/LICENSE 9830*/ 9831(function () { "use strict"; var a, b; a = jQuery, b = function (b, c) { var d, e, f, g = this; return this.options = a.extend({ title: null, footer: null, remote: null }, a.fn.ekkoLightbox.defaults, c || {}), this.$element = a(b), d = "", this.modal_id = this.options.modal_id ? this.options.modal_id : "ekkoLightbox-" + Math.floor(1e3 * Math.random() + 1), f = '<div class="modal-header"' + (this.options.title || this.options.always_show_close ? "" : ' style="display:none"') + '><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title">' + (this.options.title || " ") + "</h4></div>", e = '<div class="modal-footer"' + (this.options.footer ? "" : ' style="display:none"') + ">" + this.options.footer + "</div>", a(document.body).append('<div id="' + this.modal_id + '" class="ekko-lightbox modal fade" tabindex="-1"><div class="modal-dialog"><div class="modal-content">' + f + '<div class="modal-body"><div class="ekko-lightbox-container"><div></div></div></div>' + e + "</div></div></div>"), this.modal = a("#" + this.modal_id), this.modal_dialog = this.modal.find(".modal
9831-dialog").first(), this.modal_content = this.modal.find(".modal-content").first(), this.modal_body = this.modal.find(".modal-body").first(), this.lightbox_container = this.modal_body.find(".ekko-lightbox-container").first(), this.lightbox_body = this.lightbox_container.find("> div:first-child").first(), this.showLoading(), this.modal_arrows = null, this.border = { top: parseFloat(this.modal_dialog.css("border-top-width")) + parseFloat(this.modal_content.css("border-top-width")) + parseFloat(this.modal_body.css("border-top-width")), right: parseFloat(this.modal_dialog.css("border-right-width")) + parseFloat(this.modal_content.css("border-right-width")) + parseFloat(this.modal_body.css("border-right-width")), bottom: parseFloat(this.modal_dialog.css("border-bottom-width")) + parseFloat(this.modal_content.css("border-bottom-width")) + parseFloat(this.modal_body.css("border-bottom-width")), left: parseFloat(this.modal_dialog.css("border-left-width")) + parseFloat(this.modal_content.css("border-left-width")) + parseFloat(this.modal_body.css("border-left-width")) }, this.padding = { top: parseFloat(this.modal_dialog.css("padding-top")) + parseFloat(this.modal_content.css("padding-top")) + parseFloat(this.modal_body.css("padding-top")), right: parseFloat(this.modal_dialog.css("padding-right")) + parseFloat(this.modal_content.css("padding-right")) + parseFloat(this.modal_body.css("padding-right")), bottom: parseFloat(this.modal_dialog.css("padding-bottom")) + parseFloat(this.modal_content.css("padding-bottom")) + parseFloat(this.modal_body.css("padding-bottom")), left: parseFloat(this.modal_dialog.css("padding-left")) + parseFloat(this.modal_content.css("padding-left")) + parseFloat(this.modal_body.css("padding-left")) }, this.modal.on("show.bs.modal", this.options.onShow.bind(this)).on("shown.bs.modal", function () { return g.modal_shown(), g.options.onShown.call(g) }).on("hide.bs.modal", this.options.onHide.bind(this)).on("hidden.bs.modal", function () { return g.gallery && a(document).off("keydown.ekkoLightbox"), g.modal.remove(), g.options.onHidden.call(g) }).modal("show", c), this.modal }, b.prototype = { modal_shown: function () { var b, c = this; return this.options.remote ? (this.gallery = this.$element.data("gallery"), this.gallery && (this.gallery_items = "document.body" === this.options.gallery_parent_selector || "" === this.options.gallery_parent_selector ? a(document.body).find('*[data-toggle="lightbox"][data-gallery="' + this.gallery + '"]') : this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-toggle="lightbox"][data-gallery="' + this.gallery + '"]'), this.gallery_index = this.gallery_items.index(this.$element), a(document).on("keydown.ekkoLightbox", this.navigate.bind(this)), this.options.directional_arrows && this.gallery_items.length > 1 && (this.lightbox_container.prepend('<div class="ekko-lightbox-nav-overlay"><a href="#" class="' + this.strip_stops(this.options.left_arrow_class) + '"><span class="sr-only">Previous</span></a><a href="#" class="' + this.strip_stops(this.options.right_arrow_class) + '"><span class="sr-only">Next</span></a></div>'), this.modal_arrows = this.lightbox_container.find("div.ekko-lightbox-nav-overlay").first(), this.lightbox_container.find("a" + this.strip_spaces(this.options.left_arrow_class)).on("click", function (a) { return a.preventDefault(), c.navigate_left() }), this.lightbox_container.find("a" + this.strip_spaces(this.options.right_arrow_class)).on("click", function (a) { return a.preventDefault(), c.navigate_right() }))), this.options.type ? "image" === this.options.type ? this.preloadImage(this.options.remote, !0) : "youtube" === this.options.type && (b = this.getYoutubeId(this.options.remote)) ? this.showYoutubeVideo(b) : "vimeo" === this.options.type ? this.showVimeoVideo(this.options.remote) : "instagram" === this.options.type ? this.showInstagramVideo(this.options.remote) : "url" === this.options.type ? this.showInstagramVideo(this.options.remote) : this.error('Could not detect remote target type. Force the type using data-type="image|youtube|vimeo|url"') : this.detectRemoteType(this.options.remote)) : this.error("No remote target given") }, strip_stops: function (a) { return a.replace(/\./g, "") }, strip_spaces: function (a) { return a.replace(/\s/g, "") }, isImage: function (a) { return a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i) }, isSwf: function (a) { return a.match(/\.(swf)((\?|#).*)?$/i) }, getYoutubeId: function (a) { var b; return b = a.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/), b && 11 === b[2].length ? b[2] : !1 }, getVimeoId: function (a) { return a.indexOf("vimeo") > 0 ? a : !1 }, getInstagramId: function (a) { return a.indexOf("instagram") > 0 ? a : !1 }, navigate: function (a) { if (a = a || window.event, 39 === a.keyCode || 37 === a.keyCode) { if (39 === a.keyCode) return this.navigate_right(); if (37 === a.keyCode) return this.navigate_left() } }, navigateTo: function (b) { var c, d; return 0 > b || b >
vendor: 4,958 bytes, line 9831
9831 this.gallery_items.length - 1 ? this : (this.showLoading(), this.gallery_index = b, this.options.onNavigate.call(this, this.gallery_index), this.$element = a(this.gallery_items.get(this.gallery_index)), this.updateTitleAndFooter(), d = this.$element.attr("data-remote") || this.$element.attr("href"), this.detectRemoteType(d, this.$element.attr("data-type") || !1), this.gallery_index + 1 < this.gallery_items.length && (c = a(this.gallery_items.get(this.gallery_index + 1), !1), d = c.attr("data-remote") || c.attr("href"), "image" === c.attr("data-type") || this.isImage(d)) ? this.preloadImage(d, !1) : void 0) }, navigate_left: function () { return 1 !== this.gallery_items.length ? (0 === this.gallery_index ? this.gallery_index = this.gallery_items.length - 1 : this.gallery_index--, this.options.onNavigate.call(this, "left", this.gallery_index), this.navigateTo(this.gallery_index)) : void 0 }, navigate_right: function () { return 1 !== this.gallery_items.length ? (this.gallery_index === this.gallery_items.length - 1 ? this.gallery_index = 0 : this.gallery_index++, this.options.onNavigate.call(this, "right", this.gallery_index), this.navigateTo(this.gallery_index)) : void 0 }, detectRemoteType: function (a, b) { var c; return "image" === b || this.isImage(a) ? (this.options.type = "image", this.preloadImage(a, !0)) : "youtube" === b || (c = this.getYoutubeId(a)) ? (this.options.type = "youtube", this.showYoutubeVideo(c)) : "vimeo" === b || (c = this.getVimeoId(a)) ? (this.options.type = "vimeo", this.showVimeoVideo(c)) : "instagram" === b || (c = this.getInstagramId(a)) ? (this.options.type = "instagram", this.showInstagramVideo(c)) : "url" === b || (c = this.getInstagramId(a)) ? (this.options.type = "instagram", this.showInstagramVideo(c)) : (this.options.type = "url", this.loadRemoteContent(a)) }, updateTitleAndFooter: function () { var a, b, c, d; return c = this.modal_content.find(".modal-header"), b = this.modal_content.find(".modal-footer"), d = this.$element.data("title") || "", a = this.$element.data("footer") || "", d || this.options.always_show_close ? c.css("display", "").find(".modal-title").html(d || " ") : c.css("display", "none"), a ? b.css("display", "").html(a) : b.css("display", "none"), this }, showLoading: function () { return this.lightbox_body.html('<div class="modal-loading">Loading..</div>'), this }, showYoutubeVideo: function (a) { var b, c, d; return b = 560 / 315, d = this.$element.data("width") || 560, d = this.checkDimensions(d), c = d / b, this.resize(d), this.lightbox_body.html('<iframe width="' + d + '" height="' + c + '" src="//www.youtube.com/embed/' + a + '?badge=0&autoplay=1&html5=1" frameborder="0" allowfullscreen></iframe>'), this.options.onContentLoaded.call(this), this.modal_arrows ? this.modal_arrows.css("display", "none") : void 0 }, showVimeoVideo: function (a) { var b, c, d; return b = 500 / 281, d = this.$element.data("width") || 560, d = this.checkDimensions(d), c = d / b, this.resize(d), this.lightbox_body.html('<iframe width="' + d + '" height="' + c + '" src="' + a + '?autoplay=1" frameborder="0" allowfullscreen></iframe>'), this.options.onContentLoaded.call(this), this.modal_arrows ? this.modal_arrows.css("display", "none") : void 0 }, showInstagramVideo: function (a) { var b; return b = this.$element.data("width") || 612, b = this.checkDimensions(b), this.resize(b), this.lightbox_body.html('<iframe width="' + b + '" height="' + b + '" src="' + this.addTrailingSlash(a) + 'embed/" frameborder="0" allowfullscreen></iframe>'), this.options.onContentLoaded.call(this), this.modal_arrows ? this.modal_arrows.css("display", "none") : void 0 }, loadRemoteContent: function (b) { var c, d, e = this; return d = this.$element.data("width") || 560, this.resize(d), c = this.$element.data("disableExternalCheck") || !1, c || this.isExternal(b) ? (this.lightbox_body.html('<iframe width="' + d + '" height="' + d + '" src="' + b + '" frameborder="0" allowfullscreen></iframe>'), this.options.onContentLoaded.call(this)) : this.lightbox_body.load(b, a.proxy(function () { return e.$element.trigger("loaded.bs.modal") })), this.modal_arrows ? this.modal_arrows.css("display", "block") : void 0 }, isExternal: function (a) { var b; return b = a.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/), "string" == typeof b[1] && b[1].length > 0 && b[1].toLowerCase() !== location.protocol ? !0 : "string" == typeof b[2] && b[2].length > 0 && b[2].replace(new RegExp(":(" + { "http:": 80, "https:": 443 }[location.protocol] + ")?$"), "") !== location.host ? !0 : !1 }, error: function (a) { return this.lightbox_body.html(a), this }, preloadImage: function (b, c) { var d, e = this; return d = new Image, (null == c || c === !0) && (d.onload = function () { var b; return b = a("<img />"), b.attr("src", d.src), b.addClass("img-responsive"), e.lightbox_body.html(b), e.modal_arrows && e.modal_arrows.css("display", "block"), e.resize(d.width), e.o
9831ptions.onContentLoaded.call(e) }, d.onerror = function () { return e.error("Failed to load image: " + b) }), d.src = b, d }, resize: function (b) { var c; return c = b + this.border.left + this.padding.left + this.padding.right + this.border.right, this.modal_dialog.css("width", "auto").css("max-width", c), this.lightbox_container.find("a").css("padding-top", function () { return a(this).parent().height() / 2 }), this }, checkDimensions: function (a) { var b, c; return c = a + this.border.left + this.padding.left + this.padding.right + this.border.right, b = document.body.clientWidth, c > b && (a = this.modal_body.width()), a }, close: function () { return this.modal.modal("hide") }, addTrailingSlash: function (a) { return "/" !== a.substr(-1) && (a += "/"), a } }, a.fn.ekkoLightbox = function (c) { return this.each(function () { var d; return d = a(this), c = a.extend({ remote: d.attr("data-remote") || d.attr("href"), gallery_parent_selector: d.attr("data-parent"), type: d.attr("data-type") }, c, d.data()), new b(this, c), this }) }, a.fn.ekkoLightbox.defaults = { gallery_parent_selector: "*:not(.row)", left_arrow_class: ".glyphicon .glyphicon-chevron-left", right_arrow_class: ".glyphicon .glyphicon-chevron-right", directional_arrows: !0, type: null, always_show_close: !0, onShow: function () { }, onShown: function () { }, onHide: function () { }, onHidden: function () { }, onNavigate: function () { }, onContentLoaded: function () { } } }).call(this); 9832Function.prototype.bind || (Function.prototype.bind = function (n) { if (typeof this != "function") throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); var r = Array.prototype.slice.call(arguments, 1), u = this, t = function () { }, i = function () { return u.apply(this instanceof t ? this : n, r.concat(Array.prototype.slice.call(arguments))) }; return t.prototype = this.prototype, i.prototype = new t, i });/* 9833* jquery-match-height master by @liabru 9834* http://brm.io/jquery-match-height/ 9835* License MIT 9836*/ 9837!function(t){"use strict";"function"===typeof define&&define.amd?define(["jquery"],t):"undefined"!==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,i=function(t){return parseFloat(t)||0},n=function(e){var o=1,n=t(e),a=null,r=[];return n.each(function(){var e=t(this),n=e.offset().top-i(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(a-n))<=o?r[r.length-1]=s.add(e):r.push(e),a=n}),r},a=function(e){var o={ 9838byRow:!0,property:"height",target:null,remove:!1};return"object"===typeof e?t.extend(o,e):("boolean"===typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=a(e);if(o.remove){var i=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(i)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="master",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null, 9839r._afterUpdate=null,r._rows=n,r._parse=i,r._parseOptions=a,r._apply=function(e,o){var s=a(o),h=t(e),c=[h],l=t(window).scrollTop(),p=t("html").outerHeight(!0),d=h.parents().filter(":hidden");return d.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),d.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0", 9840"padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),c=n(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(c,function(e,o){var n=t(o),a=0;if(s.target)a=s.target.outerHeight(!1);else{if(s.byRow&&n.length<=1)return void n.css(s.property,"");n.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block");var i={display:o};i[s.property]="", 9841e.css(i),e.outerHeight(!1)>a&&(a=e.outerHeight(!1)),e.css("display","")})}n.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=i(e.css("border-top-width"))+i(e.css("border-bottom-width")),o+=i(e.css("padding-top"))+i(e.css("padding-bottom"))),e.css(s.property,a-o+"px"))})}),d.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(l/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){ 9842var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),i=o.attr("data-mh")||o.attr("data-match-height");i in e?e[i]=e[i].add(o):e[i]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(i,n){if(n&&"resize"===n.type){var a=t(window).width();if(a===e)return;e=a}i?-1===o&&(o=setTimeout(function(){ 9843s(n),o=-1},r._throttle)):s(n)},t(r._applyDataApi),t(window).bind("load",function(t){r._update(!1,t)}),t(window).bind("resize orientationchange",function(t){r._update(!0,t)})});/*! 9844 * imagesLoaded PACKAGED v3.2.0 9845 * JavaScript is all like "You images are done yet or what?" 9846 * MIT License 9847 */ 9848 9849(function(){"use strict";function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,s=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),s="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(s?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,s=this.getListenersAsObject(e);for(r in s)s.hasOwnProperty(r)&&(i=t(s[r],n),-1!==i&&s[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,s=e?this.removeListener:this.addListener,o=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)s.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?s.call(this,i,r):o.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,s,o=this.getListenersAsObject(e);for(r in o)if(o.hasOwnProperty(r))for(i=o[r].length;i--;)n=o[r][i],n.once===!0&&this.removeListener(e,n.listener),s=n.listener.apply(this,t||[]),s===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1
9849);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=s,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var s={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",s):e.eventie=s}(this),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"==f.call(e)}function s(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0;n<e.length;n++)t.push(e[n]);else t.push(e);return t}function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=s(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),u&&(this.jqDeferred=new u.Deferred);var r=this;setTimeout(function(){r.check()})}function h(e){this.img=e}function a(e,t){this.url=e,this.element=t,this.img=new Image}var u=e.jQuery,c=e.console,f=Object.prototype.toString;o.prototype=new t,o.prototype.options={},o.prototype.getImages=function(){this.images=[];for(var e=0;e<this.elements.length;e++){var t=this.elements[e];this.addElementImages(t)}},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&d[t]){for(var n=e.querySelectorAll("img"),i=0;i<n.length;i++){var r=n[i];this.addImage(r)}if("string"==typeof this.options.background){var s=e.querySelectorAll(this.options.background);for(i=0;i<s.length;i++){var o=s[i];this.addElementBackgroundImages(o)}}}};var d={1:!0,9:!0,11:!0};o.prototype.addElementBackgroundImages=function(e){for(var t=m(e),n=/url\(['"]*([^'"\)]+)['"]*\)/gi,i=n.exec(t.backgroundImage);null!==i;){var r=i&&i[1];r&&this.addBackground(r,e),i=n.exec(t.backgroundImage)}};var m=e.getComputedStyle||function(e){return e.currentStyle};return o.prototype.addImage=function(e){var t=new h(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var n=new a(e,t);this.images.push(n)},o.prototype.check=function(){function e(e,n,i){setTimeout(function(){t.progress(e,n,i)})}var t=this;if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();for(var n=0;n<this.images.length;n++){var i=this.images[n];i.once("progress",e),i.check()}},o.prototype.progress=function(e,t,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emit("progress",this,e,t),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&c&&c.log("progress: "+n,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emit(e,this),this.emit("always",this),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=new t,h.prototype.check=function(){var e=this.getIsImageComplete();
9849return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,n.bind(this.proxyImage,"load",this),n.bind(this.proxyImage,"error",this),n.bind(this.img,"load",this),n.bind(this.img,"error",this),void(this.proxyImage.src=this.img.src))},h.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},h.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("progress",this,this.img,t)},h.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){n.unbind(this.proxyImage,"load",this),n.unbind(this.proxyImage,"error",this),n.unbind(this.img,"load",this),n.unbind(this.img,"error",this)},a.prototype=new h,a.prototype.check=function(){n.bind(this.img,"load",this),n.bind(this.img,"error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},a.prototype.unbindEvents=function(){n.unbind(this.img,"load",this),n.unbind(this.img,"error",this)},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("progress",this,this.element,t)},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(u=t,u.fn.imagesLoaded=function(e,t){var n=new o(this,e,t);return n.jqDeferred.promise(u(this))})},o.makeJQueryPlugin(),o});
vendor: 24,103 bytes, lines 9849-9857
9849/*! 9850 * Masonry PACKAGED v4.2.2 9851 * Cascading grid layout library 9852 * https://masonry.desandro.com 9853 * MIT License 9854 * by David DeSandro 9855 */ 9856 9857!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
9857var anythingSliderWidth=1e3,anythingSliderHeight=280,anythingSliderExpand=!1,anythingSliderResizeContents=!0,anythingSliderShowMultiple=!1,anythingSliderZTooltipClass="tooltip",anythingSliderTheme="default",anythingSliderStartPanel=1,anythingSliderHashTags=!0,anythingSliderInfiniteSlides=!0,anythingSliderEnableKeyboard=!0,anythingSliderBuildArrows=!0,anythingSliderToggleArrows=!1,anythingSliderBuildNavigation=!0,anythingSliderEnableNavigation=!0,anythingSliderToggleControls=!1,anythingSliderAppendControlsTo=null,anythingSliderNavigationFormatter=null,anythingSliderForwardText="»",anythingSliderBackText="«",anythingSliderEnablePlay=!0,anythingSliderAutoPlay=!0,anythingSliderAutoPlayLocked=!0,anythingSliderStartStopped=!1,anythingSliderPauseOnHover=!0,anythingSliderResumeOnVideoEnd=!0,anythingSliderStopAtEnd=!1,anythingSliderPlayRtl=!1,anythingSliderStartText="Start",anythingSliderStopText="Stop",anythingSliderDelay=4800,anythingSliderResumeDelay=3e3,anythingSliderAnimationTime=600,anythingSliderEasing="swing",anythingSliderClickArrows="click",anythingSliderClickControls="click focusin",anythingSliderClickSlideshow="click",anythingSliderAddWmodeToObject="opaque",anythingSliderMaxOverallWidth=32766; 9858/* 9859//# sourceMappingURL=jquery.anythingslider-config.min.js.map 9860*/(function(n){n.anythingSlider=function(t,i){var r=this,u;r.$el=n(t).addClass("anythingBase").wrap('<div class="anythingSlider"><div class="anythingWindow" /><\/div>');r.$el.data("AnythingSlider",r);r.init=function(){r.options=u=n.extend({},n.anythingSlider.defaults,i);r.initialized=!1;n.isFunction(u.onBeforeInitialize)&&r.$el.bind("before_initialize",u.onBeforeInitialize);r.$el.trigger("before_initialize",r);r.$wrapper=r.$el.parent().closest("div.anythingSlider").addClass("anythingSlider-"+u.theme);r.$window=r.$el.closest("div.anythingWindow");r.$controls=n('<div class="anythingControls"><\/div>').appendTo(u.appendControlsTo!==null&&n(u.appendControlsTo).length?n(u.appendControlsTo):r.$wrapper);r.win=window;r.$win=n(r.win);r.$nav=n('<ul class="thumbNav" />').appendTo(r.$controls);r.flag=!1;r.playing=!1;r.slideshow=!1;r.hovered=!1;r.panelSize=[];r.currentPage=u.startPanel=parseInt(u.startPanel,10)||1;r.adjustLimit=u.infiniteSlides?0:1;r.outerPad=[r.$wrapper.innerWidth()-r.$wrapper.width(),r.$wrapper.innerHeight()-r.$wrapper.height()];u.playRtl&&r.$wrapper.addClass("rtl");r.original=[u.autoPlay,u.buildNavigation,u.buildArrows];u.expand&&(r.$outer=r.$wrapper.parent(),r.$window.css({width:"100%",height:"100%"}),r.outerDim=[r.$outer.width(),r.$outer.height()],r.checkResize());r.updateSlider();r.$lastPage=r.$currentPage;r.runTimes=n("div.anythingSlider").index(r.$wrapper)+1;r.regex=new RegExp("panel"+r.runTimes+"-(\\d+)","i");n.isFunction(n.easing[u.easing])||(u.easing="swing");u.pauseOnHover&&r.$wrapper.hover(function(){r.playing&&(r.$el.trigger("slideshow_paused",r),r.clearTimer(!0))},function(){r.playing&&(r.$el.trigger("slideshow_unpaused",r),r.startStop(r.playing,!0))});var t,f=u.hashTags?r.gotoHash()||u.startPanel:u.startPanel;r.setCurrentPage(f,!1);r.slideControls(!1);r.$wrapper.bind("mouseenter mouseleave",function(n){r.hovered=n.type==="mouseenter"?!0:!1;r.slideControls(r.hovered,!1)});u.enableKeyboard&&n(document).keyup(function(n){if(r.$wrapper.is(".activeSlider")&&!n.target.tagName.match("TEXTAREA|INPUT|SELECT"))switch(n.which){case 39:r.goForward();break;case 37:r.goBack()}});t="slideshow_paused slideshow_unpaused slide_init slide_begin slideshow_stop slideshow_start initialized swf_completed".split(" ");n.each("onShowPause onShowUnpause onSlideInit onSlideBegin onShowStop onShowStart onInitialized onSWFComplete".split(" "),function(i,u){n.isFunction(r.options[u])&&r.$el.bind(t[i],r.options[u])});n.isFunction(u.onSlideComplete)&&r.$el.bind("slide_complete",function(){setTimeout(function(){u.onSlideComplete(r)},0)});r.initialized=!0;r.$el.trigger("initialized",r)};r.updateSlider=function(){r.$el.children(".cloned").remove();r.$nav.empty();r.$items=r.$el.children();r.pages=r.$items.length;u.showMultiple=parseInt(u.showMultiple,10)||1;u.showMultiple>1&&(u.showMultiple>r.pages&&(u.showMultiple=r.pages),r.adjustMultiple=u.infiniteSlides&&r.pages>1?0:parseInt(u.showMultiple,10)-1,r.pages=r.$items.length-r.adjustMultiple);r.pages<=1?(u.autoPlay=!1,u.buildNavigation=!1,u.buildArrows=!1,r.$controls.hide(),r.$nav.hide(),r.$forward&&r.$forward.add(r.$back).hide()):(u.autoPlay=r.original[0],u.buildNavigation=r.original[1],u.buildArrows=r.original[2],r.$controls.show(),r.$nav.show(),r.$forward&&r.$forward.add(r.$back).show(),r.buildNavigation(),u.autoPlay&&(r.playing=!u.startStopped,r.buildAutoPlay()),u.buildArrows&&r.buildNextBackButtons());u.infiniteSlides&&r.pages>1&&(r.$el.prepend(r.$items.filter(":last").clone().addClass("cloned").removeAttr("id")),u.showMultiple>1?r.$el.append(r.$items.filter(":lt("+u.showMultiple+")").clone().addClass("cloned").addClass("multiple").removeAttr("id")):r.$el.append(r.$items.filter(":first").clone().addClass("cloned").removeAttr("id")),r.$el.find(".cloned").each(function(){n(this).find("a,input,textarea,select").attr("disabled","disabled");n(this).find("[id]").removeAttr("id")}));r.$items=r.$el.children().addClass("panel");r.setDimensions();u.resizeContents?(u.width&&(r.$items.css("width",u.width),r.$wrapper.css("width",r.getDim(r.currentPage)[0])),u.height&&r.$wrapper.add(r.$items).css("height",u.height)):r.$win.load(function(){r.setDimensions()});r.currentPage>r.pages&&(r.currentPage=r.pages);r.setCurrentPage(r.currentPage,!1);r.$nav.find("a").eq(r.currentPage-1).addClass("cur");r.hasEmb=r.$items.find("embed[src*=youtube]").length;r.hasSwfo=typeof swfobject!="undefined"&&swfobject.hasOwnProperty("embedSWF")&&n.isFunction(swfobject.embedSWF)?!0:!1;r.hasEmb&&r.hasSwfo&&r.$items.find("embed[src*=youtube]").each(function(t){var i=n(this).parent()[0].tagName==="OBJECT"?n(this).parent():n(this);i.wrap('<div id="ytvideo'+t+'"><\/div>');swfobject.embedSWF(n(this).attr("src")+"&enablejsapi=1&version=3&playerapiid=ytvideo"+t,"ytvideo"+t,i.attr("width"),i.attr("height"),"10",null,null,{allowScriptAccess:"always",wmode:u.addWmodeToObject,allowfullscreen:!0},{"class":i.attr("class"),style:i.attr("style")},function(){t>=r.hasEmb-1&&r.$el.trigger("swf_completed",r)}
9860)});u.showMultiple===!1&&r.$items.find("a").unbind("focus").bind("focus",function(t){r.$items.find(".focusedLink").removeClass("focusedLink");n(this).addClass("focusedLink");var i=n(this).closest(".panel");i.is(".activePage")||(r.gotoPage(r.$items.index(i)),t.preventDefault())})};r.buildNavigation=function(){var i,f,t;u.buildNavigation&&r.pages>1&&r.$items.filter(":not(.cloned)").each(function(e){var o=e+1;f=(o===1?"first":"")+(o===r.pages?"last":"");t=n('<a href="#"><\/a>').addClass("panel"+o).wrap('<li class="'+f+'" />');r.$nav.append(t.parent());n.isFunction(u.navigationFormatter)?(i=u.navigationFormatter(o,n(this)),t.html("<span>"+i+"<\/span>"),parseInt(t.find("span").css("text-indent"),10)<0&&t.addClass(u.tooltipClass).attr("title",i)):t.html("<span>"+o+"<\/span>");t.bind(u.clickControls,function(n){!r.flag&&u.enableNavigation&&(r.flag=!0,setTimeout(function(){r.flag=!1},100),r.gotoPage(o),u.hashTags&&r.setHash(o));n.preventDefault()})})};r.buildNextBackButtons=function(){r.$forward||(r.$forward=n('<span class="arrow forward"><a href="#"><span>'+u.forwardText+"<\/span><\/a><\/span>"),r.$back=n('<span class="arrow back"><a href="#"><span>'+u.backText+"<\/span><\/a><\/span>"),r.$back.bind(u.clickArrows,function(n){r.goBack();n.preventDefault()}),r.$forward.bind(u.clickArrows,function(n){r.goForward();n.preventDefault()}),r.$back.add(r.$forward).find("a").bind("focusin focusout",function(){n(this).toggleClass("hover")}),r.$wrapper.prepend(r.$forward).prepend(r.$back),r.$arrowWidth=r.$forward.width())};r.buildAutoPlay=function(){r.$startStop||r.pages<2||(r.$startStop=n("<a href='#' class='start-stop'><\/a>").html("<span>"+(r.playing?u.stopText:u.startText)+"<\/span>"),r.$controls.prepend(r.$startStop),r.$startStop.bind(u.clickSlideshow,function(n){u.enablePlay&&(r.startStop(!r.playing),r.playing&&(u.playRtl?r.goBack(!0):r.goForward(!0)));n.preventDefault()}).bind("focusin focusout",function(){n(this).toggleClass("hover")}),r.startStop(r.playing))};r.checkResize=function(n){clearTimeout(r.resizeTimer);r.resizeTimer=setTimeout(function(){var t=r.$outer.width(),i=r.$outer[0].tagName==="BODY"?r.$win.height():r.$outer.height(),u=r.outerDim;(u[0]!==t||u[1]!==i)&&(r.outerDim=[t,i],r.setDimensions(),r.gotoPage(r.currentPage,r.playing,null,1));typeof n=="undefined"&&r.checkResize()},500)};r.setDimensions=function(){var t,f,i,e,h,o=0,s=u.showMultiple>1?u.width||r.$window.width()/u.showMultiple:r.$window.width(),c=r.$win.width();u.expand&&(t=r.$outer.width()-r.outerPad[0],f=r.$outer.height()-r.outerPad[1],r.$wrapper.add(r.$window).add(r.$items).css({width:t,height:f}),s=u.showMultiple>1?t/u.showMultiple:t);r.$items.each(function(l){i=n(this).children("*");u.resizeContents?(t=parseInt(u.width,10)||s,f=parseInt(u.height,10)||r.$window.height(),n(this).css({width:t,height:f}),i.length===1&&(i.css({width:"100%",height:"100%"}),i[0].tagName==="OBJECT"&&i.find("embed").andSelf().attr({width:"100%",height:"100%"}))):(t=n(this).width(),h=t>=c?!0:!1,i.length===1&&h&&(e=i.width()>=c?s:i.width(),n(this).css("width",e),i.css("max-width",e),t=e),t=h?u.width||s:t,n(this).css("width",t),f=n(this).outerHeight(),n(this).css("height",f));r.panelSize[l]=[t,f,o];o+=t});r.$el.css("width",o<u.maxOverallWidth?o:u.maxOverallWidth)};r.getDim=function(n){n=u.infiniteSlides&&r.pages>1?n:n-1;var t,f=r.panelSize[n][0],i=r.panelSize[n][1];if(u.showMultiple>1)for(t=1;t<u.showMultiple;t++)f+=r.panelSize[(n+t)%u.showMultiple][0],i=Math.max(i,r.panelSize[n+t][1]);return[f,i]};r.gotoPage=function(n,t,i,f){if(!(r.pages<=1)&&(r.$lastPage=r.$currentPage,typeof n!="number"&&(n=u.startPanel,r.setCurrentPage(n)),!r.hasEmb||!r.checkVideo(r.playing))){if(n>r.pages+1-r.adjustLimit&&(n=!u.infiniteSlides&&!u.stopAtEnd?1:r.pages),n<r.adjustLimit&&(n=!u.infiniteSlides&&!u.stopAtEnd?r.pages:1),r.currentPage=n>r.pages?r.pages:n<1?1:r.currentPage,r.$currentPage=r.$items.eq(r.currentPage-r.adjustLimit),r.exactPage=n,r.$targetPage=r.$items.eq(n===0?r.pages-r.adjustLimit:n>r.pages?1-r.adjustLimit:n-r.adjustLimit),r.$el.trigger("slide_init",r),r.slideControls(!0,!1),t!==!0&&(t=!1),(!t||u.stopAtEnd&&n===r.pages)&&r.startStop(!1),r.$el.trigger("slide_begin",r),!u.resizeContents){var e=r.getDim(n);r.$wrapper.filter(":not(:animated)").animate({width:e[0],height:e[1]},{queue:!1,duration:f||u.animationTime,easing:u.easing})}r.$el.filter(":not(:animated)").animate({left:-r.panelSize[u.infiniteSlides&&r.pages>1?n:n-1][2]},{queue:!1,duration:f||u.animationTime,easing:u.easing,complete:function(){r.endAnimation(n,i)}})}};r.endAnimation=function(t,i){if(t===0?(r.$el.css("left",-r.panelSize[r.pages][2]),t=r.pages):t>r.pages&&(r.$el.css("left",-r.panelSize[1][2]),t=1),r.exactPage=t,r.setCurrentPage(t,!1),r.$items.removeClass("activePage").eq(t-r.adjustLimit).addClass("activePage"),r.hovered||r.slideControls(!1),r.hasEmb){var f=r.$currentPage.find("object[id*=ytvideo], embed[id*=ytvideo]");f.length&&n.isFunction(f[0].getPlayerState)&&f[0].getPlayerState()>0&&f[0].getPlayerState()!==5&&f[0].playVideo()}r.$el.trigger("slide_complete",r);typeof i=="function"&&i(r);u.autoPlayLocked&&!r.playing&&setTimeout(function(){r.startStop(!0)},u.resumeDelay-u.delay)};r.setCurrentPage=function(t,i){if(t=parseInt(t,10),t>r.pages+1-r.adjustLimit&&(t=r.pages-r.adjustLimit),t<r.adjustLimit&&(t=1),u.buildNavigation&&(r.$nav.find(".cur").removeClass("cur"),r.$nav.find("a").eq(t-1).addClass("cur")),!u.infiniteSlides&&u.stopAtEnd&&(r.$wrapper.find("span.forward")[t===r.pages?"addClass":"removeClass"]("disabled"),r.$wrapper.find("span.back")[t===1?"addClass":"removeClass"]("disabled"),t===r.pages&&r.playing&&r.startStop()),!i){var f=r.getDim(t);r.$wrapper.css({width:f[0],height:f[1]});r.$wrapper.scrollLeft(0);r.$el.css("left",-r.panelSize[u.infiniteSlides&&r.pages>1?t:t-1][2])}r.currentPage=t;r.$currentPage=r.$items.eq(t-r.adjustLimit).addClass("activePage");r.$wrapper.is(".activeSlider")||(n(".activeSlider").removeClass("activeSlider"),r.$wrapper.addClass("activeSlider"))};r.goForward=function(n){n!==!0&&(n=!1,r.startStop(!1));r.gotoPage(r.currentPage+1,n)};r.goBack=function(n){n!==!0&&(n=!1,r.startStop(!1));r.gotoPage(r.currentPage-1,n)};r.gotoHash=function(){var n=r.win.location.hash.match(r.regex);return n===null?"":parseInt(n[1],10)};r.setHash=function(n){var i="panel"+r.runTimes+"-",t=r.win.location.hash;typeof t!="undefined"&&(r.win.location.hash=t.indexOf(i)>0?t.replace(r.regex,i+n):t+"&"+i+n)};r.slideControls=function(n){var e=n?"slideDown":"slideUp",t=n?0:u.animationTime,o=n?u.animationTime:0,i=n?1:0,f=n?0:1;u.toggleControls&&r.$controls.stop(!0,!0).delay(t)[e](u.animationTime/2).delay(o);u.buildArrows&&u.toggleArrows&&(!r.hovered&&r.playing&&(f=1,i=0),r.$forward.stop(!0,!0).delay(t).animate({right:f*r.$arrowWidth,opacity:i},u.animationTime/2),r.$back.stop(!0,!0).delay(t).animate({left:f*r.$arrowWidth,opacity:i},u.animationTime/2))};r.clearTimer=function(n){r.timer&&(r.win.clearInterval(r.timer),!n&&r.slideshow&&(r.$el.trigger("slideshow_stop",r),r.slideshow=!1))};r.startStop=function(n,t){n!==!0&&(n=!1);n&&!t&&(r.$el.trigger("slideshow_start",r),r.slideshow=!0);r.playing=n;u.autoPlay&&(r.$startStop.toggleClass("playing",n).html("<span>"+(n?u.stopText:u.startText)+"<\/span>"),parseInt(r.$startStop.find("span").css("text-indent"),10)<0&&r.$startStop.addClass(u.tooltipClass).attr("title",n?"Stop":"Start"));n?(r.clearTimer(!0),r.timer=r.win.setInterval(function(){r.hasEmb&&r.checkVideo(n)||(u.playRtl?r.goBack(!0):r.goForward(!0))},u.delay)):r.clearTimer()};r.checkVideo=function(t){var i,f,e=!1;return r.$items.find("object[id*=ytvideo], embed[id*=ytvideo]").each(function(){i=n(this);i.length&&n.isFunction(i[0].getPlayerState)&&(f=i[0].getPlayerState(),t&&(f===1||f>
98602)&&r.$items.index(i.closest(".panel"))===r.currentPage&&u.resumeOnVideoEnd?e=!0:f>0&&i[0].pauseVideo())}),e};r.init()};n.anythingSlider.defaults={width:anythingSliderWidth,height:anythingSliderHeight,expand:anythingSliderExpand,resizeContents:anythingSliderResizeContents,showMultiple:anythingSliderShowMultiple,tooltipClass:anythingSliderZTooltipClass,theme:anythingSliderTheme,startPanel:anythingSliderStartPanel,hashTags:anythingSliderHashTags,infiniteSlides:anythingSliderInfiniteSlides,enableKeyboard:anythingSliderEnableKeyboard,buildArrows:anythingSliderBuildArrows,toggleArrows:anythingSliderToggleArrows,buildNavigation:anythingSliderBuildNavigation,enableNavigation:anythingSliderEnableNavigation,toggleControls:anythingSliderToggleControls,appendControlsTo:anythingSliderAppendControlsTo,navigationFormatter:anythingSliderNavigationFormatter,forwardText:anythingSliderForwardText,backText:anythingSliderBackText,enablePlay:anythingSliderEnablePlay,autoPlay:anythingSliderAutoPlay,autoPlayLocked:anythingSliderAutoPlayLocked,startStopped:anythingSliderStartStopped,pauseOnHover:anythingSliderPauseOnHover,resumeOnVideoEnd:anythingSliderResumeOnVideoEnd,stopAtEnd:anythingSliderStopAtEnd,playRtl:anythingSliderPlayRtl,startText:anythingSliderStartText,stopText:anythingSliderStopText,delay:anythingSliderDelay,resumeDelay:anythingSliderResumeDelay,animationTime:anythingSliderAnimationTime,easing:anythingSliderEasing,clickArrows:anythingSliderClickArrows,clickControls:anythingSliderClickControls,clickSlideshow:anythingSliderClickSlideshow,addWmodeToObject:anythingSliderAddWmodeToObject,maxOverallWidth:anythingSliderMaxOverallWidth};n.fn.anythingSlider=function(t,i){return this.each(function(){var u,r=n(this).data("AnythingSlider");(typeof t).match("object|undefined")?r?r.updateSlider():new n.anythingSlider(this,t):/\d/.test(t)&&!isNaN(t)&&r&&(u=typeof t=="number"?t:parseInt(n.trim(t),10),u>=1&&u<=r.pages&&r.gotoPage(u,!1,i))})}})(jQuery);/*! 9861 * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015 9862 * @version 1.3.3 9863 * 9864 * Date formatter utility library that allows formatting date/time variables or Date objects using PHP DateTime format. 9865 * @see http://php.net/manual/en/function.date.php 9866 * 9867 * For more JQuery plugins visit http://plugins.krajee.com 9868 * For more Yii related demos visit http://demos.krajee.com 9869 */ 9870var DateFormatter;(function(){"use strict";var t,n,i,f,r,u;r=864e5;u=3600;t=function(n,t){return typeof n=="string"&&typeof t=="string"&&n.toLowerCase()===t.toLowerCase()};n=function(t,i,r){var f=r||"0",u=t.toString();return u.length<i?n(f+u,i):u};i=function(n){var u,t,r;for(n=n||{},u=1;u<arguments.length;u++)if(t=arguments[u],t)for(r in t)t.hasOwnProperty(r)&&(typeof t[r]=="object"?i(n[r],t[r]):n[r]=t[r]);return n};f={dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"],ordinal:function(n){var t=n%10,i={1:"st",2:"nd",3:"rd"};return Math.floor(n%100/10)===1||!i[t]?"th":i[t]}},separators:/[ \-+\/\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,tzClip:/[^-+\dA-Z]/g};DateFormatter=function(n){var t=this,r=i(f,n);t.dateSettings=r.dateSettings;t.separators=r.separators;t.validParts=r.validParts;t.intParts=r.intParts;t.tzParts=r.tzParts;t.tzClip=r.tzClip};DateFormatter.prototype={constructor:DateFormatter,parseDate:function(n,i){var v=this,f,c,e,l=!1,h=!1,o,r,a=v.dateSettings,s,y,p,w,b,u={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!n)return undefined;if(n instanceof Date)return n;if(typeof n=="number")return new Date(n);if(i==="U")return e=parseInt(n),e?new Date(e*1e3):n;if(typeof n!="string")return"";if(f=i.match(v.validParts),!f||f.length===0)throw new Error("Invalid date format definition.");for(c=n.replace(v.separators,'\0').split('\0'),e=0;e<c.length;e++){o=c[e];r=parseInt(o);switch(f[e]){case"y":case"Y":w=o.length;w===2?u.year=parseInt((r<70?"20":"19")+o):w===4&&(u.year=r);l=!0;break;case"m":case"n":case"M":case"F":isNaN(o)?(s=a.monthsShort.indexOf(o),s>-1&&(u.month=s+1),s=a.months.indexOf(o),s>-1&&(u.month=s+1)):r>=1&&r<=12&&(u.month=r);l=!0;break;case"d":case"j":r>=1&&r<=31&&(u.day=r);l=!0;break;case"g":case"h":y=f.indexOf("a")>-1?f.indexOf("a"):f.indexOf("A")>-1?f.indexOf("A"):-1;b=c[y];y>-1?(p=t(b,a.meridiem[0])?0:t(b,a.meridiem[1])?12:-1,r>=1&&r<=12&&p>-1?u.hour=r+p-1:r>=0&&r<=23&&(u.hour=r)):r>=0&&r<=23&&(u.hour=r);h=!0;break;case"G":case"H":r>=0&&r<=23&&(u.hour=r);h=!0;break;case"i":r>=0&&r<=59&&(u.min=r);h=!0;break;case"s":r>=0&&r<=59&&(u.sec=r);h=!0}}if(l===!0&&u.year&&u.month&&u.day)u.date=new Date(u.year,u.month-1,u.day,u.hour,u.min,u.sec,0);else{if(h!==!0)return!1;u.date=new Date(0,0,0,u.hour,u.min,u.sec,0)}return u.date}
9870,guessDate:function(n,t){if(typeof n!="string")return n;var h=this,s=n.replace(h.separators,'\0').split('\0'),e=t.match(h.validParts),i=new Date,o=0,c,f,r,u;if(!/^[djmn]/g.test(e[0]))return n;for(f=0;f<s.length;f++){o=2;r=s[f];u=parseInt(r.substr(0,2));switch(f){case 0:e[0]==="m"||e[0]==="n"?i.setMonth(u-1):i.setDate(u);break;case 1:e[0]==="m"||e[0]==="n"?i.setDate(u):i.setMonth(u-1);break;case 2:c=i.getFullYear();r.length<4?(i.setFullYear(parseInt(c.toString().substr(0,4-r.length)+r)),o=r.length):(i.setFullYear=parseInt(r.substr(0,4)),o=4);break;case 3:i.setHours(u);break;case 4:i.setMinutes(u);break;case 5:i.setSeconds(u)}r.substr(o).length>0&&s.splice(f+1,0,r.substr(o))}return i},parseFormat:function(t,i){var o=this,e=o.dateSettings,f,h=/\\?(.?)/gi,s=function(n,t){return f[n]?f[n]():t};return f={d:function(){return n(f.j(),2)},D:function(){return e.daysShort[f.w()]},j:function(){return i.getDate()},l:function(){return e.days[f.w()]},N:function(){return f.w()||7},w:function(){return i.getDay()},z:function(){var n=new Date(f.Y(),f.n()-1,f.j()),t=new Date(f.Y(),0,1);return Math.round((n-t)/r)},W:function(){var t=new Date(f.Y(),f.n()-1,f.j()-f.N()+3),i=new Date(t.getFullYear(),0,4);return n(1+Math.round((t-i)/r/7),2)},F:function(){return e.months[i.getMonth()]},m:function(){return n(f.n(),2)},M:function(){return e.monthsShort[i.getMonth()]},n:function(){return i.getMonth()+1},t:function(){return new Date(f.Y(),f.n(),0).getDate()},L:function(){var n=f.Y();return n%4==0&&n%100!=0||n%400==0?1:0},o:function(){var n=f.n(),t=f.W(),i=f.Y();return i+(n===12&&t<9?1:n===1&&t>9?-1:0)},Y:function(){return i.getFullYear()},y:function(){return f.Y().toString().slice(-2)},a:function(){return f.A().toLowerCase()},A:function(){var n=f.G()<12?0:1;return e.meridiem[n]},B:function(){var t=i.getUTCHours()*u,r=i.getUTCMinutes()*60,f=i.getUTCSeconds();return n(Math.floor((t+r+f+u)/86.4)%1e3,3)},g:function(){return f.G()%12||12},G:function(){return i.getHours()},h:function(){return n(f.g(),2)},H:function(){return n(f.G(),2)},i:function(){return n(i.getMinutes(),2)},s:function(){return n(i.getSeconds(),2)},u:function(){return n(i.getMilliseconds()*1e3,6)},e:function(){var n=/\((.*)\)/.exec(String(i))[1];return n||"Coordinated Universal Time"},T:function(){var n=(String(i).match(o.tzParts)||[""]).pop().replace(o.tzClip,"");return n||"UTC"},I:function(){var n=new Date(f.Y(),0),t=Date.UTC(f.Y(),0),i=new Date(f.Y(),6),r=Date.UTC(f.Y(),6);return n-t!=i-r?1:0},O:function(){var t=i.getTimezoneOffset(),r=Math.abs(t);return(t>0?"-":"+")+n(Math.floor(r/60)*100+r%60,4)},P:function(){var n=f.O();return n.substr(0,3)+":"+n.substr(3,2)},Z:function(){return-i.getTimezoneOffset()*60},c:function(){return"Y-m-d\\TH:i:sP".replace(h,s)},r:function(){return"D, d M Y H:i:s O".replace(h,s)},U:function(){return i.getTime()/1e3||0}},s(t,t)},formatDate:function(n,t){var r=this,i,o,e,u,f,s="";if(typeof n=="string"&&(n=r.parseDate(n,t),n===!1))return!1;if(n instanceof Date){for(e=t.length,i=0;i<e;i++)(f=t.charAt(i),f!=="S")&&(u=r.parseFormat(f,n),i!==e-1&&r.intParts.test(f)&&t.charAt(i+1)==="S"&&(o=parseInt(u),u+=r.dateSettings.ordinal(o)),s+=u);return s}return""}}})(); 9871/** 9872 * @preserve jQuery DateTimePicker plugin v2.5.4 9873 * @homepage http://xdsoft.net/jqplugins/datetimepicker/ 9874 * @author Chupurnov Valeriy (<[email protected]>) 9875 */ 9876(function(n){typeof define=="function"&&define.amd?define(["jquery","jquery-mousewheel"],n):typeof exports=="object"?module.exports=n:n(jQuery)})(function(n){"use strict";function f(n,t,i){this.date=n;this.desc=t;this.style=i}var r={i18n:{ar:{months:["ÙØ§ÙÙÙ Ø§ÙØ«Ø§ÙÙ","شباط","آذار","ÙÙØ³Ø§Ù","٠اÙÙ","ØØ²ÙراÙ","ØªÙ ÙØ²","آب","Ø£ÙÙÙÙ","تشرÙÙ Ø§ÙØ£ÙÙ","تشرÙÙ Ø§ÙØ«Ø§ÙÙ","ÙØ§ÙÙÙ Ø§ÙØ£ÙÙ"],dayOfWeekShort:["Ù","Ø«","ع","Ø®","ج","س","Ø"],dayOfWeek:["Ø§ÙØ£ØØ¯","Ø§ÙØ§Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª","Ø§ÙØ£ØØ¯"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["DuminicÄ","Luni","MarÅ£i","Miercuri","Joi","Vineri","SâmbÄtÄ"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","AprÃl","MaÃ","JúnÃ","JúlÃ","Ãgúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Ãrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Ãriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["ЯнÑаÑи","ФевÑÑаÑи","ÐаÑÑ","ÐпÑил","Ðай","Юни","Юли","ÐвгÑÑÑ","СепÑемвÑи","ÐкÑомвÑи","ÐоемвÑи","ÐекемвÑи"],dayOfWeekShort:["Ðд","Ðн","ÐÑ","СÑ","ЧÑ","ÐÑ","Сб"],dayOfWeek:["ÐеделÑ","Ðонеделник","ÐÑоÑник","СÑÑда","ЧеÑвÑÑÑÑк","ÐеÑÑк","СÑбоÑа"]},fa:{months:["ÙØ±ÙردÛÙ","Ø§Ø±Ø¯ÛØ¨Ùشت","خرداد","ØªÛØ±","٠رداد","Ø´ÙØ±ÛÙØ±","Ù ÙØ±","آباÙ","آذر","دÛ","بÙÙ Ù","اسÙÙØ¯"],dayOfWeekShort:["ÛÚ©Ø´ÙØ¨Ù","Ø¯ÙØ´ÙبÙ","Ø³Ù Ø´ÙØ¨Ù","ÚÙØ§Ø±Ø´ÙبÙ","Ù¾ÙØ¬Ø´ÙبÙ","ج٠عÙ","Ø´ÙØ¨Ù"],dayOfWeek:["ÛÚ©âØ´ÙØ¨Ù","Ø¯ÙØ´ÙبÙ","سÙâØ´ÙØ¨Ù","ÚÙØ§Ø±Ø´ÙبÙ","Ù¾ÙØ¬âØ´ÙØ¨Ù","ج٠عÙ","Ø´ÙØ¨Ù","ÛÚ©âØ´ÙØ¨Ù"]},ru:{months:["ЯнваÑÑ","ФевÑалÑ","ÐаÑÑ","ÐпÑелÑ","Ðай","ÐÑнÑ","ÐÑлÑ","ÐвгÑÑÑ","СенÑÑбÑÑ","ÐкÑÑбÑÑ","ÐоÑбÑÑ","ÐекабÑÑ"],dayOfWeekShort:["ÐÑ","Ðн","ÐÑ","СÑ","ЧÑ","ÐÑ","Сб"],dayOfWeek:["ÐоÑкÑеÑенÑе","ÐонеделÑник","ÐÑоÑник","СÑеда","ЧеÑвеÑг","ÐÑÑниÑа","СÑббоÑа"]},uk:{months:["СÑÑенÑ","ÐÑÑий","ÐеÑезенÑ","ÐвÑÑенÑ","ТÑавенÑ","ЧеÑвенÑ","ÐипенÑ","СеÑпенÑ","ÐеÑеÑенÑ","ÐовÑенÑ","ÐиÑÑопад","ÐÑÑденÑ"],dayOfWeekShort:["Ðдл","Ðнд","ÐÑÑ","СÑд","ЧÑв","ÐÑн","СбÑ"],dayOfWeek:["ÐедÑлÑ","ÐонедÑлок","ÐÑвÑоÑок","СеÑеда","ЧеÑвеÑ","Ð'ÑÑниÑÑ","СÑбоÑа"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
9876ay","Saturday"]},el:{months:["ÎανοÏ
άÏιοÏ","ΦεβÏοÏ
άÏιοÏ","ÎάÏÏιοÏ","ÎÏÏίλιοÏ","ÎάιοÏ","ÎοÏνιοÏ","ÎοÏλιοÏ","ÎÏγοÏ
ÏÏοÏ","ΣεÏÏÎμβÏιοÏ","ÎκÏÏβÏιοÏ","ÎοÎμβÏιοÏ","ÎεκÎμβÏιοÏ"],dayOfWeekShort:["ÎÏ
Ï","ÎεÏ
","ΤÏι","ΤεÏ","Πεμ","ΠαÏ","Σαβ"],dayOfWeek:["ÎÏ
Ïιακή","ÎεÏ
ÏÎÏα","ΤÏίÏη","ΤεÏάÏÏη","Î ÎμÏÏη","ΠαÏαÏκεÏ
ή","ΣάββαÏο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Åubat","Mart","Nisan","Mayıs","Haziran","Temmuz","AÄustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Ãar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","ÃarÅamba","PerÅembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มà¸à¸£à¸²à¸à¸¡","à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹","มีà¸à¸²à¸à¸¡","à¹à¸¡à¸©à¸²à¸¢à¸","à¸à¸¤à¸©à¸ าà¸à¸¡","มิà¸à¸¸à¸à¸²à¸¢à¸","à¸à¸£à¸à¸à¸²à¸à¸¡","สิà¸à¸«à¸²à¸à¸¡","à¸à¸±à¸à¸¢à¸²à¸¢à¸","à¸à¸¸à¸¥à¸²à¸à¸¡","à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸","à¸à¸±à¸à¸§à¸²à¸à¸¡"],dayOfWeekShort:["à¸à¸².","à¸.","à¸.","à¸.","à¸à¸¤.","ศ.","ส."],dayOfWeek:["à¸à¸²à¸à¸´à¸à¸¢à¹","à¸à¸±à¸à¸à¸£à¹","à¸à¸±à¸à¸à¸²à¸£","à¸à¸¸à¸","à¸à¸¤à¸«à¸±à¸ª","ศุà¸à¸£à¹","à¹à¸ªà¸²à¸£à¹","à¸à¸²à¸à¸´à¸à¸¢à¹"]},pl:{months:["styczeÅ","luty","marzec","kwiecieÅ","maj","czerwiec","lipiec","sierpieÅ","wrzesieÅ","październik","listopad","grudzieÅ"],dayOfWeekShort:["nd","pn","wt","År","cz","pt","sb"],dayOfWeek:["niedziela","poniedziaÅek","wtorek","Åroda","czwartek","piÄ
tek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["䏿","äºæ","䏿","åæ","äºæ","å
æ","䏿","å
«æ","乿","åæ","å䏿","åäºæ"],dayOfWeekShort:["æ¥","ä¸","äº","ä¸","å","äº","å
"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1ì","2ì","3ì","4ì","5ì","6ì","7ì","8ì","9ì","10ì","11ì","12ì"],dayOfWeekShort:["ì¼","ì","í","ì","목","ê¸","í "],dayOfWeek:["ì¼ìì¼","ììì¼","íìì¼","ììì¼","목ìì¼","ê¸ìì¼","í ìì¼"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1æ","2æ","3æ","4æ","5æ","6æ","7æ","8æ","9æ","10æ","11æ","12æ"],dayOfWeekShort:["æ¥","æ","ç«","æ°´","æ¨","é","å"],dayOfWeek:["æ¥æ","ææ","ç«æ","æ°´æ","æ¨æ","éæ","åæ"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chá»§ nháºt","Thứ hai","Thứ ba","Thứ tư","Thứ nÄm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Äet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Äetrtek","Petek","Sobota"]},cs:{months:["Leden","Ãnor","BÅezen","Duben","KvÄten","Äerven","Äervenec","Srpen","ZáÅÃ","ÅÃjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Ãt","St","Ät","Pá","So"]},hu:{months:["Január","Február","Március","Ãprilis","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfÅ","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ãa","Ã","Ca","C","Å"],dayOfWeek:["Bazar","Bazar ertÉsi","ÃÉrÅÉnbÉ axÅamı","ÃÉrÅÉnbÉ","CümÉ axÅamı","CümÉ","ÅÉnbÉ"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Äet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Äetvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
9876ay","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["SijeÄanj","VeljaÄa","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Äet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Äetvrtak","Petak","Subota"]},ko:{months:["1ì","2ì","3ì","4ì","5ì","6ì","7ì","8ì","9ì","10ì","11ì","12ì"],dayOfWeekShort:["ì¼","ì","í","ì","목","ê¸","í "],dayOfWeek:["ì¼ìì¼","ììì¼","íìì¼","ììì¼","목ìì¼","ê¸ìì¼","í ìì¼"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","GegužÄs","Birželio","Liepos","RugpjÅ«Äio","RugsÄjo","Spalio","LapkriÄio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Å eÅ¡"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","TreÄiadienis","Ketvirtadienis","Penktadienis","Å eÅ¡tadienis"]},lv:{months:["JanvÄris","FebruÄris","Marts","AprÄ«lis ","Maijs","JÅ«nijs","JÅ«lijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["SvÄtdiena","Pirmdiena","Otrdiena","TreÅ¡diena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["ÑанÑаÑи","ÑевÑÑаÑи","маÑÑ","апÑил","маÑ","ÑÑни","ÑÑли","авгÑÑÑ","ÑепÑемвÑи","окÑомвÑи","ноемвÑи","декемвÑи"],dayOfWeekShort:["нед","пон","вÑо","ÑÑе","ÑеÑ","пеÑ","Ñаб"],dayOfWeek:["Ðедела","Ðонеделник","ÐÑоÑник","СÑеда","ЧеÑвÑÑок","ÐеÑок","СабоÑа"]},mn:{months:["1-Ñ ÑаÑ","2-Ñ ÑаÑ","3-Ñ ÑаÑ","4-Ñ ÑаÑ","5-Ñ ÑаÑ","6-Ñ ÑаÑ","7-Ñ ÑаÑ","8-Ñ ÑаÑ","9-Ñ ÑаÑ","10-Ñ ÑаÑ","11-Ñ ÑаÑ","12-Ñ ÑаÑ"],dayOfWeekShort:["Ðав","ÐÑг","ÐÑ
а","ÐÒ¯Ñ","ÐÑн","ÐÑм","ÐÑм"],dayOfWeek:["Ðаваа","ÐÑгмаÑ","ÐÑ
агва","ÐÒ¯ÑÑв","ÐааÑан","ÐÑмба","ÐÑм"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","AprÃl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Å t","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Å tvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E MartÄ","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","Äet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Äetvrtak","Petak","Subota"]},sr:{months:["ÑанÑаÑ","ÑебÑÑаÑ","маÑÑ","апÑил","маÑ","ÑÑн","ÑÑл","авгÑÑÑ","ÑепÑембаÑ","окÑобаÑ","новембаÑ","деÑембаÑ"],dayOfWeekShort:["нед","пон","ÑÑо","ÑÑе","ÑеÑ","пеÑ","ÑÑб"],dayOfWeek:["ÐедеÑа","ÐонедеÑак","УÑоÑак","СÑеда","ЧеÑвÑÑак","ÐеÑак","СÑбоÑа"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","MÃ¥ndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["䏿","äºæ","䏿","åæ","äºæ","å
æ","䏿","å
«æ","乿","åæ","å䏿","åäºæ"],dayOfWeekShort:["æ¥","ä¸","äº","ä¸","å","äº","å
"],dayOfWeek:["æææ¥","ææä¸","ææäº","ææä¸","ææå","ææäº","ææå
"]},zh:{months:["䏿","äºæ","䏿","åæ","äºæ","å
æ","䏿","å
«æ","乿","åæ","å䏿","åäºæ"],dayOfWeekShort:["æ¥","ä¸","äº","ä¸","å","äº","å
"],dayOfWeek:["æææ¥","ææä¸","ææäº","ææä¸","ææå","ææäº","ææå
"]},he:{months:["×× ××ר","פ×ר××ר","×רץ","×פר××","×××","××× ×","××××","××××ס×","ספ×××ר","×××§×××ר","× ××××ר","×צ××ר"],dayOfWeekShort:["×'","×'","×'","×'","×'","×'","ש×ת"],dayOfWeek:["ר×ש××","×©× ×","ש××ש×","ר×××¢×","×××ש×","ש×ש×","ש×ת","ר×ש××"]},hy:{months:["ÕÕ¸ÖÕ¶Õ¾Õ¡Ö","ÕÕ¥Õ¿ÖÕ¾Õ¡Ö","ÕÕ¡ÖÕ¿","Ô±ÕºÖÕ«Õ¬","ÕÕ¡ÕµÕ«Õ½","ÕÕ¸ÖÕ¶Õ«Õ½","ÕÕ¸ÖÕ¬Õ«Õ½","ÕÕ£Õ¸Õ½Õ¿Õ¸Õ½","ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö","ÕÕ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö","ÕÕ¸ÕµÕ¥Õ´Õ¢Õ¥Ö","Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö"],dayOfWeekShort:["Ô¿Õ«","ÔµÖÕ¯","ÔµÖÖ","ÕÕ¸Ö","ÕÕ¶Õ£","ÕÖÖÕ¢","ÕÕ¢Õ©"],dayOfWeek:["Ô¿Õ«ÖÕ¡Õ¯Õ«","ÔµÖÕ¯Õ¸ÖÕ·Õ¡Õ¢Õ©Õ«","ÔµÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«","ÕÕ¸ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«","ÕÕ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«","ÕÖÖÕ¢Õ¡Õ©","ÕÕ¡Õ¢Õ¡Õ©"]}
9876,kg:{months:["Ò®ÑÑүн айÑ","ÐиÑдин айÑ","Ðалган ÐÑÑан","ЧÑн ÐÑÑан","ÐÑгÑ","ÐÑлжа","Теке","ÐÐ°Ñ Ðона","ÐÑк Ðона","ТогÑздÑн айÑ","ÐеÑинин айÑ","ÐеÑÑин айÑ"],dayOfWeekShort:["Ðек","Ðүй","Шей","ШаÑ","Ðей","ÐÑм","ÐÑе"],dayOfWeek:["ÐекÑемб","ÐүйÑөмб","ШейÑемб","ШаÑÑемб","ÐейÑемби","ÐÑма","ÐÑенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["áááááá á","ááááá áááá","ááá á¢á","ááá ááá","áááá¡á","ááááá¡á","ááááá¡á","ááááá¡á¢á","á¡áá¥á¢ááááá á","áá¥á¢ááááá á","ááááááá á","áááááááá á"],dayOfWeekShort:["áá","áá á¨","á¡ááá¨","ááá®","á®á£á","ááá ","á¨áá"],dayOfWeek:["áááá á","áá á¨ááááá","á¡ááá¨ááááá","ááá®á¨ááááá","á®á£áá¨ááááá","ááá áá¡áááá","á¨ááááá"]}},value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,disabledMinTime:!1,disabledMaxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1},t=null,e="en",i="en",o={meridiem:["AM","PM"]},u=function(){var u=r.i18n[i],f={days:u.dayOfWeek,daysShort:u.dayOfWeekShort,months:u.months,monthsShort:n.map(u.months,function(n){return n.substring(0,3)})};t=new DateFormatter({dateSettings:n.extend({},o,f)})};n.datetimepicker={setLocale:function(n){var t=r.i18n[n]?n:e;i!=t&&(i=t,u())},setDateFormatter:function(n){t=n},RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"};u();window.getComputedStyle||(window.getComputedStyle=function(n){return this.el=n,this.getPropertyValue=function(t){var i=/(\-([a-z]){1})/g;return t==="float"&&(t="styleFloat"),i.test(t)&&(t=t.replace(i,function(n,t,i){return i.toUpperCase()})),n.currentStyle[t]||null},this});Array.prototype.indexOf||(Array.prototype.indexOf=function(n,t){for(var i=t||0,r=this.length;i<r;i+=1)if(this[i]===n)return i;return-1});Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()};n.fn.xdsoftScroller=function(t){return this.each(function(){var i=n(this),s=function(n){var t={x:0,y:0},i;return n.type==="touchstart"||n.type==="touchmove"||n.type==="touchend"||n.type==="touchcancel"?(i=n.originalEvent.touches[0]||n.originalEvent.changedTouches[0],t.x=i.clientX,t.y=i.clientY):(n.type==="mousedown"||n.type==="mouseup"||n.type==="mousemove"||n.type==="mouseover"||n.type==="mouseout"||n.type==="mouseenter"||n.type==="mouseleave")&&(t.x=n.clientX,t.y=n.clientY),t},f,u,e,o,r,h=100,c=!1,w=0,a=0,v=0,y=!1,p=0,l=function(){};if(t==="hide"){i.find(".xdsoft_scrollbar").hide();return}if(!n(this).hasClass("xdsoft_scroller_box")){f=i.children().eq(0);u=i[0].clientHeight;e=f[0].offsetHeight;o=n('<div class="xdsoft_scrollbar"><\/div>');r=n('<div class="xdsoft_scroller"><\/div>');o.append(r);i.addClass("xdsoft_scroller_box").append(o);l=function(n){var t=s(n).y-w+p;t<0&&(t=0);t+r[0].offsetHeight>v&&(t=v-r[0].offsetHeight);i.trigger("scroll_element.xdsoft_scroller",[h?t/h:0])};r.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(f){if(u||i.trigger("resize_scroll.xdsoft_scroller",[t]),w=s(f).y,p=parseInt(r.css("margin-top"),10),v=o[0].offsetHeight,f.type==="mousedown"||f.type==="touchstart"){document&&n(document.body).addClass("xdsoft_noselect");n([document.body,window]).on("touchend mouseup.xdsoft_scroller",function e(){n([document.body,window]).off("touchend mouseup.xdsoft_scroller",e).off("mousemove.xdsoft_scroller",l).removeClass("xdsoft_noselect")});n(document.body).on("mousemove.xdsoft_scroller",l)}else y=!0,f.stopPropagation(),f.preventDefault()}).on("touchmove",function(n){y&&(n.preventDefault(),l(n))}).on("touchend touchcancel",function(){y=!1;p=0});i.on("scroll_element.xdsoft_scroller",function(n,t){u||i.trigger("resize_scroll.xdsoft_scroller",[t,!0]);t=t>1?1:t<0||isNaN(t)?0:t;r.css("margin-top",h*t);setTimeout(function(){f.css("marginTop",-parseInt((f[0].offsetHeight-u)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(n,t,s){var c,l;u=i[0].clientHeight;e=f[0].offsetHeight;c=u/e;l=c*o[0].offsetHeight;c>1?r.hide():(r.show(),r.css("height",parseInt(l>10?l:10,10)),h=o[0].offsetHeight-r[0].offsetHeight,s!==!0&&i.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(f.css("marginTop"),10))/(e-u)]))});i.on("mousewheel",function(n){var t=Math.abs(parseInt(f.css("marginTop"),10));return t=t-n.deltaY*20,t<0&&(t=0),i.trigger("scroll_element.xdsoft_scroller",[t/(e-u)]),n.stopPropagation(),!1});i.on("touchstart",function(n){c=s(n);a=Math.abs(parseInt(f.css("marginTop"),10))});i.on("touchmove",function(n){if(c){n.preventDefault();var t=s(n);i.trigger("scroll_element.xdsoft_scroller",[(a-(t.y-c.y))/(e-u)])}});i.on("touchend touchcancel",function(){c=!1;a=0})}i.trigger("resize_scroll.xdsoft_scroller",[t])})};n.fn.datetimepicker=function(u,e){var v=this,y=48,nt=57,p=96,w=105,c=17,s=46,b=13,tt=27,h=8,it=37,rt=38,ut=39,ft=40,k=9,et=116,ot=65,st=67,ht=86,ct=90,lt=89,l=!1,o=n.isPlainObject(u)||!u?n.extend(!0,{},r,u):n.extend(!0,{},r),d=0,a,g,at=function(n){n.on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function t(){n.is(":disabled")||n.data("xdsoft_datetimepicker")||(clearTimeout(d),d=setTimeout(function(){n.data("xdsoft_datetimepicker")||a(n);n.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",t).trigger("open.xdsoft")},100))})};a=function(r){function ui(){var n=!1,t;return o.startDate?n=a.strToDate(o.startDate):(n=o.value||(r&&r.val&&r.val()?r.val():""),n?n=a.strToDateTime(n):o.defaultDate&&(n=a.strToDateTime(o.defaultDate),o.defaultTime&&(t=a.strtotime(o.defaultTime),n.setHours(t.getHours()),n.setMinutes(t.getMinutes())))),n&&a.isValidDate(n)?e.data("changed",!0):n="",n||0}function ei(t){var i=function(n,t){var i=n.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(i).test(t)},f=function(n){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();
9876return t.getBookmark().charCodeAt(2)-2}if(n.setSelectionRange)return n.selectionStart}catch(i){return 0}},u=function(n,t){if(n=typeof n=="string"||n instanceof String?document.getElementById(n):n,!n)return!1;if(n.createTextRange){var i=n.createTextRange();return i.collapse(!0),i.moveEnd("character",t),i.moveStart("character",t),i.select(),!0}return n.setSelectionRange?(n.setSelectionRange(t,t),!0):!1};if(t.mask&&r.off("keydown.xdsoft"),t.mask===!0&&(t.mask=typeof moment!="undefined"?t.format.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59"):t.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),n.type(t.mask)==="string"){i(t.mask,r.val())||(r.val(t.mask.replace(/[0-9]/g,"_")),u(r[0],0));r.on("keydown.xdsoft",function(e){var v=this.value,o=e.which,a,d;if(o>=y&&o<=nt||o>=p&&o<=w||o===h||o===s){for(a=f(this),d=o!==h&&o!==s?String.fromCharCode(p<=o&&o<=w?o-y:o):"_",(o===h||o===s)&&a&&(a-=1,d="_");/[^0-9_]/.test(t.mask.substr(a,1))&&a<t.mask.length&&a>0;)a+=o===h||o===s?-1:1;if(v=v.substr(0,a)+d+v.substr(a+1),n.trim(v)==="")v=t.mask.replace(/[0-9]/g,"_");else if(a===t.mask.length)return e.preventDefault(),!1;for(a+=o===h||o===s?0:1;/[^0-9_]/.test(t.mask.substr(a,1))&&a<t.mask.length&&a>0;)a+=o===h||o===s?-1:1;i(t.mask,v)?(this.value=v,u(this,a)):n.trim(v)===""?this.value=t.mask.replace(/[0-9]/g,"_"):r.trigger("error_input.xdsoft")}else if([ot,st,ht,ct,lt].indexOf(o)!==-1&&l||[tt,rt,ft,it,ut,et,c,k,b].indexOf(o)!==-1)return!0;return e.preventDefault(),!1})}}var e=n('<div class="xdsoft_datetimepicker xdsoft_noselect"><\/div>'),oi=n('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net<\/a><\/div>'),at=n('<div class="xdsoft_datepicker active"><\/div>'),d=n('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"><\/button><button type="button" class="xdsoft_today_button"><\/button><div class="xdsoft_label xdsoft_month"><span><\/span><i><\/i><\/div><div class="xdsoft_label xdsoft_year"><span><\/span><i><\/i><\/div><button type="button" class="xdsoft_next"><\/button><\/div>'),kt=n('<div class="xdsoft_calendar"><\/div>'),yt=n('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"><\/button><div class="xdsoft_time_box"><\/div><button type="button" class="xdsoft_next"><\/button><\/div>'),g=yt.find(".xdsoft_time_box").eq(0),v=n('<div class="xdsoft_time_variant"><\/div>'),dt=n('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected<\/button>'),gt=n('<div class="xdsoft_select xdsoft_monthselect"><div><\/div><\/div>'),ni=n('<div class="xdsoft_select xdsoft_yearselect"><div><\/div><\/div>'),pt=!1,fi,ti,wt,vt,bt,ii=0,a,ri;o.id&&e.attr("id",o.id);o.style&&e.attr("style",o.style);o.weeks&&e.addClass("xdsoft_showweeks");o.rtl&&e.addClass("xdsoft_rtl");e.addClass("xdsoft_"+o.theme);e.addClass(o.className);d.find(".xdsoft_month span").after(gt);d.find(".xdsoft_year span").after(ni);d.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(t){var i=n(this).find(".xdsoft_select").eq(0),f=0,e=0,o=i.is(":visible"),r,u;for(d.find(".xdsoft_select").hide(),a.currentTime&&(f=a.currentTime[n(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),i[o?"hide":"show"](),r=i.find("div.xdsoft_option"),u=0;u<r.length;u+=1)if(r.eq(u).data("value")===f)break;else e+=r[0].offsetHeight;return i.xdsoftScroller(e/(i.children()[0].offsetHeight-i[0].clientHeight)),t.stopPropagation(),!1});d.find(".xdsoft_select").xdsoftScroller().on("touchstart mousedown.xdsoft",function(n){n.stopPropagation();n.preventDefault()}).on("touchstart mousedown.xdsoft",".xdsoft_option",function(){(a.currentTime===undefined||a.currentTime===null)&&(a.currentTime=a.now());var t=a.currentTime.getFullYear();a&&a.currentTime&&a.currentTime[n(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](n(this).data("value"));n(this).parent().parent().hide();e.trigger("xchange.xdsoft");o.onChangeMonth&&n.isFunction(o.onChangeMonth)&&o.onChangeMonth.call(e,a.currentTime,e.data("input"));t!==a.currentTime.getFullYear()&&n.isFunction(o.onChangeYear)&&o.onChangeYear.call(e,a.currentTime,e.data("input"))});e.getValue=function(){return a.getCurrentTime()};e.setOptions=function(i){var u={};if(o=n.extend(!0,{},o,i),i.allowTimes&&n.isArray(i.allowTimes)&&i.allowTimes.length&&(o.allowTimes=n.extend(!0,[],i.allowTimes)),i.weekends&&n.isArray(i.weekends)&&i.weekends.length&&(o.weekends=n.extend(!0,[],i.weekends)),i.allowDates&&n.isArray(i.allowDates)&&i.allowDates.length&&(o.allowDates=n.extend(!0,[],i.allowDates)),i.allowDateRe&&Object.prototype.toString.call(i.allowDateRe)==="[object String]"&&(o.allowDateRe=new RegExp(i.allowDateRe)),i.highlightedDates&&n.isArray(i.highlightedDates)&&i.highlightedDates.length&&(n.each(i.highlightedDates,function(i,r){var c=n.map(r.split(","),n.trim),s,e=new f(t.parseDate(c[0],o.formatDate),c[1],c[2]),h=t.formatDate(e.date,o.formatDate);u[h]!==undefined?(s=u[h].desc,s&&s.length&&e.desc&&e.desc.length&&(u[h].desc=s+"\n"+e.desc)):u[h]=e}),o.highlightedDates=n.extend(!0,[],u)),i.highlightedPeriods&&n.isArray(i.highlightedPeriods)&&i.highlightedPeriods.length&&(u=n.extend(!0,[],o.highlightedDates),n.each(i.highlightedPeriods,function(i,r){var e,a,v,s,h,l,y,c;for(n.isArray(r)?(e=r[0],a=r[1],v=r[2],y=r[3]):(c=n.map(r.split(","),n.trim),e=t.parseDate(c[0],o.formatDate),a=t.parseDate(c[1],o.formatDate),v=c[2],y=c[3]);e<=a;)s=new f(e,v,y),h=t.formatDate(e,o.formatDate),e.setDate(e.getDate()+1),u[h]!==undefined?(l=u[h].desc,l&&l.length&&s.desc&&s.desc.length&&(u[h].desc=l+"\n"+s.desc)):u[h]=s}),o.highlightedDates=n.extend(!0,[],u)),i.disabledDates&&n.isArray(i.disabledDates)&&i.disabledDates.length&&(o.disabledDates=n.extend(!0,[],i.disabledDates)),i.disabledWeekDays&&n.isArray(i.disabledWeekDays)&&i.disabledWeekDays.length&&(o.disabledWeekDays=n.extend(!0,[],i.disabledWeekDays)),(o.open||o.opened)&&!o.inline&&r.trigger("open.xdsoft"),o.inline&&(pt=!0,e.addClass("xdsoft_inline"),r.after(e).hide()),o.inverseButton&&(o.next="xdsoft_prev",o.prev="xdsoft_next"),o.datepicker?at.addClass("active"):at.removeClass("active"),o.timepicker?yt.addClass("active"):yt.removeClass("active"),o.value&&(
9876a.setCurrentTime(o.value),r&&r.val&&r.val(a.str)),o.dayOfWeekStart=isNaN(o.dayOfWeekStart)?0:parseInt(o.dayOfWeekStart,10)%7,o.timepickerScrollbar||g.xdsoftScroller("hide"),o.minDate&&/^[\+\-](.*)$/.test(o.minDate)&&(o.minDate=t.formatDate(a.strToDateTime(o.minDate),o.formatDate)),o.maxDate&&/^[\+\-](.*)$/.test(o.maxDate)&&(o.maxDate=t.formatDate(a.strToDateTime(o.maxDate),o.formatDate)),dt.toggle(o.showApplyButton),d.find(".xdsoft_today_button").css("visibility",o.todayButton?"visible":"hidden"),d.find("."+o.prev).css("visibility",o.prevButton?"visible":"hidden"),d.find("."+o.next).css("visibility",o.nextButton?"visible":"hidden"),ei(o),o.validateOnBlur)r.off("blur.xdsoft").on("blur.xdsoft",function(){var u,i,r;o.allowBlank&&(!n.trim(n(this).val()).length||typeof o.mask=="string"&&n.trim(n(this).val())===o.mask.replace(/[0-9]/g,"_"))?(n(this).val(null),e.data("xdsoft_datetime").empty()):(u=t.parseDate(n(this).val(),o.format),u?n(this).val(t.formatDate(u,o.format)):(i=+[n(this).val()[0],n(this).val()[1]].join(""),r=+[n(this).val()[2],n(this).val()[3]].join(""),!o.datepicker&&o.timepicker&&i>=0&&i<24&&r>=0&&r<60?n(this).val([i,r].map(function(n){return n>9?n:"0"+n}).join(":")):n(this).val(t.formatDate(a.now(),o.format))),e.data("xdsoft_datetime").setCurrentTime(n(this).val()));e.trigger("changedatetime.xdsoft");e.trigger("close.xdsoft")});o.dayOfWeekStartPrev=o.dayOfWeekStart===0?6:o.dayOfWeekStart-1;e.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")};e.data("options",o).on("touchstart mousedown.xdsoft",function(n){return n.stopPropagation(),n.preventDefault(),ni.hide(),gt.hide(),!1});g.append(v);g.xdsoftScroller();e.on("afterOpen.xdsoft",function(){g.xdsoftScroller()});e.append(at).append(yt);o.withoutCopyright!==!0&&e.append(oi);at.append(d).append(kt).append(dt);n(o.parentID).append(e);fi=function(){var i=this;i.now=function(n){var t=new Date,r,u;return!n&&o.defaultDate&&(r=i.strToDateTime(o.defaultDate),t.setFullYear(r.getFullYear()),t.setMonth(r.getMonth()),t.setDate(r.getDate())),o.yearOffset&&t.setFullYear(t.getFullYear()+o.yearOffset),!n&&o.defaultTime&&(u=i.strtotime(o.defaultTime),t.setHours(u.getHours()),t.setMinutes(u.getMinutes())),t};i.isValidDate=function(n){return Object.prototype.toString.call(n)!=="[object Date]"?!1:!isNaN(n.getTime())};i.setCurrentTime=function(n,t){i.currentTime=typeof n=="string"?i.strToDateTime(n):i.isValidDate(n)?n:n||t||!o.allowBlank?i.now():null;e.trigger("xchange.xdsoft")};i.empty=function(){i.currentTime=null};i.getCurrentTime=function(){return i.currentTime};i.nextMonth=function(){(i.currentTime===undefined||i.currentTime===null)&&(i.currentTime=i.now());var t=i.currentTime.getMonth()+1,r;return t===12&&(i.currentTime.setFullYear(i.currentTime.getFullYear()+1),t=0),r=i.currentTime.getFullYear(),i.currentTime.setDate(Math.min(new Date(i.currentTime.getFullYear(),t+1,0).getDate(),i.currentTime.getDate())),i.currentTime.setMonth(t),o.onChangeMonth&&n.isFunction(o.onChangeMonth)&&o.onChangeMonth.call(e,a.currentTime,e.data("input")),r!==i.currentTime.getFullYear()&&n.isFunction(o.onChangeYear)&&o.onChangeYear.call(e,a.currentTime,e.data("input")),e.trigger("xchange.xdsoft"),t};i.prevMonth=function(){(i.currentTime===undefined||i.currentTime===null)&&(i.currentTime=i.now());var t=i.currentTime.getMonth()-1;return t===-1&&(i.currentTime.setFullYear(i.currentTime.getFullYear()-1),t=11),i.currentTime.setDate(Math.min(new Date(i.currentTime.getFullYear(),t+1,0).getDate(),i.currentTime.getDate())),i.currentTime.setMonth(t),o.onChangeMonth&&n.isFunction(o.onChangeMonth)&&o.onChangeMonth.call(e,a.currentTime,e.data("input")),e.trigger("xchange.xdsoft"),t};i.getWeekOfYear=function(t){var r,i;return o.onGetWeekOfYear&&n.isFunction(o.onGetWeekOfYear)&&(r=o.onGetWeekOfYear.call(e,t),typeof r!="undefined")?r:(i=new Date(t.getFullYear(),0,1),i.getDay()!=4&&i.setMonth(0,1+(11-i.getDay())%7),Math.ceil(((t-i)/864e5+i.getDay()+1)/7))};i.strToDateTime=function(n){var r=[],f,u;return n&&n instanceof Date&&i.isValidDate(n)?n:(r=/^(\+|\-)(.*)$/.exec(n),r&&(r[2]=t.parseDate(r[2],o.formatDate)),r&&r[2]?(f=r[2].getTime()-r[2].getTimezoneOffset()*6e4,u=new Date(i.now(!0).getTime()+parseInt(r[1]+"1",10)*f)):u=n?t.parseDate(n,o.format):i.now(),i.isValidDate(u)||(u=i.now()),u)};i.strToDate=function(n){if(n&&n instanceof Date&&i.isValidDate(n))return n;var r=n?t.parseDate(n,o.formatDate):i.now(!0);return i.isValidDate(r)||(r=i.now(!0)),r};i.strtotime=function(n){if(n&&n instanceof Date&&i.isValidDate(n))return n;var r=n?t.parseDate(n,o.formatTime):i.now(!0);return i.isValidDate(r)||(r=i.now(!0)),r};i.str=function(){return t.formatDate(i.currentTime,o.format)};i.currentTime=this.now()};a=new fi;dt.on("touchend click",function(n){n.preventDefault();e.data("changed",!0);a.setCurrentTime(ui());r.val(a.str());e.trigger("close.xdsoft")});d.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){e.data("changed",!0);a.setCurrentTime(0,!0);e.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var n=a.getCurrentTime(),t,i;(n=new Date(n.getFullYear(),n.getMonth(),n.getDate()),t=a.strToDate(o.minDate),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n<t)||(i=a.strToDate(o.maxDate),i=new Date(i.getFullYear(),i.getMonth(),i.getDate()),n>i)||(r.val(a.str()),r.trigger("change"),e.trigger("close.xdsoft"))});d.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=n(this),i=0,r=!1;(function u(n){t.hasClass(o.next)?a.nextMonth():t.hasClass(o.prev)&&a.prevMonth();o.monthChangeSpinner&&(r||(i=setTimeout(u,n||100)))})(500);n([document.body,window]).on("touchend mouseup.xdsoft",function f(){clearTimeout(i);r=!0;n([document.body,window]).off("touchend mouseup.xdsoft",f)})});yt.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var i=n(this),r=0,u=!1,t=110;(function f(n){var s=g[0].clientHeight,h=v[0].offsetHeight,e=Math.abs(parseInt(v.css("marginTop"),10));i.hasClass(o.next)&&h-s-o.timeHeightInTimePicker>=e?v.css("marginTop","-"+(e+o.timeHeightInTimePicker)+"px"):i.hasClass(o.prev)&&e-o.timeHeightInTimePicker>=0&&v.css("marginTop","-"+(e-o.timeHeightInTimePicker)+"px");g.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(v[0].style.marginTop,10)/(h-s))]);t=t>10?10:t-10;u||(r=setTimeout(f,n||t))})(500);n([document.body,window]).on("touchend mouseup.xdsoft",function e(){clearTimeout(r);u=!0;n([document.body,window]).off("touchend mouseup.xdsoft",e)})});ti=0;e.on("xchange.xdsoft",function(f){clearTimeout(ti);ti=setTimeout(function(){if(a.currentTime===undefined||a.currentTime===null){if(o.allowBlank)return;a.currentTime=a.now()}for(var c="",f=new Date(a.currentTime.getFullYear(),a.currentTime.getMonth(),1,12,0,0),s=0,l,tt=a.now(),p=!1,w=!1,k,et,nt,ot,y,st,h=[],b,it=!0,rt="",g="",ut,ft;f.getDay()!==o.dayOfWeekStart;)f.setDate(f.getDate()-1);for(c+="<table><thead><tr>",o.weeks&&(c+="<th><\/th>"),l=0;l<7;l+=1)c+="<th>"+o.i18n[i].dayOfWeekShort[(l+o.dayOfWeekStart)%7]+"<\/th>";for(c+="<\/tr><\/thead>",c+="<tbody>",o.maxDate!==!1&&(p=a.strToDate(o.maxDate),p=new Date(p.getFullYear(),p.getMonth(),p.getDate(),23,59,59,999)),o.minDate!==!1&&(w=a.strToDate(o.minDate),w=new Date(w.getFullYear(),w.getMonth(),w.getDate()));s<a.currentTime.countDaysInMonth()||f.getDay()!==o.dayOfWeekStart||a.currentTime.getMonth()===f.getMonth();)h=[],s+=1,et=f.getDay(),nt=f.getDate(),ot=f.getFullYear(),y=f.getMonth(),st=a.getWeekOfYear(f),ft="",h.push("xdsoft_date"),b=o.beforeShowDay&&n.isFunction(o.beforeShowDay.call)?o.beforeShowDay.call(e,f):null,o.allowDateRe&&Object.prototype.toString.call(o.allowDateRe)==="[object RegExp]"?o.allowDateRe.test(t.formatDate(f,o.formatDate))||h.push("xdsoft_disabled"):o.allowDates&&o.allowDates.length>0?o.allowDates.indexOf(t.formatDate(f,o.formatDate))===-1&&h.push("xdsoft_disabled"):p!==!1&&f>p||w!==!1&&f<w||b&&b[0]===!1?h.push("xdsoft_disabled"):o.disabledDates.indexOf(t.formatDate(f,o.formatDate))!==-1?h.push("xdsoft_disabled"):o.disabledWeekDays.indexOf(et)!==-1?h.push("xdsoft_disabled"):r.is("[readonly]")&&h.push("xdsoft_disabled"),b&&b[1]!==""&&h.push(b[1]),a.currentTime.getMonth()!==y&&h.push("xdsoft_other_month"),(o.defaultSelect||e.data("changed"))&&t.formatDate(a.currentTime,o.formatDate)===t.formatDate(f,o.formatDate)&&h.push("xdsoft_current"),t.formatDate(tt,o.formatDate)===t.formatDate(f,o.formatDate)&&h.push("xdsoft_today"),(f.getDay()===0||f.getDay()===6||o.weekends.indexOf(t.formatDate(f,o.formatDate))!==-1)&&h.push("xdsoft_weekend"),o.highlightedDates[t.formatDate(f,o.formatDate)]!==undefined&&(k=o.highlightedDates[t.formatDate(f,o.formatDate)],h.push(k.style===undefined?"xdsoft_highlighted_default":k.style),ft=k.desc===undefined?"":k.desc),o.beforeShowDay&&n.isFunction(o.beforeShowDay)&&h.push(o.beforeShowDay(f)),it&&(c+="<tr>",it=!1,o.weeks&&(c+="<th>"+st+"<\/th>")),c+='<td data-date="'+nt+'" data-month="'+y+'" data-year="'+ot+'" class="xdsoft_date xdsoft_day_of_week'+f.getDay()+" "+h.join(" ")+'" title="'+ft+'"><div>'+nt+"<\/div><\/td>",f.getDay()===o.dayOfWeekStartPrev&&(c+="<\/tr>",it=!0),f.setDate(nt+1);if(c+="<\/tbody><\/table>",kt.html(c),d.find(".xdsoft_label span").eq(0).text(o.i18n[i].months[a.currentTime.getMonth()]),d.find(".xdsoft_label span").eq(1).text(a.currentTime.getFullYear()),rt="",g="",y="",ut=function(i,u){var f=a.now(),s,c,l=o.allowTimes&&n.isArray(o.allowTimes)&&o.allowTimes.length;f.setHours(i);i=parseInt(f.getHours(),10);f.setMinutes(u);u=parseInt(f.getMinutes(),10);s=new Date(a.currentTime);s.setHours(i);s.setMinutes(u);h=[];o.minDateTime!==!1&&o.minDateTime>s||o.maxTime!==!1&&a.strtotime(o.maxTime).getTime()<f.getTime()||o.minTime!==!1&&a.strtotime(o.minTime).getTime()>f.getTime()?h.push("xdsoft_disabled"):o.minDateTime!==!1&&o.minDateTime>s||o.disabledMinTime!==!1&&f.getTime()>a.strtotime(o.disabledMinTime).getTime()&&o.disabledMaxTime!==!1&&f.getTime()<a.strtotime(o.disabledMaxTime).getTime()?h.push("xdsoft_disabled"):r.is("[readonly]")&&h.push("xdsoft_disabled");c=new Date(a.currentTime);c.setHours(parseInt(a.currentTime.getHours(),10));l||c.setMinutes(Math[o.roundTime](a.currentTime.getMinutes()/o.step)*o.step);(o.initTime||o.defaultSelect||e.data("changed"))&&c.getHours()===parseInt(i,10)&&(!l&&o.step>59||c.getMinutes()===parseInt(u,10))&&(o.defaultSelect||e.data("changed")?h.push("xdsoft_current"):o.initTime&&h.push("xdsoft_init_time"));parseInt(tt.getHours(),10)===parseInt(i,10)&&parseInt(tt.getMinutes(),10)===parseInt(u,10)&&h.push("xdsoft_today");rt+='<div class="xdsoft_time '+h.join(" ")+'" data-hour="'+i+'" data-minute="'+u+'">'+t.formatDate(f,o.formatTime)+"<\/div>"},o.allowTimes&&n.isArray(o.allowTimes)&&o.allowTimes.length)for(s=0;s<o.allowTimes.length;s+=1)g=a.strtotime(o.allowTimes[s]).getHours(),y=a.strtotime(o.allowTimes[s]).getMinutes(),ut(g,y);else for(s=0,l=0;s<(o.hours12?12:24);s+=1)for(l=0;l<60;l+=o.step)g=(s<10?"0":"")+s,y=(l<10?"0":"")+l,ut(g,y);for(v.html(rt),u="",s=0,s=parseInt(o.yearStart,10)+o.yearOffset;s<=parseInt(o.yearEnd,10)+o.yearOffset;s+=1)u+='<div class="xdsoft_option '+(a.currentTime.getFullYear()===s?"xdsoft_current":"")+'" data-value="'+s+'">'+s+"<\/div>";for(ni.children().eq(0).html(u),s=parseInt(o.monthStart,10),u="";s<=parseInt(o.monthEnd,10);s+=1)u+='<div class="xdsoft_option '+(a.currentTime.getMonth()===s?"xdsoft_current":"")+'" data-value="'+s+'">'+o.i18n[i].months[s]+"<\/div>";gt.children().eq(0).html(u);n(e).trigger("generate.xdsoft")},10);f.stopPropagation()}).on("afterOpen.xdsoft",function(){if(o.timepicker){var n,t,i,r;v.find(".xdsoft_current").length?n=".xdsoft_current":v.find(".xdsoft_init_time").length&&(n=".xdsoft_init_time");n?(t=g[0].clientHeight,i=v[0].offsetHeight,r=v.find(n).index()*o.timeHeightInTimePicker+1,i-t<r&&(r=i-t),g.trigger("scroll_element.xdsoft_scroller",[parseInt(r,10)/(i-t)])):g.trigger("scroll_element.xdsoft_scroller",[0])}});wt=0;kt.on("touchend click.xdsoft","td",function(t){t.stopPropagation();wt+=1;var u=n(this),i=a.currentTime;if((i===undefined||i===null)&&(a.currentTime=a.now(),i=a.currentTime),u.hasClass("xdsoft_disabled"))return!1;i.setDate(1);i.setFullYear(u.data("year"));i.setMonth(u.data("month"));i.setDate(u.data("date"));e.trigger("select.xdsoft",[i]);r.val(a.str());o.onSelectDate&&n.isFunction(o.onSelectDate)&&o.onSelectDate.call(e,a.currentTime,e.data("input"),t);e.data("changed",!0);e.trigger("xchange.xdsoft");e.trigger("changedatetime.xdsoft");(wt>1||o.closeOnDateSelect===!0||o.closeOnDateSelect===!1&&!o.timepicker)&&!o.inline&&e.trigger("close.xdsoft");setTimeout(function(){wt=0},200)});v.on("touchend click.xdsoft","div",function(t){t.stopPropagation();var r=n(this),i=a.currentTime;if((i===undefined||i===null)&&(a.currentTime=a.now(),i=a.currentTime),r.hasClass("xdsoft_disabled"))return!1;i.setHours(r.data("hour"));i.setMinutes(r.data("minute"));e.trigger("select.xdsoft",[i]);e.data("input").val(a.str());o.onSelectTime&&n.isFunction(o.onSelectTime)&&o.onSelectTime.call(e,a.currentTime,e.data("input"),t);e.data("changed",!0);e.trigger("xchange.xdsoft");e.trigger("changedatetime.xdsoft");o.inline!==!0&&o.closeOnTimeSelect===!0&&e.trigger("close.xdsoft")});at.on("mousewheel.xdsoft",function(n){return o.scrollMonth?(n.deltaY<0?a.nextMonth():a.prevMonth(),!1):!0});r.on("mousewheel.xdsoft",function(n){return o.scrollInput?!o.datepicker&&o.timepicker?(vt=v.find(".xdsoft_current").length?v.find(".xdsoft_current").eq(0).index():0,vt+n.deltaY>=0&&vt+n.deltaY<v.children().length&&(vt+=n.deltaY),v.children().eq(vt).length&&v.children().eq(vt).trigger("mousedown"),!1):o.datepicker&&!o.timepicker?(at.trigger(n,[n.deltaY,n.deltaX,n.deltaY]),r.val&&r.val(a.str()),e.trigger("changedatetime.xdsoft"),!1):void 0:!0});e.on("changedatetime.xdsoft",function(t){if(o.onChangeDateTime&&n.isFunction(o.onChangeDateTime)){var i=e.data("input");o.onChangeDateTime.call(e,a.currentTime,i,t);delete o.value;i.trigger("change")}}).on("generate.xdsoft",function(){o.onGenerate&&n.isFunction(o.onGenerate)&&o.onGenerate.call(e,a.currentTime,e.data("input"));pt&&(e.trigger("afterOpen.xdsoft"),pt=!1)}).on("click.xdsoft",function(n){n.stopPropagation()});vt=0;ri=function(n,t){do if(n=n.parentNode,t(n)===!1)break;while(n.nodeName!=="HTML")};bt=function(){var u,r,t,i,c,p,a,s,h,v,y,l,f,w;s=e.data("input");u=s.offset();r=s[0];v="top";t=u.top+r.offsetHeight-1;i=u.left;c="absolute";h=n(window).width();l=n(window).height();f=n(window).scrollTop();document.documentElement.clientWidth-u.left<at.parent().outerWidth(!0)&&(w=at.parent().outerWidth(!0)-r.offsetWidth,i=i-w);s.parent().css("direction")==="rtl"&&(i-=e.outerWidth()-s.outerWidth());o.fixed?(t-=f,i-=n(window).scrollLeft(),c="fixed"):(a=!1,ri(r,function(n){if(window.getComputedStyle(n).getPropertyValue("position")==="fixed")return a=!0,!1}),a?(c="fixed",t+e.outerHeight()>l+f?(v="bottom",t=l+f-u.top):t-=f):t+r.offsetHeight>l+f&&(t=u.top-r.offsetHeight+1),t<0&&(t=0),i+r.offsetWidth>h&&(i=h-r.offsetWidth));p=e[0];ri(p,function(n){var t;return t=window.getComputedStyle(n).getPropertyValue("position"),t==="relative"&&h>=n.offsetWidth?(i=i-(h-n.offsetWidth)/2,!1):void 0});y={position:c,left:i,top:"",bottom:""};y[v]=t;e.css(y)};e.on("open.xdsoft",function(t){var i=!0;if(o.onShow&&n.isFunction(o.onShow)&&(i=o.onShow.call(e,a.currentTime,e.data("input"),t)),i!==!1){e.show();bt();n(window).off("resize.xdsoft",bt).on("resize.xdsoft",bt);if(o.closeOnWithoutClick)n([document.body,window]).on("touchstart mousedown.xdsoft",function r(){e.trigger("close.xdsoft");n([document.body,window]).off("touchstart mousedown.xdsoft",r)})}}).on("close.xdsoft",function(t){var i=!0;d.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide();o.onClose&&n.isFunction(o.onClose)&&(i=o.onClose.call(e,a.currentTime,e.data("input"),t));i===!1||o.opened||o.inline||e.hide();t.stopPropagation()}).on("toggle.xdsoft",function(){e.is(":visible")?e.trigger("close.xdsoft"):e.trigger("open.xdsoft")}).data("input",r);ii=0;e.data("xdsoft_datetime",a);e.setOptions(o);a.setCurrentTime(ui());r.data("xdsoft_datetimepicker",e).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){r.is(":disabled")||r.data("xdsoft_datetimepicker").is(":visible")&&o.closeOnInputClick||(clearTimeout(ii),ii=setTimeout(function(){r.is(":disabled")||(pt=!0,a.setCurrentTime(ui(),!0),o.mask&&ei(o),e.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var i,r=t.which;return[b].ind
9876exOf(r)!==-1&&o.enterLikeTab?(i=n("input:visible,textarea:visible,button:visible,a:visible"),e.trigger("close.xdsoft"),i.eq(i.index(this)+1).focus(),!1):[k].indexOf(r)!==-1?(e.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){e.trigger("close.xdsoft")})};g=function(t){var i=t.data("xdsoft_datetimepicker");i&&(i.data("xdsoft_datetime",null),i.remove(),t.data("xdsoft_datetimepicker",null).off(".xdsoft"),n(window).off("resize.xdsoft"),n([window,document.body]).off("mousedown.xdsoft touchstart"),t.unmousewheel&&t.unmousewheel())};n(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(n){n.keyCode===c&&(l=!0)}).on("keyup.xdsoftctrl",function(n){n.keyCode===c&&(l=!1)});return this.each(function(){var i=n(this).data("xdsoft_datetimepicker"),r;if(i){if(n.type(u)==="string")switch(u){case"show":n(this).select().focus();i.trigger("open.xdsoft");break;case"hide":i.trigger("close.xdsoft");break;case"toggle":i.trigger("toggle.xdsoft");break;case"destroy":g(n(this));break;case"reset":this.value=this.defaultValue;this.value&&i.data("xdsoft_datetime").isValidDate(t.parseDate(this.value,o.format))||i.data("changed",!1);i.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":r=i.data("input");r.trigger("blur.xdsoft");break;default:i[u]&&n.isFunction(i[u])&&(v=i[u](e))}else i.setOptions(u);return 0}n.type(u)!=="string"&&(!o.lazyInit||o.open||o.inline?a(n(this)):at(n(this)))}),v};n.fn.datetimepicker.defaults=r}); 9877/*! 9878 * jQuery Mousewheel 3.1.13 9879 * 9880 * Copyright jQuery Foundation and other contributors 9881 * Released under the MIT license 9882 * http://jquery.org/license 9883 */ 9884(function(n){typeof define=="function"&&define.amd?define(["jquery"],n):typeof exports=="object"?module.exports=n:n(jQuery)})(function(n){function e(r){var f=r||window.event,w=h.call(arguments,1),l=0,o=0,e=0,a=0,b=0,k=0,v,y,p;if(r=n.event.fix(f),r.type="mousewheel","detail"in f&&(e=f.detail*-1),"wheelDelta"in f&&(e=f.wheelDelta),"wheelDeltaY"in f&&(e=f.wheelDeltaY),"wheelDeltaX"in f&&(o=f.wheelDeltaX*-1),"axis"in f&&f.axis===f.HORIZONTAL_AXIS&&(o=e*-1,e=0),l=e===0?o:e,"deltaY"in f&&(e=f.deltaY*-1,l=e),"deltaX"in f&&(o=f.deltaX,e===0&&(l=o*-1)),e!==0||o!==0)return f.deltaMode===1?(v=n.data(this,"mousewheel-line-height"),l*=v,e*=v,o*=v):f.deltaMode===2&&(y=n.data(this,"mousewheel-page-height"),l*=y,e*=y,o*=y),a=Math.max(Math.abs(e),Math.abs(o)),(!t||a<t)&&(t=a,s(f,a)&&(t/=40)),s(f,a)&&(l/=40,o/=40,e/=40),l=Math[l>=1?"floor":"ceil"](l/t),o=Math[o>=1?"floor":"ceil"](o/t),e=Math[e>=1?"floor":"ceil"](e/t),i.settings.normalizeOffset&&this.getBoundingClientRect&&(p=this.getBoundingClientRect(),b=r.clientX-p.left,k=r.clientY-p.top),r.deltaX=o,r.deltaY=e,r.deltaFactor=t,r.offsetX=b,r.offsetY=k,r.deltaMode=0,w.unshift(r,l,o,e),u&&clearTimeout(u),u=setTimeout(c,200),(n.event.dispatch||n.event.handle).apply(this,w)}function c(){t=null}function s(n,t){return i.settings.adjustOldDeltas&&n.type==="mousewheel"&&t%120==0}var o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],r="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],h=Array.prototype.slice,u,t,f,i;if(n.event.fixHooks)for(f=o.length;f;)n.event.fixHooks[o[--f]]=n.event.mouseHooks;i=n.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=r.length;t;)this.addEventListener(r[--t],e,!1);else this.onmousewheel=e;n.data(this,"mousewheel-line-height",i.getLineHeight(this));n.data(this,"mousewheel-page-height",i.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null;n.removeData(this,"mousewheel-line-height");n.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var r=n(t),i=r["offsetParent"in n.fn?"offsetParent":"parent"]();return i.length||(i=n("body")),parseInt(i.css("fontSize"),10)||parseInt(r.css("fontSize"),10)||16},getPageHeight:function(t){return n(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};n.fn.extend({mousewheel:function(n){return n?this.bind("mousewheel",n):this.trigger("mousewheel")},unmousewheel:function(n){return this.unbind("mousewheel",n)}})});function unscrambleEmailLinks(){$('a[onmouseover^="javascript:this.href=unscrambleMailto"]').each(function(){$(this).html()!==""&&$(this).html().indexOf("|")>0&&(emailArr=$.trim($(this).html()).split("|"),domain=emailArr[0].replace(/<span class=\"?scrambledEmail\"?>/gi,""),user=emailArr[1].replace(/<\/span>/gi,""),$(this).html(unscrambleEmail(domain,user)))});$(".scrambledEmail").each(function(){$(this).html().indexOf("|")>0&&(emailArr=$(this).html().split("|"),domain=emailArr[0],user=emailArr[1],$(this).html(unscrambleEmail(domain,user)))})}function unscrambleMailto(n,t){return"mailto:"+unscrambleEmail(n,t)}function unscrambleEmail(n,t){return t.replace(/%23/g,".")+"@"+n.replace(/%23/g,".")}function displayWindow2(n,t,i){var r=window.open(n,"displayWindow","width="+t+",height="+i+",resizable=1,scrollbars=yes,menubar=no")}function checkSearchForm(n){return!n.search_string.value||n.search_string.value==="Enter Keyword"||n.search_string.value==="Enter Search"||n.search_string.value==="Search Here"?(alertMessage(0,!1,"Please enter search criteria.","danger"),n.search_string.focus(),!1):!0}function checkSearchFormFrench(n){return!n.search_string.value||n.search_string.value==="Recherche ici"||n.search_string.value==="Enter Search"?(alertMessage(0,!1,"Veuillez insérer un mot pour votre recherche!","danger"),n.search_string.focus(),!1):!0}function openPopup(n,t,i,r){var f=location.hostname,u=window.open(n,t,i);u&&u.opener&&(r&&(u.opener.location=r),u.opener.top.name="opener");u.focus()}function insert_desc(n){document.getElementById("desc_div").innerHTML=n;document.location="#desc_div"}function checkSubscribeForm(n){return!n.subscribe_email.value||n.subscribe_email.value==="Enter Email Here"?($(n).prepend('<div class="alert alert-danger">Please enter an email address!<\/div>'),n.subscribe_email.focus(),!1):n.subscribe_email.value.indexOf("@",0)===-1||n.subscribe_email.value.indexOf(".",0)===-1||n.subscribe_email.value.length<8||n.subscribe_email.value.length===n.subscribe_email.value.indexOf(".",0)+1?($(n).prepend('<div class="alert alert-danger">Please enter a valid email address!<\/div>'),n.subscribe_email.focus(),!1):!0}function printit(){window.print()}function Go(){return}function submitPollCheck(n){var t="";for(i=0;i<n.poll_vote.length;i++)if(n.poll_vote[i].checked)return t=!0,!0;return t||alertMessage(0,!1,"Please click the radio button of choice before voting!","danger"),
9884!1}function submitForm(n){document.getElementById(n).submit()}function iGallery(n){larger_image=new Image;larger_image.src=n.src.replace("_thumb","");document.getElementById("main_image").src=larger_image.src;document.getElementById("main_image").width=larger_image.width;document.getElementById("main_image").height=larger_image.height}function swapTabs(n,t,i){$("#"+n).html($("#"+t).html());$("#"+activeTab).removeClass("active");$("#"+i).addClass("active");activeTab=i}function playFLV(n,t,i,r,u){var f={file:i,autostart:"true",image:r};swfobject.embedSWF("/fend/images/mediaplayer.swf",u,n,t,"9.0.0","",f,{},{})}function appendFunction(n,t){return function(){n&&n();t&&t()}}function changeFontSize(n,t){typeof t=="undefined"&&(t="include");$("#fontSizeCss").length>0?$("#fontSizeCss").attr("href","/fend/"+t+"/font_"+n+".css"):$("head").append('<link rel="stylesheet" href="/fend/'+t+"/font_"+n+'.css" type="text/css" id="fontSizeCss" />');$.ajax({url:"/fend/request/set-font-size.asp?fontSize="+n+"&rndNum="+Math.floor(Math.random()*1e5)})}function checkRequiredFields(n,t,i=0){var r,o,u,h,c,f,s;if(t.find(".form-error").remove(),$("*").removeClass("field-error").removeClass("has-error"),r="",o=n.split(","),n.indexOf("|")==-1&&n.indexOf(":")==-1&&n.indexOf("@")==-1)for(field in o)fieldName=$.trim(o[field]),$fieldObj=t.find('[name="'+fieldName+'"]'),fieldContents=$fieldObj.val(),$fieldObj.is(":enabled")&&(fieldName.toLowerCase()!=="email"||$("#"+fieldName).hasClass("simplevalidation")?fieldName.toLowerCase()!=="confirm_email"||$("#"+fieldName).hasClass("simplevalidation")?fieldName.toLowerCase()!=="confirm_password"||$("#"+fieldName).hasClass("simplevalidation")?$('[name="'+fieldName+'"]').attr("type")==="radio"||$('[name="'+fieldName+'"]').attr("type")==="checkbox"?$('[name="'+fieldName+'"]:checked').length===0&&($fieldObj.closest(".form-group").data("error")?(u=$fieldObj.closest(".form-group").data("error"),r+="<li>"+u+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(u=$("label[for="+fieldName+"]").text().toLowerCase().replace(":",""),u===""&&(u=fieldName.toLowerCase().replace("_"," ")),r+="<li> Please enter a valid "+u+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error"))):fieldContents===""&&($fieldObj.closest(".form-group").data("error")?(u=$fieldObj.closest(".form-group").data("error"),r+="<li>"+u+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(u=$("label[for="+fieldName+"]").text().toLowerCase().replace(":",""),u===""&&(u=fieldName.toLowerCase().replace("_"," ")),r+="<li> Please enter a valid "+u+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error"))):fieldContents!==$("#Password").val()&&(r+="<li>Passwords do not match.<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):fieldContents!==$("#Email").val()&&(r+="<li>Email Addresses do not match.<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(h=new RegExp("^[A-Za-z0-9]((([_]*[-]?[.]?)[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([.-]?[a-zA-Z0-9]+)*).([A-Za-z]{2,})$"),c=h.exec(fieldContents),(c===null||fieldContents==="")&&(r+="<li>Please enter a valid email address.<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error"))));else $(o).each(function(n,t){var o,u,f,i;if(t=$.trim(t),t.indexOf("|")!=-1||t.indexOf(":")!=-1||t.indexOf("@")!=-1||$(`[name="${t}"]`).prop("disabled")||(o=$(`[name="${t}"]`).val(),t.toLowerCase()!=="confirm_email"||$(`[name="${t}"]`).hasClass("simplevalidation")?t.toLowerCase()!=="confirm_password"||$(`[name="${t}"]`).hasClass("simplevalidation")?checkRequiredFields_validateField(`[name="${t}"]`)||($(document).find(`[name="${t}"]`).closest(".form-group").addClass("has-error"),r+=`<li>Need value for ${checkRequiredFields_getError($(document).find(`[name="${t}"]`))}</li>`):o!==$("#Password").val()&&($(document).find(`[name="${t}"]`).closest(".form-group").addClass("has-error"),r+="<li><strong><u>Passwords<\/u><\/strong> do not match<\/li>"):o!==$("#Email").val()&&($(document).find(`[name="${t}"]`).closest(".form-group").addClass("has-error"),r+="<li><strong><u>Email Addresses<\/u><\/strong> do not match<\/li>")),~t.indexOf("|")){var c=0,l=0,s=t.split("|");$(s).each(function(n,t){checkRequiredFields_validateField(`[name="${t}"]`)&&c++;$(`[name="${t}"]`).prop("disabled")&&l++});l!==s.length&&c==0&&(u="",f="",$(s).each(function(n,t){$(document).find(`[name="${t}"]`).parent().addClass("has-error");u+=f+checkRequiredFields_getError(`[name="${t}"]`);f=" / "}),r+=`<li>Need at least one value between ${u}</li>`)}if(~t.indexOf("@")){var h=0,a=0,e=t.split("@");$(e).each(function(n,t){checkRequiredFields_validateField(`[name="${t}"]`)&&h++;$(`[name="${t}"]`).prop("disabled")&&a++});a!==e.length&&h>0&&h!==e.length&&(u="",f="",$(e).each(function(n,t){$(document).find(`[name="${t}"]`).parent().addClass("has-error");u+=f+checkRequiredFields_getError(`[name="${t}"]`);f=" / "}),r+=`<li>Need all values for ${u}</li>`)}
9884~t.indexOf(":")&&!$(`[name="${t}"]`).prop("disabled")&&(i=t.split(":"),checkRequiredFields_validateField(`[name="${i[0]}"]`)?$.post({url:i[1],async:!1,data:{formInput:$(document).find(`[name="${i[0]}"]`).val()},success:function(n){n=="#BAD#"&&($(document).find(`[name="${i[0]}"]`).parent().addClass("has-error"),r+=`<li>Value for ${checkRequiredFields_getError(`[name="${i[0]}"]`)} already used; please enter a different value</li>`)}}):($(document).find(`[name="${i[0]}"]`).parent().addClass("has-error"),r+=`<li>Need value for ${checkRequiredFields_getError(`[name="${i[0]}"]`)}</li>`))});if(r==="")return!0;f=document.createElement("div");f=$(f);f.addClass("form-error alert alert-danger");f.html("<ul>"+r+"<\/ul>");t.prepend(f);var e=0,l=$("#header").height(),a=$("#header .navbar").height();return e=l>0?l:a,e>0&&(e+=25),i>0&&(e=i),$(t).find('[id="customErrorOffset"]').length&&(s=$(t).find('[id="customErrorOffset"]').val(),/^\d+$/.test(s)&&(e=s)),$(this).scrollTop($(f).offset().top-e),$(t).find('[name="conf-recaptchaComplete"]').val(""),!1}function checkRequiredFieldsCustom(n,t){var r,u,i,f,e;if(t.find(".form-error").remove(),$("*").removeClass("field-error").removeClass("has-error"),r="",u=n.split(","),n.indexOf("|")==-1&&n.indexOf(":")==-1&&n.indexOf("@")==-1)for(field in u)fieldName=$.trim(u[field]),$fieldObj=t.find('[name="'+fieldName+'"]'),fieldContents=$fieldObj.val(),$fieldObj.is(":enabled")&&($fieldObj.attr("type")==="email"?(f=new RegExp(/^[A-Za-z0-9]((([_]*[-]?[.]?)[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g),e=f.exec(fieldContents),(e===null||fieldContents==="")&&($fieldObj.closest(".form-group").data("error")?(i=$fieldObj.closest(".form-group").data("error"),r+="<li>"+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(i=$("label[for="+fieldName+"]").text().toLowerCase().replace(":",""),i===""&&(i=fieldName.toLowerCase().replace("_"," ")),r+="<li>Please enter a valid "+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")))):$('[name="'+fieldName+'"]').attr("type")==="radio"||$('[name="'+fieldName+'"]').attr("type")==="checkbox"?$('[name="'+fieldName+'"]:checked').length===0&&($fieldObj.closest(".form-group").data("error")?(i=$fieldObj.closest(".form-group").data("error"),r+="<li>"+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(i=$("label[for="+fieldName+"]").text().toLowerCase().replace(":",""),i===""&&(i=fieldName.toLowerCase().replace("_"," ")),r+="<li>Please enter a valid "+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error"))):fieldContents===""&&($fieldObj.closest(".form-group").data("error")?(i=$fieldObj.closest(".form-group").data("error"),r+="<li>"+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error")):(i=$("label[for="+fieldName+"]").text().toLowerCase().replace(":",""),i===""&&(i=fieldName.toLowerCase().replace("_"," ")),r+="<li>Please enter a valid "+i+"<\/li>",$fieldObj.addClass("field-error").closest(".form-group").addClass("has-error"))));else $(u).each(function(n,t){var r,u,i;if(t=$.trim(t),t.indexOf("|")==-1&&t.indexOf(":")==-1&&t.indexOf("@")==-1&&$(`[name="${t}"]`).is(":enabled")&&(checkRequiredFields_validateField(`[name="${t}"]`)||($(document).find(`[name="${t}"]`).closest(".form-group").addClass("has-error"),errorHtml+=`<li>Need value for ${checkRequiredFields_getError($(document).find(`[name="${t}"]`))}</li>`)),~t.indexOf("|")){var s=0,h=0,e=t.split("|");$(e).each(function(n,t){checkRequiredFields_validateField(`[name="${t}"]`)&&s++;$(`[name="${t}"]`).is(":disabled")&&h++});h!==e.length&&s==0&&(r="",u="",$(e).each(function(n,t){$(document).find(`[name="${t}"]`).parent().addClass("has-error");r+=u+checkRequiredFields_getError(`[name="${t}"]`);u=" / "}),errorHtml+=`<li>Need at least one value between ${r}</li>`)}if(~t.indexOf("@")){var o=0,c=0,f=t.split("@");$(f).each(function(n,t){checkRequiredFields_validateField(`[name="${t}"]`)&&o++;$(`[name="${t}"]`).is(":disabled")&&c++});c!==f.length&&o>0&&o!==f.length&&(r="",u="",$(f).each(function(n,t){$(document).find(`[name="${t}"]`).parent().addClass("has-error");r+=u+checkRequiredFields_getError(`[name="${t}"]`);u=" / "}),errorHtml+=`<li>Need all values for ${r}</li>`)}~t.indexOf(":")&&(i=t.split(":"),$(`[name="${i[0]}"]`).is(":enabled")&&(checkRequiredFields_validateField(`[name="${i[0]}"]`)?$.post({url:i[1],async:!1,data:{formInput:$(document).find(`[name="${i[0]}"]`).val()},success:function(n){n=="#BAD#"&&($(document).find(`[name="${i[0]}"]`).parent().addClass("has-error"),errorHtml+=`<li>The value for ${checkRequiredFields_getError(`[name="${i[0]}"]`)} is already used; please use another value</li>`)}}):($(document).find(`[name="${i[0]}"]`).parent().addClass("has-error"),errorHtml+=`<li>Need value for ${checkRequiredFields_getError(`[name="${i[0]}"]`)}</li>`)))});return r}function invCaptchaSubmit(){invCaptchaPassed=!0}function randomQueryString(){return returnString="&UID="+(new Date).getTime()+Math.random()}function highlightText(n,t,i){$(n).each(function(){var n=new RegExp("\\b"+t+"\\b","gi");this.innerHTML=this.innerHTML.replace(n,function(n){return'<span class="'+i+'">'+n+"<\/span>"})})}function checkRequiredFields_validateField(n){var i=!1,t,r,u;return $(document).find(n).length&&(t=$(n),t.is("input")&&t.attr("type")=="email"?(r=new RegExp(/^[A-Za-z0-9]((([_]*[-]?[.]?)[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g),u=r.exec(t.val()),u!==null&&t.val()!==""&&(i=!0)):t.is("input")&&(t.attr("type")=="text"||t.attr("type")=="number")&&t.val().length?i=!0:(t.is("select")||t.is("textarea"))&&t.val().length?i=!0:t.is("input")&&(t.attr("type")=="radio"||t.attr("type")=="checkbox")&&$(document).find(`${n}:checked`).length&&(i=!0)),i}function checkRequiredFields_getError(n){var i="",t;return $(document).find(n).length&&(t=$(n).attr("data-error-label"),i=typeof t!="undefined"&&t!==!1?`<strong><u>${t}</u></strong>`:`<strong><u>${$(n).closest(".form-group").find("label.control-label").text()}</u></strong>`),i}$(document).ready(function(){var n,t;if($("iframe").each(function(){var n=$(this).attr("src");n!==undefined&&($(this).attr("src").indexOf("?")>0?$(this).attr({src:n+"&wmode=transparent",wmode:"Opaque"}):$(this).attr({src:n+"?wmode=transparent",wmode:"Opaque"}))}),$("#slider").length>0&&$("#slider").anythingSlider(),$(".igallery-masonry").length>0&&(n=$(".igallery-masonry").masonry({itemSelector:".igallery-masonry-item",columnWidth:".grid-sizer",percentPosition:!0}),n.imagesLoaded().progress(function(){n.masonry("layout");n.on("layoutComplete",function(){$(".igallery-masonry").addClass("active")})})),$(".igallery-grid").length>0&&$(".igallery-grid .lightbox").matchHeight({byRow:!0,property:"height",target:null,remove:!1}),typeof $.fn.ekkoLightbox!="undefined"&&$.isFunction($.fn.ekkoLightbox))$(document).on("click",'*[data-toggle="lightbox"], a.lightbox',function(n){n.preventDefault();
9884$(this).ekkoLightbox({title:$(this).attr("title"),gallery:$(this).data("gallery")})});else typeof $.fn.lightBox!="undefined"&&$.isFunction($.fn.lightBox)&&$("a.lightbox").lightBox({overlayBgColor:"#000",overlayOpacity:.75,imageLoading:"/fend/images/loading.gif",imageBtnClose:"/fend/images/close.gif",imageBtnPrev:"/fend/images/prev.gif",imageBtnNext:"/fend/images/next.gif",containerResizeSpeed:350,txtImage:"Image",txtOf:"of"});if($("body a[rel~=external]").attr("target","blank"),$("body a[rel~=nofollow]").attr("rel","nofollow"),$("#fontsmall").bind("click",function(n){changeFontSize("small",window.cssPath);n.preventDefault()}),$("#fontmedium").bind("click",function(n){changeFontSize("medium",window.cssPath);n.preventDefault()}),$("#fontbig").bind("click",function(n){changeFontSize("big",window.cssPath);n.preventDefault()}),$(document).find(".sims_form_session_token").length&&$.ajax({url:"/vfend/include/req_session_token.asp",async:!1,success:function(n){$(document).find(".sims_form_session_token").each(function(){$(this).append(`<input type="hidden" name="sims_form_token" value="${n}" />`)})}}),t="/modules/recaptcha/request/recaptchaCheck.asp",$('[name="conf-requiredFields"],#blogcomment').closest("form").submit(function(n){var r,i,u,f;return n.stopImmediatePropagation(),r=n,i=$(this),checkRequiredFields(i.find('[name="conf-requiredFields"]').val(),$(this))&&(i.find("#g-recaptcha-container").length?i.find("#g-recaptcha-response").length?grecaptcha.getResponse().length>0&&$.post({url:`${t}?type=v2`,data:{token:grecaptcha.getResponse()},success:function(){i.unbind(r).submit()}}):(u=new Date,f=""+(u.getMonth()+1)+u.getDate()+"_"+parseInt(Math.random()*1e5+1),grecaptcha.execute("6LcTOHsaAAAAAMZytv7D0QhJkxy2wNBSLMLdu2yM",{action:f}).then(function(n){$.post({url:`${t}?type=v3`,data:{token:n},success:function(){i.unbind(r).submit()}}).fail(function(){grecaptcha.render("g-recaptcha-container",{sitekey:"6LdWeUsUAAAAAOr4ZSrJEzxaEJYC7UwrX1Eogk9M"})})})):i.unbind(r).submit()),!1}),$('[name="_requiredFields"]').closest("form").submit(function(){return checkRequiredFields($(this).find('[name="_requiredFields"]').val(),$(this))}),highlightText(".search-results-list a",$(".search-string").text(),"highlight"),$("#advPageIndex").length)$("[data-pagination-index]").on("click",function(n){n.preventDefault();$("#advPageIndex").val($(this).attr("data-pagination-index"));$("#adv-search-form").submit()});$("#recaptcha-modal-bs").length&&$("#recaptcha-modal-bs").modal("show");$("#recaptcha-modal").on("click",function(){$("#recaptcha-modal").remove()});$("#recaptcha-modal-body").on("click",function(n){n.stopPropagation()})});$(".dropdown").hover(function(){$(this).closest(".navbar-deep").length||(dropdownMenu=$(this).find(".dropdown-menu"),dropdownMenuLeft=dropdownMenu.offset().left,dropdownMenuRight=dropdownMenuLeft+dropdownMenu.width(),dropdownMenuLeft<0?dropdownMenu.css({right:"auto",left:"0"}):dropdownMenuRight>$(window).width()&&dropdownMenu.css({right:"0",left:"auto"}))});function showModal(n){showModal(n,null)}function showModal(n,t){var r=$("body"),u=r.height(),f=document.createElement("div"),i,e,o;f.setAttribute("id","modaloverlay");f.style.display="none";r.append(f);$("#modaloverlay").bind("click",function(){return closeModal(),!1});i=document.createElement("div");i.setAttribute("id","modalwindow");i.style.display="none";r.append(i);i=$(i);e=document.createElement("div");e.setAttribute("id","modalinner");i.append(e);i.bind("click",function(){closeModal()});$("#modalinner").click(function(n){n.stopPropagation()});isNaN(n)?($("#modalinner").html(n+'<div id="modalclose"><a href="#" onclick="javascript:closeModal();return false;"><span>close<\/span><\/div>'),t&&t()):(o="/fend/request/reqArticle.asp?article_id="+n+"&doNotRedirect=true"+randomQueryString(),$.ajax({url:o,success:function(n){$("#modalinner").html(n);centerModal(i);t&&t()}}));centerModal(i);$("select").css("visibility","hidden");$("#modaloverlay").fadeTo("slow",.7);$("#modalwindow").fadeIn("slow");$("#modalinner").height()<$(window).height()?setOverlaySize($("#modaloverlay"),u):setOverlaySize($("#modaloverlay"),$(document).height());$(window).resize(function(){$("#modalinner").height()<$(window).height()?(setOverlaySize($("#modaloverlay"),u),centerModal(i)):setOverlaySize($("#modaloverlay"),$(document).height())});$(window).scroll(function(){$("#modalinner").height()<$(window).height()?(setOverlaySize($("#modaloverlay"),u),centerModal(i)):setOverlaySize($("#modaloverlay"),$(document).height())})}function closeModal(){$("select").css("visibility","visible");$("#modalwindow").hide();$("#modaloverlay").hide();$("#modaloverlay").remove();$("#modalwindow").remove()}function centerModal(n){var t=($(window).height()-n.outerHeight())/2+$(window).scrollTop();t<10&&(t=10);n.css("top",t)}function setOverlaySize(n,t){var i=$(window).height();overlayHeight=t>i?t:i;n.height(overlayHeight)}(function(n){n.fn.extend({tabContent:function(t){return t=n.extend({transition:"standard",speed:400},t),this.each(function(){var i=t,f=n(this),u=n(f.children("ul")),r=n(f.children("div"));r.children().hide();u.children("li:first").addClass("active");r.children("div:first").addClass("active").show();u.find("a").click(function(t){var s,f,e,o,h,c;if(t.preventDefault(),s=n(this).attr("class"),f=n("#"+s),u.find(".active").removeClass("active"),n(this).parent().addClass("active"),!f.hasClass("active")){e=r.find(".active");e.removeClass("active");f.addClass("active");n(":animated").stop(!0,!0);switch(i.transition){case"slideUpDown":e.slideUp(i.speed,function(){f.slideDown(i.speed)});break;case"fade":e.fadeOut(function(){f.fadeIn()});break;case"slideLeft":e.parent().css("position","relative");o=e.position().left;e.css({width:e.parent().width(),position:"absolute",left:o});f.css({width:f.parent().width(),position:"absolute",left:f.parent().width()*2});e.animate({left:e.width()*-1},i.speed);f.show();f.animate({left:o},i.speed);break;case"slideRight":e.parent().css("position","relative");o=e.position().left;e.css({width:e.parent().width(),position:"absolute",left:o});f.css({width:f.parent().width(),position:"absolute",left:f.parent().width()*-1});e.animate({left:e.width()*2},i.speed);f.show();f.animate({left:o},i.speed);break;case"slideHoriz":e.parent().css("position","relative");o=e.position().left;h=n(".tabContent").index(e);c=n(".tabContent").index(f);e.css({width:e.parent().width(),position:"absolute",left:o});c>h?(f.css({width:f.parent().width(),position:"absolute",left:f.parent().width()*2}),e.animate({left:e.width()*-1},i.speed),f.show(),f.animate({left:o},i.speed)):(f.css({width:f.parent().width(),position:"absolute",left:f.parent().width()*-1}),e.animate({left:e.width()*2},i.speed),f.show(),f.animate({left:o},i.speed));break;default:r.children().hide();f.show()}}})})}})})(jQuery);(function(n){n.fn.extend({listScroll:function(t){return t=n.extend({autoScroll:!0,showScrollButtons:!0,scrollTimeout:3e3,speed:800,visibleItems:3},t),this.each(function(){var r=t,i=n(this),f=i.attr("id"),u,e,o;i.find("li").length>r.visibleItems&&(i.find("li:gt("+(r.visibleItems-1)+")").hide(),r.showScrollButtons&&(e=n("<a><\/a>",{"class":"scrollUp",href:"#",html:"<span>Up<\/span>"}),o=n("<a><\/a>",{"class":"scrollDown",href:"#",html:"<span>Down<\/span>"}),i.before(e),i.after(o)),i.prev().click(function(n){n.preventDefault();i.find("li:animated").length===0&&(clearTimeout(u),i.find("li:nth-child("+(r.visibleItems+1)+")").addClass("last"),i.find("li:first").animate({height:"hide"},r.speed),i.find("li:nth-child("+(r.visibleItems+1)+")").animate({height:"show"},r.speed,function(){i.find("li.last").removeClass("last");i.append(i.find("li:first"));r.autoScroll&&(u=setTimeout("$('#"+f+"').prev().click();",r.scrollTimeout))}))}),i.next().click(function(n){n.preventDefault();i.find("li:animated").length===0&&(clearTimeout(u),i.prepend(i.find("li:last")),i.find("li:nth-child("+(r.visibleItems+1)+")").addClass("last"),i.find("li:first").animate({height:"show"},r.speed,"linear"),i.find("li:nth-child("+(r.visibleItems+1)+")").animate({height:"hide"},r.speed,"linear",function(){i.find("li.last").removeClass("last");r.autoScroll&&(u=setTimeout("$('#"+f+"').prev().click();",r.scrollTimeout))}))}),r.autoScroll&&(i.is(":visible")&&(u=setTimeout("$('#"+f+"').prev().click();",r.scrollTimeout)),i.mouseover(function(){clearTimeout(u)}),i.mouseout(function(){u=setTimeout("$('#"+f+"').prev().click();",r.scrollTimeout)})))})}})})(jQuery);
vendor: 37,045 bytes, lines 9884-9890
9884/*! 9885 * Bootstrap v3.3.7 (http://getbootstrap.com) 9886 * Copyright 2011-2016 Twitter, Inc. 9887 * Licensed under the MIT license 9888 */ 9889if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ 9890this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
vendor: 2,016 bytes, lines 9890-9908
9890/* 9891 * This combined file was created by the DataTables downloader builder: 9892 * https://datatables.net/download 9893 * 9894 * To rebuild or modify this file with the latest versions of the included 9895 * software please visit: 9896 * https://datatables.net/download/#bs/dt-1.10.13/b-1.2.4/b-colvis-1.2.4/b-print-1.2.4/cr-1.3.2/fc-3.2.2/fh-3.1.2/r-2.1.0 9897 * 9898 * Included libraries: 9899 * DataTables 1.10.13, Buttons 1.2.4, Column visibility 1.2.4, Print view 1.2.4, ColReorder 1.3.2, FixedColumns 3.2.2, FixedHeader 3.1.2, Responsive 2.1.0 9900 */ 9901 9902/*! 9903 DataTables 1.10.13 9904 ©2008-2016 SpryMedia Ltd - datatables.net/license 9905*/ 9906(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()), 9907d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords"); 9908a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&fb(a)}function gb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");
vendor: 6,642 bytes, lines 9908-9921
9908"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX= 9909a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(m.models.oSearch,a[b])}function hb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;b&&!h.isArray(b)&&(a.aDataSort=[b])}function ib(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute", 9910top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function jb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!== 9911e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig= 9912e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(hb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=R(g),i=b.mRender?R(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")}; 9913b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return S(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI= 9914d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Z(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ma(a);s(a,null,"column-sizing",[a])}function $(a,b){var c=na(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function aa(a,b){var c=na(a,"bVisible"),c=h.inArray(b, 9915c);return-1!==c?c:null}function ba(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function na(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ia(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,r;e=0;for(f=b.length;e<f;e++)if(l=b[e],r=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){r[i]===k&&(r[i]=B(a,i,e,"type")); 9916q=d[g](r[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function kb(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ga(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&& 9917d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function N(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ja(a,e,c,d);return e}function oa(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ka(a,e);return N(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw, 9918f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function lb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})} 9919function La(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function R(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=R(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=La(f); 9920for(var i=0,n=j.length;i<n;i++){f=j[i].match(ca);g=j[i].match(V);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(V,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function S(a){if(h.isPlainObject(a))return S(a._); 9921if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=La(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ca);j=e[i].match(V);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;
vendor: 10,682 bytes, lines 9921-9942
9921j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(V, 9922""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(V))a[f.replace(V,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ma(a){return D(a.aoData,"_aData")}function pa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function qa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild); 9923c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Na(a,e)}}function Ka(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],r=function(a,b){if("string"===typeof a){var c=a.indexOf("@"); 9924-1!==c&&(c=a.substring(c+1),S(a)(d,b.getAttribute(c)))}},m=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(S(j.mData._)(d,n),r(j.mData.sort,a),r(j.mData.type,a),r(j.mData.filter,a)):q?(j._setter||(j._setter=S(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)m(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)m(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&S(a.rowId)(d,b);return{data:d,cells:e}} 9925function Ja(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Na(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:H.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i); 9926n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}s(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Na(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?sa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function mb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0=== 9927h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Oa(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Pa(a,"header")(a,d,f,n);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH); 9928if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell); 9929for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function O(a){var b=s(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart= 9930-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!nb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ja(a,l);l=q.nTr;if(0!==e){var r=d[c%e];q._sRowStripe!=r&&(h(l).removeClass(q._sRowStripe).addClass(r),q._sRowStripe=r)}s(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords: 9931f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:ba(a),"class":a.oClasses.sRowEmpty}).html(c))[0];s(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,n,i]);s(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));s(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter; 9932c.bSort&&ob(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=!1}function pb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0]; 9933n=f[k+1];if("'"==n||'"'==n){l="";for(q=2;f[k+q]!=n;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=qb(a);else if("f"==j&&d.bFilter)g=rb(a);else if("r"==j&&d.bProcessing)g=sb(a);else if("t"==j)g=tb(a);else if("i"==j&&d.bInfo)g=ub(a);else if("p"== 9934j&&d.bPaginate)g=vb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan"); 9935q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ta(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function ua(a,b,c){s(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={}, 9936e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){s(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=s(a,null,"xhr", 9937[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;s(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function nb(a){return a.bAjaxDataGet?(a.iDraw++,C(a, 9938!0),ua(a,wb(a),function(b){xb(a,b)}),!1):!0}function wb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,k=W(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var r=function(a,b){j.push({name:a,value:b})};r("sEcho",a.iDraw);r("iColumns",c);r("sColumns",D(b,"sName").join(","));r("iDisplayStart",g);r("iDisplayLength",i);var ra={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g], 9939l=f[g],i="function"==typeof n.mData?"function":n.mData,ra.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),r("mDataProp_"+g,i),d.bFilter&&(r("sSearch_"+g,l.sSearch),r("bRegex_"+g,l.bRegex),r("bSearchable_"+g,n.bSearchable)),d.bSort&&r("bSortable_"+g,n.bSortable);d.bFilter&&(r("sSearch",e.sSearch),r("bRegex",e.bRegex));d.bSort&&(h.each(k,function(a,b){ra.order.push({column:b.col,dir:b.dir});r("iSortCol_"+a,b.col);r("sSortDir_"+ 9940a,b.dir)}),r("iSortingCols",k.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:ra:b?j:ra}function xb(a,b){var c=va(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}pa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)N(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;O(a);a._bInitComplete|| 9941wa(a,b);a.bAjaxDataGet=!0;C(a,!1)}function va(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?R(c)(b):b}function rb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value? 9942"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Qa(f,g):f).on("keypress.DT",function(a){if
vendor: 4,796 bytes, lines 9942-9952
9942(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}}); 9943return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){yb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)zb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);Ab(a)}else f(b);a.bFiltered=!0;s(a,null,"search",[a])}function Ab(a){for(var b= 9944m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function zb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Ra(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function yb(a,b,c,d,e,f){var d=Ra(b,d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==m.ext.search.length&&(c=!0);j=Bb(a);if(0>=b.length)a.aiDisplay= 9945g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Ra(a,b,c,d){a=b?a:Sa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function Bb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1; 9946d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(xa.innerHTML=i,i=$b?xa.textContent:xa.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Cb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex, 9947caseInsensitive:a.bCaseInsensitive}}function Db(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function ub(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Eb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Eb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+ 99481,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Fb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Fb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a, 9949f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){pb(a);mb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));s(a,null,"preInit",[a]);T(a);e=y(a);if("ssp"!=e||g)"ajax"==e?ua(a,[],function(c){var f=va(a,c);for(b=0;b<f.length;b++)N(a,f[b]);a.iInitDisplayStart= 9950d;T(a);C(a,!1);wa(a,c)},a):(C(a,!1),wa(a))}else setTimeout(function(){ha(a)},200)}function wa(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&Z(a);s(a,null,"plugin-init",[a,b]);s(a,"aoInitComplete","init",[a,b])}function Ta(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Ua(a);s(a,null,"length",[a,c])}function qb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]= 9951new Option(d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ta(a,h(this).val());O(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function vb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("<div/>").addClass(a.oClasses.sPaging+ 9952b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);
vendor: 5,021 bytes, lines 9952-9961
9952f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Pa(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Va(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&& 9953(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(s(a,null,"page",[a]),c&&O(a));return b}function sb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none"); 9954s(a,null,"processing",[a,b])}function tb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>", 9955{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left", 99560).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],r=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(r.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=r;a.aoDrawCallback.push({fn:ma,sName:"scrolling"});return i[0]}function ma(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"), 9957j=a.nScrollBody,l=h(j),q=j.style,r=h(a.nScrollFoot).children("div"),m=r.children("table"),p=h(a.nTHead),o=h(a.nTable),u=o[0],s=u.style,t=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,ac=D(a.aoColumns,"nTh"),P,L,Q,w,Wa=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,Z(a);else{a.scrollBarVis=L;o.children("thead, tfoot").remove(); 9958t&&(Q=t.clone().prependTo(o),P=t.find("tr"),Q=Q.find("tr"));w=p.clone().prependTo(o);p=p.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ta(a,w),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});t&&I(function(a){a.style.width=""},Q);f=o.outerWidth();if(""===c){s.width="100%";if(U&&(o.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))s.width=v(o.outerWidth()-b);f=o.outerWidth()}else""!==d&&(s.width= 9959v(d),f=o.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Wa.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,ac)!==-1)a.style.width=Wa[b]},p);h(L).height(0);t&&(I(C,Q),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},Q),I(function(a,b){a.style.width=y[b]},P),h(Q).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+z[b]+"</div>";a.style.width=Wa[b]},L);t&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+ 9960A[b]+"</div>";a.style.width=y[b]},Q);if(o.outerWidth()<f){P=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))s.width=v(P-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else P="100%";q.width=v(P);g.width=v(P);t&&(a.nScrollFoot.style.width=v(P));!e&&U&&(q.height=v(u.offsetHeight+b));c=o.outerWidth();n[0].style.width=v(c);i.width=v(c);d=o.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+ 9961(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";t&&(m[0].style.width=v(c),r[0].style.width=v(c),r[0].style[e]=d?b+"px":"0px");o.children("colgroup").insertBefore(o.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;
vendor: 8,024 bytes, lines 9961-9977
9961e++}}function Ha(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll, 9962e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=na(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,r=!1,m,p,o=a.oBrowser,d=o.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)p=c[i[m]],null!==p.sWidth&&(p.sWidth=Gb(p.sWidthOrig,k),r=!0);if(d||!r&&!f&&!e&&j==ba(a)&&j==n.length)for(m=0;m<j;m++)i=$(a,m),null!==i&&(c[i].sWidth=v(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var u=h("<tr/>").appendTo(j.find("tbody")); 9963j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=ta(a,j.find("thead")[0]);for(m=0;m<i.length;m++)p=c[i[m]],n[m].style.width=null!==p.sWidthOrig&&""!==p.sWidthOrig?v(p.sWidthOrig):"",p.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:p.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)r=i[m],p=c[r],h(Hb(a,r)).clone(!1).append(p.sContentPadding).appendTo(u);h("[name]", 9964j).removeAttr("name");p=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=o.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=v(k-g);b.style.width=v(e);p.remove()}l&&(b.style.width= 9965v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Qa(function(){Z(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Gb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Hb(a,b){var c=Ib(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Ib(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(bc, 9966""),c=c.replace(/ /g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType|| 9967"string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function ob(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ia(a);h=W(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Jb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g= 99680;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=p[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Kb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g, 9969"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Xa(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b, 9970D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==typeof d&&d(a)}function Oa(a,b,c,d){var e=a.aoColumns[c];Ya(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Xa(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Xa(a,c,b.shiftKey,d))})} 9971function ya(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=W(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Jb(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,aa(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j], 9972c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function za(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Cb(a.oPreviousSearch),columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Cb(a.aoPreSearchCols[d])}})};s(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a, 9973b)}}function Lb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var i=s(a,"aoStateLoadParams","stateLoadParams",[a,g]);if(-1===h.inArray(!1,i)&&(i=a.iStateDuration,!(0<i&&b.time<+new Date-1E3*i)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},g);b.start!==k&&(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!== 9974k&&h.extend(a.oPreviousSearch,Db(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)i=b.columns[d],i.visible!==k&&(f[d].bVisible=i.visible),i.search!==k&&h.extend(a.aoPreSearchCols[d],Db(i.search))}s(a,"aoStateLoaded","stateLoaded",[a,g])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function Aa(a){var b=m.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+ 9975" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&s(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Mb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e], 9976h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Ya(a,b,c){h(a).on("click.DT",b,function(b){a.blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function s(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+ 9977".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Ua(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}
vendor: 4,490 bytes, lines 9977-9986
9977function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Nb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0, 9978c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function fb(a){h.each({num:function(b){return Ba(b,a)},"num-fmt":function(b){return Ba(b,a,Za)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Za)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Ob(a){return function(){var b= 9979[Aa(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new u(Aa(this[x.iApiIndex])):new u(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing= 9980function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ma(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)}; 9981this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase(); 9982return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return Aa(this[x.iApiIndex])}; 9983this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in m.ext.internal)e&&(this[e]=Ob(e));this.each(function(){var e={},g=1<d?Mb(e,a,!0): 9984a,j=0,i,e=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{gb(l);hb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var r=m.settings,j=0;for(i=r.length;j<i;j++){var p=r[j];if(p.nTable==this||p.nTHead.parentNode==this||p.nTFoot&&p.nTFoot.parentNode==this){var u=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||u)return p.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){p.oInstance.fnDestroy(); 9985break}else{K(p,0,"Cannot reinitialise DataTable",3);return}}if(p.sTableId==this.id){r.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+m.ext._unique++;var o=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:e,sTableId:e});o.nTable=this;o.oApi=b.internal;o.oInit=g;r.push(o);o.oInstance=1===b.length?b:q.dataTable();gb(g);g.oLanguage&&Fa(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]); 9986g=Mb(h.extend(!0,{},l),g);F(o.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));
vendor: 6,469 bytes, lines 9986-9999
9986F(o,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"], 9987["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]);F(o.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(o.oLanguage,g,"fnInfoCallback");z(o,"aoDrawCallback",g.fnDrawCallback,"user");z(o,"aoServerParams",g.fnServerParams,"user");z(o,"aoStateSaveParams",g.fnStateSaveParams,"user");z(o,"aoStateLoadParams",g.fnStateLoadParams,"user");z(o,"aoStateLoaded",g.fnStateLoaded, 9988"user");z(o,"aoRowCallback",g.fnRowCallback,"user");z(o,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(o,"aoHeaderCallback",g.fnHeaderCallback,"user");z(o,"aoFooterCallback",g.fnFooterCallback,"user");z(o,"aoInitComplete",g.fnInitComplete,"user");z(o,"aoPreDrawCallback",g.fnPreDrawCallback,"user");o.rowIdFn=R(g.rowId);ib(o);var t=o.oClasses;g.bJQueryUI?(h.extend(t,m.ext.oJUIClasses,g.oClasses),g.sDom===l.sDom&&"lfrtip"===l.sDom&&(o.sDom='<"H"lfr>t<"F"ip>'),o.renderer)?h.isPlainObject(o.renderer)&& 9989!o.renderer.header&&(o.renderer.header="jqueryui"):o.renderer="jqueryui":h.extend(t,m.ext.classes,g.oClasses);q.addClass(t.sTable);o.iInitDisplayStart===k&&(o.iInitDisplayStart=g.iDisplayStart,o._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(o.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),o._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,o._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=o.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Fa(a); 9990J(l.oLanguage,a);h.extend(true,v,a);ha(o)},error:function(){ha(o)}}),n=!0);null===g.asStripeClasses&&(o.asStripeClasses=[t.sStripeOdd,t.sStripeEven]);var e=o.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),o.asDestroyStripes=e.slice());e=[];r=this.getElementsByTagName("thead");0!==r.length&&(ea(o.aoHeader,r[0]),e=ta(o));if(null===g.aoColumns){r=[];j=0;for(i=e.length;j<i;j++)r.push(null)}else r= 9991g.aoColumns;j=0;for(i=r.length;j<i;j++)Ga(o,e?e[j]:null);kb(o,g.aoColumnDefs,r,function(a,b){la(o,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=o.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};la(o,a)}}})}var U=o.oFeatures, 9992e=function(){if(g.aaSorting===k){var a=o.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=o.aoColumns[j].asSorting[0]}ya(o);U.bSort&&z(o,"aoDrawCallback",function(){if(o.bSorted){var a=W(o),b={};h.each(a,function(a,c){b[c.src]=c.dir});s(o,null,"order",[o,a,b]);Kb(o)}});z(o,"aoDrawCallback",function(){(o.bSorted||y(o)==="ssp"||U.bDeferRender)&&ya(o)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q)); 9993o.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));o.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(o.oScroll.sX!==""||o.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(t.sNoFooter);else if(b.length>0){o.nTFoot=b[0];ea(o.aoFooter,o.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)N(o,g.aaData[j]);else(o.bDeferLoading||y(o)=="dom")&&oa(o,h(o.nTBody).children("tr"));o.aiDisplay=o.aiDisplayMaster.slice(); 9994o.bInitialised=true;n===false&&ha(o)};g.bStateSave?(U.bStateSave=!0,z(o,"aoDrawCallback",za,"state_save"),Lb(o,g,e)):e()}});b=null;return this},x,u,p,t,$a={},Pb=/[\r\n]/g,Ca=/<.*?>/g,cc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,dc=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Za=/[',$£â¬Â¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Qb=function(a){var b=parseInt(a,10);return!isNaN(b)&& 9995isFinite(a)?b:null},Rb=function(a,b){$a[b]||($a[b]=RegExp(Sa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace($a[b],"."):a},ab=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Rb(a,b));c&&d&&(a=a.replace(Za,""));return!isNaN(parseFloat(a))&&isFinite(a)},Sb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:ab(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e< 9996f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},X=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Tb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},sa=function(a){var b=[],c,d,e=a.length,f,g=0;d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};m.util= 9997{throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,h=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,h)},c)):(d=g,a.apply(b,h))}},escapeRegex:function(a){return a.replace(dc,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,V=/\(\)$/,Sa=m.util.escapeRegex,xa=h("<div>")[0],$b=xa.textContent!==k,bc=/<.*?>/g,Qa=m.util.throttle,Ub=[],w=Array.prototype,ec=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable}); 9998if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};u=function(a,b){if(!(this instanceof u))return new u(a,b);var c=[],d=function(a){(a=ec(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]); 9999else d(a);this.context=sa(c);
vendor: 14,622 bytes, lines 9999-10027
9999b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};u.extend(this,this,Ub)};m.Api=u;h.extend(u.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new u(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this); 10000else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new u(this.context,b)},flatten:function(){var a=[];return new u(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,h,i,n,l=this.context,m,p,t=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(h=l.length;g<h;g++){var s=new u(l[g]);if("table"===b)f= 10001c.call(s,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(s,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){p=this[g];"column-rows"===b&&(m=Da(l[g],t.opts));i=0;for(n=p.length;i<n;i++)f=p[i],f="cell"===b?c.call(s,l[g],f.row,f.column,g,i):c.call(s,l[g],f,g,i,m),f!==k&&e.push(f)}}return e.length||d?(a=new u(l,a?e.concat.apply([],e):e),b=a.selector,b.rows=t.rows,b.cols=t.cols,b.opts=t.opts,a):this},lastIndexOf:w.lastIndexOf||function(a, 10002b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new u(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return jb(this,a,b,0,this.length,1)},reduceRight:w.reduceRight||function(a,b){return jb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift, 10003sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new u(this.context,sa(this))},unshift:w.unshift});u.extend=function(a,b,c){if(c.length&&b&&(b instanceof u||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=b.apply(a,arguments);u.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)? 10004{}:f.val,b[f.name].__dt_wrapper=!0,u.extend(a,b[f.name],f.propExt)}};u.register=p=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)u.register(a[c],b);else for(var e=a.split("."),f=Ub,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};u.registerPlural=t=function(a,b,c){u.register(a, 10005c);u.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof u?a.length?h.isArray(a[0])?new u(a.context,a[0]):a[0]:k:a})};p("tables()",function(a){var b;if(a){b=u;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,d);return c[a]}).toArray();b=new b(a)}else b=this;return b});p("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new u(b[0]):a});t("tables().nodes()", 10006"table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});t("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});t("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});t("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});t("tables().containers()","table().container()",function(){return this.iterator("table", 10007function(a){return a.nTableWrapper},1)});p("draw()",function(a){return this.iterator("table",function(b){"page"===a?O(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});p("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Va(b,a)})});p("page.info()",function(){if(0===this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c), 10008pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});p("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ta(b,a)})});var Vb=function(a,b,c){if(c){var d=new u(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();ua(a,[],function(c){pa(a);for(var c=va(a,c),d=0,e=c.length;d< 10009e;d++)N(a,c[d]);T(a,b);C(a,!1)})}};p("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});p("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});p("ajax.reload()",function(a,b){return this.iterator("table",function(c){Vb(c,!1===b,a)})});p("ajax.url()",function(a){var b=this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)? 10010b.ajax.url=a:b.ajax=a})});p("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Vb(c,!1===b,a)})});var bb=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return sa(f)}, 10011cb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},db=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Da=function(a,b){var c,d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:X(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"== 10012d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<d;c++)"none"==j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};p("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=cb(b),c=this.iterator("table",function(c){var e=b,f;return bb("row",a,function(a){var b=Qb(a);if(b!==null&&!e)return[b];f||(f=Da(c,e));if(b!== 10013null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});b=Tb(ja(c.aoData,f,"nTr"));if(a.nodeName){if(a._DT_RowIndex!==k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){var i=c.aIds[a.replace(/^#/,"")];if(i!==k)return[i.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()}, 10014c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});p("rows().nodes()",function(){return this.iterator("row",function(a,b){return a.aoData[b].nTr||k},1)});p("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});t("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});t("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row", 10015function(b,c){da(b,c,a)})});t("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,b){return b},1)});t("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new u(c,b)});t("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1); 10016g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<n;i++)l[i]._DT_CellIndex.row=g}qa(b.aiDisplayMaster,c);qa(b.aiDisplay,c);qa(a[d],c,!1);Ua(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});p("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()? 10017h.push(oa(b,c)[0]):h.push(N(b,c));return h},1),c=this.rows(-1);c.pop();h.merge(c,b);return c});p("row()",function(a,b){return db(this.rows(a,b))});p("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;b[0].aoData[this[0]]._aData=a;da(b[0],this[0],"data");return this});p("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});p("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]); 10018var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?oa(b,a)[0]:N(b,a)});return this.row(b[0])});var eb=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Wb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new u(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"); 100190<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=ba(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&eb(f,c)}))}}};p("row().child()",function(a,b){var c= 10020this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)eb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ba(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e); 10021c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Wb(this,!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Wb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){eb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var fc=/^([^:]+):(name|visIdx|visible)$/,Xb=function(a,b, 10022c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};p("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=cb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return bb("column",e,function(a){var b=Qb(a);if(a==="")return X(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Xb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(fc): 10023"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)}, 100241);c.selector.cols=a;c.selector.opts=b;return c});t("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});t("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});t("columns().data()","column().data()",function(){return this.iterator("column-rows",Xb,1)});t("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData}, 100251)});t("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});t("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});t("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData, 10026i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(n=j.length;i<n;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[m]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);za(b)}});a!==k&&(this.iterator("column",function(c,e){s(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});t("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"=== 10027a?aa(b,c):c},1)});p("columns.adjust()",function(){return this.iterator("table",function(a){Z(a)},1)});p("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return $(c,b);
vendor: 5,487 bytes, lines 10027-10038
10027if("fromData"===a||"toVisible"===a)return aa(c,b)}});p("column()",function(a,b){return db(this.columns(a,b))});p("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table", 10028function(b){var d=a,e=cb(c),f=b.aoData,g=Da(b,e),i=Tb(ja(f,g,"anCells")),j=h([].concat.apply([],i)),l,n=b.aoColumns.length,m,p,t,u,s,v;return bb("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){m=[];p=0;for(t=g.length;p<t;p++){l=g[p];for(u=0;u<n;u++){s={row:l,column:u};if(c){v=f[l];a(s,B(b,l,u),v.anCells?v.anCells[u]:null)&&m.push(s)}else m.push(s)}}return m}if(h.isPlainObject(a))return[a];c=j.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray(); 10029if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b,c),e=this.rows(a,c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});t("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a= 10030a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});p("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});t("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});t("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});t("cells().indexes()","cell().index()",function(){return this.iterator("cell", 10031function(a,b,c){return{row:b,column:c,columnVisible:aa(a,c)}},1)});t("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});p("cell()",function(a,b,c){return db(this.cells(a,b,c))});p("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;lb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});p("order()",function(a,b){var c=this.context;if(a=== 10032k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});p("order.listener()",function(a,b,c){return this.iterator("table",function(d){Oa(d,a,b,c)})});p("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});p(["columns().order()", 10033"column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});p("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});t("columns().search()","column().search()",function(a, 10034b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});p("state()",function(){return this.context.length?this.context[0].oSavedState:null});p("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});p("state.loaded()",function(){return this.context.length? 10035this.context[0].oLoadedState:null});p("state.save()",function(){return this.iterator("table",function(a){za(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b=m.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof m.Api)return!0;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot? 10036h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new u(c):c};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments); 10037a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){pa(a)})});p("settings()",function(){return new u(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a|| 10038!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasse
vendor: 10,050 bytes, lines 10038-10057
10038s,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;s(b,"aoDestroyCallback","destroy",[b]);a||(new u(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j)); 10039b.aaSorting=[];b.aaSortingFixed=[];ya(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width", 10040b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=R(a)(d.oLanguage);a===k&&(a=b);c!== 10041k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.13";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null, 10042mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1, 10043bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration? 10044sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending", 10045sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"}, 10046oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null, 10047sType:null,sWidth:null};Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[], 10048aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null, 10049searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[], 10050fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null, 10051aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=x={buttons:{},classes:{},build:"bs/dt-1.10.13/b-1.2.4/b-colvis-1.2.4/b-print-1.2.4/cr-1.3.2/fc-3.2.2/fh-3.1.2/r-2.1.0",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature, 10052oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc", 10053sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"", 10054sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Yb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc", 10055sSortDesc:G+" sorting_desc",sSortable:G+" sorting",sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Yb+ 10056" ui-corner-tl ui-corner-tr",sJUIFooter:Yb+" ui-corner-bl ui-corner-br"});var Nb=m.ext.pager;h.extend(Nb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,m.ext.renderer, 10057{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,p=0,r=function(b,d){var k,t,u,s,v=function(b){Va(a,b.data.action,true)};k=0;for(t=d.length;k<t;k++){s=d[k];if(h.isArray(s)){u=h("<"+(s.DT_el||"div")+"/>").appendTo(b);r(u,s)}else{m=null;l="";switch(s){case "ellipsis":b.append('<span class="ellipsis">…
vendor: 6,635 bytes, lines 10057-10077
10057</span>');break;case "first":m=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=s+(e>0?"":" "+ 10058g.sPageButtonDisabled);break;case "next":m=j.sNext;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=s+1;l=e===s?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":p,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(m).appendTo(b);Ya(u,{action:s},v);p++}}}},t;try{t=h(b).find(H.activeElement).data("dt-idx")}catch(u){}r(h(b).empty(), 10059d);t!==k&&h(b).find("[data-dt-idx="+t+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return ab(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!cc.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return ab(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Sb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Sb(a,c,!0)?"html-num-fmt"+ 10060c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Pb," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Pb," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Rb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||-Infinity}, 10061"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});fb("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]== 10062"asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+ 10063d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Zb=function(a){return"string"===typeof a?a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Zb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2): 10064"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Zb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Ob,_fnBuildAjax:ua,_fnAjaxUpdate:nb,_fnAjaxParameters:wb,_fnAjaxUpdateDraw:xb,_fnAjaxDataSrc:va,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:Z,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:aa,_fnVisbleColumns:ba,_fnGetColumns:na,_fnColumnTypes:Ia,_fnApplyColumnDefs:kb,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa, 10065_fnBrowserDetect:ib,_fnAddData:N,_fnAddTr:oa,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:lb,_fnSplitObjNotation:La,_fnGetObjectDataFn:R,_fnSetObjectDataFn:S,_fnGetDataMaster:Ma,_fnClearTable:pa,_fnDeleteIndex:qa,_fnInvalidate:da,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:mb,_fnDrawHead:fa,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:pb,_fnDetectHeader:ea, 10066_fnGetUniqueThs:ta,_fnFeatureHtmlFilter:rb,_fnFilterComplete:ga,_fnFilterCustom:Ab,_fnFilterColumn:zb,_fnFilter:yb,_fnFilterCreateSearch:Ra,_fnEscapeRegex:Sa,_fnFilterData:Bb,_fnFeatureHtmlInfo:ub,_fnUpdateInfo:Eb,_fnInfoMacros:Fb,_fnInitialise:ha,_fnInitComplete:wa,_fnLengthChange:Ta,_fnFeatureHtmlLength:qb,_fnFeatureHtmlPaginate:vb,_fnPageChange:Va,_fnFeatureHtmlProcessing:sb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:tb,_fnScrollDraw:ma,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:Qa, 10067_fnConvertToWidth:Gb,_fnGetWidestNode:Hb,_fnGetMaxLenString:Ib,_fnStringToCss:v,_fnSortFlatten:W,_fnSort:ob,_fnSortAria:Kb,_fnSortListener:Xa,_fnSortAttachListener:Oa,_fnSortingClasses:ya,_fnSortData:Jb,_fnSaveState:za,_fnLoadState:Lb,_fnSettingsFromNode:Aa,_fnLog:K,_fnMap:F,_fnBindAction:Ya,_fnCallbackReg:z,_fnCallbackFire:s,_fnLengthOverflow:Ua,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt= 10068m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable}); 10069 10070 10071/*! 10072 DataTables Bootstrap 3 integration 10073 ©2011-2015 SpryMedia Ltd - datatables.net/license 10074*/ 10075(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 10076{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 10077l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="…";g="disabled";break;case "first":e=k.sFirst;
10077g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#", 10078"aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f}); 10079 10080 10081/*! 10082 Buttons for DataTables 1.2.4 10083 ©2016 SpryMedia Ltd - datatables.net/license 10084*/ 10085(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(n){return d(n,window,document)}):"object"===typeof exports?module.exports=function(n,o){n||(n=window);if(!o||!o.fn.dataTable)o=require("datatables.net")(n,o).$;return d(o,n,n.document)}:d(jQuery,window,document)})(function(d,n,o,m){var i=d.fn.dataTable,u=0,v=0,j=i.ext.buttons,l=function(a,b){!0===b&&(b={});d.isArray(b)&&(b={buttons:b});this.c=d.extend(!0,{},l.defaults,b);b.buttons&&(this.c.buttons=b.buttons); 10086this.s={dt:new i.Api(a),buttons:[],listenKeys:"",namespace:"dtb"+u++};this.dom={container:d("<"+this.c.dom.container.tag+"/>").addClass(this.c.dom.container.className)};this._constructor()};d.extend(l.prototype,{action:function(a,b){var c=this._nodeToButton(a);if(b===m)return c.conf.action;c.conf.action=b;return this},active:function(a,b){var c=this._nodeToButton(a),e=this.c.dom.button.active,c=d(c.node);if(b===m)return c.hasClass(e);c.toggleClass(e,b===m?!0:b);return this},add:function(a,b){var c= 10087this.s.buttons;if("string"===typeof b){for(var e=b.split("-"),c=this.s,d=0,h=e.length-1;d<h;d++)c=c.buttons[1*e[d]];c=c.buttons;b=1*e[e.length-1]}this._expandButton(c,a,!1,b);this._draw();return this},container:function(){return this.dom.container},disable:function(a){a=this._nodeToButton(a);d(a.node).addClass(this.c.dom.button.disabled);return this},destroy:function(){d("body").off("keyup."+this.s.namespace);var a=this.s.buttons.slice(),b,c;b=0;for(c=a.length;b<c;b++)this.remove(a[b].node);this.dom.container.remove(); 10088a=this.s.dt.settings()[0];b=0;for(c=a.length;b<c;b++)if(a.inst===this){a.splice(b,1);break}return this},enable:function(a,b){if(!1===b)return this.disable(a);var c=this._nodeToButton(a);d(c.node).removeClass(this.c.dom.button.disabled);return this},name:function(){return this.c.name},node:function(a){a=this._nodeToButton(a);return d(a.node)},remove:function(a){var b=this._nodeToButton(a),c=this._nodeToHost(a),e=this.s.dt;if(b.buttons.length)for(var g=b.buttons.length-1;0<=g;g--)this.remove(b.buttons[g].node); 10089b.conf.destroy&&b.conf.destroy.call(e.button(a),e,d(a),b.conf);this._removeKey(b.conf);d(b.node).remove();a=d.inArray(b,c);c.splice(a,1);return this},text:function(a,b){var c=this._nodeToButton(a),e=this.c.dom.collection.buttonLiner,e=c.inCollection&&e&&e.tag?e.tag:this.c.dom.buttonLiner.tag,g=this.s.dt,h=d(c.node),f=function(a){return"function"===typeof a?a(g,h,c.conf):a};if(b===m)return f(c.conf.text);c.conf.text=b;e?h.children(e).html(f(b)):h.html(f(b));return this},_constructor:function(){var a= 10090this,b=this.s.dt,c=b.settings()[0],e=this.c.buttons;c._buttons||(c._buttons=[]);c._buttons.push({inst:this,name:this.c.name});for(var c=0,g=e.length;c<g;c++)this.add(e[c]);b.on("destroy",function(){a.destroy()});d("body").on("keyup."+this.s.namespace,function(b){if(!o.activeElement||o.activeElement===o.body){var c=String.fromCharCode(b.keyCode).toLowerCase();a.s.listenKeys.toLowerCase().indexOf(c)!==-1&&a._keypress(c,b)}})},_addKey:function(a){a.key&&(this.s.listenKeys+=d.isPlainObject(a.key)?a.key.key: 10091a.key)},_draw:function(a,b){a||(a=this.dom.container,b=this.s.buttons);a.children().detach();for(var c=0,e=b.length;c<e;c++)a.append(b[c].inserter),b[c].buttons&&b[c].buttons.length&&this._draw(b[c].collection,b[c].buttons)},_expandButton:function(a,b,c,e){for(var g=this.s.dt,h=0,b=!d.isArray(b)?[b]:b,f=0,r=b.length;f<r;f++){var k=this._resolveExtends(b[f]);if(k)if(d.isArray(k))this._expandButton(a,k,c,e);else{var p=this._buildButton(k,c);if(p){e!==m?(a.splice(e,0,p),e++):a.push(p);if(p.conf.buttons){var s= 10092this.c.dom.collection;p.collection=d("<"+s.tag+"/>").addClass(s.className);p.conf._collection=p.collection;this._expandButton(p.buttons,p.conf.buttons,!0,e)}k.init&&k.init.call(g.button(p.node),g,d(p.node),k);h++}}}},_buildButton:function(a,b){var c=this.c.dom.button,e=this.c.dom.buttonLiner,g=this.c.dom.collection,h=this.s.dt,f=function(b){return"function"===typeof b?b(h,k,a):b};b&&g.button&&(c=g.button);b&&g.buttonLiner&&(e=g.buttonLiner);if(a.available&&!a.available(h,a))return!1;var r=function(a, 10093b,c,e){e.action.call(b.button(c),a,b,c,e);d(b.table().node()).triggerHandler("buttons-action.dt",[b.button(c),b,c,e])},k=d("<"+c.tag+"/>").addClass(c.className).attr("tabindex",this.s.dt.settings()[0].iTabIndex).attr("aria-controls",this.s.dt.table().node().id).on("click.dtb",function(b){b.preventDefault();!k.hasClass(c.disabled)&&a.action&&r(b,h,k,a);k.blur()}).on("keyup.dtb",function(b){b.keyCode===13&&!k.hasClass(c.disabled)&&a.action&&r(b,h,k,a)});"a"===c.tag.toLowerCase()&&k.attr("href","#"); 10094e.tag?(g=d("<"+e.tag+"/>").html(f(a.text)).addClass(e.className),"a"===e.tag.toLowerCase()&&g.attr("href","#"),k.append(g)):k.html(f(a.text));!1===a.enabled&&k.addClass(c.disabled);a.className&&k.addClass(a.className);
10094a.titleAttr&&k.attr("title",a.titleAttr);a.namespace||(a.namespace=".dt-button-"+v++);e=(e=this.c.dom.buttonContainer)&&e.tag?d("<"+e.tag+"/>").addClass(e.className).append(k):k;this._addKey(a);return{conf:a,node:k.get(0),inserter:e,buttons:[],inCollection:b,collection:null}},_nodeToButton:function(a, 10095b){b||(b=this.s.buttons);for(var c=0,e=b.length;c<e;c++){if(b[c].node===a)return b[c];if(b[c].buttons.length){var d=this._nodeToButton(a,b[c].buttons);if(d)return d}}},_nodeToHost:function(a,b){b||(b=this.s.buttons);for(var c=0,e=b.length;c<e;c++){if(b[c].node===a)return b;if(b[c].buttons.length){var d=this._nodeToHost(a,b[c].buttons);if(d)return d}}},_keypress:function(a,b){var c=function(e){for(var g=0,h=e.length;g<h;g++){var f=e[g].conf,r=e[g].node;if(f.key)if(f.key===a)d(r).click();else if(d.isPlainObject(f.key)&& 10096f.key.key===a&&(!f.key.shiftKey||b.shiftKey))if(!f.key.altKey||b.altKey)if(!f.key.ctrlKey||b.ctrlKey)(!f.key.metaKey||b.metaKey)&&d(r).click();e[g].buttons.length&&c(e[g].buttons)}};c(this.s.buttons)},_removeKey:function(a){if(a.key){var b=d.isPlainObject(a.key)?a.key.key:a.key,a=this.s.listenKeys.split(""),b=d.inArray(b,a);a.splice(b,1);this.s.listenKeys=a.join("")}},_resolveExtends:function(a){for(var b=this.s.dt,c,e,g=function(c){for(var e=0;!d.isPlainObject(c)&&!d.isArray(c);){if(c===m)return; 10097if("function"===typeof c){if(c=c(b,a),!c)return!1}else if("string"===typeof c){if(!j[c])throw"Unknown button type: "+c;c=j[c]}e++;if(30<e)throw"Buttons: Too many iterations";}return d.isArray(c)?c:d.extend({},c)},a=g(a);a&&a.extend;){if(!j[a.extend])throw"Cannot extend unknown button type: "+a.extend;var h=g(j[a.extend]);if(d.isArray(h))return h;if(!h)return!1;c=h.className;a=d.extend({},h,a);c&&a.className!==c&&(a.className=c+" "+a.className);var f=a.postfixButtons;if(f){a.buttons||(a.buttons=[]); 10098c=0;for(e=f.length;c<e;c++)a.buttons.push(f[c]);a.postfixButtons=null}if(f=a.prefixButtons){a.buttons||(a.buttons=[]);c=0;for(e=f.length;c<e;c++)a.buttons.splice(c,0,f[c]);a.prefixButtons=null}a.extend=h.extend}return a}});l.background=function(a,b,c){c===m&&(c=400);a?d("<div/>").addClass(b).css("display","none").appendTo("body").fadeIn(c):d("body > div."+b).fadeOut(c,function(){d(this).removeClass(b).remove()})};l.instanceSelector=function(a,b){if(!a)return d.map(b,function(a){return a.inst});var c= 10099[],e=d.map(b,function(a){return a.name}),g=function(a){if(d.isArray(a))for(var f=0,r=a.length;f<r;f++)g(a[f]);else"string"===typeof a?-1!==a.indexOf(",")?g(a.split(",")):(a=d.inArray(d.trim(a),e),-1!==a&&c.push(b[a].inst)):"number"===typeof a&&c.push(b[a].inst)};g(a);return c};l.buttonSelector=function(a,b){for(var c=[],e=function(a,b,c){for(var d,g,f=0,h=b.length;f<h;f++)if(d=b[f])g=c!==m?c+f:f+"",a.push({node:d.node,name:d.conf.name,idx:g}),d.buttons&&e(a,d.buttons,g+"-")},g=function(a,b){var f, 10100h,i=[];e(i,b.s.buttons);f=d.map(i,function(a){return a.node});if(d.isArray(a)||a instanceof d){f=0;for(h=a.length;f<h;f++)g(a[f],b)}else if(null===a||a===m||"*"===a){f=0;for(h=i.length;f<h;f++)c.push({inst:b,node:i[f].node})}else if("number"===typeof a)c.push({inst:b,node:b.s.buttons[a].node});else if("string"===typeof a)if(-1!==a.indexOf(",")){i=a.split(",");f=0;for(h=i.length;f<h;f++)g(d.trim(i[f]),b)}else if(a.match(/^\d+(\-\d+)*$/))f=d.map(i,function(a){return a.idx}),c.push({inst:b,node:i[d.inArray(a, 10101f)].node});else if(-1!==a.indexOf(":name")){var j=a.replace(":name","");f=0;for(h=i.length;f<h;f++)i[f].name===j&&c.push({inst:b,node:i[f].node})}else d(f).filter(a).each(function(){c.push({inst:b,node:this})});else"object"===typeof a&&a.nodeName&&(i=d.inArray(a,f),-1!==i&&c.push({inst:b,node:f[i]}))},h=0,f=a.length;h<f;h++)g(b,a[h]);return c};l.defaults={buttons:["copy","excel","csv","pdf","print"],name:"main",tabIndex:0,dom:{container:{tag:"div",className:"dt-buttons"},collection:{tag:"div",className:"dt-button-collection"}, 10102button:{tag:"a",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"span",className:""}}};l.version="1.2.4";d.extend(j,{collection:{text:function(a){return a.i18n("buttons.collection","Collection")},className:"buttons-collection",action:function(a,b,c,e){var a=c.offset(),g=d(b.table().container()),h=!1;d("div.dt-button-background").length&&(h=d(".dt-button-collection").offset(),d("body").trigger("click.dtb-collection"));e._collection.addClass(e.collectionLayout).css("display", 10103"none").appendTo("body").fadeIn(e.fade);var f=e._collection.css("position");
10103h&&"absolute"===f?e._collection.css({top:h.top,left:h.left}):"absolute"===f?(e._collection.css({top:a.top+c.outerHeight(),left:a.left}),c=a.left+e._collection.outerWidth(),g=g.offset().left+g.width(),c>g&&e._collection.css("left",a.left-(c-g))):(a=e._collection.height()/2,a>d(n).height()/2&&(a=d(n).height()/2),e._collection.css("marginTop",-1*a));e.background&&l.background(!0,e.backgroundClassName,e.fade);setTimeout(function(){d("div.dt-button-background").on("click.dtb-collection", 10104function(){});d("body").on("click.dtb-collection",function(a){var c=d.fn.addBack?"addBack":"andSelf";if(!d(a.target).parents()[c]().filter(e._collection).length){e._collection.fadeOut(e.fade,function(){e._collection.detach()});d("div.dt-button-background").off("click.dtb-collection");l.background(false,e.backgroundClassName,e.fade);d("body").off("click.dtb-collection");b.off("buttons-action.b-internal")}})},10);if(e.autoClose)b.on("buttons-action.b-internal",function(){d("div.dt-button-background").click()})}, 10105background:!0,collectionLayout:"",backgroundClassName:"dt-button-background",autoClose:!1,fade:400},copy:function(a,b){if(j.copyHtml5)return"copyHtml5";if(j.copyFlash&&j.copyFlash.available(a,b))return"copyFlash"},csv:function(a,b){if(j.csvHtml5&&j.csvHtml5.available(a,b))return"csvHtml5";if(j.csvFlash&&j.csvFlash.available(a,b))return"csvFlash"},excel:function(a,b){if(j.excelHtml5&&j.excelHtml5.available(a,b))return"excelHtml5";if(j.excelFlash&&j.excelFlash.available(a,b))return"excelFlash"},pdf:function(a, 10106b){if(j.pdfHtml5&&j.pdfHtml5.available(a,b))return"pdfHtml5";if(j.pdfFlash&&j.pdfFlash.available(a,b))return"pdfFlash"},pageLength:function(a){var a=a.settings()[0].aLengthMenu,b=d.isArray(a[0])?a[0]:a,c=d.isArray(a[0])?a[1]:a,e=function(a){return a.i18n("buttons.pageLength",{"-1":"Show all rows",_:"Show %d rows"},a.page.len())};return{extend:"collection",text:e,className:"buttons-page-length",autoClose:!0,buttons:d.map(b,function(a,b){return{text:c[b],className:"button-page-length",action:function(b, 10107c){c.page.len(a).draw()},init:function(b,c,e){var d=this,c=function(){d.active(b.page.len()===a)};b.on("length.dt"+e.namespace,c);c()},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}),init:function(a,b,c){var d=this;a.on("length.dt"+c.namespace,function(){d.text(e(a))})},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}});i.Api.register("buttons()",function(a,b){b===m&&(b=a,a=m);this.selector.buttonGroup=a;var c=this.iterator(!0,"table",function(c){if(c._buttons)return l.buttonSelector(l.instanceSelector(a, 10108c._buttons),b)},!0);c._groupSelector=a;return c});i.Api.register("button()",function(a,b){var c=this.buttons(a,b);1<c.length&&c.splice(1,c.length);return c});i.Api.registerPlural("buttons().active()","button().active()",function(a){return a===m?this.map(function(a){return a.inst.active(a.node)}):this.each(function(b){b.inst.active(b.node,a)})});i.Api.registerPlural("buttons().action()","button().action()",function(a){return a===m?this.map(function(a){return a.inst.action(a.node)}):this.each(function(b){b.inst.action(b.node, 10109a)})});i.Api.register(["buttons().enable()","button().enable()"],function(a){return this.each(function(b){b.inst.enable(b.node,a)})});i.Api.register(["buttons().disable()","button().disable()"],function(){return this.each(function(a){a.inst.disable(a.node)})});i.Api.registerPlural("buttons().nodes()","button().node()",function(){var a=d();d(this.each(function(b){a=a.add(b.inst.node(b.node))}));return a});i.Api.registerPlural("buttons().text()","button().text()",function(a){return a===m?this.map(function(a){return a.inst.text(a.node)}): 10110this.each(function(b){b.inst.text(b.node,a)})});i.Api.registerPlural("buttons().trigger()","button().trigger()",function(){return this.each(function(a){a.inst.node(a.node).trigger("click")})});i.Api.registerPlural("buttons().containers()","buttons().container()",function(){var a=d(),b=this._groupSelector;this.iterator(!0,"table",function(c){if(c._buttons)for(var c=l.instanceSelector(b,c._buttons),d=0,g=c.length;d<g;d++)a=a.add(c[d].container())});return a});i.Api.register("button().add()",function(a, 10111b){var c=this.context;c.length&&(c=l.instanceSelector(this._groupSelector,c[0]._buttons),c.length&&c[0].add(b,a));return this.button(this._groupSelector,a)});i.Api.register("buttons().destroy()",function(){this.pluck("inst").unique().each(function(a){a.destroy()});return this});i.Api.registerPlural("buttons().remove()","buttons().remove()",function(){this.each(function(a){a.inst.remove(a.node)});return this});var q;i.Api.register("buttons.info()",function(a,b,c){var e=this;if(!1===a)return d("#datatables_buttons_info").fadeOut(function(){d(this).remove()}), 10112clearTimeout(q),q=null,this;q&&clearTimeout(q);d("#datatables_buttons_info").length&&d("#datatables_buttons_info").remove();d('<div id="datatables_buttons_info" class="dt-button-info"/>').html(a?"<h2>"+a+"</h2>":"").append(d("<div/>")["string"===typeof b?"html":"append"](b)).css("display","none").appendTo("body").fadeIn();c!==m&&0!==c&&(q=setTimeout(function(){e.buttons.info(!1)},c));return this});
10112i.Api.register("buttons.exportData()",function(a){if(this.context.length){for(var b=new i.Api(this.context[0]), 10113c=d.extend(!0,{},{rows:null,columns:"",modifier:{search:"applied",order:"applied"},orthogonal:"display",stripHtml:!0,stripNewlines:!0,decodeEntities:!0,trim:!0,format:{header:function(a){return e(a)},footer:function(a){return e(a)},body:function(a){return e(a)}}},a),e=function(a){if("string"!==typeof a)return a;c.stripHtml&&(a=a.replace(/<[^>]*>/g,""));c.trim&&(a=a.replace(/^\s+|\s+$/g,""));c.stripNewlines&&(a=a.replace(/\n/g," "));c.decodeEntities&&(t.innerHTML=a,a=t.value);return a},a=b.columns(c.columns).indexes().map(function(a){var d= 10114b.column(a).header();return c.format.header(d.innerHTML,a,d)}).toArray(),g=b.table().footer()?b.columns(c.columns).indexes().map(function(a){var d=b.column(a).footer();return c.format.footer(d?d.innerHTML:"",a,d)}).toArray():null,h=b.rows(c.rows,c.modifier).indexes().toArray(),f=b.cells(h,c.columns),h=f.render(c.orthogonal).toArray(),f=f.nodes().toArray(),j=a.length,k=0<j?h.length/j:0,l=Array(k),m=0,n=0;n<k;n++){for(var o=Array(j),q=0;q<j;q++)o[q]=c.format.body(h[m],n,q,f[m]),m++;l[n]=o}return{header:a, 10115footer:g,body:l}}});var t=d("<textarea/>")[0];d.fn.dataTable.Buttons=l;d.fn.DataTable.Buttons=l;d(o).on("init.dt plugin-init.dt",function(a,b){if("dt"===a.namespace){var c=b.oInit.buttons||i.defaults.buttons;c&&!b._buttons&&(new l(b,c)).container()}});i.ext.feature.push({fnInit:function(a){var a=new i.Api(a),b=a.init().buttons||i.defaults.buttons;return(new l(a,b)).container()},cFeature:"B"});return l}); 10116 10117 10118/*! 10119 Bootstrap integration for DataTables' Buttons 10120 ©2016 SpryMedia Ltd - datatables.net/license 10121*/ 10122(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs")(a,b).$;b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group"}, 10123button:{className:"btn btn-default"},collection:{tag:"ul",className:"dt-button-collection dropdown-menu",button:{tag:"li",className:"dt-button"},buttonLiner:{tag:"a",className:""}}}});a.ext.buttons.collection.text=function(a){return a.i18n("buttons.collection",'Collection <span class="caret"/>')};return a.Buttons}); 10124 10125 10126(function(g){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(d){return g(d,window,document)}):"object"===typeof exports?module.exports=function(d,e){d||(d=window);if(!e||!e.fn.dataTable)e=require("datatables.net")(d,e).$;e.fn.dataTable.Buttons||require("datatables.net-buttons")(d,e);return g(e,d,d.document)}:g(jQuery,window,document)})(function(g,d,e,h){d=g.fn.dataTable;g.extend(d.ext.buttons,{colvis:function(a,b){return{extend:"collection", 10127text:function(a){return a.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",buttons:[{extend:"columnsToggle",columns:b.columns}]}},columnsToggle:function(a,b){return a.columns(b.columns).indexes().map(function(a){return{extend:"columnToggle",columns:a}}).toArray()},columnToggle:function(a,b){return{extend:"columnVisibility",columns:b.columns}},columnsVisibility:function(a,b){return a.columns(b.columns).indexes().map(function(a){return{extend:"columnVisibility",columns:a,visibility:b.visibility}}).toArray()}, 10128columnVisibility:{columns:h,text:function(a,b,c){return c._columnText(a,c.columns)},className:"buttons-columnVisibility",action:function(a,b,c,f){a=b.columns(f.columns);b=a.visible();a.visible(f.visibility!==h?f.visibility:!(b.length&&b[0]))},init:function(a,b,c){var f=this;a.on("column-visibility.dt"+c.namespace,function(b,d){d.bDestroying||f.active(a.column(c.columns).visible())}).on("column-reorder.dt"+c.namespace,function(b,d,e){1===a.columns(c.columns).count()&&("number"===typeof c.columns&& 10129(c.columns=e.mapping[c.columns]),b=a.column(c.columns),f.text(c._columnText(a,c.columns)),f.active(b.visible()))});this.active(a.column(c.columns).visible())},destroy:function(a,b,c){a.off("column-visibility.dt"+c.namespace).off("column-reorder.dt"+c.namespace)},_columnText:function(a,b){var c=a.column(b).index();return a.settings()[0].aoColumns[c].sTitle.replace(/\n/g," ").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"")}},colvisRestore:{className:"buttons-colvisRestore",text:function(a){return a.i18n("buttons.colvisRestore", 10130"Restore visibility")},init:function(a,b,c){c._visOriginal=a.columns().indexes().map(function(b){return a.column(b).visible()}).toArray()},action:function(a,b,c,d){b.columns().every(function(a){a=b.colReorder&&b.colReorder.transpose?b.colReorder.transpose(a,"toOriginal"):a;this.visible(d._visOriginal[a])})}},colvisGroup:{className:"buttons-colvisGroup",action:function(a,b,c,d){b.columns(d.show).visible(!0,!1);b.columns(d.hide).visible(!1,!1);b.columns.adjust()},show:[],hide:[]}});return d.Buttons}); 10131 10132 10133(function(e){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(f){return e(f,window,document)}):"object"===typeof exports?module.exports=function(f,c){f||(f=window);if(!c||!c.fn.dataTable)c=require("datatables.net")(f,c).$;c.fn.dataTable.Buttons||require("datatables.net-buttons")(f,c);return e(c,f,f.document)}:e(jQuery,window,document)})(function(e,f,c){var i=e.fn.dataTable,h=c.createElement("a");i.ext.buttons.print={className:"buttons-print", 10134text:function(b){return b.i18n("buttons.print","Print")},action:function(b,c,i,d){var a=c.buttons.exportData(d.exportOptions),k=function(b,a){for(var c="<tr>",d=0,e=b.length;d<e;d++)c+="<"+a+">"+b[d]+"</"+a+">";return c+"</tr>"},b='<table class="'+c.table().node().className+'">';d.header&&(b+="<thead>"+k(a.header,"th")+"</thead>");for(var b=b+"<tbody>",l=0,m=a.body.length;l<m;l++)b+=k(a.body[l],"td");b+="</tbody>";d.footer&&a.footer&&(b+="<tfoot>"+k(a.footer,"th")+"</tfoot>");var g=f.open("",""), 10135a=d.title;"function"===typeof a&&(a=a());
10135-1!==a.indexOf("*")&&(a=a.replace("*",e("title").text()));g.document.close();var j="<title>"+a+"</title>";e("style, link").each(function(){var c=j,b=e(this).clone()[0],a;"link"===b.nodeName.toLowerCase()&&(h.href=b.href,a=h.host,-1===a.indexOf("/")&&0!==h.pathname.indexOf("/")&&(a+="/"),b.href=h.protocol+"//"+a+h.pathname+h.search);j=c+b.outerHTML});try{g.document.head.innerHTML=j}catch(n){e(g.document.head).html(j)}g.document.body.innerHTML="<h1>"+a+"</h1><div>"+ 10136("function"===typeof d.message?d.message(c,i,d):d.message)+"</div>"+b;e(g.document.body).addClass("dt-print-view");d.customize&&d.customize(g);setTimeout(function(){d.autoPrint&&(g.print(),g.close())},250)},title:"*",message:"",exportOptions:{},header:!0,footer:!1,autoPrint:!0,customize:null};return i.Buttons}); 10137 10138 10139/*! 10140 ColReorder 1.3.2 10141 ©2010-2015 SpryMedia Ltd - datatables.net/license 10142*/ 10143(function(f){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(o){return f(o,window,document)}):"object"===typeof exports?module.exports=function(o,l){o||(o=window);if(!l||!l.fn.dataTable)l=require("datatables.net")(o,l).$;return f(l,o,o.document)}:f(jQuery,window,document)})(function(f,o,l,r){function q(a){for(var b=[],d=0,e=a.length;d<e;d++)b[a[d]]=d;return b}function p(a,b,d){b=a.splice(b,1)[0];a.splice(d,0,b)}function s(a,b,d){for(var e=[],f=0,c=a.childNodes.length;f< 10144c;f++)1==a.childNodes[f].nodeType&&e.push(a.childNodes[f]);b=e[b];null!==d?a.insertBefore(b,e[d]):a.appendChild(b)}var t=f.fn.dataTable;f.fn.dataTableExt.oApi.fnColReorder=function(a,b,d,e,g){var c,h,j,m,i,l=a.aoColumns.length,k;i=function(a,b,c){if(a[b]&&"function"!==typeof a[b]){var d=a[b].split("."),e=d.shift();isNaN(1*e)||(a[b]=c[1*e]+"."+d.join("."))}};if(b!=d)if(0>b||b>=l)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+b);else if(0>d||d>=l)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+ 10145d);else{j=[];c=0;for(h=l;c<h;c++)j[c]=c;p(j,b,d);var n=q(j);c=0;for(h=a.aaSorting.length;c<h;c++)a.aaSorting[c][0]=n[a.aaSorting[c][0]];if(null!==a.aaSortingFixed){c=0;for(h=a.aaSortingFixed.length;c<h;c++)a.aaSortingFixed[c][0]=n[a.aaSortingFixed[c][0]]}c=0;for(h=l;c<h;c++){k=a.aoColumns[c];j=0;for(m=k.aDataSort.length;j<m;j++)k.aDataSort[j]=n[k.aDataSort[j]];k.idx=n[k.idx]}f.each(a.aLastSort,function(b,c){a.aLastSort[b].src=n[c.src]});c=0;for(h=l;c<h;c++)k=a.aoColumns[c],"number"==typeof k.mData? 10146k.mData=n[k.mData]:f.isPlainObject(k.mData)&&(i(k.mData,"_",n),i(k.mData,"filter",n),i(k.mData,"sort",n),i(k.mData,"type",n));if(a.aoColumns[b].bVisible){i=this.oApi._fnColumnIndexToVisible(a,b);m=null;for(c=d<b?d:d+1;null===m&&c<l;)m=this.oApi._fnColumnIndexToVisible(a,c),c++;j=a.nTHead.getElementsByTagName("tr");c=0;for(h=j.length;c<h;c++)s(j[c],i,m);if(null!==a.nTFoot){j=a.nTFoot.getElementsByTagName("tr");c=0;for(h=j.length;c<h;c++)s(j[c],i,m)}c=0;for(h=a.aoData.length;c<h;c++)null!==a.aoData[c].nTr&& 10147s(a.aoData[c].nTr,i,m)}p(a.aoColumns,b,d);c=0;for(h=l;c<h;c++)a.oApi._fnColumnOptions(a,c,{});p(a.aoPreSearchCols,b,d);c=0;for(h=a.aoData.length;c<h;c++){m=a.aoData[c];if(k=m.anCells){p(k,b,d);j=0;for(i=k.length;j<i;j++)k[j]&&k[j]._DT_CellIndex&&(k[j]._DT_CellIndex.column=j)}"dom"!==m.src&&f.isArray(m._aData)&&p(m._aData,b,d)}c=0;for(h=a.aoHeader.length;c<h;c++)p(a.aoHeader[c],b,d);if(null!==a.aoFooter){c=0;for(h=a.aoFooter.length;c<h;c++)p(a.aoFooter[c],b,d)}(g||g===r)&&f.fn.dataTable.Api(a).rows().invalidate(); 10148c=0;for(h=l;c<h;c++)f(a.aoColumns[c].nTh).off("click.DT"),this.oApi._fnSortAttachListener(a,a.aoColumns[c].nTh,c);f(a.oInstance).trigger("column-reorder.dt",[a,{from:b,to:d,mapping:n,drop:e,iFrom:b,iTo:d,aiInvertMapping:n}])}};var i=function(a,b){var d=(new f.fn.dataTable.Api(a)).settings()[0];if(d._colReorder)return d._colReorder;!0===b&&(b={});var e=f.fn.dataTable.camelToHungarian;e&&(e(i.defaults,i.defaults,!0),e(i.defaults,b||{}));this.s={dt:null,init:f.extend(!0,{},i.defaults,b),fixed:0,fixedRight:0, 10149reorderCallback:null,mouse:{startX:-1,startY:-1,offsetX:-1,offsetY:-1,target:-1,targetIndex:-1,fromIndex:-1},aoTargets:[]};this.dom={drag:null,pointer:null};this.s.dt=d;this.s.dt._colReorder=this;this._fnConstruct();return this};f.extend(i.prototype,{fnReset:function(){this._fnOrderColumns(this.fnOrder());return this},fnGetCurrentOrder:function(){return this.fnOrder()},fnOrder:function(a,b){var d=[],e,g,c=this.s.dt.aoColumns;if(a===r){e=0;for(g=c.length;e<g;e++)d.push(c[e]._ColReorder_iOrigCol);return d}if(b){c= 10150this.fnOrder();e=0;for(g=a.length;e<g;e++)d.push(f.inArray(a[e],c));a=d}this._fnOrderColumns(q(a));return this},fnTranspose:function(a,b){b||(b="toCurrent");var d=this.fnOrder(),e=this.s.dt.aoColumns;return"toCurrent"===b?!f.isArray(a)?f.inArray(a,d):f.map(a,function(a){return f.inArray(a,d)}):!f.isArray(a)?e[a]._ColReorder_iOrigCol:f.map(a,function(a){return e[a]._ColReorder_iOrigCol})},_fnConstruct:function(){var a=this,b=this.s.dt.aoColumns.length,d=this.s.dt.nTable,e;this.s.init.iFixedColumns&& 10151(this.s.fixed=this.s.init.iFixedColumns);this.s.init.iFixedColumnsLeft&&(this.s.fixed=this.s.init.iFixedColumnsLeft);this.s.fixedRight=this.s.init.iFixedColumnsRight?this.s.init.iFixedColumnsRight:0;this.s.init.fnReorderCallback&&(this.s.reorderCallback=this.s.init.fnReorderCallback);for(e=0;e<b;e++)e>this.s.fixed-1&&e<b-this.s.fixedRight&&this._fnMouseListener(e,this.s.dt.aoColumns[e].nTh),this.s.dt.aoColumns[e]._ColReorder_iOrigCol=e;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(b, 10152c){a._fnStateSave.call(a,c)},"ColReorder_State");var g=null;this.s.init.aiOrder&&(g=this.s.init.aiOrder.slice());this.s.dt.oLoadedState&&("undefined"!=typeof this.s.dt.oLoadedState.ColReorder&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length)&&(g=this.s.dt.oLoadedState.ColReorder);
10152if(g)if(a.s.dt._bInitComplete)b=q(g),a._fnOrderColumns.call(a,b);else{var c=!1;f(d).on("draw.dt.colReorder",function(){if(!a.s.dt._bInitComplete&&!c){c=true;var b=q(g);a._fnOrderColumns.call(a,b)}})}else this._fnSetColumnIndexes(); 10153f(d).on("destroy.dt.colReorder",function(){f(d).off("destroy.dt.colReorder draw.dt.colReorder");f(a.s.dt.nTHead).find("*").off(".ColReorder");f.each(a.s.dt.aoColumns,function(a,b){f(b.nTh).removeAttr("data-column-index")});a.s.dt._colReorder=null;a.s=null})},_fnOrderColumns:function(a){var b=!1;if(a.length!=this.s.dt.aoColumns.length)this.s.dt.oInstance.oApi._fnLog(this.s.dt,1,"ColReorder - array reorder does not match known number of columns. Skipping.");else{for(var d=0,e=a.length;d<e;d++){var g= 10154f.inArray(d,a);d!=g&&(p(a,g,d),this.s.dt.oInstance.fnColReorder(g,d,!0,!1),b=!0)}f.fn.dataTable.Api(this.s.dt).rows().invalidate();this._fnSetColumnIndexes();b&&((""!==this.s.dt.oScroll.sX||""!==this.s.dt.oScroll.sY)&&this.s.dt.oInstance.fnAdjustColumnSizing(!1),this.s.dt.oInstance.oApi._fnSaveState(this.s.dt),null!==this.s.reorderCallback&&this.s.reorderCallback.call(this))}},_fnStateSave:function(a){var b,d,e,g=this.s.dt.aoColumns;a.ColReorder=[];if(a.aaSorting){for(b=0;b<a.aaSorting.length;b++)a.aaSorting[b][0]= 10155g[a.aaSorting[b][0]]._ColReorder_iOrigCol;var c=f.extend(!0,[],a.aoSearchCols);b=0;for(d=g.length;b<d;b++)e=g[b]._ColReorder_iOrigCol,a.aoSearchCols[e]=c[b],a.abVisCols[e]=g[b].bVisible,a.ColReorder.push(e)}else if(a.order){for(b=0;b<a.order.length;b++)a.order[b][0]=g[a.order[b][0]]._ColReorder_iOrigCol;c=f.extend(!0,[],a.columns);b=0;for(d=g.length;b<d;b++)e=g[b]._ColReorder_iOrigCol,a.columns[e]=c[b],a.ColReorder.push(e)}},_fnMouseListener:function(a,b){var d=this;f(b).on("mousedown.ColReorder", 10156function(a){a.preventDefault();d._fnMouseDown.call(d,a,b)})},_fnMouseDown:function(a,b){var d=this,e=f(a.target).closest("th, td").offset(),g=parseInt(f(b).attr("data-column-index"),10);g!==r&&(this.s.mouse.startX=a.pageX,this.s.mouse.startY=a.pageY,this.s.mouse.offsetX=a.pageX-e.left,this.s.mouse.offsetY=a.pageY-e.top,this.s.mouse.target=this.s.dt.aoColumns[g].nTh,this.s.mouse.targetIndex=g,this.s.mouse.fromIndex=g,this._fnRegions(),f(l).on("mousemove.ColReorder",function(a){d._fnMouseMove.call(d, 10157a)}).on("mouseup.ColReorder",function(a){d._fnMouseUp.call(d,a)}))},_fnMouseMove:function(a){if(null===this.dom.drag){if(5>Math.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5))return;this._fnCreateDragNode()}this.dom.drag.css({left:a.pageX-this.s.mouse.offsetX,top:a.pageY-this.s.mouse.offsetY});for(var b=!1,d=this.s.mouse.toIndex,e=1,f=this.s.aoTargets.length;e<f;e++)if(a.pageX<this.s.aoTargets[e-1].x+(this.s.aoTargets[e].x-this.s.aoTargets[e-1].x)/2){this.dom.pointer.css("left", 10158this.s.aoTargets[e-1].x);this.s.mouse.toIndex=this.s.aoTargets[e-1].to;b=!0;break}b||(this.dom.pointer.css("left",this.s.aoTargets[this.s.aoTargets.length-1].x),this.s.mouse.toIndex=this.s.aoTargets[this.s.aoTargets.length-1].to);this.s.init.bRealtime&&d!==this.s.mouse.toIndex&&(this.s.dt.oInstance.fnColReorder(this.s.mouse.fromIndex,this.s.mouse.toIndex,!1),this.s.mouse.fromIndex=this.s.mouse.toIndex,this._fnRegions())},_fnMouseUp:function(){f(l).off("mousemove.ColReorder mouseup.ColReorder");null!== 10159this.dom.drag&&(this.dom.drag.remove(),this.dom.pointer.remove(),this.dom.drag=null,this.dom.pointer=null,this.s.dt.oInstance.fnColReorder(this.s.mouse.fromIndex,this.s.mouse.toIndex,!0),this._fnSetColumnIndexes(),(""!==this.s.dt.oScroll.sX||""!==this.s.dt.oScroll.sY)&&this.s.dt.oInstance.fnAdjustColumnSizing(!1),this.s.dt.oInstance.oApi._fnSaveState(this.s.dt),null!==this.s.reorderCallback&&this.s.reorderCallback.call(this))},_fnRegions:function(){var a=this.s.dt.aoColumns;this.s.aoTargets.splice(0, 10160this.s.aoTargets.length);this.s.aoTargets.push({x:f(this.s.dt.nTable).offset().left,to:0});for(var b=0,d=this.s.aoTargets[0].x,e=0,g=a.length;e<g;e++)e!=this.s.mouse.fromIndex&&b++,a[e].bVisible&&"none"!==a[e].nTh.style.display&&(d+=f(a[e].nTh).outerWidth(),this.s.aoTargets.push({x:d,to:b}));0!==this.s.fixedRight&&this.s.aoTargets.splice(this.s.aoTargets.length-this.s.fixedRight);0!==this.s.fixed&&this.s.aoTargets.splice(0,this.s.fixed)},_fnCreateDragNode:function(){var a=""!==this.s.dt.oScroll.sX|| 10161""!==this.s.dt.oScroll.sY,b=this.s.dt.aoColumns[this.s.mouse.targetIndex].nTh,d=b.parentNode,e=d.parentNode,g=e.parentNode,c=f(b).clone();this.dom.drag=f(g.cloneNode(!1)).addClass("DTCR_clonedTable").append(f(e.cloneNode(!1)).append(f(d.cloneNode(!1)).append(c[0]))).css({position:"absolute",top:0,left:0,width:f(b).outerWidth(),height:f(b).outerHeight()}).appendTo("body");this.dom.pointer=f("<div></div>").addClass("DTCR_pointer").css({position:"absolute",top:a?f("div.dataTables_scroll",this.s.dt.nTableWrapper).offset().top: 10162f(this.s.dt.nTable).offset().top,height:a?f("div.dataTables_scroll",this.s.dt.nTableWrapper).height():f(this.s.dt.nTable).height()}).appendTo("body")},_fnSetColumnIndexes:function(){f.each(this.s.dt.aoColumns,function(a,b){f(b.nTh).attr("data-column-index",a)})}});i.defaults={aiOrder:null,bRealtime:!0,iFixedColumnsLeft:0,iFixedColumnsRight:0,fnReorderCallback:null};i.version="1.3.2";f.fn.dataTable.ColReorder=i;f.fn.DataTable.ColReorder=i;"function"==typeof f.fn.dataTable&&"function"==typeof f.fn.dataTableExt.fnVersionCheck&& 10163f.fn.dataTableExt.fnVersionCheck("1.10.8")?f.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var b=a.oInstance;
10163a._colReorder?b.oApi._fnLog(a,1,"ColReorder attempted to initialise twice. Ignoring second"):(b=a.oInit,new i(a,b.colReorder||b.oColReorder||{}));return null},cFeature:"R",sFeature:"ColReorder"}):alert("Warning: ColReorder requires DataTables 1.10.8 or greater - www.datatables.net/download");f(l).on("preInit.dt.colReorder",function(a,b){if("dt"===a.namespace){var d=b.oInit.colReorder, 10164e=t.defaults.colReorder;if(d||e)e=f.extend({},d,e),!1!==d&&new i(b,e)}});f.fn.dataTable.Api.register("colReorder.reset()",function(){return this.iterator("table",function(a){a._colReorder.fnReset()})});f.fn.dataTable.Api.register("colReorder.order()",function(a,b){return a?this.iterator("table",function(d){d._colReorder.fnOrder(a,b)}):this.context.length?this.context[0]._colReorder.fnOrder():null});f.fn.dataTable.Api.register("colReorder.transpose()",function(a,b){return this.context.length&&this.context[0]._colReorder? 10165this.context[0]._colReorder.fnTranspose(a,b):a});return i}); 10166 10167 10168/*! 10169 FixedColumns 3.2.2 10170 ©2010-2016 SpryMedia Ltd - datatables.net/license 10171*/ 10172(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(q){return d(q,window,document)}):"object"===typeof exports?module.exports=function(q,r){q||(q=window);if(!r||!r.fn.dataTable)r=require("datatables.net")(q,r).$;return d(r,q,q.document)}:d(jQuery,window,document)})(function(d,q,r,t){var s=d.fn.dataTable,u,m=function(a,b){var c=this;if(this instanceof m){if(b===t||!0===b)b={};var e=d.fn.dataTable.camelToHungarian;e&&(e(m.defaults,m.defaults,!0),e(m.defaults, 10173b));e=(new d.fn.dataTable.Api(a)).settings()[0];this.s={dt:e,iTableColumns:e.aoColumns.length,aiOuterWidths:[],aiInnerWidths:[],rtl:"rtl"===d(e.nTable).css("direction")};this.dom={scroller:null,header:null,body:null,footer:null,grid:{wrapper:null,dt:null,left:{wrapper:null,head:null,body:null,foot:null},right:{wrapper:null,head:null,body:null,foot:null}},clone:{left:{header:null,body:null,footer:null},right:{header:null,body:null,footer:null}}};if(e._oFixedColumns)throw"FixedColumns already initialised on this table"; 10174e._oFixedColumns=this;e._bInitComplete?this._fnConstruct(b):e.oApi._fnCallbackReg(e,"aoInitComplete",function(){c._fnConstruct(b)},"FixedColumns")}else alert("FixedColumns warning: FixedColumns must be initialised with the 'new' keyword.")};d.extend(m.prototype,{fnUpdate:function(){this._fnDraw(!0)},fnRedrawLayout:function(){this._fnColCalc();this._fnGridLayout();this.fnUpdate()},fnRecalculateHeight:function(a){delete a._DTTC_iHeight;a.style.height="auto"},fnSetRowHeight:function(a,b){a.style.height= 10175b+"px"},fnGetPosition:function(a){var b=this.s.dt.oInstance;if(d(a).parents(".DTFC_Cloned").length){if("tr"===a.nodeName.toLowerCase())return a=d(a).index(),b.fnGetPosition(d("tr",this.s.dt.nTBody)[a]);var c=d(a).index(),a=d(a.parentNode).index();return[b.fnGetPosition(d("tr",this.s.dt.nTBody)[a]),c,b.oApi._fnVisibleToColumnIndex(this.s.dt,c)]}return b.fnGetPosition(a)},_fnConstruct:function(a){var b=this;if("function"!=typeof this.s.dt.oInstance.fnVersionCheck||!0!==this.s.dt.oInstance.fnVersionCheck("1.8.0"))alert("FixedColumns "+ 10176m.VERSION+" required DataTables 1.8.0 or later. Please upgrade your DataTables installation");else if(""===this.s.dt.oScroll.sX)this.s.dt.oInstance.oApi._fnLog(this.s.dt,1,"FixedColumns is not needed (no x-scrolling in DataTables enabled), so no action will be taken. Use 'FixedHeader' for column fixing when scrolling is not enabled");else{this.s=d.extend(!0,this.s,m.defaults,a);a=this.s.dt.oClasses;this.dom.grid.dt=d(this.s.dt.nTable).parents("div."+a.sScrollWrapper)[0];this.dom.scroller=d("div."+ 10177a.sScrollBody,this.dom.grid.dt)[0];this._fnColCalc();this._fnGridSetup();var c,e=!1;d(this.s.dt.nTableWrapper).on("mousedown.DTFC",function(){e=!0;d(r).one("mouseup",function(){e=!1})});d(this.dom.scroller).on("mouseover.DTFC touchstart.DTFC",function(){e||(c="main")}).on("scroll.DTFC",function(a){!c&&a.originalEvent&&(c="main");if("main"===c&&(0<b.s.iLeftColumns&&(b.dom.grid.left.liner.scrollTop=b.dom.scroller.scrollTop),0<b.s.iRightColumns))b.dom.grid.right.liner.scrollTop=b.dom.scroller.scrollTop}); 10178var f="onwheel"in r.createElement("div")?"wheel.DTFC":"mousewheel.DTFC";if(0<b.s.iLeftColumns)d(b.dom.grid.left.liner).on("mouseover.DTFC touchstart.DTFC",function(){e||(c="left")}).on("scroll.DTFC",function(a){!c&&a.originalEvent&&(c="left");"left"===c&&(b.dom.scroller.scrollTop=b.dom.grid.left.liner.scrollTop,0<b.s.iRightColumns&&(b.dom.grid.right.liner.scrollTop=b.dom.grid.left.liner.scrollTop))}).on(f,function(a){b.dom.scroller.scrollLeft-="wheel"===a.type?-a.originalEvent.deltaX:a.originalEvent.wheelDeltaX}); 10179if(0<b.s.iRightColumns)d(b.dom.grid.right.liner).on("mouseover.DTFC touchstart.DTFC",function(){e||(c="right")}).on("scroll.DTFC",function(a){!c&&a.originalEvent&&(c="right");"right"===c&&(b.dom.scroller.scrollTop=b.dom.grid.right.liner.scrollTop,0<b.s.iLeftColumns&&(b.dom.grid.left.liner.scrollTop=b.dom.grid.right.liner.scrollTop))}).on(f,function(a){b.dom.scroller.scrollLeft-="wheel"===a.type?-a.originalEvent.deltaX:a.originalEvent.wheelDeltaX});d(q).on("resize.DTFC",function(){b._fnGridLayout.call(b)}); 10180var g=!0,h=d(this.s.dt.nTable);h.on("draw.dt.DTFC",function(){b._fnColCalc();b._fnDraw.call(b,g);g=!1}).on("column-sizing.dt.DTFC",function(){b._fnColCalc();b._fnGridLayout(b)}).on("column-visibility.dt.DTFC",function(a,c,d,e,f){if(f===t||f)b._fnColCalc(),b._fnGridLayout(b),b._fnDraw(!0)}).on("select.dt.DTFC deselect.dt.DTFC",function(a){"dt"===a.namespace&&b._fnDraw(!1)}).on("destroy.dt.DTFC",function(){h.off(".DTFC");d(b.dom.scroller).off(".DTFC");d(q).off(".DTFC");d(b.s.dt.nTableWrapper).off(".DTFC"); 10181d(b.dom.grid.left.liner).off(".DTFC "+f);d(b.dom.grid.left.wrapper).remove();d(b.dom.grid.right.liner).off(".DTFC "+f);d(b.dom.grid.right.wrapper).remove()});this._fnGridLayout();this.s.dt.oInstance.fnDraw(!1)}},_fnColCalc:function(){var a=this,b=0,c=0;this.s.aiInnerWidths=[];this.s.aiOuterWidths=[];d.each(this.s.dt.aoColumns,function(e,f){var g=d(f.nTh),h;if(g.filter(":visible").length){var i=g.outerWidth();0===a.s.aiOuterWidths.length&&(h=d(a.s.dt.nTable).css("border-left-width"),i+="string"=== 10182typeof h?1:parseInt(h,10));a.s.aiOuterWidths.length===a.s.dt.aoColumns.length-1&&(h=d(a.s.dt.nTable).css("border-right-width"),i+="string"===typeof h?1:parseInt(h,10));a.s.aiOuterWidths.push(i);a.s.aiInnerWidths.push(g.width());e<a.s.iLeftColumns&&(b+=i);a.s.iTableColumns-a.s.iRightColumns<=e&&(c+=i)}else a.s.aiInnerWidths.push(0),a.s.aiOuterWidths.push(0)});this.s.iLeftWidth=b;this.s.iRightWidth=c},_fnGridSetup:function(){var a=this._fnDTOverflow(),b;this.dom.body=this.s.dt.nTable;this.dom.header= 10183this.s.dt.nTHead.parentNode;this.dom.header.parentNode.parentNode.style.position="relative";var c=d('<div class="DTFC_ScrollWrapper" style="position:relative; clear:both;"><div class="DTFC_LeftWrapper" style="position:absolute; top:0; left:0;"><div class="DTFC_LeftHeadWrapper" style="position:relative; top:0; left:0; overflow:hidden;"></div><div class="DTFC_LeftBodyWrapper" style="position:relative; top:0; left:0; overflow:hidden;"><div class="DTFC_LeftBodyLiner" style="position:relative; top:0; left:0; overflow-y:scroll;"></div></div><div class="DTFC_LeftFootWrapper" style="position:relative; top:0; left:0; overflow:hidden;"></div></div><div class="DTFC_RightWrapper" style="position:absolute; top:0; right:0;"><div class="DTFC_RightHeadWrapper" style="position:relative; top:0; left:0;"><div class="DTFC_RightHeadBlocker DTFC_Blocker" style="position:absolute; top:0; bottom:0;"></div></div><div class="DTFC_RightBodyWrapper" style="position:relative; top:0; left:0; overflow:hidden;"><div class="DTFC_RightBodyLiner" style="position:relative; top:0; left:0; overflow-y:scroll;"></div></div><div class="DTFC_RightFootWrapper" style="position:relative; top:0; left:0;"><div class="DTFC_RightFootBlocker DTFC_Blocker" style="position:absolute; top:0; bottom:0;"></div></div></div></div>')[0], 10184e=c.childNodes[0],f=c.childNodes[1];this.dom.grid.dt.parentNode.insertBefore(c,this.dom.grid.dt);c.appendChild(this.dom.grid.dt);this.dom.grid.wrapper=c;0<this.s.iLeftColumns&&(this.dom.grid.left.wrapper=e,this.dom.grid.left.head=e.childNodes[0],this.dom.grid.left.body=e.childNodes[1],this.dom.grid.left.liner=d("div.DTFC_LeftBodyLiner",c)[0],c.appendChild(e));0<this.s.iRightColumns&&(this.dom.grid.right.wrapper=f,this.dom.grid.right.head=f.childNodes[0],this.dom.grid.right.body=f.childNodes[1],this.dom.grid.right.liner= 10185d("div.DTFC_RightBodyLiner",c)[0],f.style.right=a.bar+"px",b=d("div.DTFC_RightHeadBlocker",c)[0],b.style.width=a.bar+"px",b.style.right=-a.bar+"px",this.dom.grid.right.headBlock=b,b=d("div.DTFC_RightFootBlocker",c)[0],b.style.width=a.bar+"px",b.style.right=-a.bar+"px",this.dom.grid.right.footBlock=b,c.appendChild(f));if(this.s.dt.nTFoot&&(this.dom.footer=this.s.dt.nTFoot.parentNode,0<this.s.iLeftColumns&&(this.dom.grid.left.foot=e.childNodes[2]),0<this.s.iRightColumns))this.dom.grid.right.foot=f.childNodes[2]; 10186this.s.rtl&&d("div.DTFC_RightHeadBlocker",c).css({left:-a.bar+"px",right:""})},_fnGridLayout:function(){var a=this,b=this.dom.grid;d(b.wrapper).width();var c=d(this.s.dt.nTable.parentNode).outerHeight(),e=d(this.s.dt.nTable.parentNode.parentNode).outerHeight(),f=this._fnDTOverflow(),g=this.s.iLeftWidth,h=this.s.iRightWidth,i="rtl"===d(this.dom.body).css("direction"),j=function(b,c){f.bar?a._firefoxScrollError()?34<d(b).height()&&(b.style.width=c+f.bar+"px"):b.style.width=c+f.bar+"px":(b.style.width= 10187c+20+"px",b.style.paddingRight="20px",b.style.boxSizing="border-box")};f.x&&(c-=f.bar);b.wrapper.style.height=e+"px";0<this.s.iLeftColumns&&(e=b.left.wrapper,e.style.width=g+"px",e.style.height="1px",
10187i?(e.style.left="",e.style.right=0):(e.style.left=0,e.style.right=""),b.left.body.style.height=c+"px",b.left.foot&&(b.left.foot.style.top=(f.x?f.bar:0)+"px"),j(b.left.liner,g),b.left.liner.style.height=c+"px");0<this.s.iRightColumns&&(e=b.right.wrapper,e.style.width=h+"px",e.style.height="1px",this.s.rtl? 10188(e.style.left=f.y?f.bar+"px":0,e.style.right=""):(e.style.left="",e.style.right=f.y?f.bar+"px":0),b.right.body.style.height=c+"px",b.right.foot&&(b.right.foot.style.top=(f.x?f.bar:0)+"px"),j(b.right.liner,h),b.right.liner.style.height=c+"px",b.right.headBlock.style.display=f.y?"block":"none",b.right.footBlock.style.display=f.y?"block":"none")},_fnDTOverflow:function(){var a=this.s.dt.nTable,b=a.parentNode,c={x:!1,y:!1,bar:this.s.dt.oScroll.iBarWidth};a.offsetWidth>b.clientWidth&&(c.x=!0);a.offsetHeight> 10189b.clientHeight&&(c.y=!0);return c},_fnDraw:function(a){this._fnGridLayout();this._fnCloneLeft(a);this._fnCloneRight(a);null!==this.s.fnDrawCallback&&this.s.fnDrawCallback.call(this,this.dom.clone.left,this.dom.clone.right);d(this).trigger("draw.dtfc",{leftClone:this.dom.clone.left,rightClone:this.dom.clone.right})},_fnCloneRight:function(a){if(!(0>=this.s.iRightColumns)){var b,c=[];for(b=this.s.iTableColumns-this.s.iRightColumns;b<this.s.iTableColumns;b++)this.s.dt.aoColumns[b].bVisible&&c.push(b); 10190this._fnClone(this.dom.clone.right,this.dom.grid.right,c,a)}},_fnCloneLeft:function(a){if(!(0>=this.s.iLeftColumns)){var b,c=[];for(b=0;b<this.s.iLeftColumns;b++)this.s.dt.aoColumns[b].bVisible&&c.push(b);this._fnClone(this.dom.clone.left,this.dom.grid.left,c,a)}},_fnCopyLayout:function(a,b,c){for(var e=[],f=[],g=[],h=0,i=a.length;h<i;h++){var j=[];j.nTr=d(a[h].nTr).clone(c,!1)[0];for(var l=0,o=this.s.iTableColumns;l<o;l++)if(-1!==d.inArray(l,b)){var p=d.inArray(a[h][l].cell,g);-1===p?(p=d(a[h][l].cell).clone(c, 10191!1)[0],f.push(p),g.push(a[h][l].cell),j.push({cell:p,unique:a[h][l].unique})):j.push({cell:f[p],unique:a[h][l].unique})}e.push(j)}return e},_fnClone:function(a,b,c,e){var f=this,g,h,i,j,l,o,p,n,m,k=this.s.dt;if(e){d(a.header).remove();a.header=d(this.dom.header).clone(!0,!1)[0];a.header.className+=" DTFC_Cloned";a.header.style.width="100%";b.head.appendChild(a.header);n=this._fnCopyLayout(k.aoHeader,c,!0);j=d(">thead",a.header);j.empty();g=0;for(h=n.length;g<h;g++)j[0].appendChild(n[g].nTr);k.oApi._fnDrawHead(k, 10192n,!0)}else{n=this._fnCopyLayout(k.aoHeader,c,!1);m=[];k.oApi._fnDetectHeader(m,d(">thead",a.header)[0]);g=0;for(h=n.length;g<h;g++){i=0;for(j=n[g].length;i<j;i++)m[g][i].cell.className=n[g][i].cell.className,d("span.DataTables_sort_icon",m[g][i].cell).each(function(){this.className=d("span.DataTables_sort_icon",n[g][i].cell)[0].className})}}this._fnEqualiseHeights("thead",this.dom.header,a.header);"auto"==this.s.sHeightMatch&&d(">tbody>tr",f.dom.body).css("height","auto");null!==a.body&&(d(a.body).remove(), 10193a.body=null);a.body=d(this.dom.body).clone(!0)[0];a.body.className+=" DTFC_Cloned";a.body.style.paddingBottom=k.oScroll.iBarWidth+"px";a.body.style.marginBottom=2*k.oScroll.iBarWidth+"px";null!==a.body.getAttribute("id")&&a.body.removeAttribute("id");d(">thead>tr",a.body).empty();d(">tfoot",a.body).remove();var q=d("tbody",a.body)[0];d(q).empty();if(0<k.aiDisplay.length){h=d(">thead>tr",a.body)[0];for(p=0;p<c.length;p++)l=c[p],o=d(k.aoColumns[l].nTh).clone(!0)[0],o.innerHTML="",j=o.style,j.paddingTop= 10194"0",j.paddingBottom="0",j.borderTopWidth="0",j.borderBottomWidth="0",j.height=0,j.width=f.s.aiInnerWidths[l]+"px",h.appendChild(o);d(">tbody>tr",f.dom.body).each(function(a){var a=f.s.dt.oFeatures.bServerSide===false?f.s.dt.aiDisplay[f.s.dt._iDisplayStart+a]:a,b=f.s.dt.aoData[a].anCells||d(this).children("td, th"),e=this.cloneNode(false);e.removeAttribute("id");e.setAttribute("data-dt-row",a);for(p=0;p<c.length;p++){l=c[p];if(b.length>0){o=d(b[l]).clone(true,true)[0];o.setAttribute("data-dt-row", 10195a);o.setAttribute("data-dt-column",p);e.appendChild(o)}}q.appendChild(e)})}else d(">tbody>tr",f.dom.body).each(function(){o=this.cloneNode(true);o.className=o.className+" DTFC_NoData";d("td",o).html("");q.appendChild(o)});a.body.style.width="100%";a.body.style.margin="0";a.body.style.padding="0";k.oScroller!==t&&(h=k.oScroller.dom.force,b.forcer?b.forcer.style.height=h.style.height:(b.forcer=h.cloneNode(!0),b.liner.appendChild(b.forcer)));b.liner.appendChild(a.body);this._fnEqualiseHeights("tbody", 10196f.dom.body,a.body);if(null!==k.nTFoot){if(e){null!==a.footer&&a.footer.parentNode.removeChild(a.footer);a.footer=d(this.dom.footer).clone(!0,!0)[0];a.footer.className+=" DTFC_Cloned";a.footer.style.width="100%";b.foot.appendChild(a.footer);n=this._fnCopyLayout(k.aoFooter,c,!0);b=d(">tfoot",a.footer);b.empty();g=0;for(h=n.length;g<h;g++)b[0].appendChild(n[g].nTr);k.oApi._fnDrawHead(k,n,!0)}else{n=this._fnCopyLayout(k.aoFooter,c,!1);b=[];k.oApi._fnDetectHeader(b,d(">tfoot",a.footer)[0]);g=0;for(h=n.length;g< 10197h;g++){i=0;for(j=n[g].length;i<j;i++)b[g][i].cell.className=n[g][i].cell.className}}this._fnEqualiseHeights("tfoot",this.dom.footer,a.footer)}b=k.oApi._fnGetUniqueThs(k,d(">thead",a.header)[0]);d(b).each(function(a){l=c[a];this.style.width=f.s.aiInnerWidths[l]+"px"});null!==f.s.dt.nTFoot&&(b=k.oApi._fnGetUniqueThs(k,d(">tfoot",a.footer)[0]),d(b).each(function(a){l=c[a];this.style.width=f.s.aiInnerWidths[l]+"px"}))},_fnGetTrNodes:function(a){for(var b=[],c=0,d=a.childNodes.length;c<d;c++)"TR"==a.childNodes[c].nodeName.toUpperCase()&& 10198b.push(a.childNodes[c]);return b},_fnEqualiseHeights:function(a,b,c){if(!("none"==this.s.sHeightMatch&&"thead"!==a&&"tfoot"!==a)
10198){var e,f,g=b.getElementsByTagName(a)[0],c=c.getElementsByTagName(a)[0],a=d(">"+a+">tr:eq(0)",b).children(":first");a.outerHeight();a.height();for(var g=this._fnGetTrNodes(g),b=this._fnGetTrNodes(c),h=[],c=0,a=b.length;c<a;c++)e=g[c].offsetHeight,f=b[c].offsetHeight,e=f>e?f:e,"semiauto"==this.s.sHeightMatch&&(g[c]._DTTC_iHeight=e),h.push(e);c=0;for(a=b.length;c<a;c++)b[c].style.height= 10199h[c]+"px",g[c].style.height=h[c]+"px"}},_firefoxScrollError:function(){if(u===t){var a=d("<div/>").css({position:"absolute",top:0,left:0,height:10,width:50,overflow:"scroll"}).appendTo("body");u=a[0].clientWidth===a[0].offsetWidth&&0!==this._fnDTOverflow().bar;a.remove()}return u}});m.defaults={iLeftColumns:1,iRightColumns:0,fnDrawCallback:null,sHeightMatch:"semiauto"};m.version="3.2.2";s.Api.register("fixedColumns()",function(){return this});s.Api.register("fixedColumns().update()",function(){return this.iterator("table", 10200function(a){a._oFixedColumns&&a._oFixedColumns.fnUpdate()})});s.Api.register("fixedColumns().relayout()",function(){return this.iterator("table",function(a){a._oFixedColumns&&a._oFixedColumns.fnRedrawLayout()})});s.Api.register("rows().recalcHeight()",function(){return this.iterator("row",function(a,b){a._oFixedColumns&&a._oFixedColumns.fnRecalculateHeight(this.row(b).node())})});s.Api.register("fixedColumns().rowIndex()",function(a){a=d(a);return a.parents(".DTFC_Cloned").length?this.rows({page:"current"}).indexes()[a.index()]: 10201this.row(a).index()});s.Api.register("fixedColumns().cellIndex()",function(a){a=d(a);if(a.parents(".DTFC_Cloned").length){var b=a.parent().index(),b=this.rows({page:"current"}).indexes()[b],a=a.parents(".DTFC_LeftWrapper").length?a.index():this.columns().flatten().length-this.context[0]._oFixedColumns.s.iRightColumns+a.index();return{row:b,column:this.column.index("toData",a),columnVisible:a}}return this.cell(a).index()});d(r).on("init.dt.fixedColumns",function(a,b){if("dt"===a.namespace){var c=b.oInit.fixedColumns, 10202e=s.defaults.fixedColumns;if(c||e)e=d.extend({},c,e),!1!==c&&new m(b,e)}});d.fn.dataTable.FixedColumns=m;return d.fn.DataTable.FixedColumns=m}); 10203 10204 10205/*! 10206 FixedHeader 3.1.2 10207 ©2009-2016 SpryMedia Ltd - datatables.net/license 10208*/ 10209(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(g){return d(g,window,document)}):"object"===typeof exports?module.exports=function(g,h){g||(g=window);if(!h||!h.fn.dataTable)h=require("datatables.net")(g,h).$;return d(h,g,g.document)}:d(jQuery,window,document)})(function(d,g,h,k){var j=d.fn.dataTable,l=0,i=function(b,a){if(!(this instanceof i))throw"FixedHeader must be initialised with the 'new' keyword.";!0===a&&(a={});b=new j.Api(b);this.c=d.extend(!0, 10210{},i.defaults,a);this.s={dt:b,position:{theadTop:0,tbodyTop:0,tfootTop:0,tfootBottom:0,width:0,left:0,tfootHeight:0,theadHeight:0,windowHeight:d(g).height(),visible:!0},headerMode:null,footerMode:null,autoWidth:b.settings()[0].oFeatures.bAutoWidth,namespace:".dtfc"+l++,scrollLeft:{header:-1,footer:-1},enable:!0};this.dom={floatingHeader:null,thead:d(b.table().header()),tbody:d(b.table().body()),tfoot:d(b.table().footer()),header:{host:null,floating:null,placeholder:null},footer:{host:null,floating:null, 10211placeholder:null}};this.dom.header.host=this.dom.thead.parent();this.dom.footer.host=this.dom.tfoot.parent();var e=b.settings()[0];if(e._fixedHeader)throw"FixedHeader already initialised on table "+e.nTable.id;e._fixedHeader=this;this._constructor()};d.extend(i.prototype,{enable:function(b){this.s.enable=b;this.c.header&&this._modeChange("in-place","header",!0);this.c.footer&&this.dom.tfoot.length&&this._modeChange("in-place","footer",!0);this.update()},headerOffset:function(b){b!==k&&(this.c.headerOffset= 10212b,this.update());return this.c.headerOffset},footerOffset:function(b){b!==k&&(this.c.footerOffset=b,this.update());return this.c.footerOffset},update:function(){this._positions();this._scroll(!0)},_constructor:function(){var b=this,a=this.s.dt;d(g).on("scroll"+this.s.namespace,function(){b._scroll()}).on("resize"+this.s.namespace,function(){b.s.position.windowHeight=d(g).height();
10212b.update()});var e=d(".fh-fixedHeader");!this.c.headerOffset&&e.length&&(this.c.headerOffset=e.outerHeight());e=d(".fh-fixedFooter"); 10213!this.c.footerOffset&&e.length&&(this.c.footerOffset=e.outerHeight());a.on("column-reorder.dt.dtfc column-visibility.dt.dtfc draw.dt.dtfc column-sizing.dt.dtfc",function(){b.update()});a.on("destroy.dtfc",function(){a.off(".dtfc");d(g).off(b.s.namespace)});this._positions();this._scroll()},_clone:function(b,a){var e=this.s.dt,c=this.dom[b],f="header"===b?this.dom.thead:this.dom.tfoot;!a&&c.floating?c.floating.removeClass("fixedHeader-floating fixedHeader-locked"):(c.floating&&(c.placeholder.remove(), 10214this._unsize(b),c.floating.children().detach(),c.floating.remove()),c.floating=d(e.table().node().cloneNode(!1)).css("table-layout","fixed").removeAttr("id").append(f).appendTo("body"),c.placeholder=f.clone(!1),c.host.prepend(c.placeholder),this._matchWidths(c.placeholder,c.floating))},_matchWidths:function(b,a){var e=function(a){return d(a,b).map(function(){return d(this).width()}).toArray()},c=function(b,c){d(b,a).each(function(a){d(this).css({width:c[a],minWidth:c[a]})})},f=e("th"),e=e("td");c("th", 10215f);c("td",e)},_unsize:function(b){var a=this.dom[b].floating;a&&("footer"===b||"header"===b&&!this.s.autoWidth)?d("th, td",a).css({width:"",minWidth:""}):a&&"header"===b&&d("th, td",a).css("min-width","")},_horizontal:function(b,a){var e=this.dom[b],c=this.s.position,d=this.s.scrollLeft;e.floating&&d[b]!==a&&(e.floating.css("left",c.left-a),d[b]=a)},_modeChange:function(b,a,e){var c=this.dom[a],f=this.s.position,g=d.contains(this.dom["footer"===a?"tfoot":"thead"][0],h.activeElement)?h.activeElement: 10216null;if("in-place"===b){if(c.placeholder&&(c.placeholder.remove(),c.placeholder=null),this._unsize(a),"header"===a?c.host.prepend(this.dom.thead):c.host.append(this.dom.tfoot),c.floating)c.floating.remove(),c.floating=null}else"in"===b?(this._clone(a,e),c.floating.addClass("fixedHeader-floating").css("header"===a?"top":"bottom",this.c[a+"Offset"]).css("left",f.left+"px").css("width",f.width+"px"),"footer"===a&&c.floating.css("top","")):"below"===b?(this._clone(a,e),c.floating.addClass("fixedHeader-locked").css("top", 10217f.tfootTop-f.theadHeight).css("left",f.left+"px").css("width",f.width+"px")):"above"===b&&(this._clone(a,e),c.floating.addClass("fixedHeader-locked").css("top",f.tbodyTop).css("left",f.left+"px").css("width",f.width+"px"));g&&g!==h.activeElement&&g.focus();this.s.scrollLeft.header=-1;this.s.scrollLeft.footer=-1;this.s[a+"Mode"]=b},_positions:function(){var b=this.s.dt.table(),a=this.s.position,e=this.dom,b=d(b.node()),c=b.children("thead"),f=b.children("tfoot"),e=e.tbody;a.visible=b.is(":visible"); 10218a.width=b.outerWidth();a.left=b.offset().left;a.theadTop=c.offset().top;a.tbodyTop=e.offset().top;a.theadHeight=a.tbodyTop-a.theadTop;f.length?(a.tfootTop=f.offset().top,a.tfootBottom=a.tfootTop+f.outerHeight(),a.tfootHeight=a.tfootBottom-a.tfootTop):(a.tfootTop=a.tbodyTop+e.outerHeight(),a.tfootBottom=a.tfootTop,a.tfootHeight=a.tfootTop)},_scroll:function(b){var a=d(h).scrollTop(),e=d(h).scrollLeft(),c=this.s.position,f;if(this.s.enable&&(this.c.header&&(f=!c.visible||a<=c.theadTop-this.c.headerOffset? 10219"in-place":a<=c.tfootTop-c.theadHeight-this.c.headerOffset?"in":"below",(b||f!==this.s.headerMode)&&this._modeChange(f,"header",b),this._horizontal("header",e)),this.c.footer&&this.dom.tfoot.length))a=!c.visible||a+c.windowHeight>=c.tfootBottom+this.c.footerOffset?"in-place":c.windowHeight+a>c.tbodyTop+c.tfootHeight+this.c.footerOffset?"in":"above",(b||a!==this.s.footerMode)&&this._modeChange(a,"footer",b),this._horizontal("footer",e)}});i.version="3.1.2";i.defaults={header:!0,footer:!1,headerOffset:0, 10220footerOffset:0};d.fn.dataTable.FixedHeader=i;d.fn.DataTable.FixedHeader=i;d(h).on("init.dt.dtfh",function(b,a){if("dt"===b.namespace){var e=a.oInit.fixedHeader,c=j.defaults.fixedHeader;if((e||c)&&!a._fixedHeader)c=d.extend({},c,e),!1!==e&&new i(a,c)}});j.Api.register("fixedHeader()",function(){});j.Api.register("fixedHeader.adjust()",function(){return this.iterator("table",function(b){(b=b._fixedHeader)&&b.update(
10220)})});j.Api.register("fixedHeader.enable()",function(b){return this.iterator("table", 10221function(a){(a=a._fixedHeader)&&a.enable(b!==k?b:!0)})});j.Api.register("fixedHeader.disable()",function(){return this.iterator("table",function(b){(b=b._fixedHeader)&&b.enable(!1)})});d.each(["header","footer"],function(b,a){j.Api.register("fixedHeader."+a+"Offset()",function(b){var c=this.context;return b===k?c.length&&c[0]._fixedHeader?c[0]._fixedHeader[a+"Offset"]():k:this.iterator("table",function(c){if(c=c._fixedHeader)c[a+"Offset"](b)})})});return i}); 10222 10223 10224/*! 10225 Responsive 2.1.0 10226 2014-2016 SpryMedia Ltd - datatables.net/license 10227*/ 10228(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return c(l,window,document)}):"object"===typeof exports?module.exports=function(l,k){l||(l=window);if(!k||!k.fn.dataTable)k=require("datatables.net")(l,k).$;return c(k,l,l.document)}:c(jQuery,window,document)})(function(c,l,k,p){var m=c.fn.dataTable,j=function(a,b){if(!m.versionCheck||!m.versionCheck("1.10.3"))throw"DataTables Responsive requires DataTables 1.10.3 or newer";this.s={dt:new m.Api(a),columns:[], 10229current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}:b&&!0===b.details&&(b.details={type:"inline"}),this.c=c.extend(!0,{},j.defaults,m.defaults.responsive,b),a.responsive=this,this._constructor())};c.extend(j.prototype,{_constructor:function(){var a=this,b=this.s.dt,d=b.settings()[0],e=c(l).width();b.settings()[0]._responsive=this;c(l).on("resize.dtr orientationchange.dtr",m.util.throttle(function(){var b= 10230c(l).width();b!==e&&(a._resize(),e=b)}));d.oApi._fnCallbackReg(d,"aoRowCreatedCallback",function(e){-1!==c.inArray(!1,a.s.current)&&c("td, th",e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&c(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");c(b.table().body()).off(".dtr");c(l).off("resize.dtr orientationchange.dtr");c.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width> 10231b.width?-1:0});this._classLogic();this._resizeAuto();d=this.c.details;!1!==d.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._classLogic();a._resizeAuto();a._resize()}),b.on("draw.dtr",function(){a._redrawChildren()}),c(b.table().node()).addClass("dtr-"+d.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("init.dtr",function(){a._resizeAuto();a._resize();c.inArray(false, 10232a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,d=this.s.columns,e,f,g=d.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=c.map(d,function(b){return b.auto&&null===b.minWidth?!1:!0===b.auto?"-":-1!==c.inArray(a,b.includeIn)}),n=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(n+=d[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;b= 10233b.table().container().offsetWidth-e-n;e=0;for(f=h.length;e<f;e++)d[e].control&&(b-=d[e].minWidth);n=!1;e=0;for(f=g.length;e<f;e++){var i=g[e].columnIdx;"-"===h[i]&&(!d[i].control&&d[i].minWidth)&&(n||0>b-d[i].minWidth?(n=!0,h[i]=!1):h[i]=!0,b-=d[i].minWidth)}g=!1;e=0;for(f=d.length;e<f;e++)if(!d[e].control&&!d[e].never&&!h[e]){g=!0;break}e=0;for(f=d.length;e<f;e++)d[e].control&&(h[e]=g);-1===c.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,d=this.s.dt,e= 10234d.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=d.settings()[0].aoColumns[a].responsivePriority;a===p&&(b=c(b.header()).data("priority"),a=b!==p?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),f=function(a,b){var d=e[a].includeIn;-1===c.inArray(b,d)&&d.push(b)},g=function(c,d,i,g){if(i)if("max-"===i){g=a._find(d).width;d=0;for(i=b.length;d<i;d++)b[d].width<=g&&f(c,b[d].name)}else if("min-"===i){g=a._find(d).width; 10235d=0;for(i=b.length;d<i;d++)b[d].width>=g&&f(c,b[d].name)}else{if("not-"===i){d=0;for(i=b.length;d<i;d++)-1===b[d].name.indexOf(g)&&f(c,b[d].name)}}else e[c].includeIn.push(d)};e.each(function(a,e){for(var d=a.className.split(" "),f=!1,j=0,l=d.length;j<l;j++){var k=c.trim(d[j]);if("all"===k){f=!0;a.includeIn=c.map(b,function(a){return a.name});return}if("none"===k||a.never){f=!0;return}
10235if("control"===k){f=!0;a.control=!0;return}c.each(b,function(a,b){var d=b.name.split("-"),c=k.match(RegExp("(min\\-|max\\-|not\\-)?("+ 10236d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var d=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=f.display(a,b,function(){return f.renderer(e,a[0],d._detailsObj(a[0]))});(!0===g||!1===g)&&c(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,d=this.c.details;"inline"=== 10237d.type&&(d.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();c(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&c(this).data("dtr-keyboard")&&c(this).click()});var e=d.target;c(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr","string"===typeof e?e:"td, th",function(d){if(c(b.table().node()).hasClass("collapsed")&&b.row(c(this).closest("tr")).length){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!== 10238g)return}g=b.row(c(this).closest("tr"));d.type==="click"?a._detailsDisplay(g,false):d.type==="mousedown"?c(this).css("outline","none"):d.type==="mouseup"&&c(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,d=this.s.dt;return c.map(this.s.columns,function(e,c){if(!e.never&&!e.control)return{title:d.settings()[0].aoColumns[c].sTitle,data:d.cell(a,c).render(b.c.orthogonal),hidden:d.column(c).visible()&&!b.s.current[c],columnIndex:c,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints, 10239d=0,c=b.length;d<c;d++)if(b[d].name===a)return b[d]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,d=c(l).width(),e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,j=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(d<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(d=g.length;h<d;h++)if(!1===i[h]&&!g[h].never&& 10240!g[h].control){e=!0;break}c(b.table().node()).toggleClass("collapsed",e);var k=!1;b.columns().eq(0).each(function(b,c){i[c]!==j[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),c(b.table().node()).trigger("responsive-resize.dt",[b,this.s.current]))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==c.inArray(!0,c.map(b,function(a){return a.auto}))){a.table().node();var d=a.table().node().cloneNode(!1),e=c(a.table().header().cloneNode(!1)).appendTo(d),f=c(a.table().body()).clone(!1, 10241!1).empty().appendTo(d),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");c(f).append(c(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=c(f.cloneNode(!1)).appendTo(d),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");c("<tr/>").append(h).appendTo(f)}c("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&& 10242c(d).addClass("dtr-inline collapsed");c(d).find("[name]").removeAttr("name");d=c("<div/>").css({width:1,height:1,overflow:"hidden"}).append(d);d.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});d.remove()}},_setColumnVis:function(a,b){var d=this.s.dt,e=b?"":"none";c(d.column(a).header()).css("display",e);c(d.column(a).footer()).css("display",e);d.column(a).nodes().to$().css("display",e)},_tabIndexes:function(){var a=this.s.dt, 10243b=a.cells({page:"current"}).nodes().to$(),d=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");c("number"===typeof e?":eq("+e+")":e,a.rows({page:"current"}).nodes()).attr("tabIndex",d.iTabIndex).data("dtr-keyboard",1)}});j.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];j.display={childRow:function(a,b,d){if(b){if(c(a.node()).hasClass("parent"))return a.child(d(), 10244"child").show(),!0}else{if(a.child.isShown())return a.child(!1),c(a.node()).removeClass("parent"),!1;a.child(d(),"child").show();c(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,d){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),c(a.node()).removeClass("parent"),!1;a.child(d(),"child").show();c(a.node()).addClass("parent");return!0},modal:function(a){return function(b,d,e){if(d)c("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove(); 10245c(k).off("keypress.dtr")},g=c('<div class="dtr-modal"/>').append(c('<div class="dtr-modal-display"/>').append(c('<div class="dtr-modal-content"/>').append(e())).append(c('<div class="dtr-modal-close">×</div>').click(function(){f()}))).append(c('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");c(k).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&c("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};j.renderer={listHidden:function(){return function(a, 10246b,d){return(a=c.map(d,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?c('<ul data-dtr-index="'+b+'"/>').append(a):!1}},tableAll:function(a){a=c.extend({tableClass:""},a);return function(b,d,e){b=c.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+ 10247a.data+"</td></tr>"}).join("");return c('<table class="'+a.tableClass+'" width="100%"/>').append(b)}}};j.defaults={breakpoints:j.breakpoints,auto:!0,details:{display:j.display.childRow,renderer:j.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var o=c.fn.dataTable.Api;o.register("responsive()",function(){return this});o.register("responsive.index()",function(a){a=c(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});o.register("responsive.rebuild()",function(){return this.iterator("table", 10248function(a){a._responsive&&a._responsive._classLogic()})});o.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});o.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==c.inArray(!1,a._responsive.s.current):!1});j.version="2.1.0";c.fn.dataTable.Responsive=j;c.fn.DataTable.Responsive=j;c(k).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(c(b.nTable).hasClass("responsive")|| 10249c(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||m.defaults.responsive)){var d=b.oInit.responsive;!1!==d&&new j(b,c.isPlainObject(d)?d:{})}});return j}); 10250 10251 10252/*! 10253 Bootstrap integration for DataTables' Responsive 10254 ©2015-2016 SpryMedia Ltd - datatables.net/license 10255*/ 10256(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,g=b.modal,d=c('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body"/></div></div></div>'); 10257b.modal=function(a){return function(b,e,f){c.fn.modal?e||(a&&a.header&&d.find("div.modal-header").empty().append('<h4 class="modal-title">'+a.header(b)+"</h4>"),d.find("div.modal-body").empty().append(f()),d.appendTo("body").modal()):g(b,e,f)}};return a.Responsive}); 10258 10259 10260function isUrl(n){if(n.substring(0,1)==="/")return!0;return/^(ftp|http|https|):{0,1}\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(n)}var bootstrapModal={};bootstrapModal.showModal=function(n,t,i,r,u,f,e){var c='<div id="'+e+'" class="modal '+u+'" tabindex="-1" role="dialog"><div class="modal-dialog modal-'+r+'"><div class="modal-content"><\/div><\/div><\/div>',o,s,h;$("body").append(c);o='<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×<\/span><\/button>
10260'+n+"<\/div>";$("#"+e+" .modal-content").append(o);s='<div class="modal-body">'+t+"<\/div>";$("#"+e+" .modal-content").append(s);i!==""&&(h='<div class="modal-footer">'+i+"<\/div>",$("#"+e+" .modal-content").append(h));$.isNumeric(t)?$.ajax({url:`/fend/request/reqArticle.asp?article_id=${t}&doNotRedirect=true`,success:function(n){$(`#${e} .modal-body`).html(n)}}):isUrl(t)?($(`#${e} .modal-body`).html('<p><em class="fa fa-2x fa-cog fa-spin"><\/em> Loading...<\/p>'),$.ajax({url:t,success:function(n){$(`#${e} .modal-body`).html(n)}})):$(`#${e} .modal-body`).html(t);f?(backdrop=!0,keyboard=!0):(backdrop="static",keyboard=!1);$(`#${e}`).on("show.bs.modal",function(){var t=$(".modal:visible").length,n;t>0&&(n=parseInt($(this).css("z-index"))+10*t,$(this).css("z-index",n),setTimeout(function(){$(".modal-backdrop").last().css("z-index",n-1)},0))});$("#"+e+"").on("hidden.bs.modal",function(){$(".modal .select-actions").removeClass("active");$("#"+e+"").remove()}).modal({backdrop:backdrop,keyboard:keyboard,show:!0})}; navHover = function() { 10261try 10262{ 10263var lis = document.getElementById("body").getElementsByTagName("LI"); 10264for (var i=0; i<lis.length; i++) { 10265lis[i].onmouseover=function() { 10266this.className+=" iehover"; 10267} 10268lis[i].onmouseout=function() { 10269this.className=this.className.replace(new RegExp(" iehover\\b"), ""); 10270} 10271} 10272} 10273catch(err) 10274{ 10275} 10276} 10277 if (window.attachEvent) window.attachEvent("onload", navHover);function fontSize(n="normal"){$.ajax({url:"/fend/request/set-font-size.asp?s="+n,success:function(){$("#fontsizeshell").find("a").removeClass("active");$('a[data-id="'+n+'"]').addClass("active");$("body").removeClass("size-small size-normal size-large").addClass("size-"+n)}})}$(document).ready(function(){$(".event-modal").on("click",function(n){n.preventDefault();var i=$(this).data("name"),t=$(this).data("content");bootstrapModal.showModal("Event Details",t,'<button type="button" class="btn btn-default" data-dismiss="modal">Close<\/button>',"md","",!0,"event-modal")});$(document).on("touchstart",function(){documentClick=!0});$(document).on("touchmove",function(){documentClick=!1});$(document).on("click touchend",function(n){n.type=="click"&&(documentClick=!0);documentClick&&($("#navbar").removeClass("active"),$(".nav-icon").removeClass("open"),$("#navbar .has-subs .active").removeClass("active"))});$("#navbar").on("click touchend",function(n){n.stopPropagation()});$("#nav-toggle").on("click touchend",function(n){n.preventDefault();n.stopPropagation();$("#navbar").toggleClass("active");$(".nav-icon").toggleClass("open");$("#navbar .has-subs .active").removeClass("active")});$("#navbar").on("click",".has-subs > a",function(n){n.preventDefault();$(this).next().hasClass("active")?$(this).next().removeClass("active"):($("#navbar .has-subs > ul").removeClass("active"),$(this).next().addClass("active"))});if($(".home-box").matchHeight({byRow:!0}),$("#icon-row .col-xs-6").matchHeight({byRow:!0}),$("#banner-carousel").length&&$("#banner-carousel").slick({adaptiveHeight:!0,dots:!0,arrows:!1,infinite:!0,autoplay:!0,fade:!0,cssEase:"linear",autoplaySpeed:1e4}),$("body.articleid145").length&&$(".datatable").DataTable({paging:!0,order:[],dom:'<"panel-heading"<"row"<"col-sm-6"><"col-sm-6"f>>>tr',language:{search:"Filter"},buttons:[{extend:"colvis",columns:":not(.perm)",postfixButtons:[{extend:"colvisRestore",text:"Show All"}]}],responsive:{details:{type:"column",target:-1,renderer:$.fn.dataTable.Responsive.renderer.listHidden()}},columnDefs:[{className:"control",orderable:!1,targets:-1},{visible:!1,targets:"col-hidden"}]}),$("body.articleid5412").length&&$(".datatable").DataTable({paging:!0,order:[],dom:'<"panel-heading"<"row"<"col-sm-6"><"col-sm-6"f>>>tr',language:{search:"Filtrer"},buttons:[{extend:"colvis",columns:":not(.perm)",postfixButtons:[{extend:"colvisRestore",text:"Show All"}]}],responsive:{details:{type:"column",target:-1,renderer:$.fn.dataTable.Responsive.renderer.listHidden()}},columnDefs:[{className:"control",orderable:!1,targets:-1},{visible:!1,targets:"col-hidden"}]}),$("body.articleid12.en").length&&($('#citem_type_id option[value="
102770"]').remove(),$('#citem_type_id option[value="2"]').remove(),$('#citem_type_id option[value="3"]').remove()),$("body.articleid12.fr").length&&($('#citem_type_id option[value="0"]').remove(),$('#citem_type_id option[value="1"]').remove(),$('#citem_type_id option[value="3"]').remove()),$("body.articleid5530").length)$(".event-modal-board").on("click",function(n){n.preventDefault();var t=$(this).data("name"),i=$(this).data("content"),r=` 10278<a href="/fend/board/invite.asp?i=${i}" class="btn btn-success pull-left">Download Calendar Invite</a> 10279<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 10280`;bootstrapModal.showModal(t==""?"Event Details":t,i,r,"md","",!0,"event-modal")})});$(document).ready(function () { 10281 10282 openNav = function () { 10283 document.getElementById("mySidepanel").style.width = "275px"; 10284 } 10285 10286 closeNav = function () { 10287 document.getElementById("mySidepanel").style.width = "0"; 10288 } 10289 10290 var listContrastClasses = 'asb-grayscale asb-high-contrast asb-negative-contrast asb-light-bg', 10291 checkmarkHtml = '<span class="material-symbols-outlined">check</span>'; 10292 10293 10294 if ($('#accessibility-options').length) { 10295 10296 //hides menu when clicking outside of the menu while it's open 10297 $(document).on('click', function (event) { 10298 if (!$(event.target).closest('#accessibility-options').length) { 10299 document.getElementById("mySidepanel").style.width = "0"; 10300 } 10301 }); 10302 10303 //checking if body already has accessibility classes due to existing sesssion variable 10304 if ($('body[class*="asb-"]').length) { 10305 $.each($('body').attr("class").split(/\s+/), function (key, value) { 10306 if (~value.indexOf('asb-')) { 10307 var thisButton = $('.tools-menu button[data-name="' + (~value.indexOf('asb-inc-font-') ? 'inc-font' : value.replace('asb-', '')) + '"]'); 10308 thisButton.addClass('active').find('.checkmark').html(checkmarkHtml); 10309 } 10310 }); 10311 } 10312 10313 10314 var accessibilityFontSizeLevel = $(document).find('#fontSizeLevel'); 10315 var thisFontLevel = parseInt(accessibilityFontSizeLevel.val()); 10316 $(document).find('#fontSizeLevel').remove(); 10317 var maxFontLevel = 5; 10318 10319 10320 //event triggered when clicking on buttons in accessibility tool menu 10321 $(document).on('click', '.tools-menu button', function () { 10322 var thisButton = $(this); 10323 var thisButtonName = thisButton.data('name'); 10324 var thisAccessibilityClass = 'asb-' + thisButtonName; 10325 10326 switch (thisButtonName) { 10327 case 'inc-font': 10328 if (thisFontLevel < maxFontLevel) { 10329 thisFontLevel++; 10330 if (~$('body').attr('class').indexOf('asb-inc-font-')) { 10331 $('body').removeClass(function (index, className) { 10332 return (className.match(/(^|\s)(asb-inc-font-)\S+/g) || []).join(' '); 10333 }); 10334 } 10335 $('body').addClass(thisAccessibilityClass + '-' + thisFontLevel); 10336 thisButton.addClass('active').find('.checkmark').html(checkmarkHtml); 10337 } 10338 break; 10339 case 'dec-font': 10340 $('body').removeClass(function (index, className) { 10341 return (className.match(/(^|\s)(asb-inc-font-)\S+/g) || []).join(' '); 10342 }); 10343 if (thisFontLevel == 1 || thisFontLevel <= 0) { 10344 thisFontLevel = 0; 10345 $('.tools-menu button[data-name="inc-font"]').removeClass('active').find('.checkmark').html(null); 10346 } else { 10347 thisFontLevel--; 10348 $('body').addClass('asb-inc-font-' + thisFontLevel); 10349 } 10350 break; 10351 10352 //disable all active options 10353 case 'reset-all': 10354 $('body').removeClass(function (index, className) { 10355 return (className.match(/(^|\s)(asb-)\S+/g) || []).join(' '); 10356 }); 10357 $('.tools-menu button').removeClass('active').find('.checkmark').html(null); 10358 thisFontLevel = 0; 10359 break; 10360 10361 //only allow one of the following "contrast" options to be active 10362 case 'grayscale': 10363 case 'high-contrast': 10364 case 'negative-contrast': 10365 case 'light-bg': 10366 if ($('body').hasClass(thisAccessibilityClass)) { 10367 $('body').removeClass(thisAccessibilityClass); 10368 thisButton.removeClass('active').find('.checkmark').html(null); 10369 } else { 10370 $('body').removeClass(listContrastClasses).addClass(thisAccessibilityClass); 10371 $('.tools-menu button[data-type="contrast"]').removeClass('active').find('.checkmark').html(null); 10372 thisButton.addClass('active').find('.checkmark').html(checkmarkHtml); 10373 } 10374 break; 10375 10376 //normal options can be toggled individually 10377 default: 10378 if ($('body').hasClass(thisAccessibilityClass)) { 10379 $('body').removeClass(thisAccessibilityClass); 10380 thisButton.removeClass('active').find('.checkmark').html(null); 10381 } else { 10382 $('body').addClass(thisAccessibilityClass); 10383 thisButton.addClass('active').find('.checkmark').html(checkmarkHtml); 10384 } 10385 break; 10386 } 10387 10388 10389 //building list of active options; to be saved in session variable 10390 var activeAccessibilityOps = ''; 10391 var activeAccessibilityOpsSeparator = ''; 10392 $('.tools-menu button.active').each(function () { 10393 var thisButton = $(this); 10394 var thisButtonName = thisButton.data('name'); 10395 var thisAccessibilityClass = 'asb-' + thisButtonName; 10396 if (thisButtonName == 'inc-font') thisAccessibilityClass += '-' + thisFontLevel; 10397 activeAccessibilityOps += activeAccessibilityOpsSeparator + thisAccessibilityClass; 10398 activeAccessibilityOpsSeparator = ' '; 10399 }); 10400 $.ajax({
10401 url: '/fend/request/accessibility-tools.asp', 10402 type: 'POST', 10403 data: { 10404 a: activeAccessibilityOps 10405 } 10406 }); 10407 10408 }); 10409 } 10410});
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.