\").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,\"position\"),l=m(a),n={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=m.css(a,\"top\"),i=m.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&m.inArray(\"auto\",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),\"using\"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return\"fixed\"===m.css(d,\"position\")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],\"html\")||(c=a.offset()),c.top+=m.css(a[0],\"borderTopWidth\",!0),c.left+=m.css(a[0],\"borderLeftWidth\",!0)),{top:b.top-c.top-m.css(d,\"marginTop\",!0),left:b.left-c.left-m.css(d,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,\"html\")&&\"static\"===m.css(a,\"position\"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each([\"top\",\"left\"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+\"px\":c):void 0})}),m.each({Height:\"height\",Width:\"width\"},function(a,b){m.each({padding:\"inner\"+a,content:b,\"\":\"outer\"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||\"boolean\"!=typeof d),g=c||(d===!0||e===!0?\"margin\":\"border\");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement[\"client\"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body[\"scroll\"+a],e[\"scroll\"+a],b.body[\"offset\"+a],e[\"offset\"+a],e[\"client\"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});\r\n","/*!\r\n * jQuery Cookie Plugin v1.4.1\r\n * https://github.com/carhartl/jquery-cookie\r\n *\r\n * Copyright 2006, 2014 Klaus Hartl\r\n * Released under the MIT license\r\n */\r\n(function (factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD (Register as an anonymous module)\r\n\t\tdefine(['jquery'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// Node/CommonJS\r\n\t\tmodule.exports = factory(require('jquery'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($) {\r\n\r\n\tvar pluses = /\\+/g;\r\n\r\n\tfunction encode(s) {\r\n\t\treturn config.raw ? s : encodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction decode(s) {\r\n\t\treturn config.raw ? s : decodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction stringifyCookieValue(value) {\r\n\t\treturn encode(config.json ? JSON.stringify(value) : String(value));\r\n\t}\r\n\r\n\tfunction parseCookieValue(s) {\r\n\t\tif (s.indexOf('\"') === 0) {\r\n\t\t\t// This is a quoted cookie as according to RFC2068, unescape...\r\n\t\t\ts = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// Replace server-side written pluses with spaces.\r\n\t\t\t// If we can't decode the cookie, ignore it, it's unusable.\r\n\t\t\t// If we can't parse the cookie, ignore it, it's unusable.\r\n\t\t\ts = decodeURIComponent(s.replace(pluses, ' '));\r\n\t\t\treturn config.json ? JSON.parse(s) : s;\r\n\t\t} catch(e) {}\r\n\t}\r\n\r\n\tfunction read(s, converter) {\r\n\t\tvar value = config.raw ? s : parseCookieValue(s);\r\n\t\treturn $.isFunction(converter) ? converter(value) : value;\r\n\t}\r\n\r\n\tvar config = $.cookie = function (key, value, options) {\r\n\r\n\t\t// Write\r\n\r\n\t\tif (arguments.length > 1 && !$.isFunction(value)) {\r\n\t\t\toptions = $.extend({}, config.defaults, options);\r\n\r\n\t\t\tif (typeof options.expires === 'number') {\r\n\t\t\t\tvar days = options.expires, t = options.expires = new Date();\r\n\t\t\t\tt.setMilliseconds(t.getMilliseconds() + days * 864e+5);\r\n\t\t\t}\r\n\r\n\t\t\treturn (document.cookie = [\r\n\t\t\t\tencode(key), '=', stringifyCookieValue(value),\r\n\t\t\t\toptions.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\r\n\t\t\t\toptions.path ? '; path=' + options.path : '',\r\n\t\t\t\toptions.domain ? '; domain=' + options.domain : '',\r\n\t\t\t\toptions.secure ? '; secure' : ''\r\n\t\t\t].join(''));\r\n\t\t}\r\n\r\n\t\t// Read\r\n\r\n\t\tvar result = key ? undefined : {},\r\n\t\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t\t// calling $.cookie().\r\n\t\t\tcookies = document.cookie ? document.cookie.split('; ') : [],\r\n\t\t\ti = 0,\r\n\t\t\tl = cookies.length;\r\n\r\n\t\tfor (; i < l; i++) {\r\n\t\t\tvar parts = cookies[i].split('='),\r\n\t\t\t\tname = decode(parts.shift()),\r\n\t\t\t\tcookie = parts.join('=');\r\n\r\n\t\t\tif (key === name) {\r\n\t\t\t\t// If second argument (value) is a function it's a converter...\r\n\t\t\t\tresult = read(cookie, value);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// Prevent storing a cookie that we couldn't decode.\r\n\t\t\tif (!key && (cookie = read(cookie)) !== undefined) {\r\n\t\t\t\tresult[name] = cookie;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\tconfig.defaults = {};\r\n\r\n\t$.removeCookie = function (key, options) {\r\n\t\t// Must not alter options, thus extending a fresh object...\r\n\t\t$.cookie(key, '', $.extend({}, options, { expires: -1 }));\r\n\t\treturn !$.cookie(key);\r\n\t};\r\n\r\n}));\r\n","// jQuery Mask Plugin v1.11.4\r\n// github.com/igorescobar/jQuery-Mask-Plugin\r\n(function(b){\"function\"===typeof define&&define.amd?define([\"jquery\"],b):\"object\"===typeof exports?module.exports=b(require(\"jquery\")):b(jQuery||Zepto)})(function(b){var y=function(a,d,e){a=b(a);var g=this,k=a.val(),l;d=\"function\"===typeof d?d(a.val(),void 0,a,e):d;var c={invalid:[],getCaret:function(){try{var q,v=0,b=a.get(0),f=document.selection,c=b.selectionStart;if(f&&-1===navigator.appVersion.indexOf(\"MSIE 10\"))q=f.createRange(),q.moveStart(\"character\",a.is(\"input\")?-a.val().length:-a.text().length),\r\nv=q.text.length;else if(c||\"0\"===c)v=c;return v}catch(d){}},setCaret:function(q){try{if(a.is(\":focus\")){var b,c=a.get(0);c.setSelectionRange?c.setSelectionRange(q,q):c.createTextRange&&(b=c.createTextRange(),b.collapse(!0),b.moveEnd(\"character\",q),b.moveStart(\"character\",q),b.select())}}catch(f){}},events:function(){a.on(\"keyup.mask\",c.behaviour).on(\"paste.mask drop.mask\",function(){setTimeout(function(){a.keydown().keyup()},100)}).on(\"change.mask\",function(){a.data(\"changed\",!0)}).on(\"blur.mask\",\r\nfunction(){k===a.val()||a.data(\"changed\")||a.triggerHandler(\"change\");a.data(\"changed\",!1)}).on(\"keydown.mask, blur.mask\",function(){k=a.val()}).on(\"focus.mask\",function(a){!0===e.selectOnFocus&&b(a.target).select()}).on(\"focusout.mask\",function(){e.clearIfNotMatch&&!l.test(c.val())&&c.val(\"\")})},getRegexMask:function(){for(var a=[],b,c,f,e,h=0;h\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),\"identifier\",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(d){b[d]=c?a.CSS.supports(\"touch-action\",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?\"cancel\":a&qb?\"end\":a&pb?\"move\":a&ob?\"start\":\"\"}function $(a){return a==Ma?\"down\":a==La?\"up\":a==Ja?\"left\":a==Ka?\"right\":\"\"}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||\"\"}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent(\"Event\");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],na=b.createElement(\"div\"),oa=\"function\",pa=Math.round,qa=Math.abs,ra=Date.now;la=\"function\"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var b=Object(a),c=1;ch&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a=\"touchstart\",_a=\"touchstart touchmove touchend touchcancel\";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb=\"touchstart touchmove touchend touchcancel\";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,\"touchAction\"),fb=eb!==d,gb=\"compute\",hb=\"auto\",ib=\"manipulation\",jb=\"none\",kb=\"pan-x\",lb=\"pan-y\",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(\" \"))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,\"recognizeWith\",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,\"dropRecognizeWith\",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,\"requireFailure\",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,\"dropRequireFailure\",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;af?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?\"in\":\"out\";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+\"up\",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance -1 ) {\r\n\t\tprops = mouseEventProps;\r\n\t}\r\n\r\n\t// copy original event properties over to the new event\r\n\t// this would happen if we could call $.event.fix instead of $.Event\r\n\t// but we don't have a way to force an event to be fixed multiple times\r\n\tif ( oe ) {\r\n\t\tfor ( i = props.length, prop; i; ) {\r\n\t\t\tprop = props[ --i ];\r\n\t\t\tevent[ prop ] = oe[ prop ];\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure that if the mouse and click virtual events are generated\r\n\t// without a .which one is defined\r\n\tif ( t.search(/mouse(down|up)|click/) > -1 && !event.which ) {\r\n\t\tevent.which = 1;\r\n\t}\r\n\r\n\tif ( t.search(/^touch/) !== -1 ) {\r\n\t\tne = getNativeEvent( oe );\r\n\t\tt = ne.touches;\r\n\t\tct = ne.changedTouches;\r\n\t\ttouch = ( t && t.length ) ? t[0] : ( ( ct && ct.length ) ? ct[ 0 ] : undefined );\r\n\r\n\t\tif ( touch ) {\r\n\t\t\tfor ( j = 0, len = touchEventProps.length; j < len; j++) {\r\n\t\t\t\tprop = touchEventProps[ j ];\r\n\t\t\t\tevent[ prop ] = touch[ prop ];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn event;\r\n}\r\n\r\nfunction getVirtualBindingFlags( element ) {\r\n\r\n\tvar flags = {},\r\n\t\tb, k;\r\n\r\n\twhile ( element ) {\r\n\r\n\t\tb = $.data( element, dataPropertyName );\r\n\r\n\t\tfor ( k in b ) {\r\n\t\t\tif ( b[ k ] ) {\r\n\t\t\t\tflags[ k ] = flags.hasVirtualBinding = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telement = element.parentNode;\r\n\t}\r\n\treturn flags;\r\n}\r\n\r\nfunction getClosestElementWithVirtualBinding( element, eventType ) {\r\n\tvar b;\r\n\twhile ( element ) {\r\n\r\n\t\tb = $.data( element, dataPropertyName );\r\n\r\n\t\tif ( b && ( !eventType || b[ eventType ] ) ) {\r\n\t\t\treturn element;\r\n\t\t}\r\n\t\telement = element.parentNode;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nfunction enableTouchBindings() {\r\n\tblockTouchTriggers = false;\r\n}\r\n\r\nfunction disableTouchBindings() {\r\n\tblockTouchTriggers = true;\r\n}\r\n\r\nfunction enableMouseBindings() {\r\n\tlastTouchID = 0;\r\n\tclickBlockList.length = 0;\r\n\tblockMouseTriggers = false;\r\n\r\n\t// When mouse bindings are enabled, our\r\n\t// touch bindings are disabled.\r\n\tdisableTouchBindings();\r\n}\r\n\r\nfunction disableMouseBindings() {\r\n\t// When mouse bindings are disabled, our\r\n\t// touch bindings are enabled.\r\n\tenableTouchBindings();\r\n}\r\n\r\nfunction startResetTimer() {\r\n\tclearResetTimer();\r\n\tresetTimerID = setTimeout( function() {\r\n\t\tresetTimerID = 0;\r\n\t\tenableMouseBindings();\r\n\t}, $.vmouse.resetTimerDuration );\r\n}\r\n\r\nfunction clearResetTimer() {\r\n\tif ( resetTimerID ) {\r\n\t\tclearTimeout( resetTimerID );\r\n\t\tresetTimerID = 0;\r\n\t}\r\n}\r\n\r\nfunction triggerVirtualEvent( eventType, event, flags ) {\r\n\tvar ve;\r\n\r\n\tif ( ( flags && flags[ eventType ] ) ||\r\n\t\t\t\t( !flags && getClosestElementWithVirtualBinding( event.target, eventType ) ) ) {\r\n\r\n\t\tve = createVirtualEvent( event, eventType );\r\n\r\n\t\t$( event.target).trigger( ve );\r\n\t}\r\n\r\n\treturn ve;\r\n}\r\n\r\nfunction mouseEventCallback( event ) {\r\n\tvar touchID = $.data( event.target, touchTargetPropertyName ),\r\n\t\tve;\r\n\r\n\tif ( !blockMouseTriggers && ( !lastTouchID || lastTouchID !== touchID ) ) {\r\n\t\tve = triggerVirtualEvent( \"v\" + event.type, event );\r\n\t\tif ( ve ) {\r\n\t\t\tif ( ve.isDefaultPrevented() ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\t\t\tif ( ve.isPropagationStopped() ) {\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t}\r\n\t\t\tif ( ve.isImmediatePropagationStopped() ) {\r\n\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction handleTouchStart( event ) {\r\n\r\n\tvar touches = getNativeEvent( event ).touches,\r\n\t\ttarget, flags, t;\r\n\r\n\tif ( touches && touches.length === 1 ) {\r\n\r\n\t\ttarget = event.target;\r\n\t\tflags = getVirtualBindingFlags( target );\r\n\r\n\t\tif ( flags.hasVirtualBinding ) {\r\n\r\n\t\t\tlastTouchID = nextTouchID++;\r\n\t\t\t$.data( target, touchTargetPropertyName, lastTouchID );\r\n\r\n\t\t\tclearResetTimer();\r\n\r\n\t\t\tdisableMouseBindings();\r\n\t\t\tdidScroll = false;\r\n\r\n\t\t\tt = getNativeEvent( event ).touches[ 0 ];\r\n\t\t\tstartX = t.pageX;\r\n\t\t\tstartY = t.pageY;\r\n\r\n\t\t\ttriggerVirtualEvent( \"vmouseover\", event, flags );\r\n\t\t\ttriggerVirtualEvent( \"vmousedown\", event, flags );\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction handleScroll( event ) {\r\n\tif ( blockTouchTriggers ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif ( !didScroll ) {\r\n\t\ttriggerVirtualEvent( \"vmousecancel\", event, getVirtualBindingFlags( event.target ) );\r\n\t}\r\n\r\n\tdidScroll = true;\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction handleTouchMove( event ) {\r\n\tif ( blockTouchTriggers ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar t = getNativeEvent( event ).touches[ 0 ],\r\n\t\tdidCancel = didScroll,\r\n\t\tmoveThreshold = $.vmouse.moveDistanceThreshold,\r\n\t\tflags = getVirtualBindingFlags( event.target );\r\n\r\n\t\tdidScroll = didScroll ||\r\n\t\t\t( Math.abs( t.pageX - startX ) > moveThreshold ||\r\n\t\t\t\tMath.abs( t.pageY - startY ) > moveThreshold );\r\n\r\n\tif ( didScroll && !didCancel ) {\r\n\t\ttriggerVirtualEvent( \"vmousecancel\", event, flags );\r\n\t}\r\n\r\n\ttriggerVirtualEvent( \"vmousemove\", event, flags );\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction handleTouchEnd( event ) {\r\n\tif ( blockTouchTriggers ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdisableTouchBindings();\r\n\r\n\tvar flags = getVirtualBindingFlags( event.target ),\r\n\t\tve, t;\r\n\ttriggerVirtualEvent( \"vmouseup\", event, flags );\r\n\r\n\tif ( !didScroll ) {\r\n\t\tve = triggerVirtualEvent( \"vclick\", event, flags );\r\n\t\tif ( ve && ve.isDefaultPrevented() ) {\r\n\t\t\t// The target of the mouse events that follow the touchend\r\n\t\t\t// event don't necessarily match the target used during the\r\n\t\t\t// touch. This means we need to rely on coordinates for blocking\r\n\t\t\t// any click that is generated.\r\n\t\t\tt = getNativeEvent( event ).changedTouches[ 0 ];\r\n\t\t\tclickBlockList.push({\r\n\t\t\t\ttouchID: lastTouchID,\r\n\t\t\t\tx: t.clientX,\r\n\t\t\t\ty: t.clientY\r\n\t\t\t});\r\n\r\n\t\t\t// Prevent any mouse events that follow from triggering\r\n\t\t\t// virtual event notifications.\r\n\t\t\tblockMouseTriggers = true;\r\n\t\t}\r\n\t}\r\n\ttriggerVirtualEvent( \"vmouseout\", event, flags);\r\n\tdidScroll = false;\r\n\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction hasVirtualBindings( ele ) {\r\n\tvar bindings = $.data( ele, dataPropertyName ),\r\n\t\tk;\r\n\r\n\tif ( bindings ) {\r\n\t\tfor ( k in bindings ) {\r\n\t\t\tif ( bindings[ k ] ) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction dummyMouseHandler() {}\r\n\r\nfunction getSpecialEventObject( eventType ) {\r\n\tvar realType = eventType.substr( 1 );\r\n\r\n\treturn {\r\n\t\tsetup: function(/* data, namespace */) {\r\n\t\t\t// If this is the first virtual mouse binding for this element,\r\n\t\t\t// add a bindings object to its data.\r\n\r\n\t\t\tif ( !hasVirtualBindings( this ) ) {\r\n\t\t\t\t$.data( this, dataPropertyName, {} );\r\n\t\t\t}\r\n\r\n\t\t\t// If setup is called, we know it is the first binding for this\r\n\t\t\t// eventType, so initialize the count for the eventType to zero.\r\n\t\t\tvar bindings = $.data( this, dataPropertyName );\r\n\t\t\tbindings[ eventType ] = true;\r\n\r\n\t\t\t// If this is the first virtual mouse event for this type,\r\n\t\t\t// register a global handler on the document.\r\n\r\n\t\t\tactiveDocHandlers[ eventType ] = ( activeDocHandlers[ eventType ] || 0 ) + 1;\r\n\r\n\t\t\tif ( activeDocHandlers[ eventType ] === 1 ) {\r\n\t\t\t\t$document.bind( realType, mouseEventCallback );\r\n\t\t\t}\r\n\r\n\t\t\t// Some browsers, like Opera Mini, won't dispatch mouse/click events\r\n\t\t\t// for elements unless they actually have handlers registered on them.\r\n\t\t\t// To get around this, we register dummy handlers on the elements.\r\n\r\n\t\t\t$( this ).bind( realType, dummyMouseHandler );\r\n\r\n\t\t\t// For now, if event capture is not supported, we rely on mouse handlers.\r\n\t\t\tif ( eventCaptureSupported ) {\r\n\t\t\t\t// If this is the first virtual mouse binding for the document,\r\n\t\t\t\t// register our touchstart handler on the document.\r\n\r\n\t\t\t\tactiveDocHandlers[ \"touchstart\" ] = ( activeDocHandlers[ \"touchstart\" ] || 0) + 1;\r\n\r\n\t\t\t\tif ( activeDocHandlers[ \"touchstart\" ] === 1 ) {\r\n\t\t\t\t\t$document.bind( \"touchstart\", handleTouchStart )\r\n\t\t\t\t\t\t.bind( \"touchend\", handleTouchEnd )\r\n\r\n\t\t\t\t\t\t// On touch platforms, touching the screen and then dragging your finger\r\n\t\t\t\t\t\t// causes the window content to scroll after some distance threshold is\r\n\t\t\t\t\t\t// exceeded. On these platforms, a scroll prevents a click event from being\r\n\t\t\t\t\t\t// dispatched, and on some platforms, even the touchend is suppressed. To\r\n\t\t\t\t\t\t// mimic the suppression of the click event, we need to watch for a scroll\r\n\t\t\t\t\t\t// event. Unfortunately, some platforms like iOS don't dispatch scroll\r\n\t\t\t\t\t\t// events until *AFTER* the user lifts their finger (touchend). This means\r\n\t\t\t\t\t\t// we need to watch both scroll and touchmove events to figure out whether\r\n\t\t\t\t\t\t// or not a scroll happenens before the touchend event is fired.\r\n\r\n\t\t\t\t\t\t.bind( \"touchmove\", handleTouchMove )\r\n\t\t\t\t\t\t.bind( \"scroll\", handleScroll );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tteardown: function(/* data, namespace */) {\r\n\t\t\t// If this is the last virtual binding for this eventType,\r\n\t\t\t// remove its global handler from the document.\r\n\r\n\t\t\t--activeDocHandlers[ eventType ];\r\n\r\n\t\t\tif ( !activeDocHandlers[ eventType ] ) {\r\n\t\t\t\t$document.unbind( realType, mouseEventCallback );\r\n\t\t\t}\r\n\r\n\t\t\tif ( eventCaptureSupported ) {\r\n\t\t\t\t// If this is the last virtual mouse binding in existence,\r\n\t\t\t\t// remove our document touchstart listener.\r\n\r\n\t\t\t\t--activeDocHandlers[ \"touchstart\" ];\r\n\r\n\t\t\t\tif ( !activeDocHandlers[ \"touchstart\" ] ) {\r\n\t\t\t\t\t$document.unbind( \"touchstart\", handleTouchStart )\r\n\t\t\t\t\t\t.unbind( \"touchmove\", handleTouchMove )\r\n\t\t\t\t\t\t.unbind( \"touchend\", handleTouchEnd )\r\n\t\t\t\t\t\t.unbind( \"scroll\", handleScroll );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar $this = $( this ),\r\n\t\t\t\tbindings = $.data( this, dataPropertyName );\r\n\r\n\t\t\t// teardown may be called when an element was\r\n\t\t\t// removed from the DOM. If this is the case,\r\n\t\t\t// jQuery core may have already stripped the element\r\n\t\t\t// of any data bindings so we need to check it before\r\n\t\t\t// using it.\r\n\t\t\tif ( bindings ) {\r\n\t\t\t\tbindings[ eventType ] = false;\r\n\t\t\t}\r\n\r\n\t\t\t// Unregister the dummy event handler.\r\n\r\n\t\t\t$this.unbind( realType, dummyMouseHandler );\r\n\r\n\t\t\t// If this is the last virtual mouse binding on the\r\n\t\t\t// element, remove the binding data from the element.\r\n\r\n\t\t\tif ( !hasVirtualBindings( this ) ) {\r\n\t\t\t\t$this.removeData( dataPropertyName );\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Expose our custom events to the jQuery bind/unbind mechanism.\r\n\r\nfor ( i = 0; i < virtualEventNames.length; i++ ) {\r\n\t$.event.special[ virtualEventNames[ i ] ] = getSpecialEventObject( virtualEventNames[ i ] );\r\n}\r\n\r\n// Add a capture click handler to block clicks.\r\n// Note that we require event capture support for this so if the device\r\n// doesn't support it, we punt for now and rely solely on mouse events.\r\nif ( eventCaptureSupported ) {\r\n\tdocument.addEventListener( \"click\", function( e ) {\r\n\t\tvar cnt = clickBlockList.length,\r\n\t\t\ttarget = e.target,\r\n\t\t\tx, y, ele, i, o, touchID;\r\n\r\n\t\tif ( cnt ) {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t\tthreshold = $.vmouse.clickDistanceThreshold;\r\n\r\n\t\t\t// The idea here is to run through the clickBlockList to see if\r\n\t\t\t// the current click event is in the proximity of one of our\r\n\t\t\t// vclick events that had preventDefault() called on it. If we find\r\n\t\t\t// one, then we block the click.\r\n\t\t\t//\r\n\t\t\t// Why do we have to rely on proximity?\r\n\t\t\t//\r\n\t\t\t// Because the target of the touch event that triggered the vclick\r\n\t\t\t// can be different from the target of the click event synthesized\r\n\t\t\t// by the browser. The target of a mouse/click event that is synthesized\r\n\t\t\t// from a touch event seems to be implementation specific. For example,\r\n\t\t\t// some browsers will fire mouse/click events for a link that is near\r\n\t\t\t// a touch event, even though the target of the touchstart/touchend event\r\n\t\t\t// says the user touched outside the link. Also, it seems that with most\r\n\t\t\t// browsers, the target of the mouse/click event is not calculated until the\r\n\t\t\t// time it is dispatched, so if you replace an element that you touched\r\n\t\t\t// with another element, the target of the mouse/click will be the new\r\n\t\t\t// element underneath that point.\r\n\t\t\t//\r\n\t\t\t// Aside from proximity, we also check to see if the target and any\r\n\t\t\t// of its ancestors were the ones that blocked a click. This is necessary\r\n\t\t\t// because of the strange mouse/click target calculation done in the\r\n\t\t\t// Android 2.1 browser, where if you click on an element, and there is a\r\n\t\t\t// mouse/click handler on one of its ancestors, the target will be the\r\n\t\t\t// innermost child of the touched element, even if that child is no where\r\n\t\t\t// near the point of touch.\r\n\r\n\t\t\tele = target;\r\n\r\n\t\t\twhile ( ele ) {\r\n\t\t\t\tfor ( i = 0; i < cnt; i++ ) {\r\n\t\t\t\t\to = clickBlockList[ i ];\r\n\t\t\t\t\ttouchID = 0;\r\n\r\n\t\t\t\t\tif ( ( ele === target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||\r\n\t\t\t\t\t\t\t\t$.data( ele, touchTargetPropertyName ) === o.touchID ) {\r\n\t\t\t\t\t\t// XXX: We may want to consider removing matches from the block list\r\n\t\t\t\t\t\t// instead of waiting for the reset timer to fire.\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tele = ele.parentNode;\r\n\t\t\t}\r\n\t\t}\r\n\t}, true);\r\n}\r\n})( jQuery, window, document );\r\n\r\n(function( $ ) {\r\n\t$.mobile = {};\r\n}( jQuery ));\r\n\r\n\t(function( $, undefined ) {\r\n\t\tvar support = {\r\n\t\t\ttouch: \"ontouchend\" in document\r\n\t\t};\r\n\r\n\t\t$.mobile.support = $.mobile.support || {};\r\n\t\t$.extend( $.support, support );\r\n\t\t$.extend( $.mobile.support, support );\r\n\t}( jQuery ));\r\n\r\n\r\n(function( $, window, undefined ) {\r\n\tvar $document = $( document ),\r\n\t\tsupportTouch = $.mobile.support.touch,\r\n\t\tscrollEvent = \"touchmove scroll\",\r\n\t\ttouchStartEvent = supportTouch ? \"touchstart\" : \"mousedown\",\r\n\t\ttouchStopEvent = supportTouch ? \"touchend\" : \"mouseup\",\r\n\t\ttouchMoveEvent = supportTouch ? \"touchmove\" : \"mousemove\";\r\n\r\n\t// setup new event shortcuts\r\n\t$.each( ( \"touchstart touchmove touchend \" +\r\n\t\t\"tap taphold \" +\r\n\t\t\"swipe swipeleft swiperight \" +\r\n\t\t\"scrollstart scrollstop\" ).split( \" \" ), function( i, name ) {\r\n\r\n\t\t$.fn[ name ] = function( fn ) {\r\n\t\t\treturn fn ? this.bind( name, fn ) : this.trigger( name );\r\n\t\t};\r\n\r\n\t\t// jQuery < 1.8\r\n\t\tif ( $.attrFn ) {\r\n\t\t\t$.attrFn[ name ] = true;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction triggerCustomEvent( obj, eventType, event, bubble ) {\r\n\t\tvar originalType = event.type;\r\n\t\tevent.type = eventType;\r\n\t\tif ( bubble ) {\r\n\t\t\t$.event.trigger( event, undefined, obj );\r\n\t\t} else {\r\n\t\t\t$.event.dispatch.call( obj, event );\r\n\t\t}\r\n\t\tevent.type = originalType;\r\n\t}\r\n\r\n\t// also handles scrollstop\r\n\t$.event.special.scrollstart = {\r\n\r\n\t\tenabled: true,\r\n\t\tsetup: function() {\r\n\r\n\t\t\tvar thisObject = this,\r\n\t\t\t\t$this = $( thisObject ),\r\n\t\t\t\tscrolling,\r\n\t\t\t\ttimer;\r\n\r\n\t\t\tfunction trigger( event, state ) {\r\n\t\t\t\tscrolling = state;\r\n\t\t\t\ttriggerCustomEvent( thisObject, scrolling ? \"scrollstart\" : \"scrollstop\", event );\r\n\t\t\t}\r\n\r\n\t\t\t// iPhone triggers scroll after a small delay; use touchmove instead\r\n\t\t\t$this.bind( scrollEvent, function( event ) {\r\n\r\n\t\t\t\tif ( !$.event.special.scrollstart.enabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( !scrolling ) {\r\n\t\t\t\t\ttrigger( event, true );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclearTimeout( timer );\r\n\t\t\t\ttimer = setTimeout( function() {\r\n\t\t\t\t\ttrigger( event, false );\r\n\t\t\t\t}, 50 );\r\n\t\t\t});\r\n\t\t},\r\n\t\tteardown: function() {\r\n\t\t\t$( this ).unbind( scrollEvent );\r\n\t\t}\r\n\t};\r\n\r\n\t// also handles taphold\r\n\t$.event.special.tap = {\r\n\t\ttapholdThreshold: 750,\r\n\t\temitTapOnTaphold: true,\r\n\t\tsetup: function() {\r\n\t\t\tvar thisObject = this,\r\n\t\t\t\t$this = $( thisObject ),\r\n\t\t\t\tisTaphold = false;\r\n\r\n\t\t\t$this.bind( \"vmousedown\", function( event ) {\r\n\t\t\t\tisTaphold = false;\r\n\t\t\t\tif ( event.which && event.which !== 1 ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar origTarget = event.target,\r\n\t\t\t\t\ttimer;\r\n\r\n\t\t\t\tfunction clearTapTimer() {\r\n\t\t\t\t\tclearTimeout( timer );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction clearTapHandlers() {\r\n\t\t\t\t\tclearTapTimer();\r\n\r\n\t\t\t\t\t$this.unbind( \"vclick\", clickHandler )\r\n\t\t\t\t\t\t.unbind( \"vmouseup\", clearTapTimer );\r\n\t\t\t\t\t$document.unbind( \"vmousecancel\", clearTapHandlers );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction clickHandler( event ) {\r\n\t\t\t\t\tclearTapHandlers();\r\n\r\n\t\t\t\t\t// ONLY trigger a 'tap' event if the start target is\r\n\t\t\t\t\t// the same as the stop target.\r\n\t\t\t\t\tif ( !isTaphold && origTarget === event.target ) {\r\n\t\t\t\t\t\ttriggerCustomEvent( thisObject, \"tap\", event );\r\n\t\t\t\t\t} else if ( isTaphold ) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$this.bind( \"vmouseup\", clearTapTimer )\r\n\t\t\t\t\t.bind( \"vclick\", clickHandler );\r\n\t\t\t\t$document.bind( \"vmousecancel\", clearTapHandlers );\r\n\r\n\t\t\t\ttimer = setTimeout( function() {\r\n\t\t\t\t\tif ( !$.event.special.tap.emitTapOnTaphold ) {\r\n\t\t\t\t\t\tisTaphold = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttriggerCustomEvent( thisObject, \"taphold\", $.Event( \"taphold\", { target: origTarget } ) );\r\n\t\t\t\t}, $.event.special.tap.tapholdThreshold );\r\n\t\t\t});\r\n\t\t},\r\n\t\tteardown: function() {\r\n\t\t\t$( this ).unbind( \"vmousedown\" ).unbind( \"vclick\" ).unbind( \"vmouseup\" );\r\n\t\t\t$document.unbind( \"vmousecancel\" );\r\n\t\t}\r\n\t};\r\n\r\n\t// Also handles swipeleft, swiperight\r\n\t$.event.special.swipe = {\r\n\r\n\t\t// More than this horizontal displacement, and we will suppress scrolling.\r\n\t\tscrollSupressionThreshold: 30,\r\n\r\n\t\t// More time than this, and it isn't a swipe.\r\n\t\tdurationThreshold: 1000,\r\n\r\n\t\t// Swipe horizontal displacement must be more than this.\r\n\t\thorizontalDistanceThreshold: 30,\r\n\r\n\t\t// Swipe vertical displacement must be less than this.\r\n\t\tverticalDistanceThreshold: 30,\r\n\r\n\t\tgetLocation: function ( event ) {\r\n\t\t\tvar winPageX = window.pageXOffset,\r\n\t\t\t\twinPageY = window.pageYOffset,\r\n\t\t\t\tx = event.clientX,\r\n\t\t\t\ty = event.clientY;\r\n\r\n\t\t\tif ( event.pageY === 0 && Math.floor( y ) > Math.floor( event.pageY ) ||\r\n\t\t\t\tevent.pageX === 0 && Math.floor( x ) > Math.floor( event.pageX ) ) {\r\n\r\n\t\t\t\t// iOS4 clientX/clientY have the value that should have been\r\n\t\t\t\t// in pageX/pageY. While pageX/page/ have the value 0\r\n\t\t\t\tx = x - winPageX;\r\n\t\t\t\ty = y - winPageY;\r\n\t\t\t} else if ( y < ( event.pageY - winPageY) || x < ( event.pageX - winPageX ) ) {\r\n\r\n\t\t\t\t// Some Android browsers have totally bogus values for clientX/Y\r\n\t\t\t\t// when scrolling/zooming a page. Detectable since clientX/clientY\r\n\t\t\t\t// should never be smaller than pageX/pageY minus page scroll\r\n\t\t\t\tx = event.pageX - winPageX;\r\n\t\t\t\ty = event.pageY - winPageY;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tstart: function( event ) {\r\n\t\t\tvar data = event.originalEvent.touches ?\r\n\t\t\t\t\tevent.originalEvent.touches[ 0 ] : event,\r\n\t\t\t\tlocation = $.event.special.swipe.getLocation( data );\r\n\t\t\treturn {\r\n\t\t\t\t\t\ttime: ( new Date() ).getTime(),\r\n\t\t\t\t\t\tcoords: [ location.x, location.y ],\r\n\t\t\t\t\t\torigin: $( event.target )\r\n\t\t\t\t\t};\r\n\t\t},\r\n\r\n\t\tstop: function( event ) {\r\n\t\t\tvar data = event.originalEvent.touches ?\r\n\t\t\t\t\tevent.originalEvent.touches[ 0 ] : event,\r\n\t\t\t\tlocation = $.event.special.swipe.getLocation( data );\r\n\t\t\treturn {\r\n\t\t\t\t\t\ttime: ( new Date() ).getTime(),\r\n\t\t\t\t\t\tcoords: [ location.x, location.y ]\r\n\t\t\t\t\t};\r\n\t\t},\r\n\r\n\t\thandleSwipe: function( start, stop, thisObject, origTarget ) {\r\n\t\t\tif ( stop.time - start.time < $.event.special.swipe.durationThreshold &&\r\n\t\t\t\tMath.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&\r\n\t\t\t\tMath.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {\r\n\t\t\t\tvar direction = start.coords[0] > stop.coords[ 0 ] ? \"swipeleft\" : \"swiperight\";\r\n\r\n\t\t\t\ttriggerCustomEvent( thisObject, \"swipe\", $.Event( \"swipe\", { target: origTarget, swipestart: start, swipestop: stop }), true );\r\n\t\t\t\ttriggerCustomEvent( thisObject, direction,$.Event( direction, { target: origTarget, swipestart: start, swipestop: stop } ), true );\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\r\n\t\t},\r\n\r\n\t\t// This serves as a flag to ensure that at most one swipe event event is\r\n\t\t// in work at any given time\r\n\t\teventInProgress: false,\r\n\r\n\t\tsetup: function() {\r\n\t\t\tvar events,\r\n\t\t\t\tthisObject = this,\r\n\t\t\t\t$this = $( thisObject ),\r\n\t\t\t\tcontext = {};\r\n\r\n\t\t\t// Retrieve the events data for this element and add the swipe context\r\n\t\t\tevents = $.data( this, \"mobile-events\" );\r\n\t\t\tif ( !events ) {\r\n\t\t\t\tevents = { length: 0 };\r\n\t\t\t\t$.data( this, \"mobile-events\", events );\r\n\t\t\t}\r\n\t\t\tevents.length++;\r\n\t\t\tevents.swipe = context;\r\n\r\n\t\t\tcontext.start = function( event ) {\r\n\r\n\t\t\t\t// Bail if we're already working on a swipe event\r\n\t\t\t\tif ( $.event.special.swipe.eventInProgress ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$.event.special.swipe.eventInProgress = true;\r\n\r\n\t\t\t\tvar stop,\r\n\t\t\t\t\tstart = $.event.special.swipe.start( event ),\r\n\t\t\t\t\torigTarget = event.target,\r\n\t\t\t\t\temitted = false;\r\n\r\n\t\t\t\tcontext.move = function( event ) {\r\n\t\t\t\t\tif ( !start || event.isDefaultPrevented() ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstop = $.event.special.swipe.stop( event );\r\n\t\t\t\t\tif ( !emitted ) {\r\n\t\t\t\t\t\temitted = $.event.special.swipe.handleSwipe( start, stop, thisObject, origTarget );\r\n\t\t\t\t\t\tif ( emitted ) {\r\n\r\n\t\t\t\t\t\t\t// Reset the context to make way for the next swipe event\r\n\t\t\t\t\t\t\t$.event.special.swipe.eventInProgress = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// prevent scrolling\r\n\t\t\t\t\tif ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcontext.stop = function() {\r\n\t\t\t\t\t\temitted = true;\r\n\r\n\t\t\t\t\t\t// Reset the context to make way for the next swipe event\r\n\t\t\t\t\t\t$.event.special.swipe.eventInProgress = false;\r\n\t\t\t\t\t\t$document.off( touchMoveEvent, context.move );\r\n\t\t\t\t\t\tcontext.move = null;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$document.on( touchMoveEvent, context.move )\r\n\t\t\t\t\t.one( touchStopEvent, context.stop );\r\n\t\t\t};\r\n\t\t\t$this.on( touchStartEvent, context.start );\r\n\t\t},\r\n\r\n\t\tteardown: function() {\r\n\t\t\tvar events, context;\r\n\r\n\t\t\tevents = $.data( this, \"mobile-events\" );\r\n\t\t\tif ( events ) {\r\n\t\t\t\tcontext = events.swipe;\r\n\t\t\t\tdelete events.swipe;\r\n\t\t\t\tevents.length--;\r\n\t\t\t\tif ( events.length === 0 ) {\r\n\t\t\t\t\t$.removeData( this, \"mobile-events\" );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( context ) {\r\n\t\t\t\tif ( context.start ) {\r\n\t\t\t\t\t$( this ).off( touchStartEvent, context.start );\r\n\t\t\t\t}\r\n\t\t\t\tif ( context.move ) {\r\n\t\t\t\t\t$document.off( touchMoveEvent, context.move );\r\n\t\t\t\t}\r\n\t\t\t\tif ( context.stop ) {\r\n\t\t\t\t\t$document.off( touchStopEvent, context.stop );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t$.each({\r\n\t\tscrollstop: \"scrollstart\",\r\n\t\ttaphold: \"tap\",\r\n\t\tswipeleft: \"swipe.left\",\r\n\t\tswiperight: \"swipe.right\"\r\n\t}, function( event, sourceEvent ) {\r\n\r\n\t\t$.event.special[ event ] = {\r\n\t\t\tsetup: function() {\r\n\t\t\t\t$( this ).bind( sourceEvent, $.noop );\r\n\t\t\t},\r\n\t\t\tteardown: function() {\r\n\t\t\t\t$( this ).unbind( sourceEvent );\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n})( jQuery, this );\r\n\r\n\r\n}));\r\n","/*! jQuery UI - v1.10.4 - 2014-01-26\r\n* http://jqueryui.com\r\n* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.autocomplete.js, jquery.ui.menu.js\r\n* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */\r\n\r\n(function( $, undefined ) {\r\n\r\nvar uuid = 0,\r\n\truniqueId = /^ui-id-\\d+$/;\r\n\r\n// $.ui might exist from components with no dependencies, e.g., $.ui.position\r\n$.ui = $.ui || {};\r\n\r\n$.extend( $.ui, {\r\n\tversion: \"1.10.4\",\r\n\r\n\tkeyCode: {\r\n\t\tBACKSPACE: 8,\r\n\t\tCOMMA: 188,\r\n\t\tDELETE: 46,\r\n\t\tDOWN: 40,\r\n\t\tEND: 35,\r\n\t\tENTER: 13,\r\n\t\tESCAPE: 27,\r\n\t\tHOME: 36,\r\n\t\tLEFT: 37,\r\n\t\tNUMPAD_ADD: 107,\r\n\t\tNUMPAD_DECIMAL: 110,\r\n\t\tNUMPAD_DIVIDE: 111,\r\n\t\tNUMPAD_ENTER: 108,\r\n\t\tNUMPAD_MULTIPLY: 106,\r\n\t\tNUMPAD_SUBTRACT: 109,\r\n\t\tPAGE_DOWN: 34,\r\n\t\tPAGE_UP: 33,\r\n\t\tPERIOD: 190,\r\n\t\tRIGHT: 39,\r\n\t\tSPACE: 32,\r\n\t\tTAB: 9,\r\n\t\tUP: 38\r\n\t}\r\n});\r\n\r\n// plugins\r\n$.fn.extend({\r\n\tfocus: (function( orig ) {\r\n\t\treturn function( delay, fn ) {\r\n\t\t\treturn typeof delay === \"number\" ?\r\n\t\t\t\tthis.each(function() {\r\n\t\t\t\t\tvar elem = this;\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$( elem ).focus();\r\n\t\t\t\t\t\tif ( fn ) {\r\n\t\t\t\t\t\t\tfn.call( elem );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, delay );\r\n\t\t\t\t}) :\r\n\t\t\t\torig.apply( this, arguments );\r\n\t\t};\r\n\t})( $.fn.focus ),\r\n\r\n\tscrollParent: function() {\r\n\t\tvar scrollParent;\r\n\t\tif (($.ui.ie && (/(static|relative)/).test(this.css(\"position\"))) || (/absolute/).test(this.css(\"position\"))) {\r\n\t\t\tscrollParent = this.parents().filter(function() {\r\n\t\t\t\treturn (/(relative|absolute|fixed)/).test($.css(this,\"position\")) && (/(auto|scroll)/).test($.css(this,\"overflow\")+$.css(this,\"overflow-y\")+$.css(this,\"overflow-x\"));\r\n\t\t\t}).eq(0);\r\n\t\t} else {\r\n\t\t\tscrollParent = this.parents().filter(function() {\r\n\t\t\t\treturn (/(auto|scroll)/).test($.css(this,\"overflow\")+$.css(this,\"overflow-y\")+$.css(this,\"overflow-x\"));\r\n\t\t\t}).eq(0);\r\n\t\t}\r\n\r\n\t\treturn (/fixed/).test(this.css(\"position\")) || !scrollParent.length ? $(document) : scrollParent;\r\n\t},\r\n\r\n\tzIndex: function( zIndex ) {\r\n\t\tif ( zIndex !== undefined ) {\r\n\t\t\treturn this.css( \"zIndex\", zIndex );\r\n\t\t}\r\n\r\n\t\tif ( this.length ) {\r\n\t\t\tvar elem = $( this[ 0 ] ), position, value;\r\n\t\t\twhile ( elem.length && elem[ 0 ] !== document ) {\r\n\t\t\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n\t\t\t\t// This makes behavior of this function consistent across browsers\r\n\t\t\t\t// WebKit always returns auto if the element is positioned\r\n\t\t\t\tposition = elem.css( \"position\" );\r\n\t\t\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\r\n\t\t\t\t\t// IE returns 0 when zIndex is not specified\r\n\t\t\t\t\t// other browsers return a string\r\n\t\t\t\t\t// we ignore the case of nested elements with an explicit value of 0\r\n\t\t\t\t\t//