vendor: 47,525 bytes, lines 1-17
1/*! 2 * jQuery JavaScript Library v1.6.2 3 * http://jquery.com/ 4 * 5 * Copyright 2011, John Resig 6 * Dual licensed under the MIT or GPL Version 2 licenses. 7 * http://jquery.org/license 8 * 9 * Includes Sizzle.js 10 * http://sizzlejs.com/ 11 * Copyright 2011, The Dojo Foundation 12 * Released under the MIT, BSD, and GPL Licenses. 13 * 14 * Date: Thu Jun 30 14:16:56 2011 -0400 15 */ 16(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g));return l}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. 17shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h=h+k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()}
vendor: 7,074 bytes, line 17
17,CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);
vendor: 36,957 bytes, lines 17-18
17if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j 18)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bA(a,b,d);f.swap(a,bu,function(){e=bA(a,b,d)});return e}},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
18/*! 19 * jQuery UI 1.8.16 20 * 21 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 22 * Dual licensed under the MIT or GPL Version 2 licenses. 23 * http://jquery.org/license 24 * 25 * http://docs.jquery.com/UI 26 */ 27(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", 28keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= 29this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, 30"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": 31"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, 32outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, 33"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& 34a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& 35c.ui.isOverAxis(b,e,i)}})}})(jQuery); 36;/* 37 * jQuery UI Datepicker 1.8.16 38 * 39 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 40 * Dual licensed under the MIT or GPL Version 2 licenses. 41 * http://jquery.org/license 42 * 43 * http://docs.jquery.com/UI/Datepicker 44 * 45 * Depends: 46 * jquery.ui.core.js 47 */ 48(function(d,C){function M(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= 49"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
49ay","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", 50"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", 51minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout", 52function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); 53b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv}, 54setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g, 55"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", 56function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c== 57"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker(): 58d.datepicker._showDatepicker(a[0]);return false})}}
58,_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a, 59b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+= 601;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/ 612-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b= 62d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e= 63a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a, 64"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f== 65a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"? 66d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e); 67this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);
67this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl"); 68b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target, 69a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c= 70a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b, 71"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode); 72return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input", 73a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value= 74"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b); 75c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.f
75ind("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing= 76true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}); 77a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&& 78!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(), 79h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b= 80this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b); 81this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, 82_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): 830),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"? 84"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a); 85this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);
85this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField"); 86if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"? 87b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D= 88o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s= 89function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+ 901;l=v.getDate();break;
90case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd", 91COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames: 92null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()- 93(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;
93case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f= 940;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a); 95var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date; 96i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g= 97Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()> 9812?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&& 99a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? 100new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); 101n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m, 102g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&& 103a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+ 104B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O= 105"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&& 106x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, 107z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()== 108P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?" ":L?'<span class="ui-state-default">'+ 109r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>': 110"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";
110for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&& 111(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b, 112e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+ 113(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b}
113,_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input? 114a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c, 115e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a, 116"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this; 117if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a== 118"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery); 119;/* 120* Input Mask plugin for jquery 121* http://github.com/RobinHerbots/jquery.inputmask 122* Copyright (c) 2010 - Robin Herbots 123* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) 124* Version: 0.0.0-dev 125*/ 126 127(function ($) { 128 if ($.fn.inputmask === undefined) { 129 130 //helper functions 131 function isInputEventSupported(eventName) { 132 var el = document.createElement('input'), 133 evName = 'on' + eventName, 134 isSupported = (evName in el); 135 if (!isSupported) { 136 el.setAttribute(evName, 'return;'); 137 isSupported = typeof el[evName] == 'function'; 138 } 139 el = null; 140 return isSupported; 141 } 142 143 function isInputTypeSupported(inputType) { 144 var isSupported = inputType == "text" || inputType == "tel"; 145 if (!isSupported) { 146 var el = document.createElement('input'); 147 el.setAttribute("type", inputType); 148 isSupported = el.type === "text"; //apply mask only if the type is not natively supported 149 el = null; 150 } 151 return isSupported; 152 } 153 154 function resolveAlias(aliasStr, options, opts) { 155 var aliasDefinition = opts.aliases[aliasStr]; 156 if (aliasDefinition) { 157 if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts); //alias is another alias 158 $.extend(true, opts, aliasDefinition); //merge alias definition in the options 159 $.extend(true, opts, options); //reapply extra given options 160 return true; 161 } 162 return false;
163 } 164 165 function generateMaskSet(opts, nocache) { 166 var ms = undefined; 167 168 function analyseMask(mask) { 169 var tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})\??|[^.?*+^${[]()|\\]+|./g, 170 escaped = false; 171 172 function maskToken(isGroup, isOptional, isQuantifier, isAlternator) { 173 this.matches = []; 174 this.isGroup = isGroup || false; 175 this.isOptional = isOptional || false; 176 this.isQuantifier = isQuantifier || false; 177 this.isAlternator = isAlternator || false; 178 this.quantifier = { min: 1, max: 1 }; 179 }; 180 181 //test definition => {fn: RegExp/function, cardinality: int, optionality: bool, newBlockMarker: bool, casing: null/upper/lower, def: definitionSymbol, placeholder: placeholder, mask: real maskDefinition} 182 function insertTestDefinition(mtoken, element, position) { 183 var maskdef = opts.definitions[element]; 184 var newBlockMarker = mtoken.matches.length == 0; 185 position = position != undefined ? position : mtoken.matches.length; 186 if (maskdef && !escaped) { 187 maskdef["placeholder"] = $.isFunction(maskdef["placeholder"]) ? maskdef["placeholder"].call(this, opts) : maskdef["placeholder"]; 188 var prevalidators = maskdef["prevalidator"], prevalidatorsL = prevalidators ? prevalidators.length : 0; 189 for (var i = 1; i < maskdef.cardinality; i++) { 190 var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator["validator"], cardinality = prevalidator["cardinality"]; 191 mtoken.matches.splice(position++, 0, { fn: validator ? typeof validator == 'string' ? new RegExp(validator) : new function () { this.test = validator; } : new RegExp("."), cardinality: cardinality ? cardinality : 1, optionality: mtoken.isOptional, newBlockMarker: newBlockMarker, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element, placeholder: maskdef["placeholder"], mask: element }); 192 } 193 mtoken.matches.splice(position++, 0, { fn: maskdef.validator ? typeof maskdef.validator == 'string' ? new RegExp(maskdef.validator) : new function () { this.test = maskdef.validator; } : new RegExp("."), cardinality: maskdef.cardinality, optionality: mtoken.isOptional, newBlockMarker: newBlockMarker, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element, placeholder: maskdef["placeholder"], mask: element }); 194 } else { 195 mtoken.matches.splice(position++, 0, { fn: null, cardinality: 0, optionality: mtoken.isOptional, newBlockMarker: newBlockMarker, casing: null, def: element, placeholder: undefined, mask: element }); 196 escaped = false; 197 } 198 } 199 200 var currentToken = new maskToken(), 201 match, 202 m, 203 openenings = [], 204 maskTokens = [], 205 openingToken, 206 currentOpeningToken, 207 alternator, 208 lastMatch; 209 210 while (match = tokenizer.exec(mask)) { 211 m = match[0]; 212 switch (m.charAt(0)) { 213 case opts.optionalmarker.end: 214 // optional closing 215 case opts.groupmarker.end: 216 // Group closing 217 openingToken = openenings.pop(); 218 if (openenings.length > 0) { 219 currentOpeningToken = openenings[openenings.length - 1]; 220 currentOpeningToken["matches"].push(openingToken); 221 if (currentOpeningToken.isAlternator) { //handle alternator (a) | (b) case 222 alternator = openenings.pop(); 223 for (var mndx = 0; mndx < alternator.matches.length; mndx++) { 224 alternator.matches[mndx].isGroup = false; //don't mark alternate groups as group 225 } 226 if (openenings.length > 0) { 227 currentOpeningToken = openenings[openenings.length - 1]; 228 currentOpeningToken["matches"].push(alternator); 229 } else { 230 currentToken.matches.push(alternator); 231 } 232 } 233 } else { 234 currentToken.matches.push(openingToken); 235 } 236 break; 237 case opts.optionalmarker.start: 238 // optional opening 239 openenings.push(new maskToken(false, true)); 240 break; 241 case opts.groupmarker.start: 242 // Group opening 243 openenings.push(new maskToken(true)); 244 break; 245 case opts.quantifiermarker.start: 246 //Quantifier 247 var quantifier = new maskToken(false, false, true); 248 249 m = m.replace(/[{}]/g, ""); 250 var mq = m.split(","), 251 mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), 252 mq1 = mq.length == 1 ? mq0 : (isNaN(mq[1]) ? mq[1] : parseInt(mq[1])); 253 if (mq1 == "*" || mq1 == "+") { 254 mq0 = mq1 == "*" ? 0 : 1; 255 } 256 quantifier.quantifier = { min: mq0, max: mq1 }; 257 if (openenings.length > 0) { 258 var matches = openenings[openenings.length - 1]["matches"]; 259 match = matches.pop(); 260 if (!match["isGroup"]) { 261 var groupToken = new maskToken(true); 262 groupToken.matches.push(match); 263 match = groupToken; 264 } 265 matches.push(match); 266 matches.push(quantifier); 267 } else { 268 match = currentToken.matches.pop(); 269 if (!match["isGroup"]) { 270 var groupToken = new maskToken(true); 271 groupToken.matches.push(match); 272 match = groupToken; 273 } 274 currentToken.matches.push(match); 275 currentToken.matches.push(quantifier); 276 } 277 break; 278 case opts.escapeChar: 279 escaped = true; 280 break; 281 case opts.alternatormarker: 282 if (openenings.length > 0) { 283 currentOpeningToken = openenings[openenings.length - 1]; 284 lastMatch = currentOpeningToken.matches.pop(); 285 } else { 286 lastMatch = currentToken.matches.pop(); 287 } 288 if (lastMatch.isAlternator) { 289 openenings.push(lastMatch); 290 } else { 291 alternator = new maskToken(false, false, false, true); 292 alternator.matches.push(lastMatch); 293 openenings.push(alternator); 294 } 295 break; 296 default: 297 if (openenings.length > 0) { 298 currentOpeningToken = openenings[openenings.length - 1]; 299 if (currentOpeningToken.matches.length > 0 && !currentOpeningToken.isAlternator) { 300 lastMatch = currentOpeningToken.matches[currentOpeningToken.matches.length - 1]; 301 if (lastMatch["isGroup"]) { //this is not a group but a normal mask => convert 302 lastMatch.isGroup = false;
303 insertTestDefinition(lastMatch, opts.groupmarker.start, 0); 304 insertTestDefinition(lastMatch, opts.groupmarker.end); 305 } 306 } 307 insertTestDefinition(currentOpeningToken, m); 308 if (currentOpeningToken.isAlternator) { //handle alternator a | b case 309 alternator = openenings.pop(); 310 for (var mndx = 0; mndx < alternator.matches.length; mndx++) { 311 alternator.matches[mndx].isGroup = false; //don't mark alternate groups as group 312 } 313 if (openenings.length > 0) { 314 currentOpeningToken = openenings[openenings.length - 1]; 315 currentOpeningToken["matches"].push(alternator); 316 } else { 317 currentToken.matches.push(alternator); 318 } 319 } 320 } else { 321 if (currentToken.matches.length > 0) { 322 lastMatch = currentToken.matches[currentToken.matches.length - 1]; 323 if (lastMatch["isGroup"]) { //this is not a group but a normal mask => convert 324 lastMatch.isGroup = false; 325 insertTestDefinition(lastMatch, opts.groupmarker.start, 0); 326 insertTestDefinition(lastMatch, opts.groupmarker.end); 327 } 328 } 329 insertTestDefinition(currentToken, m); 330 } 331 } 332 } 333 334 if (currentToken.matches.length > 0) { 335 lastMatch = currentToken.matches[currentToken.matches.length - 1]; 336 if (lastMatch["isGroup"]) { //this is not a group but a normal mask => convert 337 lastMatch.isGroup = false; 338 insertTestDefinition(lastMatch, opts.groupmarker.start, 0); 339 insertTestDefinition(lastMatch, opts.groupmarker.end); 340 } 341 maskTokens.push(currentToken); 342 } 343 344 //console.log(JSON.stringify(maskTokens)); 345 return maskTokens; 346 } 347 348 function generateMask(mask, metadata) { 349 if (mask == undefined || mask == "") 350 return undefined; 351 else { 352 if (mask.length == 1 && opts.greedy == false && opts.repeat != 0) { 353 opts.placeholder = ""; 354 } //hide placeholder with single non-greedy mask 355 if (opts.repeat > 0 || opts.repeat == "*" || opts.repeat == "+") { 356 var repeatStart = opts.repeat == "*" ? 0 : (opts.repeat == "+" ? 1 : opts.repeat); 357 mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + "," + opts.repeat + opts.quantifiermarker.end; 358 } 359 360 var masksetDefinition; 361 if ($.inputmask.masksCache[mask] == undefined || nocache === true) { 362 masksetDefinition = { 363 "mask": mask, 364 "maskToken": analyseMask(mask), 365 "validPositions": {}, 366 "_buffer": undefined, 367 "buffer": undefined, 368 "tests": {}, 369 "metadata": metadata 370 }; 371 if (nocache !== true) 372 $.inputmask.masksCache[mask] = masksetDefinition; 373 } else masksetDefinition = $.extend(true, {}, $.inputmask.masksCache[mask]); 374 375 return masksetDefinition; 376 } 377 } 378 function preProcessMask(mask) { 379 mask = mask.toString(); 380 if (opts.numericInput) { //TODO FIX FOR DYNAMIC MASKS WITH QUANTIFIERS 381 mask = mask.split('').reverse(); 382 for (var ndx = 0; ndx < mask.length; ndx++) { 383 if (mask[ndx] == opts.optionalmarker.start) 384 mask[ndx] = opts.optionalmarker.end; 385 else if (mask[ndx] == opts.optionalmarker.end) 386 mask[ndx] = opts.optionalmarker.start; 387 else if (mask[ndx] == opts.groupmarker.start) 388 mask[ndx] = opts.groupmarker.end; 389 else if (mask[ndx] == opts.groupmarker.end) 390 mask[ndx] = opts.groupmarker.start; 391 } 392 mask = mask.join(''); 393 } 394 return mask; 395 } 396 397 if ($.isFunction(opts.mask)) { //allow mask to be a preprocessing fn - should return a valid mask 398 opts.mask = opts.mask.call(this, opts); 399 } 400 if ($.isArray(opts.mask)) { 401 if (opts.mask.length > 1) { 402 opts.keepStatic = opts.keepStatic == undefined ? true : opts.keepStatic; //enable by default when passing multiple masks when the option is not explicitly specified 403 var altMask = "("; 404 $.each(opts.mask, function (ndx, msk) { 405 if (altMask.length > 1) 406 altMask += ")|("; 407 if (msk["mask"] != undefined && !$.isFunction(msk["mask"])) { 408 altMask += preProcessMask(msk["mask"]); 409 } else { 410 altMask += preProcessMask(msk); 411 } 412 }); 413 altMask += ")"; 414 return generateMask(altMask, opts.mask); 415 } else opts.mask = opts.mask.pop(); 416 } 417 418 if (opts.mask) { 419 if (opts.mask["mask"] != undefined && !$.isFunction(opts.mask["mask"])) { 420 ms = generateMask(preProcessMask(opts.mask["mask"]), opts.mask); 421 } else { 422 ms = generateMask(preProcessMask(opts.mask), opts.mask); 423 } 424 } 425 426 return ms; 427 } 428 429 var ua = navigator.userAgent, 430 iphone = ua.match(new RegExp("iphone", "i")) !== null, 431 android = ua.match(new RegExp("android.*safari.*", "i")) !== null, 432 androidchrome = ua.match(new RegExp("android.*chrome.*", "i")) !== null, 433 androidfirefox = ua.match(new RegExp("android.*firefox.*", "i")) !== null, 434 kindle = /Kindle/i.test(ua) || /Silk/i.test(ua) || /KFTT/i.test(ua) || /KFOT/i.test(ua) || /KFJWA/i.test(ua) || /KFJWI/i.test(ua) || /KFSOWI/i.test(ua) || /KFTHWA/i.test(ua) || /KFTHWI/i.test(ua) || /KFAPWA/i.test(ua) || /KFAPWI/i.test(ua), 435 PasteEventType = isInputEventSupported('paste') ? 'paste' : isInputEventSupported('input') ? 'input' : "propertychange"; 436 437 //if (androidchrome) { 438 // var browser = navigator.userAgent.match(new RegExp("chrome.*", "i")), 439 // version = parseInt(new RegExp(/[0-9]+/).exec(browser)); 440 // androidchrome32 = (version == 32); 441 //} 442 443 //masking scope 444 //actionObj definition see below 445 function maskScope(actionObj, maskset, opts) { 446 var isRTL = false, 447 undoValue, 448 compositionValidPos, 449 compositionCaretPos, 450 compositionData, 451 $el, 452 skipKeyPressEvent = false, //Safari 5.1.x - modal dialog fires keypress twice workaround 453 skipInputEvent = false, //skip when triggered from within inputmask 454 ignorable = false, 455 maxLength,
456 firstClick = true; 457 458 //maskset helperfunctions 459 460 461 function getMaskTemplate(baseOnInput, minimalPos, includeInput) { 462 minimalPos = minimalPos || 0; 463 var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos; 464 do { 465 if (baseOnInput === true && getMaskSet()['validPositions'][pos]) { 466 var validPos = getMaskSet()['validPositions'][pos]; 467 test = validPos["match"]; 468 ndxIntlzr = validPos["locator"].slice(); 469 maskTemplate.push(includeInput === true ? validPos["input"] : getPlaceholder(pos, test)); 470 } else { 471 testPos = getTestTemplate(pos, ndxIntlzr, pos - 1); 472 test = testPos["match"]; 473 ndxIntlzr = testPos["locator"].slice(); 474 maskTemplate.push(getPlaceholder(pos, test)); 475 } 476 pos++; 477 } while ((maxLength == undefined || pos - 1 < maxLength) && test["fn"] != null || (test["fn"] == null && test["def"] != "") || minimalPos >= pos); 478 maskTemplate.pop(); //drop the last one which is empty 479 return maskTemplate; 480 } 481 function getMaskSet() { 482 return maskset; 483 } 484 function resetMaskSet(soft) { 485 var maskset = getMaskSet(); 486 maskset["buffer"] = undefined; 487 maskset["tests"] = {}; 488 if (soft !== true) { 489 maskset["_buffer"] = undefined; 490 maskset["validPositions"] = {}; 491 maskset["p"] = 0; 492 } 493 } 494 function getLastValidPosition(closestTo, strict) { 495 var maskset = getMaskSet(), lastValidPosition = -1, valids = maskset["validPositions"]; 496 if (closestTo == undefined) closestTo = -1; 497 var before = lastValidPosition, after = lastValidPosition; 498 for (var posNdx in valids) { 499 var psNdx = parseInt(posNdx); 500 if (valids[psNdx] && (strict || valids[psNdx]["match"].fn != null)) { 501 if (psNdx <= closestTo) before = psNdx; 502 if (psNdx >= closestTo) after = psNdx; 503 } 504 } 505 lastValidPosition = (before != -1 && (closestTo - before) > 1) || after < closestTo ? before : after; 506 return lastValidPosition; 507 } 508 function setValidPosition(pos, validTest, fromSetValid) { 509 if (opts.insertMode && getMaskSet()["validPositions"][pos] != undefined && fromSetValid == undefined) { 510 //reposition & revalidate others 511 var positionsClone = $.extend(true, {}, getMaskSet()["validPositions"]), lvp = getLastValidPosition(), i; 512 for (i = pos; i <= lvp; i++) { //clear selection 513 delete getMaskSet()["validPositions"][i]; 514 } 515 getMaskSet()["validPositions"][pos] = validTest; 516 var valid = true, j, vps = getMaskSet()["validPositions"]; 517 for (i = (j = pos) ; i <= lvp ; i++) { 518 var t = positionsClone[i]; 519 if (t != undefined) { 520 var posMatch = j; 521 while (posMatch < getMaskLength() && ((t.match.fn == null && vps[i] && (vps[i].match.optionalQuantifier === true || vps[i].match.optionality === true)) || t.match.fn != null)) { 522 //determine next position 523 if (t.match.fn == null || (!opts.keepStatic && vps[i] && (vps[i + 1] != undefined && getTests(i + 1, vps[i].locator.slice(), i).length > 1 || vps[i].alternation != undefined))) 524 posMatch++; 525 else 526 posMatch = seekNext(j); 527 528 //does it match 529 if (positionCanMatchDefinition(posMatch, t["match"].def)) { 530 valid = isValid(posMatch, t["input"], true, true) !== false; 531 j = posMatch; 532 break; 533 } else valid = t["match"].fn == null; 534 } 535 } 536 if (!valid) break; 537 } 538 539 if (!valid) {
540 getMaskSet()["validPositions"] = $.extend(true, {}, positionsClone); 541 return false; 542 } 543 } else 544 getMaskSet()["validPositions"][pos] = validTest; 545 546 return true; 547 } 548 function stripValidPositions(start, end, nocheck, strict) { 549 var i, startPos = start; 550 getMaskSet()["p"] = start; //needed for alternated position after overtype selection 551 if (getMaskSet()["validPositions"][start] != undefined && getMaskSet()["validPositions"][start].input == opts.radixPoint) { 552 end++; 553 startPos++; 554 } 555 var endPos = end; 556 for (i = startPos; i < end; i++) { //clear selection 557 if (getMaskSet()["validPositions"][i] != undefined) { 558 if (nocheck === true || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) != false) 559 delete getMaskSet()["validPositions"][i]; 560 } 561 } 562 563 resetMaskSet(true); 564 for (i = startPos + 1 ; i <= getLastValidPosition() ;) { 565 while (getMaskSet()["validPositions"][startPos] != undefined) startPos++; 566 var s = getMaskSet()["validPositions"][startPos]; 567 if (i < startPos) i = startPos + 1; 568 var t = getMaskSet()["validPositions"][i]; 569 if (t != undefined && s == undefined) { 570 if (positionCanMatchDefinition(startPos, t.match.def) && isValid(startPos, t["input"], true) !== false) { 571 delete getMaskSet()["validPositions"][i]; 572 i++; 573 } 574 startPos++; 575 } else i++; 576 } 577 //remove radixpoint if needed 578 var lvp = getLastValidPosition(), ml = getMaskLength(); 579 if (start <= lvp && getMaskSet()["validPositions"][lvp] != undefined && (getMaskSet()["validPositions"][lvp].input == opts.radixPoint)) 580 delete getMaskSet()["validPositions"][lvp]; 581 582 for (i = lvp + 1; i <= ml; i++) { 583 if (getMaskSet()["validPositions"][i]) 584 delete getMaskSet()["validPositions"][i]; 585 } 586 587 resetMaskSet(true); 588 } 589 function getTestTemplate(pos, ndxIntlzr, tstPs) { 590 var testPos = getMaskSet()["validPositions"][pos]; 591 if (testPos == undefined) { 592 var testPositions = getTests(pos, ndxIntlzr, tstPs), 593 lvp = getLastValidPosition(), 594 lvTest = getMaskSet()["validPositions"][lvp] || getTests(0, undefined, undefined)[0], 595 lvTestAltArr = (lvTest.alternation != undefined) ? lvTest["locator"][lvTest.alternation].toString().split(',') : []; 596 for (var ndx = 0; ndx < testPositions.length; ndx++) { 597 testPos = testPositions[ndx]; 598 599 if (testPos["match"] && 600 (((opts.greedy && testPos["match"].optionalQuantifier !== true) 601 || (testPos["match"].optionality === false || testPos["match"].newBlockMarker === false) && testPos["match"].optionalQuantifier !== true) && 602 (lvTest.alternation == undefined || 603 (testPos["locator"][lvTest.alternation] != undefined && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr))))) { 604 break; 605 } 606 } 607 } 608 609 return testPos; 610 } 611 function getTest(pos) { 612 if (getMaskSet()['validPositions'][pos]) { 613 return getMaskSet()['validPositions'][pos]["match"]; 614 } 615 return getTests(pos)[0]["match"]; 616 } 617 function positionCanMatchDefinition(pos, def) {
618 var valid = false, tests = getTests(pos); 619 for (var tndx = 0; tndx < tests.length; tndx++) { 620 if (tests[tndx]["match"] && tests[tndx]["match"].def == def) { 621 valid = true; 622 break; 623 } 624 } 625 return valid; 626 }; 627 function getTests(pos, ndxIntlzr, tstPs, cacheable) { 628 var maskTokens = getMaskSet()["maskToken"], testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr || [0], matches = [], insertStop = false; 629 function ResolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) { //ndxInitilizer contains a set of indexes to speedup searches in the mtokens 630 function handleMatch(match, loopNdx, quantifierRecurse) { 631 if (testPos > 10000) { 632 alert("jquery.inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet()["mask"]); 633 return true; 634 } 635 if (testPos == pos && match.matches == undefined) { 636 matches.push({ "match": match, "locator": loopNdx.reverse() }); 637 return true; 638 } else if (match.matches != undefined) { 639 if (match.isGroup && quantifierRecurse !== true) { //when a group pass along to the quantifier 640 match = handleMatch(maskToken.matches[tndx + 1], loopNdx); 641 if (match) return true; 642 } else if (match.isOptional) { 643 var optionalToken = match; 644 match = ResolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse); 645 if (match) { 646 var latestMatch = matches[matches.length - 1]["match"]; 647 var isFirstMatch = $.inArray(latestMatch, optionalToken.matches) == 0; 648 if (isFirstMatch) { 649 insertStop = true; //insert a stop 650 testPos = pos; //match the position after the group 651 } else return true; 652 } 653 } else if (match.isAlternator) { 654 var alternateToken = match, malternateMatches = [], maltMatches, 655 currentMatches = matches.slice(), loopNdxCnt = loopNdx.length; 656 var altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1; 657 if (altIndex == -1 || typeof altIndex == "string") { 658 var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr; 659 if (typeof altIndex == "string") altIndexArr = altIndex.split(","); 660 //console.log(alternateToken.matches.length); 661 for (var amndx = 0; amndx < alternateToken.matches.length; amndx++) { 662 matches = []; 663 match = handleMatch(alternateToken.matches[amndx], [amndx].concat(loopNdx), quantifierRecurse) || match; 664 maltMatches = matches.slice(); 665 testPos = currentPos; 666 matches = []; 667 //cloneback 668 for (var i = 0; i < ndxInitializerClone.length; i++) { 669 ndxInitializer[i] = ndxInitializerClone[i]; 670 } 671 //fuzzy merge matches 672 for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) { 673 var altMatch = maltMatches[ndx1]; 674 altMatch.alternation = loopNdxCnt; 675 for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) { 676 var altMatch2 = malternateMatches[ndx2];
677 //verify equality 678 if (altMatch.match.mask == altMatch2.match.mask && (typeof altIndex != "string" || $.inArray(altMatch.locator[loopNdxCnt].toString(), altIndexArr) != -1)) { 679 maltMatches.splice(ndx1, 1); 680 altMatch2.locator[loopNdxCnt] = altMatch2.locator[loopNdxCnt] + "," + altMatch.locator[loopNdxCnt]; 681 altMatch2.alternation = loopNdxCnt; //we pass the alternation index => used in determineLastRequiredPosition 682 break; 683 } 684 } 685 } 686 malternateMatches = malternateMatches.concat(maltMatches); 687 } 688 689 if (typeof altIndex == "string") { //filter matches 690 malternateMatches = $.map(malternateMatches, function (lmnt, ndx) { 691 if (isFinite(ndx)) { 692 var altLocArr = lmnt.locator[loopNdxCnt].toString().split(","); 693 var mamatch; 694 lmnt.locator[loopNdxCnt] = undefined; 695 lmnt.alternation = undefined; 696 for (var alndx = 0; alndx < altLocArr.length; alndx++) { 697 mamatch = $.inArray(altLocArr[alndx], altIndexArr) != -1; 698 if (mamatch) { //rebuild the locator with valid entries 699 if (lmnt.locator[loopNdxCnt] != undefined) { 700 lmnt.locator[loopNdxCnt] += ","; 701 //lmnt.alternation = loopNdxCnt; //only define alternation when there is more then 1 possibility 702 lmnt.locator[loopNdxCnt] += altLocArr[alndx]; 703 } else 704 lmnt.locator[loopNdxCnt] = parseInt(altLocArr[alndx]); 705 706 lmnt.alternation = loopNdxCnt; 707 } 708 } 709 if (lmnt.locator[loopNdxCnt] != undefined) return lmnt; 710 } 711 }); 712 } 713 714 matches = currentMatches.concat(malternateMatches); 715 testPos = pos; 716 insertStop = true; //insert a stopelemnt when there is an alternate 717 } else { 718 match = handleMatch(alternateToken.matches[altIndex], [altIndex].concat(loopNdx), quantifierRecurse); 719 } 720 if (match) return true; 721 } else if (match.isQuantifier && quantifierRecurse !== true) { 722 var qt = match; 723 for (var qndx = (ndxInitializer.length > 0 && quantifierRecurse !== true) ? ndxInitializer.shift() : 0; (qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max)) && testPos <= pos; qndx++) { 724 var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1]; 725 match = handleMatch(tokenGroup, [qndx].concat(loopNdx), true); 726 if (match) { 727 //get latest match 728 var latestMatch = matches[matches.length - 1]["match"]; 729 latestMatch.optionalQuantifier = qndx > (qt.quantifier.min - 1); 730 var isFirstMatch = $.inArray(latestMatch, tokenGroup.matches) == 0; 731 732 if (isFirstMatch) { //search for next possible match 733 if (qndx > (qt.quantifier.min - 1)) { 734 insertStop = true; 735 testPos = pos; //match the position after the group 736 break; //stop quantifierloop 737 } else return true; 738 } else { 739 return true; 740 } 741 } 742 } 743 } else { 744 match = ResolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse); 745 if (match) 746 return true; 747 } 748 } else testPos++; 749 } 750 751 for (var tndx = (ndxInitializer.length > 0 ? ndxInitializer.shift() : 0) ; tndx < maskToken.matches.length; tndx++) { 752 if (maskToken.matches[tndx]["isQuantifier"] !== true) { 753 var match = handleMatch(maskToken.matches[tndx], [tndx].concat(loopNdx), quantifierRecurse); 754 if (match && testPos == pos) { 755 return match; 756 } else if (testPos > pos) { 757 break; 758 } 759 } 760 } 761 } 762 763 if (false && cacheable !== false && getMaskSet()['tests'][pos]) { 764 return getMaskSet()['tests'][pos]; 765 } 766 if (ndxIntlzr == undefined) { 767 var previousPos = pos - 1, test; 768 while ((test = getMaskSet()['validPositions'][previousPos]) == undefined && previousPos > -1) { 769 previousPos--; 770 } 771 if (test != undefined && previousPos > -1) { 772 testPos = previousPos; 773 ndxInitializer = test["locator"].slice(); 774 } else { 775 previousPos = pos - 1; 776 while ((test = getMaskSet()['tests'][previousPos]) == undefined && previousPos > -1) { 777 previousPos--; 778 } 779 if (test != undefined && previousPos > -1) { 780 testPos = previousPos; 781 ndxInitializer = test[0]["locator"].slice(); 782 } 783 } 784 } 785 for (var mtndx = ndxInitializer.shift() ; mtndx < maskTokens.length; mtndx++) { 786 var match = ResolveTestFromToken(maskTokens[mtndx], ndxInitializer, [mtndx]); 787 if ((match && testPos == pos) || testPos > pos) { 788 break; 789 } 790 } 791 if (matches.length == 0 || insertStop) 792 matches.push({ "match": { fn: null, cardinality: 0, optionality: true, casing: null, def: "" }, "locator": [] }); 793 794 getMaskSet()['tests'][pos] = $.extend(true, [], matches);
794 //set a clone to prevent overwriting some props 795 //console.log(pos + " - " + JSON.stringify(matches)); 796 return getMaskSet()['tests'][pos]; 797 } 798 function getBufferTemplate() { 799 if (getMaskSet()['_buffer'] == undefined) { 800 //generate template 801 getMaskSet()["_buffer"] = getMaskTemplate(false, 1); 802 } 803 return getMaskSet()['_buffer']; 804 } 805 function getBuffer() { 806 if (getMaskSet()['buffer'] == undefined) { 807 getMaskSet()['buffer'] = getMaskTemplate(true, getLastValidPosition(), true); 808 } 809 return getMaskSet()['buffer']; 810 } 811 function refreshFromBuffer(start, end, buffer) { 812 buffer = buffer || getBuffer().slice(); //pass or work on clone 813 if (start === true) { 814 resetMaskSet(); 815 start = 0; 816 end = buffer.length; 817 } else { 818 for (var i = start; i < end; i++) { 819 delete getMaskSet()["validPositions"][i]; 820 delete getMaskSet()["tests"][i]; 821 } 822 } 823 824 for (var i = start; i < end; i++) { 825 if (buffer[i] != opts.skipOptionalPartCharacter) { 826 isValid(i, buffer[i], true, true); 827 } 828 } 829 } 830 function casing(elem, test) { 831 switch (test.casing) { 832 case "upper": 833 elem = elem.toUpperCase(); 834 break; 835 case "lower": 836 elem = elem.toLowerCase(); 837 break; 838 } 839 840 return elem; 841 } 842 function checkAlternationMatch(altArr1, altArr2) { 843 var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), 844 isMatch = false; 845 for (var alndx = 0; alndx < altArr1.length; alndx++) { 846 if ($.inArray(altArr1[alndx], altArrC) != -1) { 847 isMatch = true; 848 break; 849 } 850 } 851 return isMatch; 852 } 853 function isValid(pos, c, strict, fromSetValid) { //strict true ~ no correction or autofill 854 strict = strict === true; //always set a value to strict to prevent possible strange behavior in the extensions 855 856 function _isValid(position, c, strict, fromSetValid) { 857 var rslt = false; 858 //console.log(JSON.stringify(getTests(position))); 859 $.each(getTests(position), function (ndx, tst) { 860 var test = tst["match"]; 861 var loopend = c ? 1 : 0, chrs = '', buffer = getBuffer(); 862 for (var i = test.cardinality; i > loopend; i--) { 863 chrs += getBufferElement(position - (i - 1)); 864 } 865 if (c) { 866 chrs += c; 867 } 868 869 //return is false or a json object => { pos: ??, c: ??} or true 870 rslt = test.fn != null ? 871 test.fn.test(chrs, getMaskSet(), position, strict, opts) 872 : (c == test["def"] || c == opts.skipOptionalPartCharacter) && test["def"] != "" ? //non mask 873 { c: test["def"], pos: position } 874 : false; 875 876 if (rslt !== false) { 877 var elem = rslt.c != undefined ? rslt.c : c; 878 elem = (elem == opts.skipOptionalPartCharacter && test["fn"] === null) ? test["def"] : elem; 879 880 var validatedPos = position, 881 possibleModifiedBuffer = getBuffer(); 882 883 if (rslt["remove"] != undefined) { //remove position(s) 884 if (!$.isArray(rslt["remove"])) rslt["remove"] = [rslt["remove"]]; 885 $.each(rslt["remove"].sort(function (a, b) { return b - a; }), function (ndx, lmnt) {
886 stripValidPositions(lmnt, lmnt + 1, true); 887 }); 888 } 889 if (rslt["insert"] != undefined) { //insert position(s) 890 if (!$.isArray(rslt["insert"])) rslt["insert"] = [rslt["insert"]]; 891 $.each(rslt["insert"].sort(function (a, b) { return a - b; }), function (ndx, lmnt) { 892 isValid(lmnt["pos"], lmnt["c"], true); 893 }); 894 } 895 896 if (rslt["refreshFromBuffer"]) { 897 var refresh = rslt["refreshFromBuffer"]; 898 strict = true; 899 refreshFromBuffer(refresh === true ? refresh : refresh["start"], refresh["end"], possibleModifiedBuffer); 900 if (rslt.pos == undefined && rslt.c == undefined) { 901 rslt.pos = getLastValidPosition(); 902 return false;//breakout if refreshFromBuffer && nothing to insert 903 } 904 validatedPos = rslt.pos != undefined ? rslt.pos : position; 905 if (validatedPos != position) { 906 rslt = $.extend(rslt, isValid(validatedPos, elem, true)); //revalidate new position strict 907 return false; 908 } 909 910 } else if (rslt !== true && rslt.pos != undefined && rslt["pos"] != position) { //their is a position offset 911 validatedPos = rslt["pos"]; 912 refreshFromBuffer(position, validatedPos); 913 if (validatedPos != position) { 914 rslt = $.extend(rslt, isValid(validatedPos, elem, true)); //revalidate new position strict 915 return false; 916 } 917 } 918 919 if (rslt != true && rslt.pos == undefined && rslt.c == undefined) { 920 return false; //breakout if nothing to insert 921 } 922 923 if (ndx > 0) { 924 resetMaskSet(true); 925 } 926 927 if (!setValidPosition(validatedPos, $.extend({}, tst, { "input": casing(elem, test) }), fromSetValid)) 928 rslt = false; 929 return false; //break from $.each 930 } 931 }); 932 933 return rslt; 934 } 935 function alternate(pos, c, strict, fromSetValid) { 936 var validPsClone = $.extend(true, {}, getMaskSet()["validPositions"]), 937 lastAlt, 938 alternation, 939 isValidRslt, 940 altPos; 941 //find last alternation 942 for (lastAlt = getLastValidPosition() ; lastAlt >= 0; lastAlt--) { 943 altPos = getMaskSet()["validPositions"][lastAlt]; 944 if (altPos && altPos.alternation != undefined && altPos.locator[altPos.alternation].length > 1) { 945 alternation = getMaskSet()["validPositions"][lastAlt].alternation; 946 break; 947 } 948 } 949 if (alternation != undefined) { 950 //find first decision making position 951 for (var decisionPos in getMaskSet()["validPositions"]) { 952 altPos = getMaskSet()["validPositions"][decisionPos]; 953 if (parseInt(decisionPos) > parseInt(lastAlt) && altPos.alternation) { 954 var decisionTaker = altPos.locator[alternation], 955 altNdxs = getMaskSet()["validPositions"][lastAlt].locator[alternation].toString().split(','); 956 957 for (var mndx = 0; mndx < altNdxs.length; mndx++) { 958 if (decisionTaker < altNdxs[mndx]) { 959 var possibilityPos, possibilities; 960 for (var dp = decisionPos - 1; dp >= 0; dp--) { 961 possibilityPos = getMaskSet()["validPositions"][dp]; 962 if (possibilityPos != undefined) { 963 possibilities = possibilityPos.locator[alternation]; //store to reset 964 //possibilityPos.alternation = undefined; 965 possibilityPos.locator[alternation] = parseInt(altNdxs[mndx]); 966 break; 967 } 968 } 969 if (decisionTaker != possibilityPos.locator[alternation]) {
970 var validInputs = []; 971 for (var i = decisionPos; i < getLastValidPosition() + 1; i++) { 972 var validPos = getMaskSet()["validPositions"][i]; 973 if (validPos && validPos.match.fn != null) { 974 //console.log(validPos.input); 975 validInputs.push(validPos.input); 976 } 977 delete getMaskSet()["validPositions"][i]; 978 delete getMaskSet()["tests"][i]; 979 } 980 resetMaskSet(true); //clear getbuffer 981 opts.keepStatic = !opts.keepStatic; //disable keepStatic on getMaskLength 982 isValidRslt = true; 983 while (validInputs.length > 0) { 984 var input = validInputs.shift(); 985 //console.log(input); 986 if (input != opts.skipOptionalPartCharacter) { 987 if (!(isValidRslt = isValid(getLastValidPosition() + 1, input, false, true))) { 988 break; 989 } 990 } 991 } 992 993 possibilityPos.alternation = alternation; 994 possibilityPos.locator[alternation] = possibilities; //reset forceddecision ~ needed for proper delete 995 if (isValidRslt) 996 isValidRslt = isValid(pos, c, strict, fromSetValid); 997 opts.keepStatic = !opts.keepStatic; //enable keepStatic on getMaskLength 998 if (!isValidRslt) { 999 resetMaskSet(); 1000 getMaskSet()["validPositions"] = $.extend(true, {}, validPsClone); 1001 } else 1002 return isValidRslt; 1003 } 1004 } 1005 } 1006 break; 1007 } 1008 } 1009 } 1010 return false; 1011 } 1012 1013 //set alternator choice on previous skipped placeholder positions 1014 function trackbackAlternations(originalPos, newPos) { 1015 var vp = getMaskSet()["validPositions"][newPos], 1016 targetLocator = vp.locator, 1017 tll = targetLocator.length; 1018 1019 for (var ps = originalPos; ps < newPos; ps++) { 1020 if (!isMask(ps)) { 1021 var tests = getTests(ps), 1022 bestMatch = tests[0], equality = -1; 1023 $.each(tests, function (ndx, tst) { 1024 for (var i = 0; i < tll; i++) { 1025 if (tst.locator[i] && checkAlternationMatch(tst.locator[i].toString().split(','), targetLocator[i].toString().split(',')) && equality < i) { 1026 equality = i; 1027 bestMatch = tst; 1028 } 1029 } 1030 }); 1031 setValidPosition(ps, $.extend({}, bestMatch, { "input": bestMatch["match"].def }), true) 1032 } 1033 } 1034 } 1035 //Check for a nonmask before the pos 1036 var buffer = getBuffer(); 1037 //find previous valid 1038 for (var pndx = pos - 1; pndx > -1; pndx--) { 1039 if (getMaskSet()["validPositions"][pndx]) 1040 break; 1041 } 1042 ////fill missing nonmask and valid placeholders 1043 pndx++; 1044 for (; pndx < pos; pndx++) { 1045 //console.log("missing " + pndx + " " + buffer[pndx] + " ismask " + isMask(pndx) + " plchldr " + getPlaceholder(pndx) + " nrt " + getTests(pndx).len); 1046 if (getMaskSet()["validPositions"][pndx] == undefined 1047 && (((!isMask(pndx) 1048 || buffer[pndx] != getPlaceholder(pndx)) 1049 && getTests(pndx).length > 1) 1050 || (buffer[pndx] == opts.radixPoint || buffer[pndx] == "0" && $.inArray(opts.radixPoint, buffer) < pndx))) //special case for decimals ~ = placeholder but yet valid input 1051 { 1052 //console.log("inject " + pndx + " " + buffer[pndx]); 1053 _isValid(pndx, buffer[pndx], true); 1054 } 1055 } 1056 1057 var maskPos = pos, 1058 result = false, 1059 positionsClone = $.extend(true, {}, getMaskSet()["validPositions"]); //clone the currentPositions 1060 1061 //if (fromSetValid && maskPos >= getMaskLength()) { 1062 // resetMaskSet(true); //masklenght can be altered on the process => reset to get the actual length 1063 //} 1064 if (maskPos < getMaskLength()) { 1065 result = _isValid(maskPos, c, strict, fromSetValid); 1066 if ((!strict || fromSetValid) && result === false) { 1067 var currentPosValid = getMaskSet()["validPositions"][maskPos]; 1068 if (currentPosValid && currentPosValid["match"].fn == null && (currentPosValid["match"].def == c || c == opts.skipOptionalPartCharacter)) { 1069 result = { "caret": seekNext(maskPos) }; 1070 } else if ((opts.insertMode || getMaskSet()["validPositions"][seekNext(maskPos)] == undefined) && !isMask(maskPos)) { //does the input match on a further position? 1071 for (var nPos = maskPos + 1, snPos = seekNext(maskPos) ; nPos <= snPos; nPos++) { 1072 result = _isValid(nPos, c, strict, fromSetValid); 1073 if (result !== false) { 1074 trackbackAlternations(maskPos, nPos); 1075 maskPos = nPos; 1076 break; 1077 } 1078 } 1079 } 1080 } 1081 } 1082 if (result === false && opts.keepStatic && isComplete(buffer)) { //try fuzzy alternator logic 1083 result = alternate(pos, c, strict, fromSetValid); 1084 } 1085 if (result === true) result = { "pos": maskPos }; 1086 1087 if ($.isFunction(opts.postValidation) && result != false && !strict) { 1088 resetMaskSet(true);
1089 var postValidResult = opts.postValidation(getBuffer(), opts); 1090 if (!postValidResult) { 1091 resetMaskSet(true); 1092 getMaskSet()["validPositions"] = $.extend(true, {}, positionsClone); //revert validation changes 1093 return false; 1094 } 1095 } 1096 1097 return result; 1098 } 1099 function isMask(pos) { 1100 var test = getTest(pos); 1101 if (test.fn != null) 1102 return test.fn 1103 else if (!opts.keepStatic && getMaskSet()["validPositions"][pos] == undefined) { 1104 var tests = getTests(pos), staticAlternations = true; 1105 for (var i = 0; i < tests.length; i++) { 1106 if (tests[i].match.def != "" && (tests[i].match.fn !== null || (tests[i].alternation == undefined || tests[i].locator[tests[i].alternation].length > 1))) { 1107 staticAlternations = false; 1108 break; 1109 } 1110 } 1111 return staticAlternations; 1112 } 1113 1114 return false; 1115 } 1116 function getMaskLength() { 1117 var maskLength; 1118 maxLength = $el.prop('maxLength'); 1119 if (maxLength == -1) maxLength = undefined; /* FF sets no defined max length to -1 */ 1120 var pos, lvp = getLastValidPosition(), testPos = getMaskSet()["validPositions"][lvp], 1121 ndxIntlzr = testPos != undefined ? testPos["locator"].slice() : undefined; 1122 for (pos = lvp + 1; testPos == undefined || (testPos["match"]["fn"] != null || (testPos["match"]["fn"] == null && testPos["match"]["def"] != "")) ; pos++) { 1123 testPos = getTestTemplate(pos, ndxIntlzr, pos - 1); 1124 ndxIntlzr = testPos["locator"].slice(); 1125 } 1126 1127 var lastTest = getTest(pos - 1); 1128 maskLength = (lastTest.def != "") ? pos : pos - 1; 1129 return (maxLength == undefined || maskLength < maxLength) ? maskLength : maxLength; 1130 } 1131 function seekNext(pos) { 1132 var maskL = getMaskLength(); 1133 if (pos >= maskL) return maskL; 1134 var position = pos; 1135 while (++position < maskL && !isMask(position) && (opts.nojumps !== true || opts.nojumpsThreshold > position)) { 1136 } 1137 1138 return position; 1139 } 1140 function seekPrevious(pos) { 1141 var position = pos; 1142 if (position <= 0) return 0; 1143 1144 while (--position > 0 && !isMask(position)) { 1145 }; 1146 return position; 1147 } 1148 function getBufferElement(position) { 1149 return getMaskSet()["validPositions"][position] == undefined ? getPlaceholder(position) : getMaskSet()["validPositions"][position]["input"]; 1150 } 1151 function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) { 1152 if (event && $.isFunction(opts.onBeforeWrite)) { 1153 var result = opts.onBeforeWrite.call(input, event, buffer, caretPos, opts); 1154 if (result) { 1155 if (result["refreshFromBuffer"]) { 1156 var refresh = result["refreshFromBuffer"]; 1157 refreshFromBuffer(refresh === true ? refresh : refresh["start"], refresh["end"], result["buffer"]); 1158 1159 resetMaskSet(true); 1160 buffer = getBuffer(); 1161 } 1162 caretPos = result.caret || caretPos; 1163 } 1164 } 1165 input._valueSet(buffer.join('')); 1166 if (caretPos != undefined) { 1167 caret(input, caretPos); 1168 } 1169 if (triggerInputEvent === true) { 1170 skipInputEvent = true; 1171 $(input).trigger("input"); 1172 } 1173 } 1174 function getPlaceholder(pos, test) { 1175 test = test || getTest(pos); 1176 if (test["placeholder"] != undefined) 1177 return test["placeholder"]; 1178 else if (test["fn"] == null) { 1179 if (!opts.keepStatic && getMaskSet()["validPositions"][pos] == undefined) { 1180 var tests = getTests(pos), staticAlternations = true; 1181 for (var i = 0; i < tests.length; i++) { 1182 if (tests[i].match.def != "" && (tests[i].match.fn !== null || (tests[i].alternation == undefined || tests[i].locator[tests[i].alternation].length > 1))) { 1183 staticAlternations = false;
1184 break; 1185 } 1186 } 1187 1188 if (staticAlternations) 1189 return opts.placeholder.charAt(pos % opts.placeholder.length); 1190 } 1191 return test["def"] 1192 } else { 1193 return opts.placeholder.charAt(pos % opts.placeholder.length); 1194 } 1195 } 1196 function checkVal(input, writeOut, strict, nptvl) { 1197 function isTemplateMatch() { 1198 var isMatch = false; 1199 var charCodeNdx = getBufferTemplate().slice(initialNdx, seekNext(initialNdx)).join('').indexOf(charCodes); 1200 if (charCodeNdx != -1 && !isMask(initialNdx)) { 1201 isMatch = true; 1202 var bufferTemplateArr = getBufferTemplate().slice(initialNdx, initialNdx + charCodeNdx); 1203 for (var i = 0; i < bufferTemplateArr.length; i++) { 1204 if (bufferTemplateArr[i] != " ") { 1205 isMatch = false; break; 1206 } 1207 } 1208 } 1209 1210 return isMatch; 1211 } 1212 var inputValue = nptvl != undefined ? nptvl.slice() : input._valueGet().split(''), charCodes = "", initialNdx = 0; 1213 resetMaskSet(); 1214 getMaskSet()["p"] = seekNext(-1); 1215 if (writeOut) input._valueSet(""); //initial clear 1216 1217 if (!strict) { 1218 var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(''), matches = inputValue.join('').match(new RegExp(escapeRegex(staticInput), "g")); 1219 if (matches && matches.length > 0) { 1220 inputValue.splice(0, matches.length * staticInput.length); 1221 initialNdx = seekNext(initialNdx); 1222 } 1223 } 1224 1225 1226 $.each(inputValue, function (ndx, charCode) { 1227 var keypress = $.Event("keypress"); 1228 keypress.which = charCode.charCodeAt(0); 1229 charCodes += charCode; 1230 var lvp = getLastValidPosition(undefined, true), lvTest = getMaskSet()["validPositions"][lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : undefined, lvp); 1231 if (!isTemplateMatch() || strict) { 1232 var pos = strict ? ndx : (nextTest["match"].fn == null && nextTest["match"].optionality && (lvp + 1) < getMaskSet()["p"] ? lvp + 1 : getMaskSet()["p"]); 1233 keypressEvent.call(input, keypress, true, false, strict, pos); 1234 initialNdx = pos + 1; 1235 charCodes = ""; 1236 } else { 1237 keypressEvent.call(input, keypress, true, false, true, lvp + 1); 1238 } 1239 1240 }); 1241 if (writeOut) { 1242 writeBuffer(input, getBuffer(), $(input).is(":focus") ? seekNext(getLastValidPosition(0)) : undefined, $.Event("checkval")); 1243 } 1244 } 1245 function escapeRegex(str) { 1246 return $.inputmask.escapeRegex(str); 1247 } 1248 function unmaskedvalue($input) { 1249 if ($input.data('_inputmask') && !$input.hasClass('hasDatepicker')) { 1250 var umValue = [], vps = getMaskSet()["validPositions"]; 1251 for (var pndx in vps) { 1252 if (vps[pndx]["match"] && vps[pndx]["match"].fn != null) { 1253 umValue.push(vps[pndx]["input"]); 1254 } 1255 } 1256 var unmaskedValue = (isRTL ? umValue.reverse() : umValue).join(''); 1257 var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(''); 1258 if ($.isFunction(opts.onUnMask)) { 1259 unmaskedValue = (opts.onUnMask.call($input, bufferValue, unmaskedValue, opts) || unmaskedValue); 1260 } 1261 return unmaskedValue; 1262 } else { 1263 return $input[0]._valueGet(); 1264 } 1265 } 1266 function TranslatePosition(pos) { 1267 if (isRTL && typeof pos == 'number' && (!opts.greedy || opts.placeholder != "")) { 1268 var bffrLght = getBuffer().length; 1269 pos = bffrLght - pos; 1270 } 1271 return pos; 1272 } 1273 1274 function caret(input, begin, end) { 1275 var npt = input.jquery && input.length > 0 ? input[0] : input, range; 1276 if (typeof begin == 'number') { 1277 begin = TranslatePosition(begin);
1278 end = TranslatePosition(end); 1279 end = (typeof end == 'number') ? end : begin; 1280 1281 if (!$(npt).is(":visible")) { 1282 return; 1283 } 1284 1285 var scrollCalc = $(npt).css("font-size").replace("px", "") * end; 1286 npt.scrollLeft = scrollCalc > npt.scrollWidth ? scrollCalc : 0; 1287 if (!androidchrome && opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode 1288 if (npt.setSelectionRange) { 1289 npt.selectionStart = begin; 1290 npt.selectionEnd = end; 1291 } else if (window.getSelection) { 1292 range = document.createRange(); 1293 range.setStart(npt.firstChild, begin < npt._valueGet().length ? begin : npt._valueGet().length); 1294 range.setEnd(npt.firstChild, end < npt._valueGet().length ? end : npt._valueGet().length); 1295 range.collapse(true); 1296 var sel = window.getSelection(); 1297 sel.removeAllRanges(); 1298 sel.addRange(range); 1299 //npt.focus(); 1300 } else if (npt.createTextRange) { 1301 range = npt.createTextRange(); 1302 range.collapse(true); 1303 range.moveEnd('character', end); 1304 range.moveStart('character', begin); 1305 range.select(); 1306 1307 } 1308 } else { 1309 if (npt.setSelectionRange) { 1310 begin = npt.selectionStart; 1311 end = npt.selectionEnd; 1312 } else if (window.getSelection) { 1313 range = window.getSelection().getRangeAt(0); 1314 if (range.commonAncestorContainer.parentNode == npt) { 1315 begin = range.startOffset; 1316 end = range.endOffset; 1317 } 1318 } else if (document.selection && document.selection.createRange) { 1319 range = document.selection.createRange(); 1320 begin = 0 - range.duplicate().moveStart('character', -100000); 1321 end = begin + range.text.length; 1322 } 1323 return { "begin": TranslatePosition(begin), "end": TranslatePosition(end) }; 1324 } 1325 } 1326 function determineLastRequiredPosition(returnDefinition) { 1327 var buffer = getBuffer(), bl = buffer.length, 1328 pos, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet()["validPositions"][lvp], 1329 ndxIntlzr = lvTest != undefined ? lvTest["locator"].slice() : undefined, testPos; 1330 for (pos = lvp + 1; pos < buffer.length; pos++) { 1331 testPos = getTestTemplate(pos, ndxIntlzr, pos - 1); 1332 ndxIntlzr = testPos["locator"].slice(); 1333 positions[pos] = $.extend(true, {}, testPos); 1334 } 1335 1336 var lvTestAlt = lvTest && lvTest.alternation != undefined ? lvTest["locator"][lvTest.alternation] : undefined; 1337 for (pos = bl - 1; pos > lvp; pos--) { 1338 testPos = positions[pos]["match"]; 1339 if ((testPos.optionality || 1340 testPos.optionalQuantifier || 1341 (lvTestAlt && lvTestAlt != positions[pos]["locator"][lvTest.alternation])) 1342 && buffer[pos] == getPlaceholder(pos, testPos)) { 1343 bl--; 1344 } else break; 1345 } 1346 return returnDefinition ? { "l": bl, "def": positions[bl] ? positions[bl]["match"] : undefined } : bl; 1347 } 1348 function clearOptionalTail(buffer) { 1349 var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; 1350 for (; lmib > rl; lmib--) { 1351 if (isMask(lmib)) break; //fixme ismask is not good enough 1352 } 1353 buffer.splice(rl, lmib + 1 - rl); 1354 1355 return buffer 1356 } 1357 function isComplete(buffer) { //return true / false / undefined (repeat *) 1358 if ($.isFunction(opts.isComplete)) return opts.isComplete.call($el, buffer, opts); 1359 if (opts.repeat == "*") return undefined; 1360 var complete = false, lrp = determineLastRequiredPosition(true), aml = seekPrevious(lrp["l"]), lvp = getLastValidPosition(); 1361 1362 if (lrp["def"] == undefined || lrp["def"].newBlockMarker || lrp["def"].optionality || lrp["def"].optionalQuantifier) { 1363 complete = true; 1364 for (var i = 0; i <= aml; i++) { 1365 var mask = isMask(i), test = getTest(i); 1366 if ((mask && getMaskSet()["validPositions"][i] == undefined && test.optionality !== true && test.optionalQuantifier !== true) || (!mask && buffer[i] != getPlaceholder(i))) { 1367 complete = false;
1368 break; 1369 } 1370 } 1371 } 1372 return complete; 1373 } 1374 function isSelection(begin, end) { 1375 return isRTL ? (begin - end) > 1 || ((begin - end) == 1 && opts.insertMode) : 1376 (end - begin) > 1 || ((end - begin) == 1 && opts.insertMode); 1377 } 1378 function installEventRuler(npt) { 1379 var events = $._data(npt).events, 1380 inComposition = false; 1381 1382 $.each(events, function (eventType, eventHandlers) { 1383 $.each(eventHandlers, function (ndx, eventHandler) { 1384 if (eventHandler.namespace == "inputmask") { 1385 if (eventHandler.type != "setvalue") { 1386 var handler = eventHandler.handler; 1387 eventHandler.handler = function (e) { 1388 //console.log("triggered " + e.type); 1389 if (this.disabled || (this.readOnly && !(e.type == "keydown" && e.ctrlKey && e.keyCode == 67))) 1390 e.preventDefault(); 1391 else { 1392 switch (e.type) { 1393 case "input": 1394 if (skipInputEvent === true || inComposition === true) { 1395 skipInputEvent = false; 1396 return e.preventDefault(); 1397 } 1398 break; 1399 case "keydown": 1400 //Safari 5.1.x - modal dialog fires keypress twice workaround 1401 skipKeyPressEvent = false; 1402 inComposition = false; 1403 break; 1404 case "keypress": 1405 if (skipKeyPressEvent === true) 1406 return e.preventDefault(); 1407 skipKeyPressEvent = true; 1408 1409 break; 1410 case "compositionstart": 1411 inComposition = true; 1412 break; 1413 case "compositionupdate": 1414 skipInputEvent = true; 1415 break; 1416 case "compositionend": 1417 inComposition = false; 1418 break; 1419 } 1420 //console.log("executed " + e.type); 1421 return handler.apply(this, arguments); 1422 } 1423 }; 1424 } 1425 } 1426 }); 1427 }); 1428 } 1429 function patchValueProperty(npt) { 1430 var valueGet; 1431 var valueSet; 1432 function PatchValhook(type) { 1433 if ($.valHooks[type] == undefined || $.valHooks[type].inputmaskpatch != true) { 1434 var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) { return elem.value; }; 1435 var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) { 1436 elem.value = value; 1437 return elem; 1438 }; 1439 1440 $.valHooks[type] = { 1441 get: function (elem) { 1442 var $elem = $(elem); 1443 if ($elem.data('_inputmask')) { 1444 if ($elem.data('_inputmask')['opts'].autoUnmask) 1445 return $elem.inputmask('unmaskedvalue'); 1446 else { 1447 var result = valhookGet(elem), 1448 inputData = $elem.data('_inputmask'), 1449 maskset = inputData['maskset'], 1450 bufferTemplate = maskset['_buffer']; 1451 bufferTemplate = bufferTemplate ? bufferTemplate.join('') : ''; 1452 return result != bufferTemplate ? result : ''; 1453 } 1454 } else return valhookGet(elem); 1455 }, 1456 set: function (elem, value) { 1457 var $elem = $(elem), inputData = $elem.data('_inputmask'), result; 1458 result = valhookSet(elem, value); 1459 if (inputData) 1460 $elem.triggerHandler('setvalue.inputmask'); 1461 return result; 1462 }, 1463 inputmaskpatch: true 1464 }; 1465 } 1466 } 1467 function getter() { 1468 var $self = $(this), inputData = $(this).data('_inputmask'); 1469 if (inputData) { 1470 return inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : (valueGet.call(this) != getBufferTemplate().join('') ? valueGet.call(this) : ''); 1471 } else return valueGet.call(this); 1472 } 1473 function setter(value) { 1474 var inputData = $(this).data('_inputmask'); 1475 valueSet.call(this, value); 1476 if (inputData) 1477 $(this).triggerHandler('setvalue.inputmask'); 1478 } 1479 function InstallNativeValueSetFallback(npt) { 1480 $(npt).bind("mouseenter.inputmask", function (event) { 1481 var $input = $(this), input = this, value = input._valueGet(); 1482 if (value != "" && value != getBuffer().join('')) 1483 $input.triggerHandler('setvalue.inputmask'); 1484 }); 1485 //!! the bound handlers are executed in the order they where bound 1486 //reorder the events - the mouseenter event is internally mapped to the mouseover event 1487 var events = $._data(npt).events; 1488 var handlers = events["mouseover"]; 1489 if (handlers) { 1490 var ourHandler = handlers[handlers.length - 1]; 1491 for (var i = handlers.length - 1; i > 0; i--) { 1492 handlers[i] = handlers[i - 1]; 1493 } 1494 handlers[0] = ourHandler; 1495 } 1496 } 1497 1498 if (!npt._valueGet) { 1499 var valueProperty; 1500 if (Object.getOwnPropertyDescriptor && npt.value == undefined) { // && npt.isContentEditable) { 1501 valueGet = function () { 1502 return this.textContent; 1503 } 1504 valueSet = function (value) { 1505 this.textContent = value; 1506 } 1507 1508 Object.defineProperty(npt, "value", { 1509 get: getter, 1510 set: setter 1511 }); 1512 } else if ((valueProperty = (Object.getOwnPropertyDescriptor && Ob
1512ject.getOwnPropertyDescriptor(npt, "value"))) && valueProperty.configurable && false) { //experimental for chrome 1513 npt._value = valueProperty.value; 1514 valueGet = function () { 1515 return this._value || ""; 1516 } 1517 valueSet = function (value) { 1518 this._value = value; 1519 this.select(); 1520 this.setRangeText(value); 1521 this.selectionStart = this.selectionEnd; 1522 } 1523 1524 Object.defineProperty(npt, "value", { 1525 get: getter, 1526 set: setter 1527 }); 1528 } else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) { 1529 valueGet = npt.__lookupGetter__("value"); 1530 valueSet = npt.__lookupSetter__("value"); 1531 1532 npt.__defineGetter__("value", getter); 1533 npt.__defineSetter__("value", setter); 1534 } else { //jquery.val 1535 valueGet = function () { return npt.value; } 1536 valueSet = function (value) { npt.value = value; } 1537 PatchValhook(npt.type); 1538 InstallNativeValueSetFallback(npt); 1539 } 1540 npt._valueGet = function (overruleRTL) { 1541 return isRTL && overruleRTL !== true ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this); 1542 }; 1543 npt._valueSet = function (value) { 1544 valueSet.call(this, isRTL ? value.split('').reverse().join('') : value); 1545 }; 1546 } 1547 } 1548 function handleRemove(input, k, pos, strict) { 1549 function generalize() { 1550 if (opts.keepStatic) { 1551 resetMaskSet(true); 1552 var validInputs = [], 1553 lastAlt, positionsClone = $.extend(true, {}, getMaskSet()["validPositions"]); 1554 //find last alternation 1555 for (lastAlt = getLastValidPosition() ; lastAlt >= 0; lastAlt--) { 1556 var validPos = getMaskSet()["validPositions"][lastAlt]; 1557 if (validPos) { 1558 if (validPos.alternation != undefined && validPos.locator[validPos.alternation] == getTestTemplate(lastAlt).locator[validPos.alternation]) { 1559 break; 1560 } 1561 if (validPos.match.fn != null) 1562 validInputs.push(validPos.input); 1563 delete getMaskSet()["validPositions"][lastAlt]; 1564 } 1565 } 1566 if (lastAlt > 0) { 1567 while (validInputs.length > 0) { 1568 getMaskSet()["p"] = seekNext(getLastValidPosition()); 1569 var keypress = $.Event("keypress"); 1570 keypress.which = validInputs.pop().charCodeAt(0); 1571 keypressEvent.call(input, keypress, true, false, false, getMaskSet()["p"]); 1572 } 1573 } else { 1574 //restore original positions 1575 getMaskSet()["validPositions"] = $.extend(true, {}, positionsClone); 1576 } 1577 } 1578 } 1579 1580 if (opts.numericInput || isRTL) { 1581 if (k == $.inputmask.keyCode.BACKSPACE) 1582 k = $.inputmask.keyCode.DELETE; 1583 else if (k == $.inputmask.keyCode.DELETE) 1584 k = $.inputmask.keyCode.BACKSPACE; 1585 1586 if (isRTL) { 1587 var pend = pos.end; 1588 pos.end = pos.begin; 1589 pos.begin = pend; 1590 } 1591 } 1592 1593 if (k == $.inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || opts.insertMode == false)) 1594 pos.begin = seekPrevious(pos.begin); 1595 else if (k == $.inputmask.keyCode.DELETE && pos.begin == pos.end) 1596 pos.end = isMask(pos.end) ? pos.end + 1 : seekNext(pos.end) + 1; 1597
1598 stripValidPositions(pos.begin, pos.end, false, strict); 1599 if (strict !== true) { 1600 generalize(); //revert the alternation 1601 1602 var lvp = getLastValidPosition(pos.begin); 1603 if (lvp < pos.begin) { 1604 if (lvp == -1) resetMaskSet(); 1605 getMaskSet()["p"] = seekNext(lvp); 1606 } else { 1607 getMaskSet()["p"] = pos.begin; 1608 } 1609 } 1610 } 1611 //postprocessing of the validpositions according to the buffer manipulations 1612 function handleOnKeyResult(input, keyResult, caretPos) { 1613 if (keyResult && keyResult["refreshFromBuffer"]) { 1614 var refresh = keyResult["refreshFromBuffer"]; 1615 refreshFromBuffer(refresh === true ? refresh : refresh["start"], refresh["end"], keyResult["buffer"]); 1616 1617 resetMaskSet(true); 1618 if (caretPos != undefined) { 1619 writeBuffer(input, getBuffer()); 1620 caret(input, keyResult.caret || caretPos.begin, keyResult.caret || caretPos.end); 1621 } 1622 } 1623 } 1624 function keydownEvent(e) { 1625 var input = this, $input = $(input), k = e.keyCode, pos = caret(input); 1626 1627 //backspace, delete, and escape get special treatment 1628 if (k == $.inputmask.keyCode.BACKSPACE || k == $.inputmask.keyCode.DELETE || (iphone && k == 127) || (e.ctrlKey && k == 88 && !isInputEventSupported("cut"))) { //backspace/delete 1629 e.preventDefault(); //stop default action but allow propagation 1630 if (k == 88) undoValue = getBuffer().join(''); 1631 handleRemove(input, k, pos); 1632 writeBuffer(input, getBuffer(), getMaskSet()["p"], e, undoValue != getBuffer().join('')); 1633 if (input._valueGet() == getBufferTemplate().join('')) 1634 $input.trigger('cleared'); 1635 else if (isComplete(getBuffer()) === true) 1636 $input.trigger("complete"); 1637 if (opts.showTooltip) { //update tooltip 1638 $input.prop("title", getMaskSet()["mask"]); 1639 } 1640 } else if (k == $.inputmask.keyCode.END || k == $.inputmask.keyCode.PAGE_DOWN) { //when END or PAGE_DOWN pressed set position at lastmatch 1641 setTimeout(function () { 1642 var caretPos = seekNext(getLastValidPosition()); 1643 if (!opts.insertMode && caretPos == getMaskLength() && !e.shiftKey) caretPos--; 1644 caret(input, e.shiftKey ? pos.begin : caretPos, caretPos); 1645 }, 0); 1646 } else if ((k == $.inputmask.keyCode.HOME && !e.shiftKey) || k == $.inputmask.keyCode.PAGE_UP) { //Home or page_up 1647 caret(input, 0, e.shiftKey ? pos.begin : 0); 1648 } else if (((opts.undoOnEscape && k == $.inputmask.keyCode.ESCAPE) || (k == 90 && e.ctrlKey)) && e.altKey !== true) { //escape && undo && #762 1649 checkVal(input, true, false, undoValue.split('')); 1650 $input.click(); 1651 } else if (k == $.inputmask.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) { //insert 1652 opts.insertMode = !opts.insertMode; 1653 caret(input, !opts.insertMode && pos.begin == getMaskLength() ? pos.begin - 1 : pos.begin); 1654 } else if (opts.insertMode == false && !e.shiftKey) { 1655 if (k == $.inputmask.keyCode.RIGHT) { 1656 setTimeout(function () { 1657 var caretPos = caret(input); 1658 caret(input, caretPos.begin); 1659 }, 0); 1660 } else if (k == $.inputmask.keyCode.LEFT) { 1661 setTimeout(function () { 1662 var caretPos = caret(input); 1663 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1); 1664 }, 0); 1665 } 1666 } 1667 opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts); 1668 ignorable = $.inArray(k, opts.ignorables) != -1; 1669 } 1670 function keypressEvent(e, checkval, writeOut, strict, ndx) { 1671 var input = this, $input = $(input), 1672 k = e.which || e.charCode || e.keyCode; 1673 1674 if (checkval !== true && (!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable))) { 1675 return true; 1676 } else { 1677 if (k) { 1678 //special treat the decimal separator 1679 if (k == 46 && e.shiftKey == false && opts.radixPoint == ",") k = 44; 1680 var pos = checkval ? { begin: ndx, end: ndx } : caret(input), forwardPosition, c = String.fromCharCode(k); 1681 1682 //should we clear a possible selection?? 1683 var isSlctn = isSelection(pos.begin, pos.end); 1684 if (isSlctn) {
1685 getMaskSet()["undoPositions"] = $.extend(true, {}, getMaskSet()["validPositions"]); //init undobuffer for recovery when not valid 1686 handleRemove(input, $.inputmask.keyCode.DELETE, pos, true); 1687 pos.begin = getMaskSet()["p"]; 1688 if (!opts.insertMode) { //preserve some space 1689 opts.insertMode = !opts.insertMode; 1690 setValidPosition(pos.begin, strict); 1691 opts.insertMode = !opts.insertMode; 1692 } 1693 isSlctn = !opts.multi; 1694 } 1695 1696 getMaskSet()["writeOutBuffer"] = true; 1697 var p = isRTL && !isSlctn ? pos.end : pos.begin; 1698 var valResult = isValid(p, c, strict); 1699 if (valResult !== false) { 1700 if (valResult !== true) { 1701 p = valResult.pos != undefined ? valResult.pos : p; //set new position from isValid 1702 c = valResult.c != undefined ? valResult.c : c; //set new char from isValid 1703 } 1704 resetMaskSet(true); 1705 if (valResult.caret != undefined) 1706 forwardPosition = valResult.caret; 1707 else { 1708 var vps = getMaskSet()["validPositions"]; 1709 if (!opts.keepStatic && (vps[p + 1] != undefined && getTests(p + 1, vps[p].locator.slice(), p).length > 1 || vps[p].alternation != undefined)) 1710 forwardPosition = p + 1; 1711 else 1712 forwardPosition = seekNext(p); 1713 } 1714 getMaskSet()["p"] = forwardPosition; //needed for checkval 1715 } 1716 1717 if (writeOut !== false) { 1718 var self = this; 1719 setTimeout(function () { opts.onKeyValidation.call(self, valResult, opts); }, 0); 1720 if (getMaskSet()["writeOutBuffer"] && valResult !== false) { 1721 var buffer = getBuffer(); 1722 writeBuffer(input, buffer, checkval ? undefined : opts.numericInput ? seekPrevious(forwardPosition) : forwardPosition, e, checkval !== true); 1723 if (checkval !== true) { 1724 setTimeout(function () { //timeout needed for IE 1725 if (isComplete(buffer) === true) 1726 $input.trigger("complete"); 1727 }, 0); 1728 } 1729 } else if (isSlctn) { 1730 getMaskSet()["buffer"] = undefined; 1731 getMaskSet()["validPositions"] = getMaskSet()["undoPositions"]; 1732 } 1733 } else if (isSlctn) { 1734 getMaskSet()["buffer"] = undefined; 1735 getMaskSet()["validPositions"] = getMaskSet()["undoPositions"]; 1736 } 1737 1738 if (opts.showTooltip) { //update tooltip 1739 $input.prop("title", getMaskSet()["mask"]); 1740 } 1741 1742 if (checkval && $.isFunction(opts.onBeforeWrite)) { 1743 var result = opts.onBeforeWrite.call(this, e, getBuffer(), forwardPosition, opts); 1744 if (result && result["refreshFromBuffer"]) { 1745 var refresh = result["refreshFromBuffer"]; 1746 refreshFromBuffer(refresh === true ? refresh : refresh["start"], refresh["end"], result["buffer"]); 1747 1748 resetMaskSet(true); 1749 if (result.caret) { 1750 getMaskSet()["p"] = result.caret; 1751 } 1752 } 1753 } 1754 e.preventDefault(); 1755 } 1756 } 1757 } 1758 function pasteEvent(e) { 1759 var input = this, $input = $(input), inputValue = input._valueGet(true), caretPos = caret(input); 1760 //paste event for IE8 and lower I guess ;-) 1761 if (e.type == "propertychange" && input._valueGet().length <= getMaskLength()) { 1762 return true; 1763 } else if (e.type == "paste") { 1764 var valueBeforeCaret = inputValue.substr(0, caretPos.begin), 1765 valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length); 1766 1767 if (valueBeforeCaret == getBufferTemplate().slice(0, caretPos.begin).join('')) valueBeforeCaret = ""; 1768 if (valueAfterCaret == getBufferTemplate().slice(caretPos.end).join('')) valueAfterCaret = ""; 1769 1770 if (window.clipboardData && window.clipboardData.getData) { // IE 1771 inputValue = valueBeforeCaret + window.clipboardData.getData('Text') + valueAfterCaret; 1772 } else if (e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) { 1773 inputValue = valueBeforeCaret + e.originalEvent.clipboardData.getData('text/plain') + valueAfterCaret; 1774 } 1775 } 1776 1777 var pasteValue = inputValue; 1778 if ($.isFunction(opts.onBeforePaste)) { 1779 pasteValue = opts.onBeforePaste.call(input, inputValue, opts); 1780 if (pasteValue === false) { 1781 e.preventDefault(); 1782 return false;
1783 } 1784 if (!pasteValue) 1785 pasteValue = inputValue; 1786 } 1787 checkVal(input, true, false, isRTL ? pasteValue.split('').reverse() : pasteValue.split('')); 1788 $input.click(); 1789 if (isComplete(getBuffer()) === true) 1790 $input.trigger("complete"); 1791 1792 return false; 1793 } 1794 //function mobileInputEvent(e) { 1795 // var input = this; 1796 1797 // //backspace in chrome32 only fires input event - detect & treat 1798 // var caretPos = caret(input), 1799 // currentValue = input._valueGet(); 1800 1801 // currentValue = currentValue.replace(new RegExp("(" + escapeRegex(getBufferTemplate().join('')) + ")*"), ""); 1802 // //correct caretposition for chrome 1803 // if (caretPos.begin > currentValue.length) { 1804 // caret(input, currentValue.length); 1805 // caretPos = caret(input); 1806 // } 1807 // if ((getBuffer().length - currentValue.length) == 1 && currentValue.charAt(caretPos.begin) != getBuffer()[caretPos.begin] 1808 // && currentValue.charAt(caretPos.begin + 1) != getBuffer()[caretPos.begin] 1809 // && !isMask(caretPos.begin)) { 1810 // e.keyCode = $.inputmask.keyCode.BACKSPACE; 1811 // keydownEvent.call(input, e); 1812 // } 1813 // e.preventDefault(); 1814 //} 1815 function inputFallBackEvent(e) { //fallback when keypress & compositionevents fail 1816 var input = this; 1817 checkVal(input, true, false); 1818 1819 if (isComplete(getBuffer()) === true) 1820 $(input).trigger("complete"); 1821 1822 e.preventDefault(); 1823 } 1824 function compositionStartEvent(e) { 1825 var input = this; 1826 undoValue = getBuffer().join(''); 1827 if (compositionData == "" || e.originalEvent.data.indexOf(compositionData) != 0) { 1828 compositionCaretPos = caret(input); 1829 } 1830 } 1831 function compositionUpdateEvent(e) { 1832 var input = this, caretPos = compositionCaretPos || caret(input); 1833 if (e.originalEvent.data.indexOf(compositionData) == 0) { 1834 resetMaskSet(); 1835 caretPos = { begin: 0, end: 0 }; 1836 } 1837 var newData = e.originalEvent.data; 1838 caret(input, caretPos.begin, caretPos.end); 1839 for (var i = 0; i < newData.length; i++) { 1840 var keypress = $.Event("keypress"); 1841 keypress.which = newData.charCodeAt(i); 1842 skipKeyPressEvent = false; 1843 ignorable = false; 1844 keypressEvent.call(input, keypress); //needs update 1845 } 1846 setTimeout(function () { 1847 var forwardPosition = getMaskSet()["p"]; 1848 writeBuffer(input, getBuffer(), opts.numericInput ? seekPrevious(forwardPosition) : forwardPosition); 1849 }, 0); 1850 compositionData = e.originalEvent.data; 1851 } 1852 function compositionEndEvent(e) { 1853 //pickup by inputfallback 1854 } 1855 function mask(el) { 1856 $el = $(el); 1857 if (($el.is(":input") && isInputTypeSupported($el.attr("type"))) || el.isContentEditable || $el.is("div")) { 1858 //store tests & original buffer in the input element - used to get the unmasked value 1859 $el.data('_inputmask', { 1860 'maskset': maskset, 1861 'opts': opts, 1862 'isRTL': false 1863 }); 1864 1865 //show tooltip 1866 if (opts.showTooltip) { 1867 $el.prop("title", getMaskSet()["mask"]); 1868 } 1869 1870 if (el.dir == "rtl" || opts.rightAlign) 1871 $el.css("text-align", "right"); 1872 1873 if (el.dir == "rtl" || opts.numericInput) { 1874 el.dir = "ltr"; 1875 $el.removeAttr("dir"); 1876 var inputData = $el.data('_inputmask'); 1877 inputData['isRTL'] = true; 1878 $el.data('_inputmask', inputData); 1879 isRTL = true; 1880 } 1881 1882 //unbind all events - to make sure that no other mask will interfere when re-masking 1883 $el.unbind(".inputmask"); 1884
1885 if ($el.is(":input") || el.isContentEditable) { 1886 //bind events 1887 $el.closest('form').bind("submit", function (e) { //trigger change on submit if any 1888 if (undoValue != getBuffer().join('')) { 1889 $el.change(); 1890 } 1891 if ($el[0]._valueGet && $el[0]._valueGet() == getBufferTemplate().join('')) { 1892 $el[0]._valueSet(''); //clear masktemplete on submit and still has focus 1893 } 1894 if (opts.removeMaskOnSubmit) { 1895 $el.inputmask("remove"); 1896 } 1897 }).bind('reset', function () { 1898 setTimeout(function () { 1899 $el.triggerHandler('setvalue.inputmask'); 1900 }, 0); 1901 }); 1902 $el.bind("mouseenter.inputmask", function () { 1903 var $input = $(this), input = this; 1904 if (!$input.is(":focus") && opts.showMaskOnHover) { 1905 if (input._valueGet() != getBuffer().join('')) { 1906 writeBuffer(input, getBuffer()); 1907 } 1908 } 1909 }).bind("blur.inputmask", function (e) { 1910 var $input = $(this), input = this; 1911 if ($input.data('_inputmask')) { 1912 var nptValue = input._valueGet(), buffer = getBuffer().slice(); 1913 firstClick = true; 1914 if (undoValue != buffer.join('')) { 1915 setTimeout(function () { //change event should be triggered after the other buffer manipulations on blur 1916 $input.change(); 1917 undoValue = buffer.join(''); 1918 }, 0); 1919 } 1920 if (nptValue != '') { 1921 if (opts.clearMaskOnLostFocus) { 1922 if (nptValue == getBufferTemplate().join('')) 1923 buffer = []; 1924 else { //clearout optional tail of the mask 1925 clearOptionalTail(buffer); 1926 } 1927 } 1928 if (isComplete(buffer) === false) { 1929 $input.trigger("incomplete"); 1930 if (opts.clearIncomplete) { 1931 resetMaskSet(); 1932 if (opts.clearMaskOnLostFocus) 1933 buffer = []; 1934 else { 1935 buffer = getBufferTemplate().slice(); 1936 1937 } 1938 } 1939 } 1940 1941 writeBuffer(input, buffer, undefined, e); 1942 } 1943 } 1944 }).bind("focus.inputmask", function (e) { 1945 var $input = $(this), input = this, nptValue = input._valueGet(); 1946 if (opts.showMaskOnFocus && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue == ''))) { 1947 if (input._valueGet() != getBuffer().join('')) { 1948 writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())); 1949 } 1950 } 1951 undoValue = getBuffer().join(''); 1952 }).bind("mouseleave.inputmask", function () { 1953 var $input = $(this), input = this; 1954 if (opts.clearMaskOnLostFocus) { 1955 var buffer = getBuffer().slice(), nptValue = input._valueGet(); 1956 if (!$input.is(":focus") && nptValue != $input.attr("placeholder") && nptValue != '') { 1957 if (nptValue == getBufferTemplate().join('')) 1958 buffer = []; 1959 else { //clearout optional tail of the mask 1960 clearOptionalTail(buffer); 1961 } 1962 writeBuffer(input, buffer); 1963 } 1964 } 1965 }).bind("click.inputmask", function () { 1966 var $input = $(this), input = this; 1967 if ($input.is(":focus")) { 1968 var selectedCaret = caret(input); 1969 if (selectedCaret.begin == selectedCaret.end) { 1970 if (opts.radixFocus && opts.radixPoint != "" && $.inArray(opts.radixPoint, getBuffer()) != -1 && (firstClick || getBuffer().join('') == getBufferTemplate().join(''))) { 1971 caret(input, $.inArray(opts.radixPoint, getBuffer())); 1972 firstClick = false;
1973 } else { 1974 var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin, 1975 lastPosition = seekNext(getLastValidPosition(clickPosition)); 1976 if (clickPosition < lastPosition) { 1977 caret(input, isMask(clickPosition) ? clickPosition : seekNext(clickPosition)); 1978 } else { 1979 caret(input, lastPosition); 1980 } 1981 } 1982 } 1983 } 1984 }).bind('dblclick.inputmask', function () { 1985 var input = this; 1986 setTimeout(function () { 1987 caret(input, 0, seekNext(getLastValidPosition())); 1988 }, 0); 1989 }).bind(PasteEventType + ".inputmask dragdrop.inputmask drop.inputmask", pasteEvent 1990 ).bind('cut.inputmask', function (e) { 1991 skipInputEvent = true; //stop inputFallback 1992 var input = this, $input = $(input), pos = caret(input); 1993 1994 handleRemove(input, $.inputmask.keyCode.DELETE, pos); 1995 writeBuffer(input, getBuffer(), getMaskSet()["p"], e, undoValue != getBuffer().join('')); 1996 1997 if (input._valueGet() == getBufferTemplate().join('')) 1998 $input.trigger('cleared'); 1999 2000 if (opts.showTooltip) { //update tooltip 2001 $input.prop("title", getMaskSet()["mask"]); 2002 } 2003 }).bind('complete.inputmask', opts.oncomplete 2004 ).bind('incomplete.inputmask', opts.onincomplete 2005 ).bind('cleared.inputmask', opts.oncleared); 2006 2007 $el.bind("keydown.inputmask", keydownEvent 2008 ).bind("keypress.inputmask", keypressEvent); 2009 2010 if (!androidfirefox) { 2011 $el.bind("compositionstart.inputmask", compositionStartEvent 2012 ).bind("compositionupdate.inputmask", compositionUpdateEvent 2013 ).bind("compositionend.inputmask", compositionEndEvent); 2014 } 2015 2016 if (PasteEventType === "paste") { 2017 $el.bind("input.inputmask", inputFallBackEvent); 2018 } 2019 2020 //if (android || androidfirefox || androidchrome || kindle) { 2021 // $el.unbind("input.inputmask"); 2022 // $el.bind("input.inputmask", mobileInputEvent); 2023 //} 2024 } 2025 2026 $el.bind('setvalue.inputmask', function () { 2027 var input = this, value = input._valueGet(); 2028 input._valueSet($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(input, value, opts) || value) : value); 2029 checkVal(input, true, false); 2030 undoValue = getBuffer().join(''); 2031 if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input._valueGet() == getBufferTemplate().join('')) 2032 input._valueSet(''); 2033 }); 2034 2035 patchValueProperty(el); 2036 2037 //apply mask 2038 var initialValue = $.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call(el, el._valueGet(), opts) || el._valueGet()) : el._valueGet(); 2039 checkVal(el, true, false, initialValue.split('')); 2040 var buffer = getBuffer().slice(); 2041 undoValue = buffer.join(''); 2042 // Wrap document.activeElement in a try/catch block since IE9 throw "Unspecified error" if document.activeElement is undefined when we are in an IFrame. 2043 var activeElement; 2044 try { 2045 activeElement = document.activeElement; 2046 } catch (e) { 2047 } 2048 if (isComplete(buffer) === false) { 2049 if (opts.clearIncomplete) 2050 resetMaskSet(); 2051 } 2052 if (opts.clearMaskOnLostFocus) { 2053 if (buffer.join('') == getBufferTemplate().join('')) { 2054 buffer = []; 2055 } else { 2056 clearOptionalTail(buffer); 2057 } 2058 } 2059 writeBuffer(el, buffer); 2060 if (activeElement === el) { //position the caret when in focus 2061 caret(el, seekNext(getLastValidPosition())); 2062 } 2063 2064 installEventRuler(el); 2065 } 2066 } 2067 2068 //action object 2069 if (actionObj != undefined) { 2070 switch (actionObj["action"]) { 2071 case "isComplete": 2072 $el = $(actionObj["el"]); 2073 maskset = $el.data('_inputmask')['maskset']; 2074 opts = $el.data('_inputmask')['opts']; 2075 return isComplete(actionObj["buffer"]); 2076 case "unmaskedvalue": 2077 $el = actionObj["$input"]; 2078 maskset = $el.data('_inputmask')['maskset']; 2079 opts = $el.data('_inputmask')['opts']; 2080 isRTL = actionObj["$input"].data('_inputmask')['isRTL'];
2081 return unmaskedvalue(actionObj["$input"]); 2082 case "mask": 2083 undoValue = getBuffer().join(''); 2084 mask(actionObj["el"]); 2085 break; 2086 case "format": 2087 $el = $({}); 2088 $el.data('_inputmask', { 2089 'maskset': maskset, 2090 'opts': opts, 2091 'isRTL': opts.numericInput 2092 }); 2093 if (opts.numericInput) { 2094 isRTL = true; 2095 } 2096 var valueBuffer = ($.isFunction(opts.onBeforeMask) ? (opts.onBeforeMask.call($el, actionObj["value"], opts) || actionObj["value"]) : actionObj["value"]).split(''); 2097 checkVal($el, false, false, isRTL ? valueBuffer.reverse() : valueBuffer); 2098 $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite.call(this, undefined, getBuffer(), 0, opts); 2099 2100 if (actionObj["metadata"]) { 2101 return { 2102 value: isRTL ? getBuffer().slice().reverse().join('') : getBuffer().join(''), 2103 metadata: $el.inputmask("getmetadata") 2104 } 2105 } 2106 2107 return isRTL ? getBuffer().slice().reverse().join('') : getBuffer().join(''); 2108 case "isValid": 2109 $el = $({}); 2110 $el.data('_inputmask', { 2111 'maskset': maskset, 2112 'opts': opts, 2113 'isRTL': opts.numericInput 2114 }); 2115 if (opts.numericInput) { 2116 isRTL = true; 2117 } 2118 var valueBuffer = actionObj["value"].split(''); 2119 checkVal($el, false, true, isRTL ? valueBuffer.reverse() : valueBuffer); 2120 var buffer = getBuffer(); 2121 var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; 2122 for (; lmib > rl; lmib--) { 2123 if (isMask(lmib)) break; 2124 } 2125 buffer.splice(rl, lmib + 1 - rl); 2126 2127 return isComplete(buffer) && actionObj["value"] == buffer.join(''); 2128 case "getemptymask": 2129 $el = $(actionObj["el"]); 2130 maskset = $el.data('_inputmask')['maskset']; 2131 opts = $el.data('_inputmask')['opts']; 2132 return getBufferTemplate(); 2133 case "remove": 2134 var el = actionObj["el"]; 2135 $el = $(el); 2136 maskset = $el.data('_inputmask')['maskset']; 2137 opts = $el.data('_inputmask')['opts']; 2138 //writeout the unmaskedvalue 2139 el._valueSet(unmaskedvalue($el)); 2140 //unbind all events 2141 $el.unbind(".inputmask"); 2142 //clear data 2143 $el.removeData('_inputmask'); 2144 //restore the value property 2145 var valueProperty; 2146 if (Object.getOwnPropertyDescriptor) 2147 valueProperty = Object.getOwnPropertyDescriptor(el, "value"); 2148 if (valueProperty && valueProperty.get) { 2149 if (el._valueGet) { 2150 Object.defineProperty(el, "value", { 2151 get: el._valueGet, 2152 set: el._valueSet 2153 }); 2154 } 2155 } else if (document.__lookupGetter__ && el.__lookupGetter__("value")) { 2156 if (el._valueGet) { 2157 el.__defineGetter__("value", el._valueGet); 2158 el.__defineSetter__("value", el._valueSet); 2159 } 2160 } 2161 try { //try catch needed for IE7 as it does not supports deleting fns 2162 delete el._valueGet; 2163 delete el._valueSet; 2164 } catch (e) { 2165 el._valueGet = undefined; 2166 el._valueSet = undefined; 2167 2168 } 2169 break; 2170 case "getmetadata": 2171 $el = $(actionObj["el"]); 2172 maskset = $el.data('_inputmask')['maskset']; 2173 opts = $el.data('_inputmask')['opts']; 2174 if ($.isArray(maskset["metadata"])) { 2175 //find last alternation 2176 var alternation, lvp = getLastValidPosition(); 2177 for (var firstAlt = lvp; firstAlt >= 0; firstAlt--) { 2178 if (getMaskSet()["validPositions"][firstAlt] && getMaskSet()["validPositions"][firstAlt].alternation != undefined) { 2179 alternation = getMaskSet()["validPositions"][firstAlt].alternation; 2180 break; 2181 } 2182 } 2183 if (alternation != undefined) { 2184 return maskset["metadata"][getMaskSet()["validPositions"][lvp].locator[alternation]]; 2185 } else return maskset["metadata"][0]; 2186 } 2187 2188 return maskset["metadata"]; 2189 } 2190 } 2191 } 2192 2193 $.inputmask = { 2194 //options default 2195 defaults: { 2196 placeholder: "_", 2197 optionalmarker: { start: "[", end: "]" }, 2198 quantifiermarker: { start: "{", end: "}" }, 2199 groupmarker: { start: "(", end: ")" }, 2200 alternatormarker: "|", 2201 escapeChar: "\\", 2202 mask: null, 2203 oncomplete: $.noop, //executes when the mask is complete 2204 onincomplete: $.noop, //executes when the mask is incomplete and focus is lost 2205 oncleared: $.noop, //executes when the mask is cleared 2206 repeat: 0, //repetitions of the mask: * ~ forever, otherwise specify an integer 2207 greedy: true, //true: allocated buffer for the mask and repetitions - false: allocate only if needed 2208 autoUnmask: false, //automatically unmask when retrieving the value with $.fn.val or value if the browser supports __lookupGetter__ or getOwnPropertyDescriptor 2209 removeMaskOnSubmit: false, //remove the mask before submitting the form. 2210 clearMaskOnLostFocus: true, 2211 insertMode: true, //insert the input or overwrite the input 2212 clearIncomplete: false, //clear the incomplete input on blur 2213 aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js 2214 alias: null, 2215 onKeyDown: $.noop, //callback to implement autocomplete on certain keys for example. args => event, buffer, caretPos, opts 2216 onBeforeMask: undefined, //executes before masking the initial value to allow preprocessing of the initial value. args => initialValue, opts => return processedValue 2217 onBeforePaste: undefined, //executes before masking the pasted value to allow preprocessing of the pasted value. args => pastedValue, opts => return processedValue 2218 onBeforeWrite: undefined, //executes before writing to the masked element. args => event, opts 2219 onUnMask: undefined, //executes after unmasking to allow postprocessing of the unmaskedvalue. args => maskedValue, unmaskedValue, opts 2220 showMaskOnFocus: true, //show the mask-placeholder when the input has focus 2221 showMaskOnHover: true, //show the mask-placeholder when hovering the empty input 2222 onKeyValidation: $.noop, //executes on every key-press with the result of isValid. Params: result, opts 2223 skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask 2224 showTooltip: false, //show the activemask as tooltip 2225 numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position) 2226 rightAlign: false, //align to the right 2227 undoOnEscape: true, //pressing escape reverts the value to the value before focus 2228 //numeric basic properties 2229 radixPoint: "", //".", // | "," 2230 radixFocus: false, //position caret to radixpoint on initial click 2231 //numeric basic properties
2232 nojumps: false, //do not jump over fixed parts in the mask 2233 nojumpsThreshold: 0, //start nojumps as of 2234 keepStatic: undefined, //try to keep the mask static while typing. Decisions to alter the mask will be posponed if possible - undefined see auto selection for multi masks 2235 definitions: { 2236 '9': { 2237 validator: "[0-9]", 2238 cardinality: 1, 2239 definitionSymbol: "*" 2240 }, 2241 'a': { 2242 validator: "[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", 2243 cardinality: 1, 2244 definitionSymbol: "*" 2245 }, 2246 '*': { 2247 validator: "[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", 2248 cardinality: 1 2249 } 2250 }, 2251 //specify keyCodes which should not be considered in the keypress event, otherwise the preventDefault will stop their default behavior especially in FF 2252 ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], 2253 isComplete: undefined, //override for isComplete - args => buffer, opts - return true || false 2254 canClearPosition: $.noop, //hook to alter the clear behavior in the stripValidPositions args => maskset, position, lastValidPosition, opts => return true|false 2255 postValidation: undefined //hook to postValidate the result from isValid. Usefull for validating the entry as a whole. args => buffer, opts => return true/false 2256 }, 2257 keyCode: { 2258 ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, 2259 NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91 2260 }, 2261 masksCache: {}, 2262 escapeRegex: function (str) { 2263 var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^']; 2264 return str.replace(new RegExp('(\\' + specials.join('|\\') + ')', 'gim'), '\\$1'); 2265 }, 2266 format: function (value, options, metadata) { 2267 var opts = $.extend(true, {}, $.inputmask.defaults, options); 2268 resolveAlias(opts.alias, options, opts); 2269 return maskScope({ "action": "format", "value": value, "metadata": metadata }, generateMaskSet(opts, options && options.definitions !== undefined), opts); 2270 }, 2271 isValid: function (value, options) { 2272 var opts = $.extend(true, {}, $.inputmask.defaults, options); 2273 resolveAlias(opts.alias, options, opts); 2274 return maskScope({ "action": "isValid", "value": value }, generateMaskSet(opts, options && options.definitions !== undefined), opts); 2275 } 2276 }; 2277 2278 $.fn.inputmask = function (fn, options) { 2279 function importAttributeOptions(npt, opts, importedOptionsContainer) { 2280 var $npt = $(npt); 2281 if ($npt.data("inputmask-alias")) { 2282 resolveAlias($npt.data("inputmask-alias"), $.extend(true, {}, opts), opts); 2283 } 2284 for (var option in opts) { 2285 var optionData = $npt.data("inputmask-" + option.toLowerCase()); 2286 if (optionData != undefined) { 2287 if (option == "mask" && optionData.indexOf("[") == 0) { 2288 opts[option] = optionData.replace(/[\s[\]]/g, "").split("','"); 2289 opts[option][0] = opts[option][0].replace("'", ""); 2290 opts[option][opts[option].length - 1] = opts[option][opts[option].length - 1].replace("'", ""); 2291 } else 2292 opts[option] = typeof optionData == "boolean" ? optionData : optionData.toString(); 2293 if (importedOptionsContainer) 2294 importedOptionsContainer[option] = opts[option]; 2295 } 2296 } 2297 return opts; 2298 } 2299 var opts = $.extend(true, {}, $.inputmask.defaults, options), 2300 maskset; 2301 2302 if (typeof fn === "string") { 2303 switch (fn) { 2304 case "mask": 2305 resolveAlias(opts.alias, options, opts); 2306 return this.each(function () { 2307 importAttributeOptions(this, opts) 2308 maskset = generateMaskSet(opts, options && options.definitions !== undefined); 2309 if (maskset == undefined) { return this; } 2310 maskScope({ "action": "mask", "el": this }, maskset, opts); 2311 }); 2312 case "unmaskedvalue": 2313 var $input = $(this); 2314 if ($input.data("_inputmask")) { 2315 return maskScope({ "action": "unmaskedvalue", "$input": $input }); 2316 } else return $input.val(); 2317 case "remove": 2318 return this.each(function () { 2319 var $input = $(this); 2320 if ($input.data("_inputmask")) { 2321 maskScope({ "action": "remove", "el": this }); 2322 } 2323 }); 2324 case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation 2325 if (this.data("_inputmask")) { 2326 return maskScope({ "action": "getemptymask", "el": this }); 2327 } 2328 else return ""; 2329 case "hasMaskedValue": //check wheter the returned value is masked or not;
2329 currently only works reliable when using jquery.val fn to retrieve the value 2330 return this.data("_inputmask") ? !this.data("_inputmask")['opts'].autoUnmask : false; 2331 case "isComplete": 2332 if (this.data("_inputmask")) { 2333 return maskScope({ "action": "isComplete", "buffer": this[0]._valueGet().split(''), "el": this }); 2334 } else return true; 2335 case "getmetadata": //return mask metadata if exists 2336 if (this.data("_inputmask")) { 2337 return maskScope({ "action": "getmetadata", "el": this }); 2338 } 2339 else return undefined; 2340 default: 2341 resolveAlias(opts.alias, options, opts); 2342 //check if the fn is an alias 2343 if (!resolveAlias(fn, options, opts)) { 2344 //maybe fn is a mask so we try 2345 //set mask 2346 opts.mask = fn; 2347 } 2348 2349 return this.each(function () { 2350 importAttributeOptions(this, opts); 2351 maskset = generateMaskSet(opts, options && options.definitions !== undefined); 2352 if (maskset == undefined) { return this; } 2353 maskScope({ "action": "mask", "el": this }, maskset, opts); 2354 }); 2355 } 2356 } else if (typeof fn == "object") { 2357 opts = $.extend(true, {}, $.inputmask.defaults, fn); 2358 resolveAlias(opts.alias, fn, opts); //resolve aliases 2359 return this.each(function () { 2360 importAttributeOptions(this, opts); 2361 maskset = generateMaskSet(opts, fn && fn.definitions !== undefined); 2362 if (maskset == undefined) { return this; } 2363 maskScope({ "action": "mask", "el": this }, maskset, opts); 2364 }); 2365 } else if (fn == undefined) { 2366 //look for data-inputmask atribute - the attribute should only contain optipns 2367 return this.each(function () { 2368 var attrOptions = $(this).attr("data-inputmask"); 2369 if (attrOptions && attrOptions != "") { 2370 try { 2371 attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'); 2372 var dataoptions = $.parseJSON("{" + attrOptions + "}"); 2373 $.extend(true, dataoptions, options); 2374 opts = $.extend(true, {}, $.inputmask.defaults, dataoptions); 2375 opts = importAttributeOptions(this, opts); 2376 resolveAlias(opts.alias, dataoptions, opts); 2377 opts.alias = undefined; 2378 $(this).inputmask("mask", opts); 2379 } catch (ex) { } //need a more relax parseJSON 2380 } 2381 if ($(this).attr("data-inputmask-mask") || $(this).attr("data-inputmask-alias")) { 2382 opts = $.extend(true, {}, $.inputmask.defaults, {}); 2383 var dataOptions = {}; 2384 opts = importAttributeOptions(this, opts, dataOptions); 2385 resolveAlias(opts.alias, dataOptions, opts); 2386 opts.alias = undefined; 2387 $(this).inputmask("mask", opts); 2388 } 2389 }); 2390 } 2391 }; 2392 } 2393 return $.fn.inputmask; 2394})(jQuery); 2395$(document).ready(function() { 2396 $('a[href^="http://"]').attr({target:"_blank",title:"Opens in a new window"}); 2397 $('#custom-region-toggle').click(function() { 2398 $('#custom-regions-list').show(); 2399 }); 2400 $('.datepicker').datepicker({dateFormat: "m/d/y"}); 2401 2402 // Member selection 2403 $("#form-recipientcid").change(function(){ 2404 var cid=document.getElementById('form-recipientcid').value; 2405 if (document.getElementById('form-currentcid')) { 2406 var currentcid=document.getElementById('form-currentcid').value; 2407 } 2408 var recipientid=document.getElementById('form-savedrecipientid').value; 2409 $("#form-ccrecipientid").html(""); 2410 $.get("includes/chaptermembers.php", {cid:cid, currentcid:currentcid, recipientid:recipientid}, function(data){ 2411 $("#form-ccrecipientid").html(data); 2412 }); 2413 }); 2414 2415 2416 // select year for referrals submitted on chapter-referrals-submitted.php 2417 $("#year_referrals_submitted_form #form-referralyear").change(function() { 2418 2419 console.log("change"); 2420 2421 $("#year_referrals_submitted_form").submit(); // submit form 2422 2423 }); 2424 2425 2426 // non-member popup 2427 $("#non-member-note").click(function(){ 2428 alert_name = "A Note About Non-Members"; 2429 msg = 'With this online system, Non-Members cannot neither give nor receive referrals. If a Non-Member is responsible for a referral (whether given or received), either wait until they become a member to process the referral (potentially in a subsequent month) or attribute the referrals (whether given or received) to the member responsible for them being at the Chapter.'; 2430 2431 $('#alert_name').html(alert_name); 2432 $('#popup').css({ 2433 'top':'150px', 2434 'width':'600px' 2435 }); 2436 2437 showPopup(msg); 2438 2439 2440 }); 2441 2442 2443 2444 // show non-member info -- referral input 2445 $('form-giverid').change(function() { 2446 2447 if (document.getElementById('form-giverid').value=="Non-Member") { 2448 2449 document.getElementById('form-guestgiver').style.display='block'; 2450 //document.getElementById('form-guestgiver').style.height='90px'; 2451 $("#row-1 > div").css("height","90px"); 2452 2453 } else { 2454 document.getElementById('form-guestgiver').style.display='none'; 2455 document.getElementById('form-givername').value=''; 2456 } 2457 2458 }); 2459 2460 2461 2462 // new member bonus referrals -- newmember-edit.php 2463 $("#form-newmembercid").change(function(){ 2464 var cid=document.getElementById('form-newmembercid').value; 2465 if (document.getElementById('form-currentcid')) { 2466 var currentcid=document.getElementById('form-currentcid').value; 2467 } 2468 var recipientid=document.getElementById('form-savedrecipientid').value; 2469 $("#form-newmembername").html(""); 2470 $.get("includes/chaptermembers.php", {cid:cid, currentcid:currentcid, recipientid:recipientid}, function(data){ 2471 $("#form-newmembername").html(data); 2472 }); 2473 }); 2474 2475 $("#form-referringmembercid").change(function(){ 2476 var cid=document.getElementById('form-referringmembercid').value; 2477 if (document.getElementById('form-currentcid')) { 2478 var currentcid=document.getElementById('form-currentcid').value; 2479 } 2480 var recipientid=document.getElementById('form-savedrecipientid').value; 2481 $("#form-referringmembername").html(""); 2482 $.get("includes/chaptermembers.php", {cid:cid, currentcid:currentcid, recipientid:recipientid}, function(data){ 2483 $("#form-referringmembername").html(data); 2484 }); 2485 }); 2486 2487 $("#form-referringmembername").change(function(){ 2488 var mid=document.getElementById('form-referringmembername').value; 2489 $("#form-referringmembercid").html(""); 2490 $.get("includes/chapterlist.php", {mid:mid}, function(data){ 2491 $("#form-referringmembercid").html(data); 2492 }); 2493 }); 2494 2495 // franchise video swap 2496 var path1 = "http://www.youtube.com/embed/H-r5V1LULWQ"; 2497 var path2 = "http://www.youtube.com/embed/anzt_g26M6Q"; 2498 var path3 = "http://www.youtube.com/embed/ISBvZ4XilFA"; 2499 2500 $('#custom-img-franchise-1').click(function() { 2501 $(this).css('display', 'none');
2502 $('#custom-img-franchise-2').css({'display':'block','margin-top':'0px'}); 2503 $('#custom-img-franchise-3').css({'display':'block','margin-top':'15px'}); 2504 2505 $('#custom-video-franchise-1').show(); 2506 $('#custom-video-franchise-2').hide(); 2507 $('#custom-video-franchise-3').hide(); 2508 2509 $('#custom-video-franchise-1').attr('src', path1+'?autoplay=1'); 2510 $('#custom-video-franchise-2').attr('src', path2); 2511 $('#custom-video-franchise-3').attr('src', path3); 2512 }); 2513 $('#custom-img-franchise-2').click(function() { 2514 $(this).css('display', 'none'); 2515 $('#custom-img-franchise-1').css({'display':'block','margin-top':'0px'}); 2516 $('#custom-img-franchise-3').css({'display':'block','margin-top':'15px'}); 2517 2518 $('#custom-video-franchise-1').hide(); 2519 $('#custom-video-franchise-2').show(); 2520 $('#custom-video-franchise-3').hide(); 2521 2522 $('#custom-video-franchise-1').attr('src', path1); 2523 $('#custom-video-franchise-2').attr('src', path2+'?autoplay=1'); 2524 $('#custom-video-franchise-3').attr('src', path3); 2525 }); 2526 $('#custom-img-franchise-3').click(function() { 2527 $(this).css('display', 'none'); 2528 $('#custom-img-franchise-1').css({'display':'block','margin-top':'0px'}); 2529 $('#custom-img-franchise-2').css({'display':'block','margin-top':'15px'}); 2530 2531 $('#custom-video-franchise-1').hide(); 2532 $('#custom-video-franchise-2').hide(); 2533 $('#custom-video-franchise-3').show(); 2534 2535 $('#custom-video-franchise-1').attr('src', path1); 2536 $('#custom-video-franchise-2').attr('src', path2); 2537 $('#custom-video-franchise-3').attr('src', path3+'?autoplay=1'); 2538 }); 2539 2540 // franchise show Pre-Qualifying Application 2541 $('.custom-preq-link').click(function() { 2542 if ($('#custom-preq-app').css('display') == 'none') { 2543 $('#custom-preq-app').show(); 2544 //return false; 2545 } else { 2546 $('#custom-preq-app').hide(); 2547 return false; 2548 } 2549 }); 2550 2551 2552 2553 2554 2555 // admin-users-edit.php -- if user is a director, show dropdown menu of members 2556 $("#form-usertypeid").change(function() { 2557 var usertypeid=document.getElementById('form-usertypeid').value; 2558 2559 if (usertypeid > 2) { 2560 $("#form-memberid").css("display","block"); 2561 $("label[for='form-memberid']").css("display","block"); 2562 2563 $(".adminusers-firstname").css("display","none"); 2564 $(".adminusers-lastname").css("display","none"); 2565 $("label[for='form-firstname']").css("display","none"); 2566 $("label[for='form-lastname']").css("display","none"); 2567 $("#adminusers-memberemail").css("display","none"); 2568 $(".adminusers-inputemail").css("display","none"); 2569 $("label[for='email']").css("display","none"); 2570 2571 // reset memberid dropdown 2572 $('#form-memberid option:selected').removeAttr('selected'); 2573 2574 $("#form-director-email").css("display","block"); 2575 2576 } else { 2577 $("#form-memberid").css("display","none"); 2578 $("label[for='form-memberid']").css("display","none"); 2579 $("#adminusers-memberemail").css("display","none"); 2580 2581 // show text inputs for first, last name and email if user is an administrator 2582 $(".adminusers-firstname").css("display","block"); 2583 $(".adminusers-lastname").css("display","block"); 2584 $("label[for='form-firstname']").css("display","block"); 2585 $("label[for='form-lastname']").css("display","block"); 2586 $(".adminusers-inputemail").css("display","block"); 2587 $("label[for='email']").css("display","block"); 2588 2589 $("#form-director-email").css("display","none"); 2590 } 2591 2592 }); 2593 2594 // admin-users-edit.php -- get member's email 2595 $("#form-memberid").change(function() { 2596 2597 var id=document.getElementById('form-memberid').value; 2598 2599 $.get("includes/memberemail.php", {id:id}, function(data){ 2600 $("#adminusers-memberemail").css("display","block"); 2601 $("#adminusers-memberemail").html(data); 2602 }); 2603 2604 }); 2605}); 2606 2607function addRecipientDetails() { 2608 document.getElementById('form-recipienttype-2').style.display='none'; 2609 document.getElementById('form-recipienttype-3').style.display='none'; 2610 document.getElementById('form-recipienttype-3b').style.display='none'; 2611 document.getElementById('form-recipienttype-3b1').style.display='none'; 2612 document.getElementById('form-guestname').style.display='none'; 2613 document.getElementById('form-referraltypeid').disabled=false; 2614 $("option[value='3']").removeAttr("disabled"); 2615 $("option[value='4']").removeAttr("disabled"); 2616 if (document.getElementById('form-recipientid').value=='Non-Member') { 2617 document.getElementById('form-recipienttype-2').style.display='block'; 2618 document.getElementById('form-recipientcid').value=''; 2619 document.getElementById('form-ccrecipientid').value=''; 2620 document.getElementById('form-ccrecipientname').value=''; 2621 document.getElementById('form-guesttype').value=''; 2622 document.getElementById('form-personreferred').value=''; 2623 if (document.getElementById('form-referraltypeid').value=='3' || document.getElementById('form-referraltypeid').value=='4') { 2624 document.getElementById('form-referraltypeid').value=''; 2625 } 2626 $("option[value='3']").attr("disabled", "disabled"); 2627 $("option[value='4']").attr("disabled", "disabled"); 2628 } else if (document.getElementById('form-recipientid').value=='Member of Other Chapter') { 2629 document.getElementById('form-recipienttype-3').style.display='block'; 2630 document.getElementById('form-recipienttype-3b').style.display='block'; 2631 if (document.getElementById('form-recipientname')) { 2632 document.getElementById('form-recipientname').value=''; 2633 } 2634 document.getElementById('form-guesttype').value=''; 2635 document.getElementById('form-personreferred').value=''; 2636 document.getElementById('form-referraltypeid').value='3'; 2637 document.getElementById('form-referraltypeid').disabled=true; 2638 } else if (document.getElementById('form-recipientid').value=='AmSpirit Business Connections') { 2639 document.getElementById('form-guestname').style.display='block'; 2640 if (document.getElementById('form-recipientname')) { 2641 document.getElementById('form-recipientname').value=''; 2642 } 2643 document.getElementById('form-recipientcid').value=''; 2644 document.getElementById('form-ccrecipientid').value=''; 2645 document.getElementById('form-ccrecipientname').value=''; 2646 document.getElementById('form-referraltypeid').value='4'; 2647 document.getElementById('form-referraltypeid').disabled=true; 2648 } else if (document.getElementById('form-recipientid').value>0) { 2649 if (document.getElementById('form-recipientname')) { 2650 document.getElementById('form-recipientname').value=''; 2651 } 2652 document.getElementById('form-recipientcid').value=''; 2653 document.getElementById('form-ccrecipientid').value=''; 2654 document.getElementById('form-ccrecipientname').value=''; 2655 document.getElementById('form-guesttype').value=''; 2656 document.getElementById('form-personreferred').value=''; 2657 if (document.getElementById('form-referraltypeid').value=='3' || document.getElementById('form-referraltypeid').value=='4') { 2658 document.getElementById('form-referraltypeid').value=''; 2659 } 2660 $("option[value='3']").attr("disabled", "disabled"); 2661 $("option[value='4']").attr("disabled", "disabled"); 2662 } 2663 2664 2665} 2666 2667function adjustReferralType() { 2668 if (document.getElementById('form-recipientid').value=='AmSpirit Business Connections') { 2669 if (document.getElementById('form-guesttype').value=='Guest Referred to Another Chapter') { 2670 document.getElementById('form-referraltypeid').value='3'; 2671 } else { 2672 document.getElementById('form-referraltypeid').value='4'; 2673 }; 2674 } 2675} 2676 2677function confirmCheckbox(theId) { 2678 var isChecked = document.getElementById(theId).checked; 2679 var confirmAlert = confirm("Are you sure?"); 2680 if (confirmAlert == true) { 2681 if (isChecked) { 2682 document.getElementById(theId).checked = true; 2683 } else { 2684 document.getElementById(theId).checked = false;
2685 } 2686 } else { 2687 document.getElementById(theId).checked = !isChecked; 2688 }; 2689} 2690 2691function confirmLink(theLink, actionItem) { 2692 var is_confirmed=confirm(actionItem); 2693 return is_confirmed; 2694} 2695 2696function confirmDelete(recordName) { 2697 var is_confirmed=confirm('Are you sure you want to delete this ' + recordName + '?'); 2698 return is_confirmed; 2699} 2700 2701function enableReferralType() { 2702 document.getElementById('form-referraltypeid').disabled=false; 2703} 2704 2705function openSearch() { 2706 if (document.getElementById('admin-search').style.display=='none' || document.getElementById('admin-search').style.display=='') { 2707 document.getElementById('admin-search').style.display='block'; 2708 document.getElementById('admin-search-toggle').innerHTML='Hide Search'; 2709 } else { 2710 document.getElementById('admin-search').style.display='none'; 2711 document.getElementById('admin-search-toggle').innerHTML='Search'; 2712 } 2713} 2714 2715// New Referral Ticket functions 2716 2717function toggleRecipientChapter() { 2718 if (document.getElementById('form_outbound').value=="2") { 2719 document.getElementById('form-recipienttype-3b1').style.display='block'; 2720 } else { 2721 document.getElementById('form-recipienttype-3b1').style.display='none'; 2722 } 2723} 2724 2725function toggleNewRecipientName() { 2726 if (document.getElementById('form-recipientid').value=='Non-Member' || document.getElementById('form-ccrecipientid').value=='Non-Member') { 2727 document.getElementById('form-recipienttype-3b1').style.display='block'; 2728 2729 } 2730} 2731 2732 2733 2734/*function toggleCCRecipient() { 2735 if (document.getElementById('form-ccrecipientid').value=="Non-Member") { 2736 document.getElementById('form-recipienttype-3').style.display='block'; 2737 } else { 2738 document.getElementById('form-recipienttype-3').style.display='none'; 2739 } 2740}*/ 2741 2742function toggleGiver() { 2743 if (document.getElementById('form-giverid').value=="Non-Member") { 2744 document.getElementById('form-guestgiver').style.display='block'; 2745 } else { 2746 document.getElementById('form-guestgiver').style.display='none'; 2747 document.getElementById('form-givername').value=''; 2748 } 2749} 2750 2751function togglePaymentFields() { 2752 if (document.getElementById('form-billingmethod').value=="Auto Pay") { 2753 if (document.getElementById('form-nextinvoicedate').value=="") { 2754 document.getElementById('invoice-fields').style.display='none'; 2755 } 2756 document.getElementById('autopay-fields').style.display='block'; 2757 } else if (document.getElementById('form-billingmethod').value=="Invoice") { 2758 if (document.getElementById('form-nextchargedate').value=="" && document.getElementById('form-lastfour').value=="" && document.getElementById('form-expiration').value=="") { 2759 document.getElementById('autopay-fields').style.display='none'; 2760 } 2761 document.getElementById('invoice-fields').style.display='block'; 2762 } else { 2763 if (document.getElementById('form-nextinvoicedate').value=="") { 2764 document.getElementById('invoice-fields').style.display='none'; 2765 } 2766 if (document.getElementById('form-nextchargedate').value=="" && document.getElementById('form-lastfour').value=="" && document.getElementById('form-expiration').value=="") { 2767 document.getElementById('autopay-fields').style.display='none'; 2768 } 2769 } 2770} 2771 2772function newTicketToggleGiver() { 2773 if (document.getElementById('form-giverid').value=="Non-Member") { 2774 document.getElementById('form-guestgiver').style.display='block'; 2775 //document.getElementById('form-guestgiver').style.height='90px'; 2776 $("#row-1 > div").css("height","90px"); 2777 } else { 2778 document.getElementById('form-guestgiver').style.display='none'; 2779 document.getElementById('form-givername').value=''; 2780 } 2781} 2782 2783function newTicketDisplayQualifiedReferral() { 2784 $("#display-qualified-referral").show(); // show area with qualified referral form inputs 2785 $("#display-guest-referral").hide(); // hide area with guest referral form inputs 2786 $("#type-qualified-referral").css({"color":"#cc0000","font-weight":"bold"}); // change style of selected button 2787 $("#type-guest-referral").css({"color":"#000000","font-weight":"normal"}); // revert style of nonselected button 2788 $("#display-placeholder").hide(); // hide placeholder message 2789 2790 // reset qualified referral form data 2791 $('#form_referraltypeid_1').attr('checked', false); 2792 $('#form_referraltypeid_2').attr('checked', false); 2793 $('#form_inbound').attr('checked', false); 2794 $('#form_outbound').attr('checked', false); 2795 $('#form-recipientcid option:selected').prop('selected', false); 2796 $('#form-recipientid option:selected').prop('selected', false); 2797 $('#form-ccrecipientid option:selected').prop('selected', false); 2798 $('#form-recipienttype-3').hide(); 2799 $('#form-recipientid').hide(); 2800 $('#form-ccrecipientid').hide(); 2801 $('#receivingmember p').show(); 2802 $("#form-recipientid-allmembers").show(); // show all members dropdown 2803 $('#form-recipientid-allmembers option:selected').prop('selected', false); 2804 $("#form-recipientname").val(""); 2805 $("#form-recipienttype-3b1").hide(); 2806 2807 // reset Chapter Guest form data 2808 $('#form_inbound_guest').attr('checked', false); 2809 $('#form_outbound_guest').attr('checked', false); 2810 $('#form-chapter-guest-select option:selected').prop('selected', false); 2811 $("#form_guest_name").val(""); 2812 $("#form_guest_email").val(""); 2813} 2814 2815function newTicketDisplayGuestReferral() { 2816 $("#display-qualified-referral").hide(); // hide area with qualified referral form inputs 2817 $("#display-guest-referral").show(); // show area with guest referral form inputs 2818 $("#type-guest-referral").css({"color":"#cc0000","font-weight":"bold"}); // change style of selected button 2819 $("#type-qualified-referral").css({"color":"#000000","font-weight":"normal"}); // revert style of nonselected button 2820 $("#display-placeholder").hide(); // hide placeholder message 2821 2822 // reset Chapter Guest form data 2823 $('#form_inbound_guest').attr('checked', false); 2824 $('#form_outbound_guest').attr('checked', false); 2825 $('#form-chapter-guest-select option:selected').prop('selected', false); 2826 $("#form_guest_name").val(""); 2827 $("#form_guest_email").val(""); 2828 2829 // reset qualified referral form data 2830 $('#form_referraltypeid_1').attr('checked', false); 2831 $('#form_referraltypeid_2').attr('checked', false); 2832 $('#form_inbound').attr('checked', false); 2833 $('#form_outbound').attr('checked', false); 2834 $('#form-recipientcid option:selected').prop('selected', false); 2835 $('#form-recipientid option:selected').prop('selected', false); 2836 $('#form-ccrecipientid option:selected').prop('selected', false); 2837 $('#form-recipienttype-3').hide(); 2838 $('#form-recipientid').hide(); 2839 $('#form-ccrecipientid').hide(); 2840 $('#receivingmember p').show(); 2841} 2842 2843 2844 2845function toggleMembers() { 2846 if (document.getElementById('form-recipientcid').value>0) { 2847 document.getElementById('form-recipienttype-3b').style.display='block'; 2848 } else { 2849 document.getElementById('form-recipienttype-3b').style.display='none'; 2850 } 2851} 2852
2853function newTicketShowCrossChaptersGuest() { 2854 $("#form-chapter-guest").show(); 2855} 2856 2857function newTicketShowHomeMembersGuest() { 2858 $("#form-chapter-guest").hide(); 2859} 2860 2861function newTicketShowHomeMembers() { 2862 $("#receivingmember p").hide(); // hide message 2863 $("#form-recipientid-allmembers").hide(); // hide all members dropdown 2864 $("#form-recipientid").show(); // show home Chapter members 2865 $('#form-recipientid option:selected').prop('selected', false); // clear out data 2866 $("#form-ccrecipientid").hide(); // hide cross Chapter members 2867 $("#form-recipienttype-3").hide(); // hide cross Chapter choice 2868 $("#form-ccrecipientid").hide(); // hide cross Chapter members 2869 $("#form-recipientname").val(""); 2870 $('#form-recipientid-allmembers option:selected').prop('selected', false); // clear out data 2871 $("#form-recipienttype-3b1").hide(); 2872 2873} 2874 2875function newTicketShowCrossChapters() { 2876 $("#receivingmember p").show(); // show message 2877 $("#form-recipientid").hide(); // hide home Chapter members 2878 $("#form-recipienttype-3").show(); // show Chapter choice 2879 $('#form-recipienttype-3 option:selected').prop('selected', false); // clear out data 2880 $("#form-recipientid-allmembers").show(); // all members dropdown 2881 $('#form-recipientid-allmembers option:selected').prop('selected', false); // clear out data 2882 $('#form-ccrecipientid').hide(); 2883 $("#form-recipientname").val(""); 2884 $("#form-recipienttype-3b1").hide(); 2885 2886} 2887 2888function newTicketShowCrossChapterMembers() { 2889 $("#receivingmember p").hide(); // hide message 2890 $("#form-ccrecipientid").show(); // show cross Chapter members 2891 $("#form-recipientid-allmembers").hide(); // hide all members dropdown 2892 2893} 2894 2895function newTicketMemberSelectedUpdateChapter(homeChapter) { 2896 // find the member's chapter 2897 var memberinfo = $("#form-recipientid-allmembers option:selected").val(); // get member data 2898 var memberinfoarray = memberinfo.split('['); // separate member data 2899 var memberid = memberinfoarray[0]; // member's ID 2900 var membercid = memberinfoarray[1].slice(0,-1); // member's chapter 2901 2902 2903 // change the "within Home chapter" or "cross chapter" selection 2904 if (homeChapter == membercid) { 2905 $("#form_inbound").prop("checked", true); 2906 2907 } else { 2908 $("#form_outbound").prop("checked", true); 2909 2910 // show cross chapters dropdown 2911 $("#form-recipientid").hide(); // hide home Chapter members 2912 $("#form-recipienttype-3").show(); // show Chapter choice 2913 2914 $("#form-recipientcid option[value="+membercid+"]").prop('selected', true); // select correct cross Chapter 2915 } 2916} 2917 2918function toggleRecipient() { 2919 document.getElementById('form-recipienttype-1').style.display='none'; 2920 document.getElementById('form-recipienttype-2').style.display='none'; 2921 document.getElementById('form-recipienttype-3').style.display='none'; 2922 document.getElementById('form-recipienttype-3b').style.display='none'; 2923 document.getElementById('form-recipienttype-3b1').style.display='none'; 2924 document.getElementById('form-guestname').style.display='none'; 2925 document.getElementById('form-referraltypeid').value=''; 2926 document.getElementById('form-referraltypeid').disabled=false; 2927 if (document.getElementById('form-recipienttype').value==1) { 2928 document.getElementById('form-recipienttype-1').style.display='block'; 2929 if (document.getElementById('form-recipientname')) { 2930 document.getElementById('form-recipientname').value=''; 2931 } 2932 document.getElementById('form-recipientcid').value=''; 2933 document.getElementById('form-ccrecipientid').value=''; 2934 document.getElementById('form-ccrecipientname').value=''; 2935 document.getElementById('form-guesttype').value=''; 2936 document.getElementById('form-personreferred').value=''; 2937 } else if (document.getElementById('form-recipienttype').value==2) { 2938 document.getElementById('form-recipienttype-2').style.display='block'; 2939 document.getElementById('form-recipientid').value=''; 2940 document.getElementById('form-recipientcid').value=''; 2941 document.getElementById('form-ccrecipientid').value=''; 2942 document.getElementById('form-ccrecipientname').value=''; 2943 document.getElementById('form-guesttype').value=''; 2944 document.getElementById('form-personreferred').value=''; 2945 } else if (document.getElementById('form-recipienttype').value==3) { 2946 document.getElementById('form-recipienttype-3').style.display='block'; 2947 document.getElementById('form-recipientid').value=''; 2948 if (document.getElementById('form-recipientname')) { 2949 document.getElementById('form-recipientname').value=''; 2950 } 2951 document.getElementById('form-guesttype').value=''; 2952 document.getElementById('form-personreferred').value=''; 2953 document.getElementById('form-referraltypeid').value='3'; 2954 document.getElementById('form-referraltypeid').disabled=true; 2955 } else if (document.getElementById('form-recipienttype').value==4) { 2956 document.getElementById('form-guestname').style.display='block'; 2957 document.getElementById('form-recipientid').value=''; 2958 if (document.getElementById('form-recipientname')) { 2959 document.getElementById('form-recipientname').value=''; 2960 } 2961 document.getElementById('form-recipientcid').value=''; 2962 document.getElementById('form-ccrecipientid').value=''; 2963 document.getElementById('form-ccrecipientname').value=''; 2964 document.getElementById('form-referraltypeid').value='4'; 2965 document.getElementById('form-referraltypeid').disabled=true; 2966 } 2967} 2968 2969function toggleRecipientType() { 2970 if ((document.getElementById('form-referraltypeid').value=='1' || document.getElementById('form-referraltypeid').value=='2') && (document.getElementById('form-recipienttype').value=='3' || document.getElementById('form-recipienttype').value=='4')) { 2971 document.getElementById('form-guestname').style.display='none'; 2972 document.getElementById('form-recipienttype').value=''; 2973 document.getElementById('form-guesttype').value=''; 2974 document.getElementById('form-personreferred').value=''; 2975 } else if (document.getElementById('form-referraltypeid').value=='3' || document.getElementById('form-referraltypeid').value=='4') { 2976 document.getElementById('form-recipienttype-1').style.display='none'; 2977 document.getElementById('form-recipienttype-2').style.display='none'; 2978 document.getElementById('form-guestname').style.display='none'; 2979 document.getElementById('form-recipientid').value=''; 2980 if (document.getElementById('form-recipientname')) { 2981 document.getElementById('form-recipientname').value=''; 2982 } 2983 document.getElementById('form-guesttype').value=''; 2984 document.getElementById('form-personreferred').value=''; 2985 if (document.getElementById('form-referraltypeid').value=='3') { 2986 document.getElementById('form-recipienttype').value=3; 2987 } else if (document.getElementById('form-referraltypeid').value=='4') { 2988 document.getElementById('form-recipienttype-3b').style.display='none'; 2989 document.getElementById('form-recipienttype-3b1').style.display='none'; 2990 document.getElementById('form-guestname').style.display='block'; 2991 document.getElementById('form-recipientcid').value=''; 2992 document.getElementById('form-ccrecipientid').value=''; 2993 document.getElementById('form-ccrecipientname').value=''; 2994 document.getElementById('form-recipienttype').value=4; 2995 } 2996 } 2997} 2998 2999function toggleReferralType() { 3000 if ((document.getElementById('form-referraltypeid').value=='1' || document.getElementById('form-referraltypeid').value=='2') && (document.getElementById('form-recipientid').value=='Member of Other Chapter' || document.getElementById('form-recipientid').value=='AmSpirit Business Connections')) { 3001 document.getElementById('form-recipienttype-3').style.display='none'; 3002 document.getElementById('form-recipienttype-3b').style.display='none'; 3003 document.getElementById('form-recipienttype-3b1').style.display='none'; 3004 document.getElementById('form-guestname').style.display='none'; 3005 document.getElementById('form-recipientid').value=''; 3006 document.getElementById('form-recipientcid').value=''; 3007 document.getElementById('form-ccrecipientid').value=''; 3008 document.getElementById('form-ccrecipientname').value=''; 3009 document.getElementById('form-guesttype').value=''; 3010 document.getElementById('form-personreferred').value=''; 3011 } else if (document.getElementById('form-referraltypeid').value=='3' || document.getElementById('form-referraltypeid').value=='4') { 3012 document.getElementById('form-recipienttype-2').style.display='none'; 3013 document.getElementById('form-guestname').style.display='none'; 3014 if (document.getElementById('form-recipientname')) { 3015 document.getElementById('form-recipientname').value=''; 3016 } 3017 document.getElementById('form-guesttype').value=''; 3018 document.getElementById('form-personreferred').value=''; 3019 if (document.getElementById('form-referraltypeid').value=='3') { 3020 document.getElementById('form-recipienttype-3').style.display='block'; 3021 document.getElementById('form-recipienttype-3b').style.display='block'; 3022 document.getElementById('form-recipientid').value='Member of Other Chapter'; 3023 } else if (document.getElementById('form-referraltypeid').value=='4') { 3024 document.getElementById('form-recipienttype-3').style.display='none'; 3025 document.getElementById('form-recipienttype-3b').style.display='none'; 3026 document.getElementById('form-recipienttype-3b1').style.display='none'; 3027 document.getElementById('form-guestname').style.display='block'; 3028 document.getElementById('form-recipientid').value='AmSpirit Business Connections'; 3029 document.getElementById('form-recipientcid').value=''; 3030 document.getElementById('form-ccrecipientid').value=''; 3031 document.getElementById('form-ccrecipientname').value=''; 3032 } 3033 } 3034} 3035 3036function toggleSecondary($ii) { 3037 var v=document.getElementById('form-primary').value; 3038 var s='form-secondary-'+v; 3039 var div=''; 3040 for (var i=1; i<=$ii; i++) { 3041 div='form-secondary-'+i; 3042 document.getElementById(div).style.display='none'; 3043 document.getElementById(div).disabled=true; 3044 } 3045 if (v>0) { 3046 document.getElementById('secondary-row').style.color='#363636'; 3047 } else { 3048 document.getElementById('secondary-row').style.color='#ffffff'; 3049 } 3050 document.getElementById(s).style.display='block'; 3051 document.getElementById(s).disabled=false; 3052} 3053 3054function training() { 3055 if (document.getElementById('trainingtype').value=="Other") { 3056 document.getElementById('trainingtext').style.display='block'; 3057 } else { 3058 document.getElementById('trainingtext').style.display='none'; 3059 } 3060} 3061 3062function search(which,value) { 3063 location.href='directorcontacts-new.php?' + which + '=' + value; 3064} 3065 3066function submitMonthlyReferrals(){ 3067 var decision = window.confirm("This will notify AmSpirit Business Connections HQ that you have entered all your Chapter referrals for the month and that they can now put together your Chapter's Performance Report.") 3068 3069 if (decision == true) { 3070 document.getElementByID("submit-monthly-referrals").submit(); 3071 } else { 3072 return false;
3073 } 3074} 3075 3076function exitAddReferralPage(){ 3077 var decision = window.confirm("Are you finished submitting the referrals for this month? If so, click 'OK' to notify AmSpirit HQ to produce your Chapter's Performance Report.") 3078 3079 if (decision == true) { 3080 document.getElementById("input_submitmonthlyreferrals").value = "monthly-true"; 3081 return true; 3082 } else { 3083 document.getElementById("input_submitmonthlyreferrals").value = "monthly-false"; 3084 return true; 3085 } 3086} 3087$(document).ready(function () { 3088 $('a[href^="http"]').not('a[href*=amspirit]').attr('target', '_blank'); 3089});
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.