/*! jQuery v1.7.1 jquery.com | jquery.org/license */ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(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;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,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=m.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.7.1",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.add(a);return this},eq:function(a){a=+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(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");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},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(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;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(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(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},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,"ms-").replace(v,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(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.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:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([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&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.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}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),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,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;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},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.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]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),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]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.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!!m(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 bc[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=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&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=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null: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=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=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(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.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:[]}},o.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&&(o.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.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[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}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.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 m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0: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=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-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)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));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(S(c[0])||S(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);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).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 V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"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){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):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.clean(arguments);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.clean(arguments));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(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},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(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),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]===""&&!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&&X.test(k)&&o.insertBefore(b.createTextNode(X.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=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.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,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,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=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,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&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.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("
").append(c.replace(bN,"")).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||bO.test(this.nodeName)||bI.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(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(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?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[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","*":bX},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},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),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>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),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.Callbacks("once memory"),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=bH.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.add,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(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.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]!=="*"?", "+bX+"; 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=b$(bU,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){if(s<2)w(-1,z);else throw 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)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),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&&(ce.test(b.url)||e&&ce.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(ce,l),b.url===j&&(e&&(k=k.replace(ce,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 cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,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,cf&&delete ch[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=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-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=cx.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&&!cx.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=cy(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=cy(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")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():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],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["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 i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); var $j = jQuery.noConflict(); var Dialog = { id: 'announcement_popup', contents: '', cache: [], crc: '', open: function(title, contents) { var id = this.id; $j('#' + this.id).html('Loading...'); $j("#" + this.id).dialog({ /* buttons: { "Yes": function() { $j(this).dialog("close"); }, "No": function() { $j(this).dialog("close"); } },*/ position: 'center', hide: 'fade', modal: true, minWidth: 1000, height:490, title: title }); this.crc = crc32(contents); if(!this.cache[this.crc]) { this.cache[this.crc] = contents; this.contents = contents; setTimeout('Dialog.load()', 500); } else { this.load(); } //$j('#' + this.id).html(contents); jQuery('.ui-widget-overlay').bind('click',function(){ $j("#" + id).dialog("close"); }); $j('#' + this.id).parent().css('position', 'fixed'); var windowHeight = $j(window).height(); var dialogHeight = $j('#' + this.id).parent().height(); if(dialogHeight < windowHeight) { var top = (Math.floor((windowHeight - dialogHeight) / 2) + $j(window).scrollTop()); if($j.browser.msie && $j.browser.version=="6.0") { $j('#' + this.id).parent().css('position', 'absolute'); } $j('#' + this.id).parent().css('top', top); //console.log('top='+top+ ' dialogHeight='+dialogHeight + ' windowHeight='+windowHeight); } }, load: function() { $j('#' + this.id).html(this.cache[this.crc]); } }; function crc32 (str) { var table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D"; var crc = 0; var x = 0; var y = 0; crc = crc ^ (-1); for (var i = 0, iTop = str.length; i < iTop; i++) { y = (crc ^ str.charCodeAt(i)) & 0xFF; x = "0x" + table.substr(y * 9, 8); crc = (crc >>> 8) ^ x; } return crc ^ (-1); } /*! Copyright 2011, Ben Lin (http://dreamerslab.com/) * Licensed under the MIT License (LICENSE.txt). * * Version: 1.0.5 * * Requires: jQuery 1.2.3+ */ ;( function( $ ){ $j.fn.extend({ actual : function( method, options ){ var $hidden, $target, configs, css, tmp, actual, fix, restore; // check if the jQuery method exist if( !this[ method ]){ throw '$.actual => The jQuery method "' + method + '" you called does not exist'; } configs = $j.extend({ absolute : false, clone : false, includeMargin : undefined }, options ); $target = this; if( configs.clone === true ){ fix = function(){ // this is useful with css3pie $target = $target.filter( ':first' ).clone().css({ position : 'absolute', top : -1000 }).appendTo( 'body' ); }; restore = function(){ // remove DOM element after getting the width $target.remove(); }; }else{ fix = function(){ // get all hidden parents $hidden = $target.parents().andSelf().filter( ':hidden' ); css = configs.absolute === true ? { position : 'absolute', visibility: 'hidden', display: 'block' } : { visibility: 'hidden', display: 'block' }; tmp = []; // save the origin style props // set the hidden el css to be got the actual value later $hidden.each( function(){ var _tmp = {}, name; for( name in css ){ // save current style _tmp[ name ] = this.style[ name ]; // set current style to proper css style this.style[ name ] = css[ name ]; } tmp.push( _tmp ); }); }; restore = function(){ // restore origin style values $hidden.each( function( i ){ var _tmp = tmp[ i ], name; for( name in css ){ this.style[ name ] = _tmp[ name ]; } }); }; } fix(); // get the actual value with user specific methed // it can be 'width', 'height', 'outerWidth', 'innerWidth'... etc // configs.includeMargin only works for 'outerWidth actual = $target[ method ]( configs.includeMargin ); restore(); // IMPORTANT, this plugin only return the value of the first element return actual; } }); })( jQuery ); /** * Regex selector * http://james.padolsey.com/javascript/regex-selector-for-jquery/ * @param elem * @param index * @param match */ jQuery.expr[':'].regex = function (elem, index, match) { var matchParams = match[3].split(','), validLabels = /^(data|css):/, attr = { method:matchParams[0].match(validLabels) ? matchParams[0].split(':')[0] : 'attr', property:matchParams.shift().replace(validLabels, '') }, regexFlags = 'ig', regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g, ''), regexFlags); return regex.test(jQuery(elem)[attr.method](attr.property)); }; eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(1b(a,b){1b d(b){1e!a(b).4L().8x().2u(1b(){1e a.4p(1a,"7T")==="3F"||a.au.eZ.3F(1a)}).1p}1b c(b,c){1d e=b.5g.4M();if("iz"===e){1d f=b.4k,g=f.8y,h;if(!b.4l||!g||f.5g.4M()!=="5h")1e!1;h=a("8z[iA=#"+g+"]")[0];1e!!h&&d(h)}1e(/1V|4a|9y|1K|5L/.2b(e)?!b.1s:"a"==e?b.4l||c:c)&&d(b)}a.1c=a.1c||{};a.1c.3Z||(a.1W(a.1c,{3Z:"1.8.17",2E:{iB:18,iC:8,iD:20,iE:iF,iG:91,iH:91,iI:93,iJ:17,iK:46,9z:40,c7:35,av:13,aw:27,c8:36,iL:45,ax:37,iM:93,iN:c9,iO:iP,iQ:iR,f0:iS,iT:iU,iV:iW,ay:34,az:33,iX:iY,aA:39,iZ:16,aB:32,ca:9,9A:38,j0:91}}),a.fn.1W({7U:a.fn.7V||a.fn.1Y,f1:a.fn.2r,2r:1b(b,c){1e 2h b=="5i"?1a.1H(1b(){1d d=1a;5j(1b(){a(d).2r(),c&&c.2j(d)},b)}):1a.f1.1N(1a,23)},1Q:1b(){1d b;a.2R.5u&&/(6K|2v)/.2b(1a.1j("1o"))||/2M/.2b(1a.1j("1o"))?b=1a.4L().2u(1b(){1e/(2v|2M|4b)/.2b(a.4p(1a,"1o",1))&&/(3j|7s)/.2b(a.4p(1a,"3t",1)+a.4p(1a,"3t-y",1)+a.4p(1a,"3t-x",1))}).eq(0):b=1a.4L().2u(1b(){1e/(3j|7s)/.2b(a.4p(1a,"3t",1)+a.4p(1a,"3t-y",1)+a.4p(1a,"3t-x",1))}).eq(0);1e/4b/.2b(1a.1j("1o"))||!b.1p?a(1u):b},2z:1b(c){if(c!==b)1e 1a.1j("2z",c);if(1a.1p){1d d=a(1a[0]),e,f;7W(d.1p&&d[0]!==1u){e=d.1j("1o");if(e==="2M"||e==="2v"||e==="4b"){f=1y(d.1j("2z"),10);if(!63(f)&&f!==0)1e f}d=d.29()}}1e 0},8A:1b(){1e 1a.2d((a.8B.cb?"cb":"6o")+".1c-8A",1b(a){a.4N()})},j1:1b(){1e 1a.3d(".1c-8A")}}),a.1H(["cc","j2"],1b(c,d){1b h(b,c,d,f){a.1H(e,1b(){c-=54(a.4p(b,"8C"+1a,!0))||0,d&&(c-=54(a.4p(b,"8D"+1a+"cc",!0))||0),f&&(c-=54(a.4p(b,"5v"+1a,!0))||0)});1e c}1d e=d==="cc"?["cd","ce"]:["cf","cg"],f=d.4M(),g={8E:a.fn.8E,7X:a.fn.7X,3e:a.fn.3e,3o:a.fn.3o};a.fn["ch"+d]=1b(c){if(c===b)1e g["ch"+d].2j(1a);1e 1a.1H(1b(){a(1a).1j(f,h(1a,c)+"3G")})},a.fn["ci"+d]=1b(b,c){if(2h b!="5i")1e g["ci"+d].2j(1a,b);1e 1a.1H(1b(){a(1a).1j(f,h(1a,b,!0,c)+"3G")})}}),a.1W(a.au[":"],{1w:1b(b,c,d){1e!!a.1w(b,d[3])},j3:1b(b){1e c(b,!63(a.1Y(b,"cj")))},aC:1b(b){1d d=a.1Y(b,"cj"),e=63(d);1e(e||d>=0)&&c(b,!e)}}),a(1b(){1d b=1u.2m,c=b.aD(c=1u.aE("2a"));a.1W(c.30,{3Q:"ck",1k:"3j",8C:0,f2:0}),a.8B.3Q=c.5w===3R,a.8B.cb="j4"in c,b.8F(c).30.6p="7t"}),a.1W(a.1c,{56:{2V:1b(b,c,d){1d e=a.1c[b].3u;1S(1d f in d)e.8G[f]=e.8G[f]||[],e.8G[f].3k([c,d[f]])},2j:1b(a,b,c){1d d=a.8G[b];if(!!d&&!!a.1h[0].4k)1S(1d e=0;e0)1e!0;b[d]=1,e=b[d]>0,b[d]=0;1e e},7Y:1b(a,b,c){1e a>b&&a=9)&&!b.1K)1e 1a.6t(b);if(1a.6Q){1a.64(b);1e b.4N()}1a.cs(b)&&1a.ct(b)&&(1a.6Q=1a.6R(1a.9E,b)!==!1,1a.6Q?1a.64(b):1a.6t(b));1e!1a.6Q},6t:1b(b){a(1u).3d("fc."+1a.3z,1a.cu).3d("7Z."+1a.3z,1a.cv),1a.6Q&&(1a.6Q=!1,b.2c==1a.9E.2c&&a.1w(b.2c,1a.3z+".9D",!0),1a.6S(b));1e!1},cs:1b(a){1e 1v.2F(1v.4f(1a.9E.3f-a.3f),1v.4f(1a.9E.3g-a.3g))>=1a.1f.6P},ct:1b(a){1e 1a.aI},6R:1b(a){},64:1b(a){},6S:1b(a){},81:1b(a){1e!0}})})(2S);(1b(a,b){a.1c=a.1c||{};1d c=/1g|82|2N/,d=/1i|82|2T/,e="82",f={},g=a.fn.1o,h=a.fn.1n;a.fn.1o=1b(b){if(!b||!b.of)1e g.1N(1a,23);b=a.1W({},b);1d h=a(b.of),i=h[0],j=(b.cw||"fd").57(" "),k=b.1n?b.1n.57(" "):[0,0],l,m,n;i.aJ===9?(l=h.1l(),m=h.1k(),n={1i:0,1g:0}):i.5j?(l=h.1l(),m=h.1k(),n={1i:h.2e(),1g:h.2k()}):i.4N?(b.at="1g 1i",l=m=0,n={1i:b.of.3g,1g:b.of.3f}):(l=h.3e(),m=h.3o(),n=h.1n()),a.1H(["my","at"],1b(){1d a=(b[1a]||"").57(" ");a.1p===1&&(a=c.2b(a[0])?a.4z([e]):d.2b(a[0])?[e].4z(a):[e,e]),a[0]=c.2b(a[0])?a[0]:e,a[1]=d.2b(a[1])?a[1]:e,b[1a]=a}),j.1p===1&&(j[1]=j[0]),k[0]=1y(k[0],10)||0,k.1p===1&&(k[1]=k[0]),k[1]=1y(k[1],10)||0,b.at[0]==="2N"?n.1g+=l:b.at[0]===e&&(n.1g+=l/2),b.at[1]==="2T"?n.1i+=m:b.at[1]===e&&(n.1i+=m/2),n.1g+=k[0],n.1i+=k[1];1e 1a.1H(1b(){1d c=a(1a),d=c.3e(),g=c.3o(),h=1y(a.4p(1a,"7v",!0))||0,i=1y(a.4p(1a,"6T",!0))||0,o=d+h+(1y(a.4p(1a,"8K",!0))||0),p=g+i+(1y(a.4p(1a,"8L",!0))||0),q=a.1W({},n),r;b.my[0]==="2N"?q.1g-=d:b.my[0]===e&&(q.1g-=d/2),b.my[1]==="2T"?q.1i-=g:b.my[1]===e&&(q.1i-=g/2),f.fe||(q.1g=1v.5N(q.1g),q.1i=1v.5N(q.1i)),r={1g:q.1g-h,1i:q.1i-i},a.1H(["1g","1i"],1b(c,e){a.1c.1o[j[c]]&&a.1c.1o[j[c]][e](q,{cx:l,cy:m,cz:d,cA:g,6U:r,cB:o,cC:p,1n:k,my:b.my,at:b.at})}),a.fn.7w&&c.7w(),c.1n(a.1W(q,{9F:b.9F}))})},a.1c.1o={aK:{1g:1b(b,c){1d d=a(3l),e=c.6U.1g+c.cB-d.1l()-d.2k();b.1g=e>0?b.1g-e:1v.2F(b.1g-c.6U.1g,b.1g)},1i:1b(b,c){1d d=a(3l),e=c.6U.1i+c.cC-d.1k()-d.2e();b.1i=e>0?b.1i-e:1v.2F(b.1i-c.6U.1i,b.1i)}},fd:{1g:1b(b,c){if(c.at[0]!==e){1d d=a(3l),f=c.6U.1g+c.cB-d.1l()-d.2k(),g=c.my[0]==="1g"?-c.cz:c.my[0]==="2N"?c.cz:0,h=c.at[0]==="1g"?c.cx:-c.cx,i=-2*c.1n[0];b.1g+=c.6U.1g<0?g+h+i:f>0?g+h+i:0}},1i:1b(b,c){if(c.at[1]!==e){1d d=a(3l),f=c.6U.1i+c.cC-d.1k()-d.2e(),g=c.my[1]==="1i"?-c.cA:c.my[1]==="2T"?c.cA:0,h=c.at[1]==="1i"?c.cy:-c.cy,i=-2*c.1n[1];b.1i+=c.6U.1i<0?g+h+i:f>0?g+h+i:0}}}},a.1n.cD||(a.1n.cD=1b(b,c){/6K/.2b(a.4p(b,"1o"))&&(b.30.1o="2v");1d d=a(b),e=d.1n(),f=1y(a.4p(b,"1i",!0),10)||0,g=1y(a.4p(b,"1g",!0),10)||0,h={1i:c.1i-e.1i+f,1g:c.1g-e.1g+g};"9F"in c?c.9F.2j(b,h):d.1j(h)},a.fn.1n=1b(b){1d c=1a[0];if(!c||!c.9G)1e 1q;if(b)1e 1a.1H(1b(){a.1n.cD(1a,b)});1e h.2j(1a)}),1b(){1d b=1u.ja("2m")[0],c=1u.aE("2a"),d,e,g,h,i;d=1u.aE(b?"2a":"2m"),g={7T:"3F",1l:0,1k:0,8D:0,5v:0,cE:"7t"},b&&2S.1W(g,{1o:"2M",1g:"-cF",1i:"-cF"});1S(1d j in g)d.30[j]=g[j];d.aD(c),e=b||1u.5z,e.aL(d,e.jb),c.30.cG="1o: 2M; 1g: 10.jc; 1i: 10.jd; 1k: je; 1l: jf;",h=a(c).1n(1b(a,b){1e b}).1n(),d.jg="",e.8F(d),i=h.1i+h.1g+(b?jh:0),f.fe=i>21&&i<22}()})(2S);(1b(a,b){a.1L("1c.2n",a.1c.80,{6q:"65",1f:{aM:!0,2O:"29",3H:!1,cH:!1,1T:!1,4r:"3j",8M:!1,31:!1,3v:!1,1r:"83",84:!1,2s:!1,6V:!1,5O:!1,ff:aN,5P:"3m",7s:!0,4B:20,4C:20,66:!1,cI:"7x",fg:20,9H:!1,2z:!1},4U:1b(){1a.1f.1r=="83"&&!/^(?:r|a|f)/.2b(1a.1h.1j("1o"))&&(1a.1h[0].30.1o="2v"),1a.1f.aM&&1a.1h.1t("1c-2n"),1a.1f.1s&&1a.1h.1t("1c-2n-1s"),1a.8I()},3b:1b(){if(!!1a.1h.1w("2n")){1a.1h.4A("2n").3d(".2n").1z("1c-2n 1c-2n-67 1c-2n-1s"),1a.8J();1e 1a}},81:1b(b){1d c=1a.1f;if(1a.1r||c.1s||a(b.2c).is(".1c-1R-3v"))1e!1;1a.3v=1a.fh(b);if(!1a.3v)1e!1;c.84&&a(c.84===!0?"9I":c.84).1H(1b(){a(\'<2a 2B="1c-2n-84" 30="cE: #ji;">\').1j({1l:1a.68+"3G",1k:1a.5w+"3G",1o:"2M",2s:"0.jj",2z:9J}).1j(a(1a).1n()).2O("2m")});1e!0},6R:1b(b){1d c=1a.1f;1a.1r=1a.aO(b),1a.8N(),a.1c.2G&&(a.1c.2G.6u=1a),1a.aP(),1a.3B=1a.1r.1j("1o"),1a.1Q=1a.1r.1Q(),1a.1n=1a.3C=1a.1h.1n(),1a.1n={1i:1a.1n.1i-1a.2P.1i,1g:1a.1n.1g-1a.2P.1g},a.1W(1a.1n,{1I:{1g:b.3f-1a.1n.1g,1i:b.3g-1a.1n.1i},29:1a.9K(),2v:1a.9L()}),1a.41=1a.1o=1a.8O(b),1a.86=b.3f,1a.87=b.3g,c.8M&&1a.aQ(c.8M),c.1T&&1a.aR();if(1a.1C("3D",b)===!1){1a.7y();1e!1}1a.8N(),a.1c.2G&&!c.8P&&a.1c.2G.7z(1a,b),1a.1r.1t("1c-2n-67"),1a.64(b,!0),a.1c.2G&&a.1c.2G.cJ(1a,b);1e!0},64:1b(b,c){1a.1o=1a.8O(b),1a.3C=1a.5k("2M");if(!c){1d d=1a.3p();if(1a.1C("65",b,d)===!1){1a.6t({});1e!1}1a.1o=d.1o}if(!1a.1f.3H||1a.1f.3H!="y")1a.1r[0].30.1g=1a.1o.1g+"3G";if(!1a.1f.3H||1a.1f.3H!="x")1a.1r[0].30.1i=1a.1o.1i+"3G";a.1c.2G&&a.1c.2G.65(1a,b);1e!1},6S:1b(b){1d c=!1;a.1c.2G&&!1a.1f.8P&&(c=a.1c.2G.8Q(1a,b)),1a.9M&&(c=1a.9M,1a.9M=!1);if((!1a.1h[0]||!1a.1h[0].4k)&&1a.1f.1r=="83")1e!1;if(1a.1f.5O=="jk"&&!c||1a.1f.5O=="jl"&&c||1a.1f.5O===!0||a.4e(1a.1f.5O)&&1a.1f.5O.2j(1a.1h,c)){1d d=1a;a(1a.1r).1X(1a.41,1y(1a.1f.ff,10),1b(){d.1C("3M",b)!==!1&&d.7y()})}2l 1a.1C("3M",b)!==!1&&1a.7y();1e!1},6t:1b(b){1a.1f.84===!0&&a("2a.1c-2n-84").1H(1b(){1a.4k.8F(1a)}),a.1c.2G&&a.1c.2G.cK(1a,b);1e a.1c.80.3u.6t.2j(1a,b)},7u:1b(){1a.1r.is(".1c-2n-67")?1a.6t({}):1a.7y();1e 1a},fh:1b(b){1d c=!1a.1f.3v||!a(1a.1f.3v,1a.1h).1p?!0:!1;a(1a.1f.3v,1a.1h).2C("*").8x().1H(1b(){1a==b.2c&&(c=!0)});1e c},aO:1b(b){1d c=1a.1f,d=a.4e(c.1r)?a(c.1r.1N(1a.1h[0],[b])):c.1r=="88"?1a.1h.88().3L("id"):1a.1h;d.4L("2m").1p||d.2O(c.2O=="29"?1a.1h[0].4k:c.2O),d[0]!=1a.1h[0]&&!/(4b|2M)/.2b(d.1j("1o"))&&d.1j("1o","2M");1e d},aQ:1b(b){2h b=="3S"&&(b=b.57(" ")),a.89(b)&&(b={1g:+b[0],1i:+b[1]||0}),"1g"in b&&(1a.1n.1I.1g=b.1g+1a.2P.1g),"2N"in b&&(1a.1n.1I.1g=1a.2U.1l-b.2N+1a.2P.1g),"1i"in b&&(1a.1n.1I.1i=b.1i+1a.2P.1i),"2T"in b&&(1a.1n.1I.1i=1a.2U.1k-b.2T+1a.2P.1i)},9K:1b(){1a.3c=1a.1r.3c();1d b=1a.3c.1n();1a.3B=="2M"&&1a.1Q[0]!=1u&&a.1c.4y(1a.1Q[0],1a.3c[0])&&(b.1g+=1a.1Q.2k(),b.1i+=1a.1Q.2e());if(1a.3c[0]==1u.2m||1a.3c[0].5A&&1a.3c[0].5A.4M()=="4g"&&a.2R.5u)b={1i:0,1g:0};1e{1i:b.1i+(1y(1a.3c.1j("6W"),10)||0),1g:b.1g+(1y(1a.3c.1j("6X"),10)||0)}},9L:1b(){if(1a.3B=="2v"){1d a=1a.1h.1o();1e{1i:a.1i-(1y(1a.1r.1j("1i"),10)||0)+1a.1Q.2e(),1g:a.1g-(1y(1a.1r.1j("1g"),10)||0)+1a.1Q.2k()}}1e{1i:0,1g:0}},aP:1b(){1a.2P={1g:1y(1a.1h.1j("7v"),10)||0,1i:1y(1a.1h.1j("6T"),10)||0,2N:1y(1a.1h.1j("8K"),10)||0,2T:1y(1a.1h.1j("8L"),10)||0}},8N:1b(){1a.2U={1l:1a.1r.3e(),1k:1a.1r.3o()}},aR:1b(){1d b=1a.1f;b.1T=="29"&&(b.1T=1a.1r[0].4k);if(b.1T=="1u"||b.1T=="3l")1a.1T=[b.1T=="1u"?0:a(3l).2k()-1a.1n.2v.1g-1a.1n.29.1g,b.1T=="1u"?0:a(3l).2e()-1a.1n.2v.1i-1a.1n.29.1i,(b.1T=="1u"?0:a(3l).2k())+a(b.1T=="1u"?1u:3l).1l()-1a.2U.1l-1a.2P.1g,(b.1T=="1u"?0:a(3l).2e())+(a(b.1T=="1u"?1u:3l).1k()||1u.2m.4k.6Y)-1a.2U.1k-1a.2P.1i];if(!/^(1u|3l|29)$/.2b(b.1T)&&b.1T.69!=8H){1d c=a(b.1T),d=c[0];if(!d)1e;1d e=c.1n(),f=a(d).1j("3t")!="3F";1a.1T=[(1y(a(d).1j("6X"),10)||0)+(1y(a(d).1j("8R"),10)||0),(1y(a(d).1j("6W"),10)||0)+(1y(a(d).1j("7A"),10)||0),(f?1v.2F(d.9N,d.68):d.68)-(1y(a(d).1j("6X"),10)||0)-(1y(a(d).1j("8S"),10)||0)-1a.2U.1l-1a.2P.1g-1a.2P.2N,(f?1v.2F(d.6Y,d.5w):d.5w)-(1y(a(d).1j("6W"),10)||0)-(1y(a(d).1j("7B"),10)||0)-1a.2U.1k-1a.2P.1i-1a.2P.2T],1a.cL=c}2l b.1T.69==8H&&(1a.1T=b.1T)},5k:1b(b,c){c||(c=1a.1o);1d d=b=="2M"?1:-1,e=1a.1f,f=1a.3B=="2M"&&(1a.1Q[0]==1u||!a.1c.4y(1a.1Q[0],1a.3c[0]))?1a.3c:1a.1Q,g=/(4g|2m)/i.2b(f[0].5A);1e{1i:c.1i+1a.1n.2v.1i*d+1a.1n.29.1i*d-(a.2R.6v&&a.2R.3Zh[2]&&(f=h[2]+1a.1n.1I.1g),b.3g-1a.1n.1I.1i>h[3]&&(g=h[3]+1a.1n.1I.1i)}if(c.31){1d j=c.31[1]?1a.87+1v.5N((g-1a.87)/c.31[1])*c.31[1]:1a.87;g=h?j-1a.1n.1I.1ih[3]?j-1a.1n.1I.1ih[2]?k-1a.1n.1I.1g=0;k--){1d l=d.5B[k].1g,m=l+d.5B[k].1l,n=d.5B[k].1i,o=n+d.5B[k].1k;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);3m:1e!1}},a.1c.2G={6u:1q,7D:{"3m":[]},7z:1b(b,c){1d d=a.1c.2G.7D[b.1f.5P]||[],e=c?c.3T:1q,f=(b.1O||b.1h).2C(":1w(5l)").8x();fr:1S(1d g=0;g\').1j({1o:1a.1h.1j("1o"),1l:1a.1h.3e(),1k:1a.1h.3o(),1i:1a.1h.1j("1i"),1g:1a.1h.1j("1g")})),1a.1h=1a.1h.29().1w("1R",1a.1h.1w("1R")),1a.cV=!0,1a.1h.1j({7v:1a.4t.1j("7v"),6T:1a.4t.1j("6T"),8K:1a.4t.1j("8K"),8L:1a.4t.1j("8L")}),1a.4t.1j({7v:0,6T:0,8K:0,8L:0}),1a.fw=1a.4t.1j("43"),1a.4t.1j("43","7t"),1a.7E.3k(1a.4t.1j({1o:"6K",jq:1,6p:"aZ"})),1a.4t.1j({5v:1a.4t.1j("5v")}),1a.9S()),1a.2J=c.2J||(a(".1c-1R-3v",1a.1h).1p?{n:".1c-1R-n",e:".1c-1R-e",s:".1c-1R-s",w:".1c-1R-w",4P:".1c-1R-4P",5R:".1c-1R-5R",ne:".1c-1R-ne",nw:".1c-1R-nw"}:"e,s,4P");if(1a.2J.69==8T){1a.2J=="2Q"&&(1a.2J="n,e,s,w,4P,5R,ne,nw");1d d=1a.2J.57(",");1a.2J={};1S(1d e=0;e\');/5R|4P|ne|nw/.2b(f)&&h.1j({2z:++c.2z}),"4P"==f&&h.1t("1c-3i 1c-3i-jr-fz-4P"),1a.2J[f]=".1c-1R-"+f,1a.1h.4Y(h)}}1a.fB=1b(b){b=b||1a.1h;1S(1d c in 1a.2J){1a.2J[c].69==8T&&(1a.2J[c]=a(1a.2J[c],1a.1h).1M());if(1a.cV&&1a.4t[0].5g.5D(/9y|1V|4a|1K/i)){1d d=a(1a.2J[c],1a.1h),e=0;e=/5R|ne|nw|4P|n|s/.2b(c)?d.3o():d.3e();1d f=["8C",/ne|nw|n/.2b(c)?"cf":/4P|5R|s/.2b(c)?"cg":/^e$/.2b(c)?"ce":"cd"].6y("");b.1j(f,e),1a.9S()}if(!a(1a.2J[c]).1p)6a}},1a.fB(1a.1h),1a.9T=a(".1c-1R-3v",1a.1h).8A(),1a.9T.8W(1b(){if(!b.6Z){if(1a.8X)1d a=1a.8X.5D(/1c-1R-(4P|5R|ne|nw|n|e|s|w)/i);b.3H=a&&a[1]?a[1]:"4P"}}),c.fv&&(1a.9T.1J(),a(1a.1h).1t("1c-1R-cW").3I(1b(){c.1s||(a(1a).1z("1c-1R-cW"),b.9T.1M())},1b(){c.1s||b.6Z||(a(1a).1t("1c-1R-cW"),b.9T.1J())})),1a.8I()},3b:1b(){1a.8J();1d b=1b(b){a(b).1z("1c-1R 1c-1R-1s 1c-1R-6Z").4A("1R").3d(".1R").2C(".1c-1R-3v").2A()};if(1a.cV){b(1a.1h);1d c=1a.1h;c.9U(1a.4t.1j({1o:c.1j("1o"),1l:c.3e(),1k:c.3o(),1i:c.1j("1i"),1g:c.1j("1g")})).2A()}1a.4t.1j("43",1a.fw),b(1a.4t);1e 1a},81:1b(b){1d c=!1;1S(1d d in 1a.2J)a(1a.2J[d])[0]==b.2c&&(c=!0);1e!1a.1f.1s&&c},6R:1b(b){1d d=1a.1f,e=1a.1h.1o(),f=1a.1h;1a.6Z=!0,1a.js={1i:a(1u).2e(),1g:a(1u).2k()},(f.is(".1c-2n")||/2M/.2b(f.1j("1o")))&&f.1j({1o:"2M",1i:e.1i,1g:e.1g}),a.2R.aX&&/2v/.2b(f.1j("1o"))&&f.1j({1o:"2v",1i:"3j",1g:"3j"}),1a.fC();1d g=c(1a.1r.1j("1g")),h=c(1a.1r.1j("1i"));d.1T&&(g+=a(d.1T).2k()||0,h+=a(d.1T).2e()||0),1a.1n=1a.1r.1n(),1a.1o={1g:g,1i:h},1a.26=1a.4h?{1l:f.3e(),1k:f.3o()}:{1l:f.1l(),1k:f.1k()},1a.5m=1a.4h?{1l:f.3e(),1k:f.3o()}:{1l:f.1l(),1k:f.1k()},1a.41={1g:g,1i:h},1a.6z={1l:f.3e()-f.1l(),1k:f.3o()-f.1k()},1a.fD={1g:b.3f,1i:b.3g},1a.4O=2h d.4O=="5i"?d.4O:1a.5m.1l/1a.5m.1k||1;1d i=a(".1c-1R-"+1a.3H).1j("4r");a("2m").1j("4r",i=="3j"?1a.3H+"-43":i),f.1t("1c-1R-6Z"),1a.9V("3D",b);1e!0},64:1b(b){1d c=1a.1r,d=1a.1f,e={},f=1a,g=1a.fD,h=1a.3H,i=b.3f-g.1g||0,j=b.3g-g.1i||0,k=1a.4m[h];if(!k)1e!1;1d l=k.1N(1a,[b,i,j]),m=a.2R.5u&&a.2R.3Z<7,n=1a.6z;1a.fE(b.8f);if(1a.8V||b.8f)l=1a.fF(l,b);l=1a.fG(l,b),1a.9V("43",b),c.1j({1i:1a.1o.1i+"3G",1g:1a.1o.1g+"3G",1l:1a.26.1l+"3G",1k:1a.26.1k+"3G"}),!1a.4h&&1a.7E.1p&&1a.9S(),1a.cX(l),1a.1C("43",b,1a.1c());1e!1},6S:1b(b){1a.6Z=!1;1d c=1a.1f,d=1a;if(1a.4h){1d e=1a.7E,f=e.1p&&/9y/i.2b(e[0].5g),g=f&&a.1c.6L(e[0],"1g")?0:d.6z.1k,h=f?0:d.6z.1l,i={1l:d.1r.1l()-h,1k:d.1r.1k()-g},j=1y(d.1h.1j("1g"),10)+(d.1o.1g-d.41.1g)||1q,k=1y(d.1h.1j("1i"),10)+(d.1o.1i-d.41.1i)||1q;c.1X||1a.1h.1j(a.1W(i,{1i:k,1g:j})),d.1r.1k(d.26.1k),d.1r.1l(d.26.1l),1a.4h&&!c.1X&&1a.9S()}a("2m").1j("4r","3j"),1a.1h.1z("1c-1R-6Z"),1a.9V("3M",b),1a.4h&&1a.1r.2A();1e!1},fE:1b(a){1d b=1a.1f,c,e,f,g,h;h={4G:d(b.4G)?b.4G:0,4X:d(b.4X)?b.4X:fH,3Q:d(b.3Q)?b.3Q:0,4W:d(b.4W)?b.4W:fH};if(1a.8V||a)c=h.3Q*1a.4O,f=h.4G/1a.4O,e=h.4W*1a.4O,g=h.4X/1a.4O,c>h.4G&&(h.4G=c),f>h.3Q&&(h.3Q=f),ea.1l,k=d(a.1k)&&e.3Q&&e.3Q>a.1k;j&&(a.1l=e.4G),k&&(a.1k=e.3Q),h&&(a.1l=e.4X),i&&(a.1k=e.4W);1d l=1a.41.1g+1a.5m.1l,m=1a.1o.1i+1a.26.1k,n=/5R|nw|w/.2b(g),o=/nw|ne|n/.2b(g);j&&n&&(a.1g=l-e.4G),h&&n&&(a.1g=l-e.4X),k&&o&&(a.1i=m-e.3Q),i&&o&&(a.1i=m-e.4W);1d p=!a.1l&&!a.1k;p&&!a.1g&&a.1i?a.1i=1q:p&&!a.1i&&a.1g&&(a.1g=1q);1e a},9S:1b(){1d b=1a.1f;if(!!1a.7E.1p){1d c=1a.1r||1a.1h;1S(1d d=0;d<1a.7E.1p;d++){1d e=1a.7E[d];if(!1a.8Y){1d f=[e.1j("6W"),e.1j("cY"),e.1j("cZ"),e.1j("6X")],g=[e.1j("7A"),e.1j("8S"),e.1j("7B"),e.1j("8R")];1a.8Y=a.5h(f,1b(a,b){1d c=1y(a,10)||0,d=1y(g[b],10)||0;1e c+d})}if(a.2R.5u&&(!!a(c).is(":3F")||!!a(c).4L(":3F").1p))6a;e.1j({1k:c.1k()-1a.8Y[0]-1a.8Y[2]||0,1l:c.1l()-1a.8Y[1]-1a.8Y[3]||0})}}},fC:1b(){1d b=1a.1h,c=1a.1f;1a.8Z=b.1n();if(1a.4h){1a.1r=1a.1r||a(\'<2a 30="3t:3F;">\');1d d=a.2R.5u&&a.2R.3Z<7,e=d?1:0,f=d?2:-1;1a.1r.1t(1a.4h).1j({1l:1a.1h.3e()+f,1k:1a.1h.3o()+f,1o:"2M",1g:1a.8Z.1g-e+"3G",1i:1a.8Z.1i-e+"3G",2z:++c.2z}),1a.1r.2O("2m").8A()}2l 1a.1r=1a.1h},4m:{e:1b(a,b,c){1e{1l:1a.5m.1l+b}},w:1b(a,b,c){1d d=1a.1f,e=1a.5m,f=1a.41;1e{1g:f.1g+b,1l:e.1l-b}},n:1b(a,b,c){1d d=1a.1f,e=1a.5m,f=1a.41;1e{1i:f.1i+c,1k:e.1k-c}},s:1b(a,b,c){1e{1k:1a.5m.1k+c}},4P:1b(b,c,d){1e a.1W(1a.4m.s.1N(1a,23),1a.4m.e.1N(1a,[b,c,d]))},5R:1b(b,c,d){1e a.1W(1a.4m.s.1N(1a,23),1a.4m.w.1N(1a,[b,c,d]))},ne:1b(b,c,d){1e a.1W(1a.4m.n.1N(1a,23),1a.4m.e.1N(1a,[b,c,d]))},nw:1b(b,c,d){1e a.1W(1a.4m.n.1N(1a,23),1a.4m.w.1N(1a,[b,c,d]))}},9V:1b(b,c){a.1c.56.2j(1a,b,[c,1a.1c()]),b!="43"&&1a.1C(b,c,1a.1c())},8G:{},1c:1b(){1e{4t:1a.4t,1h:1a.1h,1r:1a.1r,1o:1a.1o,26:1a.26,5m:1a.5m,41:1a.41}}}),a.1W(a.1c.1R,{3Z:"1.8.17"}),a.1c.56.2V("1R","4s",{3D:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=1b(b){a(b).1H(1b(){1d b=a(1a);b.1w("1R-b0",{1l:1y(b.1l(),10),1k:1y(b.1k(),10),1g:1y(b.1j("1g"),10),1i:1y(b.1j("1i"),10),1o:b.1j("1o")})})};2h e.4s=="5L"&&!e.4s.4k?e.4s.1p?(e.4s=e.4s[0],f(e.4s)):a.1H(e.4s,1b(a){f(a)}):f(e.4s)},43:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.5m,g=d.41,h={1k:d.26.1k-f.1k||0,1l:d.26.1l-f.1l||0,1i:d.1o.1i-g.1i||0,1g:d.1o.1g-g.1g||0},i=1b(b,e){a(b).1H(1b(){1d b=a(1a),f=a(1a).1w("1R-b0"),g={},i=e&&e.1p?e:b.4L(c.4t[0]).1p?["1l","1k"]:["1l","1k","1i","1g"];a.1H(i,1b(a,b){1d c=(f[b]||0)+(h[b]||0);c&&c>=0&&(g[b]=c||1q)}),a.2R.aX&&/2v/.2b(b.1j("1o"))&&(d.d0=!0,b.1j({1o:"2M",1i:"3j",1g:"3j"})),b.1j(g)})};2h e.4s=="5L"&&!e.4s.aJ?a.1H(e.4s,1b(a,b){i(a,b)}):i(e.4s)},3M:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=1b(b){a(b).1H(1b(){1d b=a(1a);b.1j({1o:b.1w("1R-b0").1o})})};d.d0&&(d.d0=!1,2h e.4s=="5L"&&!e.4s.aJ?a.1H(e.4s,1b(a){f(a)}):f(e.4s)),a(1a).4A("1R-b0")}}),a.1c.56.2V("1R","1X",{3M:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.7E,g=f.1p&&/9y/i.2b(f[0].5g),h=g&&a.1c.6L(f[0],"1g")?0:d.6z.1k,i=g?0:d.6z.1l,j={1l:d.26.1l-i,1k:d.26.1k-h},k=1y(d.1h.1j("1g"),10)+(d.1o.1g-d.41.1g)||1q,l=1y(d.1h.1j("1i"),10)+(d.1o.1i-d.41.1i)||1q;d.1h.1X(a.1W(j,l&&k?{1i:l,1g:k}:{}),{2i:e.ft,2p:e.fu,8g:1b(){1d c={1l:1y(d.1h.1j("1l"),10),1k:1y(d.1h.1j("1k"),10),1i:1y(d.1h.1j("1i"),10),1g:1y(d.1h.1j("1g"),10)};f&&f.1p&&a(f[0]).1j({1l:c.1l,1k:c.1k}),d.cX(c),d.9V("43",b)}})}}),a.1c.56.2V("1R","1T",{3D:1b(b,d){1d e=a(1a).1w("1R"),f=e.1f,g=e.1h,h=f.1T,i=h jt a?h.6s(0):/29/.2b(h)?g.29().6s(0):h;if(!!i){e.9W=a(i);if(/1u/.2b(h)||h==1u)e.9X={1g:0,1i:0},e.d1={1g:0,1i:0},e.70={1h:a(1u),1g:0,1i:0,1l:a(1u).1l(),1k:a(1u).1k()||1u.2m.4k.6Y};2l{1d j=a(i),k=[];a(["cf","ce","cd","cg"]).1H(1b(a,b){k[a]=c(j.1j("8C"+b))}),e.9X=j.1n(),e.d1=j.1o(),e.b1={1k:j.7X()-k[3],1l:j.8E()-k[1]};1d l=e.9X,m=e.b1.1k,n=e.b1.1l,o=a.1c.6L(i,"1g")?i.9N:n,p=a.1c.6L(i)?i.6Y:m;e.70={1h:i,1g:l.1g,1i:l.1i,1l:o,1k:p}}}},43:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.b1,g=d.9X,h=d.26,i=d.1o,j=d.8V||b.8f,k={1i:0,1g:0},l=d.9W;l[0]!=1u&&/6K/.2b(l.1j("1o"))&&(k=g),i.1g<(d.4h?g.1g:0)&&(d.26.1l=d.26.1l+(d.4h?d.1o.1g-g.1g:d.1o.1g-k.1g),j&&(d.26.1k=d.26.1l/e.4O),d.1o.1g=e.1r?g.1g:0),i.1i<(d.4h?g.1i:0)&&(d.26.1k=d.26.1k+(d.4h?d.1o.1i-g.1i:d.1o.1i),j&&(d.26.1l=d.26.1k*e.4O),d.1o.1i=d.4h?g.1i:0),d.1n.1g=d.70.1g+d.1o.1g,d.1n.1i=d.70.1i+d.1o.1i;1d m=1v.4f((d.4h?d.1n.1g-k.1g:d.1n.1g-k.1g)+d.6z.1l),n=1v.4f((d.4h?d.1n.1i-k.1i:d.1n.1i-g.1i)+d.6z.1k),o=d.9W.6s(0)==d.1h.29().6s(0),p=/2v|2M/.2b(d.9W.1j("1o"));o&&p&&(m-=d.70.1g),m+d.26.1l>=d.70.1l&&(d.26.1l=d.70.1l-m,j&&(d.26.1k=d.26.1l/d.4O)),n+d.26.1k>=d.70.1k&&(d.26.1k=d.70.1k-n,j&&(d.26.1l=d.26.1k*d.4O))},3M:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.1o,g=d.9X,h=d.d1,i=d.9W,j=a(d.1r),k=j.1n(),l=j.3e()-d.6z.1l,m=j.3o()-d.6z.1k;d.4h&&!e.1X&&/2v/.2b(i.1j("1o"))&&a(1a).1j({1g:k.1g-h.1g-g.1g,1l:l,1k:m}),d.4h&&!e.1X&&/6K/.2b(i.1j("1o"))&&a(1a).1j({1g:k.1g-h.1g-g.1g,1l:l,1k:m})}}),a.1c.56.2V("1R","5C",{3D:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.26;d.5C=d.4t.88(),d.5C.1j({2s:.25,6p:"aZ",1o:"2v",1k:f.1k,1l:f.1l,5v:0,1g:0,1i:0}).1t("1c-1R-5C").1t(2h e.5C=="3S"?e.5C:""),d.5C.2O(d.1r)},43:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f;d.5C&&d.5C.1j({1o:"2v",1k:d.26.1k,1l:d.26.1l})},3M:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f;d.5C&&d.1r&&d.1r.6s(0).8F(d.5C.6s(0))}}),a.1c.56.2V("1R","31",{43:1b(b,c){1d d=a(1a).1w("1R"),e=d.1f,f=d.26,g=d.5m,h=d.41,i=d.3H,j=e.8V||b.8f;e.31=2h e.31=="5i"?[e.31,e.31]:e.31;1d k=1v.5N((f.1l-g.1l)/(e.31[0]||1))*(e.31[0]||1),l=1v.5N((f.1k-g.1k)/(e.31[1]||1))*(e.31[1]||1);/^(4P|s|e)$/.2b(i)?(d.26.1l=g.1l+k,d.26.1k=g.1k+l):/^(ne)$/.2b(i)?(d.26.1l=g.1l+k,d.26.1k=g.1k+l,d.1o.1i=h.1i-l):/^(5R)$/.2b(i)?(d.26.1l=g.1l+k,d.26.1k=g.1k+l,d.1o.1g=h.1g-k):(d.26.1l=g.1l+k,d.26.1k=g.1k+l,d.1o.1i=h.1i-l,d.1o.1g=h.1g-k)}});1d c=1b(a){1e 1y(a,10)||0},d=1b(a){1e!63(1y(a,10))}})(2S);(1b(a,b){a.1L("1c.5a",a.1c.80,{1f:{2O:"2m",fJ:!0,6P:0,2u:"*",6c:"cT"},4U:1b(){1d b=1a;1a.1h.1t("1c-5a"),1a.d2=!1;1d c;1a.5n=1b(){c=a(b.1f.2u,b.1h[0]),c.1t("1c-d3"),c.1H(1b(){1d b=a(1a),c=b.1n();a.1w(1a,"5a-1U",{1h:1a,$1h:b,1g:c.1g,1i:c.1i,2N:c.1g+b.3e(),2T:c.1i+b.3o(),8h:!1,1E:b.4c("1c-1E"),4u:b.4c("1c-4u"),3N:b.4c("1c-3N")})})},1a.5n(),1a.9Y=c.1t("1c-d3"),1a.8I(),1a.1r=a("<2a 2B=\'1c-5a-1r\'>")},3b:1b(){1a.9Y.1z("1c-d3").4A("5a-1U"),1a.1h.1z("1c-5a 1c-5a-1s").4A("5a").3d(".5a"),1a.8J();1e 1a},6R:1b(b){1d c=1a;1a.d4=[b.3f,b.3g];if(!1a.1f.1s){1d d=1a.1f;1a.9Y=a(d.2u,1a.1h[0]),1a.1C("3D",b),a(d.2O).4Y(1a.1r),1a.1r.1j({1g:b.fK,1i:b.ju,1l:0,1k:0}),d.fJ&&1a.5n(),1a.9Y.2u(".1c-1E").1H(1b(){1d d=a.1w(1a,"5a-1U");d.8h=!0,!b.4Q&&!b.44&&(d.$1h.1z("1c-1E"),d.1E=!1,d.$1h.1t("1c-3N"),d.3N=!0,c.1C("3N",b,{3N:d.1h}))}),a(b.2c).4L().8x().1H(1b(){1d d=a.1w(1a,"5a-1U");if(d){1d e=!b.4Q&&!b.44||!d.$1h.4c("1c-1E");d.$1h.1z(e?"1c-3N":"1c-1E").1t(e?"1c-4u":"1c-3N"),d.3N=!e,d.4u=e,d.1E=e,e?c.1C("4u",b,{4u:d.1h}):c.1C("3N",b,{3N:d.1h});1e!1}})}},64:1b(b){1d c=1a;1a.d2=!0;if(!1a.1f.1s){1d d=1a.1f,e=1a.d4[0],f=1a.d4[1],g=b.3f,h=b.3g;if(e>g){1d i=g;g=e,e=i}if(f>h){1d i=h;h=f,f=i}1a.1r.1j({1g:e,1i:f,1l:g-e,1k:h-f}),1a.9Y.1H(1b(){1d i=a.1w(1a,"5a-1U");if(!!i&&i.1h!=c.1h[0]){1d j=!1;d.6c=="cT"?j=!(i.1g>g||i.2Nh||i.2Te&&i.2Nf&&i.2T *",2s:!1,3h:!1,5O:!1,7s:!0,4B:20,4C:20,5P:"3m",6c:"8d",2z:9J},4U:1b(){1d a=1a.1f;1a.58={},1a.1h.1t("1c-4D"),1a.5n(),1a.8i=1a.2X.1p?a.3H==="x"||/1g|2N/.2b(1a.2X[0].1U.1j("d6"))||/5E|d7-fO/.2b(1a.2X[0].1U.1j("6p")):!1,1a.1n=1a.1h.1n(),1a.8I()},3b:1b(){1a.1h.1z("1c-4D 1c-4D-1s"),1a.8J();1S(1d a=1a.2X.1p-1;a>=0;a--)1a.2X[a].1U.4A(1a.3z+"-1U");1e 1a},3A:1b(b,c){b==="1s"?(1a.1f[b]=c,1a.1L()[c?"1t":"1z"]("1c-4D-1s")):a.4q.3u.3A.1N(1a,23)},81:1b(b,c){1d d=1a;if(1a.b3)1e!1;if(1a.1f.1s||1a.1f.3T=="6K")1e!1;1a.d8(b);1d e=1q,f=1a,g=a(b.2c).4L().1H(1b(){if(a.1w(1a,d.3z+"-1U")==f){e=a(1a);1e!1}});a.1w(b.2c,d.3z+"-1U")==f&&(e=a(b.2c));if(!e)1e!1;if(1a.1f.3v&&!c){1d h=!1;a(1a.1f.3v,e).2C("*").8x().1H(1b(){1a==b.2c&&(h=!0)});if(!h)1e!1}1a.1O=e,1a.fP();1e!0},6R:1b(b,c,d){1d e=1a.1f,f=1a;1a.90=1a,1a.6V(),1a.1r=1a.aO(b),1a.8N(),1a.aP(),1a.1Q=1a.1r.1Q(),1a.1n=1a.1O.1n(),1a.1n={1i:1a.1n.1i-1a.2P.1i,1g:1a.1n.1g-1a.2P.1g},1a.1r.1j("1o","2M"),1a.3B=1a.1r.1j("1o"),a.1W(1a.1n,{1I:{1g:b.3f-1a.1n.1g,1i:b.3g-1a.1n.1i},29:1a.9K(),2v:1a.9L()}),1a.41=1a.8O(b),1a.86=b.3f,1a.87=b.3g,e.8M&&1a.aQ(e.8M),1a.92={4R:1a.1O.4R()[0],29:1a.1O.29()[0]},1a.1r[0]!=1a.1O[0]&&1a.1O.1J(),1a.fQ(),e.1T&&1a.aR(),e.4r&&(a("2m").1j("4r")&&(1a.d9=a("2m").1j("4r")),a("2m").1j("4r",e.4r)),e.2s&&(1a.1r.1j("2s")&&(1a.da=1a.1r.1j("2s")),1a.1r.1j("2s",e.2s)),e.2z&&(1a.1r.1j("2z")&&(1a.b4=1a.1r.1j("2z")),1a.1r.1j("2z",e.2z)),1a.1Q[0]!=1u&&1a.1Q[0].5A!="aU"&&(1a.6x=1a.1Q.1n()),1a.1C("3D",b,1a.3p()),1a.jv||1a.8N();if(!d)1S(1d g=1a.2q.1p-1;g>=0;g--)1a.2q[g].1C("4V",b,f.3p(1a));a.1c.2G&&(a.1c.2G.6u=1a),a.1c.2G&&!e.8P&&a.1c.2G.7z(1a,b),1a.67=!0,1a.1r.1t("1c-4D-1r"),1a.64(b);1e!0},64:1b(b){1a.1o=1a.8O(b),1a.3C=1a.5k("2M"),1a.9Z||(1a.9Z=1a.3C);if(1a.1f.7s){1d c=1a.1f,d=!1;1a.1Q[0]!=1u&&1a.1Q[0].5A!="aU"?(1a.6x.1i+1a.1Q[0].5w-b.3g=0;e--){1d f=1a.2X[e],g=f.1U[0],h=1a.fR(f);if(!h)6a;if(g!=1a.1O[0]&&1a.3h[h==1?"3O":"4R"]()[0]!=g&&!a.1c.4y(1a.3h[0],g)&&(1a.1f.3T=="jw-jx"?!a.1c.4y(1a.1h[0],g):!0)){1a.6A=h==1?"5o":"5S";if(1a.1f.6c=="aW"||1a.fS(f))1a.b5(b,f);2l 1P;1a.1C("71",b,1a.3p());1P}}1a.fT(b),a.1c.2G&&a.1c.2G.65(1a,b),1a.1C("8U",b,1a.3p()),1a.9Z=1a.3C;1e!1},6S:1b(b,c){if(!!b){a.1c.2G&&!1a.1f.8P&&a.1c.2G.8Q(1a,b);if(1a.1f.5O){1d d=1a,e=d.3h.1n();d.b3=!0,a(1a.1r).1X({1g:e.1g-1a.1n.29.1g-d.2P.1g+(1a.3c[0]==1u.2m?0:1a.3c[0].2k),1i:e.1i-1a.1n.29.1i-d.2P.1i+(1a.3c[0]==1u.2m?0:1a.3c[0].2e)},1y(1a.1f.5O,10)||aN,1b(){d.7y(b)})}2l 1a.7y(b,c);1e!1}},7u:1b(){1d b=1a;if(1a.67){1a.6t({2c:1q}),1a.1f.1r=="83"?1a.1O.1j(1a.8j).1z("1c-4D-1r"):1a.1O.1M();1S(1d c=1a.2q.1p-1;c>=0;c--)1a.2q[c].1C("6w",1q,b.3p(1a)),1a.2q[c].58.5Q&&(1a.2q[c].1C("9P",1q,b.3p(1a)),1a.2q[c].58.5Q=0)}1a.3h&&(1a.3h[0].4k&&1a.3h[0].4k.8F(1a.3h[0]),1a.1f.1r!="83"&&1a.1r&&1a.1r[0].4k&&1a.1r.2A(),a.1W(1a,{1r:1q,67:!1,b3:!1,db:1q}),1a.92.4R?a(1a.92.4R).9U(1a.1O):a(1a.92.29).fU(1a.1O));1e 1a},jy:1b(b){1d c=1a.dc(b&&b.fV),d=[];b=b||{},a(c).1H(1b(){1d c=(a(b.1U||1a).1Y(b.fW||"id")||"").5D(b.fX||/(.+)[-=6r](.+)/);c&&d.3k((b.a0||c[1]+"[]")+"="+(b.a0&&b.fX?c[1]:c[2]))}),!d.1p&&b.a0&&d.3k(b.a0+"=");1e d.6y("&")},jz:1b(b){1d c=1a.dc(b&&b.fV),d=[];b=b||{},c.1H(1b(){d.3k(a(b.1U||1a).1Y(b.fW||"id")||"")});1e d},cM:1b(a){1d b=1a.3C.1g,c=b+1a.2U.1l,d=1a.3C.1i,e=d+1a.2U.1k,f=a.1g,g=f+a.1l,h=a.1i,i=h+a.1k,j=1a.1n.1I.1i,k=1a.1n.1I.1g,l=d+j>h&&d+jf&&b+ka[1a.8i?"1l":"1k"]?l:f0?"5o":"5S")},df:1b(){1d a=1a.3C.1g-1a.9Z.1g;1e a!=0&&(a>0?"2N":"1g")},5n:1b(a){1a.d8(a),1a.6V();1e 1a},dg:1b(){1d a=1a.1f;1e a.b2.69==8T?[a.b2]:a.b2},dc:1b(b){1d c=1a,d=[],e=[],f=1a.dg();if(f&&b)1S(1d g=f.1p-1;g>=0;g--){1d h=a(f[g]);1S(1d i=h.1p-1;i>=0;i--){1d j=a.1w(h[i],1a.3z);j&&j!=1a&&!j.1f.1s&&e.3k([a.4e(j.1f.2X)?j.1f.2X.2j(j.1h):a(j.1f.2X,j.1h).4E(".1c-4D-1r").4E(".1c-4D-3h"),j])}}e.3k([a.4e(1a.1f.2X)?1a.1f.2X.2j(1a.1h,1q,{1f:1a.1f,1U:1a.1O}):a(1a.1f.2X,1a.1h).4E(".1c-4D-1r").4E(".1c-4D-3h"),1a]);1S(1d g=e.1p-1;g>=0;g--)e[g][0].1H(1b(){d.3k(1a)});1e a(d)},fP:1b(){1d a=1a.1O.2C(":1w("+1a.3z+"-1U)");1S(1d b=0;b<1a.2X.1p;b++)1S(1d c=0;c=0;g--){1d h=a(f[g]);1S(1d i=h.1p-1;i>=0;i--){1d j=a.1w(h[i],1a.3z);j&&j!=1a&&!j.1f.1s&&(e.3k([a.4e(j.1f.2X)?j.1f.2X.2j(j.1h[0],b,{1U:1a.1O}):a(j.1f.2X,j.1h),j]),1a.2q.3k(j))}}1S(1d g=e.1p-1;g>=0;g--){1d k=e[g][1],l=e[g][0];1S(1d i=0,m=l.1p;i=0;c--){1d d=1a.2X[c];if(d.2f!=1a.90&&1a.90&&d.1U[0]!=1a.1O[0])6a;1d e=1a.1f.fY?a(1a.1f.fY,d.1U):d.1U;b||(d.1l=e.3e(),d.1k=e.3o());1d f=e.1n();d.1g=f.1g,d.1i=f.1i}if(1a.1f.dh&&1a.1f.dh.fZ)1a.1f.dh.fZ.2j(1a);2l 1S(1d c=1a.2q.1p-1;c>=0;c--){1d f=1a.2q[c].1h.1n();1a.2q[c].58.1g=f.1g,1a.2q[c].58.1i=f.1i,1a.2q[c].58.1l=1a.2q[c].1h.3e(),1a.2q[c].58.1k=1a.2q[c].1h.3o()}1e 1a},fQ:1b(b){1d c=b||1a,d=c.1f;if(!d.3h||d.3h.69==8T){1d e=d.3h;d.3h={1h:1b(){1d b=a(1u.aE(c.1O[0].5g)).1t(e||c.1O[0].8X+" 1c-4D-3h").1z("1c-4D-1r")[0];e||(b.30.7T="3F");1e b},a1:1b(a,b){if(!e||!!d.fN)b.1k()||b.1k(c.1O.7X()-1y(c.1O.1j("7A")||0,10)-1y(c.1O.1j("7B")||0,10)),b.1l()||b.1l(c.1O.8E()-1y(c.1O.1j("8R")||0,10)-1y(c.1O.1j("8S")||0,10))}}}c.3h=a(d.3h.1h.2j(c.1h,c.1O)),c.1O.9U(c.3h),d.3h.a1(c,c.3h)},fT:1b(b){1d c=1q,d=1q;1S(1d e=1a.2q.1p-1;e>=0;e--){if(a.1c.4y(1a.1O[0],1a.2q[e].1h[0]))6a;if(1a.cM(1a.2q[e].58)){if(c&&a.1c.4y(1a.2q[e].1h[0],c.1h[0]))6a;c=1a.2q[e],d=e}2l 1a.2q[e].58.5Q&&(1a.2q[e].1C("9P",b,1a.3p(1a)),1a.2q[e].58.5Q=0)}if(!!c)if(1a.2q.1p===1)1a.2q[d].1C("5Q",b,1a.3p(1a)),1a.2q[d].58.5Q=1;2l if(1a.90!=1a.2q[d]){1d f=di,g=1q,h=1a.3C[1a.2q[d].8i?"1g":"1i"];1S(1d i=1a.2X.1p-1;i>=0;i--){if(!a.1c.4y(1a.2q[d].1h[0],1a.2X[i].1U[0]))6a;1d j=1a.2X[i][1a.2q[d].8i?"1g":"1i"];1v.4f(j-h)1a.1T[2]&&(f=1a.1T[2]+1a.1n.1I.1g),b.3g-1a.1n.1I.1i>1a.1T[3]&&(g=1a.1T[3]+1a.1n.1I.1i));if(c.31){1d h=1a.87+1v.5N((g-1a.87)/c.31[1])*c.31[1];g=1a.1T?h-1a.1n.1I.1i<1a.1T[1]||h-1a.1n.1I.1i>1a.1T[3]?h-1a.1n.1I.1i<1a.1T[1]?h+c.31[1]:h-c.31[1]:h:h;1d i=1a.86+1v.5N((f-1a.86)/c.31[0])*c.31[0];f=1a.1T?i-1a.1n.1I.1g<1a.1T[0]||i-1a.1n.1I.1g>1a.1T[2]?i-1a.1n.1I.1g<1a.1T[0]?i+c.31[0]:i-c.31[0]:i:i}}1e{1i:g-1a.1n.1I.1i-1a.1n.2v.1i-1a.1n.29.1i+(a.2R.6v&&1a.3B=="4b"?0:1a.3B=="4b"?-1a.1Q.2e():e?0:d.2e()),1g:f-1a.1n.1I.1g-1a.1n.2v.1g-1a.1n.29.1g+(a.2R.6v&&1a.3B=="4b"?0:1a.3B=="4b"?-1a.1Q.2k():e?0:d.2k())}},b5:1b(a,b,c,d){c?c[0].aD(1a.3h[0]):b.1U[0].4k.aL(1a.3h[0],1a.6A=="5o"?b.1U[0]:b.1U[0].g0),1a.a2=1a.a2?++1a.a2:1;1d e=1a,f=1a.a2;3l.5j(1b(){f==e.a2&&e.6V(!d)},0)},7y:1b(b,c){1a.b3=!1;1d d=[],e=1a;!1a.db&&1a.1O.29().1p&&1a.3h.dj(1a.1O),1a.db=1q;if(1a.1r[0]==1a.1O[0]){1S(1d f in 1a.8j)if(1a.8j[f]=="3j"||1a.8j[f]=="6K")1a.8j[f]="";1a.1O.1j(1a.8j).1z("1c-4D-1r")}2l 1a.1O.1M();1a.9O&&!c&&d.3k(1b(a){1a.1C("g1",a,1a.3p(1a.9O))}),(1a.9O||1a.92.4R!=1a.1O.4R().4E(".1c-4D-1r")[0]||1a.92.29!=1a.1O.29()[0])&&!c&&d.3k(1b(a){1a.1C("a1",a,1a.3p())});if(!a.1c.4y(1a.1h[0],1a.1O[0])){c||d.3k(1b(a){1a.1C("2A",a,1a.3p())});1S(1d f=1a.2q.1p-1;f>=0;f--)a.1c.4y(1a.2q[f].1h[0],1a.1O[0])&&!c&&(d.3k(1b(a){1e 1b(b){a.1C("g1",b,1a.3p(1a))}}.2j(1a,1a.2q[f])),d.3k(1b(a){1e 1b(b){a.1C("a1",b,1a.3p(1a))}}.2j(1a,1a.2q[f])))}1S(1d f=1a.2q.1p-1;f>=0;f--)c||d.3k(1b(a){1e 1b(b){a.1C("6w",b,1a.3p(1a))}}.2j(1a,1a.2q[f])),1a.2q[f].58.5Q&&(d.3k(1b(a){1e 1b(b){a.1C("9P",b,1a.3p(1a))}}.2j(1a,1a.2q[f])),1a.2q[f].58.5Q=0);1a.d9&&a("2m").1j("4r",1a.d9),1a.da&&1a.1r.1j("2s",1a.da),1a.b4&&1a.1r.1j("2z",1a.b4=="3j"?"":1a.b4),1a.67=!1;if(1a.8a){if(!c){1a.1C("g2",b,1a.3p());1S(1d f=0;f li > :5p-3U,> :4E(li):jC",4v:{4H:"1c-3i-95-1-e",a3:"1c-3i-95-1-s"},g4:!1,g5:1b(){1e 1a.4l.4M()===b7.4l.4M()}},4U:1b(){1d b=1a,c=b.1f;b.96=0,b.1h.1t("1c-3n 1c-1L 1c-1r-6e").3V("li").1t("1c-3n-li-jD"),b.3w=b.1h.2C(c.4H).1t("1c-3n-4H 1c-1r-6e 1c-1x-3m 1c-28-2Q").2d("dk.3n",1b(){c.1s||a(1a).1t("1c-1x-3I")}).2d("dl.3n",1b(){c.1s||a(1a).1z("1c-1x-3I")}).2d("2r.3n",1b(){c.1s||a(1a).1t("1c-1x-2r")}).2d("5b.3n",1b(){c.1s||a(1a).1z("1c-1x-2r")}),b.3w.3O().1t("1c-3n-2Y 1c-1r-6e 1c-1L-2Y 1c-28-2T");if(c.g4){1d d=b.1h.2C("a").2u(c.g5).eq(0);if(d.1p){1d e=d.5y(".1c-3n-4H");e.1p?b.1F=e:b.1F=d.5y(".1c-3n-2Y").4R()}}b.1F=b.dm(b.1F||c.1F).1t("1c-1x-3m 1c-1x-1F").7G("1c-28-2Q").7G("1c-28-1i"),b.1F.3O().1t("1c-3n-2Y-1F"),b.dn(),b.43(),b.1h.1Y("51","jE"),b.3w.1Y("51","g6").2d("6f.3n",1b(a){1e b.g7(a)}).3O().1Y("51","jF"),b.3w.4E(b.1F||"").1Y({"2W-a4":"74","2W-1E":"74",6g:-1}).3O().1J(),b.1F.1p?b.1F.1Y({"2W-a4":"7H","2W-1E":"7H",6g:0}):b.3w.eq(0).1Y("6g",0),a.2R.6v||b.3w.2C("a").1Y("6g",-1),c.73&&b.3w.2d(c.73.57(" ").6y(".3n ")+".3n",1b(a){b.b8.2j(b,a,1a),a.4N()})},dn:1b(){1d b=1a.1f;b.4v&&(a("<2L>").1t("1c-3i "+b.4v.4H).dq(1a.3w),1a.1F.3V(".1c-3i").7G(b.4v.4H).7G(b.4v.a3),1a.1h.1t("1c-3n-4v"))},dr:1b(){1a.3w.3V(".1c-3i").2A(),1a.1h.1z("1c-3n-4v")},3b:1b(){1d b=1a.1f;1a.1h.1z("1c-3n 1c-1L 1c-1r-6e").3L("51"),1a.3w.3d(".3n").1z("1c-3n-4H 1c-3n-1s 1c-1r-6e 1c-1x-3m 1c-28-2Q 1c-1x-1F 1c-1x-1s 1c-28-1i").3L("51").3L("2W-a4").3L("2W-1E").3L("6g"),1a.3w.2C("a").3L("6g"),1a.dr();1d c=1a.3w.3O().1j("6p","").3L("51").1z("1c-1r-6e 1c-1L-2Y 1c-28-2T 1c-3n-2Y 1c-3n-2Y-1F 1c-3n-1s 1c-1x-1s");(b.7F||b.jG)&&c.1j("1k","");1e a.4q.3u.3b.2j(1a)},3A:1b(b,c){a.4q.3u.3A.1N(1a,23),b=="1F"&&1a.4V(c),b=="4v"&&(1a.dr(),c&&1a.dn()),b=="1s"&&1a.3w.2V(1a.3w.3O())[c?"1t":"1z"]("1c-3n-1s 1c-1x-1s")},g7:1b(b){if(!(1a.1f.1s||b.ds||b.44)){1d c=a.1c.2E,d=1a.3w.1p,e=1a.3w.4d(b.2c),f=!1;59(b.2E){1A c.aA:1A c.9z:f=1a.3w[(e+1)%d];1P;1A c.ax:1A c.9A:f=1a.3w[(e-1+d)%d];1P;1A c.aB:1A c.av:1a.b8({2c:b.2c},b.2c),b.4N()}if(f){a(b.2c).1Y("6g",-1),a(f).1Y("6g",0),f.2r();1e!1}1e!0}},43:1b(){1d b=1a.1f,c;if(b.b6){if(a.2R.5u){1d d=1a.1h.29().1j("3t");1a.1h.29().1j("3t","3F")}c=1a.1h.29().1k(),a.2R.5u&&1a.1h.29().1j("3t",d),1a.3w.1H(1b(){c-=a(1a).3o(!0)}),1a.3w.3O().1H(1b(){a(1a).1k(1v.2F(0,c-a(1a).7X()+a(1a).1k()))}).1j("3t","3j")}2l b.7F&&(c=0,1a.3w.3O().1H(1b(){c=1v.2F(c,a(1a).1k("").1k())}).1k(c));1e 1a},4V:1b(a){1a.1f.1F=a;1d b=1a.dm(a)[0];1a.b8({2c:b},b);1e 1a},dm:1b(b){1e b?2h b=="5i"?1a.3w.2u(":eq("+b+")"):1a.3w.4E(1a.3w.4E(b)):b===!1?a([]):1a.3w.2u(":eq(0)")},b8:1b(b,c){1d d=1a.1f;if(!d.1s){if(!b.2c){if(!d.4Z)1e;1a.1F.1z("1c-1x-1F 1c-28-1i").1t("1c-1x-3m 1c-28-2Q").3V(".1c-3i").1z(d.4v.a3).1t(d.4v.4H),1a.1F.3O().1t("1c-3n-2Y-1F");1d e=1a.1F.3O(),f={1f:d,g8:a([]),g9:d.1F,ga:a([]),gb:e},g=1a.1F=a([]);1a.dt(g,e,f);1e}1d h=a(b.jH||c),i=h[0]===1a.1F[0];d.1F=d.4Z&&i?!1:1a.3w.4d(h);if(1a.96||!d.4Z&&i)1e;1d j=1a.1F,g=h.3O(),e=1a.1F.3O(),f={1f:d,g8:i&&d.4Z?a([]):h,g9:1a.1F,ga:i&&d.4Z?a([]):g,gb:e},k=1a.3w.4d(1a.1F[0])>1a.3w.4d(h[0]);1a.1F=i?a([]):h,1a.dt(g,e,f,i,k),j.1z("1c-1x-1F 1c-28-1i").1t("1c-1x-3m 1c-28-2Q").3V(".1c-3i").1z(d.4v.a3).1t(d.4v.4H),i||(h.1z("1c-1x-3m 1c-28-2Q").1t("1c-1x-1F 1c-28-1i").3V(".1c-3i").1z(d.4v.4H).1t(d.4v.a3),h.3O().1t("1c-3n-2Y-1F"));1e}},dt:1b(b,c,d,e,f){1d g=1a,h=g.1f;g.5F=b,g.6h=c,g.1w=d;1d i=1b(){if(!!g)1e g.gc.1N(g,23)};g.1C("jI",1q,g.1w),g.96=c.26()===0?b.26():c.26();if(h.94){1d j={};h.4Z&&e?j={5F:a([]),6h:c,5q:i,5o:f,7F:h.7F||h.b6}:j={5F:b,6h:c,5q:i,5o:f,7F:h.7F||h.b6},h.a5||(h.a5=h.94),h.a6||(h.a6=h.2i),h.94=a.4e(h.a5)?h.a5(j):h.a5,h.2i=a.4e(h.a6)?h.a6(j):h.a6;1d k=a.1c.3n.gd,l=h.2i,m=h.94;m&&!k[m]&&!a.2p[m]&&(m="72"),k[m]||(k[m]=1b(a){1a.72(a,{2p:m,2i:l||jJ})}),k[m](j)}2l h.4Z&&e?b.76():(c.1J(),b.1M()),i(!0);c.4R().1Y({"2W-a4":"74","2W-1E":"74",6g:-1}).5b(),b.4R().1Y({"2W-a4":"7H","2W-1E":"7H",6g:0}).2r()},gc:1b(a){1a.96=a?0:--1a.96;1a.96||(1a.1f.g3&&1a.5F.2V(1a.6h).1j({1k:"",3t:""}),1a.6h.1z("1c-3n-2Y-1F"),1a.6h.1p&&(1a.6h.29()[0].8X=1a.6h.29()[0].8X),1a.1C("71",1q,1a.1w))}}),a.1W(a.1c.3n,{3Z:"1.8.17",gd:{72:1b(b,c){b=a.1W({2p:"9R",2i:du},b,c);if(!b.6h.26())b.5F.1X({1k:"1M",7A:"1M",7B:"1M"},b);2l{if(!b.5F.26()){b.6h.1X({1k:"1J",7A:"1J",7B:"1J"},b);1e}1d d=b.5F.1j("3t"),e=0,f={},g={},h=["1k","7A","7B"],i,j=b.5F;i=j[0].30.1l,j.1l(j.29().1l()-54(j.1j("8R"))-54(j.1j("8S"))-(54(j.1j("6X"))||0)-(54(j.1j("cY"))||0)),a.1H(h,1b(c,d){g[d]="1J";1d e=(""+a.1j(b.5F[0],d)).5D(/^([\\d+-.]+)(.*)$/);f[d]={2w:e[1],97:e[2]||"3G"}}),b.5F.1j({1k:0,3t:"3F"}).1M(),b.6h.2u(":3F").1H(b.5q).4w().2u(":4F").1X(g,{8g:1b(a,c){c.7V=="1k"&&(e=c.4w-c.3D===0?0:(c.jK-c.3D)/(c.4w-c.3D)),b.5F[0].30[c.7V]=e*f[c.7V].2w+f[c.7V].97},2i:b.2i,2p:b.2p,5q:1b(){b.7F||b.5F.1j("1k",""),b.5F.1j({1l:i,3t:d}),b.5q()}})}},jL:1b(a){1a.72(a,{2p:a.5o?"b9":"9R",2i:a.5o?9J:jM})}}})})(2S);(1b(a,b){1d c=0;a.1L("1c.4i",{1f:{2O:"2m",ge:!1,9C:du,gf:1,1o:{my:"1g 1i",at:"1g 2T",cw:"7t"},6i:1q},bd:0,4U:1b(){1d b=1a,c=1a.1h[0].9G,d;1a.1h.1t("1c-4i-1V").1Y("4i","dv").1Y({51:"jN","2W-4i":"7I","2W-gg":"7H"}).2d("6f.4i",1b(c){if(!b.1f.1s&&!b.1h.7U("jO")){d=!1;1d e=a.1c.2E;59(c.2E){1A e.az:b.a7("gh",c);1P;1A e.ay:b.a7("gi",c);1P;1A e.9A:b.a7("7J",c),c.4N();1P;1A e.9z:b.a7("3O",c),c.4N();1P;1A e.av:1A e.f0:b.2t.1F&&(d=!0,c.4N());1A e.ca:if(!b.2t.1F)1e;b.2t.4a(c);1P;1A e.aw:b.1h.3W(b.77),b.4I(c);1P;3m:8k(b.dw),b.dw=5j(1b(){b.77!=b.1h.3W()&&(b.a8=1q,b.bg(1q,c))},b.1f.9C)}}}).2d("a9.4i",1b(a){d&&(d=!1,a.4N())}).2d("2r.4i",1b(){b.1f.1s||(b.a8=1q,b.7J=b.1h.3W())}).2d("5b.4i",1b(a){b.1f.1s||(8k(b.dw),b.bh=5j(1b(){b.4I(a),b.4m(a)},98))}),1a.dx(),1a.gj=1b(){1e b.gk.1N(b,23)},1a.2t=a("").1t("1c-4i").2O(a(1a.1f.2O||"2m",c)[0]).6o(1b(c){1d d=b.2t.1h[0];a(c.2c).5y(".1c-2t-1U").1p||5j(1b(){a(1u).gl("6o",1b(c){c.2c!==b.1h[0]&&c.2c!==d&&!a.1c.4y(d,c.2c)&&b.4I()})},1),5j(1b(){8k(b.bh)},13)}).2t({2r:1b(a,c){1d d=c.1U.1w("1U.4i");!1!==b.1C("2r",a,{1U:d})&&/^a0/.2b(a.aH.3T)&&b.1h.3W(d.2w)},1E:1b(a,d){1d e=d.1U.1w("1U.4i"),f=b.7J;b.1h[0]!==c.bi&&(b.1h.2r(),b.7J=f,5j(1b(){b.7J=f,b.a8=e},1)),!1!==b.1C("4a",a,{1U:e})&&b.1h.3W(e.2w),b.77=b.1h.3W(),b.4I(a),b.a8=e},5b:1b(a,c){b.2t.1h.is(":4F")&&b.1h.3W()!==b.77&&b.1h.3W(b.77)}}).2z(1a.1h.2z()+1).1j({1i:0,1g:0}).1J().1w("2t"),a.fn.7w&&1a.2t.1h.7w(),b.dz=1b(){b.1h.3L("4i")},a(3l).2d("gm",b.dz)},3b:1b(){1a.1h.1z("1c-4i-1V").3L("4i").3L("51").3L("2W-4i").3L("2W-gg"),1a.2t.1h.2A(),a(3l).3d("gm",1a.dz),a.4q.3u.3b.2j(1a)},3A:1b(b,c){a.4q.3u.3A.1N(1a,23),b==="6i"&&1a.dx(),b==="2O"&&1a.2t.1h.2O(a(c||"2m",1a.1h[0].9G)[0]),b==="1s"&&c&&1a.78&&1a.78.8l()},dx:1b(){1d b=1a,d,e;a.89(1a.1f.6i)?(d=1a.1f.6i,1a.6i=1b(b,c){c(a.1c.4i.2u(d,b.77))}):2h 1a.1f.6i=="3S"?(e=1a.1f.6i,1a.6i=1b(d,f){b.78&&b.78.8l(),b.78=a.gn({dA:e,1w:d,jP:"jQ",dB:++c,dC:1b(a,b){1a.dB===c&&f(a)},dD:1b(){1a.dB===c&&f([])}})}):1a.6i=1a.1f.6i},bg:1b(a,b){a=a!=1q?a:1a.1h.3W(),1a.77=1a.1h.3W();if(a.1p<1a.1f.gf)1e 1a.4I(b);8k(1a.bh);if(1a.1C("bg",b)!==!1)1e 1a.go(a)},go:1b(a){1a.bd++,1a.1h.1t("1c-4i-gp"),1a.6i({77:a},1a.gj)},gk:1b(a){!1a.1f.1s&&a&&a.1p?(a=1a.gq(a),1a.gr(a),1a.1C("bj")):1a.4I(),1a.bd--,1a.bd||1a.1h.1z("1c-4i-gp")},4I:1b(a){8k(1a.bh),1a.2t.1h.is(":4F")&&(1a.2t.1h.1J(),1a.2t.6w(),1a.1C("4I",a))},4m:1b(a){1a.7J!==1a.1h.3W()&&1a.1C("71",a,{1U:1a.a8})},gq:1b(b){if(b.1p&&b[0].4n&&b[0].2w)1e b;1e a.5h(b,1b(b){if(2h b=="3S")1e{4n:b,2w:b};1e a.1W({4n:b.4n||b.2w,2w:b.2w||b.4n},b)})},gr:1b(b){1d c=1a.2t.1h.aa().2z(1a.1h.2z()+1);1a.gs(c,b),1a.2t.6w(),1a.2t.5n(),c.1M(),1a.gt(),c.1o(a.1W({of:1a.1h},1a.1f.1o)),1a.1f.ge&&1a.2t.3O(2o a.f8("8W"))},gt:1b(){1d a=1a.2t.1h;a.3e(1v.2F(a.1l("").3e()+1,1a.1h.3e()))},gs:1b(b,c){1d d=1a;a.1H(c,1b(a,c){d.gu(b,c)})},gu:1b(b,c){1e a("
  • ").1w("1U.4i",c).4Y(a("").4J(c.4n)).2O(b)},a7:1b(a,b){if(!1a.2t.1h.is(":4F"))1a.bg(1q,b);2l{if(1a.2t.5p()&&/^7J/.2b(a)||1a.2t.5G()&&/^3O/.2b(a)){1a.1h.3W(1a.77),1a.2t.6w();1e}1a.2t[a](b)}},1L:1b(){1e 1a.2t.1h}}),a.1W(a.1c.4i,{gv:1b(a){1e a.6B(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")},2u:1b(b,c){1d d=2o gw(a.1c.4i.gv(c),"i");1e a.dE(b,1b(a){1e d.2b(a.4n||a.2w||a)})}})})(2S),1b(a){a.1L("1c.2t",{4U:1b(){1d b=1a;1a.1h.1t("1c-2t 1c-1L 1c-1L-2Y 1c-28-2Q").1Y({51:"jR","2W-jS":"1c-1F-dF"}).1I(1b(c){!a(c.2c).5y(".1c-2t-1U a").1p||(c.4N(),b.4a(c))}),1a.5n()},5n:1b(){1d b=1a,c=1a.1h.3V("li:4E(.1c-2t-1U):gx(a)").1t("1c-2t-1U").1Y("51","dF");c.3V("a").1t("1c-28-2Q").1Y("cj",-1).dk(1b(c){b.4V(c,a(1a).29())}).dl(1b(){b.6w()})},4V:1b(a,b){1a.6w();if(1a.6L()){1d c=b.1n().1i-1a.1h.1n().1i,d=1a.1h.2e(),e=1a.1h.1k();c<0?1a.1h.2e(d+c):c>=e&&1a.1h.2e(d+c-e+b.1k())}1a.1F=b.eq(0).3V("a").1t("1c-1x-3I").1Y("id","1c-1F-dF").4w(),1a.1C("2r",a,{1U:b})},6w:1b(){!1a.1F||(1a.1F.3V("a").1z("1c-1x-3I").3L("id"),1a.1C("5b"),1a.1F=1q)},3O:1b(a){1a.dG("3O",".1c-2t-1U:5p",a)},7J:1b(a){1a.dG("4R",".1c-2t-1U:5G",a)},5p:1b(){1e 1a.1F&&!1a.1F.jT(".1c-2t-1U").1p},5G:1b(){1e 1a.1F&&!1a.1F.jU(".1c-2t-1U").1p},dG:1b(a,b,c){if(!1a.1F)1a.4V(c,1a.1h.3V(b));2l{1d d=1a.1F[a+"jV"](".1c-2t-1U").eq(0);d.1p?1a.4V(c,d):1a.4V(c,1a.1h.3V(b))}},gi:1b(b){if(1a.6L()){if(!1a.1F||1a.5G()){1a.4V(b,1a.1h.3V(".1c-2t-1U:5p"));1e}1d c=1a.1F.1n().1i,d=1a.1h.1k(),e=1a.1h.3V(".1c-2t-1U").2u(1b(){1d b=a(1a).1n().1i-c-d+a(1a).1k();1e b<10&&b>-10});e.1p||(e=1a.1h.3V(".1c-2t-1U:5G")),1a.4V(b,e)}2l 1a.4V(b,1a.1h.3V(".1c-2t-1U").2u(!1a.1F||1a.5G()?":5p":":5G"))},gh:1b(b){if(1a.6L()){if(!1a.1F||1a.5p()){1a.4V(b,1a.1h.3V(".1c-2t-1U:5G"));1e}1d c=1a.1F.1n().1i,d=1a.1h.1k();bk=1a.1h.3V(".1c-2t-1U").2u(1b(){1d b=a(1a).1n().1i-c+d-a(1a).1k();1e b<10&&b>-10}),bk.1p||(bk=1a.1h.3V(".1c-2t-1U:5p")),1a.4V(b,bk)}2l 1a.4V(b,1a.1h.3V(".1c-2t-1U").2u(!1a.1F||1a.5p()?":5G":":5p"))},6L:1b(){1e 1a.1h.1k()<1a.1h[a.fn.7V?"7V":"1Y"]("6Y")},4a:1b(a){1a.1C("1E",a,{1U:1a.1F})}})}(2S);(1b(a,b){1d c,d,e,f,g="1c-1K 1c-1L 1c-1x-3m 1c-28-2Q",h="1c-1x-3I 1c-1x-1F ",i="1c-1K-4v-99 1c-1K-3i-99 1c-1K-4J-4v 1c-1K-4J-3i-6C 1c-1K-4J-3i-6D 1c-1K-4J-99",j=1b(){1d b=a(1a).2C(":1c-1K");5j(1b(){b.1K("5n")},1)},k=1b(b){1d c=b.8y,d=b.dH,e=a([]);c&&(d?e=a(d).2C("[8y=\'"+c+"\']"):e=a("[8y=\'"+c+"\']",b.9G).2u(1b(){1e!1a.dH}));1e e};a.1L("1c.1K",{1f:{1s:1q,4J:!0,4n:1q,4v:{6C:1q,6D:1q}},4U:1b(){1a.1h.5y("dH").3d("6e.1K").2d("6e.1K",j),2h 1a.1f.1s!="dI"&&(1a.1f.1s=1a.1h.7U("1s")),1a.gy(),1a.dJ=!!1a.3x.1Y("3P");1d b=1a,h=1a.1f,i=1a.3T==="8m"||1a.3T==="8n",l="1c-1x-3I"+(i?"":" 1c-1x-1F"),m="1c-1x-2r";h.4n===1q&&(h.4n=1a.3x.4g()),1a.1h.is(":1s")&&(h.1s=!0),1a.3x.1t(g).1Y("51","1K").2d("dk.1K",1b(){h.1s||(a(1a).1t("1c-1x-3I"),1a===c&&a(1a).1t("1c-1x-1F"))}).2d("dl.1K",1b(){h.1s||a(1a).1z(l)}).2d("1I.1K",1b(a){h.1s&&(a.4N(),a.fa())}),1a.1h.2d("2r.1K",1b(){b.3x.1t(m)}).2d("5b.1K",1b(){b.3x.1z(m)}),i&&(1a.1h.2d("71.1K",1b(){f||b.5n()}),1a.3x.2d("6o.1K",1b(a){h.1s||(f=!1,d=a.3f,e=a.3g)}).2d("7Z.1K",1b(a){!h.1s&&(d!==a.3f||e!==a.3g)&&(f=!0)})),1a.3T==="8m"?1a.3x.2d("1I.1K",1b(){if(h.1s||f)1e!1;a(1a).7G("1c-1x-1F"),b.3x.1Y("2W-79",b.1h[0].bl)}):1a.3T==="8n"?1a.3x.2d("1I.1K",1b(){if(h.1s||f)1e!1;a(1a).1t("1c-1x-1F"),b.3x.1Y("2W-79","7H");1d c=b.1h[0];k(c).4E(c).5h(1b(){1e a(1a).1K("1L")[0]}).1z("1c-1x-1F").1Y("2W-79","74")}):(1a.3x.2d("6o.1K",1b(){if(h.1s)1e!1;a(1a).1t("1c-1x-1F"),c=1a,a(1u).gl("7Z",1b(){c=1q})}).2d("7Z.1K",1b(){if(h.1s)1e!1;a(1a).1z("1c-1x-1F")}).2d("6f.1K",1b(b){if(h.1s)1e!1;(b.2E==a.1c.2E.aB||b.2E==a.1c.2E.av)&&a(1a).1t("1c-1x-1F")}).2d("ab.1K",1b(){a(1a).1z("1c-1x-1F")}),1a.3x.is("a")&&1a.3x.ab(1b(b){b.2E===a.1c.2E.aB&&a(1a).1I()})),1a.3A("1s",h.1s),1a.dK()},gy:1b(){1a.1h.is(":8m")?1a.3T="8m":1a.1h.is(":8n")?1a.3T="8n":1a.1h.is("1V")?1a.3T="1V":1a.3T="1K";if(1a.3T==="8m"||1a.3T==="8n"){1d a=1a.1h.4L().2u(":5G"),b="4n[1S=\'"+1a.1h.1Y("id")+"\']";1a.3x=a.2C(b),1a.3x.1p||(a=a.1p?a.gz():1a.1h.gz(),1a.3x=a.2u(b),1a.3x.1p||(1a.3x=a.2C(b))),1a.1h.1t("1c-1r-3F-gA");1d c=1a.1h.is(":bl");c&&1a.3x.1t("1c-1x-1F"),1a.3x.1Y("2W-79",c)}2l 1a.3x=1a.1h},1L:1b(){1e 1a.3x},3b:1b(){1a.1h.1z("1c-1r-3F-gA"),1a.3x.1z(g+" "+h+" "+i).3L("51").3L("2W-79").4g(1a.3x.2C(".1c-1K-4J").4g()),1a.dJ||1a.3x.3L("3P"),a.4q.3u.3b.2j(1a)},3A:1b(b,c){a.4q.3u.3A.1N(1a,23);b==="1s"?c?1a.1h.7U("1s",!0):1a.1h.7U("1s",!1):1a.dK()},5n:1b(){1d b=1a.1h.is(":1s");b!==1a.1f.1s&&1a.3A("1s",b),1a.3T==="8n"?k(1a.1h[0]).1H(1b(){a(1a).is(":bl")?a(1a).1K("1L").1t("1c-1x-1F").1Y("2W-79","7H"):a(1a).1K("1L").1z("1c-1x-1F").1Y("2W-79","74")}):1a.3T==="8m"&&(1a.1h.is(":bl")?1a.3x.1t("1c-1x-1F").1Y("2W-79","7H"):1a.3x.1z("1c-1x-1F").1Y("2W-79","74"))},dK:1b(){if(1a.3T==="1V")1a.1f.4n&&1a.1h.3W(1a.1f.4n);2l{1d b=1a.3x.1z(i),c=a("<2L>",1a.1h[0].9G).1t("1c-1K-4J").4g(1a.1f.4n).2O(b.aa()).4J(),d=1a.1f.4v,e=d.6C&&d.6D,f=[];d.6C||d.6D?(1a.1f.4J&&f.3k("1c-1K-4J-3i"+(e?"s":d.6C?"-6C":"-6D")),d.6C&&b.fU("<2L 2B=\'1c-1K-3i-6C 1c-3i "+d.6C+"\'>"),d.6D&&b.4Y("<2L 2B=\'1c-1K-3i-6D 1c-3i "+d.6D+"\'>"),1a.1f.4J||(f.3k(e?"1c-1K-4v-99":"1c-1K-3i-99"),1a.dJ||b.1Y("3P",c))):f.3k("1c-1K-4J-99"),b.1t(f.6y(" "))}}}),a.1L("1c.bm",{1f:{2X:":1K, :jW, :6e, :8m, :8n, a, :1w(1K)"},4U:1b(){1a.1h.1t("1c-bm")},9B:1b(){1a.5n()},3A:1b(b,c){b==="1s"&&1a.8o.1K("5M",b,c),a.4q.3u.3A.1N(1a,23)},5n:1b(){1d b=1a.1h.1j("6A")==="dL";1a.8o=1a.1h.2C(1a.1f.2X).2u(":1c-1K").1K("5n").4w().4E(":1c-1K").1K().4w().5h(1b(){1e a(1a).1K("1L")[0]}).1z("1c-28-2Q 1c-28-1g 1c-28-2N").2u(":5p").1t(b?"1c-28-2N":"1c-28-1g").4w().2u(":5G").1t(b?"1c-28-1g":"1c-28-2N").4w().4w()},3b:1b(){1a.1h.1z("1c-bm"),1a.8o.5h(1b(){1e a(1a).1K("1L")[0]}).1z("1c-28-1g 1c-28-2N").4w().1K("3b"),a.4q.3u.3b.2j(1a)}})})(2S);(1b(a,b){1d c="1c-1Z 1c-1L 1c-1L-2Y 1c-28-2Q ",d={8o:!0,1k:!0,4W:!0,4X:!0,3Q:!0,4G:!0,1l:!0},e={4W:!0,4X:!0,3Q:!0,4G:!0},f=a.jX||{3W:!0,1j:!0,4g:!0,4J:!0,1w:!0,1l:!0,1k:!0,1n:!0,1I:!0};a.1L("1c.1Z",{1f:{gB:!0,8o:{},dM:!0,ac:"4I",bn:"",2n:!0,1J:1q,1k:"3j",4W:!1,4X:!1,3Q:98,4G:98,9a:!1,1o:{my:"82",at:"82",cw:"aK",9F:1b(b){1d c=a(1a).1j(b).1n().1i;c<0&&a(1a).1j("1i",b.1i-c)}},1R:!0,1M:1q,9H:!0,3P:"",1l:du,2z:9J},4U:1b(){1a.9b=1a.1h.1Y("3P"),2h 1a.9b!="3S"&&(1a.9b=""),1a.1f.3P=1a.1f.3P||1a.9b;1d b=1a,d=b.1f,e=d.3P||"&#gC;",f=a.1c.1Z.gD(b.1h),g=(b.3y=a("<2a>")).2O(1u.2m).1J().1t(c+d.bn).1j({2z:d.2z}).1Y("6g",-1).1j("jY",0).6f(1b(c){d.dM&&!c.cr()&&c.2E&&c.2E===a.1c.2E.aw&&(b.4I(c),c.4N())}).1Y({51:"1Z","2W-jZ":f}).6o(1b(a){b.dN(!1,a)}),h=b.1h.1M().3L("3P").1t("1c-1Z-2Y 1c-1L-2Y").2O(g),i=(b.gE=a("<2a>")).1t("1c-1Z-bo 1c-1L-4H 1c-28-2Q 1c-1r-8p").dq(g),j=a(\'\').1t("1c-1Z-bo-4I 1c-28-2Q").1Y("51","1K").3I(1b(){j.1t("1c-1x-3I")},1b(){j.1z("1c-1x-3I")}).2r(1b(){j.1t("1c-1x-2r")}).5b(1b(){j.1z("1c-1x-2r")}).1I(1b(a){b.4I(a);1e!1}).2O(i),k=(b.gF=a("<2L>")).1t("1c-3i 1c-3i-k0").4J(d.ac).2O(j),l=a("<2L>").1t("1c-1Z-3P").1Y("id",f).4g(e).dq(i);a.4e(d.dO)&&!a.4e(d.bp)&&(d.bp=d.dO),i.2C("*").2V(i).8A(),d.2n&&a.fn.2n&&b.dP(),d.1R&&a.fn.1R&&b.dQ(),b.dR(d.8o),b.ad=!1,a.fn.7w&&g.7w()},9B:1b(){1a.1f.gB&&1a.bj()},3b:1b(){1d a=1a;a.3q&&a.3q.3b(),a.3y.1J(),a.1h.3d(".1Z").4A("1Z").1z("1c-1Z-2Y 1c-1L-2Y").1J().2O("2m"),a.3y.2A(),a.9b&&a.1h.1Y("3P",a.9b);1e a},1L:1b(){1e 1a.3y},4I:1b(b){1d c=1a,d,e;if(!1!==c.1C("bp",b)){c.3q&&c.3q.3b(),c.3y.3d("a9.1c-1Z"),c.ad=!1,c.1f.1J?c.3y.1J(c.1f.1J,1b(){c.1C("4I",b)}):(c.3y.1J(),c.1C("4I",b)),a.1c.1Z.3q.43(),c.1f.9a&&(d=0,a(".1c-1Z").1H(1b(){1a!==c.3y[0]&&(e=a(1a).1j("z-4d"),63(e)||(d=1v.2F(d,e)))}),a.1c.1Z.5T=d);1e c}},k1:1b(){1e 1a.ad},dN:1b(b,c){1d d=1a,e=d.1f,f;if(e.9a&&!b||!e.9H&&!e.9a)1e d.1C("2r",c);e.2z>a.1c.1Z.5T&&(a.1c.1Z.5T=e.2z),d.3q&&(a.1c.1Z.5T+=1,d.3q.$el.1j("z-4d",a.1c.1Z.3q.5T=a.1c.1Z.5T)),f={2e:d.1h.2e(),2k:d.1h.2k()},a.1c.1Z.5T+=1,d.3y.1j("z-4d",a.1c.1Z.5T),d.1h.1Y(f),d.1C("2r",c);1e d},bj:1b(){if(!1a.ad){1d b=1a,c=b.1f,d=b.3y;b.3q=c.9a?2o a.1c.1Z.3q(b):1q,b.dS(),b.dT(c.1o),d.1M(c.1M),b.dN(!0),c.9a&&d.2d("6f.1c-1Z",1b(b){if(b.2E===a.1c.2E.ca){1d c=a(":aC",1a),d=c.2u(":5p"),e=c.2u(":5G");if(b.2c===e[0]&&!b.8f){d.2r(1);1e!1}if(b.2c===d[0]&&b.8f){e.2r(1);1e!1}}}),a(b.1h.2C(":aC").6s().4z(d.2C(".1c-1Z-bq :aC").6s().4z(d.6s()))).eq(0).2r(),b.ad=!0,b.1C("bj");1e b}},dR:1b(b){1d c=1a,d=!1,e=a("<2a>").1t("1c-1Z-bq 1c-1L-2Y 1c-1r-8p"),g=a("<2a>").1t("1c-1Z-bm").2O(e);c.3y.2C(".1c-1Z-bq").2A(),2h b=="5L"&&b!==1q&&a.1H(b,1b(){1e!(d=!0)}),d&&(a.1H(b,1b(b,d){d=a.4e(d)?{1I:d,4J:b}:d;1d e=a(\'<1K 3T="1K">\').1I(1b(){d.1I.1N(c.1h[0],23)}).2O(g);a.1H(d,1b(a,b){a!=="1I"&&(a in f?e[a](b):e.1Y(a,b))}),a.fn.1K&&e.1K()}),e.2O(c.3y))},dP:1b(){1b f(a){1e{1o:a.1o,1n:a.1n}}1d b=1a,c=b.1f,d=a(1u),e;b.3y.2n({7u:".1c-1Z-2Y, .1c-1Z-bo-4I",3v:".1c-1Z-bo",1T:"1u",3D:1b(d,g){e=c.1k==="3j"?"3j":a(1a).1k(),a(1a).1k(a(1a).1k()).1t("1c-1Z-67"),b.1C("cJ",d,f(g))},65:1b(a,c){b.1C("65",a,f(c))},3M:1b(g,h){c.1o=[h.1o.1g-d.2k(),h.1o.1i-d.2e()],a(1a).1z("1c-1Z-67").1k(e),b.1C("cK",g,f(h)),a.1c.1Z.3q.43()}})},dQ:1b(c){1b h(a){1e{41:a.41,5m:a.5m,1o:a.1o,26:a.26}}c=c===b?1a.1f.1R:c;1d d=1a,e=d.1f,f=d.3y.1j("1o"),g=2h c=="3S"?c:"n,e,s,w,4P,5R,ne,nw";d.3y.1R({7u:".1c-1Z-2Y",1T:"1u",4s:d.1h,4X:e.4X,4W:e.4W,4G:e.4G,3Q:d.dU(),2J:g,3D:1b(b,c){a(1a).1t("1c-1Z-6Z"),d.1C("k2",b,h(c))},43:1b(a,b){d.1C("43",a,h(b))},3M:1b(b,c){a(1a).1z("1c-1Z-6Z"),e.1k=a(1a).1k(),e.1l=a(1a).1l(),d.1C("k3",b,h(c)),a.1c.1Z.3q.43()}}).1j("1o",f).2C(".1c-1R-4P").1t("1c-3i 1c-3i-k4-fz-4P")},dU:1b(){1d a=1a.1f;1e a.1k==="3j"?a.3Q:1v.3J(a.3Q,a.1k)},dT:1b(b){1d c=[],d=[0,0],e;if(b){if(2h b=="3S"||2h b=="5L"&&"0"in b)c=b.57?b.57(" "):[b[0],b[1]],c.1p===1&&(c[1]=c[0]),a.1H(["1g","1i"],1b(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.6y(" "),at:c.6y(" "),1n:d.6y(" ")};b=a.1W({},a.1c.1Z.3u.1f.1o,b)}2l b=a.1c.1Z.3u.1f.1o;e=1a.3y.is(":4F"),e||1a.3y.1M(),1a.3y.1j({1i:0,1g:0}).1o(a.1W({of:3l},b)),e||1a.3y.1J()},cq:1b(b){1d c=1a,f={},g=!1;a.1H(b,1b(a,b){c.3A(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&1a.dS(),1a.3y.is(":1w(1R)")&&1a.3y.1R("5M",f)},3A:1b(b,d){1d e=1a,f=e.3y;59(b){1A"dO":b="bp";1P;1A"8o":e.dR(d);1P;1A"ac":e.gF.4J(""+d);1P;1A"bn":f.1z(e.1f.bn).1t(c+d);1P;1A"1s":d?f.1t("1c-1Z-1s"):f.1z("1c-1Z-1s");1P;1A"2n":1d g=f.is(":1w(2n)");g&&!d&&f.2n("3b"),!g&&d&&e.dP();1P;1A"1o":e.dT(d);1P;1A"1R":1d h=f.is(":1w(1R)");h&&!d&&f.1R("3b"),h&&2h d=="3S"&&f.1R("5M","2J",d),!h&&d!==!1&&e.dQ(d);1P;1A"3P":a(".1c-1Z-3P",e.gE).4g(""+(d||"&#gC;"))}a.4q.3u.3A.1N(e,23)},dS:1b(){1d b=1a.1f,c,d,e=1a.3y.is(":4F");1a.1h.1M().1j({1l:"3j",3Q:0,1k:0}),b.4G>b.1l&&(b.1l=b.4G),c=1a.3y.1j({1k:"3j",1l:b.1l}).1k(),d=1v.2F(0,b.3Q-c);if(b.1k==="3j")if(a.8B.3Q)1a.1h.1j({3Q:d,1k:"3j"});2l{1a.3y.1M();1d f=1a.1h.1j("1k","3j").1k();e||1a.3y.1J(),1a.1h.1k(1v.2F(f,d))}2l 1a.1h.1k(1v.2F(b.1k-c,0));1a.3y.is(":1w(1R)")&&1a.3y.1R("5M","3Q",1a.dU())}}),a.1W(a.1c.1Z,{3Z:"1.8.17",7K:0,5T:0,gD:1b(a){1d b=a.1Y("id");b||(1a.7K+=1,b=1a.7K);1e"1c-1Z-3P-"+b},3q:1b(b){1a.$el=a.1c.1Z.3q.cp(b)}}),a.1W(a.1c.1Z.3q,{7a:[],dV:[],5T:0,gG:a.5h("2r,6o,7Z,6f,a9,1I".57(","),1b(a){1e a+".1Z-3q"}).6y(" "),cp:1b(b){1a.7a.1p===0&&(5j(1b(){a.1c.1Z.3q.7a.1p&&a(1u).2d(a.1c.1Z.3q.gG,1b(b){if(a(b.2c).2z()").1t("1c-1L-3q")).2O(1u.2m).1j({1l:1a.1l(),1k:1a.1k()});a.fn.7w&&c.7w(),1a.7a.3k(c);1e c},3b:1b(b){1d c=a.ae(b,1a.7a);c!=-1&&1a.dV.3k(1a.7a.9Q(c,1)[0]),1a.7a.1p===0&&a([1u,3l]).3d(".1Z-3q"),b.2A();1d d=0;a.1H(1a.7a,1b(){d=1v.2F(d,1a.1j("z-4d"))}),1a.5T=d},1k:1b(){1d b,c;if(a.2R.5u&&a.2R.3Z<7){b=1v.2F(1u.5z.6Y,1u.2m.6Y),c=1v.2F(1u.5z.5w,1u.2m.5w);1e b").2O(1a.1h).1t("1c-48-3X 1c-1L-4H"+(d.3X==="3J"||d.3X==="2F"?" 1c-48-3X-"+d.3X:"")));1S(1d i=e.1p;ic&&(f=c,g=a(1a),i=b)}),c.3X===!0&&1a.2g(1)===c.3J&&(i+=1,g=a(1a.2J[i])),j=1a.dX(b,i);if(j===!1)1e!1;1a.br=!0,h.9d=i,g.1t("1c-1x-1F").2r(),k=g.1n(),l=!a(b.2c).4L().8x().is(".1c-48-3v"),1a.9e=l?{1g:0,1i:0}:{1g:b.3f-k.1g-g.1l()/2,1i:b.3g-k.1i-g.1k()/2-(1y(g.1j("6W"),10)||0)-(1y(g.1j("cZ"),10)||0)+(1y(g.1j("6T"),10)||0)},1a.2J.4c("1c-1x-3I")||1a.bs(b,i,e),1a.7b=!0;1e!0},6R:1b(a){1e!0},64:1b(a){1d b={x:a.3f,y:a.3g},c=1a.e0(b);1a.bs(a,1a.9d,c);1e!1},6S:1b(a){1a.2J.1z("1c-1x-1F"),1a.br=!1,1a.dY(a,1a.9d),1a.4m(a,1a.9d),1a.9d=1q,1a.9e=1q,1a.7b=!1;1e!1},dW:1b(){1a.5c=1a.1f.5c==="5d"?"5d":"6j"},e0:1b(a){1d b,c,d,e,f;1a.5c==="6j"?(b=1a.dZ.1l,c=a.x-1a.8Z.1g-(1a.9e?1a.9e.1g:0)):(b=1a.dZ.1k,c=a.y-1a.8Z.1i-(1a.9e?1a.9e.1i:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),1a.5c==="5d"&&(d=1-d),e=1a.6k()-1a.52(),f=1a.52()+d*e;1e 1a.5U(f)},dX:1b(a,b){1d c={3v:1a.2J[b],2w:1a.2w()};1a.1f.2g&&1a.1f.2g.1p&&(c.2w=1a.2g(b),c.2g=1a.2g());1e 1a.1C("3D",a,c)},bs:1b(a,b,c){1d d,e,f;1a.1f.2g&&1a.1f.2g.1p?(d=1a.2g(b?0:1),1a.1f.2g.1p===2&&1a.1f.3X===!0&&(b===0&&c>d||b===1&&c1)1a.1f.2g[b]=1a.5U(c),1a.6l(),1a.4m(1q,b);2l{if(!23.1p)1e 1a.e1();if(!a.89(23[0]))1e 1a.1f.2g&&1a.1f.2g.1p?1a.e1(b):1a.2w();d=1a.1f.2g,e=23[0];1S(f=0;f=1a.6k())1e 1a.6k();1d b=1a.1f.8g>0?1a.1f.8g:1,c=(a-1a.52())%b,d=a-c;1v.4f(c)*2>=b&&(d+=c>0?b:-b);1e 54(d.gH(5))},52:1b(){1e 1a.1f.3J},6k:1b(){1e 1a.1f.2F},6l:1b(){1d b=1a.1f.3X,c=1a.1f,d=1a,e=1a.7b?!1:c.1X,f,g={},h,i,j,k;1a.1f.2g&&1a.1f.2g.1p?1a.2J.1H(1b(b,i){f=(d.2g(b)-d.52())/(d.6k()-d.52())*3R,g[d.5c==="6j"?"1g":"2T"]=f+"%",a(1a).3M(1,1)[e?"1X":"1j"](g,c.1X),d.1f.3X===!0&&(d.5c==="6j"?(b===0&&d.3X.3M(1,1)[e?"1X":"1j"]({1g:f+"%"},c.1X),b===1&&d.3X[e?"1X":"1j"]({1l:f-h+"%"},{2H:!1,2i:c.1X})):(b===0&&d.3X.3M(1,1)[e?"1X":"1j"]({2T:f+"%"},c.1X),b===1&&d.3X[e?"1X":"1j"]({1k:f-h+"%"},{2H:!1,2i:c.1X}))),h=f}):(i=1a.2w(),j=1a.52(),k=1a.6k(),f=k!==j?(i-j)/(k-j)*3R:0,g[d.5c==="6j"?"1g":"2T"]=f+"%",1a.3v.3M(1,1)[e?"1X":"1j"](g,c.1X),b==="3J"&&1a.5c==="6j"&&1a.3X.3M(1,1)[e?"1X":"1j"]({1l:f+"%"},c.1X),b==="2F"&&1a.5c==="6j"&&1a.3X[e?"1X":"1j"]({1l:3R-f+"%"},{2H:!1,2i:c.1X}),b==="3J"&&1a.5c==="5d"&&1a.3X.3M(1,1)[e?"1X":"1j"]({1k:f+"%"},c.1X),b==="2F"&&1a.5c==="5d"&&1a.3X[e?"1X":"1j"]({1k:3R-f+"%"},{2H:!1,2i:c.1X}))}}),a.1W(a.1c.48,{3Z:"1.8.17"})})(2S);(1b(a,b){1b f(){1e++d}1b e(){1e++c}1d c=0,d=0;a.1L("1c.1D",{1f:{2V:1q,bt:1q,7M:!1,53:1q,4Z:!1,aG:1q,1s:[],aF:1q,73:"1I",fx:1q,gI:"1c-1D-",5V:1q,e2:"<2a>",2A:1q,4a:1q,1M:1q,e3:"k6&#k7;",gJ:"
  • <2L>#{4n}
  • "},4U:1b(){1a.af(!0)},3A:1b(a,b){if(a=="1E"){if(1a.1f.4Z&&b==1a.1f.1E)1e;1a.4a(b)}2l 1a.1f[a]=b,1a.af()},e4:1b(a){1e a.3P&&a.3P.6B(/\\s/g,"6r").6B(/[^\\w\\k8-\\k9-]/g,"")||1a.1f.gI+e()},9f:1b(a){1e a.6B(/:/g,"\\\\:")},8q:1b(){1d b=1a.53||(1a.53=1a.1f.53.8y||"1c-1D-"+f());1e a.53.1N(1q,[b].4z(a.fl(23)))},5W:1b(a,b){1e{g6:a,ag:b,4d:1a.2I.4d(a)}},bu:1b(){1a.3r.2u(".1c-1x-bv").1z("1c-1x-bv").2C("2L:1w(4n.1D)").1H(1b(){1d b=a(1a);b.4g(b.1w("4n.1D")).4A("4n.1D")})},af:1b(c){1b m(b,c){b.1j("6p",""),!a.8B.2s&&c.2s&&b[0].30.gK("2u")}1d d=1a,e=1a.1f,f=/^#.+/;1a.7I=1a.1h.2C("ka,dy").eq(0),1a.3r=a(" > li:gx(a[4l])",1a.7I),1a.2I=1a.3r.5h(1b(){1e a("a",1a)[0]}),1a.4j=a([]),1a.2I.1H(1b(b,c){1d g=a(c).1Y("4l"),h=g.57("#")[0],i;h&&(h===b7.bw().57("#")[0]||(i=a("kb")[0])&&h===i.4l)&&(g=c.7N,c.4l=g);if(f.2b(g))d.4j=d.4j.2V(d.1h.2C(d.9f(g)));2l if(g&&g!=="#"){a.1w(c,"4l.1D",g),a.1w(c,"5V.1D",g.6B(/#.*$/,""));1d j=d.e4(c);c.4l="#"+j;1d k=d.1h.2C("#"+j);k.1p||(k=a(e.e2).1Y("id",j).1t("1c-1D-ag 1c-1L-2Y 1c-28-2T").kc(d.4j[b-1]||d.7I),k.1w("3b.1D",!0)),d.4j=d.4j.2V(k)}2l e.1s.3k(b)}),c?(1a.1h.1t("1c-1D 1c-1L 1c-1L-2Y 1c-28-2Q"),1a.7I.1t("1c-1D-gL 1c-1r-6e 1c-1r-8p 1c-1L-4H 1c-28-2Q"),1a.3r.1t("1c-1x-3m 1c-28-1i"),1a.4j.1t("1c-1D-ag 1c-1L-2Y 1c-28-2T"),e.1E===b?(b7.7N&&1a.2I.1H(1b(a,b){if(b.7N==b7.7N){e.1E=a;1e!1}}),2h e.1E!="5i"&&e.53&&(e.1E=1y(d.8q(),10)),2h e.1E!="5i"&&1a.3r.2u(".1c-1D-1E").1p&&(e.1E=1a.3r.4d(1a.3r.2u(".1c-1D-1E"))),e.1E=e.1E||(1a.3r.1p?0:-1)):e.1E===1q&&(e.1E=-1),e.1E=e.1E>=0&&1a.2I[e.1E]||e.1E<0?e.1E:0,e.1s=a.kd(e.1s.4z(a.5h(1a.3r.2u(".1c-1x-1s"),1b(a,b){1e d.3r.4d(a)}))).8U(),a.ae(e.1E,e.1s)!=-1&&e.1s.9Q(a.ae(e.1E,e.1s),1),1a.4j.1t("1c-1D-1J"),1a.3r.1z("1c-1D-1E 1c-1x-1F"),e.1E>=0&&1a.2I.1p&&(d.1h.2C(d.9f(d.2I[e.1E].7N)).1z("1c-1D-1J"),1a.3r.eq(e.1E).1t("1c-1D-1E 1c-1x-1F"),d.1h.2H("1D",1b(){d.1C("1M",1q,d.5W(d.2I[e.1E],d.1h.2C(d.9f(d.2I[e.1E].7N))[0]))}),1a.5V(e.1E)),a(3l).2d("ke",1b(){d.3r.2V(d.2I).3d(".1D"),d.3r=d.2I=d.4j=1q})):e.1E=1a.3r.4d(1a.3r.2u(".1c-1D-1E")),1a.1h[e.4Z?"1t":"1z"]("1c-1D-4Z"),e.53&&1a.8q(e.1E,e.53);1S(1d g=0,h;h=1a.3r[g];g++)a(h)[a.ae(g,e.1s)!=-1&&!a(h).4c("1c-1D-1E")?"1t":"1z"]("1c-1x-1s");e.7M===!1&&1a.2I.4A("7M.1D"),1a.3r.2V(1a.2I).3d(".1D");if(e.73!=="8W"){1d i=1b(a,b){b.is(":4E(.1c-1x-1s)")&&b.1t("1c-1x-"+a)},j=1b(a,b){b.1z("1c-1x-"+a)};1a.3r.2d("8W.1D",1b(){i("3I",a(1a))}),1a.3r.2d("gM.1D",1b(){j("3I",a(1a))}),1a.2I.2d("2r.1D",1b(){i("2r",a(1a).5y("li"))}),1a.2I.2d("5b.1D",1b(){j("2r",a(1a).5y("li"))})}1d k,l;e.fx&&(a.89(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);1d n=l?1b(b,c){a(b).5y("li").1t("1c-1D-1E 1c-1x-1F"),c.1J().1z("1c-1D-1J").1X(l,l.2i||"gN",1b(){m(c,l),d.1C("1M",1q,d.5W(b,c[0]))})}:1b(b,c){a(b).5y("li").1t("1c-1D-1E 1c-1x-1F"),c.1z("1c-1D-1J"),d.1C("1M",1q,d.5W(b,c[0]))},o=k?1b(a,b){b.1X(k,k.2i||"gN",1b(){d.3r.1z("1c-1D-1E 1c-1x-1F"),b.1t("1c-1D-1J"),m(b,k),d.1h.3Y("1D")})}:1b(a,b,c){d.3r.1z("1c-1D-1E 1c-1x-1F"),b.1t("1c-1D-1J"),d.1h.3Y("1D")};1a.2I.2d(e.73+".1D",1b(){1d b=1a,c=a(b).5y("li"),f=d.4j.2u(":4E(.1c-1D-1J)"),g=d.1h.2C(d.9f(b.7N));if(c.4c("1c-1D-1E")&&!e.4Z||c.4c("1c-1x-1s")||c.4c("1c-1x-bv")||d.4j.2u(":94").1p||d.1C("4a",1q,d.5W(1a,g[0]))===!1){1a.5b();1e!1}e.1E=d.2I.4d(1a),d.8l();if(e.4Z){if(c.4c("1c-1D-1E")){e.1E=-1,e.53&&d.8q(e.1E,e.53),d.1h.2H("1D",1b(){o(b,f)}).3Y("1D"),1a.5b();1e!1}if(!f.1p){e.53&&d.8q(e.1E,e.53),d.1h.2H("1D",1b(){n(b,g)}),d.5V(d.2I.4d(1a)),1a.5b();1e!1}}e.53&&d.8q(e.1E,e.53);if(g.1p)f.1p&&d.1h.2H("1D",1b(){o(b,f)}),d.1h.2H("1D",1b(){n(b,g)}),d.5V(d.2I.4d(1a));2l 7O"2S kf kg: kh ki kj.";a.2R.5u&&1a.5b()}),1a.2I.2d("1I.1D",1b(){1e!1})},9g:1b(a){2h a=="3S"&&(a=1a.2I.4d(1a.2I.2u("[4l$="+a+"]")));1e a},3b:1b(){1d b=1a.1f;1a.8l(),1a.1h.3d(".1D").1z("1c-1D 1c-1L 1c-1L-2Y 1c-28-2Q 1c-1D-4Z").4A("1D"),1a.7I.1z("1c-1D-gL 1c-1r-6e 1c-1r-8p 1c-1L-4H 1c-28-2Q"),1a.2I.1H(1b(){1d b=a.1w(1a,"4l.1D");b&&(1a.4l=b);1d c=a(1a).3d(".1D");a.1H(["4l","5V","7M"],1b(a,b){c.4A(b+".1D")})}),1a.3r.3d(".1D").2V(1a.4j).1H(1b(){a.1w(1a,"3b.1D")?a(1a).2A():a(1a).1z(["1c-1x-3m","1c-28-1i","1c-1D-1E","1c-1x-1F","1c-1x-3I","1c-1x-2r","1c-1x-1s","1c-1D-ag","1c-1L-2Y","1c-28-2T","1c-1D-1J"].6y(" "))}),b.53&&1a.8q(1q,b.53);1e 1a},2V:1b(c,d,e){e===b&&(e=1a.2I.1p);1d f=1a,g=1a.1f,h=a(g.gJ.6B(/#\\{4l\\}/g,c).6B(/#\\{4n\\}/g,d)),i=c.e5("#")?1a.e4(a("a",h)[0]):c.6B("#","");h.1t("1c-1x-3m 1c-28-1i").1w("3b.1D",!0);1d j=f.1h.2C("#"+i);j.1p||(j=a(g.e2).1Y("id",i).1w("3b.1D",!0)),j.1t("1c-1D-ag 1c-1L-2Y 1c-28-2T 1c-1D-1J"),e>=1a.3r.1p?(h.2O(1a.7I),j.2O(1a.7I[0].4k)):(h.aL(1a.3r[e]),j.aL(1a.4j[e])),g.1s=a.5h(g.1s,1b(a,b){1e a>=e?++a:a}),1a.af(),1a.2I.1p==1&&(g.1E=0,h.1t("1c-1D-1E 1c-1x-1F"),j.1z("1c-1D-1J"),1a.1h.2H("1D",1b(){f.1C("1M",1q,f.5W(f.2I[0],f.4j[0]))}),1a.5V(0)),1a.1C("2V",1q,1a.5W(1a.2I[e],1a.4j[e]));1e 1a},2A:1b(b){b=1a.9g(b);1d c=1a.1f,d=1a.3r.eq(b).2A(),e=1a.4j.eq(b).2A();d.4c("1c-1D-1E")&&1a.2I.1p>1&&1a.4a(b+(b+1<1a.2I.1p?1:-1)),c.1s=a.5h(a.dE(c.1s,1b(a,c){1e a!=b}),1b(a,c){1e a>=b?--a:a}),1a.af(),1a.1C("2A",1q,1a.5W(d.2C("a")[0],e[0]));1e 1a},aF:1b(b){b=1a.9g(b);1d c=1a.1f;if(a.ae(b,c.1s)!=-1){1a.3r.eq(b).1z("1c-1x-1s"),c.1s=a.dE(c.1s,1b(a,c){1e a!=b}),1a.1C("aF",1q,1a.5W(1a.2I[b],1a.4j[b]));1e 1a}},aG:1b(a){a=1a.9g(a);1d b=1a,c=1a.1f;a!=c.1E&&(1a.3r.eq(a).1t("1c-1x-1s"),c.1s.3k(a),c.1s.8U(),1a.1C("aG",1q,1a.5W(1a.2I[a],1a.4j[a])));1e 1a},4a:1b(a){a=1a.9g(a);if(a==-1)if(1a.1f.4Z&&1a.1f.1E!=-1)a=1a.1f.1E;2l 1e 1a;1a.2I.eq(a).5x(1a.1f.73+".1D");1e 1a},5V:1b(b){b=1a.9g(b);1d c=1a,d=1a.1f,e=1a.2I.eq(b)[0],f=a.1w(e,"5V.1D");1a.8l();if(!f||1a.1h.2H("1D").1p!==0&&a.1w(e,"7M.1D"))1a.1h.3Y("1D");2l{1a.3r.eq(b).1t("1c-1x-bv");if(d.e3){1d g=a("2L",e);g.1w("4n.1D",g.4g()).4g(d.e3)}1a.78=a.gn(a.1W({},d.bt,{dA:f,dC:1b(f,g){c.1h.2C(c.9f(e.7N)).4g(f),c.bu(),d.7M&&a.1w(e,"7M.1D",!0),c.1C("5V",1q,c.5W(c.2I[b],c.4j[b]));6N{d.bt.dC(f,g)}6O(h){}},dD:1b(a,f,g){c.bu(),c.1C("5V",1q,c.5W(c.2I[b],c.4j[b]));6N{d.bt.dD(a,f,b,e)}6O(g){}}})),c.1h.3Y("1D");1e 1a}},8l:1b(){1a.1h.2H([]),1a.4j.3M(!1,!0),1a.1h.2H("1D",1a.1h.2H("1D").9Q(-2,2)),1a.78&&(1a.78.8l(),bx 1a.78),1a.bu();1e 1a},dA:1b(a,b){1a.2I.eq(a).4A("7M.1D").1w("5V.1D",b);1e 1a},1p:1b(){1e 1a.2I.1p}}),a.1W(a.1c.1D,{3Z:"1.8.17"}),a.1W(a.1c.1D.3u,{by:1q,gO:1b(a,b){1d c=1a,d=1a.1f,e=c.e6||(c.e6=1b(b){8k(c.by),c.by=5j(1b(){1d a=d.1E;c.4a(++a\'))}$.1W($.1c,{1m:{3Z:"1.8.17"}});1d be="1m",7i=(2o 2x).3E(),bA;$.1W(9i.3u,{5Y:"lb",9l:4,bH:1b(){1a.gR&&lc.bH.1N("",23)},ld:1b(){1e 1a.2K},le:1b(a){ah(1a.5e,a||{});1e 1a},hr:1b(a,b){1d c=1q;1S(1d d in 1a.5e){1d e=a.lf("eo:"+d);if(e){c=c||{};6N{c[d]=lg(e)}6O(lh){c[d]=e}}}1d f=a.5g.4M(),5E=f=="2a"||f=="2L";a.id||(1a.7K+=1,a.id="dp"+1a.7K);1d g=1a.ep($(a),5E);g.5f=$.1W({},b||{},c||{}),f=="1V"?1a.hs(a,g):5E&&1a.ht(a,g)},ep:1b(a,b){1d c=a[0].id.6B(/([^A-lj-lk-ll-])/g,"\\\\\\\\$1");1e{id:c,1V:a,5Z:0,5r:0,5H:0,7j:0,7k:0,5E:b,2K:b?e8($(\'<2a 2B="\'+1a.bD+\' 1c-1m 1c-1L 1c-1L-2Y 1c-1r-8p 1c-28-2Q">\')):1a.2K}},hs:1b(a,b){1d c=$(a);b.4Y=$([]),b.5x=$([]);c.4c(1a.5Y)||(1a.er(c,b),c.1t(1a.5Y).6f(1a.bI).a9(1a.es).ab(1a.et).2d("hu.1m",1b(a,c,d){b.5f[c]=d}).2d("hv.1m",1b(a,c){1e 1a.1G(b,c)}),1a.eu(b),$.1w(a,be,b),b.5f.1s&&1a.ev(a))},er:1b(a,b){1d c=1a.1G(b,"h5"),d=1a.1G(b,"9j");b.4Y&&b.4Y.2A(),c&&(b.4Y=$(\'<2L 2B="\'+1a.gS+\'">\'+c+""),a[d?"dj":"9U"](b.4Y)),a.3d("2r",1a.8t),b.5x&&b.5x.2A();1d e=1a.1G(b,"h2");(e=="2r"||e=="7x")&&a.2r(1a.8t);if(e=="1K"||e=="7x"){1d f=1a.1G(b,"h6"),g=1a.1G(b,"h7");b.5x=$(1a.1G(b,"h8")?$("<8z/>").1t(1a.bE).1Y({ew:g,hw:f,3P:f}):$(\'<1K 3T="1K">\').1t(1a.bE).4g(g==""?f:$("<8z/>").1Y({ew:g,hw:f,3P:f}))),a[d?"dj":"9U"](b.5x),b.5x.1I(1b(){$.1m.7d&&$.1m.9m==a[0]?$.1m.6F():$.1m.8t(a[0]);1e!1})}},eu:1b(a){if(1a.1G(a,"hq")&&!a.5E){1d b=2o 2x(lm,11,20),c=1a.1G(a,"6E");if(c.5D(/[ln]/)){1d d=1b(a){1d b=0,c=0;1S(1d d=0;db&&(b=a[d].1p,c=d);1e c};b.hx(d(1a.1G(a,c.5D(/lo/)?"7e":"7f"))),b.9n(d(1a.1G(a,c.5D(/hy/)?"7g":"7h"))+20-b.al())}a.1V.1Y("26",1a.7l(a,b).1p)}},ht:1b(a,b){1d c=$(a);c.4c(1a.5Y)||(c.1t(1a.5Y).4Y(b.2K).2d("hu.1m",1b(a,c,d){b.5f[c]=d}).2d("hv.1m",1b(a,c){1e 1a.1G(b,c)}),$.1w(a,be,b),1a.bJ(b,1a.bK(b),!0),1a.7m(b),1a.9o(b),b.5f.1s&&1a.ev(a),b.2K.1j("6p","aZ"))},lp:1b(a,b,c,d,e){1d f=1a.hz;if(!f){1a.7K+=1;1d g="dp"+1a.7K;1a.6G=$(\'<1V 3T="4J" id="\'+g+\'" 30="1o: 2M; 1i: -ck; 1l: lq; z-4d: -10;"/>\'),1a.6G.6f(1a.bI),$("2m").4Y(1a.6G),f=1a.hz=1a.ep(1a.6G,!1),f.5f={},$.1w(1a.6G[0],be,f)}ah(f.5f,d||{}),b=b&&b.69==2x?1a.7l(f,b):b,1a.6G.3W(b),1a.5I=e?e.1p?e:[e.3f,e.3g]:1q;if(!1a.5I){1d h=1u.5z.hA,i=1u.5z.hB,j=1u.5z.2k||1u.2m.2k,k=1u.5z.2e||1u.2m.2e;1a.5I=[h/2-3R+j,i/2-98+k]}1a.6G.1j("1g",1a.5I[0]+20+"3G").1j("1i",1a.5I[1]+"3G"),f.5f.bG=c,1a.8r=!0,1a.2K.1t(1a.e9),1a.8t(1a.6G[0]),$.am&&$.am(1a.2K),$.1w(1a.6G[0],be,f);1e 1a},lr:1b(a){1d b=$(a),c=$.1w(a,be);if(!!b.4c(1a.5Y)){1d d=a.5g.4M();$.4A(a,be),d=="1V"?(c.4Y.2A(),c.5x.2A(),b.1z(1a.5Y).3d("2r",1a.8t).3d("6f",1a.bI).3d("a9",1a.es).3d("ab",1a.et)):(d=="2a"||d=="2L")&&b.1z(1a.5Y).aa()}},ls:1b(a){1d b=$(a),c=$.1w(a,be);if(!!b.4c(1a.5Y)){1d d=a.5g.4M();if(d=="1V")a.1s=!1,c.5x.2u("1K").1H(1b(){1a.1s=!1}).4w().2u("8z").1j({2s:"1.0",4r:""});2l if(d=="2a"||d=="2L"){1d e=b.3V("."+1a.bD);e.3V().1z("1c-1x-1s"),e.2C("4a.1c-1m-an, 4a.1c-1m-ao").3L("1s")}1a.7c=$.5h(1a.7c,1b(b){1e b==a?1q:b})}},ev:1b(a){1d b=$(a),c=$.1w(a,be);if(!!b.4c(1a.5Y)){1d d=a.5g.4M();if(d=="1V")a.1s=!0,c.5x.2u("1K").1H(1b(){1a.1s=!0}).4w().2u("8z").1j({2s:"0.5",4r:"3m"});2l if(d=="2a"||d=="2L"){1d e=b.3V("."+1a.bD);e.3V().1t("1c-1x-1s"),e.2C("4a.1c-1m-an, 4a.1c-1m-ao").1Y("1s","1s")}1a.7c=$.5h(1a.7c,1b(b){1e b==a?1q:b}),1a.7c[1a.7c.1p]=a}},ai:1b(a){if(!a)1e!1;1S(1d b=0;b<1a.7c.1p;b++)if(1a.7c[b]==a)1e!0;1e!1},4S:1b(a){6N{1e $.1w(a,be)}6O(b){7O"hC 2f 1w 1S 1a 1m"}},hD:1b(a,b,c){1d d=1a.4S(a);if(23.1p==2&&2h b=="3S")1e b=="lt"?$.1W({},$.1m.5e):d?b=="2Q"?$.1W({},d.5f):1a.1G(d,b):1q;1d e=b||{};2h b=="3S"&&(e={},e[b]=c);if(d){1a.5X==d&&1a.6F();1d f=1a.hE(a,!0),g=1a.7n(d,"3J"),h=1a.7n(d,"2F");ah(d.5f,e),g!==1q&&e.6E!==ba&&e.ej===ba&&(d.5f.ej=1a.7l(d,g)),h!==1q&&e.6E!==ba&&e.ek===ba&&(d.5f.ek=1a.7l(d,h)),1a.er($(a),d),1a.eu(d),1a.bJ(d,f),1a.9o(d),1a.7m(d)}},lu:1b(a,b,c){1a.hD(a,b,c)},lv:1b(a){1d b=1a.4S(a);b&&1a.7m(b)},lw:1b(a,b){1d c=1a.4S(a);c&&(1a.bJ(c,b),1a.7m(c),1a.9o(c))},hE:1b(a,b){1d c=1a.4S(a);c&&!c.5E&&1a.bL(c,b);1e c?1a.bM(c):1q},bI:1b(a){1d b=$.1m.4S(a.2c),c=!0,d=b.2K.is(".1c-1m-dL");b.bB=!0;if($.1m.7d)59(a.2E){1A 9:$.1m.6F(),c=!1;1P;1A 13:1d e=$("9h."+$.1m.bF+":4E(."+$.1m.eb+")",b.2K);e[0]&&$.1m.ex(a.2c,b.5r,b.5H,e[0]);1d f=$.1m.1G(b,"bG");if(f){1d g=$.1m.7l(b);f.1N(b.1V?b.1V[0]:1q,[g,b])}2l $.1m.6F();1e!1;1A 27:$.1m.6F();1P;1A 33:$.1m.5J(a.2c,a.44?-$.1m.1G(b,"ak"):-$.1m.1G(b,"9k"),"M");1P;1A 34:$.1m.5J(a.2c,a.44?+$.1m.1G(b,"ak"):+$.1m.1G(b,"9k"),"M");1P;1A 35:(a.44||a.4Q)&&$.1m.hF(a.2c),c=a.44||a.4Q;1P;1A 36:(a.44||a.4Q)&&$.1m.ey(a.2c),c=a.44||a.4Q;1P;1A 37:(a.44||a.4Q)&&$.1m.5J(a.2c,d?1:-1,"D"),c=a.44||a.4Q,a.aH.ds&&$.1m.5J(a.2c,a.44?-$.1m.1G(b,"ak"):-$.1m.1G(b,"9k"),"M");1P;1A 38:(a.44||a.4Q)&&$.1m.5J(a.2c,-7,"D"),c=a.44||a.4Q;1P;1A 39:(a.44||a.4Q)&&$.1m.5J(a.2c,d?-1:1,"D"),c=a.44||a.4Q,a.aH.ds&&$.1m.5J(a.2c,a.44?+$.1m.1G(b,"ak"):+$.1m.1G(b,"9k"),"M");1P;1A 40:(a.44||a.4Q)&&$.1m.5J(a.2c,7,"D"),c=a.44||a.4Q;1P;3m:c=!1}2l a.2E==36&&a.44?$.1m.8t(1a):c=!1;c&&(a.4N(),a.gP())},es:1b(a){1d b=$.1m.4S(a.2c);if($.1m.1G(b,"ho")){1d c=$.1m.hG($.1m.1G(b,"6E")),d=8T.lx(a.hH==ba?a.2E:a.hH);1e a.44||a.4Q||d<" "||!c||c.e5(d)>-1}},et:1b(a){1d b=$.1m.4S(a.2c);if(b.1V.3W()!=b.bN)6N{1d c=$.1m.bO($.1m.1G(b,"6E"),b.1V?b.1V.3W():1q,$.1m.7o(b));c&&($.1m.bL(b),$.1m.9o(b),$.1m.7m(b))}6O(a){$.1m.bH(a)}1e!0},8t:1b(a){a=a.2c||a,a.5g.4M()!="1V"&&(a=$("1V",a.4k)[0]);if(!$.1m.ai(a)&&$.1m.9m!=a){1d b=$.1m.4S(a);$.1m.5X&&$.1m.5X!=b&&($.1m.5X.2K.3M(!0,!0),b&&$.1m.7d&&$.1m.6F($.1m.5X.1V[0]));1d c=$.1m.1G(b,"hi"),d=c?c.1N(a,[a,b]):{};if(d===!1)1e;ah(b.5f,d),b.bN=1q,$.1m.9m=a,$.1m.bL(b),$.1m.8r&&(a.2w=""),$.1m.5I||($.1m.5I=$.1m.hI(a),$.1m.5I[1]+=a.5w);1d e=!1;$(a).4L().1H(1b(){e|=$(1a).1j("1o")=="4b";1e!e}),e&&$.2R.aX&&($.1m.5I[0]-=1u.5z.2k,$.1m.5I[1]-=1u.5z.2e);1d f={1g:$.1m.5I[0],1i:$.1m.5I[1]};$.1m.5I=1q,b.2K.aa(),b.2K.1j({1o:"2M",6p:"aZ",1i:"-cF"}),$.1m.7m(b),f=$.1m.hJ(b,f,e),b.2K.1j({1o:$.1m.8r&&$.am?"6K":e?"4b":"2M",6p:"7t",1g:f.1g+"3G",1i:f.1i+"3G"});if(!b.5E){1d g=$.1m.1G(b,"ee"),h=$.1m.1G(b,"2i"),i=1b(){1d a=b.2K.2C("9I.1c-1m-ez");if(!!a.1p){1d c=$.1m.eA(b.2K);a.1j({1g:-c[0],1i:-c[1],1l:b.2K.3e(),1k:b.2K.3o()})}};b.2K.2z($(a).2z()+1),$.1m.7d=!0,$.1B&&$.1B[g]?b.2K.1M(g,$.1m.1G(b,"ef"),h,i):b.2K[g||"1M"](g?h:1q,i),(!g||!h)&&i(),b.1V.is(":4F")&&!b.1V.is(":1s")&&b.1V.2r(),$.1m.5X=b}}},7m:1b(a){1d b=1a;b.9l=4;1d c=$.1m.eA(a.2K);bA=a,a.2K.aa().4Y(1a.hK(a));1d d=a.2K.2C("9I.1c-1m-ez");!d.1p||d.1j({1g:-c[0],1i:-c[1],1l:a.2K.3e(),1k:a.2K.3o()}),a.2K.2C("."+1a.bF+" a").8W();1d e=1a.bP(a),f=e[1],g=17;a.2K.1z("1c-1m-ap-2 1c-1m-ap-3 1c-1m-ap-4").1l(""),f>1&&a.2K.1t("1c-1m-ap-"+f).1j("1l",g*f+"em"),a.2K[(e[0]!=1||e[1]!=1?"2V":"2A")+"bQ"]("1c-1m-ap"),a.2K[(1a.1G(a,"9j")?"2V":"2A")+"bQ"]("1c-1m-dL"),a==$.1m.5X&&$.1m.7d&&a.1V&&a.1V.is(":4F")&&!a.1V.is(":1s")&&a.1V[0]!=1u.bi&&a.1V.2r();if(a.5K){1d h=a.5K;5j(1b(){h===a.5K&&a.5K&&a.2K.2C("4a.1c-1m-ao:5p").hL(a.5K),h=a.5K=1q},0)}},eA:1b(a){1d b=1b(a){1e{ly:1,lz:2,lA:3}[a]||a};1e[54(b(a.1j("8D-1g-1l"))),54(b(a.1j("8D-1i-1l")))]},hJ:1b(a,b,c){1d d=a.2K.3e(),e=a.2K.3o(),f=a.1V?a.1V.3e():0,g=a.1V?a.1V.3o():0,h=1u.5z.hA+$(1u).2k(),i=1u.5z.hB+$(1u).2e();b.1g-=1a.1G(a,"9j")?d-f:0,b.1g-=c&&b.1g==a.1V.1n().1g?$(1u).2k():0,b.1i-=c&&b.1i==a.1V.1n().1i+g?$(1u).2e():0,b.1g-=1v.3J(b.1g,b.1g+d>h&&h>d?1v.4f(b.1g+d-h):0),b.1i-=1v.3J(b.1i,b.1i+e>i&&i>e?1v.4f(e+g):0);1e b},hI:1b(a){1d b=1a.4S(a),c=1a.1G(b,"9j");7W(a&&(a.3T=="3F"||a.aJ!=1||$.au.eZ.3F(a)))a=a[c?"lB":"g0"];1d d=$(a).1n();1e[d.1g,d.1i]},6F:1b(a){1d b=1a.5X;if(!(!b||a&&b!=$.1w(a,be))&&1a.7d){1d c=1a.1G(b,"ee"),d=1a.1G(b,"2i"),e=1a,f=1b(){$.1m.hM(b),e.5X=1q};$.1B&&$.1B[c]?b.2K.1J(c,$.1m.1G(b,"ef"),d,f):b.2K[c=="lC"?"lD":c=="h3"?"lE":"1J"](c?d:1q,f),c||f(),1a.7d=!1;1d g=1a.1G(b,"hk");g&&g.1N(b.1V?b.1V[0]:1q,[b.1V?b.1V.3W():"",b]),1a.9m=1q,1a.8r&&(1a.6G.1j({1o:"2M",1g:"0",1i:"-ck"}),$.am&&($.lF(),$("2m").4Y(1a.2K))),1a.8r=!1}},hM:1b(a){a.2K.1z(1a.e9).3d(".1c-1m-bz")},hN:1b(a){if(!!$.1m.5X){1d b=$(a.2c),c=$.1m.4S(b[0]);(b[0].id!=$.1m.bC&&b.4L("#"+$.1m.bC).1p==0&&!b.4c($.1m.5Y)&&!b.4c($.1m.bE)&&$.1m.7d&&(!$.1m.8r||!$.am)||b.4c($.1m.5Y)&&$.1m.5X!=c)&&$.1m.6F()}},5J:1b(a,b,c){1d d=$(a),e=1a.4S(d[0]);1a.ai(d[0])||(1a.bR(e,b+(c=="M"?1a.1G(e,"en"):0),c),1a.7m(e))},ey:1b(a){1d b=$(a),c=1a.4S(b[0]);if(1a.1G(c,"eg")&&c.61)c.5Z=c.61,c.7j=c.5r=c.7p,c.7k=c.5H=c.6H;2l{1d d=2o 2x;c.5Z=d.4o(),c.7j=c.5r=d.4x(),c.7k=c.5H=d.3K()}1a.aq(c),1a.5J(b)},eB:1b(a,b,c){1d d=$(a),e=1a.4S(d[0]);e["1E"+(c=="M"?"hO":"hP")]=e["lG"+(c=="M"?"hO":"hP")]=1y(b.1f[b.lH].2w,10),1a.aq(e),1a.5J(d)},ex:1b(a,b,c,d){1d e=$(a);if(!$(d).4c(1a.ea)&&!1a.ai(e[0])){1d f=1a.4S(e[0]);f.5Z=f.61=$("a",d).4g(),f.5r=f.7p=b,f.5H=f.6H=c,1a.eC(a,1a.7l(f,f.61,f.7p,f.6H))}},hF:1b(a){1d b=$(a),c=1a.4S(b[0]);1a.eC(b,"")},eC:1b(a,b){1d c=$(a),d=1a.4S(c[0]);b=b!=1q?b:1a.7l(d),d.1V&&d.1V.3W(b),1a.9o(d);1d e=1a.1G(d,"bG");e?e.1N(d.1V?d.1V[0]:1q,[b,d]):d.1V&&d.1V.5x("71"),d.5E?1a.7m(d):(1a.6F(),1a.9m=d.1V[0],2h d.1V[0]!="5L"&&d.1V.2r(),1a.9m=1q)},9o:1b(a){1d b=1a.1G(a,"hm");if(b){1d c=1a.1G(a,"hn")||1a.1G(a,"6E"),d=1a.bM(a),e=1a.9p(c,d,1a.7o(a));$(b).1H(1b(){$(1a).3W(e)})}},lI:1b(a){1d b=a.al();1e[b>0&&b<6,""]},ei:1b(a){1d b=2o 2x(a.3E());b.9n(b.4o()+4-(b.al()||7));1d c=b.3E();b.hx(0),b.9n(1);1e 1v.7P(1v.5N((c-b)/hQ)/7)+1},bO:1b(a,b,c){if(a==1q||b==1q)7O"eD 23";b=2h b=="5L"?b.bw():b+"";if(b=="")1e 1q;1d d=(c?c.aj:1q)||1a.5e.aj;d=2h d!="3S"?d:(2o 2x).3K()%3R+1y(d,10);1d e=(c?c.7h:1q)||1a.5e.7h,f=(c?c.7g:1q)||1a.5e.7g,g=(c?c.7f:1q)||1a.5e.7f,h=(c?c.7e:1q)||1a.5e.7e,i=-1,j=-1,k=-1,l=-1,m=!1,n=1b(b){1d c=s+1-1){j=1,k=l;1S(;;){1d u=1a.8u(i,j-1);if(k<=u)1P;j++,k-=u}}1d t=1a.4K(2o 2x(i,j-1,k));if(t.3K()!=i||t.4x()+1!=j||t.4o()!=k)7O"eD eo";1e t},lR:"8s-mm-dd",lS:"D, dd M 8s",lT:"8s-mm-dd",lU:"D, d M y",lV:"hy, dd-M-y",lW:"D, d M y",lX:"D, d M 8s",lY:"D, d M 8s",lZ:"D, d M y",m0:"!",m1:"@",m2:"8s-mm-dd",eF:(m3+1v.7P(m4.5)-1v.7P(19.7)+1v.7P(4.m5))*24*60*60*m6,9p:1b(a,b,c){if(!b)1e"";1d d=(c?c.7h:1q)||1a.5e.7h,e=(c?c.7g:1q)||1a.5e.7g,f=(c?c.7f:1q)||1a.5e.7f,g=(c?c.7e:1q)||1a.5e.7e,h=1b(b){1d c=m+112?a.hT()+2:0);1e a},bJ:1b(a,b,c){1d d=!b,e=a.5r,f=a.5H,g=1a.bS(a,1a.bT(a,b,2o 2x));a.5Z=a.61=g.4o(),a.7j=a.5r=a.7p=g.4x(),a.7k=a.5H=a.6H=g.3K(),(e!=a.5r||f!=a.5H)&&!c&&1a.aq(a),1a.bR(a),a.1V&&a.1V.3W(d?"":1a.7l(a))},bM:1b(a){1d b=!a.6H||a.1V&&a.1V.3W()==""?1q:1a.4K(2o 2x(a.6H,a.7p,a.61));1e b},hK:1b(a){1d b=2o 2x;b=1a.4K(2o 2x(b.3K(),b.4x(),b.4o()));1d c=1a.1G(a,"9j"),d=1a.1G(a,"hp"),e=1a.1G(a,"h9"),f=1a.1G(a,"ha"),g=1a.bP(a),h=1a.1G(a,"en"),i=1a.1G(a,"9k"),j=g[0]!=1||g[1]!=1,k=1a.4K(a.61?2o 2x(a.6H,a.7p,a.61):2o 2x(mb,9,9)),l=1a.7n(a,"3J"),m=1a.7n(a,"2F"),n=a.7j-h,o=a.7k;n<0&&(n+=12,o--);if(m){1d p=1a.4K(2o 2x(m.3K(),m.4x()-g[0]*g[1]+1,m.4o()));p=l&&pp)n--,n<0&&(n=11,o--)}a.7j=n,a.7k=o;1d q=1a.1G(a,"gT");q=f?1a.9p(q,1a.4K(2o 2x(o,n-i,1)),1a.7o(a)):q;1d r=1a.eG(a,-1,o,n)?\'<2L 2B="1c-3i 1c-3i-bU-95-\'+(c?"e":"w")+\'">\'+q+"":e?"":\'<2L 2B="1c-3i 1c-3i-bU-95-\'+(c?"e":"w")+\'">\'+q+"",s=1a.1G(a,"gU");s=f?1a.9p(s,1a.4K(2o 2x(o,n+i,1)),1a.7o(a)):s;1d t=1a.eG(a,1,o,n)?\'<2L 2B="1c-3i 1c-3i-bU-95-\'+(c?"w":"e")+\'">\'+s+"":e?"":\'<2L 2B="1c-3i 1c-3i-bU-95-\'+(c?"w":"e")+\'">\'+s+"",u=1a.1G(a,"gV"),v=1a.1G(a,"eg")&&a.61?k:b;u=f?1a.9p(u,v,1a.7o(a)):u;1d w=a.5E?"":\'<1K 3T="1K" 2B="1c-1m-4I 1c-1x-3m 1c-eH-6C 1c-28-2Q" ar="7R\'+7i+\'.1m.6F();">\'+1a.1G(a,"ac")+"",x=d?\'<2a 2B="1c-1m-bq 1c-1L-2Y">\'+(c?w:"")+(1a.eI(a,v)?\'<1K 3T="1K" 2B="1c-1m-6u 1c-1x-3m 1c-eH-6D 1c-28-2Q" ar="7R\'+7i+".1m.ey(\'#"+a.id+"\');\\""+">"+u+"":"")+(c?"":w)+"":"",y=1y(1a.1G(a,"gZ"),10);y=63(y)?0:y;1d z=1a.1G(a,"hg"),A=1a.1G(a,"7g"),B=1a.1G(a,"7h"),C=1a.1G(a,"gX"),D=1a.1G(a,"7e"),E=1a.1G(a,"7f"),F=1a.1G(a,"hh"),G=1a.1G(a,"he"),H=1a.1G(a,"hf"),I=1a.1G(a,"eh")||1a.ei,J=1a.bK(a),K="";1S(1d L=0;L\'}Q+=\'<2a 2B="1c-1m-4H 1c-1L-4H 1c-1r-8p\'+P+\'">\'+(/2Q|1g/.2b(P)&&L==0?c?t:r:"")+(/2Q|2N/.2b(P)&&L==0?c?r:t:"")+1a.hU(a,n,o,l,m,L>0||N>0,D,E)+\'\'+"";1d R=z?\'\'+1a.1G(a,"gY")+"":"";1S(1d S=0;S<7;S++){1d T=(S+y)%7;R+="=5?\' 2B="1c-1m-bY-4w"\':"")+">"+\'<2L 3P="\'+A[T]+\'">\'+C[T]+""}Q+=R+"";1d U=1a.8u(o,n);o==a.5H&&n==a.5r&&(a.5Z=1v.3J(a.5Z,U));1d V=(1a.hY(o,n)-y+7)%7,W=1v.mc((V+U)/7),X=j?1a.9l>W?1a.9l:W:W;1a.9l=X;1d Y=1a.4K(2o 2x(o,n,1-V));1S(1d Z=0;Z";1d 6r=z?\'<9h 2B="1c-1m-bY-hW">\'+1a.1G(a,"eh")(Y)+"":"";1S(1d S=0;S<7;S++){1d bf=F?F.1N(a.1V?a.1V[0]:1q,[Y]):[!0,""],bb=Y.4x()!=n,bc=bb&&!H||!bf[0]||l&&Ym;6r+=\'<9h 2B="\'+((S+y+6)%7>=5?" 1c-1m-bY-4w":"")+(bb?" 1c-1m-md-an":"")+(Y.3E()==O.3E()&&n==a.5r&&a.bB||J.3E()==Y.3E()&&J.3E()==O.3E()?" "+1a.bF:"")+(bc?" "+1a.ea+" 1c-1x-1s":"")+(bb&&!G?"":" "+bf[1]+(Y.3E()==k.3E()?" "+1a.eb:"")+(Y.3E()==b.3E()?" 1c-1m-me":""))+\'"\'+((!bb||G)&&bf[2]?\' 3P="\'+bf[2]+\'"\':"")+(bc?"":\' ar="7R\'+7i+".1m.ex(\'#"+a.id+"\',"+Y.4x()+","+Y.3K()+\', 1a);1e 74;"\')+">"+(bb&&!G?"&#eK;":bc?\'<2L 2B="1c-1x-3m">\'+Y.4o()+"":\'\'+Y.4o()+"")+"",Y.9n(Y.4o()+1),Y=1a.4K(Y)}Q+=6r+""}n++,n>11&&(n=0,o++),Q+=""+(j?""+(g[0]>0&&N==g[1]-1?\'<2a 2B="1c-1m-mf-1P">\':""):""),M+=Q}K+=M}K+=x+($.2R.5u&&1y($.2R.3Z,10)<7&&!a.5E?\'<9I ew="mg:74;" 2B="1c-1m-ez" mh="0">\':""),a.bB=!1;1e K},hU:1b(a,b,c,d,e,f,g,h){1d i=1a.1G(a,"hb"),j=1a.1G(a,"hc"),k=1a.1G(a,"h0"),l=\'<2a 2B="1c-1m-3P">\',m="";if(f||!i)m+=\'<2L 2B="1c-1m-an">\'+g[b]+"";2l{1d n=d&&d.3K()==c,o=e&&e.3K()==c;m+=\'<4a 2B="1c-1m-an" i0="7R\'+7i+".1m.eB(\'#"+a.id+"\', 1a, \'M\');\\" "+">";1S(1d p=0;p<12;p++)(!n||p>=d.4x())&&(!o||p<=e.4x())&&(m+=\'<5M 2w="\'+p+\'"\'+(p==b?\' 1E="1E"\':"")+">"+h[p]+"");m+=""}k||(l+=m+(f||!i||!j?"&#eK;":""));if(!a.5K){a.5K="";if(f||!j)l+=\'<2L 2B="1c-1m-ao">\'+c+"";2l{1d q=1a.1G(a,"hd").57(":"),r=(2o 2x).3K(),s=1b(a){1d b=a.5D(/c[+-].*/)?c+1y(a.eE(1),10):a.5D(/[+-].*/)?r+1y(a,10):1y(a,10);1e 63(b)?r:b},t=s(q[0]),u=1v.2F(t,s(q[1]||""));t=d?1v.2F(t,d.3K()):t,u=e?1v.3J(u,e.3K()):u,a.5K+=\'<4a 2B="1c-1m-ao" i0="7R\'+7i+".1m.eB(\'#"+a.id+"\', 1a, \'Y\');\\" "+">";1S(;t<=u;t++)a.5K+=\'<5M 2w="\'+t+\'"\'+(t==c?\' 1E="1E"\':"")+">"+t+"";a.5K+="",l+=a.5K,a.5K=1q}}l+=1a.1G(a,"h1"),k&&(l+=(f||!i||!j?"&#eK;":"")+m),l+="";1e l},bR:1b(a,b,c){1d d=a.7k+(c=="Y"?b:0),e=a.7j+(c=="M"?b:0),f=1v.3J(a.5Z,1a.8u(d,e))+(c=="D"?b:0),g=1a.bS(a,1a.4K(2o 2x(d,e,f)));a.5Z=g.4o(),a.7j=a.5r=g.4x(),a.7k=a.5H=g.3K(),(c=="M"||c=="Y")&&1a.aq(a)},bS:1b(a,b){1d c=1a.7n(a,"3J"),d=1a.7n(a,"2F"),e=c&&bd?d:e;1e e},aq:1b(a){1d b=1a.1G(a,"hj");b&&b.1N(a.1V?a.1V[0]:1q,[a.5H,a.5r+1,a])},bP:1b(a){1d b=1a.1G(a,"hl");1e b==1q?[1,1]:2h b=="5i"?[1,b]:b},7n:1b(a,b){1e 1a.bT(a,1a.1G(a,b+"2x"),1q)},8u:1b(a,b){1e 32-1a.4K(2o 2x(a,b,32)).4o()},hY:1b(a,b){1e(2o 2x(a,b,1)).al()},eG:1b(a,b,c,d){1d e=1a.bP(a),f=1a.4K(2o 2x(c,d+(b<0?b:e[0]*e[1]),1));b<0&&f.9n(1a.8u(f.3K(),f.4x()));1e 1a.eI(a,f)},eI:1b(a,b){1d c=1a.7n(a,"3J"),d=1a.7n(a,"2F");1e(!c||b.3E()>=c.3E())&&(!d||b.3E()<=d.3E())},7o:1b(a){1d b=1a.1G(a,"aj");b=2h b!="3S"?b:(2o 2x).3K()%3R+1y(b,10);1e{aj:b,7h:1a.1G(a,"7h"),7g:1a.1G(a,"7g"),7f:1a.1G(a,"7f"),7e:1a.1G(a,"7e")}},7l:1b(a,b,c,d){b||(a.61=a.5Z,a.7p=a.5r,a.6H=a.5H);1d e=b?2h b=="5L"?b:1a.4K(2o 2x(d,c,b)):1a.4K(2o 2x(a.6H,a.7p,a.61));1e 1a.9p(1a.1G(a,"6E"),e,1a.7o(a))}}),$.fn.1m=1b(a){if(!1a.1p)1e 1a;$.1m.eL||($(1u).6o($.1m.hN).2C("2m").4Y($.1m.2K),$.1m.eL=!0);1d b=8H.3u.co.2j(23,1);if(2h a=="3S"&&(a=="mi"||a=="4o"||a=="1L"))1e $.1m["6r"+a+"9i"].1N($.1m,[1a[0]].4z(b));if(a=="5M"&&23.1p==2&&2h 23[1]=="3S")1e $.1m["6r"+a+"9i"].1N($.1m,[1a[0]].4z(b));1e 1a.1H(1b(){2h a=="3S"?$.1m["6r"+a+"9i"].1N($.1m,[1a].4z(b)):$.1m.hr(1a,a)})},$.1m=2o 9i,$.1m.eL=!1,$.1m.7K=(2o 2x).3E(),$.1m.3Z="1.8.17",3l["7R"+7i]=$})(2S);(1b(a,b){a.1L("1c.9q",{1f:{2w:0,2F:3R},3J:0,4U:1b(){1a.1h.1t("1c-9q 1c-1L 1c-1L-2Y 1c-28-2Q").1Y({51:"9q","2W-i1":1a.3J,"2W-i2":1a.1f.2F,"2W-eM":1a.7L()}),1a.eN=a("<2a 2B=\'1c-9q-2w 1c-1L-4H 1c-28-1g\'>").2O(1a.1h),1a.eO=1a.7L(),1a.6l()},3b:1b(){1a.1h.1z("1c-9q 1c-1L 1c-1L-2Y 1c-28-2Q").3L("51").3L("2W-i1").3L("2W-i2").3L("2W-eM"),1a.eN.2A(),a.4q.3u.3b.1N(1a,23)},2w:1b(a){if(a===b)1e 1a.7L();1a.3A("2w",a);1e 1a},3A:1b(b,c){b==="2w"&&(1a.1f.2w=c,1a.6l(),1a.7L()===1a.1f.2F&&1a.1C("5q")),a.4q.3u.3A.1N(1a,23)},7L:1b(){1d a=1a.1f.2w;2h a!="5i"&&(a=0);1e 1v.3J(1a.1f.2F,1v.2F(1a.3J,a))},i3:1b(){1e 3R*1a.7L()/1a.1f.2F},6l:1b(){1d a=1a.2w(),b=1a.i3();1a.eO!==a&&(1a.eO=a,1a.1C("71")),1a.eN.76(a>1a.3J).7G("1c-28-2N",a===1a.1f.2F).1l(b.gH(0)+"%"),1a.1h.1Y("2W-eM",a)}}),a.1W(a.1c.9q,{3Z:"1.8.17"})})(2S);2S.1B||1b(a,b){1b l(b){if(!b||2h b=="5i"||a.fx.8v[b])1e!0;if(2h b=="3S"&&!a.1B[b])1e!0;1e!1}1b k(b,c,d,e){2h b=="5L"&&(e=c,d=1q,c=b,b=c.62),a.4e(c)&&(e=c,d=1q,c={});if(2h c=="5i"||a.fx.8v[c])e=d,d=c,c={};a.4e(d)&&(e=d,d=1q),c=c||{},d=d||c.2i,d=a.fx.dv?0:2h d=="5i"?d:d in a.fx.8v?a.fx.8v[d]:a.fx.8v.eP,e=e||c.5q;1e[b,c,d,e]}1b j(a,b){1d c={6r:0},d;1S(d in b)a[d]!=b[d]&&(c[d]=b[d]);1e c}1b i(b){1d c,d;1S(c in b)d=b[c],(d==1q||a.4e(d)||c in g||/mj/.2b(c)||!/eQ/i.2b(c)&&63(54(d)))&&bx b[c];1e b}1b h(){1d a=1u.i4?1u.i4.mk(1a,1q):1a.ml,b={},c,d;if(a&&a.1p&&a[0]&&a[a[0]]){1d e=a.1p;7W(e--)c=a[e],2h a[c]=="3S"&&(d=c.6B(/\\-(\\w)/g,1b(a,b){1e b.mn()}),b[d]=a[c])}2l 1S(c in a)2h a[c]=="3S"&&(b[c]=a[c]);1e b}1b d(b,d){1d e;do{e=a.4p(b,d);if(e!=""&&e!="bZ"||a.5g(b,"2m"))1P;d="9r"}7W(b=b.4k);1e c(e)}1b c(b){1d c;if(b&&b.69==8H&&b.1p==3)1e b;if(c=/eR\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.7Q(b))1e[1y(c[1],10),1y(c[2],10),1y(c[3],10)];if(c=/eR\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.7Q(b))1e[54(c[1])*2.55,54(c[2])*2.55,54(c[3])*2.55];if(c=/#([a-fA-9s-9]{2})([a-fA-9s-9]{2})([a-fA-9s-9]{2})/.7Q(b))1e[1y(c[1],16),1y(c[2],16),1y(c[3],16)];if(c=/#([a-fA-9s-9])([a-fA-9s-9])([a-fA-9s-9])/.7Q(b))1e[1y(c[1]+c[1],16),1y(c[2]+c[2],16),1y(c[3]+c[3],16)];if(c=/mo\\(0, 0, 0, 0\\)/.7Q(b))1e e.bZ;1e e[a.fy(b).4M()]}a.1B={},a.1H(["9r","mp","mq","mr","ms","i5","eQ","mt"],1b(b,e){a.fx.8g[e]=1b(a){a.i6||(a.3D=d(a.i7,e),a.4w=c(a.4w),a.i6=!0),a.i7.30[e]="eR("+1v.2F(1v.3J(1y(a.49*(a.4w[0]-a.3D[0])+a.3D[0],10),3a),0)+","+1v.2F(1v.3J(1y(a.49*(a.4w[1]-a.3D[1])+a.3D[1],10),3a),0)+","+1v.2F(1v.3J(1y(a.49*(a.4w[2]-a.3D[2])+a.3D[2],10),3a),0)+")"}});1d e={mu:[0,3a,3a],mv:[i8,3a,3a],mw:[i9,i9,mx],mz:[0,0,0],mA:[0,0,3a],mB:[ia,42,42],mC:[0,3a,3a],mD:[0,0,9t],mE:[0,9t,9t],mF:[eS,eS,eS],mG:[0,3R,0],mH:[mI,mJ,c9],mK:[9t,0,9t],mL:[85,c9,47],mM:[3a,eT,0],mN:[mO,50,mP],mQ:[9t,0,0],mR:[mS,98,mT],mU:[mV,0,c0],mW:[3a,0,3a],mX:[3a,mY,0],mZ:[0,7q,0],n0:[75,0,n1],n2:[i8,ib,eT],n3:[n4,n5,ib],n6:[ic,3a,3a],n7:[ie,n8,ie],n9:[c0,c0,c0],na:[3a,nb,nc],nd:[3a,3a,ic],nf:[0,3a,0],ng:[3a,0,3a],nh:[7q,0,0],ni:[0,0,7q],nj:[7q,7q,0],nk:[3a,ia,0],nl:[3a,c1,nm],nn:[7q,0,7q],no:[7q,0,7q],np:[3a,0,0],nq:[c1,c1,c1],nr:[3a,3a,3a],ns:[3a,3a,0],bZ:[3a,3a,3a]},f=["2V","2A","76"],g={8D:1,nt:1,i5:1,nu:1,nv:1,nx:1,f2:1,5v:1,8C:1};a.1B.9u=1b(b,c,d,e){a.4e(d)&&(e=d,d=1q);1e 1a.2H(1b(){1d g=a(1a),k=g.1Y("30")||" ",l=i(h.2j(1a)),m,n=g.1Y("2B");a.1H(f,1b(a,c){b[c]&&g[c+"bQ"](b[c])}),m=i(h.2j(1a)),g.1Y("2B",n),g.1X(j(l,m),{2H:!1,2i:c,2p:d,5q:1b(){a.1H(f,1b(a,c){b[c]&&g[c+"bQ"](b[c])}),2h g.1Y("30")=="5L"?(g.1Y("30").cG="",g.1Y("30").cG=k):g.1Y("30",k),e&&e.1N(1a,23),a.3Y(1a)}})})},a.fn.1W({ig:a.fn.1t,1t:1b(b,c,d,e){1e c?a.1B.9u.1N(1a,[{2V:b},c,d,e]):1a.ig(b)},ih:a.fn.1z,1z:1b(b,c,d,e){1e c?a.1B.9u.1N(1a,[{2A:b},c,d,e]):1a.ih(b)},ii:a.fn.7G,7G:1b(c,d,e,f,g){1e 2h d=="dI"||d===b?e?a.1B.9u.1N(1a,[d?{2V:c}:{2A:c},e,f,g]):1a.ii(c,d):a.1B.9u.1N(1a,[{76:c},d,e,f])},ny:1b(b,c,d,e,f){1e a.1B.9u.1N(1a,[{2V:c,2A:b},d,e,f])}}),a.1W(a.1B,{3Z:"1.8.17",6m:1b(a,b){1S(1d c=0;c").1t("1c-1B-aY").1j({il:"3R%",cE:"bZ",8D:"7t",5v:0,8C:0}),e=1u.bi;b.cU(d),(b[0]===e||a.4y(b[0],e))&&a(e).2r(),d=b.29(),b.1j("1o")=="6K"?(d.1j({1o:"2v"}),b.1j({1o:"2v"})):(a.1W(c,{1o:b.1j("1o"),2z:b.1j("z-4d")}),a.1H(["1i","1g","2T","2N"],1b(a,d){c[d]=b.1j(d),63(1y(c[d],10))&&(c[d]="3j")}),b.1j({1o:"2v",1i:0,1g:0,2N:"3j",2T:"3j"}));1e d.1j(c).1M()},6I:1b(b){1d c,d=1u.bi;if(b.29().is(".1c-1B-aY")){c=b.29().hL(b),(b[0]===d||a.4y(b[0],d))&&a(d).2r();1e c}1e b},6n:1b(b,c,d,e){e=e||{},a.1H(c,1b(a,c){97=b.im(c),97[0]>0&&(e[c]=97[0]*d+97[1])});1e e}}),a.fn.1W({62:1b(b,c,d,e){1d f=k.1N(1a,23),g={1f:f[1],2i:f[2],2Z:f[3]},h=g.1f.3s,i=a.1B[b];if(a.fx.dv||!i)1e h?1a[h](g.2i,g.2Z):1a.1H(1b(){g.2Z&&g.2Z.2j(1a)});1e i.2j(1a,g)},io:a.fn.1M,1M:1b(a){if(l(a))1e 1a.io.1N(1a,23);1d b=k.1N(1a,23);b[1].3s="1M";1e 1a.62.1N(1a,b)},ip:a.fn.1J,1J:1b(a){if(l(a))1e 1a.ip.1N(1a,23);1d b=k.1N(1a,23);b[1].3s="1J";1e 1a.62.1N(1a,b)},iq:a.fn.76,76:1b(b){if(l(b)||2h b=="dI"||a.4e(b))1e 1a.iq.1N(1a,23);1d c=k.1N(1a,23);c[1].3s="76";1e 1a.62.1N(1a,c)},im:1b(b){1d c=1a.1j(b),d=[];a.1H(["em","3G","%","nz"],1b(a,b){c.e5(b)>0&&(d=[54(c),b])});1e d}}),a.2p.nA=a.2p.9R,a.1W(a.2p,{ir:"it",9R:1b(b,c,d,e,f){1e a.2p[a.2p.ir](b,c,d,e,f)},nB:1b(a,b,c,d,e){1e d*(b/=e)*b+c},it:1b(a,b,c,d,e){1e-d*(b/=e)*(b-2)+c},nC:1b(a,b,c,d,e){if((b/=e/2)<1)1e d/2*b*b+c;1e-d/2*(--b*(b-2)-1)+c},nD:1b(a,b,c,d,e){1e d*(b/=e)*b*b+c},nE:1b(a,b,c,d,e){1e d*((b=b/e-1)*b*b+1)+c},nF:1b(a,b,c,d,e){if((b/=e/2)<1)1e d/2*b*b*b+c;1e d/2*((b-=2)*b*b+2)+c},nG:1b(a,b,c,d,e){1e d*(b/=e)*b*b*b+c},nH:1b(a,b,c,d,e){1e-d*((b=b/e-1)*b*b*b-1)+c},nI:1b(a,b,c,d,e){if((b/=e/2)<1)1e d/2*b*b*b*b+c;1e-d/2*((b-=2)*b*b*b-2)+c},nJ:1b(a,b,c,d,e){1e d*(b/=e)*b*b*b*b+c},nK:1b(a,b,c,d,e){1e d*((b=b/e-1)*b*b*b*b+1)+c},nL:1b(a,b,c,d,e){if((b/=e/2)<1)1e d/2*b*b*b*b*b+c;1e d/2*((b-=2)*b*b*b*b+2)+c},nM:1b(a,b,c,d,e){1e-d*1v.iu(b/e*(1v.6J/2))+d+c},nN:1b(a,b,c,d,e){1e d*1v.as(b/e*(1v.6J/2))+c},nO:1b(a,b,c,d,e){1e-d/2*(1v.iu(1v.6J*b/e)-1)+c},nP:1b(a,b,c,d,e){1e b==0?c:d*1v.7S(2,10*(b/e-1))+c},nQ:1b(a,b,c,d,e){1e b==e?c+d:d*(-1v.7S(2,-10*b/e)+1)+c},nR:1b(a,b,c,d,e){if(b==0)1e c;if(b==e)1e c+d;if((b/=e/2)<1)1e d/2*1v.7S(2,10*(b-1))+c;1e d/2*(-1v.7S(2,-10*--b)+2)+c},nS:1b(a,b,c,d,e){1e-d*(1v.9v(1-(b/=e)*b)-1)+c},nT:1b(a,b,c,d,e){1e d*1v.9v(1-(b=b/e-1)*b)+c},nU:1b(a,b,c,d,e){if((b/=e/2)<1)1e-d/2*(1v.9v(1-b*b)-1)+c;1e d/2*(1v.9v(1-(b-=2)*b)+1)+c},nV:1b(a,b,c,d,e){1d f=1.9w,g=0,h=d;if(b==0)1e c;if((b/=e)==1)1e c+d;g||(g=e*.3);if(h<1v.4f(d)){h=d;1d f=g/4}2l 1d f=g/(2*1v.6J)*1v.eU(d/h);1e-(h*1v.7S(2,10*(b-=1))*1v.as((b*e-f)*2*1v.6J/g))+c},nW:1b(a,b,c,d,e){1d f=1.9w,g=0,h=d;if(b==0)1e c;if((b/=e)==1)1e c+d;g||(g=e*.3);if(h<1v.4f(d)){h=d;1d f=g/4}2l 1d f=g/(2*1v.6J)*1v.eU(d/h);1e h*1v.7S(2,-10*b)*1v.as((b*e-f)*2*1v.6J/g)+d+c},nX:1b(a,b,c,d,e){1d f=1.9w,g=0,h=d;if(b==0)1e c;if((b/=e/2)==2)1e c+d;g||(g=e*.3*1.5);if(h<1v.4f(d)){h=d;1d f=g/4}2l 1d f=g/(2*1v.6J)*1v.eU(d/h);if(b<1)1e-0.5*h*1v.7S(2,10*(b-=1))*1v.as((b*e-f)*2*1v.6J/g)+c;1e h*1v.7S(2,-10*(b-=1))*1v.as((b*e-f)*2*1v.6J/g)*.5+d+c},nY:1b(a,c,d,e,f,g){g==b&&(g=1.9w);1e e*(c/=f)*c*((g+1)*c-g)+d},nZ:1b(a,c,d,e,f,g){g==b&&(g=1.9w);1e e*((c=c/f-1)*c*((g+1)*c+g)+1)+d},o0:1b(a,c,d,e,f,g){g==b&&(g=1.9w);if((c/=f/2)<1)1e e/2*c*c*(((g*=1.iv)+1)*c-g)+d;1e e/2*((c-=2)*c*(((g*=1.iv)+1)*c+g)+2)+d},iw:1b(b,c,d,e,f){1e e-a.2p.b9(b,f-c,0,e,f)+d},b9:1b(a,b,c,d,e){1e(b/=e)<1/2.75?d*7.c2*b*b+c:b<2/2.75?d*(7.c2*(b-=1.5/2.75)*b+.75)+c:b<2.5/2.75?d*(7.c2*(b-=2.25/2.75)*b+.o1)+c:d*(7.c2*(b-=2.o2/2.75)*b+.o3)+c},o4:1b(b,c,d,e,f){if(c").1j({1o:"2M",7T:"4F",1g:-j*(g/d),1i:-i*(h/c)}).29().1t("1c-1B-eV").1j({1o:"2M",3t:"3F",1l:g/d,1k:h/c,1g:f.1g+j*(g/d)+(b.1f.3s=="1M"?(j-1v.7P(d/2))*(g/d):0),1i:f.1i+i*(h/c)+(b.1f.3s=="1M"?(i-1v.7P(c/2))*(h/c):0),2s:b.1f.3s=="1M"?0:1}).1X({1g:f.1g+j*(g/d)+(b.1f.3s=="1M"?0:(j-1v.7P(d/2))*(g/d)),1i:f.1i+i*(h/c)+(b.1f.3s=="1M"?0:(i-1v.7P(c/2))*(h/c)),2s:b.1f.3s=="1M"?1:0},b.2i||aN);5j(1b(){b.1f.3s=="1M"?e.1j({7T:"4F"}):e.1j({7T:"4F"}).1J(),b.2Z&&b.2Z.1N(e[0]),e.3Y(),a("2a.1c-1B-eV").2A()},b.2i||aN)})}})(2S);(1b(a,b){a.1B.eW=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=a.1B.5t(c,b.1f.3s||"1J");c.1X({2s:d},{2H:!1,2i:b.2i,2p:b.1f.2p,5q:1b(){b.2Z&&b.2Z.1N(1a,23),c.3Y()}})})}})(2S);(1b(a,b){a.1B.oa=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=["1o","1i","2T","1g","2N"],e=a.1B.5t(c,b.1f.3s||"1J"),f=b.1f.26||15,g=!!b.1f.ob,h=b.2i?b.2i/2:a.fx.8v.eP/2;a.1B.6m(c,d),c.1M();1d i=a.1B.7r(c).1j({3t:"3F"}),j=e=="1M"!=g,k=j?["1l","1k"]:["1k","1l"],l=j?[i.1l(),i.1k()]:[i.1k(),i.1l()],m=/([0-9]+)%/.7Q(f);m&&(f=1y(m[1],10)/3R*l[e=="1J"?0:1]),e=="1M"&&i.1j(g?{1k:0,1l:f}:{1k:f,1l:0});1d n={},p={};n[k[0]]=e=="1M"?l[0]:f,p[k[1]]=e=="1M"?l[1]:0,i.1X(n,h,b.1f.2p).1X(p,h,b.1f.2p,1b(){e=="1J"&&c.1J(),a.1B.5s(c,d),a.1B.6I(c),b.2Z&&b.2Z.1N(c[0],23),c.3Y()})})}})(2S);(1b(a,b){a.1B.hZ=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=["ix","9r","2s"],e=a.1B.5t(c,b.1f.3s||"1M"),f={9r:c.1j("9r")};e=="1J"&&(f.2s=0),a.1B.6m(c,d),c.1M().1j({ix:"7t",9r:b.1f.eQ||"#oc"}).1X(f,{2H:!1,2i:b.2i,2p:b.1f.2p,5q:1b(){e=="1J"&&c.1J(),a.1B.5s(c,d),e=="1M"&&!a.8B.2s&&1a.30.gK("2u"),b.2Z&&b.2Z.1N(1a,23),c.3Y()}})})}})(2S);(1b(a,b){a.1B.od=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=a.1B.5t(c,b.1f.3s||"1M");9x=(b.1f.9x||5)*2-1,2i=b.2i?b.2i/2:a.fx.8v.eP/2,c5=c.is(":4F"),8w=0,c5||(c.1j("2s",0).1M(),8w=1),(d=="1J"&&c5||d=="1M"&&!c5)&&9x--;1S(1d e=0;e<9x;e++)c.1X({2s:8w},2i,b.1f.2p),8w=(8w+1)%2;c.1X({2s:8w},2i,b.1f.2p,1b(){8w==0&&c.1J(),b.2Z&&b.2Z.1N(1a,23)}),c.2H("fx",1b(){c.3Y()}).3Y()})}})(2S);(1b(a,b){a.1B.oe=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=a.1B.5t(c,b.1f.3s||"1J"),e=1y(b.1f.c6,10)||98,f=e/3R,g={1k:c.1k(),1l:c.1l()};a.1W(b.1f,{eW:!0,3s:d,c6:d=="1J"?e:3R,2y:d=="1J"?g:{1k:g.1k*f,1l:g.1l*f}}),c.62("eX",b.1f,b.2i,b.2Z),c.3Y()})},a.1B.eX=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=a.1W(!0,{},b.1f),e=a.1B.5t(c,b.1f.3s||"62"),f=1y(b.1f.c6,10)||(1y(b.1f.c6,10)==0?0:e=="1J"?0:3R),g=b.1f.6A||"7x",h=b.1f.eY;e!="62"&&(d.eY=h||["eJ","82"],d.5s=!0);1d i={1k:c.1k(),1l:c.1l()};c.2y=b.1f.2y||(e=="1M"?{1k:0,1l:0}:i);1d j={y:g!="6j"?f/3R:1,x:g!="5d"?f/3R:1};c.2D={1k:i.1k*j.y,1l:i.1l*j.x},b.1f.eW&&(e=="1M"&&(c.2y.2s=0,c.2D.2s=1),e=="1J"&&(c.2y.2s=1,c.2D.2s=0)),d.2y=c.2y,d.2D=c.2D,d.3s=e,c.62("26",d,b.2i,b.2Z),c.3Y()})},a.1B.26=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=["1o","1i","2T","1g","2N","1l","1k","3t","2s"],e=["1o","1i","2T","1g","2N","3t","2s"],f=["1l","1k","3t"],g=["il"],h=["6W","cZ","7A","7B"],i=["6X","cY","8R","8S"],j=a.1B.5t(c,b.1f.3s||"62"),k=b.1f.5s||!1,l=b.1f.eX||"7x",m=b.1f.eY,n={1k:c.1k(),1l:c.1l()};c.2y=b.1f.2y||n,c.2D=b.1f.2D||n;if(m){1d p=a.1B.ik(m,n);c.2y.1i=(n.1k-c.2y.1k)*p.y,c.2y.1g=(n.1l-c.2y.1l)*p.x,c.2D.1i=(n.1k-c.2D.1k)*p.y,c.2D.1g=(n.1l-c.2D.1l)*p.x}1d q={2y:{y:c.2y.1k/n.1k,x:c.2y.1l/n.1l},2D:{y:c.2D.1k/n.1k,x:c.2D.1l/n.1l}};if(l=="og"||l=="7x")q.2y.y!=q.2D.y&&(d=d.4z(h),c.2y=a.1B.6n(c,h,q.2y.y,c.2y),c.2D=a.1B.6n(c,h,q.2D.y,c.2D)),q.2y.x!=q.2D.x&&(d=d.4z(i),c.2y=a.1B.6n(c,i,q.2y.x,c.2y),c.2D=a.1B.6n(c,i,q.2D.x,c.2D));(l=="2Y"||l=="7x")&&q.2y.y!=q.2D.y&&(d=d.4z(g),c.2y=a.1B.6n(c,g,q.2y.y,c.2y),c.2D=a.1B.6n(c,g,q.2D.y,c.2D)),a.1B.6m(c,k?d:e),c.1M(),a.1B.7r(c),c.1j("3t","3F").1j(c.2y);if(l=="2Y"||l=="7x")h=h.4z(["6T","8L"]).4z(g),i=i.4z(["7v","8K"]),f=d.4z(h).4z(i),c.2C("*[1l]").1H(1b(){3U=a(1a),k&&a.1B.6m(3U,f);1d c={1k:3U.1k(),1l:3U.1l()};3U.2y={1k:c.1k*q.2y.y,1l:c.1l*q.2y.x},3U.2D={1k:c.1k*q.2D.y,1l:c.1l*q.2D.x},q.2y.y!=q.2D.y&&(3U.2y=a.1B.6n(3U,h,q.2y.y,3U.2y),3U.2D=a.1B.6n(3U,h,q.2D.y,3U.2D)),q.2y.x!=q.2D.x&&(3U.2y=a.1B.6n(3U,i,q.2y.x,3U.2y),3U.2D=a.1B.6n(3U,i,q.2D.x,3U.2D)),3U.1j(3U.2y),3U.1X(3U.2D,b.2i,b.1f.2p,1b(){k&&a.1B.5s(3U,f)})});c.1X(c.2D,{2H:!1,2i:b.2i,2p:b.1f.2p,5q:1b(){c.2D.2s===0&&c.1j("2s",c.2y.2s),j=="1J"&&c.1J(),a.1B.5s(c,k?d:e),a.1B.6I(c),b.2Z&&b.2Z.1N(1a,23),c.3Y()}})})}})(2S);(1b(a,b){a.1B.oh=1b(b){1e 1a.2H(1b(){1d c=a(1a),d=["1o","1i","2T","1g","2N"],e=a.1B.5t(c,b.1f.3s||"62"),f=b.1f.6A||"1g",g=b.1f.6P||20,h=b.1f.9x||3,i=b.2i||b.1f.2i||eT;a.1B.6m(c,d),c.1M(),a.1B.7r(c);1d j=f=="5S"||f=="5o"?"1i":"1g",k=f=="5S"||f=="1g"?"49":"c3",l={},m={},n={};l[j]=(k=="49"?"-=":"+=")+g,m[j]=(k=="49"?"+=":"-=")+g*2,n[j]=(k=="49"?"-=":"+=")+g*2,c.1X(l,i,b.1f.2p);1S(1d p=1;p\').2O(1u.2m).1t(b.1f.8X).1j({1i:g.1i,1g:g.1g,1k:c.7X(),1l:c.8E(),1o:"2M"}).1X(f,b.2i,b.1f.2p,1b(){h.2A(),b.2Z&&b.2Z.1N(c[0],23),c.3Y()})})}})(2S);',62,1506,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||this|function|ui|var|return|options|left|element|top|css|height|width|datepicker|offset|position|length|null|helper|disabled|addClass|document|Math|data|state|parseInt|removeClass|case|effects|_trigger|tabs|selected|active|_get|each|click|hide|button|widget|show|apply|currentItem|break|scrollParent|resizable|for|containment|item|input|extend|animate|attr|dialog||||arguments|||size||corner|parent|div|test|target|bind|scrollTop|instance|values|typeof|duration|call|scrollLeft|else|body|draggable|new|easing|containers|focus|opacity|menu|filter|relative|value|Date|from|zIndex|remove|class|find|to|keyCode|max|ddmanager|queue|anchors|handles|dpDiv|span|absolute|right|appendTo|margins|all|browser|jQuery|bottom|helperProportions|add|aria|items|content|callback|style|grid|||||||||255|destroy|offsetParent|unbind|outerWidth|pageX|pageY|placeholder|icon|auto|push|window|default|accordion|outerHeight|_uiHash|overlay|lis|mode|overflow|prototype|handle|headers|buttonElement|uiDialog|widgetName|_setOption|cssPosition|positionAbs|start|getTime|hidden|px|axis|hover|min|getFullYear|removeAttr|stop|unselecting|next|title|minHeight|100|string|type|child|children|val|range|dequeue|version||originalPosition||resize|ctrlKey||||slider|pos|select|fixed|hasClass|index|isFunction|abs|html|_helper|autocomplete|panels|parentNode|href|_change|label|getDate|curCSS|Widget|cursor|alsoResize|originalElement|selecting|icons|end|getMonth|contains|concat|removeData|scrollSensitivity|scrollSpeed|sortable|not|visible|minWidth|header|close|text|_daylightSavingAdjust|parents|toLowerCase|preventDefault|aspectRatio|se|metaKey|prev|_getInst|charAt|_create|activate|maxHeight|maxWidth|append|collapsible||role|_valueMin|cookie|parseFloat||plugin|split|containerCache|switch|selectable|blur|orientation|vertical|_defaults|settings|nodeName|map|number|setTimeout|_convertPositionTo|droppable|originalSize|refresh|down|first|complete|selectedMonth|restore|setMode|msie|margin|offsetHeight|trigger|closest|documentElement|tagName|snapElements|ghost|match|inline|toShow|last|selectedYear|_pos|_adjustDate|yearshtml|object|option|round|revert|scope|over|sw|up|maxZ|_trimAlignValue|load|_ui|_curInst|markerClassName|selectedDay||currentDay|effect|isNaN|_mouseDrag|drag|snap|dragging|offsetWidth|constructor|continue|accept|tolerance|isover|reset|keydown|tabIndex|toHide|source|horizontal|_valueMax|_refreshValue|save|setTransition|mousedown|display|widgetEventPrefix|_|get|_mouseUp|current|safari|deactivate|overflowOffset|join|sizeDiff|direction|replace|primary|secondary|dateFormat|_hideDatepicker|_dialogInput|currentYear|removeWrapper|PI|static|hasScroll|isOver|try|catch|distance|_mouseStarted|_mouseStart|_mouseStop|marginTop|collisionPosition|refreshPositions|borderTopWidth|borderLeftWidth|scrollHeight|resizing|parentData|change|slide|event|false||toggle|term|xhr|pressed|instances|_animateOff|_disabledInputs|_datepickerShowing|monthNames|monthNamesShort|dayNames|dayNamesShort|dpuuid|drawMonth|drawYear|_formatDate|_updateDatepicker|_getMinMaxDate|_getFormatConfig|currentMonth|128|createWrapper|scroll|none|cancel|marginLeft|bgiframe|both|_clear|prepareOffsets|paddingTop|paddingBottom|isout|droppables|_proportionallyResizeElements|autoHeight|toggleClass|true|list|previous|uuid|_value|cache|hash|throw|floor|exec|DP_jQuery_|pow|visibility|propAttr|prop|while|innerHeight|isOverAxis|mouseup|mouse|_mouseCapture|center|original|iframeFix||originalPageX|originalPageY|clone|isArray|cancelHelperRemoval|activeClass|hoverClass|intersect|proportions|shiftKey|step|startselected|floating|_storedCSS|clearTimeout|abort|checkbox|radio|buttons|clearfix|_cookie|_inDialog|yy|_showDatepicker|_getDaysInMonth|speeds|animateTo|andSelf|name|img|disableSelection|support|padding|border|innerWidth|removeChild|plugins|Array|_mouseInit|_mouseDestroy|marginRight|marginBottom|cursorAt|_cacheHelperProportions|_generatePosition|dropBehaviour|drop|paddingLeft|paddingRight|String|sort|_aspectRatio|mouseover|className|borderDif|elementOffset|currentContainer||domPosition||animated|triangle|running|unit|150|only|modal|originalTitle|_keySliding|_handleIndex|_clickOffset|_sanitizeSelector|_getIndex|td|Datepicker|isRTL|stepMonths|maxRows|_lastInput|setDate|_updateAlternate|formatDate|progressbar|backgroundColor|F0|139|animateClass|sqrt|70158|times|textarea|DOWN|UP|_init|delay|preventClickEvent|_mouseDownEvent|using|ownerDocument|stack|iframe|1e3|_getParentOffset|_getRelativeOffset|dropped|scrollWidth|fromOutside|out|splice|swing|_proportionallyResize|_handles|after|_propagate|containerElement|containerOffset|selectees|lastPositionAbs|key|update|counter|headerSelected|expanded|proxied|proxiedDuration|_move|selectedItem|keypress|empty|keyup|closeText|_isOpen|inArray|_tabify|panel|extendRemove|_isDisabledDatepicker|shortYearCutoff|stepBigMonths|getDay|blockUI|month|year|multi|_notifyChange|onclick|sin||expr|ENTER|ESCAPE|LEFT|PAGE_DOWN|PAGE_UP|RIGHT|SPACE|tabbable|appendChild|createElement|enable|disable|originalEvent|mouseDelayMet|nodeType|fit|insertBefore|addClasses|500|_createHelper|_cacheMargins|_adjustOffsetFromHelper|_setContainment|526|sortables|HTML|snapping|pointer|opera|wrapper|block|alsoresize|containerSize|connectWith|reverting|_storedZIndex|_rearrange|fillSpace|location|_clickHandler|easeOutBounce||||pending|||search|closing|activeElement|open|result|checked|buttonset|dialogClass|titlebar|beforeClose|buttonpane|_mouseSliding|_slide|ajaxOptions|_cleanup|processing|toString|delete|rotation|calendar|instActive|_keyEvent|_mainDivId|_inlineClass|_triggerClass|_dayOverClass|onSelect|log|_doKeyDown|_setDate|_getDefaultDate|_setDateFromField|_getDate|lastVal|parseDate|_getNumberOfMonths|Class|_adjustInstDate|_restrictMinMax|_determineDate|circle|group|tr|th|week|transparent|211|192|5625|neg|pieces|isVisible|percent|END|HOME|107|TAB|selectstart|Width|Left|Right|Top|Bottom|inner|outer|tabindex|100px|cleanData|_createWidget|widgetBaseClass|slice|create|_setOptions|isDefaultPrevented|_mouseDistanceMet|_mouseDelayMet|_mouseMoveDelegate|_mouseUpDelegate|collision|targetWidth|targetHeight|elemWidth|elemHeight|collisionWidth|collisionHeight|setOffset|background|1000px|cssText|connectToSortable|snapMode|dragStart|dragStop|relative_container|_intersectsWith|_cursor|_opacity|_zIndex|greedy|_over|_out|touch|wrap|elementIsWrapper|autohide|_updateCache|borderRightWidth|borderBottomWidth|_revertToRelativePosition|containerPosition|dragged|selectee|opos|forceHelperSize|float|table|_refreshItems|_storedCursor|_storedOpacity|_noFinalSort|_getItemsAsjQuery||_getDragVerticalDirection|_getDragHorizontalDirection|_connectWith|custom|1e4|before|mouseenter|mouseleave|_findActive|_createIcons|||prependTo|_destroyIcons|altKey|_toggle|300|off|searching|_initSource|ul|beforeunloadHandler|url|autocompleteRequest|success|error|grep|menuitem|move|form|boolean|hasTitle|_resetButton|rtl|closeOnEscape|moveToTop|beforeclose|_makeDraggable|_makeResizable|_createButtons|_size|_position|_minHeight|oldInstances|_detectOrientation|_start|_stop|elementSize|_normValueFromMouse|_values|panelTemplate|spinner|_tabId|indexOf|_rotate|_unrotate|bindHover|_dialogClass|_unselectableClass|_currentClass||regional|showAnim|showOptions|gotoCurrent|calculateWeek|iso8601Week|minDate|maxDate|||showCurrentAtPos|date|_newInst||_attachments|_doKeyPress|_doKeyUp|_autoSize|_disableDatepicker|src|_selectDay|_gotoToday|cover|_getBorders|_selectMonthYear|_selectDate|Invalid|substring|_ticksTo1970|_canAdjustMonth|priority|_isInRange|middle|xa0|initialized|valuenow|valueDiv|oldValue|_default|color|rgb|169|140|asin|explode|fade|scale|origin|filters|NUMPAD_ENTER|_focus|borderWidth|compareDocumentPosition|triggerHandler|bridge|_getCreateOptions|metadata|Event|_mouseDown|stopImmediatePropagation|_mouseMove|mousemove|flip|fractions|revertDuration|snapTolerance|_getHandle|shouldRevert|release|snapItem|makeArray|_activate||_deactivate|_drop|clickOffset|droppablesLoop|greedyChild|animateDuration|animateEasing|autoHide|originalResizeStyle||trim|diagonal||_renderAxis|_renderProxy|originalMousePosition|_updateVirtualBoundaries|_updateRatio|_respectSize|Infinity|_vBoundaries|autoRefresh|clientX|unselected|dropOnEmpty|forcePlaceholderSize|cell|_removeCurrentsFromItems|_createPlaceholder|_intersectsWithPointer|_intersectsWithSides|_contactContainers|prepend|connected|attribute|expression|toleranceElement|refreshContainers|nextSibling|receive|beforeStop|clearStyle|navigation|navigationFilter|tab|_keydown|newHeader|oldHeader|newContent|oldContent|_completed|animations|autoFocus|minLength|haspopup|previousPage|nextPage|response|_response|one|beforeunload|ajax|_search|loading|_normalize|_suggest|_renderMenu|_resizeMenu|_renderItem|escapeRegex|RegExp|has|_determineButtonType|siblings|accessible|autoOpen|160|getTitleId|uiDialogTitlebar|uiDialogTitlebarCloseText|events|toFixed|idPrefix|tabTemplate|removeAttribute|nav|mouseout|normal|rotate|stopPropagation|tabsshow|debug|_appendClass|prevText|nextText|currentText|May|dayNamesMin|weekHeader|firstDay|showMonthAfterYear|yearSuffix|showOn|fadeIn|defaultDate|appendText|buttonText|buttonImage|buttonImageOnly|hideIfNoPrevNext|navigationAsDateFormat|changeMonth|changeYear|yearRange|showOtherMonths|selectOtherMonths|showWeek|beforeShowDay|beforeShow|onChangeMonthYear|onClose|numberOfMonths|altField|altFormat|constrainInput|showButtonPanel|autoSize|_attachDatepicker|_connectDatepicker|_inlineDatepicker|setData|getData|alt|setMonth|DD|_dialogInst|clientWidth|clientHeight|Missing|_optionDatepicker|_getDateDatepicker|_clearDate|_possibleChars|charCode|_findPos|_checkOffset|_generateHTML|replaceWith|_tidyDialog|_checkExternalClick|Month|Year|864e5|getYear|setHours|getHours|_generateMonthYearHeader|thead|col|tbody|_getFirstDayOfMonth|highlight|onchange|valuemin|valuemax|_percentage|defaultView|borderColor|colorInit|elem|240|245|165|230|224||144||_addClass|_removeClass|_toggleClass|storage|getBaseline|fontSize|cssUnit||_show|_hide|__toggle|def||easeOutQuad|cos|525|easeInBounce|backgroundImage|transfer|area|usemap|ALT|BACKSPACE|CAPS_LOCK|COMMA|188|COMMAND|COMMAND_LEFT|COMMAND_RIGHT|CONTROL|DELETE|INSERT|MENU|NUMPAD_ADD|NUMPAD_DECIMAL|110|NUMPAD_DIVIDE|111|108|NUMPAD_MULTIPLY|106|NUMPAD_SUBTRACT|109|PERIOD|190|SHIFT|WINDOWS|enableSelection|Height|focusable|onselectstart|namespace|started|which|_mouseDelayTimer|documentMode|getElementsByTagName|firstChild|7432222px|432325px|30px|201px|innerHTML|2e3|fff|001|invalid|valid|toSortable|fromSortable|slow|canvas|zoom|gripsmall|documentScroll|instanceof|clientY|_preserveHelperProportions|semi|dynamic|serialize|toArray|forcePointerForContainers|sender|even|fix|tablist|tabpanel|fillHeight|currentTarget|changestart|700|now|bounceslide|200|textbox|readOnly|dataType|json|listbox|activedescendant|prevAll|nextAll|All|submit|attrFn|outline|labelledby|closethick|isOpen|resizeStart|resizeStop|grip|pop|Loading|8230|u00c0|uFFFF|ol|base|insertAfter|unique|unload|UI|Tabs|Mismatching|fragment|identifier|_disableClass|unselectable|day|days|Done|Prev|Next|Today|January|February|March|April|June|July|August|September|October|November|December|Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat|Su|Mo|Tu|We|Th|Fr|Sa|Wk|fast|hasDatepicker|console|_widgetDatepicker|setDefaults|getAttribute|eval|err||Za|z0|9_|2009|DM|MM|_dialogDatepicker|0px|_destroyDatepicker|_enableDatepicker|defaults|_changeDatepicker|_refreshDatepicker|_setDateDatepicker|fromCharCode|thin|medium|thick|previousSibling|slideDown|slideUp|fadeOut|unblockUI|draw|selectedIndex|noWeekends|substr|Unknown|Unexpected|literal|Extra|unparsed|characters|found|ATOM|COOKIE|ISO_8601|RFC_822|RFC_850|RFC_1036|RFC_1123|RFC_2822|RSS|TICKS|TIMESTAMP|W3C|718685|492|925|1e7|0123456789|setMinutes|setSeconds|setMilliseconds|9999|ceil|other|today|row|javascript|frameborder|isDisabled|scrollbar|getComputedStyle|currentStyle||toUpperCase|rgba|borderBottomColor|borderLeftColor|borderRightColor|borderTopColor|outlineColor|aqua|azure|beige|220||black|blue|brown|cyan|darkblue|darkcyan|darkgrey|darkgreen|darkkhaki|189|183|darkmagenta|darkolivegreen|darkorange|darkorchid|153|204|darkred|darksalmon|233|122|darkviolet|148|fuchsia|gold|215|green|indigo|130|khaki|lightblue|173|216|lightcyan|lightgreen|238|lightgrey|lightpink|182|193|lightyellow||lime|magenta|maroon|navy|olive|orange|pink|203|purple|violet|red|silver|white|yellow|borderBottom|borderLeft|borderRight||borderTop|switchClass|pt|jswing|easeInQuad|easeInOutQuad|easeInCubic|easeOutCubic|easeInOutCubic|easeInQuart|easeOutQuart|easeInOutQuart|easeInQuint|easeOutQuint|easeInOutQuint|easeInSine|easeOutSine|easeInOutSine|easeInExpo|easeOutExpo|easeInOutExpo|easeInCirc|easeOutCirc|easeInOutCirc|easeInElastic|easeOutElastic|easeInOutElastic|easeInBack|easeOutBack|easeInOutBack|9375|625|984375|easeInOutBounce|blind|bounce|250|clip|IMG|fold|horizFirst|ffff99|pulsate|puff||box|shake'.split('|'),0,{})) if(!Date.prototype.toYmd) { Date.prototype.toYmd = function() { return "" + this.getFullYear() + (this.getMonth() + 1 + "").lpad("0", 2) + (this.getDate() + "").lpad("0", 2); }; } if(!Number.prototype.Format) { Number.prototype.Format=function(number_of_dicimal_places,thousands_separator){ var num=this; if(number_of_dicimal_places>0){ var mul=Math.pow(10,number_of_dicimal_places); num=parseFloat(parseInt(num*mul))/mul; } else { num=parseInt(num); } if(thousands_separator){ var num1=num.toString().replace(/\.[0-9]+/,'').split("").reverse(); var modula=''; if(number_of_dicimal_places>0){ modula=num.toString(); if(modula.indexOf('.')!=-1){ modula='.'+modula.toString().replace(/([0-9]+\.)/,''); } else { modula=''; } } else { modula=''; } var num2=new Array(); var i=0; var a=0; for(a=0;a0){ num2[i++]=thousands_separator; } num2[i++]=num1[a]; } var testClass = new RegExp("(^"+thousands_separator+")"); return num2.reverse().join("").replace(testClass,'')+modula; } else { return num; } }; } if(!Object.prototype.is_scalar) { Object.is_scalar = function(value) { if(!value) { value = this; } return (/boolean|number|string/).test(typeof value); }; } if(!Object.prototype.is_array) { Object.is_array = function(value) { if(!value) { value = this; } return typeof(value) == 'object' && (value instanceof Array); }; } if(!String.prototype.trim) { String.prototype.trim = function(charlist) { if(charlist) { return this.ltrim(charlist).rtrim(charlist); } return this.replace(/^\s+|\s+$/g, ''); }; } if(!String.prototype.ltrim) { String.prototype.ltrim = function(charlist) { if(charlist) { var regex = new RegExp("^[" + charlist + "]$", 'i'); return this.replace(regex, ""); } return this.replace(/^\s+/,""); }; } if(!String.prototype.rtrim) { String.prototype.rtrim = function(charlist) { if(charlist) { var regex = new RegExp("[" + charlist + "]+$", 'i'); return this.replace(regex, ""); } return this.replace(/\s+$/,""); }; } if(!String.prototype.ucfirst) { String.prototype.ucfirst = function() { var f = this.charAt(0).toUpperCase(); return f + this.substr(1).toLowerCase(); }; } //pads left if(!String.prototype.lpad) { String.prototype.lpad = function(padString, length) { var str = this; while (str.length < length) str = padString + str; return str; }; } //pads right if(!String.prototype.rpad) { String.prototype.rpad = function(padString, length) { var str = this; while (str.length < length) str = str + padString; return str; }; } /** * Fix console bug exception for browsers without one (IE6-8) */ if (typeof console == 'undefined'){ var console = { log:function(text) { return; }, info:function(text) { return; }, warn:function(text) { return; }, error:function(text) { return; } }; } /* Prototype JavaScript framework, version 1.6.0.2 * (c) 2005-2008 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style license. * For details, see the Prototype web site: http://www.prototypejs.org/ * *--------------------------------------------------------------------------*/ var Prototype = { Version: '1.6.0.2', Browser: { IE: !!(window.attachEvent && !window.opera), Opera: !!window.opera, WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) }, BrowserFeatures: { XPath: !!document.evaluate, ElementExtensions: !!window.HTMLElement, SpecificElementExtensions: document.createElement('div').__proto__ && document.createElement('div').__proto__ !== document.createElement('form').__proto__ }, ScriptFragment: ']*>([\\S\\s]*?)<\/script>', JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, emptyFunction: function() { }, K: function(x) { return x } }; if (Prototype.Browser.MobileSafari) Prototype.BrowserFeatures.SpecificElementExtensions = false; /* Based on Alex Arnell's inheritance implementation. */ var Class = { create: function() { var parent = null, properties = $A(arguments); if (Object.isFunction(properties[0])) parent = properties.shift(); function klass() { this.initialize.apply(this, arguments); } Object.extend(klass, Class.Methods); klass.superclass = parent; klass.subclasses = []; if (parent) { var subclass = function() { }; subclass.prototype = parent.prototype; klass.prototype = new subclass; parent.subclasses.push(klass); } for (var i = 0; i < properties.length; i++) klass.addMethods(properties[i]); if (!klass.prototype.initialize) klass.prototype.initialize = Prototype.emptyFunction; klass.prototype.constructor = klass; return klass; } }; Class.Methods = { addMethods: function(source) { var ancestor = this.superclass && this.superclass.prototype; var properties = Object.keys(source); if (!Object.keys({ toString: true }).length) properties.push("toString", "valueOf"); for (var i = 0, length = properties.length; i < length; i++) { var property = properties[i], value = source[property]; if (ancestor && Object.isFunction(value) && value.argumentNames().first() == "$super") { var method = value, value = Object.extend((function(m) { return function() { return ancestor[m].apply(this, arguments) }; })(property).wrap(method), { valueOf: function() { return method }, toString: function() { return method.toString() } }); } this.prototype[property] = value; } return this; } }; var Abstract = { }; Object.extend = function(destination, source) { for (var property in source) destination[property] = source[property]; return destination; }; Object.extend(Object, { inspect: function(object) { try { if (Object.isUndefined(object)) return 'undefined'; if (object === null) return 'null'; return object.inspect ? object.inspect() : String(object); } catch (e) { if (e instanceof RangeError) return '...'; throw e; } }, toJSON: function(object) { var type = typeof object; switch (type) { case 'undefined': case 'function': case 'unknown': return; case 'boolean': return object.toString(); } if (object === null) return 'null'; if (object.toJSON) return object.toJSON(); if (Object.isElement(object)) return; var results = []; for (var property in object) { var value = Object.toJSON(object[property]); if (!Object.isUndefined(value)) results.push(property.toJSON() + ': ' + value); } return '{' + results.join(', ') + '}'; }, toQueryString: function(object) { return $H(object).toQueryString(); }, toHTML: function(object) { return object && object.toHTML ? object.toHTML() : String.interpret(object); }, keys: function(object) { var keys = []; for (var property in object) keys.push(property); return keys; }, values: function(object) { var values = []; for (var property in object) values.push(object[property]); return values; }, clone: function(object) { return Object.extend({ }, object); }, isElement: function(object) { return object && object.nodeType == 1; }, isArray: function(object) { return object != null && typeof object == "object" && 'splice' in object && 'join' in object; }, isHash: function(object) { return object instanceof Hash; }, isFunction: function(object) { return typeof object == "function"; }, isString: function(object) { return typeof object == "string"; }, isNumber: function(object) { return typeof object == "number"; }, isUndefined: function(object) { return typeof object == "undefined"; } }); Object.extend(Function.prototype, { argumentNames: function() { var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); return names.length == 1 && !names[0] ? [] : names; }, bind: function() { if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; var __method = this, args = $A(arguments), object = args.shift(); return function() { return __method.apply(object, args.concat($A(arguments))); } }, bindAsEventListener: function() { var __method = this, args = $A(arguments), object = args.shift(); return function(event) { return __method.apply(object, [event || window.event].concat(args)); } }, curry: function() { if (!arguments.length) return this; var __method = this, args = $A(arguments); return function() { return __method.apply(this, args.concat($A(arguments))); } }, delay: function() { var __method = this, args = $A(arguments), timeout = args.shift() * 1000; return window.setTimeout(function() { return __method.apply(__method, args); }, timeout); }, wrap: function(wrapper) { var __method = this; return function() { return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); } }, methodize: function() { if (this._methodized) return this._methodized; var __method = this; return this._methodized = function() { return __method.apply(null, [this].concat($A(arguments))); }; } }); Function.prototype.defer = Function.prototype.delay.curry(0.01); Date.prototype.toJSON = function() { return '"' + this.getUTCFullYear() + '-' + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + this.getUTCDate().toPaddedString(2) + 'T' + this.getUTCHours().toPaddedString(2) + ':' + this.getUTCMinutes().toPaddedString(2) + ':' + this.getUTCSeconds().toPaddedString(2) + 'Z"'; }; var Try = { these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) { } } return returnValue; } }; RegExp.prototype.match = RegExp.prototype.test; RegExp.escape = function(str) { return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); }; /*--------------------------------------------------------------------------*/ var PeriodicalExecuter = Class.create({ initialize: function(callback, frequency) { this.callback = callback; this.frequency = frequency; this.currentlyExecuting = false; this.registerCallback(); }, registerCallback: function() { this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); }, execute: function() { this.callback(this); }, stop: function() { if (!this.timer) return; clearInterval(this.timer); this.timer = null; }, onTimerEvent: function() { if (!this.currentlyExecuting) { try { this.currentlyExecuting = true; this.execute(); } finally { this.currentlyExecuting = false; } } } }); Object.extend(String, { interpret: function(value) { return value == null ? '' : String(value); }, specialChar: { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\' } }); Object.extend(String.prototype, { gsub: function(pattern, replacement) { var result = '', source = this, match; replacement = arguments.callee.prepareReplacement(replacement); while (source.length > 0) { if (match = source.match(pattern)) { result += source.slice(0, match.index); result += String.interpret(replacement(match)); source = source.slice(match.index + match[0].length); } else { result += source, source = ''; } } return result; }, sub: function(pattern, replacement, count) { replacement = this.gsub.prepareReplacement(replacement); count = Object.isUndefined(count) ? 1 : count; return this.gsub(pattern, function(match) { if (--count < 0) return match[0]; return replacement(match); }); }, scan: function(pattern, iterator) { this.gsub(pattern, iterator); return String(this); }, truncate: function(length, truncation) { length = length || 30; truncation = Object.isUndefined(truncation) ? '...' : truncation; return this.length > length ? this.slice(0, length - truncation.length) + truncation : String(this); }, strip: function() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); }, stripTags: function() { return this.replace(/<\/?[^>]+>/gi, ''); }, stripScripts: function() { return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); }, extractScripts: function() { var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); return (this.match(matchAll) || []).map(function(scriptTag) { return (scriptTag.match(matchOne) || ['', ''])[1]; }); }, evalScripts: function() { return this.extractScripts().map(function(script) { return eval(script) }); }, escapeHTML: function() { var self = arguments.callee; self.text.data = this; return self.div.innerHTML; }, unescapeHTML: function() { var div = new Element('div'); div.innerHTML = this.stripTags(); return div.childNodes[0] ? (div.childNodes.length > 1 ? $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : div.childNodes[0].nodeValue) : ''; }, toQueryParams: function(separator) { var match = this.strip().match(/([^?#]*)(#.*)?$/); if (!match) return { }; return match[1].split(separator || '&').inject({ }, function(hash, pair) { if ((pair = pair.split('='))[0]) { var key = decodeURIComponent(pair.shift()); var value = pair.length > 1 ? pair.join('=') : pair[0]; if (value != undefined) value = decodeURIComponent(value); if (key in hash) { if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; hash[key].push(value); } else hash[key] = value; } return hash; }); }, toArray: function() { return this.split(''); }, succ: function() { return this.slice(0, this.length - 1) + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); }, times: function(count) { return count < 1 ? '' : new Array(count + 1).join(this); }, camelize: function() { var parts = this.split('-'), len = parts.length; if (len == 1) return parts[0]; var camelized = this.charAt(0) == '-' ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) : parts[0]; for (var i = 1; i < len; i++) camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); return camelized; }, capitalize: function() { return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); }, underscore: function() { return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); }, dasherize: function() { return this.gsub(/_/,'-'); }, inspect: function(useDoubleQuotes) { var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { var character = String.specialChar[match[0]]; return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); }); if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; return "'" + escapedString.replace(/'/g, '\\\'') + "'"; }, toJSON: function() { return this.inspect(true); }, unfilterJSON: function(filter) { return this.sub(filter || Prototype.JSONFilter, '#{1}'); }, isJSON: function() { var str = this; if (str.blank()) return false; str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); }, evalJSON: function(sanitize) { var json = this.unfilterJSON(); try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); }, include: function(pattern) { return this.indexOf(pattern) > -1; }, startsWith: function(pattern) { return this.indexOf(pattern) === 0; }, endsWith: function(pattern) { var d = this.length - pattern.length; return d >= 0 && this.lastIndexOf(pattern) === d; }, empty: function() { return this == ''; }, blank: function() { return /^\s*$/.test(this); }, interpolate: function(object, pattern) { return new Template(this, pattern).evaluate(object); } }); if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { escapeHTML: function() { return this.replace(/&/g,'&').replace(//g,'>'); }, unescapeHTML: function() { return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } }); String.prototype.gsub.prepareReplacement = function(replacement) { if (Object.isFunction(replacement)) return replacement; var template = new Template(replacement); return function(match) { return template.evaluate(match) }; }; String.prototype.parseQuery = String.prototype.toQueryParams; Object.extend(String.prototype.escapeHTML, { div: document.createElement('div'), text: document.createTextNode('') }); with (String.prototype.escapeHTML) div.appendChild(text); var Template = Class.create({ initialize: function(template, pattern) { this.template = template.toString(); this.pattern = pattern || Template.Pattern; }, evaluate: function(object) { if (Object.isFunction(object.toTemplateReplacements)) object = object.toTemplateReplacements(); return this.template.gsub(this.pattern, function(match) { if (object == null) return ''; var before = match[1] || ''; if (before == '\\') return match[2]; var ctx = object, expr = match[3]; var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; match = pattern.exec(expr); if (match == null) return before; while (match != null) { var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; ctx = ctx[comp]; if (null == ctx || '' == match[3]) break; expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); match = pattern.exec(expr); } return before + String.interpret(ctx); }); } }); Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; var $break = { }; var Enumerable = { each: function(iterator, context) { var index = 0; iterator = iterator.bind(context); try { this._each(function(value) { iterator(value, index++); }); } catch (e) { if (e != $break) throw e; } return this; }, eachSlice: function(number, iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var index = -number, slices = [], array = this.toArray(); while ((index += number) < array.length) slices.push(array.slice(index, index+number)); return slices.collect(iterator, context); }, all: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var result = true; this.each(function(value, index) { result = result && !!iterator(value, index); if (!result) throw $break; }); return result; }, any: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var result = false; this.each(function(value, index) { if (result = !!iterator(value, index)) throw $break; }); return result; }, collect: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var results = []; this.each(function(value, index) { results.push(iterator(value, index)); }); return results; }, detect: function(iterator, context) { iterator = iterator.bind(context); var result; this.each(function(value, index) { if (iterator(value, index)) { result = value; throw $break; } }); return result; }, findAll: function(iterator, context) { iterator = iterator.bind(context); var results = []; this.each(function(value, index) { if (iterator(value, index)) results.push(value); }); return results; }, grep: function(filter, iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var results = []; if (Object.isString(filter)) filter = new RegExp(filter); this.each(function(value, index) { if (filter.match(value)) results.push(iterator(value, index)); }); return results; }, include: function(object) { if (Object.isFunction(this.indexOf)) if (this.indexOf(object) != -1) return true; var found = false; this.each(function(value) { if (value == object) { found = true; throw $break; } }); return found; }, inGroupsOf: function(number, fillWith) { fillWith = Object.isUndefined(fillWith) ? null : fillWith; return this.eachSlice(number, function(slice) { while(slice.length < number) slice.push(fillWith); return slice; }); }, inject: function(memo, iterator, context) { iterator = iterator.bind(context); this.each(function(value, index) { memo = iterator(memo, value, index); }); return memo; }, invoke: function(method) { var args = $A(arguments).slice(1); return this.map(function(value) { return value[method].apply(value, args); }); }, max: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var result; this.each(function(value, index) { value = iterator(value, index); if (result == null || value >= result) result = value; }); return result; }, min: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var result; this.each(function(value, index) { value = iterator(value, index); if (result == null || value < result) result = value; }); return result; }, partition: function(iterator, context) { iterator = iterator ? iterator.bind(context) : Prototype.K; var trues = [], falses = []; this.each(function(value, index) { (iterator(value, index) ? trues : falses).push(value); }); return [trues, falses]; }, pluck: function(property) { var results = []; this.each(function(value) { results.push(value[property]); }); return results; }, reject: function(iterator, context) { iterator = iterator.bind(context); var results = []; this.each(function(value, index) { if (!iterator(value, index)) results.push(value); }); return results; }, sortBy: function(iterator, context) { iterator = iterator.bind(context); return this.map(function(value, index) { return {value: value, criteria: iterator(value, index)}; }).sort(function(left, right) { var a = left.criteria, b = right.criteria; return a < b ? -1 : a > b ? 1 : 0; }).pluck('value'); }, toArray: function() { return this.map(); }, zip: function() { var iterator = Prototype.K, args = $A(arguments); if (Object.isFunction(args.last())) iterator = args.pop(); var collections = [this].concat(args).map($A); return this.map(function(value, index) { return iterator(collections.pluck(index)); }); }, size: function() { return this.toArray().length; }, inspect: function() { return '#'; } }; Object.extend(Enumerable, { map: Enumerable.collect, find: Enumerable.detect, select: Enumerable.findAll, filter: Enumerable.findAll, member: Enumerable.include, entries: Enumerable.toArray, every: Enumerable.all, some: Enumerable.any }); function $A(iterable) { if (!iterable) return []; if (iterable.toArray) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; } if (Prototype.Browser.WebKit) { $A = function(iterable) { if (!iterable) return []; if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && iterable.toArray) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; }; } Array.from = $A; Object.extend(Array.prototype, Enumerable); if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; Object.extend(Array.prototype, { _each: function(iterator) { for (var i = 0, length = this.length; i < length; i++) iterator(this[i]); }, clear: function() { this.length = 0; return this; }, first: function() { return this[0]; }, last: function() { return this[this.length - 1]; }, compact: function() { return this.select(function(value) { return value != null; }); }, flatten: function() { return this.inject([], function(array, value) { return array.concat(Object.isArray(value) ? value.flatten() : [value]); }); }, without: function() { var values = $A(arguments); return this.select(function(value) { return !values.include(value); }); }, reverse: function(inline) { return (inline !== false ? this : this.toArray())._reverse(); }, reduce: function() { return this.length > 1 ? this : this[0]; }, uniq: function(sorted) { return this.inject([], function(array, value, index) { if (0 == index || (sorted ? array.last() != value : !array.include(value))) array.push(value); return array; }); }, intersect: function(array) { return this.uniq().findAll(function(item) { return array.detect(function(value) { return item === value }); }); }, clone: function() { return [].concat(this); }, size: function() { return this.length; }, inspect: function() { return '[' + this.map(Object.inspect).join(', ') + ']'; }, toJSON: function() { var results = []; this.each(function(object) { var value = Object.toJSON(object); if (!Object.isUndefined(value)) results.push(value); }); return '[' + results.join(', ') + ']'; } }); // use native browser JS 1.6 implementation if available if (Object.isFunction(Array.prototype.forEach)) Array.prototype._each = Array.prototype.forEach; if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { i || (i = 0); var length = this.length; if (i < 0) i = length + i; for (; i < length; i++) if (this[i] === item) return i; return -1; }; if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; var n = this.slice(0, i).reverse().indexOf(item); return (n < 0) ? n : i - n - 1; }; Array.prototype.toArray = Array.prototype.clone; function $w(string) { if (!Object.isString(string)) return []; string = string.strip(); return string ? string.split(/\s+/) : []; } if (Prototype.Browser.Opera){ Array.prototype.concat = function() { var array = []; for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); for (var i = 0, length = arguments.length; i < length; i++) { if (Object.isArray(arguments[i])) { for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) array.push(arguments[i][j]); } else { array.push(arguments[i]); } } return array; }; } Object.extend(Number.prototype, { toColorPart: function() { return this.toPaddedString(2, 16); }, succ: function() { return this + 1; }, times: function(iterator) { $R(0, this, true).each(iterator); return this; }, toPaddedString: function(length, radix) { var string = this.toString(radix || 10); return '0'.times(length - string.length) + string; }, toJSON: function() { return isFinite(this) ? this.toString() : 'null'; } }); $w('abs round ceil floor').each(function(method){ Number.prototype[method] = Math[method].methodize(); }); function $H(object) { return new Hash(object); }; var Hash = Class.create(Enumerable, (function() { function toQueryPair(key, value) { if (Object.isUndefined(value)) return key; return key + '=' + encodeURIComponent(String.interpret(value)); } return { initialize: function(object) { this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); }, _each: function(iterator) { for (var key in this._object) { var value = this._object[key], pair = [key, value]; pair.key = key; pair.value = value; iterator(pair); } }, set: function(key, value) { return this._object[key] = value; }, get: function(key) { return this._object[key]; }, unset: function(key) { var value = this._object[key]; delete this._object[key]; return value; }, toObject: function() { return Object.clone(this._object); }, keys: function() { return this.pluck('key'); }, values: function() { return this.pluck('value'); }, index: function(value) { var match = this.detect(function(pair) { return pair.value === value; }); return match && match.key; }, merge: function(object) { return this.clone().update(object); }, update: function(object) { return new Hash(object).inject(this, function(result, pair) { result.set(pair.key, pair.value); return result; }); }, toQueryString: function() { return this.map(function(pair) { var key = encodeURIComponent(pair.key), values = pair.value; if (values && typeof values == 'object') { if (Object.isArray(values)) return values.map(toQueryPair.curry(key)).join('&'); } return toQueryPair(key, values); }).join('&'); }, inspect: function() { return '#'; }, toJSON: function() { return Object.toJSON(this.toObject()); }, clone: function() { return new Hash(this); } } })()); Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; Hash.from = $H; var ObjectRange = Class.create(Enumerable, { initialize: function(start, end, exclusive) { this.start = start; this.end = end; this.exclusive = exclusive; }, _each: function(iterator) { var value = this.start; while (this.include(value)) { iterator(value); value = value.succ(); } }, include: function(value) { if (value < this.start) return false; if (this.exclusive) return value < this.end; return value <= this.end; } }); var $R = function(start, end, exclusive) { return new ObjectRange(start, end, exclusive); }; var Ajax = { getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false; }, activeRequestCount: 0 }; Ajax.Responders = { responders: [], _each: function(iterator) { this.responders._each(iterator); }, register: function(responder) { if (!this.include(responder)) this.responders.push(responder); }, unregister: function(responder) { this.responders = this.responders.without(responder); }, dispatch: function(callback, request, transport, json) { this.each(function(responder) { if (Object.isFunction(responder[callback])) { try { responder[callback].apply(responder, [request, transport, json]); } catch (e) { } } }); } }; Object.extend(Ajax.Responders, Enumerable); Ajax.Responders.register({ onCreate: function() { Ajax.activeRequestCount++ }, onComplete: function() { Ajax.activeRequestCount-- } }); Ajax.Base = Class.create({ initialize: function(options) { this.options = { method: 'post', asynchronous: true, contentType: 'application/x-www-form-urlencoded', encoding: 'UTF-8', parameters: '', evalJSON: true, evalJS: true }; Object.extend(this.options, options || { }); this.options.method = this.options.method.toLowerCase(); if (Object.isString(this.options.parameters)) this.options.parameters = this.options.parameters.toQueryParams(); else if (Object.isHash(this.options.parameters)) this.options.parameters = this.options.parameters.toObject(); } }); Ajax.Request = Class.create(Ajax.Base, { _complete: false, initialize: function($super, url, options) { $super(options); this.transport = Ajax.getTransport(); this.request(url); }, request: function(url) { this.url = url; this.method = this.options.method; var params = Object.clone(this.options.parameters); if (!['get', 'post'].include(this.method)) { // simulate other verbs over post params['_method'] = this.method; this.method = 'post'; } this.parameters = params; if (params = Object.toQueryString(params)) { // when GET, append parameters to URL if (this.method == 'get') this.url += (this.url.include('?') ? '&' : '?') + params; else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='; } try { var response = new Ajax.Response(this); if (this.options.onCreate) this.options.onCreate(response); Ajax.Responders.dispatch('onCreate', this, response); this.transport.open(this.method.toUpperCase(), this.url, this.options.asynchronous); if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); this.transport.onreadystatechange = this.onStateChange.bind(this); this.setRequestHeaders(); this.body = this.method == 'post' ? (this.options.postBody || params) : null; this.transport.send(this.body); /* Force Firefox to handle ready state 4 for synchronous requests */ if (!this.options.asynchronous && this.transport.overrideMimeType) this.onStateChange(); } catch (e) { this.dispatchException(e); } }, onStateChange: function() { var readyState = this.transport.readyState; if (readyState > 1 && !((readyState == 4) && this._complete)) this.respondToReadyState(this.transport.readyState); }, setRequestHeaders: function() { var headers = { 'X-Requested-With': 'XMLHttpRequest', 'X-Prototype-Version': Prototype.Version, 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' }; if (this.method == 'post') { headers['Content-type'] = this.options.contentType + (this.options.encoding ? '; charset=' + this.options.encoding : ''); /* Force "Connection: close" for older Mozilla browsers to work * around a bug where XMLHttpRequest sends an incorrect * Content-length header. See Mozilla Bugzilla #246651. */ if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) headers['Connection'] = 'close'; } // user-defined headers if (typeof this.options.requestHeaders == 'object') { var extras = this.options.requestHeaders; if (Object.isFunction(extras.push)) for (var i = 0, length = extras.length; i < length; i += 2) headers[extras[i]] = extras[i+1]; else $H(extras).each(function(pair) { headers[pair.key] = pair.value }); } for (var name in headers) this.transport.setRequestHeader(name, headers[name]); }, success: function() { var status = this.getStatus(); return !status || (status >= 200 && status < 300); }, getStatus: function() { try { return this.transport.status || 0; } catch (e) { return 0 } }, respondToReadyState: function(readyState) { var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); if (state == 'Complete') { try { this._complete = true; (this.options['on' + response.status] || this.options['on' + (this.success() ? 'Success' : 'Failure')] || Prototype.emptyFunction)(response, response.headerJSON); } catch (e) { this.dispatchException(e); } var contentType = response.getHeader('Content-type'); if (this.options.evalJS == 'force' || (this.options.evalJS && this.isSameOrigin() && contentType && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) this.evalResponse(); } try { (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); } catch (e) { this.dispatchException(e); } if (state == 'Complete') { // avoid memory leak in MSIE: clean up this.transport.onreadystatechange = Prototype.emptyFunction; } }, isSameOrigin: function() { var m = this.url.match(/^\s*https?:\/\/[^\/]*/); return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ protocol: location.protocol, domain: document.domain, port: location.port ? ':' + location.port : '' })); }, getHeader: function(name) { try { return this.transport.getResponseHeader(name) || null; } catch (e) { return null } }, evalResponse: function() { try { return eval((this.transport.responseText || '').unfilterJSON()); } catch (e) { this.dispatchException(e); } }, dispatchException: function(exception) { (this.options.onException || Prototype.emptyFunction)(this, exception); Ajax.Responders.dispatch('onException', this, exception); } }); Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; Ajax.Response = Class.create({ initialize: function(request){ this.request = request; var transport = this.transport = request.transport, readyState = this.readyState = transport.readyState; if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { this.status = this.getStatus(); this.statusText = this.getStatusText(); this.responseText = String.interpret(transport.responseText); this.headerJSON = this._getHeaderJSON(); } if(readyState == 4) { var xml = transport.responseXML; this.responseXML = Object.isUndefined(xml) ? null : xml; this.responseJSON = this._getResponseJSON(); } }, status: 0, statusText: '', getStatus: Ajax.Request.prototype.getStatus, getStatusText: function() { try { return this.transport.statusText || ''; } catch (e) { return '' } }, getHeader: Ajax.Request.prototype.getHeader, getAllHeaders: function() { try { return this.getAllResponseHeaders(); } catch (e) { return null } }, getResponseHeader: function(name) { return this.transport.getResponseHeader(name); }, getAllResponseHeaders: function() { return this.transport.getAllResponseHeaders(); }, _getHeaderJSON: function() { var json = this.getHeader('X-JSON'); if (!json) return null; json = decodeURIComponent(escape(json)); try { return json.evalJSON(this.request.options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } }, _getResponseJSON: function() { var options = this.request.options; if (!options.evalJSON || (options.evalJSON != 'force' && !(this.getHeader('Content-type') || '').include('application/json')) || this.responseText.blank()) return null; try { return this.responseText.evalJSON(options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } } }); Ajax.Updater = Class.create(Ajax.Request, { initialize: function($super, container, url, options) { this.container = { success: (container.success || container), failure: (container.failure || (container.success ? null : container)) }; options = Object.clone(options); var onComplete = options.onComplete; options.onComplete = (function(response, json) { this.updateContent(response.responseText); if (Object.isFunction(onComplete)) onComplete(response, json); }).bind(this); $super(url, options); }, updateContent: function(responseText) { var receiver = this.container[this.success() ? 'success' : 'failure'], options = this.options; if (!options.evalScripts) responseText = responseText.stripScripts(); if (receiver = $(receiver)) { if (options.insertion) { if (Object.isString(options.insertion)) { var insertion = { }; insertion[options.insertion] = responseText; receiver.insert(insertion); } else options.insertion(receiver, responseText); } else receiver.update(responseText); } } }); Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { initialize: function($super, container, url, options) { $super(options); this.onComplete = this.options.onComplete; this.frequency = (this.options.frequency || 2); this.decay = (this.options.decay || 1); this.updater = { }; this.container = container; this.url = url; this.start(); }, start: function() { this.options.onComplete = this.updateComplete.bind(this); this.onTimerEvent(); }, stop: function() { this.updater.options.onComplete = undefined; clearTimeout(this.timer); (this.onComplete || Prototype.emptyFunction).apply(this, arguments); }, updateComplete: function(response) { if (this.options.decay) { this.decay = (response.responseText == this.lastText ? this.decay * this.options.decay : 1); this.lastText = response.responseText; } this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); }, onTimerEvent: function() { this.updater = new Ajax.Updater(this.container, this.url, this.options); } }); function $(element) { if (arguments.length > 1) { for (var i = 0, elements = [], length = arguments.length; i < length; i++) elements.push($(arguments[i])); return elements; } if (Object.isString(element)) element = document.getElementById(element); return Element.extend(element); } if (Prototype.BrowserFeatures.XPath) { document._getElementsByXPath = function(expression, parentElement) { var results = []; var query = document.evaluate(expression, $(parentElement) || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0, length = query.snapshotLength; i < length; i++) results.push(Element.extend(query.snapshotItem(i))); return results; }; } /*--------------------------------------------------------------------------*/ if (!window.Node) var Node = { }; if (!Node.ELEMENT_NODE) { // DOM level 2 ECMAScript Language Binding Object.extend(Node, { ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12 }); } (function() { var element = this.Element; this.Element = function(tagName, attributes) { attributes = attributes || { }; tagName = tagName.toLowerCase(); var cache = Element.cache; if (Prototype.Browser.IE && attributes.name) { tagName = '<' + tagName + ' name="' + attributes.name + '">'; delete attributes.name; return Element.writeAttribute(document.createElement(tagName), attributes); } if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); }; Object.extend(this.Element, element || { }); }).call(window); Element.cache = { }; Element.Methods = { visible: function(element) { return $(element).style.display != 'none'; }, toggle: function(element) { element = $(element); Element[Element.visible(element) ? 'hide' : 'show'](element); return element; }, hide: function(element) { $(element).style.display = 'none'; return element; }, show: function(element) { $(element).style.display = ''; return element; }, remove: function(element) { element = $(element); element.parentNode.removeChild(element); return element; }, update: function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) return element.update().insert(content); content = Object.toHTML(content); element.innerHTML = content.stripScripts(); content.evalScripts.bind(content).defer(); return element; }, replace: function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); else if (!Object.isElement(content)) { content = Object.toHTML(content); var range = element.ownerDocument.createRange(); range.selectNode(element); content.evalScripts.bind(content).defer(); content = range.createContextualFragment(content.stripScripts()); } element.parentNode.replaceChild(content, element); return element; }, insert: function(element, insertions) { element = $(element); if (Object.isString(insertions) || Object.isNumber(insertions) || Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) insertions = {bottom:insertions}; var content, insert, tagName, childNodes; for (var position in insertions) { content = insertions[position]; position = position.toLowerCase(); insert = Element._insertionTranslations[position]; if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { insert(element, content); continue; } content = Object.toHTML(content); tagName = ((position == 'before' || position == 'after') ? element.parentNode : element).tagName.toUpperCase(); childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); if (position == 'top' || position == 'after') childNodes.reverse(); childNodes.each(insert.curry(element)); content.evalScripts.bind(content).defer(); } return element; }, wrap: function(element, wrapper, attributes) { element = $(element); if (Object.isElement(wrapper)) $(wrapper).writeAttribute(attributes || { }); else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); else wrapper = new Element('div', wrapper); if (element.parentNode) element.parentNode.replaceChild(wrapper, element); wrapper.appendChild(element); return wrapper; }, inspect: function(element) { element = $(element); var result = '<' + element.tagName.toLowerCase(); $H({'id': 'id', 'className': 'class'}).each(function(pair) { var property = pair.first(), attribute = pair.last(); var value = (element[property] || '').toString(); if (value) result += ' ' + attribute + '=' + value.inspect(true); }); return result + '>'; }, recursivelyCollect: function(element, property) { element = $(element); var elements = []; while (element = element[property]) if (element.nodeType == 1) elements.push(Element.extend(element)); return elements; }, ancestors: function(element) { return $(element).recursivelyCollect('parentNode'); }, descendants: function(element) { return $(element).select("*"); }, firstDescendant: function(element) { element = $(element).firstChild; while (element && element.nodeType != 1) element = element.nextSibling; return $(element); }, immediateDescendants: function(element) { if (!(element = $(element).firstChild)) return []; while (element && element.nodeType != 1) element = element.nextSibling; if (element) return [element].concat($(element).nextSiblings()); return []; }, previousSiblings: function(element) { return $(element).recursivelyCollect('previousSibling'); }, nextSiblings: function(element) { return $(element).recursivelyCollect('nextSibling'); }, siblings: function(element) { element = $(element); return element.previousSiblings().reverse().concat(element.nextSiblings()); }, match: function(element, selector) { if (Object.isString(selector)) selector = new Selector(selector); return selector.match($(element)); }, up: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(element.parentNode); var ancestors = element.ancestors(); return Object.isNumber(expression) ? ancestors[expression] : Selector.findElement(ancestors, expression, index); }, down: function(element, expression, index) { element = $(element); if (arguments.length == 1) return element.firstDescendant(); return Object.isNumber(expression) ? element.descendants()[expression] : element.select(expression)[index || 0]; }, previous: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); var previousSiblings = element.previousSiblings(); return Object.isNumber(expression) ? previousSiblings[expression] : Selector.findElement(previousSiblings, expression, index); }, next: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); var nextSiblings = element.nextSiblings(); return Object.isNumber(expression) ? nextSiblings[expression] : Selector.findElement(nextSiblings, expression, index); }, select: function() { var args = $A(arguments), element = $(args.shift()); return Selector.findChildElements(element, args); }, adjacent: function() { var args = $A(arguments), element = $(args.shift()); return Selector.findChildElements(element.parentNode, args).without(element); }, identify: function(element) { element = $(element); var id = element.readAttribute('id'), self = arguments.callee; if (id) return id; do { id = 'anonymous_element_' + self.counter++ } while ($(id)); element.writeAttribute('id', id); return id; }, readAttribute: function(element, name) { element = $(element); if (Prototype.Browser.IE) { var t = Element._attributeTranslations.read; if (t.values[name]) return t.values[name](element, name); if (t.names[name]) name = t.names[name]; if (name.include(':')) { return (!element.attributes || !element.attributes[name]) ? null : element.attributes[name].value; } } return element.getAttribute(name); }, writeAttribute: function(element, name, value) { element = $(element); var attributes = { }, t = Element._attributeTranslations.write; if (typeof name == 'object') attributes = name; else attributes[name] = Object.isUndefined(value) ? true : value; for (var attr in attributes) { name = t.names[attr] || attr; value = attributes[attr]; if (t.values[attr]) name = t.values[attr](element, value); if (value === false || value === null) element.removeAttribute(name); else if (value === true) element.setAttribute(name, name); else element.setAttribute(name, value); } return element; }, getHeight: function(element) { return $(element).getDimensions().height; }, getWidth: function(element) { return $(element).getDimensions().width; }, classNames: function(element) { return new Element.ClassNames(element); }, hasClassName: function(element, className) { if (!(element = $(element))) return; var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); }, addClassName: function(element, className) { if (!(element = $(element))) return; if (!element.hasClassName(className)) element.className += (element.className ? ' ' : '') + className; return element; }, removeClassName: function(element, className) { if (!(element = $(element))) return; element.className = element.className.replace( new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); return element; }, toggleClassName: function(element, className) { if (!(element = $(element))) return; return element[element.hasClassName(className) ? 'removeClassName' : 'addClassName'](className); }, // removes whitespace-only text node children cleanWhitespace: function(element) { element = $(element); var node = element.firstChild; while (node) { var nextNode = node.nextSibling; if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) element.removeChild(node); node = nextNode; } return element; }, empty: function(element) { return $(element).innerHTML.blank(); }, descendantOf: function(element, ancestor) { element = $(element), ancestor = $(ancestor); var originalAncestor = ancestor; if (element.compareDocumentPosition) return (element.compareDocumentPosition(ancestor) & 8) === 8; if (element.sourceIndex && !Prototype.Browser.Opera) { var e = element.sourceIndex, a = ancestor.sourceIndex, nextAncestor = ancestor.nextSibling; if (!nextAncestor) { do { ancestor = ancestor.parentNode; } while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); } if (nextAncestor && nextAncestor.sourceIndex) return (e > a && e < nextAncestor.sourceIndex); } while (element = element.parentNode) if (element == originalAncestor) return true; return false; }, scrollTo: function(element) { element = $(element); var pos = element.cumulativeOffset(); window.scrollTo(pos[0], pos[1]); return element; }, getStyle: function(element, style) { element = $(element); style = style == 'float' ? 'cssFloat' : style.camelize(); var value = element.style[style]; if (!value) { var css = document.defaultView.getComputedStyle(element, null); value = css ? css[style] : null; } if (style == 'opacity') return value ? parseFloat(value) : 1.0; return value == 'auto' ? null : value; }, getOpacity: function(element) { return $(element).getStyle('opacity'); }, setStyle: function(element, styles) { element = $(element); var elementStyle = element.style, match; if (Object.isString(styles)) { element.style.cssText += ';' + styles; return styles.include('opacity') ? element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; } for (var property in styles) if (property == 'opacity') element.setOpacity(styles[property]); else elementStyle[(property == 'float' || property == 'cssFloat') ? (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : property] = styles[property]; return element; }, setOpacity: function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }, getDimensions: function(element) { element = $(element); var display = $(element).getStyle('display'); if (display != 'none' && display != null) // Safari bug return {width: element.offsetWidth, height: element.offsetHeight}; // All *Width and *Height properties give 0 on elements with display none, // so enable the element temporarily var els = element.style; var originalVisibility = els.visibility; var originalPosition = els.position; var originalDisplay = els.display; els.visibility = 'hidden'; els.position = 'absolute'; els.display = 'block'; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; els.display = originalDisplay; els.position = originalPosition; els.visibility = originalVisibility; return {width: originalWidth, height: originalHeight}; }, makePositioned: function(element) { element = $(element); var pos = Element.getStyle(element, 'position'); if (pos == 'static' || !pos) { element._madePositioned = true; element.style.position = 'relative'; // Opera returns the offset relative to the positioning context, when an // element is position relative but top and left have not been defined if (window.opera) { element.style.top = 0; element.style.left = 0; } } return element; }, undoPositioned: function(element) { element = $(element); if (element._madePositioned) { element._madePositioned = undefined; element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; } return element; }, makeClipping: function(element) { element = $(element); if (element._overflow) return element; element._overflow = Element.getStyle(element, 'overflow') || 'auto'; if (element._overflow !== 'hidden') element.style.overflow = 'hidden'; return element; }, undoClipping: function(element) { element = $(element); if (!element._overflow) return element; element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; element._overflow = null; return element; }, cumulativeOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; } while (element); return Element._returnOffset(valueL, valueT); }, positionedOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; if (element) { if (element.tagName == 'BODY') break; var p = Element.getStyle(element, 'position'); if (p !== 'static') break; } } while (element); return Element._returnOffset(valueL, valueT); }, absolutize: function(element) { element = $(element); if (element.getStyle('position') == 'absolute') return; // Position.prepare(); // To be done manually by Scripty when it needs it. var offsets = element.positionedOffset(); var top = offsets[1]; var left = offsets[0]; var width = element.clientWidth; var height = element.clientHeight; element._originalLeft = left - parseFloat(element.style.left || 0); element._originalTop = top - parseFloat(element.style.top || 0); element._originalWidth = element.style.width; element._originalHeight = element.style.height; element.style.position = 'absolute'; element.style.top = top + 'px'; element.style.left = left + 'px'; element.style.width = width + 'px'; element.style.height = height + 'px'; return element; }, relativize: function(element) { element = $(element); if (element.getStyle('position') == 'relative') return; // Position.prepare(); // To be done manually by Scripty when it needs it. element.style.position = 'relative'; var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); element.style.top = top + 'px'; element.style.left = left + 'px'; element.style.height = element._originalHeight; element.style.width = element._originalWidth; return element; }, cumulativeScrollOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.scrollTop || 0; valueL += element.scrollLeft || 0; element = element.parentNode; } while (element); return Element._returnOffset(valueL, valueT); }, getOffsetParent: function(element) { if (element.offsetParent) return $(element.offsetParent); if (element == document.body) return $(element); while ((element = element.parentNode) && element != document.body) if (Element.getStyle(element, 'position') != 'static') return $(element); return $(document.body); }, viewportOffset: function(forElement) { var valueT = 0, valueL = 0; var element = forElement; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; // Safari fix if (element.offsetParent == document.body && Element.getStyle(element, 'position') == 'absolute') break; } while (element = element.offsetParent); element = forElement; do { if (!Prototype.Browser.Opera || element.tagName == 'BODY') { valueT -= element.scrollTop || 0; valueL -= element.scrollLeft || 0; } } while (element = element.parentNode); return Element._returnOffset(valueL, valueT); }, clonePosition: function(element, source) { var options = Object.extend({ setLeft: true, setTop: true, setWidth: true, setHeight: true, offsetTop: 0, offsetLeft: 0 }, arguments[2] || { }); // find page position of source source = $(source); var p = source.viewportOffset(); // find coordinate system to use element = $(element); var delta = [0, 0]; var parent = null; // delta [0,0] will do fine with position: fixed elements, // position:absolute needs offsetParent deltas if (Element.getStyle(element, 'position') == 'absolute') { parent = element.getOffsetParent(); delta = parent.viewportOffset(); } // correct by body offsets (fixes Safari) if (parent == document.body) { delta[0] -= document.body.offsetLeft; delta[1] -= document.body.offsetTop; } // set position if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; if (options.setWidth) element.style.width = source.offsetWidth + 'px'; if (options.setHeight) element.style.height = source.offsetHeight + 'px'; return element; } }; Element.Methods.identify.counter = 1; Object.extend(Element.Methods, { getElementsBySelector: Element.Methods.select, childElements: Element.Methods.immediateDescendants }); Element._attributeTranslations = { write: { names: { className: 'class', htmlFor: 'for' }, values: { } } }; if (Prototype.Browser.Opera) { Element.Methods.getStyle = Element.Methods.getStyle.wrap( function(proceed, element, style) { switch (style) { case 'left': case 'top': case 'right': case 'bottom': if (proceed(element, 'position') === 'static') return null; case 'height': case 'width': // returns '0px' for hidden elements; we want it to return null if (!Element.visible(element)) return null; // returns the border-box dimensions rather than the content-box // dimensions, so we subtract padding and borders from the value var dim = parseInt(proceed(element, style), 10); if (dim !== element['offset' + style.capitalize()]) return dim + 'px'; var properties; if (style === 'height') { properties = ['border-top-width', 'padding-top', 'padding-bottom', 'border-bottom-width']; } else { properties = ['border-left-width', 'padding-left', 'padding-right', 'border-right-width']; } return properties.inject(dim, function(memo, property) { var val = proceed(element, property); return val === null ? memo : memo - parseInt(val, 10); }) + 'px'; default: return proceed(element, style); } } ); Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( function(proceed, element, attribute) { if (attribute === 'title') return element.title; return proceed(element, attribute); } ); } else if (Prototype.Browser.IE) { // IE doesn't report offsets correctly for static elements, so we change them // to "relative" to get the values, then change them back. Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( function(proceed, element) { element = $(element); var position = element.getStyle('position'); if (position !== 'static') return proceed(element); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; } ); $w('positionedOffset viewportOffset').each(function(method) { Element.Methods[method] = Element.Methods[method].wrap( function(proceed, element) { element = $(element); var position = element.getStyle('position'); if (position !== 'static') return proceed(element); // Trigger hasLayout on the offset parent so that IE6 reports // accurate offsetTop and offsetLeft values for position: fixed. var offsetParent = element.getOffsetParent(); if (offsetParent && offsetParent.getStyle('position') === 'fixed') offsetParent.setStyle({ zoom: 1 }); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; } ); }); Element.Methods.getStyle = function(element, style) { element = $(element); style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); var value = element.style[style]; if (!value && element.currentStyle) value = element.currentStyle[style]; if (style == 'opacity') { if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) if (value[1]) return parseFloat(value[1]) / 100; return 1.0; } if (value == 'auto') { if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) return element['offset' + style.capitalize()] + 'px'; return null; } return value; }; Element.Methods.setOpacity = function(element, value) { function stripAlpha(filter){ return filter.replace(/alpha\([^\)]*\)/gi,''); } element = $(element); var currentStyle = element.currentStyle; if ((currentStyle && !currentStyle.hasLayout) || (!currentStyle && element.style.zoom == 'normal')) element.style.zoom = 1; var filter = element.getStyle('filter'), style = element.style; if (value == 1 || value === '') { (filter = stripAlpha(filter)) ? style.filter = filter : style.removeAttribute('filter'); return element; } else if (value < 0.00001) value = 0; style.filter = stripAlpha(filter) + 'alpha(opacity=' + (value * 100) + ')'; return element; }; Element._attributeTranslations = { read: { names: { 'class': 'className', 'for': 'htmlFor' }, values: { _getAttr: function(element, attribute) { return element.getAttribute(attribute, 2); }, _getAttrNode: function(element, attribute) { var node = element.getAttributeNode(attribute); return node ? node.value : ""; }, _getEv: function(element, attribute) { attribute = element.getAttribute(attribute); return attribute ? attribute.toString().slice(23, -2) : null; }, _flag: function(element, attribute) { return $(element).hasAttribute(attribute) ? attribute : null; }, style: function(element) { return element.style.cssText.toLowerCase(); }, title: function(element) { return element.title; } } } }; Element._attributeTranslations.write = { names: Object.extend({ cellpadding: 'cellPadding', cellspacing: 'cellSpacing' }, Element._attributeTranslations.read.names), values: { checked: function(element, value) { element.checked = !!value; }, style: function(element, value) { element.style.cssText = value ? value : ''; } } }; Element._attributeTranslations.has = {}; $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + 'encType maxLength readOnly longDesc').each(function(attr) { Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; Element._attributeTranslations.has[attr.toLowerCase()] = attr; }); (function(v) { Object.extend(v, { href: v._getAttr, src: v._getAttr, type: v._getAttr, action: v._getAttrNode, disabled: v._flag, checked: v._flag, readonly: v._flag, multiple: v._flag, onload: v._getEv, onunload: v._getEv, onclick: v._getEv, ondblclick: v._getEv, onmousedown: v._getEv, onmouseup: v._getEv, onmouseover: v._getEv, onmousemove: v._getEv, onmouseout: v._getEv, onfocus: v._getEv, onblur: v._getEv, onkeypress: v._getEv, onkeydown: v._getEv, onkeyup: v._getEv, onsubmit: v._getEv, onreset: v._getEv, onselect: v._getEv, onchange: v._getEv }); })(Element._attributeTranslations.read.values); } else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1) ? 0.999999 : (value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }; } else if (Prototype.Browser.WebKit) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; if (value == 1) if(element.tagName == 'IMG' && element.width) { element.width++; element.width--; } else try { var n = document.createTextNode(' '); element.appendChild(n); element.removeChild(n); } catch (e) { } return element; }; // Safari returns margins on body which is incorrect if the child is absolutely // positioned. For performance reasons, redefine Element#cumulativeOffset for // KHTML/WebKit only. Element.Methods.cumulativeOffset = function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; if (element.offsetParent == document.body) if (Element.getStyle(element, 'position') == 'absolute') break; element = element.offsetParent; } while (element); return Element._returnOffset(valueL, valueT); }; } if (Prototype.Browser.IE || Prototype.Browser.Opera) { // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements Element.Methods.update = function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) return element.update().insert(content); content = Object.toHTML(content); var tagName = element.tagName.toUpperCase(); if (tagName in Element._insertionTranslations.tags) { $A(element.childNodes).each(function(node) { element.removeChild(node) }); Element._getContentFromAnonymousElement(tagName, content.stripScripts()) .each(function(node) { element.appendChild(node) }); } else element.innerHTML = content.stripScripts(); content.evalScripts.bind(content).defer(); return element; }; } if ('outerHTML' in document.createElement('div')) { Element.Methods.replace = function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { element.parentNode.replaceChild(content, element); return element; } content = Object.toHTML(content); var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); if (Element._insertionTranslations.tags[tagName]) { var nextSibling = element.next(); var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); parent.removeChild(element); if (nextSibling) fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); else fragments.each(function(node) { parent.appendChild(node) }); } else element.outerHTML = content.stripScripts(); content.evalScripts.bind(content).defer(); return element; }; } Element._returnOffset = function(l, t) { var result = [l, t]; result.left = l; result.top = t; return result; }; Element._getContentFromAnonymousElement = function(tagName, html) { var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; if (t) { div.innerHTML = t[0] + html + t[1]; t[2].times(function() { div = div.firstChild }); } else div.innerHTML = html; return $A(div.childNodes); }; Element._insertionTranslations = { before: function(element, node) { element.parentNode.insertBefore(node, element); }, top: function(element, node) { element.insertBefore(node, element.firstChild); }, bottom: function(element, node) { element.appendChild(node); }, after: function(element, node) { element.parentNode.insertBefore(node, element.nextSibling); }, tags: { TABLE: ['
    ', '
    ', 1], TBODY: ['', '
    ', 2], TR: ['', '
    ', 3], TD: ['
    ', '
    ', 4], SELECT: ['', 1] } }; (function() { Object.extend(this.tags, { THEAD: this.tags.TBODY, TFOOT: this.tags.TBODY, TH: this.tags.TD }); }).call(Element._insertionTranslations); Element.Methods.Simulated = { hasAttribute: function(element, attribute) { attribute = Element._attributeTranslations.has[attribute] || attribute; var node = $(element).getAttributeNode(attribute); return node && node.specified; } }; Element.Methods.ByTag = { }; Object.extend(Element, Element.Methods); if (!Prototype.BrowserFeatures.ElementExtensions && document.createElement('div').__proto__) { window.HTMLElement = { }; window.HTMLElement.prototype = document.createElement('div').__proto__; Prototype.BrowserFeatures.ElementExtensions = true; } Element.extend = (function() { if (Prototype.BrowserFeatures.SpecificElementExtensions) return Prototype.K; var Methods = { }, ByTag = Element.Methods.ByTag; var extend = Object.extend(function(element) { if (!element || element._extendedByPrototype || element.nodeType != 1 || element == window) return element; var methods = Object.clone(Methods), tagName = element.tagName, property, value; // extend methods for specific tags if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); for (property in methods) { value = methods[property]; if (Object.isFunction(value) && !(property in element)) element[property] = value.methodize(); } element._extendedByPrototype = Prototype.emptyFunction; return element; }, { refresh: function() { // extend methods for all tags (Safari doesn't need this) if (!Prototype.BrowserFeatures.ElementExtensions) { Object.extend(Methods, Element.Methods); Object.extend(Methods, Element.Methods.Simulated); } } }); extend.refresh(); return extend; })(); Element.hasAttribute = function(element, attribute) { if (element.hasAttribute) return element.hasAttribute(attribute); return Element.Methods.Simulated.hasAttribute(element, attribute); }; Element.addMethods = function(methods) { var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; if (!methods) { Object.extend(Form, Form.Methods); Object.extend(Form.Element, Form.Element.Methods); Object.extend(Element.Methods.ByTag, { "FORM": Object.clone(Form.Methods), "INPUT": Object.clone(Form.Element.Methods), "SELECT": Object.clone(Form.Element.Methods), "TEXTAREA": Object.clone(Form.Element.Methods) }); } if (arguments.length == 2) { var tagName = methods; methods = arguments[1]; } if (!tagName) Object.extend(Element.Methods, methods || { }); else { if (Object.isArray(tagName)) tagName.each(extend); else extend(tagName); } function extend(tagName) { tagName = tagName.toUpperCase(); if (!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName] = { }; Object.extend(Element.Methods.ByTag[tagName], methods); } function copy(methods, destination, onlyIfAbsent) { onlyIfAbsent = onlyIfAbsent || false; for (var property in methods) { var value = methods[property]; if (!Object.isFunction(value)) continue; if (!onlyIfAbsent || !(property in destination)) destination[property] = value.methodize(); } } function findDOMClass(tagName) { var klass; var trans = { "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": "FrameSet", "IFRAME": "IFrame" }; if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName.capitalize() + 'Element'; if (window[klass]) return window[klass]; window[klass] = { }; window[klass].prototype = document.createElement(tagName).__proto__; return window[klass]; } if (F.ElementExtensions) { copy(Element.Methods, HTMLElement.prototype); copy(Element.Methods.Simulated, HTMLElement.prototype, true); } if (F.SpecificElementExtensions) { for (var tag in Element.Methods.ByTag) { var klass = findDOMClass(tag); if (Object.isUndefined(klass)) continue; copy(T[tag], klass.prototype); } } Object.extend(Element, Element.Methods); delete Element.ByTag; if (Element.extend.refresh) Element.extend.refresh(); Element.cache = { }; }; document.viewport = { getDimensions: function() { var dimensions = { }; var B = Prototype.Browser; $w('width height').each(function(d) { var D = d.capitalize(); dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; }); return dimensions; }, getWidth: function() { return this.getDimensions().width; }, getHeight: function() { return this.getDimensions().height; }, getScrollOffsets: function() { return Element._returnOffset( window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); } }; /* Portions of the Selector class are derived from Jack Slocum’s DomQuery, * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style * license. Please see http://www.yui-ext.com/ for more information. */ var Selector = Class.create({ initialize: function(expression) { this.expression = expression.strip(); this.compileMatcher(); }, shouldUseXPath: function() { if (!Prototype.BrowserFeatures.XPath) return false; var e = this.expression; // Safari 3 chokes on :*-of-type and :empty if (Prototype.Browser.WebKit && (e.include("-of-type") || e.include(":empty"))) return false; // XPath can't do namespaced attributes, nor can it read // the "checked" property from DOM nodes if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) return false; return true; }, compileMatcher: function() { if (this.shouldUseXPath()) return this.compileXPathMatcher(); var e = this.expression, ps = Selector.patterns, h = Selector.handlers, c = Selector.criteria, le, p, m; if (Selector._cache[e]) { this.matcher = Selector._cache[e]; return; } this.matcher = ["this.matcher = function(root) {", "var r = root, h = Selector.handlers, c = false, n;"]; while (e && le != e && (/\S/).test(e)) { le = e; for (var i in ps) { p = ps[i]; if (m = e.match(p)) { this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : new Template(c[i]).evaluate(m)); e = e.replace(m[0], ''); break; } } } this.matcher.push("return h.unique(n);\n}"); eval(this.matcher.join('\n')); Selector._cache[this.expression] = this.matcher; }, compileXPathMatcher: function() { var e = this.expression, ps = Selector.patterns, x = Selector.xpath, le, m; if (Selector._cache[e]) { this.xpath = Selector._cache[e]; return; } this.matcher = ['.//*']; while (e && le != e && (/\S/).test(e)) { le = e; for (var i in ps) { if (m = e.match(ps[i])) { this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m)); e = e.replace(m[0], ''); break; } } } this.xpath = this.matcher.join(''); Selector._cache[this.expression] = this.xpath; }, findElements: function(root) { root = root || document; if (this.xpath) return document._getElementsByXPath(this.xpath, root); return this.matcher(root); }, match: function(element) { this.tokens = []; var e = this.expression, ps = Selector.patterns, as = Selector.assertions; var le, p, m; while (e && le !== e && (/\S/).test(e)) { le = e; for (var i in ps) { p = ps[i]; if (m = e.match(p)) { // use the Selector.assertions methods unless the selector // is too complex. if (as[i]) { this.tokens.push([i, Object.clone(m)]); e = e.replace(m[0], ''); } else { // reluctantly do a document-wide search // and look for a match in the array return this.findElements(document).include(element); } } } } var match = true, name, matches; for (var i = 0, token; token = this.tokens[i]; i++) { name = token[0], matches = token[1]; if (!Selector.assertions[name](element, matches)) { match = false; break; } } return match; }, toString: function() { return this.expression; }, inspect: function() { return "#"; } }); Object.extend(Selector, { _cache: { }, xpath: { descendant: "//*", child: "/*", adjacent: "/following-sibling::*[1]", laterSibling: '/following-sibling::*', tagName: function(m) { if (m[1] == '*') return ''; return "[local-name()='" + m[1].toLowerCase() + "' or local-name()='" + m[1].toUpperCase() + "']"; }, className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", id: "[@id='#{1}']", attrPresence: function(m) { m[1] = m[1].toLowerCase(); return new Template("[@#{1}]").evaluate(m); }, attr: function(m) { m[1] = m[1].toLowerCase(); m[3] = m[5] || m[6]; return new Template(Selector.xpath.operators[m[2]]).evaluate(m); }, pseudo: function(m) { var h = Selector.xpath.pseudos[m[1]]; if (!h) return ''; if (Object.isFunction(h)) return h(m); return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); }, operators: { '=': "[@#{1}='#{3}']", '!=': "[@#{1}!='#{3}']", '^=': "[starts-with(@#{1}, '#{3}')]", '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", '*=': "[contains(@#{1}, '#{3}')]", '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" }, pseudos: { 'first-child': '[not(preceding-sibling::*)]', 'last-child': '[not(following-sibling::*)]', 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", 'checked': "[@checked]", 'disabled': "[@disabled]", 'enabled': "[not(@disabled)]", 'not': function(m) { var e = m[6], p = Selector.patterns, x = Selector.xpath, le, v; var exclusion = []; while (e && le != e && (/\S/).test(e)) { le = e; for (var i in p) { if (m = e.match(p[i])) { v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); exclusion.push("(" + v.substring(1, v.length - 1) + ")"); e = e.replace(m[0], ''); break; } } } return "[not(" + exclusion.join(" and ") + ")]"; }, 'nth-child': function(m) { return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); }, 'nth-last-child': function(m) { return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); }, 'nth-of-type': function(m) { return Selector.xpath.pseudos.nth("position() ", m); }, 'nth-last-of-type': function(m) { return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); }, 'first-of-type': function(m) { m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); }, 'last-of-type': function(m) { m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); }, 'only-of-type': function(m) { var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); }, nth: function(fragment, m) { var mm, formula = m[6], predicate; if (formula == 'even') formula = '2n+0'; if (formula == 'odd') formula = '2n+1'; if (mm = formula.match(/^(\d+)$/)) // digit only return '[' + fragment + "= " + mm[1] + ']'; if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b if (mm[1] == "-") mm[1] = -1; var a = mm[1] ? Number(mm[1]) : 1; var b = mm[2] ? Number(mm[2]) : 0; predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + "((#{fragment} - #{b}) div #{a} >= 0)]"; return new Template(predicate).evaluate({ fragment: fragment, a: a, b: b }); } } } }, criteria: { tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', className: 'n = h.className(n, r, "#{1}", c); c = false;', id: 'n = h.id(n, r, "#{1}", c); c = false;', attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', attr: function(m) { m[3] = (m[5] || m[6]); return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); }, pseudo: function(m) { if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); }, descendant: 'c = "descendant";', child: 'c = "child";', adjacent: 'c = "adjacent";', laterSibling: 'c = "laterSibling";' }, patterns: { // combinators must be listed first // (and descendant needs to be last combinator) laterSibling: /^\s*~\s*/, child: /^\s*>\s*/, adjacent: /^\s*\+\s*/, descendant: /^\s/, // selectors follow tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, id: /^#([\w\-\*]+)(\b|$)/, className: /^\.([\w\-\*]+)(\b|$)/, pseudo: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, attrPresence: /^\[([\w]+)\]/, attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ }, // for Selector.match and Element#match assertions: { tagName: function(element, matches) { return matches[1].toUpperCase() == element.tagName.toUpperCase(); }, className: function(element, matches) { return Element.hasClassName(element, matches[1]); }, id: function(element, matches) { return element.id === matches[1]; }, attrPresence: function(element, matches) { return Element.hasAttribute(element, matches[1]); }, attr: function(element, matches) { var nodeValue = Element.readAttribute(element, matches[1]); return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); } }, handlers: { // UTILITY FUNCTIONS // joins two collections concat: function(a, b) { for (var i = 0, node; node = b[i]; i++) a.push(node); return a; }, // marks an array of nodes for counting mark: function(nodes) { var _true = Prototype.emptyFunction; for (var i = 0, node; node = nodes[i]; i++) node._countedByPrototype = _true; return nodes; }, unmark: function(nodes) { for (var i = 0, node; node = nodes[i]; i++) node._countedByPrototype = undefined; return nodes; }, // mark each child node with its position (for nth calls) // "ofType" flag indicates whether we're indexing for nth-of-type // rather than nth-child index: function(parentNode, reverse, ofType) { parentNode._countedByPrototype = Prototype.emptyFunction; if (reverse) { for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { var node = nodes[i]; if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } } else { for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } }, // filters out duplicates and extends all nodes unique: function(nodes) { if (nodes.length == 0) return nodes; var results = [], n; for (var i = 0, l = nodes.length; i < l; i++) if (!(n = nodes[i])._countedByPrototype) { n._countedByPrototype = Prototype.emptyFunction; results.push(Element.extend(n)); } return Selector.handlers.unmark(results); }, // COMBINATOR FUNCTIONS descendant: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) h.concat(results, node.getElementsByTagName('*')); return results; }, child: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) { for (var j = 0, child; child = node.childNodes[j]; j++) if (child.nodeType == 1 && child.tagName != '!') results.push(child); } return results; }, adjacent: function(nodes) { for (var i = 0, results = [], node; node = nodes[i]; i++) { var next = this.nextElementSibling(node); if (next) results.push(next); } return results; }, laterSibling: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) h.concat(results, Element.nextSiblings(node)); return results; }, nextElementSibling: function(node) { while (node = node.nextSibling) if (node.nodeType == 1) return node; return null; }, previousElementSibling: function(node) { while (node = node.previousSibling) if (node.nodeType == 1) return node; return null; }, // TOKEN FUNCTIONS tagName: function(nodes, root, tagName, combinator) { var uTagName = tagName.toUpperCase(); var results = [], h = Selector.handlers; if (nodes) { if (combinator) { // fastlane for ordinary descendant combinators if (combinator == "descendant") { for (var i = 0, node; node = nodes[i]; i++) h.concat(results, node.getElementsByTagName(tagName)); return results; } else nodes = this[combinator](nodes); if (tagName == "*") return nodes; } for (var i = 0, node; node = nodes[i]; i++) if (node.tagName.toUpperCase() === uTagName) results.push(node); return results; } else return root.getElementsByTagName(tagName); }, id: function(nodes, root, id, combinator) { var targetNode = $(id), h = Selector.handlers; if (!targetNode) return []; if (!nodes && root == document) return [targetNode]; if (nodes) { if (combinator) { if (combinator == 'child') { for (var i = 0, node; node = nodes[i]; i++) if (targetNode.parentNode == node) return [targetNode]; } else if (combinator == 'descendant') { for (var i = 0, node; node = nodes[i]; i++) if (Element.descendantOf(targetNode, node)) return [targetNode]; } else if (combinator == 'adjacent') { for (var i = 0, node; node = nodes[i]; i++) if (Selector.handlers.previousElementSibling(targetNode) == node) return [targetNode]; } else nodes = h[combinator](nodes); } for (var i = 0, node; node = nodes[i]; i++) if (node == targetNode) return [targetNode]; return []; } return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; }, className: function(nodes, root, className, combinator) { if (nodes && combinator) nodes = this[combinator](nodes); return Selector.handlers.byClassName(nodes, root, className); }, byClassName: function(nodes, root, className) { if (!nodes) nodes = Selector.handlers.descendant([root]); var needle = ' ' + className + ' '; for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { nodeClassName = node.className; if (nodeClassName.length == 0) continue; if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) results.push(node); } return results; }, attrPresence: function(nodes, root, attr, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); if (nodes && combinator) nodes = this[combinator](nodes); var results = []; for (var i = 0, node; node = nodes[i]; i++) if (Element.hasAttribute(node, attr)) results.push(node); return results; }, attr: function(nodes, root, attr, value, operator, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); if (nodes && combinator) nodes = this[combinator](nodes); var handler = Selector.operators[operator], results = []; for (var i = 0, node; node = nodes[i]; i++) { var nodeValue = Element.readAttribute(node, attr); if (nodeValue === null) continue; if (handler(nodeValue, value)) results.push(node); } return results; }, pseudo: function(nodes, name, value, root, combinator) { if (nodes && combinator) nodes = this[combinator](nodes); if (!nodes) nodes = root.getElementsByTagName("*"); return Selector.pseudos[name](nodes, value, root); } }, pseudos: { 'first-child': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { if (Selector.handlers.previousElementSibling(node)) continue; results.push(node); } return results; }, 'last-child': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { if (Selector.handlers.nextElementSibling(node)) continue; results.push(node); } return results; }, 'only-child': function(nodes, value, root) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) results.push(node); return results; }, 'nth-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root); }, 'nth-last-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true); }, 'nth-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, false, true); }, 'nth-last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true, true); }, 'first-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, false, true); }, 'last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, true, true); }, 'only-of-type': function(nodes, formula, root) { var p = Selector.pseudos; return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); }, // handles the an+b logic getIndices: function(a, b, total) { if (a == 0) return b > 0 ? [b] : []; return $R(1, total).inject([], function(memo, i) { if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); return memo; }); }, // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type nth: function(nodes, formula, root, reverse, ofType) { if (nodes.length == 0) return []; if (formula == 'even') formula = '2n+0'; if (formula == 'odd') formula = '2n+1'; var h = Selector.handlers, results = [], indexed = [], m; h.mark(nodes); for (var i = 0, node; node = nodes[i]; i++) { if (!node.parentNode._countedByPrototype) { h.index(node.parentNode, reverse, ofType); indexed.push(node.parentNode); } } if (formula.match(/^\d+$/)) { // just a number formula = Number(formula); for (var i = 0, node; node = nodes[i]; i++) if (node.nodeIndex == formula) results.push(node); } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b if (m[1] == "-") m[1] = -1; var a = m[1] ? Number(m[1]) : 1; var b = m[2] ? Number(m[2]) : 0; var indices = Selector.pseudos.getIndices(a, b, nodes.length); for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { for (var j = 0; j < l; j++) if (node.nodeIndex == indices[j]) results.push(node); } } h.unmark(nodes); h.unmark(indexed); return results; }, 'empty': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { // IE treats comments as element nodes if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; results.push(node); } return results; }, 'not': function(nodes, selector, root) { var h = Selector.handlers, selectorType, m; var exclusions = new Selector(selector).findElements(root); h.mark(exclusions); for (var i = 0, results = [], node; node = nodes[i]; i++) if (!node._countedByPrototype) results.push(node); h.unmark(exclusions); return results; }, 'enabled': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (!node.disabled) results.push(node); return results; }, 'disabled': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (node.disabled) results.push(node); return results; }, 'checked': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (node.checked) results.push(node); return results; } }, operators: { '=': function(nv, v) { return nv == v; }, '!=': function(nv, v) { return nv != v; }, '^=': function(nv, v) { return nv.startsWith(v); }, '$=': function(nv, v) { return nv.endsWith(v); }, '*=': function(nv, v) { return nv.include(v); }, '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } }, split: function(expression) { var expressions = []; expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { expressions.push(m[1].strip()); }); return expressions; }, matchElements: function(elements, expression) { var matches = $$(expression), h = Selector.handlers; h.mark(matches); for (var i = 0, results = [], element; element = elements[i]; i++) if (element._countedByPrototype) results.push(element); h.unmark(matches); return results; }, findElement: function(elements, expression, index) { if (Object.isNumber(expression)) { index = expression; expression = false; } return Selector.matchElements(elements, expression || '*')[index || 0]; }, findChildElements: function(element, expressions) { expressions = Selector.split(expressions.join(',')); var results = [], h = Selector.handlers; for (var i = 0, l = expressions.length, selector; i < l; i++) { selector = new Selector(expressions[i].strip()); h.concat(results, selector.findElements(element)); } return (l > 1) ? h.unique(results) : results; } }); if (Prototype.Browser.IE) { Object.extend(Selector.handlers, { // IE returns comment nodes on getElementsByTagName("*"). // Filter them out. concat: function(a, b) { for (var i = 0, node; node = b[i]; i++) if (node.tagName !== "!") a.push(node); return a; }, // IE improperly serializes _countedByPrototype in (inner|outer)HTML. unmark: function(nodes) { for (var i = 0, node; node = nodes[i]; i++) node.removeAttribute('_countedByPrototype'); return nodes; } }); } function $$() { return Selector.findChildElements(document, $A(arguments)); } var Form = { reset: function(form) { $(form).reset(); return form; }, serializeElements: function(elements, options) { if (typeof options != 'object') options = { hash: !!options }; else if (Object.isUndefined(options.hash)) options.hash = true; var key, value, submitted = false, submit = options.submit; var data = elements.inject({ }, function(result, element) { if (!element.disabled && element.name) { key = element.name; value = $(element).getValue(); if (value != null && (element.type != 'submit' || (!submitted && submit !== false && (!submit || key == submit) && (submitted = true)))) { if (key in result) { // a key is already present; construct an array of values if (!Object.isArray(result[key])) result[key] = [result[key]]; result[key].push(value); } else result[key] = value; } } return result; }); return options.hash ? data : Object.toQueryString(data); } }; Form.Methods = { serialize: function(form, options) { return Form.serializeElements(Form.getElements(form), options); }, getElements: function(form) { return $A($(form).getElementsByTagName('*')).inject([], function(elements, child) { if (Form.Element.Serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child)); return elements; } ); }, getInputs: function(form, typeName, name) { form = $(form); var inputs = form.getElementsByTagName('input'); if (!typeName && !name) return $A(inputs).map(Element.extend); for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { var input = inputs[i]; if ((typeName && input.type != typeName) || (name && input.name != name)) continue; matchingInputs.push(Element.extend(input)); } return matchingInputs; }, disable: function(form) { form = $(form); Form.getElements(form).invoke('disable'); return form; }, enable: function(form) { form = $(form); Form.getElements(form).invoke('enable'); return form; }, findFirstElement: function(form) { var elements = $(form).getElements().findAll(function(element) { return 'hidden' != element.type && !element.disabled; }); var firstByIndex = elements.findAll(function(element) { return element.hasAttribute('tabIndex') && element.tabIndex >= 0; }).sortBy(function(element) { return element.tabIndex }).first(); return firstByIndex ? firstByIndex : elements.find(function(element) { return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); }); }, focusFirstElement: function(form) { form = $(form); form.findFirstElement().activate(); return form; }, request: function(form, options) { form = $(form), options = Object.clone(options || { }); var params = options.parameters, action = form.readAttribute('action') || ''; if (action.blank()) action = window.location.href; options.parameters = form.serialize(true); if (params) { if (Object.isString(params)) params = params.toQueryParams(); Object.extend(options.parameters, params); } if (form.hasAttribute('method') && !options.method) options.method = form.method; return new Ajax.Request(action, options); } }; /*--------------------------------------------------------------------------*/ Form.Element = { focus: function(element) { $(element).focus(); return element; }, select: function(element) { $(element).select(); return element; } }; Form.Element.Methods = { serialize: function(element) { element = $(element); if (!element.disabled && element.name) { var value = element.getValue(); if (value != undefined) { var pair = { }; pair[element.name] = value; return Object.toQueryString(pair); } } return ''; }, getValue: function(element) { element = $(element); var method = element.tagName.toLowerCase(); return Form.Element.Serializers[method](element); }, setValue: function(element, value) { element = $(element); var method = element.tagName.toLowerCase(); Form.Element.Serializers[method](element, value); return element; }, clear: function(element) { $(element).value = ''; return element; }, present: function(element) { return $(element).value != ''; }, activate: function(element) { element = $(element); try { element.focus(); if (element.select && (element.tagName.toLowerCase() != 'input' || !['button', 'reset', 'submit'].include(element.type))) element.select(); } catch (e) { } return element; }, disable: function(element) { element = $(element); element.blur(); element.disabled = true; return element; }, enable: function(element) { element = $(element); element.disabled = false; return element; } }; /*--------------------------------------------------------------------------*/ var Field = Form.Element; var $F = Form.Element.Methods.getValue; /*--------------------------------------------------------------------------*/ Form.Element.Serializers = { input: function(element, value) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': return Form.Element.Serializers.inputSelector(element, value); default: return Form.Element.Serializers.textarea(element, value); } }, inputSelector: function(element, value) { if (Object.isUndefined(value)) return element.checked ? element.value : null; else element.checked = !!value; }, textarea: function(element, value) { if (Object.isUndefined(value)) return element.value; else element.value = value; }, select: function(element, index) { if (Object.isUndefined(index)) return this[element.type == 'select-one' ? 'selectOne' : 'selectMany'](element); else { var opt, value, single = !Object.isArray(index); for (var i = 0, length = element.length; i < length; i++) { opt = element.options[i]; value = this.optionValue(opt); if (single) { if (value == index) { opt.selected = true; return; } } else opt.selected = index.include(value); } } }, selectOne: function(element) { var index = element.selectedIndex; return index >= 0 ? this.optionValue(element.options[index]) : null; }, selectMany: function(element) { var values, length = element.length; if (!length) return null; for (var i = 0, values = []; i < length; i++) { var opt = element.options[i]; if (opt.selected) values.push(this.optionValue(opt)); } return values; }, optionValue: function(opt) { // extend element because hasAttribute may not be native return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; } }; /*--------------------------------------------------------------------------*/ Abstract.TimedObserver = Class.create(PeriodicalExecuter, { initialize: function($super, element, frequency, callback) { $super(callback, frequency); this.element = $(element); this.lastValue = this.getValue(); }, execute: function() { var value = this.getValue(); if (Object.isString(this.lastValue) && Object.isString(value) ? this.lastValue != value : String(this.lastValue) != String(value)) { this.callback(this.element, value); this.lastValue = value; } } }); Form.Element.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.serialize(this.element); } }); /*--------------------------------------------------------------------------*/ Abstract.EventObserver = Class.create({ initialize: function(element, callback) { this.element = $(element); this.callback = callback; this.lastValue = this.getValue(); if (this.element.tagName.toLowerCase() == 'form') this.registerFormCallbacks(); else this.registerCallback(this.element); }, onElementEvent: function() { var value = this.getValue(); if (this.lastValue != value) { this.callback(this.element, value); this.lastValue = value; } }, registerFormCallbacks: function() { Form.getElements(this.element).each(this.registerCallback, this); }, registerCallback: function(element) { if (element.type) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': Event.observe(element, 'click', this.onElementEvent.bind(this)); break; default: Event.observe(element, 'change', this.onElementEvent.bind(this)); break; } } } }); Form.Element.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.serialize(this.element); } }); if (!window.Event) var Event = { }; Object.extend(Event, { KEY_BACKSPACE: 8, KEY_TAB: 9, KEY_RETURN: 13, KEY_ESC: 27, KEY_LEFT: 37, KEY_UP: 38, KEY_RIGHT: 39, KEY_DOWN: 40, KEY_DELETE: 46, KEY_HOME: 36, KEY_END: 35, KEY_PAGEUP: 33, KEY_PAGEDOWN: 34, KEY_INSERT: 45, cache: { }, relatedTarget: function(event) { var element; switch(event.type) { case 'mouseover': element = event.fromElement; break; case 'mouseout': element = event.toElement; break; default: return null; } return Element.extend(element); } }); Event.Methods = (function() { var isButton; if (Prototype.Browser.IE) { var buttonMap = { 0: 1, 1: 4, 2: 2 }; isButton = function(event, code) { return event.button == buttonMap[code]; }; } else if (Prototype.Browser.WebKit) { isButton = function(event, code) { switch (code) { case 0: return event.which == 1 && !event.metaKey; case 1: return event.which == 1 && event.metaKey; default: return false; } }; } else { isButton = function(event, code) { return event.which ? (event.which === code + 1) : (event.button === code); }; } return { isLeftClick: function(event) { return isButton(event, 0) }, isMiddleClick: function(event) { return isButton(event, 1) }, isRightClick: function(event) { return isButton(event, 2) }, element: function(event) { var node = Event.extend(event).target; return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); }, findElement: function(event, expression) { var element = Event.element(event); if (!expression) return element; var elements = [element].concat(element.ancestors()); return Selector.findElement(elements, expression, 0); }, pointer: function(event) { return { x: event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)), y: event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) }; }, pointerX: function(event) { return Event.pointer(event).x }, pointerY: function(event) { return Event.pointer(event).y }, stop: function(event) { Event.extend(event); event.preventDefault(); event.stopPropagation(); event.stopped = true; } }; })(); Event.extend = (function() { var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { m[name] = Event.Methods[name].methodize(); return m; }); if (Prototype.Browser.IE) { Object.extend(methods, { stopPropagation: function() { this.cancelBubble = true }, preventDefault: function() { this.returnValue = false }, inspect: function() { return "[object Event]" } }); return function(event) { if (!event) return false; if (event._extendedByPrototype) return event; event._extendedByPrototype = Prototype.emptyFunction; var pointer = Event.pointer(event); Object.extend(event, { target: event.srcElement, relatedTarget: Event.relatedTarget(event), pageX: pointer.x, pageY: pointer.y }); return Object.extend(event, methods); }; } else { Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; Object.extend(Event.prototype, methods); return Prototype.K; } })(); Object.extend(Event, (function() { var cache = Event.cache; function getEventID(element) { if (element._prototypeEventID) return element._prototypeEventID[0]; arguments.callee.id = arguments.callee.id || 1; return element._prototypeEventID = [++arguments.callee.id]; } function getDOMEventName(eventName) { if (eventName && eventName.include(':')) return "dataavailable"; return eventName; } function getCacheForID(id) { return cache[id] = cache[id] || { }; } function getWrappersForEventName(id, eventName) { var c = getCacheForID(id); return c[eventName] = c[eventName] || []; } function createWrapper(element, eventName, handler) { var id = getEventID(element); var c = getWrappersForEventName(id, eventName); if (c.pluck("handler").include(handler)) return false; var wrapper = function(event) { if (!Event || !Event.extend || (event.eventName && event.eventName != eventName)) return false; Event.extend(event); handler.call(element, event); }; wrapper.handler = handler; c.push(wrapper); return wrapper; } function findWrapper(id, eventName, handler) { var c = getWrappersForEventName(id, eventName); return c.find(function(wrapper) { return wrapper.handler == handler }); } function destroyWrapper(id, eventName, handler) { var c = getCacheForID(id); if (!c[eventName]) return false; c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); } function destroyCache() { for (var id in cache) for (var eventName in cache[id]) cache[id][eventName] = null; } if (window.attachEvent) { window.attachEvent("onunload", destroyCache); } return { observe: function(element, eventName, handler) { element = $(element); var name = getDOMEventName(eventName); var wrapper = createWrapper(element, eventName, handler); if (!wrapper) return element; if (element.addEventListener) { element.addEventListener(name, wrapper, false); } else { element.attachEvent("on" + name, wrapper); } return element; }, stopObserving: function(element, eventName, handler) { element = $(element); var id = getEventID(element), name = getDOMEventName(eventName); if (!handler && eventName) { getWrappersForEventName(id, eventName).each(function(wrapper) { element.stopObserving(eventName, wrapper.handler); }); return element; } else if (!eventName) { Object.keys(getCacheForID(id)).each(function(eventName) { element.stopObserving(eventName); }); return element; } var wrapper = findWrapper(id, eventName, handler); if (!wrapper) return element; if (element.removeEventListener) { element.removeEventListener(name, wrapper, false); } else { element.detachEvent("on" + name, wrapper); } destroyWrapper(id, eventName, handler); return element; }, fire: function(element, eventName, memo) { element = $(element); if (element == document && document.createEvent && !element.dispatchEvent) element = document.documentElement; var event; if (document.createEvent) { event = document.createEvent("HTMLEvents"); event.initEvent("dataavailable", true, true); } else { event = document.createEventObject(); event.eventType = "ondataavailable"; } event.eventName = eventName; event.memo = memo || { }; if (document.createEvent) { element.dispatchEvent(event); } else { element.fireEvent(event.eventType, event); } return Event.extend(event); } }; })()); Object.extend(Event, Event.Methods); Element.addMethods({ fire: Event.fire, observe: Event.observe, stopObserving: Event.stopObserving }); Object.extend(document, { fire: Element.Methods.fire.methodize(), observe: Element.Methods.observe.methodize(), stopObserving: Element.Methods.stopObserving.methodize(), loaded: false }); (function() { /* Support for the DOMContentLoaded event is based on work by Dan Webb, Matthias Miller, Dean Edwards and John Resig. */ var timer; function fireContentLoadedEvent() { if (document.loaded) return; if (timer) window.clearInterval(timer); document.fire("dom:loaded"); document.loaded = true; } if (document.addEventListener) { if (Prototype.Browser.WebKit) { timer = window.setInterval(function() { if (/loaded|complete/.test(document.readyState)) fireContentLoadedEvent(); }, 0); Event.observe(window, "load", fireContentLoadedEvent); } else { document.addEventListener("DOMContentLoaded", fireContentLoadedEvent, false); } } else { document.write("