right-rails 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +8 -2
- data/Rakefile +28 -28
- data/lib/right_rails/java_script_generator.rb +59 -51
- data/public/images/{colorpicker.png → rightjs-ui/colorpicker.png} +0 -0
- data/public/images/{resizable.png → rightjs-ui/resizable.png} +0 -0
- data/public/javascripts/right-olds-src.js +47 -46
- data/public/javascripts/right-safe-src.js +103 -102
- data/public/javascripts/right-safe.js +1 -1
- data/public/javascripts/right-src.js +611 -541
- data/public/javascripts/right.js +86 -85
- data/public/javascripts/right/autocompleter-src.js +81 -77
- data/public/javascripts/right/autocompleter.js +1 -1
- data/public/javascripts/right/calendar-src.js +209 -197
- data/public/javascripts/right/calendar.js +6 -6
- data/public/javascripts/right/colorpicker-src.js +127 -117
- data/public/javascripts/right/colorpicker.js +6 -6
- data/public/javascripts/right/dnd-src.js +63 -63
- data/public/javascripts/right/dnd.js +2 -2
- data/public/javascripts/right/in-edit-src.js +53 -48
- data/public/javascripts/right/in-edit.js +2 -2
- data/public/javascripts/right/lightbox-src.js +107 -99
- data/public/javascripts/right/lightbox.js +2 -2
- data/public/javascripts/right/rater-src.js +48 -46
- data/public/javascripts/right/rater.js +3 -3
- data/public/javascripts/right/resizable-src.js +53 -61
- data/public/javascripts/right/resizable.js +4 -4
- data/public/javascripts/right/selectable-src.js +97 -95
- data/public/javascripts/right/selectable.js +2 -2
- data/public/javascripts/right/slider-src.js +47 -45
- data/public/javascripts/right/slider.js +8 -8
- data/public/javascripts/right/sortable-src.js +54 -52
- data/public/javascripts/right/tabs-src.js +181 -171
- data/public/javascripts/right/tooltip-src.js +39 -37
- data/public/javascripts/right/uploader-src.js +21 -19
- data/spec/lib/right_rails/java_script_generator_spec.rb +61 -56
- metadata +9 -7
@@ -5,4 +5,4 @@
|
|
5
5
|
* Copyright (C) 2008-2010 Nikolay Nemshilov
|
6
6
|
*/
|
7
7
|
var RightJS=function(g,e){e=e.replace(",document,",",parent.document,")+"RightJS.$N=function(v){return new Number(v)};RightJS.$S=function(v){return new String(v)}";var c=g.document;if("attachEvent"in g)c.write('<iframe name="__rightjs_condom" style="display:none"></iframe>');else{var b=c.createElement("iframe");b.name="__rightjs_condom";b.style.display="none";c.documentElement.appendChild(b)}b=g.frames.__rightjs_condom;if("execScript"in b)b.execScript(e);else{var f=b.document;f.open();f.write("<html></html>");
|
8
|
-
f.close();c=c.createElement("script");c.text=e;f.body.appendChild(c)}var a=b.RightJS;a.context=b;a.safe=true;return a.$ext(function(d){switch(typeof d){case "number":return a.$N(d);case "string":return a.$S(d);case "function":return a.$ext(d,a.Function.Methods);case "object":if(a.isArray(d))return a.$A(d)}return d},a)}(window,'var RightJS=function(Q,q,u,E,O,W,na,w){function R(a){return X(a)?a:[a]}function Ca(a,b){var c=a[0],d=Da.call(a,1),e=b,f;if(L(c)){f=c;c=b.length&&aa(b[0][f])?function(i){return i[f].apply(i,d)}:function(i){return i[f]}}else e=d[0];return[c,e]}function S(a,b,c){var d;try{d=a.apply(b,Ca(c,b))}catch(e){if(!(e instanceof j.Break))throw e;}return d}function Ea(a){return!!a}function Fa(a,b){return a>b?1:a<b?-1:0}function Ga(a,b){["extend","include"].each(function(c){var d=b[c];if(y(d)||X(d)){a[c].apply(a, R(d));delete b[c]}})}function oa(a,b){var c=b.toUpperCase(),d=b.capitalize(),e=a.constructor;return(e=[a,e].concat("ancestors"in e?e.ancestors:[]).first(function(f){return f&&(c in f||d in f)}))?e[c]||e[d]:null}function pa(a,b,c){a=a._;for(var d=[];a=a[b];)if(a.tagName&&(!c||n(a).match(c)))d.push(n(a));return d}function eb(a){if(typeof a==="string"){var b=this.tagName,c=fb,d=Ha[b]||["","",1],e=d[2];for(c.innerHTML=d[0]+"<"+b+">"+a+"</"+b+">"+d[1];e-- >0;)c=c.firstChild;a=c.childNodes}b=0;for(c=a.length;b< c;b++){d=a[a.length===c?b:0];Ia.appendChild(d instanceof r?d._:d)}return Ia}function Ja(a,b){var c,d=b.camelize();switch(d){case "opacity":c=!F.IE?a[d].replace(",","."):(/opacity=(\\d+)/i.exec(a.filter||"")||["","100"])[1].toInt()/100+"";break;case "float":d=F.IE?"styleFloat":"cssFloat";default:c=a[d];if(F.Opera&&/color/i.test(d)&&c)c=c.replace(/"/g,"")}return c||null}function ia(a,b,c){Y[a]=eval("["+Y[a].toString().replace(b,c)+"]")[0]}function Ka(a){a=T(a);qa=qa.concat(a);ba(r[s],a);ba(Z[s],a)}function La(a, b){var c=a||"*",d=b._;d="tagName"in d?d.tagName:null;return d===null?c:c.replace(/(^|,)/g,"$1"+d+" ")}function ja(a){var b=new Ma(a),c=b.target;c=c.parent&&c.parent();b.type=a.type==="focusin"||a.type==="focus"?"focus":"blur";c&&c.fire(b)}function Na(a,b){var c=q.createElement(b);c.setAttribute(a,";");return aa(c[a])}function gb(a,b,c){return function(d){var e=d.target,f=o(b),i=f.shift();if(c.find(a).includes(e))aa(i)?i.apply(e,[d].concat(f)):e[i].apply(e,f)}}function Oa(a){a=o(a);var b=a[1]||{}, c={},d;if(L(b)){c[b]=a.slice(2);if(X(c[b][0]))c[b]=c[b][0].map(R)}else c=b;for(d in c){c[d]=R(c[d]);c[d]=X(c[d][0])?c[d]:[c[d]]}return c}function Pa(a,b){var c=a[0],d,e,f=Oa(a),i=!u.keys(f).length;return(b.$listeners||[]).filter(function(z){return z.dr&&z.n===c&&(i||function(){for(var k in f)if(z.dr===k){d=0;for(e=f[k];d<e.length;d++)if(!e[d].length||e[d][0]===z.dc)return true}return false}())})}function ra(a,b){a.stop();this.send(u.merge({spinner:this.first(".spinner")},b))}function ea(a){return a=== "transparent"||a==="rgba(0, 0, 0, 0)"}function Qa(a){var b={},c=/[\\d\\.\\-]+/g,d,e,f;for(e in a){d=a[e].match(c);d=d.map("toFloat");d.t=a[e].split(c);d.r=d.t[0]==="rgb(";d.t.length==1&&d.t.unshift("");for(f=0;f<d.length;f++)d.t.splice(f*2+1,0,d[f]);b[e]=d}return b}var j=function(a){return a};j.version="2.0.0-rc2";j.modules=["core","dom","form","events","xhr","fx","cookie","olds"];var s="prototype",J=E[s],sa=u[s].toString,Da=J.slice,ca=function(){return function(){}},Ra=q.documentElement,ta=1,ka=[], N="_rid"+(new Date).getTime(),I=j.$ext=function(a,b,c){b=b||{};var d;for(d in b)if(!c||!(d in a))a[d]=b[d];return a},Sa=j.$eval=function(a){if(a)"execScript"in Q?n(q).window()._.execScript(a):ua("script",{text:a}).insertTo(Ra)};j.$break=function(){throw new j.Break;};var B=j.$alias=function(a,b){for(var c in b)a[c]=a[b[c]];return a};j.defined=function(a){return typeof a!=="undefined"};var aa=j.isFunction=function(a){return typeof a==="function"},L=j.isString=function(a){return typeof a==="string"}, Ta=j.isNumber=function(a){return typeof a==="number"},y=j.isHash=function(a){return sa.call(a)==="[object Object]"},X=j.isArray=function(a){return sa.call(a)==="[object Array]"},Ua=j.isElement=function(a){return a&&a.tagName};j.isNode=function(a){return a&&a.nodeType};var n=j.$=function(a){if(typeof a==="string")a=q.getElementById(a);if(a)if(N in a&&a[N]in ka)a=ka[a[N]];else if(a.nodeType===1)a=new r(a);else if(Ua(a.target)||Ua(a.srcElement))a=new Ma(a);else if(a.nodeType===9)a=new Z(a);else if(a.window== a)a=new da(a);return a},hb=j.$$=function(a,b){return n(b||q).find(a)},ua=j.$E=function(a,b){return new r(a,b)},T=j.$w=function(a){return a.trim().split(/\\s+/)},o=j.$A=function(a){try{return Da.call(a)}catch(b){for(var c=[],d=0,e=a.length;d<e;d++)c[d]=a[d];return c}},va=j.$uid=function(a){return N in a?a[N]:a[N]=ta++};if(y(Ra))y=j.isHash=function(a){return sa.call(a)==="[object Object]"&&a!==null&&typeof a!=="undefined"&&typeof a.hasOwnProperty!=="undefined"};for(var C=0,K="Array Function Number String Date RegExp".split(" "), fa=function(){for(var a=0,b=arguments;a<b.length;a++)if(y(b[a])){I(this[s],b[a]);I(this.Methods,b[a])}};C<K.length;C++)I(j[K[C]]=Q[K[C]],{Methods:{},include:fa});j.Object=u;j.Math=w;I(u,{keys:function(a){var b=[],c;for(c in a)b.push(c);return b},values:function(a){var b=[],c;for(c in a)b.push(a[c]);return b},each:function(a,b,c){for(var d in a)b.call(c,d,a[d]);return a},empty:function(a){for(var b in a)return false;return true},without:function(){var a=o(arguments),b=a.shift(),c={},d;for(d in b)a.includes(d)|| (c[d]=b[d]);return c},only:function(){for(var a=o(arguments),b=a.shift(),c={},d=0,e=a.length;d<e;d++)if(a[d]in b)c[a[d]]=b[a[d]];return c},merge:function(){for(var a={},b=0,c=arguments.length;b<c;b++)y(arguments[b])&&I(a,arguments[b]);return a},toQueryString:function(a){var b=[],c,d,e=encodeURIComponent;for(c in a){d=R(a[c]);for(var f=0;f<d.length;f++)b.push(e(c)+"="+e(d[f]))}return b.join("&")}},true);var Va=w.random;w.random=function(a,b){if(arguments.length===0)return Va();else if(arguments.length=== 1){b=a;a=0}return~~(Va()*(b-a+1)+~~a)};var ib=J.sort;C=function(a,b,c){return eval("[function(c,s){for(var "+a+"i=0,l=this.length;i<l;i++){"+b.replace("_","c.call(s,this[i],i,this)")+"}"+c+"}]")[0]};var Wa=J.forEach||C("","_",""),jb=J.filter||C("r=[],j=0,","if(_)r[j++]=this[i]","return r"),kb=C("r=[],j=0,","if(!_)r[j++]=this[i]","return r"),lb=J.map||C("r=[],","r[i]=_","return r"),mb=J.some||C("","if(_)return true","return false"),nb=J.every||C("","if(!_)return false","return true"),ob=C("","if(_)return this[i]", "return [][0]"),pb=function(a,b){for(var c=this.length-1;c>-1;c--)if(a.call(b,this[c],c,this))return this[c];return null};E.include({indexOf:J.indexOf||function(a,b){for(var c=b<0?w.max(0,this.length+b):b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},lastIndexOf:J.lastIndexOf||function(a){for(var b=this.length-1;b>-1;b--)if(this[b]===a)return b;return-1},first:function(){return arguments.length?S(ob,this,arguments):this[0]},last:function(){return arguments.length?S(pb,this,arguments): this[this.length-1]},random:function(){return this.length?this[w.random(this.length-1)]:null},size:function(){return this.length},clean:function(){this.length=0;return this},empty:function(){return!this.length},clone:function(){return this.slice(0)},each:function(){S(Wa,this,arguments);return this},forEach:Wa,map:function(){return S(lb,this,arguments)},filter:function(){return S(jb,this,arguments)},reject:function(){return S(kb,this,arguments)},some:function(a){return S(mb,this,a?arguments:[Ea])}, every:function(a){return S(nb,this,a?arguments:[Ea])},walk:function(){this.map.apply(this,arguments).forEach(function(a,b){this[b]=a},this);return this},merge:function(){for(var a=this.clone(),b,c=0,d,e=arguments.length;c<e;c++){b=arguments[c];b=R(b);for(d=0;d<b.length;d++)a.indexOf(b[d])==-1&&a.push(b[d])}return a},flatten:function(){var a=[];this.forEach(function(b){if(X(b))a=a.concat(b.flatten());else a.push(b)});return a},compact:function(){return this.without(null,undefined)},uniq:function(){return[].merge(this)}, includes:function(){for(var a=0,b=arguments.length;a<b;a++)if(this.indexOf(arguments[a])==-1)return false;return true},without:function(){var a=o(arguments);return this.filter(function(b){return!a.includes(b)})},shuffle:function(){for(var a=this.clone(),b,c,d=a.length;d>0;b=w.random(d-1),c=a[--d],a[d]=a[b],a[b]=c);return a},sort:function(a){return ib.apply(this,a||!Ta(this[0])?arguments:[Fa])},sortBy:function(){var a=Ca(arguments,this);return this.sort(function(b,c){return Fa(a[0].call(a[1],b),a[0].call(a[1], c))})},min:function(){return w.min.apply(w,this)},max:function(){return w.max.apply(w,this)},sum:function(){for(var a=0,b=this.length,c=0;a<b;c+=this[a++]);return c}});B(J,{include:"includes"});O.include({empty:function(){return this==""},blank:function(){return/^\\s*$/.test(this)},trim:O[s].trim||function(){for(var a=this.replace(/^\\s\\s*/,""),b=a.length;/\\s/.test(a.charAt(--b)););return a.slice(0,b+1)},stripTags:function(){return this.replace(/<\\/?[^>]+>/ig,"")},stripScripts:function(a){var b="", c=this.replace(/<script[^>]*>([\\s\\S]*?)<\\/script>/img,function(d,e){b+=e+"\\n";return""});if(a===true)Sa(b);else aa(a)&&a(b,c);return c},extractScripts:function(){var a="";this.stripScripts(function(b){a=b});return a},evalScripts:function(){this.stripScripts(true);return this},camelize:function(){return this.replace(/(\\-|_)+(.)?/g,function(a,b,c){return c?c.toUpperCase():""})},underscored:function(){return this.replace(/([a-z\\d])([A-Z]+)/g,"$1_$2").replace(/\\-/g,"_").toLowerCase()},capitalize:function(){return this.charAt(0).toUpperCase()+ this.substring(1).toLowerCase()},includes:function(a){return this.indexOf(a)!=-1},startsWith:function(a,b){var c=this.substr(0,a.length);return b?c.toLowerCase()===a.toLowerCase():c===a},endsWith:function(a,b){var c=this.substring(this.length-a.length);return b?c.toLowerCase()===a.toLowerCase():c===a},toInt:function(a){return parseInt(this,a||10)},toFloat:function(a){return parseFloat(a?this:this.replace(",",".").replace(/(\\d)-(\\d)/g,"$1.$2"))}});B(O[s],{include:"includes"});W.include({bind:function(){var a= o(arguments),b=a.shift(),c=this;return function(){return c.apply(b,a.length||arguments.length?a.concat(o(arguments)):a)}},bindAsEventListener:function(){var a=o(arguments),b=a.shift(),c=this;return function(d){return c.apply(b,[d].concat(a).concat(o(arguments)))}},curry:function(){return this.bind.apply(this,[this].concat(o(arguments)))},rcurry:function(){var a=o(arguments),b=this;return function(){return b.apply(b,o(arguments).concat(a))}},delay:function(){var a=o(arguments),b=a.shift();a=new na(setTimeout(this.bind.apply(this, [this].concat(a)),b));a.cancel=function(){clearTimeout(this)};return a},periodical:function(){var a=o(arguments),b=a.shift();a=new na(setInterval(this.bind.apply(this,[this].concat(a)),b));a.stop=function(){clearInterval(this)};return a},chain:function(){var a=o(arguments),b=a.shift(),c=this;return function(){var d=c.apply(c,arguments);b.apply(b,a);return d}}});na.include({times:function(a,b){for(var c=0;c<this;c++)a.call(b,c);return this},upto:function(a,b,c){for(var d=this+0;d<=a;d++)b.call(c,d); return this},downto:function(a,b,c){for(var d=this+0;d>=a;d--)b.call(c,d);return this},abs:function(){return w.abs(this)},round:function(a){return a?parseFloat(this.toFixed(a)):w.round(this)},ceil:function(){return w.ceil(this)},floor:function(){return w.floor(this)},min:function(a){return this<a?a:this+0},max:function(a){return this>a?a:this+0}});RegExp.escape=function(a){return(""+a).replace(/([.*+?\\^=!:${}()|\\[\\]\\/\\\\])/g,"\\\\$1")};E=j.Class=function(){function a(){"prebind"in this&&X(this.prebind)&& this.prebind.each(function(e){this[e]=this[e].bind(this)},this);return this.initialize?this.initialize.apply(this,arguments):this}var b=o(arguments),c=b.pop()||{},d=b.pop();if(!b.length&&!y(c)){d=c;c={}}I(a,Xa).inherit(d);Ga(a,c);return a.include(c)};W=T("selfExtended self_extended selfIncluded self_included");var qb=W.concat(T(s+" parent extend include")),rb=W.concat(["constructor"]),Xa={inherit:function(a){if(a&&a[s]){var b=ca();b[s]=a[s];this[s]=new b;this.parent=a}for(this.ancestors=[];a;){this.ancestors.push(a); a=a.parent}return this[s].constructor=this},extend:function(){o(arguments).filter(y).each(function(a){var b=a.selfExtended||a.self_extended;I(this,u.without.apply(u,[a].concat(qb)));b&&b.call(a,this)},this);return this},include:function(){var a=(this.ancestors||[]).map(s);o(arguments).filter(y).each(function(b){var c=b.selfIncluded||b.self_included;u.each(u.without.apply(u,[b].concat(rb)),function(d,e){var f=a.first(function(i){return d in i&&aa(i[d])});this[s][d]=!f?e:function(){this.$super=f[d]; return e.apply(this,arguments)}},this);c&&c.call(b,this)},this);return this}};W=j.Options={setOptions:function(a){a=this.options=u.merge(oa(this,"options"),a);var b,c;if(aa(this.on))for(c in a)if(b=c.match(/on([A-Z][A-Za-z]+)/)){this.on(b[1].toLowerCase(),a[c]);delete a[c]}return this},cutOptions:function(a){a=o(a);this.setOptions(y(a.last())?a.pop():{});return a}};var ga=j.Observer=new E({include:W,initialize:function(a){this.setOptions(a);ba(this,oa(this,"events"));return this},on:function(){var a= o(arguments),b=a.shift(),c;if(L(b)){if(!("$listeners"in this))this.$listeners=[];var d=a.shift();switch(typeof d){case "string":c=d;d=this[d];case "function":var e={};e.e=b;e.f=d;e.a=a;e.r=c;this.$listeners.push(e);break;default:if(X(d))for(c=0;c<d.length;c++)this.on.apply(this,[b].concat(R(d[c])).concat(a))}}else for(c in b)this.on.apply(this,[c].concat(R(b[c])).concat(a));return this},observes:function(a,b){if(!L(a)){b=a;a=null}if(L(b))b=this[b];return(this.$listeners||[]).some(function(c){return a&& b?c.e===a&&c.f===b:a?c.e===a:c.f===b})},stopObserving:function(a,b){if(y(a))for(var c in a)this.stopObserving(c,a[c]);else{if(!L(a)){b=a;a=null}if(L(b))b=this[b];this.$listeners=(this.$listeners||[]).filter(function(d){return a&&b?d.e!==a||d.f!==b:a?d.e!==a:d.f!==b},this)}return this},listeners:function(a){return(this.$listeners||[]).filter(function(b){return!a||b.e===a}).map(function(b){return b.f}).uniq()},fire:function(){var a=o(arguments),b=a.shift();(this.$listeners||[]).each(function(c){c.e=== b&&c.f.apply(this,c.a.concat(a))},this);return this}});J=ga.create=function(a,b){I(a,u.without(ga[s],"initialize","setOptions"),true);return ba(a,b||oa(a,"events"))};var ba=ga.createShortcuts=function(a,b){(b||[]).each(function(c){var d="on"+c.replace(/(^|_|:)([a-z])/g,function(e,f,i){return i.toUpperCase()});d in a||(a[d]=function(){return this.on.apply(this,[c].concat(o(arguments)))})});return a};j.Break=new E(Error,{message:"Manual break"});K=navigator.userAgent;C="attachEvent"in Q;fa="opera"in Q;var F=j.Browser={IE:C&&!fa,Opera:fa,WebKit:K.include("AppleWebKit/"),Gecko:K.include("Gecko")&&!K.include("KHTML"),MobileSafari:/Apple.*Mobile.*Safari/.test(K),Konqueror:K.include("Konqueror"),OLD:C&&!fa&&!q.querySelector},U=j.Wrapper=function(a,b){var c=function(d,e){this.initialize(d,e);var f=this,i=f._;if(this.constructor===r&&i.tagName in P){f=new P[i.tagName](i);if("$listeners"in this)f.$listeners=this.$listeners}i=N in i?i[N]:i[N]=ta++;return ka[i]=f};if(!b){b=a;a=null}I(c,Xa).inherit(a|| U);Ga(c,b);return c.include({_:undefined},b)};U.Cache=ka;var Z=j.Document=new U({initialize:function(a){this._=a},window:function(){return n(this._.defaultView||this._.parentWindow)}}),da=j.Window=new U({initialize:function(a){this._=a;this.d=a.document},window:function(){return this},size:function(){var a=this._,b=this.d.documentElement;return a.innerWidth?{x:a.innerWidth,y:a.innerHeight}:{x:b.clientWidth,y:b.clientHeight}},scrolls:function(){var a=this._,b=this.d,c=b.body;b=b.documentElement;return a.pageXOffset|| a.pageYOffset?{x:a.pageXOffset,y:a.pageYOffset}:c.scrollLeft||c.scrollTop?{x:c.scrollLeft,y:c.scrollTop}:{x:b.scrollLeft,y:b.scrollTop}},scrollTo:function(a,b,c){var d=a,e=b,f=n(a);if(f&&f instanceof r)a=f.position();if(y(a)){e=a.y;d=a.x}y(c=c||b)&&j.Fx?(new v.Scroll(this,c)).start({x:d,y:e}):this._.scrollTo(d,e);return this}}),Ma=j.Event=new U({type:null,which:null,keyCode:null,target:null,currentTarget:null,relatedTarget:null,pageX:null,pageY:null,initialize:function(a,b){if(typeof a==="string"){a= u.merge({type:a},b);this.stopped=a.bubbles===false;y(b)&&I(this,b)}this._=a;this.type=a.type;this.which=a.which;this.keyCode=a.keyCode;this.target=n(a.target);this.currentTarget=n(a.currentTarget);this.relatedTarget=n(a.relatedTarget);this.pageX=a.pageX;this.pageY=a.pageY;if(!("target"in a)&&"srcElement"in a){this.which=a.button==2?3:a.button==4?2:1;this.target=n(a.srcElement)||b;this.relatedTarget=this.target._===a.fromElement?n(a.toElement):this.target;this.currentTarget=b;var c=this.target.window().scrolls(); this.pageX=a.clientX+c.x;this.pageY=a.clientY+c.y}else if(a.target&&"nodeType"in a.target&&a.target.nodeType===3)this.target=n(a.target.parentNode)},stopPropagation:function(){if("stopPropagation"in this._)this._.stopPropagation();else this._.cancelBubble=true;this.stopped=true;return this},preventDefault:function(){if("preventDefault"in this._)this._.preventDefault();else this._.returnValue=false;return this},stop:function(){return this.stopPropagation().preventDefault()},position:function(){return{x:this.pageX, y:this.pageY}},find:function(a){if(this.target instanceof r){var b=this.target;b=[b].concat(b.parents());var c=this.currentTarget.find(a);return b.first(function(d){return c.include(d)})}}}),qa=[],Ya={id:"id",html:"innerHTML","class":"className"},Za={style:"setStyle",on:"on"},P={},wa={};K=function(a,b){this._=a=(a in wa?wa[a]:wa[a]=q.createElement(a)).cloneNode(false);if(b!==undefined)for(var c in b)if(c in Ya)a[Ya[c]]=b[c];else c in Za?this[Za[c]](b[c]):this.set(c,b[c])};if(F.IE)K=eval("["+K.toString().replace(/(\\((\\w+),\\s*(\\w+)\\)\\s*\\{)/, \'$1if($2==="input"&&$3)$2="<input name="+$3.name+" type="+$3.type+($3.checked?" checked":"")+"/>";\')+"]")[0];var r=j.Element=new U({initialize:function(a,b){if(typeof a==="string")this.construct(a,b);else this._=a},construct:K});r.Wrappers=P;r.include({parent:function(a){return a?this.parents(a)[0]:n(this._.parentNode||null)},parents:function(a){return pa(this,"parentNode",a)},children:function(a){return this.find(a).filter(function(b){return b._.parentNode===this._},this)},siblings:function(a){return this.prevSiblings(a).reverse().concat(this.nextSiblings(a))}, nextSiblings:function(a){return pa(this,"nextSibling",a)},prevSiblings:function(a){return pa(this,"previousSibling",a)},next:function(a){return this.nextSiblings(a)[0]},prev:function(a){return this.prevSiblings(a)[0]},remove:function(){var a=this._,b=a.parentNode;b&&b.removeChild(a);return this},insert:function(a,b){var c=null,d=this._;b=(b||"bottom").toLowerCase();if(typeof a!=="object")c=a=""+a;else if(a&&a instanceof r)a=a._;sb[b](d,a.tagName?a:eb.call(b==="bottom"||b==="top"?d:d.parentNode,a)); c!==null&&c.evalScripts();return this},insertTo:function(a,b){n(a).insert(this,b);return this},append:function(){return this.insert(arguments)},update:function(a){if(typeof a!=="object"){a=""+a;try{this._.innerHTML=a}catch(b){return this.clean().insert(a)}a.evalScripts();return this}else return this.clean().insert(a)},html:function(a){return a===undefined?this._.innerHTML:this.update(a)},replace:function(a){return this.insert(a,"instead")},wrap:function(a){var b=this._,c=b.parentNode;if(c){a=n(a)._; c.replaceChild(a,b);a.appendChild(b)}return this},clean:function(){for(;this._.firstChild;)this._.removeChild(this._.firstChild);return this},empty:function(){return this.html().blank()},clone:function(){var a=this._.cloneNode(true);a[N]=ta++;return new r(a)}});var sb={bottom:function(a,b){a.appendChild(b)},top:function(a,b){a.firstChild!==null?a.insertBefore(b,a.firstChild):a.appendChild(b)},after:function(a,b){var c=a.parentNode,d=a.nextSibling;d!==null?c.insertBefore(b,d):c.appendChild(b)},before:function(a, b){a.parentNode.insertBefore(b,a)},instead:function(a,b){a.parentNode.replaceChild(b,a)}},Ha={TBODY:["<TABLE>","</TABLE>",2],TR:["<TABLE><TBODY>","</TBODY></TABLE>",3],TD:["<TABLE><TBODY><TR>","</TR></TBODY></TABLE>",4],COL:["<TABLE><COLGROUP>","</COLGROUP><TBODY></TBODY></TABLE>",2],LEGEND:["<FIELDSET>","</FIELDSET>",2],AREA:["<map>","</map>",2],OPTION:["<SELECT>","</SELECT>",2]};B(Ha,{OPTGROUP:"OPTION",THEAD:"TBODY",TFOOT:"TBODY",TH:"TD"});var Ia=q.createDocumentFragment(),fb=q.createElement("DIV"); r.include({setStyle:function(a,b){var c,d,e={},f=this._.style;if(b){e[a]=b;a=e}else if(L(a)){a.split(";").each(function(i){i=i.split(":").map("trim");if(i[0]&&i[1])e[i[0]]=i[1]});a=e}for(c in a){d=c.indexOf("-")<0?c:c.camelize();if(c==="opacity")if(F.IE)f.filter="alpha(opacity="+a[c]*100+")";else f.opacity=a[c];else if(c==="float")d=F.IE?"styleFloat":"cssFloat";f[d]=a[c]}return this},getStyle:function(a){return Ja(this._.style,a)||Ja(this.computedStyles(),a)},computedStyles:function(){var a=this._; return a.currentStyle||a.runtimeStyle||a.ownerDocument.defaultView.getComputedStyle(a,null)||{}},hasClass:function(a){return(" "+this._.className+" ").indexOf(" "+a+" ")!=-1},setClass:function(a){this._.className=a;return this},addClass:function(a){var b=" "+this._.className+" ";if(b.indexOf(" "+a+" ")==-1)this._.className+=(b===" "?"":" ")+a;return this},removeClass:function(a){this._.className=(" "+this._.className+" ").replace(" "+a+" "," ").trim();return this},toggleClass:function(a){return this[this.hasClass(a)? "removeClass":"addClass"](a)},radioClass:function(a){this.siblings().each("removeClass",a);return this.addClass(a)}});r.include({set:function(a,b){if(typeof a==="string"){var c={};c[a]=b;a=c}var d;c=this._;for(d in a){d in c||c.setAttribute(d,""+a[d]);c[d]=a[d]}return this},get:function(a){var b=this._;a=b[a]||b.getAttribute(a);return a===""?null:a},has:function(a){return this.get(a)!==null},erase:function(a){this._.removeAttribute(a);return this},hidden:function(){return this.getStyle("display")=== "none"},visible:function(){return!this.hidden()},hide:function(){if(this.visible()){this._d=this.getStyle("display");this._.style.display="none"}return this},show:function(){if(this.hidden()){var a=this._,b=a.tagName=="DIV"?"block":"inline";a.style.display=this._d=="none"?b:this._d||b}return this},toggle:function(a,b){return this[this.hidden()?"show":"hide"](a,b)},radio:function(a,b){this.siblings().each("hide",a,b);return this.show()}});r.include({document:function(){return n(this._.ownerDocument)}, window:function(){return this.document().window()},size:function(){return{x:this._.offsetWidth,y:this._.offsetHeight}},position:function(){var a=this._.getBoundingClientRect(),b=this.document()._.documentElement,c=this.window().scrolls();return{x:a.left+c.x-b.clientLeft,y:a.top+c.y-b.clientTop}},scrolls:function(){return{x:this._.scrollLeft,y:this._.scrollTop}},dimensions:function(){var a=this.size(),b=this.scrolls(),c=this.position();return{top:c.y,left:c.x,width:a.x,height:a.y,scrollLeft:b.x,scrollTop:b.y}}, overlaps:function(a){var b=this.position(),c=this.size();return a.x>b.x&&a.x<b.x+c.x&&a.y>b.y&&a.y<b.y+c.y},setWidth:function(a){var b=this._.style;b.width=a+"px";b.width=2*a-this._.offsetWidth+"px";return this},setHeight:function(a){var b=this._.style;b.height=a+"px";b.height=2*a-this._.offsetHeight+"px";return this},resize:function(a,b){if(y(a)){b=a.y;a=a.x}return this.setWidth(a).setHeight(b)},moveTo:function(a,b){if(y(a)){b=a.y;a=a.x}return this.setStyle({left:a+"px",top:b+"px"})},scrollTo:function(a, b){if(y(a)){b=a.y;a=a.x}this._.scrollLeft=a;this._.scrollTop=b;return this},scrollThere:function(a){this.window().scrollTo(this,a);return this}});var Y=J({});ia("on",/(\\$listeners\\.push\\((\\w+?)\\);)/,\'$1$2.e=$2.n=$2.e==="rightclick"?"contextmenu":$2.e;\'+(F.Gecko?\'if($2.n==="mousewheel")$2.n="DOMMouseScroll";\':"")+(F.Konqueror?\'if($2.n==="contextmenu")$2.n="rightclick";\':"")+\'$2.w=function(){var a=$A(arguments);$2.r&&$2.r!=="stopEvent"?a.shift():a[0]=new RightJS.Event(a[0],this);$2.f.apply($2.t,a.concat($2.a))};$2.t=this;\'+ (C?\'$2.w=$2.w.bind(this);this._.attachEvent("on"+$2.n,$2.w);\':"this._.addEventListener($2.n,$2.w,false);"));ia("stopObserving",/(function\\s*\\((\\w+)\\)\\s*\\{\\s*)(return\\s*)([^}]+)/m,"$1var r=$4;if(!r)"+(C?\'this._.detachEvent("on"+$2.n,$2.w);\':"this._.removeEventListener($2.n,$2.w,false);")+"$3 r");ia("fire",/(\\w+)(\\s*=\\s*(\\w+).shift\\(\\))/,"$1$2;$1=$1 instanceof RightJS.Event?$1:new RightJS.Event($1,Object.merge({target:this._},$3[0]));$1.currentTarget=this");ia("fire",/((\\w+)\\.e\\s*===\\s*(\\w+))([^}]+\\2\\.f\\.apply)[^}]+?\\.concat\\(\\w+\\)\\)/, \'$1.type$4(this,(($2.r&&$1.r!=="stopEvent")?[]:[$3]).concat($2.a))\');Y.stopEvent=function(a){a.stop()};r.include(Y);Z.include(Y);da.include(Y);ba(da[s],T("blur focus scroll resize load"));Ka("click rightclick contextmenu mousedown mouseup mouseover mouseout mousemove keypress keydown keyup");[r,Z].each("include",{first:function(a){return n(this._.querySelector(La(a,this)))},find:function(a){return o(this._.querySelectorAll(La(a,this))).map(n)}});r.include({match:function(a){var b=this._.tagName=== "HTML"?this._.ownerDocument:this.parents().last();a=n(b||ua("p").insert(this)).find(a).include(this);b||this.remove();return a}});[da,Z].each(function(a){a=a[s];var b=a.on;a.on=function(c){if(c=="ready"&&!this._wR){var d=this._,e=this.fire.bind(this,"ready");d=d.nodeType==9?d:d.document;"readyState"in d?function(){["loaded","complete"].includes(d.readyState)?e():arguments.callee.delay(50)}():d.addEventListener("DOMContentLoaded",e,false);this._wR=true}return b.apply(this,arguments)};ba(a,["ready"])}); B(r[s],{subNodes:"children",sizes:"size",select:"find"});B(Z[s],{select:"find"});B(da[s],{sizes:"size"});var xa=j.Form=P.FORM=new U(r,{initialize:function(a){a=a||{};var b="remote"in a,c=a;if(y(a)){c="form";a=u.without(a,"remote")}this.$super(c,a);b&&this.remotize()},elements:function(){return this.find("input,button,select,textarea")},inputs:function(){return this.elements().filter(function(a){return!["submit","button","reset","image",null].includes(a._.type)})},input:function(a){return n(this._[a])}, focus:function(){var a=this.inputs().first(function(b){return b._.type!=="hidden"});a&&a.focus();return this},blur:function(){this.elements().each("blur");return this},disable:function(){this.elements().each("disable");return this},enable:function(){this.elements().each("enable");return this},values:function(){var a={},b,c,d;this.inputs().each(function(e){d=e._;c=d.name;if(!d.disabled&&c&&(!["checkbox","radio"].includes(d.type)||d.checked)){b=e.getValue();if(c.endsWith("[]"))b=(a[c]||[]).concat([b]); a[c]=b}});return a},serialize:function(){return u.toQueryString(this.values())},submit:function(){this._.submit();return this},reset:function(){this._.reset();return this}});Ka("submit reset focus blur disable enable change");B(xa[s],{getElements:"elements"});var tb=r[s].insert,$a=j.Input=P.INPUT=P.BUTTON=P.SELECT=P.TEXTAREA=P.OPTGROUP=new U(r,{initialize:function(a,b){if(!a||y(a)){b=a||{};if(/textarea|select/.test(b.type||"")){a=b.type;delete b.type}else a="input"}this.$super(a,b)},form:function(){return n(this._.form)}, insert:function(a,b){tb.call(this,a,b);this._.tagName==="SELECT"&&L(a)&&o(this._.getElementsByTagName("option")).each(function(c){c.selected=!!c.getAttribute("selected")});return this},update:function(a){return this.clean().insert(a)},getValue:function(){return this._.type=="select-multiple"?o(this._.getElementsByTagName("option")).map(function(a){return a.selected?a.value:null}).compact():this._.value},setValue:function(a){if(this._.type=="select-multiple"){a=R(a).map(O);o(this._.getElementsByTagName("option")).each(function(b){b.selected= a.includes(b.value)})}else this._.value=a;return this},value:function(a){return this[a===undefined?"getValue":"setValue"](a)},focus:function(){this._.focus();this.focused=true;F.IE&&this.fire("focus",{bubbles:false});return this},blur:function(){this._.blur();this.focused=false;F.IE&&this.fire("blur",{bubbles:false});return this},select:function(){this._.select();return this.focus()},disable:function(){this._.disabled=true;return this.fire("disable")},enable:function(){this._.disabled=false;return this.fire("enable")}}); r[s].fire=eval("["+Y.fire.toString().replace(/(\\w+)(\\s*=\\s*\\w+\\.shift[\\s\\S]+)(return this)/m,"$1$2var p=!$1.stopped&&this.parent&&this.parent();p&&p.fire&&p.fire($1);$3")+"]")[0];if(F.IE){q.attachEvent("onfocusin",ja);q.attachEvent("onfocusout",ja)}else{q.addEventListener("focus",ja,true);q.addEventListener("blur",ja,true)}if(!Na("onsubmit","form")){B=function(a){var b=n(a),c=b.target._,d=c.type;c=c.form;var e;if(c&&(e=n(c).parent())&&(a.keyCode===13&&(d==="text"||d==="password")||a.type==="click"&& (d==="submit"||d==="image"))){b.type="submit";b.target=n(c);e.fire(b)}};q.attachEvent("onclick",B);q.attachEvent("onkeypress",B)}if(!Na("onchange","input")){var ab=function(a){var b=a._,c=b.type;return c==="radio"||c==="checkbox"?b.checked:a.getValue()},bb=function(a,b){var c=b.parent(),d=ab(b);if(c&&""+b._prev_value!==""+d){b._prev_value=d;a.type="change";c.fire(a)}};B=function(a){a=n(a);var b=a.target,c=b._.type,d=b._.tagName,e=c==="radio"||c==="checkbox";if(a.type==="click"&&(e||d==="SELECT")|| a.type==="keydown"&&(a.keyCode==13&&d!=="TEXTAREA"||c==="select-multiple"))bb(a,b)};q.attachEvent("onclick",B);q.attachEvent("onkeydown",B);q.attachEvent("onfocusout",function(a){a=n(a);var b=a.target;b instanceof $a&&bb(a,b)});q.attachEvent("onbeforeactivate",function(a){a=n(a).target;if(a instanceof $a)a._prev_value=ab(a)})}[r,Z].each("include",{delegate:function(a){var b=Oa(arguments),c,d,e;for(c in b){d=0;for(e=b[c];d<e.length;d++){this.on(a,gb(c,e[d],this));I(this.$listeners.last(),{dr:c,dc:e[d][0]})}}return this}, undelegate:function(){Pa(arguments,this).each(function(a){this.stopObserving(a.n,a.f)},this);return this},delegates:function(){return!!Pa(arguments,this).length}});u.each({on:"delegate",stopObserving:"undelegate",observes:"delegates"},function(a,b){O[s][a]=function(){var c=n(q),d=o(arguments);d.splice(1,0,""+this);d=c[b].apply(c,d);return d===c?this:d}});qa.each(function(a){O[s]["on"+a.capitalize()]=function(){return this.on.apply(this,[a].concat(o(arguments)))}});var t=j.Xhr=new E(ga,{extend:{EVENTS:T("success failure complete request cancel create"), Options:{headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript,text/html,application/xml,text/xml,*/*"},method:"post",encoding:"utf-8",async:true,evalScripts:false,evalResponse:false,evalJS:true,evalJSON:true,secureJSON:true,urlEncoded:true,spinner:null,spinnerFx:"fade",params:null,iframed:false,jsonp:false},load:function(a,b){return(new this(a,u.merge({method:"get"},b))).send()}},initialize:function(a,b){this.initCallbacks();this.url=a;I(this.$super(b),this.options);if(t.Options.spinner&& n(this.spinner)===n(t.Options.spinner))this.spinner=null},setHeader:function(a,b){this.headers[a]=b;return this},getHeader:function(a){var b;try{b=this.xhr.getResponseHeader(a)}catch(c){}return b},successful:function(){return this.status>=200&&this.status<300},send:function(a){var b={},c=this.url,d=this.method.toLowerCase(),e=this.headers,f;if(d=="put"||d=="delete"){b._method=d;d="post"}b=this.prepareData(this.params,this.prepareParams(a),b);this.urlEncoded&&d=="post"&&!e["Content-type"]&&this.setHeader("Content-type", "application/x-www-form-urlencoded;charset="+this.encoding);if(d=="get"){if(b)c+=(c.includes("?")?"&":"?")+b;b=null}a=this.xhr=this.createXhr();this.fire("create");a.open(d,c,this.async);a.onreadystatechange=this.stateChanged.bind(this);for(f in e)a.setRequestHeader(f,e[f]);a.send(b);this.fire("request");this.async||this.stateChanged();return this},update:function(a,b){return this.onSuccess(function(c){a.update(c.text)}).send(b)},cancel:function(){var a=this.xhr;if(!a||a.canceled)return this;a.abort(); a.onreadystatechange=ca();a.canceled=true;return this.fire("cancel")},fire:function(a){return this.$super(a,this,this.xhr)},createXhr:function(){if(this.jsonp)return new t.JSONP(this);else if(this.form&&this.form.first("input[type=file]"))return new t.IFramed(this.form);else try{return new XMLHttpRequest}catch(a){return new ActiveXObject("MSXML2.XMLHTTP")}},prepareParams:function(a){if(a&&a instanceof xa){this.form=a;a=a.values()}return a},prepareData:function(){return o(arguments).map(function(a){L(a)|| (a=u.toQueryString(a));return a.blank()?null:a}).compact().join("&")},stateChanged:function(){var a=this.xhr;if(!(a.readyState!=4||a.canceled)){try{this.status=a.status}catch(b){this.status=0}this.text=this.responseText=a.responseText;this.xml=this.responseXML=a.responseXML;this.fire("complete").fire(this.successful()?"success":"failure")}},tryScripts:function(){var a=this.getHeader("Content-type");if(this.evalResponse||this.evalJS&&/(ecma|java)script/i.test(a))Sa(this.text);else if(/json/.test(a)&& this.evalJSON)this.json=this.responseJSON=this.sanitizedJSON();else this.evalScripts&&this.text.evalScripts()},sanitizedJSON:function(){try{return JSON.parse(this.text)}catch(a){if(Q.JSON||!/^[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]*$/.test(this.text.replace(/\\\\./g,"@").replace(/"[^"\\\\\\n\\r]*"/g,""))){if(this.secureJSON)throw"JSON error: "+this.text;return null}}return eval("("+this.text+")")},initCallbacks:function(){this.on({success:"tryScripts",create:"showSpinner",complete:"hideSpinner",cancel:"hideSpinner"}); t.EVENTS.each(function(a){this.on(a,function(){t.fire(a,this,this.xhr)})},this)},showSpinner:function(){t.showSpinner.call(this,this)},hideSpinner:function(){t.hideSpinner.call(this,this)}});I(J(t),{counter:0,showSpinner:function(a){t.trySpinner(a,"show")},hideSpinner:function(a){t.trySpinner(a,"hide")},trySpinner:function(a,b){var c=a||t.Options,d=n(c.spinner);d&&d[b](c.spinnerFx,{duration:100})},countIn:function(){t.counter++;t.showSpinner()},countOut:function(){t.counter--;t.counter<1&&t.hideSpinner()}}).on({create:"countIn", complete:"countOut",cancel:"countOut"});xa.include({send:function(a){a=a||{};a.method=a.method||this._.method||"post";(new t(this._.action||q.location.href,a)).onRequest(function(){this.disable.bind(this).delay(20)}.bind(this)).onComplete(this.enable.bind(this)).send(this);return this},remotize:function(a){if(!this.observes("submit",ra)){this.on("submit",ra,a);this.remote=true}return this},unremotize:function(){this.stopObserving("submit",ra);this.remote=false;return this}});r.include({load:function(a, b){(new t(a,u.merge({method:"get"},b))).update(this);return this}});t.Dummy={open:ca(),abort:ca(),setRequestHeader:ca(),onreadystatechange:ca()};t.IFramed=new E({include:t.Dummy,initialize:function(a){this.form=a;this.id="xhr_"+(new Date).getTime();a.insert(\'<i><iframe name="\'+this.id+\'" id="\'+this.id+\'" width="0" height="0" frameborder="0" src="about:blank"></iframe></i>\',"after");n(this.id).on("load",this.onLoad.bind(this))},send:function(){this.form.set("target",this.id).submit()},onLoad:function(){this.status= 200;this.readyState=4;try{this.responseText=Q[this.id].document.documentElement.innerHTML}catch(a){}this.onreadystatechange()}});t.JSONP=new E({include:t.Dummy,prefix:"jsonp",initialize:function(a){this.xhr=a;this.name=this.prefix+(new Date).getTime();this.param=(L(a.jsonp)?a.jsonp:"callback")+"="+this.name;this.script=ua("script",{charset:a.encoding,async:a.async})},open:function(a,b){this.url=b;this.method=a},send:function(a){Q[this.name]=this.finish.bind(this);this.script.set("src",this.url+(this.url.include("?")? "&":"?")+this.param+"&"+a).insertTo(hb("script").last(),"after")},finish:function(a){this.status=200;this.readyState=4;this.xhr.json=this.xhr.responseJSON=a;this.onreadystatechange()}});var v=j.Fx=new E(ga,{extend:{EVENTS:T("start finish cancel"),Durations:{"short":200,normal:400,"long":800},Options:{fps:F.IE?40:60,duration:"normal",transition:"Sin",queue:true},Transitions:{Sin:function(a){return-(w.cos(w.PI*a)-1)/2},Cos:function(a){return w.asin((a-0.5)*2)/w.PI+0.5},Exp:function(a){return w.pow(2, 8*(a-1))},Log:function(a){return 1-w.pow(2,-8*a)},Lin:function(a){return a}},ch:[],cr:[]},initialize:function(a,b){this.$super(b);if(this.element=a=n(a)){var c=va(a);this.ch=v.ch[c]=v.ch[c]||[];this.cr=v.cr[c]=v.cr[c]||[]}},start:function(){if(this.queue(arguments))return this;this.prepare.apply(this,arguments);var a=this.options,b=v.Durations[a.duration]||a.duration;this.transition=v.Transitions[a.transition]||a.transition;this.steps=(b/1E3*this.options.fps).ceil();this.number=1;this.cr&&this.cr.push(this); return this.fire("start",this).startTimer()},finish:function(){return this.stopTimer().unreg().fire("finish").next()},cancel:function(){this.ch.clean();return this.stopTimer().unreg().fire("cancel")},pause:function(){return this.stopTimer()},resume:function(){return this.startTimer()},prepare:function(){},render:function(){},step:function(a){if(a.number>a.steps)a.finish();else{if(!a.w){a.w=true;a.render(a.transition(a.number/a.steps));a.w=false}a.number++}},startTimer:function(){this.timer=this.step.periodical((1E3/ this.options.fps).round(),this);return this},stopTimer:function(){this.timer&&this.timer.stop();return this},queue:function(a){var b=this.ch,c=this.options.queue;if(!b||this.$ch)return this.$ch=false;c&&b.push([a,this]);return c&&b[0][1]!==this},next:function(){var a=this.ch,b=a.shift();if(b=a[0]){b[1].$ch=true;b[1].start.apply(b[1],b[0])}return this},unreg:function(){var a=this.cr;a&&a.splice(a.indexOf(this),1);return this}});O.COLORS={maroon:"#800000",red:"#ff0000",orange:"#ffA500",yellow:"#ffff00", olive:"#808000",purple:"#800080",fuchsia:"#ff00ff",white:"#ffffff",lime:"#00ff00",green:"#008000",navy:"#000080",blue:"#0000ff",aqua:"#00ffff",teal:"#008080",black:"#000000",silver:"#c0c0c0",gray:"#808080",brown:"#a52a2a"};O.include({toHex:function(){var a=/^#(\\w)(\\w)(\\w)$/.exec(this);return a=a?"#"+a[1]+a[1]+a[2]+a[2]+a[3]+a[3]:(a=/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/.exec(this))?"#"+a.slice(1).map(function(b){b=(b-0).toString(16);return b.length==1?"0"+b:b}).join(""):O.COLORS[this]||this},toRgb:function(a){var b= /#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/i.exec(this.toHex()||"");if(b){b=b.slice(1).map("toInt",16);b=a?b:"rgb("+b+")"}return b}});B=r.prototype;var cb=B.hide,ya=B.show,db=B.remove,ub=B.scrollTo;r.include({stop:function(){(v.cr[va(this)]||[]).each("cancel");return this},hide:function(a,b){return a&&this.visible()?this.fx(a,["out",b]):cb.call(this)},show:function(a,b){return a&&this.hidden()?this.fx(a,["in",b]):ya.call(this)},remove:function(a,b){return a&&this.visible()?this.fx(a,["out",u.merge(b, {onFinish:db.bind(this)})]):db.call(this)},morph:function(a,b){return this.fx("morph",[a,b||{}])},highlight:function(){return this.fx("highlight",arguments)},fade:function(){return this.fx("fade",arguments)},slide:function(){return this.fx("slide",arguments)},scroll:function(a,b){return this.fx("scroll",[a,b||{}])},scrollTo:function(a,b){return y(b)?this.scroll(a,b):ub.apply(this,arguments)},fx:function(a,b){var c=o(b).compact(),d=y(c.last())?c.pop():{};d=new (v[a.capitalize()])(this,d);d.start.apply(d, c);return this}});var la=T("Top Left Right Bottom");v.Morph=new E(v,{prepare:function(a){var b=[],c=["Style","Color","Width"],d,e,f;for(d in a)if(d.startsWith("border"))for(e=0;e<c.length;e++)for(f=0;f<la.length;f++)b.push("border"+la[f]+c[e]);else if(d=="margin"||d=="padding"){e=b;f=d;for(var i=la,z=0;z<i.length;z++)e.push(f+i[z])}else if(d.startsWith("background")){e=b;f=["Color","Position","PositionX","PositionY"];for(i=0;i<f.length;i++)e.push("background"+f[i])}else d=="opacity"&&F.IE?b.push("filter"): b.push(d);c=this._cloneStyle(this.element,b);a=this._endStyle(a,b);b=this.element;d=[];var k;for(k in a)if((k=="width"||k=="height")&&c[k]=="auto")c[k]=b._["offset"+k.capitalize()]+"px";if(a.filter&&!c.filter)c.filter="alpha(opacity=100)";for(e=0;e<4;e++){z=la[e];f="border"+z+"Style";i="border"+z+"Width";z="border"+z+"Color";if(f in c&&c[f]!=a[f]){var ha=b._.style;if(c[f]=="none")ha[i]="0px";ha[f]=a[f];if(ea(c[z]))ha[z]=b.getStyle("Color")}}for(k in a){if(a[k]!==c[k]&&!d.includes(k)&&/color/i.test(k)){if(F.Opera){a[k]= a[k].replace(/"/g,"");c[k]=c[k].replace(/"/g,"")}ea(a[k])||(a[k]=a[k].toRgb());ea(c[k])||(c[k]=c[k].toRgb());if(!a[k]||!c[k])a[k]=c[k]=""}if(/\\d/.test(a[k])&&!/\\d/.test(c[k]))c[k]=a[k].replace(/[\\d\\.\\-]+/g,"0");if(a[k]===c[k]||d.includes(k)||!/\\d/.test(c[k])||!/\\d/.test(a[k])){delete a[k];delete c[k]}}this.before=Qa(c);this.after=Qa(a)},render:function(a){var b,c,d,e=this.element._.style,f,i,z;for(f in this.after){b=this.before[f];c=this.after[f];i=0;for(z=c.length;i<z;i++){d=b[i]+(c[i]-b[i])*a;if(c.r)d= w.round(d);c.t[i*2+1]=d}e[f]=c.t.join("")}},_endStyle:function(a,b){var c=this.element,d=c.clone().setStyle("position:absolute;z-index:-1;visibility:hidden").setWidth(c.size().x).setStyle(a);c.parent()&&c.insert(d,"before");c=this._cloneStyle(d,b);d.remove();return c},_cloneStyle:function(a,b){for(var c=0,d=b.length,e=a.computedStyles(),f={},i;c<d;c++){i=b[c];if(i in e)f[i]=""+e[i];if(i==="opacity")f[i]=f[i].replace(",",".")}return f}});v.Highlight=new E(v.Morph,{extend:{Options:u.merge(v.Options, {color:"#FF8",transition:"Exp"})},prepare:function(a,b){var c=this.element,d=c._.style,e=b||c.getStyle("backgroundColor");if(ea(e)){this.onFinish(function(){d.backgroundColor="transparent"});e=[c].concat(c.parents()).map(function(f){return(f=f.getStyle("backgroundColor"))&&!ea(f)?f:null}).compact().first()||"#FFF"}d.backgroundColor=a||this.options.color;return this.$super({backgroundColor:e})}});v.Twin=new E(v.Morph,{finish:function(){this.how=="out"&&cb.call(this.element);return this.$super()},setHow:function(a){this.how= a||"toggle";if(this.how=="toggle")this.how=this.element.visible()?"out":"in"}});v.Slide=new E(v.Twin,{extend:{Options:u.merge(v.Options,{direction:"top"})},prepare:function(a){this.setHow(a);var b=ya.call(this.element);this.size=b.size();this.styles={};T("overflow height width marginTop marginLeft").each(function(c){this.styles[c]=b._.style[c]},this);b._.style.overflow="hidden";this.onFinish("_getBack").onCancel("_getBack");return this.$super(this._getStyle(this.options.direction))},_getBack:function(){this.element.setStyle(this.styles)}, _getStyle:function(a){var b={},c=this.size,d=this.styles.marginLeft.toFloat()||0,e=this.styles.marginTop.toFloat()||0;if(this.how=="out"){b[["top","bottom"].includes(a)?"height":"width"]="0px";if(a=="right")b.marginLeft=d+c.x+"px";else if(a=="bottom")b.marginTop=e+c.y+"px"}else if(this.how=="in"){var f=this.element._.style;if(["top","bottom"].includes(a)){b.height=c.y+"px";f.height="0px"}else{b.width=c.x+"px";f.width="0px"}if(a=="right"){b.marginLeft=d+"px";f.marginLeft=d+c.x+"px"}else if(a=="bottom"){b.marginTop= e+"px";f.marginTop=e+c.y+"px"}}return b}});v.Fade=new E(v.Twin,{prepare:function(a){this.setHow(a);this.how=="in"&&ya.call(this.element.setStyle({opacity:0}));return this.$super({opacity:Ta(a)?a:this.how=="in"?1:0})}});v.Scroll=new E(v,{initialize:function(a,b){a=n(a);this.$super(a instanceof da?a._.document[F.WebKit?"body":"documentElement"]:a,b)},prepare:function(a){var b=this.before={},c=this.element._;this.after=a;if("x"in a)b.x=c.scrollLeft;if("y"in a)b.y=c.scrollTop},render:function(a){var b= this.before,c;for(c in b)this.element._["scroll"+(c=="x"?"Left":"Top")]=b[c]+(this.after[c]-b[c])*a}});j.Cookie=new E({include:W,extend:{set:function(a,b,c){return(new this(a,c)).set(b)},get:function(a){return(new this(a)).get()},remove:function(a){return(new this(a)).remove()},enabled:function(){q.cookie="__t=1";return q.cookie.indexOf("__t=1")!=-1},Options:{secure:false,document:q}},initialize:function(a,b){this.name=a;this.setOptions(b)},set:function(a){a=encodeURIComponent(a);var b=this.options; if(b.domain)a+="; domain="+b.domain;if(b.path)a+="; path="+b.path;if(b.duration){var c=new Date;c.setTime(c.getTime()+b.duration*24*60*60*1E3);a+="; expires="+c.toGMTString()}if(b.secure)a+="; secure";b.document.cookie=this.name+"="+a;return this},get:function(){var a=this.options.document.cookie.match("(?:^|;)\\\\s*"+RegExp.escape(this.name)+"=([^;]*)");return a?decodeURIComponent(a[1]):null},remove:function(){this.options.duration=-1;return this.set("")}});if(j.Browser.OLD)n=j.$=function(a){return function(b){var c= a(b);if(c&&c instanceof j.Element&&j.isString(b)&&c._.id!==b)c=j.$(q).first("#"+b);return c}}(j.$);j.$E("p").getBoundingClientRect||j.Element.include({position:function(){var a=this._,b=a.offsetTop,c=a.offsetLeft;for(a=a.offsetParent;a;){b+=a.offsetTop;c+=a.offsetLeft;a=a.offsetParent}return{x:c,y:b}}});q.querySelector||function(a){function b(g){if(!za[g]){var h,p,l,A,M,D,x={};for(l=g;h=l.match(vb);){A=A||{};A[h[1]]={o:h[2],v:h[5]||h[6]};l=l.replace(h[0],"")}if(h=l.match(ha)){M=h[1];D=h[3]==""?null: h[3];l=l.replace(h[0],"")}h=(l.match(i)||[1,null])[1];p=(l.match(z)||"*").toString().toUpperCase();l=(l.match(k)||[1,""])[1].split(".").without("");x.tag=p;if(h||l.length||A||M){var G="function(y){var e,r=[],z=0,x=y.length;for(;z<x;z++){e=y[z];_f_}return r}",H=function(V){G=G.replace("_f_",V+"_f_")};h&&H("if(e.id!=i)continue;");l.length&&H(\'if(e.className){var n=e.className.split(" ");if(n.length==1&&c.indexOf(n[0])==-1)continue;else{for(var i=0,l=c.length,b=false;i<l;i++)if(n.indexOf(c[i])==-1){b=true;break;}if(b)continue;}}else continue;\'); A&&H(\'var p,o,v,k,b=false;for (k in a){p=e.getAttribute(k)||"";o=a[k].o||"";v=a[k].v||"";if((o===""&&e.getAttributeNode(k)===null)||(o==="="&&p!=v)||(o==="*="&&!p.includes(v))||(o==="^="&&!p.startsWith(v))||(o==="$="&&!p.endsWith(v))||(o==="~="&&!p.split(" ").includes(v))||(o==="|="&&!p.split("-").includes(v))){b=true;break;}}if(b){continue;}\');M in e&&H("if(!S[P].call(e,V,S))continue;");x.filter=eval("[function(i,t,c,a,P,V,S,s){return eval(\'[\'+s+\']\')[0]}]")[0](h,p,l,A,M,D,e,G.replace("_f_","r.push(e)"))}za[g]= x}return za[g]}function c(g){var h=g.join("");if(!Aa[h]){for(var p=0;p<g.length;p++)g[p][1]=b(g[p][1]);var l=va,A=function(D){for(var x=[],G=[],H,V=0,$=D.length;V<$;V++){H=l(D[V]);if(!G[H]){x.push(D[V]);G[H]=true}}return x},M=function(D,x){var G=d[x[0]](D,x[1].tag);return x[1].filter?x[1].filter(G):G};Aa[h]=function(D){for(var x,G,H=0,V=g.length;H<V;H++)if(H===0)x=M(D,g[H]);else{if(H>1)x=A(x);for(var $=0;$<x.length;$++){G=M(x[$],g[H]);G.unshift(1);G.unshift($);x.splice.apply(x,G);$+=G.length-3}}return g.length> 1?A(x):x}}return Aa[h]}var d={" ":function(g,h){return a.$A(g.getElementsByTagName(h))},">":function(g,h){for(var p=[],l=g.firstChild;l;){if(h=="*"||l.tagName==h)p.push(l);l=l.nextSibling}return p},"+":function(g,h){for(;g=g.nextSibling;)if(g.tagName)return h=="*"||g.tagName==h?[g]:[];return[]},"~":function(g,h){for(var p=[];g=g.nextSibling;)if(h=="*"||g.tagName==h)p.push(g);return p}},e={checked:function(){return this.checked},disabled:function(){return this.disabled},empty:function(){return!(this.innerText|| this.innerHTML||this.textContent||"").length},"first-child":function(g){for(var h=this;h=h.previousSibling;)if(h.tagName&&(!g||h.tagName==g))return false;return true},"first-of-type":function(g,h){return h["first-child"].call(this,this.tagName)},"last-child":function(g){for(var h=this;h=h.nextSibling;)if(h.tagName&&(!g||h.tagName==g))return false;return true},"last-of-type":function(g,h){return h["last-child"].call(this,this.tagName)},"only-child":function(g,h){return h["first-child"].call(this,g)&& h["last-child"].call(this,g)},"only-of-type":function(g,h){return h["only-child"].call(this,this.tagName,h)},"nth-child":function(g,h,p){if(!this.parentNode)return false;g=g.toLowerCase();if(g=="n")return true;if(g.includes("n")){var l=h=0;if(m=g.match(/^([+\\-]?\\d*)?n([+\\-]?\\d*)?$/)){h=m[1]=="-"?-1:parseInt(m[1],10)||1;l=parseInt(m[2],10)||0}g=1;for(var A=this;A=A.previousSibling;)if(A.tagName&&(!p||A.tagName==p))g++;return(g-l)%h===0&&(g-l)/h>=0}else return h.index.call(this,g.toInt()-1,h,p)},"nth-of-type":function(g, h){return h["nth-child"].call(this,g,h,this.tagName)},index:function(g,h,p){g=a.isString(g)?g.toInt():g;h=this;for(var l=0;h=h.previousSibling;)if(h.tagName&&(!p||h.tagName==p)&&++l>g)return false;return l==g}},f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?/g,i=/#([\\w\\-_]+)/,z=/^[\\w\\*]+/,k=/\\.([\\w\\-\\._]+)/,ha=/:([\\w\\-]+)(\\((.+?)\\))*$/,vb=/\\[((?:[\\w\\-]*:)?[\\w\\-]+)\\s*(?:([!\\^$*~|]?=)\\s*(([\'"])([^\\4]*?)\\4|([^\'"][^\\]]*?)))?\\]/,za= {},Aa={},Ba={},ma={first:function(g){return this.find(g)[0]},find:function(g){var h=this._;g=g||"*";if(!Ba[g]){f.lastIndex=0;for(var p=[],l=[],A=" ",M,D;M=f.exec(g);){D=M[1];if(D=="+"||D==">"||D=="~")A=D;else{l.push([A,D]);A=" "}if(M[2]){p.push(c(l));l=[]}}p.push(c(l));Ba[g]=p}g=Ba[g];p=[];l=0;for(A=g.length;l<A;l++)p=p.concat(g[l](h));return p.map(a.$)}};ma.select=ma.find;a.Element.include(ma);a.Document.include(ma)}(j);I(Q,u.without(j,"version","modules"));return j}(window,document,Object,Array, String,Function,Number,Math);');
|
8
|
+
f.close();c=c.createElement("script");c.text=e;f.body.appendChild(c)}var a=b.RightJS;a.context=b;a.safe=true;return a.$ext(function(d){switch(typeof d){case "number":return a.$N(d);case "string":return a.$S(d);case "function":return a.$ext(d,a.Function.Methods);case "object":if(a.isArray(d))return a.$A(d)}return d},a)}(window,'var RightJS=function(P,r,u,E,M,V,ma,w){function Q(a){return W(a)?a:[a]}function Ba(a,b){var c=a[0],d=Ca.call(a,1),e=b,f;if(L(c)){f=c;c=b.length&&$(b[0][f])?function(i){return i[f].apply(i,d)}:function(i){return i[f]}}else e=d[0];return[c,e]}function R(a,b,c){var d;try{d=a.apply(b,Ba(c,b))}catch(e){if(!(e instanceof j.Break))throw e;}return d}function Da(a){return!!a}function Ea(a,b){return a>b?1:a<b?-1:0}function Fa(a,b){["extend","include"].each(function(c){var d=b[c];if(x(d)||W(d)){a[c].apply(a, Q(d));delete b[c]}})}function na(a,b){var c=b.toUpperCase(),d=b.capitalize(),e=a.constructor;return(e=[a,e].concat("ancestors"in e?e.ancestors:[]).first(function(f){return f&&(c in f||d in f)}))?e[c]||e[d]:null}function oa(a,b,c){a=a._;for(var d=[];a=a[b];)if(a.tagName&&(!c||n(a).match(c)))d.push(n(a));return d}function eb(a){if(typeof a==="string"){var b=this.tagName,c=fb,d=Ga[b]||["","",1],e=d[2];for(c.innerHTML=d[0]+"<"+b+">"+a+"</"+b+">"+d[1];e-- >0;)c=c.firstChild;a=c.childNodes}b=0;for(c=a.length;b< c;b++){d=a[a.length===c?b:0];Ha.appendChild(d instanceof s?d._:d)}return Ha}function Ia(a,b){var c,d=b.camelize();switch(d){case "opacity":c=!H.IE?a[d].replace(",","."):(/opacity=(\\d+)/i.exec(a.filter||"")||["","100"])[1].toInt()/100+"";break;case "float":d=H.IE?"styleFloat":"cssFloat";default:c=a[d];if(H.Opera&&/color/i.test(d)&&c)c=c.replace(/"/g,"")}return c||null}function ha(a,b,c){X[a]=eval("["+X[a].toString().replace(b,c)+"]")[0]}function Ja(a){a=S(a);pa=pa.concat(a);aa(s[q],a);aa(Y[q],a)}function Ka(a, b){var c=a||"*",d=b._;d="tagName"in d?d.tagName:null;return d===null?c:c.replace(/(^|,)/g,"$1"+d+" ")}function ia(a){var b=new La(a),c=b.target;c=c.parent&&c.parent();b.type=a.type==="focusin"||a.type==="focus"?"focus":"blur";c&&c.fire(b)}function Ma(a,b){var c=r.createElement(b);c.setAttribute(a,";");return $(c[a])}function gb(a,b,c){return function(d){var e=d.target,f=o(b),i=f.shift();if(c.find(a).includes(e))$(i)?i.apply(e,[d].concat(f)):e[i].apply(e,f)}}function Na(a){a=o(a);var b=a[1]||{},c= {},d;if(L(b)){c[b]=a.slice(2);if(W(c[b][0]))c[b]=c[b][0].map(Q)}else c=b;for(d in c){c[d]=Q(c[d]);c[d]=W(c[d][0])?c[d]:[c[d]]}return c}function Oa(a,b){var c=a[0],d,e,f=Na(a),i=!u.keys(f).length;return(b.$listeners||[]).filter(function(z){return z.dr&&z.n===c&&(i||function(){for(var k in f)if(z.dr===k){d=0;for(e=f[k];d<e.length;d++)if(!e[d].length||e[d][0]===z.dc)return true}return false}())})}function qa(a,b){a.stop();this.send(u.merge({spinner:this.first(".spinner")},b))}function da(a){return a=== "transparent"||a==="rgba(0, 0, 0, 0)"}function Pa(a){var b={},c=/[\\d\\.\\-]+/g,d,e,f;for(e in a){d=a[e].match(c);d=d.map("toFloat");d.t=a[e].split(c);d.r=d.t[0]==="rgb(";d.t.length==1&&d.t.unshift("");for(f=0;f<d.length;f++)d.t.splice(f*2+1,0,d[f]);b[e]=d}return b}var j=function(a){return a};j.version="2.0.0";j.modules=["core","dom","form","events","xhr","fx","cookie","olds"];var q="prototype",J=E[q],ra=u[q].toString,Ca=J.slice,ba=function(){return function(){}},Qa=r.documentElement,sa=1,ja=[],I=j.$ext= function(a,b,c){b=b||{};var d;for(d in b)if(!c||!(d in a))a[d]=b[d];return a},Ra=j.$eval=function(a){if(a)"execScript"in P?n(r).window()._.execScript(a):ta("script",{text:a}).insertTo(Qa)};j.$break=function(){throw new j.Break;};var B=j.$alias=function(a,b){for(var c in b)a[c]=a[b[c]];return a};j.defined=function(a){return typeof a!=="undefined"};var $=j.isFunction=function(a){return typeof a==="function"},L=j.isString=function(a){return typeof a==="string"},Sa=j.isNumber=function(a){return typeof a=== "number"},x=j.isHash=function(a){return ra.call(a)==="[object Object]"},W=j.isArray=function(a){return ra.call(a)==="[object Array]"},Ta=j.isElement=function(a){return a&&a.tagName};j.isNode=function(a){return a&&a.nodeType};var n=j.$=function(a){if(typeof a==="string")a=r.getElementById(a);if(a)if("_rjs_id"in a&&a._rjs_id in ja)a=ja[a._rjs_id];else if(a.nodeType===1)a=new s(a);else if(Ta(a.target)||Ta(a.srcElement))a=new La(a);else if(a.nodeType===9)a=new Y(a);else if(a.window==a)a=new ca(a);return a}, hb=j.$$=function(a,b){return n(b||r).find(a)},ta=j.$E=function(a,b){return new s(a,b)},S=j.$w=function(a){return a.trim().split(/\\s+/)},o=j.$A=function(a){try{return Ca.call(a)}catch(b){for(var c=[],d=0,e=a.length;d<e;d++)c[d]=a[d];return c}},ua=j.$uid=function(a){return"_rjs_id"in a?a._rjs_id:a._rjs_id=sa++};if(x(Qa))x=j.isHash=function(a){return ra.call(a)==="[object Object]"&&a!==null&&typeof a!=="undefined"&&typeof a.hasOwnProperty!=="undefined"};for(var C=0,K="Array Function Number String Date RegExp".split(" "), ea=function(){for(var a=0;a<arguments.length;a++)if(x(arguments[a])){I(this[q],arguments[a]);I(this.Methods,arguments[a])}};C<K.length;C++)I(j[K[C]]=P[K[C]],{Methods:{},include:ea});j.Object=u;j.Math=w;I(u,{keys:function(a){var b=[],c;for(c in a)b.push(c);return b},values:function(a){var b=[],c;for(c in a)b.push(a[c]);return b},each:function(a,b,c){for(var d in a)b.call(c,d,a[d]);return a},empty:function(a){for(var b in a)return false;return true},without:function(){var a=o(arguments),b=a.shift(), c={},d;for(d in b)a.includes(d)||(c[d]=b[d]);return c},only:function(){for(var a=o(arguments),b=a.shift(),c={},d=0,e=a.length;d<e;d++)if(a[d]in b)c[a[d]]=b[a[d]];return c},merge:function(){for(var a={},b=0,c=arguments.length;b<c;b++)x(arguments[b])&&I(a,arguments[b]);return a},toQueryString:function(a){var b=[],c,d,e=encodeURIComponent;for(c in a){d=Q(a[c]);for(var f=0;f<d.length;f++)b.push(e(c)+"="+e(d[f]))}return b.join("&")}},true);var Ua=w.random;w.random=function(a,b){if(arguments.length===0)return Ua(); else if(arguments.length===1){b=a;a=0}return~~(Ua()*(b-a+1)+~~a)};var ib=J.sort;C=function(a,b,c){return eval("[function(c,s){for(var "+a+"i=0,l=this.length;i<l;i++){"+b.replace("_","c.call(s,this[i],i,this)")+"}"+c+"}]")[0]};var Va=J.forEach||C("","_",""),jb=J.filter||C("r=[],j=0,","if(_)r[j++]=this[i]","return r"),kb=C("r=[],j=0,","if(!_)r[j++]=this[i]","return r"),lb=J.map||C("r=[],","r[i]=_","return r"),mb=J.some||C("","if(_)return true","return false"),nb=J.every||C("","if(!_)return false","return true"), ob=C("","if(_)return this[i]","return [][0]"),pb=function(a,b){for(var c=this.length-1;c>-1;c--)if(a.call(b,this[c],c,this))return this[c];return null};E.include({indexOf:J.indexOf||function(a,b){for(var c=b<0?w.max(0,this.length+b):b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},lastIndexOf:J.lastIndexOf||function(a){for(var b=this.length-1;b>-1;b--)if(this[b]===a)return b;return-1},first:function(){return arguments.length?R(ob,this,arguments):this[0]},last:function(){return arguments.length? R(pb,this,arguments):this[this.length-1]},random:function(){return this.length?this[w.random(this.length-1)]:null},size:function(){return this.length},clean:function(){this.length=0;return this},empty:function(){return!this.length},clone:function(){return this.slice(0)},each:function(){R(Va,this,arguments);return this},forEach:Va,map:function(){return R(lb,this,arguments)},filter:function(){return R(jb,this,arguments)},reject:function(){return R(kb,this,arguments)},some:function(a){return R(mb,this, a?arguments:[Da])},every:function(a){return R(nb,this,a?arguments:[Da])},walk:function(){this.map.apply(this,arguments).forEach(function(a,b){this[b]=a},this);return this},merge:function(){for(var a=this.clone(),b,c=0,d,e=arguments.length;c<e;c++){b=arguments[c];b=Q(b);for(d=0;d<b.length;d++)a.indexOf(b[d])==-1&&a.push(b[d])}return a},flatten:function(){var a=[];this.forEach(function(b){if(W(b))a=a.concat(b.flatten());else a.push(b)});return a},compact:function(){return this.without(null,undefined)}, uniq:function(){return[].merge(this)},includes:function(){for(var a=0,b=arguments.length;a<b;a++)if(this.indexOf(arguments[a])==-1)return false;return true},without:function(){var a=o(arguments);return this.filter(function(b){return!a.includes(b)})},shuffle:function(){for(var a=this.clone(),b,c,d=a.length;d>0;b=w.random(d-1),c=a[--d],a[d]=a[b],a[b]=c);return a},sort:function(a){return ib.apply(this,a||!Sa(this[0])?arguments:[Ea])},sortBy:function(){var a=Ba(arguments,this);return this.sort(function(b, c){return Ea(a[0].call(a[1],b),a[0].call(a[1],c))})},min:function(){return w.min.apply(w,this)},max:function(){return w.max.apply(w,this)},sum:function(){for(var a=0,b=this.length,c=0;a<b;c+=this[a++]);return c}});B(J,{include:"includes"});M.include({empty:function(){return this==""},blank:function(){return/^\\s*$/.test(this)},trim:M[q].trim||function(){for(var a=this.replace(/^\\s\\s*/,""),b=a.length;/\\s/.test(a.charAt(--b)););return a.slice(0,b+1)},stripTags:function(){return this.replace(/<\\/?[^>]+>/ig, "")},stripScripts:function(a){var b="",c=this.replace(/<script[^>]*>([\\s\\S]*?)<\\/script>/img,function(d,e){b+=e+"\\n";return""});if(a===true)Ra(b);else $(a)&&a(b,c);return c},extractScripts:function(){var a="";this.stripScripts(function(b){a=b});return a},evalScripts:function(){this.stripScripts(true);return this},camelize:function(){return this.replace(/(\\-|_)+(.)?/g,function(a,b,c){return c?c.toUpperCase():""})},underscored:function(){return this.replace(/([a-z\\d])([A-Z]+)/g,"$1_$2").replace(/\\-/g, "_").toLowerCase()},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()},includes:function(a){return this.indexOf(a)!=-1},startsWith:function(a,b){var c=this.substr(0,a.length);return b?c.toLowerCase()===a.toLowerCase():c===a},endsWith:function(a,b){var c=this.substring(this.length-a.length);return b?c.toLowerCase()===a.toLowerCase():c===a},toInt:function(a){return parseInt(this,a||10)},toFloat:function(a){return parseFloat(a?this:this.replace(",",".").replace(/(\\d)-(\\d)/g, "$1.$2"))}});B(M[q],{include:"includes"});V.include({bind:function(){var a=o(arguments),b=a.shift(),c=this;return function(){return c.apply(b,a.length||arguments.length?a.concat(o(arguments)):a)}},bindAsEventListener:function(){var a=o(arguments),b=a.shift(),c=this;return function(d){return c.apply(b,[d].concat(a).concat(o(arguments)))}},curry:function(){return this.bind.apply(this,[this].concat(o(arguments)))},rcurry:function(){var a=o(arguments),b=this;return function(){return b.apply(b,o(arguments).concat(a))}}, delay:function(){var a=o(arguments),b=a.shift();a=new ma(setTimeout(this.bind.apply(this,[this].concat(a)),b));a.cancel=function(){clearTimeout(this)};return a},periodical:function(){var a=o(arguments),b=a.shift();a=new ma(setInterval(this.bind.apply(this,[this].concat(a)),b));a.stop=function(){clearInterval(this)};return a},chain:function(){var a=o(arguments),b=a.shift(),c=this;return function(){var d=c.apply(c,arguments);b.apply(b,a);return d}}});ma.include({times:function(a,b){for(var c=0;c<this;c++)a.call(b, c);return this},upto:function(a,b,c){for(var d=this+0;d<=a;d++)b.call(c,d);return this},downto:function(a,b,c){for(var d=this+0;d>=a;d--)b.call(c,d);return this},abs:function(){return w.abs(this)},round:function(a){return a?parseFloat(this.toFixed(a)):w.round(this)},ceil:function(){return w.ceil(this)},floor:function(){return w.floor(this)},min:function(a){return this<a?a:this+0},max:function(a){return this>a?a:this+0}});RegExp.escape=function(a){return(""+a).replace(/([.*+?\\^=!:${}()|\\[\\]\\/\\\\])/g, "\\\\$1")};E=j.Class=function(){function a(){"prebind"in this&&W(this.prebind)&&this.prebind.each(function(e){this[e]=this[e].bind(this)},this);return this.initialize?this.initialize.apply(this,arguments):this}var b=o(arguments),c=b.pop()||{},d=b.pop();if(!b.length&&!x(c)){d=c;c={}}I(a,Wa).inherit(d);Fa(a,c);return a.include(c)};V=S("selfExtended self_extended selfIncluded self_included");var qb=V.concat(S(q+" parent extend include")),rb=V.concat(["constructor"]),Wa={inherit:function(a){if(a&&a[q]){var b= ba();b[q]=a[q];this[q]=new b;this.parent=a}for(this.ancestors=[];a;){this.ancestors.push(a);a=a.parent}return this[q].constructor=this},extend:function(){o(arguments).filter(x).each(function(a){var b=a.selfExtended||a.self_extended;I(this,u.without.apply(u,[a].concat(qb)));b&&b.call(a,this)},this);return this},include:function(){var a=(this.ancestors||[]).map(q);o(arguments).filter(x).each(function(b){var c=b.selfIncluded||b.self_included;u.each(u.without.apply(u,[b].concat(rb)),function(d,e){var f= a.first(function(i){return d in i&&$(i[d])});this[q][d]=!f?e:function(){this.$super=f[d];return e.apply(this,arguments)}},this);c&&c.call(b,this)},this);return this}};V=j.Options={setOptions:function(a){a=this.options=u.merge(na(this,"options"),a);var b,c;if($(this.on))for(c in a)if(b=c.match(/on([A-Z][A-Za-z]+)/)){this.on(b[1].toLowerCase(),a[c]);delete a[c]}return this},cutOptions:function(a){a=o(a);this.setOptions(x(a.last())?a.pop():{});return a}};var fa=j.Observer=new E({include:V,initialize:function(a){this.setOptions(a); aa(this,na(this,"events"));return this},on:function(){var a=o(arguments),b=a.shift(),c;if(L(b)){if(!("$listeners"in this))this.$listeners=[];var d=a.shift();switch(typeof d){case "string":c=d;d=this[d];case "function":var e={};e.e=b;e.f=d;e.a=a;e.r=c;this.$listeners.push(e);break;default:if(W(d))for(c=0;c<d.length;c++)this.on.apply(this,[b].concat(Q(d[c])).concat(a))}}else for(c in b)this.on.apply(this,[c].concat(Q(b[c])).concat(a));return this},observes:function(a,b){if(!L(a)){b=a;a=null}if(L(b))b= this[b];return(this.$listeners||[]).some(function(c){return a&&b?c.e===a&&c.f===b:a?c.e===a:c.f===b})},stopObserving:function(a,b){if(x(a))for(var c in a)this.stopObserving(c,a[c]);else{if(!L(a)){b=a;a=null}if(L(b))b=this[b];this.$listeners=(this.$listeners||[]).filter(function(d){return a&&b?d.e!==a||d.f!==b:a?d.e!==a:d.f!==b},this)}return this},listeners:function(a){return(this.$listeners||[]).filter(function(b){return!a||b.e===a}).map(function(b){return b.f}).uniq()},fire:function(){var a=o(arguments), b=a.shift();(this.$listeners||[]).each(function(c){c.e===b&&c.f.apply(this,c.a.concat(a))},this);return this}});J=fa.create=function(a,b){I(a,u.without(fa[q],"initialize","setOptions"),true);return aa(a,b||na(a,"events"))};var aa=fa.createShortcuts=function(a,b){(b||[]).each(function(c){var d="on"+c.replace(/(^|_|:)([a-z])/g,function(e,f,i){return i.toUpperCase()});d in a||(a[d]=function(){return this.on.apply(this,[c].concat(o(arguments)))})});return a};j.Break=new E(Error,{message:"Manual break"}); K=navigator.userAgent;C="attachEvent"in P;ea="opera"in P;var H=j.Browser={IE:C&&!ea,Opera:ea,WebKit:K.include("AppleWebKit/"),Gecko:K.include("Gecko")&&!K.include("KHTML"),MobileSafari:/Apple.*Mobile.*Safari/.test(K),Konqueror:K.include("Konqueror"),OLD:C&&!ea&&!r.querySelector},T=j.Wrapper=function(a,b){var c=function(d,e){this.initialize(d,e);var f=this,i=f._;if(this.constructor===s&&i.tagName in O){f=new O[i.tagName](i);if("$listeners"in this)f.$listeners=this.$listeners}i="_rjs_id"in i?i._rjs_id: i._rjs_id=sa++;return ja[i]=f};if(!b){b=a;a=null}I(c,Wa).inherit(a||T);Fa(c,b);return c.include({_:undefined},b)};T.Cache=ja;var Y=j.Document=new T({initialize:function(a){this._=a},window:function(){return n(this._.defaultView||this._.parentWindow)}}),ca=j.Window=new T({initialize:function(a){this._=a;this.d=a.document},window:function(){return this},size:function(){var a=this._,b=this.d.documentElement;return a.innerWidth?{x:a.innerWidth,y:a.innerHeight}:{x:b.clientWidth,y:b.clientHeight}},scrolls:function(){var a= this._,b=this.d,c=b.body;b=b.documentElement;return a.pageXOffset||a.pageYOffset?{x:a.pageXOffset,y:a.pageYOffset}:c&&(c.scrollLeft||c.scrollTop)?{x:c.scrollLeft,y:c.scrollTop}:{x:b.scrollLeft,y:b.scrollTop}},scrollTo:function(a,b,c){var d=a,e=b,f=n(a);if(f&&f instanceof s)a=f.position();if(x(a)){e=a.y;d=a.x}x(c=c||b)&&j.Fx?(new v.Scroll(this,c)).start({x:d,y:e}):this._.scrollTo(d,e);return this}}),La=j.Event=new T({type:null,which:null,keyCode:null,target:null,currentTarget:null,relatedTarget:null, pageX:null,pageY:null,initialize:function(a,b){if(typeof a==="string"){a=u.merge({type:a},b);this.stopped=a.bubbles===false;x(b)&&I(this,b)}this._=a;this.type=a.type;this.which=a.which;this.keyCode=a.keyCode;this.target=n(a.target);this.currentTarget=n(a.currentTarget);this.relatedTarget=n(a.relatedTarget);this.pageX=a.pageX;this.pageY=a.pageY;if(!("target"in a)&&"srcElement"in a){this.which=a.button==2?3:a.button==4?2:1;this.target=n(a.srcElement)||b;this.relatedTarget=this.target._===a.fromElement? n(a.toElement):this.target;this.currentTarget=b;var c=this.target.window().scrolls();this.pageX=a.clientX+c.x;this.pageY=a.clientY+c.y}else if(a.target&&"nodeType"in a.target&&a.target.nodeType===3)this.target=n(a.target.parentNode)},stopPropagation:function(){if("stopPropagation"in this._)this._.stopPropagation();else this._.cancelBubble=true;this.stopped=true;return this},preventDefault:function(){if("preventDefault"in this._)this._.preventDefault();else this._.returnValue=false;return this},stop:function(){return this.stopPropagation().preventDefault()}, position:function(){return{x:this.pageX,y:this.pageY}},find:function(a){if(this.target instanceof s){var b=this.target;b=[b].concat(b.parents());var c=this.currentTarget.find(a);return b.first(function(d){return c.include(d)})}}}),pa=[],Xa={id:"id",html:"innerHTML","class":"className"},Ya={style:"setStyle",on:"on"},O={},va={};K=function(a,b){this._=a=(a in va?va[a]:va[a]=r.createElement(a)).cloneNode(false);if(b!==undefined)for(var c in b)if(c in Xa)a[Xa[c]]=b[c];else c in Ya?this[Ya[c]](b[c]):this.set(c, b[c])};try{r.createElement("<input/>");K=eval("["+K.toString().replace(/(\\((\\w+),\\s*(\\w+)\\)\\s*\\{)/,\'$1if($2==="input"&&$3)$2="<input name="+$3.name+" type="+$3.type+($3.checked?" checked":"")+"/>";\')+"]")[0]}catch(wb){}var s=j.Element=new T({initialize:function(a,b){if(typeof a==="string")this.construct(a,b);else this._=a},construct:K});s.Wrappers=O;s.include({parent:function(a){return a?this.parents(a)[0]:n(this._.parentNode||null)},parents:function(a){return oa(this,"parentNode",a)},children:function(a){return this.find(a).filter(function(b){return b._.parentNode=== this._},this)},siblings:function(a){return this.prevSiblings(a).reverse().concat(this.nextSiblings(a))},nextSiblings:function(a){return oa(this,"nextSibling",a)},prevSiblings:function(a){return oa(this,"previousSibling",a)},next:function(a){return this.nextSiblings(a)[0]},prev:function(a){return this.prevSiblings(a)[0]},remove:function(){var a=this._,b=a.parentNode;b&&b.removeChild(a);return this},insert:function(a,b){var c=null,d=this._;b=(b||"bottom").toLowerCase();if(typeof a!=="object")c=a=""+ a;else if(a&&a instanceof s)a=a._;sb[b](d,a.tagName?a:eb.call(b==="bottom"||b==="top"?d:d.parentNode,a));c!==null&&c.evalScripts();return this},insertTo:function(a,b){n(a).insert(this,b);return this},append:function(a){return this.insert(L(a)?o(arguments).join(""):arguments)},update:function(a){if(typeof a!=="object"){a=""+a;try{this._.innerHTML=a}catch(b){return this.clean().insert(a)}a.evalScripts();return this}else return this.clean().insert(a)},html:function(a){return a===undefined?this._.innerHTML: this.update(a)},replace:function(a){return this.insert(a,"instead")},wrap:function(a){var b=this._,c=b.parentNode;if(c){a=n(a)._;c.replaceChild(a,b);a.appendChild(b)}return this},clean:function(){for(;this._.firstChild;)this._.removeChild(this._.firstChild);return this},empty:function(){return this.html().blank()},clone:function(){var a=this._.cloneNode(true);a._rjs_id=sa++;return new s(a)}});var sb={bottom:function(a,b){a.appendChild(b)},top:function(a,b){a.firstChild!==null?a.insertBefore(b,a.firstChild): a.appendChild(b)},after:function(a,b){var c=a.parentNode,d=a.nextSibling;d!==null?c.insertBefore(b,d):c.appendChild(b)},before:function(a,b){a.parentNode.insertBefore(b,a)},instead:function(a,b){a.parentNode.replaceChild(b,a)}},Ga={TBODY:["<TABLE>","</TABLE>",2],TR:["<TABLE><TBODY>","</TBODY></TABLE>",3],TD:["<TABLE><TBODY><TR>","</TR></TBODY></TABLE>",4],COL:["<TABLE><COLGROUP>","</COLGROUP><TBODY></TBODY></TABLE>",2],LEGEND:["<FIELDSET>","</FIELDSET>",2],AREA:["<map>","</map>",2],OPTION:["<SELECT>", "</SELECT>",2]};B(Ga,{OPTGROUP:"OPTION",THEAD:"TBODY",TFOOT:"TBODY",TH:"TD"});var Ha=r.createDocumentFragment(),fb=r.createElement("DIV");s.include({setStyle:function(a,b){var c,d,e={},f=this._.style;if(b){e[a]=b;a=e}else if(L(a)){a.split(";").each(function(i){i=i.split(":").map("trim");if(i[0]&&i[1])e[i[0]]=i[1]});a=e}for(c in a){d=c.indexOf("-")<0?c:c.camelize();if(c==="opacity")if(H.IE)f.filter="alpha(opacity="+a[c]*100+")";else f.opacity=a[c];else if(c==="float")d=H.IE?"styleFloat":"cssFloat"; f[d]=a[c]}return this},getStyle:function(a){return Ia(this._.style,a)||Ia(this.computedStyles(),a)},computedStyles:function(){var a=this._;return a.currentStyle||a.runtimeStyle||a.ownerDocument.defaultView.getComputedStyle(a,null)||{}},hasClass:function(a){return(" "+this._.className+" ").indexOf(" "+a+" ")!=-1},setClass:function(a){this._.className=a;return this},addClass:function(a){var b=" "+this._.className+" ";if(b.indexOf(" "+a+" ")==-1)this._.className+=(b===" "?"":" ")+a;return this},removeClass:function(a){this._.className= (" "+this._.className+" ").replace(" "+a+" "," ").trim();return this},toggleClass:function(a){return this[this.hasClass(a)?"removeClass":"addClass"](a)},radioClass:function(a){this.siblings().each("removeClass",a);return this.addClass(a)}});s.include({set:function(a,b){if(typeof a==="string"){var c={};c[a]=b;a=c}var d;c=this._;for(d in a){d in c||c.setAttribute(d,""+a[d]);c[d]=a[d]}return this},get:function(a){var b=this._;a=b[a]||b.getAttribute(a);return a===""?null:a},has:function(a){return this.get(a)!== null},erase:function(a){this._.removeAttribute(a);return this},hidden:function(){return this.getStyle("display")==="none"},visible:function(){return!this.hidden()},hide:function(){if(this.visible()){this._d=this.getStyle("display");this._.style.display="none"}return this},show:function(){if(this.hidden()){var a=this._,b=a.tagName=="DIV"?"block":"inline";a.style.display=this._d=="none"?b:this._d||b}return this},toggle:function(a,b){return this[this.visible()?"hide":"show"](a,b)},radio:function(a,b){this.siblings().each("hide", a,b);return this.show()}});s.include({document:function(){return n(this._.ownerDocument)},window:function(){return this.document().window()},size:function(){return{x:this._.offsetWidth,y:this._.offsetHeight}},position:function(){var a=this._.getBoundingClientRect(),b=this.document()._.documentElement,c=this.window().scrolls();return{x:a.left+c.x-b.clientLeft,y:a.top+c.y-b.clientTop}},scrolls:function(){return{x:this._.scrollLeft,y:this._.scrollTop}},dimensions:function(){var a=this.size(),b=this.scrolls(), c=this.position();return{top:c.y,left:c.x,width:a.x,height:a.y,scrollLeft:b.x,scrollTop:b.y}},overlaps:function(a){var b=this.position(),c=this.size();return a.x>b.x&&a.x<b.x+c.x&&a.y>b.y&&a.y<b.y+c.y},setWidth:function(a){var b=this._.style;b.width=a+"px";b.width=2*a-this._.offsetWidth+"px";return this},setHeight:function(a){var b=this._.style;b.height=a+"px";b.height=2*a-this._.offsetHeight+"px";return this},resize:function(a,b){if(x(a)){b=a.y;a=a.x}return this.setWidth(a).setHeight(b)},moveTo:function(a, b){if(x(a)){b=a.y;a=a.x}return this.setStyle({left:a+"px",top:b+"px"})},scrollTo:function(a,b){if(x(a)){b=a.y;a=a.x}this._.scrollLeft=a;this._.scrollTop=b;return this},scrollThere:function(a){this.window().scrollTo(this,a);return this}});var X=J({});ha("on",/(\\$listeners\\.push\\((\\w+?)\\);)/,\'$1$2.e=$2.n=$2.e==="rightclick"?"contextmenu":$2.e;\'+(H.Gecko?\'if($2.n==="mousewheel")$2.n="DOMMouseScroll";\':"")+(H.Konqueror?\'if($2.n==="contextmenu")$2.n="rightclick";\':"")+\'$2.w=function(){var a=$A(arguments),_;$2.r&&$2.r!=="stopEvent"?a.shift():_=a[0]=new RightJS.Event(a[0],this);$2.f.apply($2.t,a.concat($2.a))===false&&_.stop()};$2.t=this;\'+ (C?\'$2.w=$2.w.bind(this);this._.attachEvent("on"+$2.n,$2.w);\':"this._.addEventListener($2.n,$2.w,false);"));ha("stopObserving",/(function\\s*\\((\\w+)\\)\\s*\\{\\s*)(return\\s*)([^}]+)/m,"$1var r=$4;if(!r)"+(C?\'this._.detachEvent("on"+$2.n,$2.w);\':"this._.removeEventListener($2.n,$2.w,false);")+"$3 r");ha("fire",/(\\w+)(\\s*=\\s*(\\w+).shift\\(\\))/,"$1$2;$1=$1 instanceof RightJS.Event?$1:new RightJS.Event($1,Object.merge({target:this._},$3[0]));$1.currentTarget=this");ha("fire",/((\\w+)\\.e\\s*===\\s*(\\w+))([^}]+\\2\\.f\\.apply)[^}]+?\\.concat\\(\\w+\\)\\)/, \'$1.type$4(this,(($2.r&&$1.r!=="stopEvent")?[]:[$3]).concat($2.a))\');X.stopEvent=function(a){a.stop()};s.include(X);Y.include(X);ca.include(X);aa(ca[q],S("blur focus scroll resize load"));Ja("click rightclick contextmenu mousedown mouseup mouseover mouseout mousemove keypress keydown keyup");[s,Y].each("include",{first:function(a){return n(this._.querySelector(Ka(a,this)))},find:function(a){return o(this._.querySelectorAll(Ka(a,this))).map(n)}});s.include({match:function(a){var b=this._.tagName=== "HTML"?this._.ownerDocument:this.parents().last();a=n(b||ta("p").insert(this)).find(a).include(this);b||this.remove();return a}});[ca,Y].each(function(a){a=a[q];var b=a.on;a.on=function(c){if(c=="ready"&&!this._wR){var d=this._,e=this.fire.bind(this,"ready");d=d.nodeType==9?d:d.document;"readyState"in d?function(){["loaded","complete"].includes(d.readyState)?e():arguments.callee.delay(50)}():d.addEventListener("DOMContentLoaded",e,false);this._wR=true}return b.apply(this,arguments)};aa(a,["ready"])}); B(s[q],{subNodes:"children",sizes:"size",select:"find"});B(Y[q],{select:"find"});B(ca[q],{sizes:"size"});var wa=j.Form=O.FORM=new T(s,{initialize:function(a){a=a||{};var b="remote"in a,c=a;if(x(a)){c="form";a=u.without(a,"remote")}this.$super(c,a);b&&this.remotize()},elements:function(){return this.find("input,button,select,textarea")},inputs:function(){return this.elements().filter(function(a){return!["submit","button","reset","image",null].includes(a._.type)})},input:function(a){return n(this._[a])}, focus:function(){var a=this.inputs().first(function(b){return b._.type!=="hidden"});a&&a.focus();return this},blur:function(){this.elements().each("blur");return this},disable:function(){this.elements().each("disable");return this},enable:function(){this.elements().each("enable");return this},values:function(){var a={},b,c,d;this.inputs().each(function(e){d=e._;c=d.name;if(!d.disabled&&c&&(!["checkbox","radio"].includes(d.type)||d.checked)){b=e.getValue();if(c.endsWith("[]"))b=(a[c]||[]).concat([b]); a[c]=b}});return a},serialize:function(){return u.toQueryString(this.values())},submit:function(){this._.submit();return this},reset:function(){this._.reset();return this}});Ja("submit reset focus blur disable enable change");B(wa[q],{getElements:"elements"});var tb=s[q].insert,Za=j.Input=O.INPUT=O.BUTTON=O.SELECT=O.TEXTAREA=O.OPTGROUP=new T(s,{initialize:function(a,b){if(!a||x(a)){b=a||{};if(/textarea|select/.test(b.type||"")){a=b.type;delete b.type}else a="input"}this.$super(a,b)},form:function(){return n(this._.form)}, insert:function(a,b){tb.call(this,a,b);this._.tagName==="SELECT"&&L(a)&&o(this._.getElementsByTagName("option")).each(function(c){c.selected=!!c.getAttribute("selected")});return this},update:function(a){return this.clean().insert(a)},getValue:function(){return this._.type=="select-multiple"?o(this._.getElementsByTagName("option")).map(function(a){return a.selected?a.value:null}).compact():this._.value},setValue:function(a){if(this._.type=="select-multiple"){a=Q(a).map(M);o(this._.getElementsByTagName("option")).each(function(b){b.selected= a.includes(b.value)})}else this._.value=a;return this},value:function(a){return this[a===undefined?"getValue":"setValue"](a)},focus:function(){this._.focus();this.focused=true;H.IE&&this.fire("focus",{bubbles:false});return this},blur:function(){this._.blur();this.focused=false;H.IE&&this.fire("blur",{bubbles:false});return this},select:function(){this._.select();return this.focus()},disable:function(){this._.disabled=true;return this.fire("disable")},enable:function(){this._.disabled=false;return this.fire("enable")}, disabled:function(a){return a===undefined?this._.disabled:this[a?"disable":"enable"]()},checked:function(a){if(a===undefined)a=this._.checked;else{this._.checked=a;a=this}return a}});s[q].fire=eval("["+X.fire.toString().replace(/(\\w+)(\\s*=\\s*\\w+\\.shift[\\s\\S]+)(return this)/m,"$1$2var p=!$1.stopped&&this.parent&&this.parent();p&&p.fire&&p.fire($1);$3")+"]")[0];if(H.IE){r.attachEvent("onfocusin",ia);r.attachEvent("onfocusout",ia)}else{r.addEventListener("focus",ia,true);r.addEventListener("blur",ia, true)}if(!Ma("onsubmit","form")){B=function(a){var b=n(a),c=b.target._,d=c.type;c=c.form;var e;if(c&&(e=n(c).parent())&&(a.keyCode===13&&(d==="text"||d==="password")||a.type==="click"&&(d==="submit"||d==="image"))){b.type="submit";b.target=n(c);e.fire(b)}};r.attachEvent("onclick",B);r.attachEvent("onkeypress",B)}if(!Ma("onchange","input")){var $a=function(a){var b=a._,c=b.type;return c==="radio"||c==="checkbox"?b.checked:a.getValue()},ab=function(a,b){var c=b.parent(),d=$a(b);if(c&&""+b._prev_value!== ""+d){b._prev_value=d;a.type="change";c.fire(a)}};B=function(a){a=n(a);var b=a.target,c=b._.type,d=b._.tagName,e=c==="radio"||c==="checkbox";if(a.type==="click"&&(e||d==="SELECT")||a.type==="keydown"&&(a.keyCode==13&&d!=="TEXTAREA"||c==="select-multiple"))ab(a,b)};r.attachEvent("onclick",B);r.attachEvent("onkeydown",B);r.attachEvent("onfocusout",function(a){a=n(a);var b=a.target;b instanceof Za&&ab(a,b)});r.attachEvent("onbeforeactivate",function(a){a=n(a).target;if(a instanceof Za)a._prev_value= $a(a)})}[s,Y].each("include",{delegate:function(a){var b=Na(arguments),c,d,e;for(c in b){d=0;for(e=b[c];d<e.length;d++){this.on(a,gb(c,e[d],this));I(this.$listeners.last(),{dr:c,dc:e[d][0]})}}return this},undelegate:function(){Oa(arguments,this).each(function(a){this.stopObserving(a.n,a.f)},this);return this},delegates:function(){return!!Oa(arguments,this).length}});u.each({on:"delegate",stopObserving:"undelegate",observes:"delegates"},function(a,b){M[q][a]=function(){var c=n(r),d=o(arguments);d.splice(1, 0,""+this);d=c[b].apply(c,d);return d===c?this:d}});var bb=M[q].on;M[q].on=function(a){if(x(a))for(var b in a)bb.apply(this,[b].concat([a[b]]));else bb.apply(this,arguments);return this};pa.each(function(a){M[q]["on"+a.capitalize()]=function(){return this.on.apply(this,[a].concat(o(arguments)))}});var t=j.Xhr=new E(fa,{extend:{EVENTS:S("success failure complete request cancel create"),Options:{headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript,text/html,application/xml,text/xml,*/*"}, method:"post",encoding:"utf-8",async:true,evalScripts:false,evalResponse:false,evalJS:true,evalJSON:true,secureJSON:true,urlEncoded:true,spinner:null,spinnerFx:"fade",params:null,iframed:false,jsonp:false},load:function(a,b){return(new this(a,u.merge({method:"get"},b))).send()}},initialize:function(a,b){this.initCallbacks();this.url=a;I(this.$super(b),this.options);if(t.Options.spinner&&n(this.spinner)===n(t.Options.spinner))this.spinner=null},setHeader:function(a,b){this.headers[a]=b;return this}, getHeader:function(a){var b;try{b=this.xhr.getResponseHeader(a)}catch(c){}return b},successful:function(){return this.status>=200&&this.status<300},send:function(a){var b={},c=this.url,d=this.method.toLowerCase(),e=this.headers,f;if(d=="put"||d=="delete"){b._method=d;d="post"}b=this.prepareData(this.params,this.prepareParams(a),b);this.urlEncoded&&d=="post"&&!e["Content-type"]&&this.setHeader("Content-type","application/x-www-form-urlencoded;charset="+this.encoding);if(d=="get"){if(b)c+=(c.includes("?")? "&":"?")+b;b=null}a=this.xhr=this.createXhr();this.fire("create");a.open(d,c,this.async);a.onreadystatechange=this.stateChanged.bind(this);for(f in e)a.setRequestHeader(f,e[f]);a.send(b);this.fire("request");this.async||this.stateChanged();return this},update:function(a,b){return this.onSuccess(function(c){a.update(c.text)}).send(b)},cancel:function(){var a=this.xhr;if(!a||a.canceled)return this;a.abort();a.onreadystatechange=ba();a.canceled=true;return this.fire("cancel")},fire:function(a){return this.$super(a, this,this.xhr)},createXhr:function(){if(this.jsonp)return new t.JSONP(this);else if(this.form&&this.form.first("input[type=file]"))return new t.IFramed(this.form);else try{return new XMLHttpRequest}catch(a){return new ActiveXObject("MSXML2.XMLHTTP")}},prepareParams:function(a){if(a&&a instanceof wa){this.form=a;a=a.values()}return a},prepareData:function(){return o(arguments).map(function(a){L(a)||(a=u.toQueryString(a));return a.blank()?null:a}).compact().join("&")},stateChanged:function(){var a= this.xhr;if(!(a.readyState!=4||a.canceled)){try{this.status=a.status}catch(b){this.status=0}this.text=this.responseText=a.responseText;this.xml=this.responseXML=a.responseXML;this.fire("complete").fire(this.successful()?"success":"failure")}},tryScripts:function(){var a=this.getHeader("Content-type");if(this.evalResponse||this.evalJS&&/(ecma|java)script/i.test(a))Ra(this.text);else if(/json/.test(a)&&this.evalJSON)this.json=this.responseJSON=this.sanitizedJSON();else this.evalScripts&&this.text.evalScripts()}, sanitizedJSON:function(){try{return JSON.parse(this.text)}catch(a){if(P.JSON||!/^[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]*$/.test(this.text.replace(/\\\\./g,"@").replace(/"[^"\\\\\\n\\r]*"/g,""))){if(this.secureJSON)throw"JSON error: "+this.text;return null}}return eval("("+this.text+")")},initCallbacks:function(){this.on({success:"tryScripts",create:"showSpinner",complete:"hideSpinner",cancel:"hideSpinner"});t.EVENTS.each(function(a){this.on(a,function(){t.fire(a,this,this.xhr)})},this)},showSpinner:function(){t.showSpinner.call(this, this)},hideSpinner:function(){t.hideSpinner.call(this,this)}});I(J(t),{counter:0,showSpinner:function(a){t.trySpinner(a,"show")},hideSpinner:function(a){t.trySpinner(a,"hide")},trySpinner:function(a,b){var c=a||t.Options,d=n(c.spinner);d&&d[b](c.spinnerFx,{duration:100})},countIn:function(){t.counter++;t.showSpinner()},countOut:function(){t.counter--;t.counter<1&&t.hideSpinner()}}).on({create:"countIn",complete:"countOut",cancel:"countOut"});wa.include({send:function(a){a=a||{};a.method=a.method|| this._.method||"post";(new t(this._.action||r.location.href,a)).onComplete(this.enable.bind(this)).send(this);this.disable.bind(this).delay(1);return this},remotize:function(a){if(!this.observes("submit",qa)){this.on("submit",qa,a);this.remote=true}return this},unremotize:function(){this.stopObserving("submit",qa);this.remote=false;return this}});s.include({load:function(a,b){(new t(a,u.merge({method:"get"},b))).update(this);return this}});t.Dummy={open:ba(),abort:ba(),setRequestHeader:ba(),onreadystatechange:ba()}; t.IFramed=new E({include:t.Dummy,initialize:function(a){this.form=a;this.id="xhr_"+(new Date).getTime();a.insert(\'<i><iframe name="\'+this.id+\'" id="\'+this.id+\'" width="0" height="0" frameborder="0" src="about:blank"></iframe></i>\',"after");n(this.id).on("load",this.onLoad.bind(this))},send:function(){this.form.set("target",this.id).submit()},onLoad:function(){this.status=200;this.readyState=4;try{this.responseText=P[this.id].document.documentElement.innerHTML}catch(a){}this.onreadystatechange()}}); t.JSONP=new E({include:t.Dummy,prefix:"jsonp",initialize:function(a){this.xhr=a;this.name=this.prefix+(new Date).getTime();this.param=(L(a.jsonp)?a.jsonp:"callback")+"="+this.name;this.script=ta("script",{charset:a.encoding,async:a.async})},open:function(a,b){this.url=b;this.method=a},send:function(a){P[this.name]=this.finish.bind(this);this.script.set("src",this.url+(this.url.include("?")?"&":"?")+this.param+"&"+a).insertTo(hb("script").last(),"after")},finish:function(a){this.status=200;this.readyState= 4;this.xhr.json=this.xhr.responseJSON=a;this.onreadystatechange()}});var v=j.Fx=new E(fa,{extend:{EVENTS:S("start finish cancel"),Durations:{"short":200,normal:400,"long":800},Options:{fps:H.IE?40:60,duration:"normal",transition:"Sin",queue:true},Transitions:{Sin:function(a){return-(w.cos(w.PI*a)-1)/2},Cos:function(a){return w.asin((a-0.5)*2)/w.PI+0.5},Exp:function(a){return w.pow(2,8*(a-1))},Log:function(a){return 1-w.pow(2,-8*a)},Lin:function(a){return a}},ch:[],cr:[]},initialize:function(a,b){this.$super(b); if(this.element=a=n(a)){var c=ua(a);this.ch=v.ch[c]=v.ch[c]||[];this.cr=v.cr[c]=v.cr[c]||[]}},start:function(){if(this.queue(arguments))return this;this.prepare.apply(this,arguments);var a=this.options,b=v.Durations[a.duration]||a.duration;this.transition=v.Transitions[a.transition]||a.transition;this.steps=(b/1E3*this.options.fps).ceil();this.number=1;this.cr&&this.cr.push(this);return this.fire("start",this).startTimer()},finish:function(){return this.stopTimer().unreg().fire("finish").next()}, cancel:function(){this.ch.clean();return this.stopTimer().unreg().fire("cancel")},pause:function(){return this.stopTimer()},resume:function(){return this.startTimer()},prepare:function(){},render:function(){},step:function(a){if(a.number>a.steps)a.finish();else{if(!a.w){a.w=true;a.render(a.transition(a.number/a.steps));a.w=false}a.number++}},startTimer:function(){this.timer=this.step.periodical((1E3/this.options.fps).round(),this);return this},stopTimer:function(){this.timer&&this.timer.stop();return this}, queue:function(a){var b=this.ch,c=this.options.queue;if(!b||this.$ch)return this.$ch=false;c&&b.push([a,this]);return c&&b[0][1]!==this},next:function(){var a=this.ch,b=a.shift();if(b=a[0]){b[1].$ch=true;b[1].start.apply(b[1],b[0])}return this},unreg:function(){var a=this.cr;a&&a.splice(a.indexOf(this),1);return this}});M.COLORS={maroon:"#800000",red:"#ff0000",orange:"#ffA500",yellow:"#ffff00",olive:"#808000",purple:"#800080",fuchsia:"#ff00ff",white:"#ffffff",lime:"#00ff00",green:"#008000",navy:"#000080", blue:"#0000ff",aqua:"#00ffff",teal:"#008080",black:"#000000",silver:"#c0c0c0",gray:"#808080",brown:"#a52a2a"};M.include({toHex:function(){var a=/^#(\\w)(\\w)(\\w)$/.exec(this);return a=a?"#"+a[1]+a[1]+a[2]+a[2]+a[3]+a[3]:(a=/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/.exec(this))?"#"+a.slice(1).map(function(b){b=(b-0).toString(16);return b.length==1?"0"+b:b}).join(""):M.COLORS[this]||this},toRgb:function(a){var b=/#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/i.exec(this.toHex()||"");if(b){b=b.slice(1).map("toInt",16); b=a?b:"rgb("+b+")"}return b}});B=s.prototype;var cb=B.hide,xa=B.show,db=B.remove,ub=B.scrollTo;s.include({stop:function(){(v.cr[ua(this)]||[]).each("cancel");return this},hide:function(a,b){return a&&this.visible()?this.fx(a,["out",b]):cb.call(this)},show:function(a,b){return a&&!this.visible()?this.fx(a,["in",b]):xa.call(this)},remove:function(a,b){return a&&this.visible()?this.fx(a,["out",u.merge(b,{onFinish:db.bind(this)})]):db.call(this)},morph:function(a,b){return this.fx("morph",[a,b||{}])}, highlight:function(){return this.fx("highlight",arguments)},fade:function(){return this.fx("fade",arguments)},slide:function(){return this.fx("slide",arguments)},scroll:function(a,b){return this.fx("scroll",[a,b||{}])},scrollTo:function(a,b){return x(b)?this.scroll(a,b):ub.apply(this,arguments)},fx:function(a,b){var c=o(b).compact(),d=x(c.last())?c.pop():{};d=new (v[a.capitalize()])(this,d);d.start.apply(d,c);return this}});var ka=S("Top Left Right Bottom");v.Morph=new E(v,{prepare:function(a){var b= [],c=["Style","Color","Width"],d,e,f;for(d in a)if(d.startsWith("border"))for(e=0;e<c.length;e++)for(f=0;f<ka.length;f++)b.push("border"+ka[f]+c[e]);else if(d=="margin"||d=="padding"){e=b;f=d;for(var i=ka,z=0;z<i.length;z++)e.push(f+i[z])}else if(d.startsWith("background")){e=b;f=["Color","Position","PositionX","PositionY"];for(i=0;i<f.length;i++)e.push("background"+f[i])}else d=="opacity"&&H.IE?b.push("filter"):b.push(d);c=this._cloneStyle(this.element,b);a=this._endStyle(a,b);b=this.element;d=[]; var k;for(k in a)if((k=="width"||k=="height")&&c[k]=="auto")c[k]=b._["offset"+k.capitalize()]+"px";if(a.filter&&!c.filter)c.filter="alpha(opacity=100)";for(e=0;e<4;e++){z=ka[e];f="border"+z+"Style";i="border"+z+"Width";z="border"+z+"Color";if(f in c&&c[f]!=a[f]){var ga=b._.style;if(c[f]=="none")ga[i]="0px";ga[f]=a[f];if(da(c[z]))ga[z]=b.getStyle("Color")}}for(k in a){if(a[k]!==c[k]&&!d.includes(k)&&/color/i.test(k)){if(H.Opera){a[k]=a[k].replace(/"/g,"");c[k]=c[k].replace(/"/g,"")}da(a[k])||(a[k]= a[k].toRgb());da(c[k])||(c[k]=c[k].toRgb());if(!a[k]||!c[k])a[k]=c[k]=""}if(/\\d/.test(a[k])&&!/\\d/.test(c[k]))c[k]=a[k].replace(/[\\d\\.\\-]+/g,"0");if(a[k]===c[k]||d.includes(k)||!/\\d/.test(c[k])||!/\\d/.test(a[k])){delete a[k];delete c[k]}}this.before=Pa(c);this.after=Pa(a)},render:function(a){var b,c,d,e=this.element._.style,f,i,z;for(f in this.after){b=this.before[f];c=this.after[f];i=0;for(z=c.length;i<z;i++){d=b[i]+(c[i]-b[i])*a;if(c.r)d=w.round(d);c.t[i*2+1]=d}e[f]=c.t.join("")}},_endStyle:function(a, b){var c=this.element,d=c.clone().setStyle("position:absolute;z-index:-1;visibility:hidden").setWidth(c.size().x).setStyle(a);c.parent()&&c.insert(d,"before");c=this._cloneStyle(d,b);d.remove();return c},_cloneStyle:function(a,b){for(var c=0,d=b.length,e=a.computedStyles(),f={},i;c<d;c++){i=b[c];if(i in e)f[i]=""+e[i];if(i==="opacity")f[i]=f[i].replace(",",".")}return f}});v.Highlight=new E(v.Morph,{extend:{Options:u.merge(v.Options,{color:"#FF8",transition:"Exp"})},prepare:function(a,b){var c=this.element, d=c._.style,e=b||c.getStyle("backgroundColor");if(da(e)){this.onFinish(function(){d.backgroundColor="transparent"});e=[c].concat(c.parents()).map(function(f){return(f=f.getStyle("backgroundColor"))&&!da(f)?f:null}).compact().first()||"#FFF"}d.backgroundColor=a||this.options.color;return this.$super({backgroundColor:e})}});v.Twin=new E(v.Morph,{finish:function(){this.how=="out"&&cb.call(this.element);return this.$super()},setHow:function(a){this.how=a||"toggle";if(this.how=="toggle")this.how=this.element.visible()? "out":"in"}});v.Slide=new E(v.Twin,{extend:{Options:u.merge(v.Options,{direction:"top"})},prepare:function(a){this.setHow(a);var b=xa.call(this.element);this.size=b.size();this.styles={};S("overflow height width marginTop marginLeft").each(function(c){this.styles[c]=b._.style[c]},this);b._.style.overflow="hidden";this.onFinish("_getBack").onCancel("_getBack");return this.$super(this._getStyle(this.options.direction))},_getBack:function(){this.element.setStyle(this.styles)},_getStyle:function(a){var b= {},c=this.size,d=this.styles.marginLeft.toFloat()||0,e=this.styles.marginTop.toFloat()||0;if(this.how=="out"){b[["top","bottom"].includes(a)?"height":"width"]="0px";if(a=="right")b.marginLeft=d+c.x+"px";else if(a=="bottom")b.marginTop=e+c.y+"px"}else if(this.how=="in"){var f=this.element._.style;if(["top","bottom"].includes(a)){b.height=c.y+"px";f.height="0px"}else{b.width=c.x+"px";f.width="0px"}if(a=="right"){b.marginLeft=d+"px";f.marginLeft=d+c.x+"px"}else if(a=="bottom"){b.marginTop=e+"px";f.marginTop= e+c.y+"px"}}return b}});v.Fade=new E(v.Twin,{prepare:function(a){this.setHow(a);this.how=="in"&&xa.call(this.element.setStyle({opacity:0}));return this.$super({opacity:Sa(a)?a:this.how=="in"?1:0})}});v.Scroll=new E(v,{initialize:function(a,b){a=n(a);this.$super(a instanceof ca?a._.document[H.WebKit?"body":"documentElement"]:a,b)},prepare:function(a){var b=this.before={},c=this.element._;this.after=a;if("x"in a)b.x=c.scrollLeft;if("y"in a)b.y=c.scrollTop},render:function(a){var b=this.before,c;for(c in b)this.element._["scroll"+ (c=="x"?"Left":"Top")]=b[c]+(this.after[c]-b[c])*a}});j.Cookie=new E({include:V,extend:{set:function(a,b,c){return(new this(a,c)).set(b)},get:function(a){return(new this(a)).get()},remove:function(a){return(new this(a)).remove()},enabled:function(){r.cookie="__t=1";return r.cookie.indexOf("__t=1")!=-1},Options:{secure:false,document:r}},initialize:function(a,b){this.name=a;this.setOptions(b)},set:function(a){a=encodeURIComponent(a);var b=this.options;if(b.domain)a+="; domain="+b.domain;if(b.path)a+= "; path="+b.path;if(b.duration){var c=new Date;c.setTime(c.getTime()+b.duration*24*60*60*1E3);a+="; expires="+c.toGMTString()}if(b.secure)a+="; secure";b.document.cookie=this.name+"="+a;return this},get:function(){var a=this.options.document.cookie.match("(?:^|;)\\\\s*"+RegExp.escape(this.name)+"=([^;]*)");return a?decodeURIComponent(a[1]):null},remove:function(){this.options.duration=-1;return this.set("")}});if(j.Browser.OLD)n=j.$=function(a){return function(b){var c=a(b);if(c&&c instanceof j.Element&& j.isString(b)&&c._.id!==b)c=j.$(r).first("#"+b);return c}}(j.$);j.$E("p").getBoundingClientRect||j.Element.include({position:function(){var a=this._,b=a.offsetTop,c=a.offsetLeft;for(a=a.offsetParent;a;){b+=a.offsetTop;c+=a.offsetLeft;a=a.offsetParent}return{x:c,y:b}}});r.querySelector||function(a){function b(g){if(!ya[g]){var h,p,l,A,N,D,y={};for(l=g;h=l.match(vb);){A=A||{};A[h[1]]={o:h[2],v:h[5]||h[6]};l=l.replace(h[0],"")}if(h=l.match(ga)){N=h[1];D=h[3]==""?null:h[3];l=l.replace(h[0],"")}h=(l.match(i)|| [1,null])[1];p=(l.match(z)||"*").toString().toUpperCase();l=(l.match(k)||[1,""])[1].split(".").without("");y.tag=p;if(h||l.length||A||N){var F="function(y){var e,r=[],z=0,x=y.length;for(;z<x;z++){e=y[z];_f_}return r}",G=function(U){F=F.replace("_f_",U+"_f_")};h&&G("if(e.id!=i)continue;");l.length&&G(\'if(e.className){var n=e.className.split(" ");if(n.length==1&&c.indexOf(n[0])==-1)continue;else{for(var i=0,l=c.length,b=false;i<l;i++)if(n.indexOf(c[i])==-1){b=true;break;}if(b)continue;}}else continue;\'); A&&G(\'var p,o,v,k,b=false;for (k in a){p=e.getAttribute(k)||"";o=a[k].o||"";v=a[k].v||"";if((o===""&&e.getAttributeNode(k)===null)||(o==="="&&p!=v)||(o==="*="&&!p.includes(v))||(o==="^="&&!p.startsWith(v))||(o==="$="&&!p.endsWith(v))||(o==="~="&&!p.split(" ").includes(v))||(o==="|="&&!p.split("-").includes(v))){b=true;break;}}if(b){continue;}\');N in e&&G("if(!S[P].call(e,V,S))continue;");y.filter=eval("[function(i,t,c,a,P,V,S,s){return eval(\'[\'+s+\']\')[0]}]")[0](h,p,l,A,N,D,e,F.replace("_f_","r.push(e)"))}ya[g]= y}return ya[g]}function c(g){var h=g.join("");if(!za[h]){for(var p=0;p<g.length;p++)g[p][1]=b(g[p][1]);var l=ua,A=function(D){for(var y=[],F=[],G,U=0,Z=D.length;U<Z;U++){G=l(D[U]);if(!F[G]){y.push(D[U]);F[G]=true}}return y},N=function(D,y){var F=d[y[0]](D,y[1].tag);return y[1].filter?y[1].filter(F):F};za[h]=function(D){for(var y,F,G=0,U=g.length;G<U;G++)if(G===0)y=N(D,g[G]);else{if(G>1)y=A(y);for(var Z=0;Z<y.length;Z++){F=N(y[Z],g[G]);F.unshift(1);F.unshift(Z);y.splice.apply(y,F);Z+=F.length-3}}return g.length> 1?A(y):y}}return za[h]}var d={" ":function(g,h){return a.$A(g.getElementsByTagName(h))},">":function(g,h){for(var p=[],l=g.firstChild;l;){if(h=="*"||l.tagName==h)p.push(l);l=l.nextSibling}return p},"+":function(g,h){for(;g=g.nextSibling;)if(g.tagName)return h=="*"||g.tagName==h?[g]:[];return[]},"~":function(g,h){for(var p=[];g=g.nextSibling;)if(h=="*"||g.tagName==h)p.push(g);return p}},e={checked:function(){return this.checked},disabled:function(){return this.disabled},empty:function(){return!(this.innerText|| this.innerHTML||this.textContent||"").length},"first-child":function(g){for(var h=this;h=h.previousSibling;)if(h.tagName&&(!g||h.tagName==g))return false;return true},"first-of-type":function(g,h){return h["first-child"].call(this,this.tagName)},"last-child":function(g){for(var h=this;h=h.nextSibling;)if(h.tagName&&(!g||h.tagName==g))return false;return true},"last-of-type":function(g,h){return h["last-child"].call(this,this.tagName)},"only-child":function(g,h){return h["first-child"].call(this,g)&& h["last-child"].call(this,g)},"only-of-type":function(g,h){return h["only-child"].call(this,this.tagName,h)},"nth-child":function(g,h,p){if(!this.parentNode)return false;g=g.toLowerCase();if(g=="n")return true;if(g.includes("n")){var l=h=0;if(m=g.match(/^([+\\-]?\\d*)?n([+\\-]?\\d*)?$/)){h=m[1]=="-"?-1:parseInt(m[1],10)||1;l=parseInt(m[2],10)||0}g=1;for(var A=this;A=A.previousSibling;)if(A.tagName&&(!p||A.tagName==p))g++;return(g-l)%h===0&&(g-l)/h>=0}else return h.index.call(this,g.toInt()-1,h,p)},"nth-of-type":function(g, h){return h["nth-child"].call(this,g,h,this.tagName)},index:function(g,h,p){g=a.isString(g)?g.toInt():g;h=this;for(var l=0;h=h.previousSibling;)if(h.tagName&&(!p||h.tagName==p)&&++l>g)return false;return l==g}},f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?/g,i=/#([\\w\\-_]+)/,z=/^[\\w\\*]+/,k=/\\.([\\w\\-\\._]+)/,ga=/:([\\w\\-]+)(\\((.+?)\\))*$/,vb=/\\[((?:[\\w\\-]*:)?[\\w\\-]+)\\s*(?:([!\\^$*~|]?=)\\s*(([\'"])([^\\4]*?)\\4|([^\'"][^\\]]*?)))?\\]/,ya= {},za={},Aa={},la={first:function(g){return this.find(g)[0]},find:function(g){var h=this._;g=g||"*";if(!Aa[g]){f.lastIndex=0;for(var p=[],l=[],A=" ",N,D;N=f.exec(g);){D=N[1];if(D=="+"||D==">"||D=="~")A=D;else{l.push([A,D]);A=" "}if(N[2]){p.push(c(l));l=[]}}p.push(c(l));Aa[g]=p}g=Aa[g];p=[];l=0;for(A=g.length;l<A;l++)p=p.concat(g[l](h));return p.map(a.$)}};la.select=la.find;a.Element.include(la);a.Document.include(la)}(j);I(P,u.without(j,"version","modules"));return j}(window,document,Object,Array, String,Function,Number,Math);');
|
@@ -10,7 +10,7 @@
|
|
10
10
|
* Copyright (C) 2010 Nikolay Nemshilov
|
11
11
|
*/
|
12
12
|
var RightJS = (function(window, document, Object, Array, String, Function, Number, Math) {
|
13
|
-
|
13
|
+
|
14
14
|
/**
|
15
15
|
* The framework description object
|
16
16
|
*
|
@@ -20,7 +20,7 @@ var RightJS = function(value) {
|
|
20
20
|
return value; // <- a dummy method to emulate the safe-mode
|
21
21
|
};
|
22
22
|
|
23
|
-
RightJS.version = "2.0.0
|
23
|
+
RightJS.version = "2.0.0";
|
24
24
|
RightJS.modules =["core", "dom", "form", "events", "xhr", "fx", "cookie"];
|
25
25
|
|
26
26
|
|
@@ -39,13 +39,13 @@ RightJS.modules =["core", "dom", "form", "events", "xhr", "fx", "cookie"];
|
|
39
39
|
/**
|
40
40
|
* Some top-level variables to shortify the things
|
41
41
|
*/
|
42
|
-
var
|
42
|
+
var
|
43
43
|
PROTO = 'prototype', A_proto = Array[PROTO],
|
44
44
|
to_s = Object[PROTO].toString, slice = A_proto.slice,
|
45
45
|
dummy = function() { return function() {}; },
|
46
46
|
HTML = document.documentElement, UID = 1, // !#server
|
47
|
-
Wrappers_Cache = [], UID_KEY = '
|
48
|
-
|
47
|
+
Wrappers_Cache = [], UID_KEY = '_rjs_id', // !#server
|
48
|
+
|
49
49
|
/**
|
50
50
|
* extends the first object with the keys and values of the second one
|
51
51
|
*
|
@@ -57,7 +57,7 @@ Wrappers_Cache = [], UID_KEY = '_rid'+ new Date().getTime(), // !#server
|
|
57
57
|
* @param Boolean flag if the function should not overwrite intersecting values
|
58
58
|
* @return Object extended destination object
|
59
59
|
*/
|
60
|
-
$ext = RightJS.$ext = function(dest, source, dont_overwrite) {
|
60
|
+
$ext = RightJS.$ext = function(dest, source, dont_overwrite) {
|
61
61
|
var src = source || {}, key;
|
62
62
|
|
63
63
|
for (key in src) {
|
@@ -212,7 +212,7 @@ $ = RightJS.$ = function(object) {
|
|
212
212
|
if (typeof object === 'string') {
|
213
213
|
object = document.getElementById(object);
|
214
214
|
}
|
215
|
-
|
215
|
+
|
216
216
|
if (object) {
|
217
217
|
if (UID_KEY in object && object[UID_KEY] in Wrappers_Cache) {
|
218
218
|
object = Wrappers_Cache[object[UID_KEY]];
|
@@ -226,7 +226,7 @@ $ = RightJS.$ = function(object) {
|
|
226
226
|
object = new Window(object);
|
227
227
|
}
|
228
228
|
}
|
229
|
-
|
229
|
+
|
230
230
|
return object;
|
231
231
|
},
|
232
232
|
|
@@ -304,10 +304,10 @@ if (isHash(HTML)) {
|
|
304
304
|
*/
|
305
305
|
var i=0, natives = 'Array Function Number String Date RegExp'.split(' '),
|
306
306
|
include_native = function() {
|
307
|
-
for (var i=0
|
308
|
-
if (isHash(
|
309
|
-
$ext(this[PROTO],
|
310
|
-
$ext(this.Methods,
|
307
|
+
for (var i=0; i < arguments.length; i++) {
|
308
|
+
if (isHash(arguments[i])) {
|
309
|
+
$ext(this[PROTO], arguments[i]);
|
310
|
+
$ext(this.Methods, arguments[i]);
|
311
311
|
}
|
312
312
|
}
|
313
313
|
};
|
@@ -371,7 +371,7 @@ $ext(Object, {
|
|
371
371
|
}
|
372
372
|
return keys;
|
373
373
|
},
|
374
|
-
|
374
|
+
|
375
375
|
/**
|
376
376
|
* extracts the list of the attribute values of the given object
|
377
377
|
*
|
@@ -385,7 +385,7 @@ $ext(Object, {
|
|
385
385
|
}
|
386
386
|
return values;
|
387
387
|
},
|
388
|
-
|
388
|
+
|
389
389
|
/**
|
390
390
|
* Calls the function with every key/value pair on the hash
|
391
391
|
*
|
@@ -398,10 +398,10 @@ $ext(Object, {
|
|
398
398
|
for (var key in object) {
|
399
399
|
callback.call(scope, key, object[key]);
|
400
400
|
}
|
401
|
-
|
401
|
+
|
402
402
|
return object;
|
403
403
|
},
|
404
|
-
|
404
|
+
|
405
405
|
/**
|
406
406
|
* checks if the object-hash has no keys
|
407
407
|
*
|
@@ -412,7 +412,7 @@ $ext(Object, {
|
|
412
412
|
for (var key in object) { return false; }
|
413
413
|
return true;
|
414
414
|
},
|
415
|
-
|
415
|
+
|
416
416
|
/**
|
417
417
|
* returns a copy of the object which contains
|
418
418
|
* all the same keys/values except the key-names
|
@@ -425,16 +425,16 @@ $ext(Object, {
|
|
425
425
|
*/
|
426
426
|
without: function() {
|
427
427
|
var filter = $A(arguments), object = filter.shift(), copy = {}, key;
|
428
|
-
|
428
|
+
|
429
429
|
for (key in object) {
|
430
430
|
if (!filter.includes(key)) {
|
431
431
|
copy[key] = object[key];
|
432
432
|
}
|
433
433
|
}
|
434
|
-
|
434
|
+
|
435
435
|
return copy;
|
436
436
|
},
|
437
|
-
|
437
|
+
|
438
438
|
/**
|
439
439
|
* returns a copy of the object which contains all the
|
440
440
|
* key/value pairs from the specified key-names list
|
@@ -449,21 +449,21 @@ $ext(Object, {
|
|
449
449
|
only: function() {
|
450
450
|
var filter = $A(arguments), object = filter.shift(), copy = {},
|
451
451
|
i=0, length = filter.length;
|
452
|
-
|
452
|
+
|
453
453
|
for (; i < length; i++) {
|
454
454
|
if (filter[i] in object) {
|
455
455
|
copy[filter[i]] = object[filter[i]];
|
456
456
|
}
|
457
457
|
}
|
458
|
-
|
458
|
+
|
459
459
|
return copy;
|
460
460
|
},
|
461
|
-
|
461
|
+
|
462
462
|
/**
|
463
463
|
* merges the given objects and returns the result
|
464
464
|
*
|
465
465
|
* NOTE this method _DO_NOT_ change the objects, it creates a new object
|
466
|
-
* which conatins all the given ones.
|
466
|
+
* which conatins all the given ones.
|
467
467
|
* if there is some keys introspections, the last object wins.
|
468
468
|
* all non-object arguments will be omitted
|
469
469
|
*
|
@@ -481,7 +481,7 @@ $ext(Object, {
|
|
481
481
|
}
|
482
482
|
return object;
|
483
483
|
},
|
484
|
-
|
484
|
+
|
485
485
|
/**
|
486
486
|
* converts a hash-object into an equivalent url query string
|
487
487
|
*
|
@@ -500,6 +500,7 @@ $ext(Object, {
|
|
500
500
|
}
|
501
501
|
}, true);
|
502
502
|
|
503
|
+
|
503
504
|
/**
|
504
505
|
* here are the starndard Math object extends
|
505
506
|
*
|
@@ -524,17 +525,18 @@ var Math_old_random = Math.random;
|
|
524
525
|
* @return Float random between 0 and 1 if there's no arguments or an integer in the given range
|
525
526
|
*/
|
526
527
|
Math.random = function(min, max) {
|
527
|
-
|
528
|
+
|
528
529
|
if (arguments.length === 0) {
|
529
530
|
return Math_old_random();
|
530
531
|
} else if (arguments.length === 1) {
|
531
532
|
max = min;
|
532
533
|
min = 0;
|
533
534
|
}
|
534
|
-
|
535
|
+
|
535
536
|
return ~~(Math_old_random() * (max-min+1) + ~~min);
|
536
537
|
};
|
537
538
|
|
539
|
+
|
538
540
|
/**
|
539
541
|
* The Array class extentions
|
540
542
|
*
|
@@ -550,12 +552,12 @@ var original_sort = A_proto.sort,
|
|
550
552
|
build_loop = function(pre, body, ret) {
|
551
553
|
return eval('[function(c,s){'+
|
552
554
|
'for(var '+pre+'i=0,l=this.length;i<l;i++){'+
|
553
|
-
body.replace('_', 'c.call(s,this[i],i,this)') +
|
555
|
+
body.replace('_', 'c.call(s,this[i],i,this)') +
|
554
556
|
'}' +
|
555
557
|
ret +
|
556
558
|
'}]')[0];
|
557
559
|
},
|
558
|
-
|
560
|
+
|
559
561
|
// JavaScript 1.6 methods recatching up or faking
|
560
562
|
for_each = A_proto.forEach || build_loop('', '_', ''),
|
561
563
|
filter = A_proto.filter || build_loop('r=[],j=0,', 'if(_)r[j++]=this[i]', 'return r'),
|
@@ -572,8 +574,8 @@ last = function(callback, scope) {
|
|
572
574
|
}
|
573
575
|
return null;
|
574
576
|
};
|
575
|
-
|
576
|
-
|
577
|
+
|
578
|
+
|
577
579
|
//
|
578
580
|
// RightJS callbacks magick preprocessing
|
579
581
|
//
|
@@ -581,7 +583,7 @@ last = function(callback, scope) {
|
|
581
583
|
// prepares a correct callback function
|
582
584
|
function guess_callback(argsi, array) {
|
583
585
|
var callback = argsi[0], args = slice.call(argsi, 1), scope = array, attr;
|
584
|
-
|
586
|
+
|
585
587
|
if (isString(callback)) {
|
586
588
|
attr = callback;
|
587
589
|
if (array.length && isFunction(array[0][attr])) {
|
@@ -592,18 +594,18 @@ function guess_callback(argsi, array) {
|
|
592
594
|
} else {
|
593
595
|
scope = args[0];
|
594
596
|
}
|
595
|
-
|
597
|
+
|
596
598
|
return [callback, scope];
|
597
599
|
}
|
598
600
|
|
599
601
|
// calls the given method with preprocessing the arguments
|
600
602
|
function call_method(func, scope, args) {
|
601
603
|
var result;
|
602
|
-
|
604
|
+
|
603
605
|
try {
|
604
606
|
result = func.apply(scope, guess_callback(args, scope));
|
605
607
|
} catch(e) { if (!(e instanceof RightJS.Break)) { throw(e); } }
|
606
|
-
|
608
|
+
|
607
609
|
return result;
|
608
610
|
}
|
609
611
|
|
@@ -616,7 +618,7 @@ function boolean_check(i) {
|
|
616
618
|
function default_sort(a, b) {
|
617
619
|
return a > b ? 1 : a < b ? -1 : 0;
|
618
620
|
}
|
619
|
-
|
621
|
+
|
620
622
|
Array.include({
|
621
623
|
/**
|
622
624
|
* IE fix
|
@@ -634,7 +636,7 @@ Array.include({
|
|
634
636
|
}
|
635
637
|
return -1;
|
636
638
|
},
|
637
|
-
|
639
|
+
|
638
640
|
/**
|
639
641
|
* IE fix
|
640
642
|
* returns the last index of the value in the array
|
@@ -650,7 +652,7 @@ Array.include({
|
|
650
652
|
}
|
651
653
|
return -1;
|
652
654
|
},
|
653
|
-
|
655
|
+
|
654
656
|
/**
|
655
657
|
* returns the first element of the array
|
656
658
|
*
|
@@ -659,7 +661,7 @@ Array.include({
|
|
659
661
|
first: function() {
|
660
662
|
return arguments.length ? call_method(first, this, arguments) : this[0];
|
661
663
|
},
|
662
|
-
|
664
|
+
|
663
665
|
/**
|
664
666
|
* returns the last element of the array
|
665
667
|
*
|
@@ -668,7 +670,7 @@ Array.include({
|
|
668
670
|
last: function() {
|
669
671
|
return arguments.length ? call_method(last, this, arguments) : this[this.length-1];
|
670
672
|
},
|
671
|
-
|
673
|
+
|
672
674
|
/**
|
673
675
|
* returns a random item of the array
|
674
676
|
*
|
@@ -677,7 +679,7 @@ Array.include({
|
|
677
679
|
random: function() {
|
678
680
|
return this.length ? this[Math.random(this.length-1)] : null;
|
679
681
|
},
|
680
|
-
|
682
|
+
|
681
683
|
/**
|
682
684
|
* returns the array size
|
683
685
|
*
|
@@ -686,7 +688,7 @@ Array.include({
|
|
686
688
|
size: function() {
|
687
689
|
return this.length;
|
688
690
|
},
|
689
|
-
|
691
|
+
|
690
692
|
/**
|
691
693
|
* cleans the array
|
692
694
|
* @return Array this
|
@@ -695,7 +697,7 @@ Array.include({
|
|
695
697
|
this.length = 0;
|
696
698
|
return this;
|
697
699
|
},
|
698
|
-
|
700
|
+
|
699
701
|
/**
|
700
702
|
* checks if the array has no elements in it
|
701
703
|
*
|
@@ -704,7 +706,7 @@ Array.include({
|
|
704
706
|
empty: function() {
|
705
707
|
return !this.length;
|
706
708
|
},
|
707
|
-
|
709
|
+
|
708
710
|
/**
|
709
711
|
* creates a copy of the given array
|
710
712
|
*
|
@@ -713,7 +715,7 @@ Array.include({
|
|
713
715
|
clone: function() {
|
714
716
|
return this.slice(0);
|
715
717
|
},
|
716
|
-
|
718
|
+
|
717
719
|
/**
|
718
720
|
* calls the given callback function in the given scope for each element of the array
|
719
721
|
*
|
@@ -726,7 +728,7 @@ Array.include({
|
|
726
728
|
return this;
|
727
729
|
},
|
728
730
|
forEach: for_each,
|
729
|
-
|
731
|
+
|
730
732
|
/**
|
731
733
|
* creates a list of the array items converted in the given callback function
|
732
734
|
*
|
@@ -737,7 +739,7 @@ Array.include({
|
|
737
739
|
map: function() {
|
738
740
|
return call_method(map, this, arguments);
|
739
741
|
},
|
740
|
-
|
742
|
+
|
741
743
|
/**
|
742
744
|
* creates a list of the array items which are matched in the given callback function
|
743
745
|
*
|
@@ -748,7 +750,7 @@ Array.include({
|
|
748
750
|
filter: function() {
|
749
751
|
return call_method(filter, this, arguments);
|
750
752
|
},
|
751
|
-
|
753
|
+
|
752
754
|
/**
|
753
755
|
* creates a list of the array items that are not matching the give callback function
|
754
756
|
*
|
@@ -759,7 +761,7 @@ Array.include({
|
|
759
761
|
reject: function() {
|
760
762
|
return call_method(reject, this, arguments);
|
761
763
|
},
|
762
|
-
|
764
|
+
|
763
765
|
/**
|
764
766
|
* checks if any of the array elements is logically true
|
765
767
|
*
|
@@ -770,7 +772,7 @@ Array.include({
|
|
770
772
|
some: function(value) {
|
771
773
|
return call_method(some, this, value ? arguments : [boolean_check]);
|
772
774
|
},
|
773
|
-
|
775
|
+
|
774
776
|
/**
|
775
777
|
* checks if all the array elements are logically true
|
776
778
|
*
|
@@ -781,7 +783,7 @@ Array.include({
|
|
781
783
|
every: function(value) {
|
782
784
|
return call_method(every, this, value ? arguments : [boolean_check]);
|
783
785
|
},
|
784
|
-
|
786
|
+
|
785
787
|
/**
|
786
788
|
* applies the given lambda to each element in the array
|
787
789
|
*
|
@@ -795,7 +797,7 @@ Array.include({
|
|
795
797
|
this.map.apply(this, arguments).forEach(function(value, i) { this[i] = value; }, this);
|
796
798
|
return this;
|
797
799
|
},
|
798
|
-
|
800
|
+
|
799
801
|
/**
|
800
802
|
* similar to the concat function but it adds only the values which are not on the list yet
|
801
803
|
*
|
@@ -807,7 +809,7 @@ Array.include({
|
|
807
809
|
for (var copy = this.clone(), arg, i=0, j, length = arguments.length; i < length; i++) {
|
808
810
|
arg = arguments[i];
|
809
811
|
arg = ensure_array(arg);
|
810
|
-
|
812
|
+
|
811
813
|
for (j=0; j < arg.length; j++) {
|
812
814
|
if (copy.indexOf(arg[j]) == -1) {
|
813
815
|
copy.push(arg[j]);
|
@@ -816,7 +818,7 @@ Array.include({
|
|
816
818
|
}
|
817
819
|
return copy;
|
818
820
|
},
|
819
|
-
|
821
|
+
|
820
822
|
/**
|
821
823
|
* flats out complex array into a single dimension array
|
822
824
|
*
|
@@ -833,7 +835,7 @@ Array.include({
|
|
833
835
|
});
|
834
836
|
return copy;
|
835
837
|
},
|
836
|
-
|
838
|
+
|
837
839
|
/**
|
838
840
|
* returns a copy of the array whithout any null or undefined values
|
839
841
|
*
|
@@ -842,7 +844,7 @@ Array.include({
|
|
842
844
|
compact: function() {
|
843
845
|
return this.without(null, undefined);
|
844
846
|
},
|
845
|
-
|
847
|
+
|
846
848
|
/**
|
847
849
|
* returns a copy of the array which contains only the unique values
|
848
850
|
*
|
@@ -851,7 +853,7 @@ Array.include({
|
|
851
853
|
uniq: function() {
|
852
854
|
return [].merge(this);
|
853
855
|
},
|
854
|
-
|
856
|
+
|
855
857
|
/**
|
856
858
|
* checks if all of the given values
|
857
859
|
* exists in the given array
|
@@ -868,7 +870,7 @@ Array.include({
|
|
868
870
|
}
|
869
871
|
return true;
|
870
872
|
},
|
871
|
-
|
873
|
+
|
872
874
|
/**
|
873
875
|
* returns a copy of the array without the items passed as the arguments
|
874
876
|
*
|
@@ -882,7 +884,7 @@ Array.include({
|
|
882
884
|
return !filter.includes(value);
|
883
885
|
});
|
884
886
|
},
|
885
|
-
|
887
|
+
|
886
888
|
/**
|
887
889
|
* Shuffles the array items in a random order
|
888
890
|
*
|
@@ -890,12 +892,12 @@ Array.include({
|
|
890
892
|
*/
|
891
893
|
shuffle: function() {
|
892
894
|
var shuff = this.clone(), j, x, i = shuff.length;
|
893
|
-
|
895
|
+
|
894
896
|
for (; i > 0; j = Math.random(i-1), x = shuff[--i], shuff[i] = shuff[j], shuff[j] = x) {}
|
895
|
-
|
897
|
+
|
896
898
|
return shuff;
|
897
899
|
},
|
898
|
-
|
900
|
+
|
899
901
|
/**
|
900
902
|
* Default sort fix for numeric values
|
901
903
|
*
|
@@ -905,7 +907,7 @@ Array.include({
|
|
905
907
|
sort: function(callback) {
|
906
908
|
return original_sort.apply(this, (callback || !isNumber(this[0])) ? arguments : [default_sort]);
|
907
909
|
},
|
908
|
-
|
910
|
+
|
909
911
|
/**
|
910
912
|
* sorts the array by running its items though a lambda or calling their attributes
|
911
913
|
*
|
@@ -915,7 +917,7 @@ Array.include({
|
|
915
917
|
*/
|
916
918
|
sortBy: function() {
|
917
919
|
var pair = guess_callback(arguments, this);
|
918
|
-
|
920
|
+
|
919
921
|
return this.sort(function(a, b) {
|
920
922
|
return default_sort(
|
921
923
|
pair[0].call(pair[1], a),
|
@@ -923,7 +925,7 @@ Array.include({
|
|
923
925
|
);
|
924
926
|
});
|
925
927
|
},
|
926
|
-
|
928
|
+
|
927
929
|
/**
|
928
930
|
* Returns the minimal value on the list
|
929
931
|
*
|
@@ -932,7 +934,7 @@ Array.include({
|
|
932
934
|
min: function() {
|
933
935
|
return Math.min.apply(Math, this);
|
934
936
|
},
|
935
|
-
|
937
|
+
|
936
938
|
/**
|
937
939
|
* Returns the maximal value
|
938
940
|
*
|
@@ -941,7 +943,7 @@ Array.include({
|
|
941
943
|
max: function() {
|
942
944
|
return Math.max.apply(Math, this);
|
943
945
|
},
|
944
|
-
|
946
|
+
|
945
947
|
/**
|
946
948
|
* Returns a summ of all the items on the list
|
947
949
|
*
|
@@ -978,7 +980,7 @@ String.include({
|
|
978
980
|
empty: function() {
|
979
981
|
return this == '';
|
980
982
|
},
|
981
|
-
|
983
|
+
|
982
984
|
/**
|
983
985
|
* checks if the string contains only white-spaces
|
984
986
|
*
|
@@ -987,9 +989,9 @@ String.include({
|
|
987
989
|
blank: function() {
|
988
990
|
return (/^\s*$/).test(this);
|
989
991
|
},
|
990
|
-
|
992
|
+
|
991
993
|
/**
|
992
|
-
* removes trailing whitespaces
|
994
|
+
* removes trailing whitespaces
|
993
995
|
*
|
994
996
|
* @return String trimmed version
|
995
997
|
*/
|
@@ -998,7 +1000,7 @@ String.include({
|
|
998
1000
|
while ((/\s/).test(str.charAt(--i))) {}
|
999
1001
|
return str.slice(0, i + 1);
|
1000
1002
|
},
|
1001
|
-
|
1003
|
+
|
1002
1004
|
/**
|
1003
1005
|
* returns a copy of the string with all the tags removed
|
1004
1006
|
* @return String without tags
|
@@ -1006,10 +1008,10 @@ String.include({
|
|
1006
1008
|
stripTags: function() {
|
1007
1009
|
return this.replace(/<\/?[^>]+>/ig, '');
|
1008
1010
|
},
|
1009
|
-
|
1011
|
+
|
1010
1012
|
/**
|
1011
1013
|
* removes all the scripts declarations out of the string
|
1012
|
-
* @param mixed option. If it equals true the scrips will be executed,
|
1014
|
+
* @param mixed option. If it equals true the scrips will be executed,
|
1013
1015
|
* if a function the scripts will be passed in it
|
1014
1016
|
* @return String without scripts
|
1015
1017
|
*/
|
@@ -1018,16 +1020,16 @@ String.include({
|
|
1018
1020
|
scripts += source + "\n";
|
1019
1021
|
return '';
|
1020
1022
|
});
|
1021
|
-
|
1023
|
+
|
1022
1024
|
if (option === true) {
|
1023
1025
|
$eval(scripts);
|
1024
1026
|
} else if (isFunction(option)) {
|
1025
1027
|
option(scripts, text);
|
1026
1028
|
}
|
1027
|
-
|
1029
|
+
|
1028
1030
|
return text;
|
1029
1031
|
},
|
1030
|
-
|
1032
|
+
|
1031
1033
|
/**
|
1032
1034
|
* extracts all the scripts out of the string
|
1033
1035
|
*
|
@@ -1038,7 +1040,7 @@ String.include({
|
|
1038
1040
|
this.stripScripts(function(s) { scripts = s; });
|
1039
1041
|
return scripts;
|
1040
1042
|
},
|
1041
|
-
|
1043
|
+
|
1042
1044
|
/**
|
1043
1045
|
* evals all the scripts in the string
|
1044
1046
|
*
|
@@ -1048,7 +1050,7 @@ String.include({
|
|
1048
1050
|
this.stripScripts(true);
|
1049
1051
|
return this;
|
1050
1052
|
},
|
1051
|
-
|
1053
|
+
|
1052
1054
|
/**
|
1053
1055
|
* converts underscored or dasherized string to a camelized one
|
1054
1056
|
* @returns String camelized version
|
@@ -1058,7 +1060,7 @@ String.include({
|
|
1058
1060
|
return chr ? chr.toUpperCase() : '';
|
1059
1061
|
});
|
1060
1062
|
},
|
1061
|
-
|
1063
|
+
|
1062
1064
|
/**
|
1063
1065
|
* converts a camelized or dasherized string into an underscored one
|
1064
1066
|
* @return String underscored version
|
@@ -1075,7 +1077,7 @@ String.include({
|
|
1075
1077
|
capitalize: function() {
|
1076
1078
|
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
|
1077
1079
|
},
|
1078
|
-
|
1080
|
+
|
1079
1081
|
/**
|
1080
1082
|
* checks if the string contains the given substring
|
1081
1083
|
*
|
@@ -1085,7 +1087,7 @@ String.include({
|
|
1085
1087
|
includes: function(string) {
|
1086
1088
|
return this.indexOf(string) != -1;
|
1087
1089
|
},
|
1088
|
-
|
1090
|
+
|
1089
1091
|
/**
|
1090
1092
|
* checks if the string starts with the given substring
|
1091
1093
|
*
|
@@ -1095,10 +1097,10 @@ String.include({
|
|
1095
1097
|
*/
|
1096
1098
|
startsWith: function(string, ignorecase) {
|
1097
1099
|
var start_str = this.substr(0, string.length);
|
1098
|
-
return ignorecase ? start_str.toLowerCase() === string.toLowerCase() :
|
1100
|
+
return ignorecase ? start_str.toLowerCase() === string.toLowerCase() :
|
1099
1101
|
start_str === string;
|
1100
1102
|
},
|
1101
|
-
|
1103
|
+
|
1102
1104
|
/**
|
1103
1105
|
* checks if the string ends with the given substring
|
1104
1106
|
*
|
@@ -1111,7 +1113,7 @@ String.include({
|
|
1111
1113
|
return ignorecase ? end_str.toLowerCase() === string.toLowerCase() :
|
1112
1114
|
end_str === string;
|
1113
1115
|
},
|
1114
|
-
|
1116
|
+
|
1115
1117
|
/**
|
1116
1118
|
* converts the string to an integer value
|
1117
1119
|
* @param Integer base
|
@@ -1120,7 +1122,7 @@ String.include({
|
|
1120
1122
|
toInt: function(base) {
|
1121
1123
|
return parseInt(this, base || 10);
|
1122
1124
|
},
|
1123
|
-
|
1125
|
+
|
1124
1126
|
/**
|
1125
1127
|
* converts the string to a float value
|
1126
1128
|
* @param boolean flat if the method should not use a flexible matching
|
@@ -1129,11 +1131,12 @@ String.include({
|
|
1129
1131
|
toFloat: function(strict) {
|
1130
1132
|
return parseFloat(strict ? this : this.replace(',', '.').replace(/(\d)-(\d)/g, '$1.$2'));
|
1131
1133
|
}
|
1132
|
-
|
1134
|
+
|
1133
1135
|
});
|
1134
1136
|
|
1135
1137
|
$alias(String[PROTO], {include: 'includes'});
|
1136
1138
|
|
1139
|
+
|
1137
1140
|
/**
|
1138
1141
|
* The Function class extentions
|
1139
1142
|
*
|
@@ -1184,7 +1187,7 @@ Function.include({
|
|
1184
1187
|
curry: function() {
|
1185
1188
|
return this.bind.apply(this, [this].concat($A(arguments)));
|
1186
1189
|
},
|
1187
|
-
|
1190
|
+
|
1188
1191
|
/**
|
1189
1192
|
* The right side curry feature
|
1190
1193
|
*
|
@@ -1232,7 +1235,7 @@ Function.include({
|
|
1232
1235
|
|
1233
1236
|
return timer;
|
1234
1237
|
},
|
1235
|
-
|
1238
|
+
|
1236
1239
|
/**
|
1237
1240
|
* Chains the given function after the current one
|
1238
1241
|
*
|
@@ -1251,6 +1254,7 @@ Function.include({
|
|
1251
1254
|
}
|
1252
1255
|
});
|
1253
1256
|
|
1257
|
+
|
1254
1258
|
/**
|
1255
1259
|
* The Number class extentions
|
1256
1260
|
*
|
@@ -1274,46 +1278,47 @@ Number.include({
|
|
1274
1278
|
}
|
1275
1279
|
return this;
|
1276
1280
|
},
|
1277
|
-
|
1281
|
+
|
1278
1282
|
upto: function(number, callback, scope) {
|
1279
1283
|
for (var i=this+0; i <= number; i++) {
|
1280
1284
|
callback.call(scope, i);
|
1281
1285
|
}
|
1282
1286
|
return this;
|
1283
1287
|
},
|
1284
|
-
|
1288
|
+
|
1285
1289
|
downto: function(number, callback, scope) {
|
1286
1290
|
for (var i=this+0; i >= number; i--) {
|
1287
1291
|
callback.call(scope, i);
|
1288
1292
|
}
|
1289
1293
|
return this;
|
1290
1294
|
},
|
1291
|
-
|
1295
|
+
|
1292
1296
|
abs: function() {
|
1293
1297
|
return Math.abs(this);
|
1294
1298
|
},
|
1295
|
-
|
1299
|
+
|
1296
1300
|
round: function(size) {
|
1297
1301
|
return size ? parseFloat(this.toFixed(size)) : Math.round(this);
|
1298
1302
|
},
|
1299
|
-
|
1303
|
+
|
1300
1304
|
ceil: function() {
|
1301
1305
|
return Math.ceil(this);
|
1302
1306
|
},
|
1303
|
-
|
1307
|
+
|
1304
1308
|
floor: function() {
|
1305
1309
|
return Math.floor(this);
|
1306
1310
|
},
|
1307
|
-
|
1311
|
+
|
1308
1312
|
min: function(value) {
|
1309
1313
|
return this < value ? value : this + 0;
|
1310
1314
|
},
|
1311
|
-
|
1315
|
+
|
1312
1316
|
max: function(value) {
|
1313
1317
|
return this > value ? value : this + 0;
|
1314
1318
|
}
|
1315
1319
|
});
|
1316
1320
|
|
1321
|
+
|
1317
1322
|
/**
|
1318
1323
|
* The Regexp class extentions
|
1319
1324
|
*
|
@@ -1335,6 +1340,7 @@ RegExp.escape = function(string) {
|
|
1335
1340
|
return (''+string).replace(/([.*+?\^=!:${}()|\[\]\/\\])/g, '\\$1');
|
1336
1341
|
};
|
1337
1342
|
|
1343
|
+
|
1338
1344
|
/**
|
1339
1345
|
* The basic Class unit
|
1340
1346
|
*
|
@@ -1349,7 +1355,7 @@ RegExp.escape = function(string) {
|
|
1349
1355
|
var Class = RightJS.Class = function() {
|
1350
1356
|
var args = $A(arguments), properties = args.pop() || {},
|
1351
1357
|
parent = args.pop();
|
1352
|
-
|
1358
|
+
|
1353
1359
|
// basic class object definition
|
1354
1360
|
function klass() {
|
1355
1361
|
if ('prebind' in this && isArray(this.prebind)) {
|
@@ -1357,7 +1363,7 @@ var Class = RightJS.Class = function() {
|
|
1357
1363
|
this[method] = this[method].bind(this);
|
1358
1364
|
}, this);
|
1359
1365
|
}
|
1360
|
-
|
1366
|
+
|
1361
1367
|
return this.initialize ? this.initialize.apply(this, arguments) : this;
|
1362
1368
|
}
|
1363
1369
|
|
@@ -1365,13 +1371,13 @@ var Class = RightJS.Class = function() {
|
|
1365
1371
|
if (!args.length && !isHash(properties)) {
|
1366
1372
|
parent = properties; properties = {};
|
1367
1373
|
}
|
1368
|
-
|
1374
|
+
|
1369
1375
|
// attaching main class-level methods
|
1370
1376
|
$ext(klass, Class_Methods).inherit(parent);
|
1371
|
-
|
1377
|
+
|
1372
1378
|
// catching the injections
|
1373
1379
|
Class_attachInjections(klass, properties);
|
1374
|
-
|
1380
|
+
|
1375
1381
|
return klass.include(properties);
|
1376
1382
|
},
|
1377
1383
|
|
@@ -1430,9 +1436,9 @@ Class_Methods = {
|
|
1430
1436
|
extend: function() {
|
1431
1437
|
$A(arguments).filter(isHash).each(function(module) {
|
1432
1438
|
var callback = module.selfExtended || module.self_extended;
|
1433
|
-
|
1439
|
+
|
1434
1440
|
$ext(this, clean_module(module, true));
|
1435
|
-
|
1441
|
+
|
1436
1442
|
if (callback) {
|
1437
1443
|
callback.call(module, this);
|
1438
1444
|
}
|
@@ -1455,10 +1461,10 @@ Class_Methods = {
|
|
1455
1461
|
|
1456
1462
|
$A(arguments).filter(isHash).each(function(module) {
|
1457
1463
|
var callback = module.selfIncluded || module.self_included;
|
1458
|
-
|
1464
|
+
|
1459
1465
|
Object.each(clean_module(module, false), function(key, method) {
|
1460
1466
|
var ancestor = ancestors.first(function(proto) { return key in proto && isFunction(proto[key]); });
|
1461
|
-
|
1467
|
+
|
1462
1468
|
this[PROTO][key] = !ancestor ? method : function() {
|
1463
1469
|
this.$super = ancestor[key];
|
1464
1470
|
return method.apply(this, arguments);
|
@@ -1508,10 +1514,11 @@ function Class_findSet(object, property) {
|
|
1508
1514
|
constructor = object.constructor,
|
1509
1515
|
candidates = [object, constructor].concat('ancestors' in constructor ? constructor.ancestors : []),
|
1510
1516
|
holder = candidates.first(function(o) { return o && (upcased in o || capcased in o); });
|
1511
|
-
|
1517
|
+
|
1512
1518
|
return holder ? holder[upcased] || holder[capcased] : null;
|
1513
1519
|
}
|
1514
1520
|
|
1521
|
+
|
1515
1522
|
/**
|
1516
1523
|
* This is a simple mix-in module to be included in other classes
|
1517
1524
|
*
|
@@ -1533,7 +1540,7 @@ var Options = RightJS.Options = {
|
|
1533
1540
|
*/
|
1534
1541
|
setOptions: function(opts) {
|
1535
1542
|
var options = this.options = Object.merge(Class_findSet(this, 'options'), opts), match, key;
|
1536
|
-
|
1543
|
+
|
1537
1544
|
// hooking up the observer options
|
1538
1545
|
if (isFunction(this.on)) {
|
1539
1546
|
for (key in options) {
|
@@ -1543,10 +1550,10 @@ var Options = RightJS.Options = {
|
|
1543
1550
|
}
|
1544
1551
|
}
|
1545
1552
|
}
|
1546
|
-
|
1553
|
+
|
1547
1554
|
return this;
|
1548
1555
|
},
|
1549
|
-
|
1556
|
+
|
1550
1557
|
/**
|
1551
1558
|
* Cuts of an options hash from the end of the arguments list
|
1552
1559
|
* assigns them using the #setOptions method and then
|
@@ -1562,8 +1569,9 @@ var Options = RightJS.Options = {
|
|
1562
1569
|
}
|
1563
1570
|
};
|
1564
1571
|
|
1572
|
+
|
1565
1573
|
/**
|
1566
|
-
* standard Observer class.
|
1574
|
+
* standard Observer class.
|
1567
1575
|
*
|
1568
1576
|
* Might be used as a usual class or as a builder over another objects
|
1569
1577
|
*
|
@@ -1575,18 +1583,18 @@ var Options = RightJS.Options = {
|
|
1575
1583
|
*/
|
1576
1584
|
var Observer = RightJS.Observer = new Class({
|
1577
1585
|
include: Options,
|
1578
|
-
|
1586
|
+
|
1579
1587
|
/**
|
1580
1588
|
* general constructor
|
1581
1589
|
*
|
1582
1590
|
* @param Object options
|
1583
1591
|
*/
|
1584
1592
|
initialize: function(options) {
|
1585
|
-
this.setOptions(options);
|
1593
|
+
this.setOptions(options);
|
1586
1594
|
Observer_createShortcuts(this, Class_findSet(this, 'events'));
|
1587
1595
|
return this;
|
1588
1596
|
},
|
1589
|
-
|
1597
|
+
|
1590
1598
|
/**
|
1591
1599
|
* binds an event listener
|
1592
1600
|
*
|
@@ -1599,7 +1607,7 @@ var Observer = RightJS.Observer = new Class({
|
|
1599
1607
|
*/
|
1600
1608
|
on: function() {
|
1601
1609
|
var args = $A(arguments), event = args.shift(), name;
|
1602
|
-
|
1610
|
+
|
1603
1611
|
if (isString(event)) {
|
1604
1612
|
if (!('$listeners' in this)) { this.$listeners = []; }
|
1605
1613
|
|
@@ -1611,14 +1619,14 @@ var Observer = RightJS.Observer = new Class({
|
|
1611
1619
|
|
1612
1620
|
case "function":
|
1613
1621
|
var hash = {};
|
1614
|
-
|
1622
|
+
|
1615
1623
|
// DON'T move it in the one-line hash variable definition,
|
1616
1624
|
// it causes problems with the Konqueror 3 later on
|
1617
1625
|
hash.e = event;
|
1618
1626
|
hash.f = callback;
|
1619
1627
|
hash.a = args;
|
1620
1628
|
hash.r = name;
|
1621
|
-
|
1629
|
+
|
1622
1630
|
this.$listeners.push(hash);
|
1623
1631
|
break;
|
1624
1632
|
|
@@ -1631,7 +1639,7 @@ var Observer = RightJS.Observer = new Class({
|
|
1631
1639
|
}
|
1632
1640
|
}
|
1633
1641
|
}
|
1634
|
-
|
1642
|
+
|
1635
1643
|
} else {
|
1636
1644
|
// assuming it's a hash of key-value pairs
|
1637
1645
|
for (name in event) {
|
@@ -1640,12 +1648,12 @@ var Observer = RightJS.Observer = new Class({
|
|
1640
1648
|
).concat(args));
|
1641
1649
|
}
|
1642
1650
|
}
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1651
|
+
|
1652
|
+
|
1653
|
+
|
1646
1654
|
return this;
|
1647
1655
|
},
|
1648
|
-
|
1656
|
+
|
1649
1657
|
/**
|
1650
1658
|
* checks if the observer observes given event and/or callback
|
1651
1659
|
*
|
@@ -1659,13 +1667,13 @@ var Observer = RightJS.Observer = new Class({
|
|
1659
1667
|
observes: function(event, callback) {
|
1660
1668
|
if (!isString(event)) { callback = event; event = null; }
|
1661
1669
|
if (isString(callback)) { callback = this[callback]; }
|
1662
|
-
|
1670
|
+
|
1663
1671
|
return (this.$listeners || []).some(function(i) {
|
1664
1672
|
return (event && callback) ? i.e === event && i.f === callback :
|
1665
1673
|
event ? i.e === event : i.f === callback;
|
1666
1674
|
});
|
1667
1675
|
},
|
1668
|
-
|
1676
|
+
|
1669
1677
|
/**
|
1670
1678
|
* stops observing an event or/and function
|
1671
1679
|
*
|
@@ -1684,16 +1692,16 @@ var Observer = RightJS.Observer = new Class({
|
|
1684
1692
|
} else {
|
1685
1693
|
if (!isString(event)) { callback = event; event = null; }
|
1686
1694
|
if (isString(callback)){ callback = this[callback]; }
|
1687
|
-
|
1695
|
+
|
1688
1696
|
this.$listeners = (this.$listeners || []).filter(function(i) {
|
1689
1697
|
return (event && callback) ? (i.e !== event || i.f !== callback) :
|
1690
1698
|
(event ? i.e !== event : i.f !== callback);
|
1691
1699
|
}, this);
|
1692
1700
|
}
|
1693
|
-
|
1701
|
+
|
1694
1702
|
return this;
|
1695
1703
|
},
|
1696
|
-
|
1704
|
+
|
1697
1705
|
/**
|
1698
1706
|
* returns the listeners list for the event
|
1699
1707
|
*
|
@@ -1708,7 +1716,7 @@ var Observer = RightJS.Observer = new Class({
|
|
1708
1716
|
return !event || i.e === event;
|
1709
1717
|
}).map(function(i) { return i.f; }).uniq();
|
1710
1718
|
},
|
1711
|
-
|
1719
|
+
|
1712
1720
|
/**
|
1713
1721
|
* initiates the event handling
|
1714
1722
|
*
|
@@ -1719,13 +1727,13 @@ var Observer = RightJS.Observer = new Class({
|
|
1719
1727
|
*/
|
1720
1728
|
fire: function() {
|
1721
1729
|
var args = $A(arguments), event = args.shift();
|
1722
|
-
|
1730
|
+
|
1723
1731
|
(this.$listeners || []).each(function(i) {
|
1724
1732
|
if (i.e === event) {
|
1725
1733
|
i.f.apply(this, i.a.concat(args));
|
1726
1734
|
}
|
1727
1735
|
}, this);
|
1728
|
-
|
1736
|
+
|
1729
1737
|
return this;
|
1730
1738
|
}
|
1731
1739
|
}),
|
@@ -1758,7 +1766,7 @@ Observer_createShortcuts = Observer.createShortcuts = function(object, names) {
|
|
1758
1766
|
};
|
1759
1767
|
}
|
1760
1768
|
});
|
1761
|
-
|
1769
|
+
|
1762
1770
|
return object;
|
1763
1771
|
};
|
1764
1772
|
|
@@ -1772,6 +1780,7 @@ var Break = RightJS.Break = new Class(Error, {
|
|
1772
1780
|
message: "Manual break"
|
1773
1781
|
});
|
1774
1782
|
|
1783
|
+
|
1775
1784
|
/**
|
1776
1785
|
* this object will contain info about the current browser
|
1777
1786
|
*
|
@@ -1791,6 +1800,7 @@ Browser = RightJS.Browser = {
|
|
1791
1800
|
OLD: looks_like_ie && !looks_like_opera && !document.querySelector
|
1792
1801
|
};
|
1793
1802
|
|
1803
|
+
|
1794
1804
|
/**
|
1795
1805
|
* The dom-wrapper main unit
|
1796
1806
|
*
|
@@ -1802,13 +1812,13 @@ Browser = RightJS.Browser = {
|
|
1802
1812
|
*/
|
1803
1813
|
|
1804
1814
|
var Wrapper = RightJS.Wrapper = function(parent, methods) {
|
1805
|
-
|
1815
|
+
|
1806
1816
|
// creating the actual wrapper class
|
1807
1817
|
var Klass = function(object, options) {
|
1808
1818
|
this.initialize(object, options);
|
1809
|
-
|
1819
|
+
|
1810
1820
|
var instance = this, unit = instance._, uid;
|
1811
|
-
|
1821
|
+
|
1812
1822
|
// dynamically typecasting in case if the user is creating
|
1813
1823
|
// an element of a subtype via the basic Element constructor
|
1814
1824
|
if (this.constructor === Element && unit.tagName in Element_wrappers) {
|
@@ -1817,24 +1827,24 @@ var Wrapper = RightJS.Wrapper = function(parent, methods) {
|
|
1817
1827
|
instance.$listeners = this.$listeners;
|
1818
1828
|
}
|
1819
1829
|
}
|
1820
|
-
|
1830
|
+
|
1821
1831
|
uid = UID_KEY in unit ? unit[UID_KEY] : (unit[UID_KEY] = UID++);
|
1822
|
-
|
1832
|
+
|
1823
1833
|
return (Wrappers_Cache[uid] = instance);
|
1824
1834
|
};
|
1825
|
-
|
1835
|
+
|
1826
1836
|
// finding the parent
|
1827
1837
|
if (!methods) {
|
1828
1838
|
methods = parent;
|
1829
1839
|
parent = null;
|
1830
1840
|
}
|
1831
|
-
|
1841
|
+
|
1832
1842
|
// hooking up the extedning tools and methods
|
1833
1843
|
$ext(Klass, Class_Methods).inherit(parent || Wrapper);
|
1834
|
-
|
1844
|
+
|
1835
1845
|
// checking for the injections
|
1836
1846
|
Class_attachInjections(Klass, methods);
|
1837
|
-
|
1847
|
+
|
1838
1848
|
// including the basic tools
|
1839
1849
|
return Klass.include({_: undefined}, methods);
|
1840
1850
|
};
|
@@ -1842,6 +1852,7 @@ var Wrapper = RightJS.Wrapper = function(parent, methods) {
|
|
1842
1852
|
// exposing the cache so it could be manupulated externally
|
1843
1853
|
Wrapper.Cache = Wrappers_Cache;
|
1844
1854
|
|
1855
|
+
|
1845
1856
|
/**
|
1846
1857
|
* A simple document wrapper
|
1847
1858
|
*
|
@@ -1851,13 +1862,14 @@ var Document = RightJS.Document = new Wrapper({
|
|
1851
1862
|
initialize: function(document) {
|
1852
1863
|
this._ = document;
|
1853
1864
|
},
|
1854
|
-
|
1865
|
+
|
1855
1866
|
// returns the window reference
|
1856
1867
|
window: function() {
|
1857
1868
|
return $(this._.defaultView || this._.parentWindow);
|
1858
1869
|
}
|
1859
1870
|
});
|
1860
1871
|
|
1872
|
+
|
1861
1873
|
/**
|
1862
1874
|
* the window object extensions
|
1863
1875
|
*
|
@@ -1874,7 +1886,7 @@ var Window = RightJS.Window = new Wrapper({
|
|
1874
1886
|
this._ = window;
|
1875
1887
|
this.d = window.document;
|
1876
1888
|
},
|
1877
|
-
|
1889
|
+
|
1878
1890
|
/**
|
1879
1891
|
* Generic API reference
|
1880
1892
|
*
|
@@ -1883,7 +1895,7 @@ var Window = RightJS.Window = new Wrapper({
|
|
1883
1895
|
window: function() {
|
1884
1896
|
return this;
|
1885
1897
|
},
|
1886
|
-
|
1898
|
+
|
1887
1899
|
/**
|
1888
1900
|
* returns the inner-size of the window
|
1889
1901
|
*
|
@@ -1902,9 +1914,9 @@ var Window = RightJS.Window = new Wrapper({
|
|
1902
1914
|
*/
|
1903
1915
|
scrolls: function() {
|
1904
1916
|
var win = this._, doc = this.d, body = doc.body, html = doc.documentElement;
|
1905
|
-
|
1917
|
+
|
1906
1918
|
return (win.pageXOffset || win.pageYOffset) ? {x: win.pageXOffset, y: win.pageYOffset} :
|
1907
|
-
(body.scrollLeft || body.scrollTop) ? {x: body.scrollLeft, y: body.scrollTop} :
|
1919
|
+
(body && (body.scrollLeft || body.scrollTop)) ? {x: body.scrollLeft, y: body.scrollTop} :
|
1908
1920
|
{x: html.scrollLeft, y: html.scrollTop};
|
1909
1921
|
},
|
1910
1922
|
|
@@ -1918,7 +1930,7 @@ var Window = RightJS.Window = new Wrapper({
|
|
1918
1930
|
*/
|
1919
1931
|
scrollTo: function(left, top, fx_options) {
|
1920
1932
|
var left_pos = left, top_pos = top, element = $(left); // moving the values into new vars so they didn't get screwed later on
|
1921
|
-
|
1933
|
+
|
1922
1934
|
if(element && element instanceof Element) {
|
1923
1935
|
left = element.position();
|
1924
1936
|
}
|
@@ -1927,7 +1939,7 @@ var Window = RightJS.Window = new Wrapper({
|
|
1927
1939
|
top_pos = left.y;
|
1928
1940
|
left_pos = left.x;
|
1929
1941
|
}
|
1930
|
-
|
1942
|
+
|
1931
1943
|
// checking if a smooth scroll was requested
|
1932
1944
|
if (isHash(fx_options = fx_options || top) && RightJS.Fx) {
|
1933
1945
|
new Fx.Scroll(this, fx_options).start({x: left_pos, y: top_pos});
|
@@ -1954,17 +1966,17 @@ var Window = RightJS.Window = new Wrapper({
|
|
1954
1966
|
var Event = RightJS.Event = new Wrapper({
|
1955
1967
|
// predefining the keys to spped up the assignments
|
1956
1968
|
type: null,
|
1957
|
-
|
1969
|
+
|
1958
1970
|
which: null,
|
1959
1971
|
keyCode: null,
|
1960
|
-
|
1972
|
+
|
1961
1973
|
target: null,
|
1962
1974
|
currentTarget: null,
|
1963
1975
|
relatedTarget: null,
|
1964
|
-
|
1976
|
+
|
1965
1977
|
pageX: null,
|
1966
1978
|
pageY: null,
|
1967
|
-
|
1979
|
+
|
1968
1980
|
/**
|
1969
1981
|
* the class constructor
|
1970
1982
|
*
|
@@ -1976,39 +1988,39 @@ var Event = RightJS.Event = new Wrapper({
|
|
1976
1988
|
if (typeof event === 'string') {
|
1977
1989
|
event = Object.merge({type: event}, bound_element);
|
1978
1990
|
this.stopped = event.bubbles === false;
|
1979
|
-
|
1991
|
+
|
1980
1992
|
if (isHash(bound_element)) {
|
1981
1993
|
$ext(this, bound_element);
|
1982
1994
|
}
|
1983
1995
|
}
|
1984
|
-
|
1996
|
+
|
1985
1997
|
this._ = event;
|
1986
1998
|
this.type = event.type;
|
1987
|
-
|
1999
|
+
|
1988
2000
|
this.which = event.which;
|
1989
2001
|
this.keyCode = event.keyCode;
|
1990
|
-
|
2002
|
+
|
1991
2003
|
this.target = $(event.target);
|
1992
2004
|
this.currentTarget = $(event.currentTarget);
|
1993
2005
|
this.relatedTarget = $(event.relatedTarget);
|
1994
|
-
|
2006
|
+
|
1995
2007
|
this.pageX = event.pageX;
|
1996
2008
|
this.pageY = event.pageY;
|
1997
|
-
|
2009
|
+
|
1998
2010
|
if (!('target' in event) && 'srcElement' in event) {
|
1999
2011
|
// grabbin the IE properties
|
2000
2012
|
this.which = event.button == 2 ? 3 : event.button == 4 ? 2 : 1;
|
2001
|
-
|
2002
|
-
// faking the target property
|
2013
|
+
|
2014
|
+
// faking the target property
|
2003
2015
|
this.target = $(event.srcElement) || bound_element;
|
2004
|
-
|
2016
|
+
|
2005
2017
|
// faking the relatedTarget, currentTarget and other targets
|
2006
2018
|
this.relatedTarget = this.target._ === event.fromElement ? $(event.toElement) : this.target;
|
2007
2019
|
this.currentTarget = bound_element;
|
2008
|
-
|
2020
|
+
|
2009
2021
|
// faking the mouse position
|
2010
2022
|
var scrolls = this.target.window().scrolls();
|
2011
|
-
|
2023
|
+
|
2012
2024
|
this.pageX = event.clientX + scrolls.x;
|
2013
2025
|
this.pageY = event.clientY + scrolls.y;
|
2014
2026
|
} else if (event.target && 'nodeType' in event.target && event.target.nodeType === 3) {
|
@@ -2016,7 +2028,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2016
2028
|
this.target = $(event.target.parentNode);
|
2017
2029
|
}
|
2018
2030
|
},
|
2019
|
-
|
2031
|
+
|
2020
2032
|
/**
|
2021
2033
|
* Stops the event bubbling process
|
2022
2034
|
*
|
@@ -2031,7 +2043,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2031
2043
|
this.stopped = true;
|
2032
2044
|
return this;
|
2033
2045
|
},
|
2034
|
-
|
2046
|
+
|
2035
2047
|
/**
|
2036
2048
|
* Prevents the default browser action on the event
|
2037
2049
|
*
|
@@ -2045,7 +2057,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2045
2057
|
}
|
2046
2058
|
return this;
|
2047
2059
|
},
|
2048
|
-
|
2060
|
+
|
2049
2061
|
/**
|
2050
2062
|
* Fully stops the event
|
2051
2063
|
*
|
@@ -2054,7 +2066,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2054
2066
|
stop: function() {
|
2055
2067
|
return this.stopPropagation().preventDefault();
|
2056
2068
|
},
|
2057
|
-
|
2069
|
+
|
2058
2070
|
/**
|
2059
2071
|
* Returns the event position
|
2060
2072
|
*
|
@@ -2063,7 +2075,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2063
2075
|
position: function() {
|
2064
2076
|
return {x: this.pageX, y: this.pageY};
|
2065
2077
|
},
|
2066
|
-
|
2078
|
+
|
2067
2079
|
/**
|
2068
2080
|
* Finds the element between the event target
|
2069
2081
|
* and the boundary element that matches the
|
@@ -2089,6 +2101,7 @@ var Event = RightJS.Event = new Wrapper({
|
|
2089
2101
|
|
2090
2102
|
Event_delegation_shortcuts = [];
|
2091
2103
|
|
2104
|
+
|
2092
2105
|
/**
|
2093
2106
|
* The DOM Element unit handling
|
2094
2107
|
*
|
@@ -2141,16 +2154,17 @@ element_constructor = function(element, options) {
|
|
2141
2154
|
}
|
2142
2155
|
};
|
2143
2156
|
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2157
|
+
//
|
2158
|
+
// IE 6,7,8 (not 9!) browsers have a bug with checkbox and radio input elements
|
2159
|
+
// it doesn't place the 'checked' property correctly, so we kinda hacking
|
2160
|
+
// the Element constructor a bit for them
|
2161
|
+
//
|
2162
|
+
try {
|
2163
|
+
document.createElement('<input/>'); // <- works for IE < 9 only
|
2150
2164
|
element_constructor = patch_function(element_constructor, /(\((\w+),\s*(\w+)\)\s*\{)/,
|
2151
2165
|
'$1if($2==="input"&&$3)$2="<input name="+$3.name+" type="+$3.type+($3.checked?" checked":"")+"/>";'
|
2152
2166
|
);
|
2153
|
-
}
|
2167
|
+
} catch (e) {}
|
2154
2168
|
|
2155
2169
|
/**
|
2156
2170
|
* The actual elements wrapper
|
@@ -2174,9 +2188,9 @@ var Element = RightJS.Element = new Wrapper({
|
|
2174
2188
|
this._ = element;
|
2175
2189
|
}
|
2176
2190
|
},
|
2177
|
-
|
2191
|
+
|
2178
2192
|
// protected
|
2179
|
-
|
2193
|
+
|
2180
2194
|
// constructs the event
|
2181
2195
|
construct: element_constructor
|
2182
2196
|
});
|
@@ -2206,37 +2220,37 @@ Element.include({
|
|
2206
2220
|
parent: function(css_rule) {
|
2207
2221
|
return css_rule ? this.parents(css_rule)[0] : $(this._.parentNode || null); // <- IE6 need that || null
|
2208
2222
|
},
|
2209
|
-
|
2223
|
+
|
2210
2224
|
parents: function(css_rule) {
|
2211
2225
|
return recursively_collect(this, 'parentNode', css_rule);
|
2212
2226
|
},
|
2213
|
-
|
2227
|
+
|
2214
2228
|
children: function(css_rule) {
|
2215
2229
|
return this.find(css_rule).filter(function(element) {
|
2216
2230
|
return element._.parentNode === this._;
|
2217
2231
|
}, this);
|
2218
2232
|
},
|
2219
|
-
|
2233
|
+
|
2220
2234
|
siblings: function(css_rule) {
|
2221
2235
|
return this.prevSiblings(css_rule).reverse().concat(this.nextSiblings(css_rule));
|
2222
2236
|
},
|
2223
|
-
|
2237
|
+
|
2224
2238
|
nextSiblings: function(css_rule) {
|
2225
2239
|
return recursively_collect(this, 'nextSibling', css_rule);
|
2226
2240
|
},
|
2227
|
-
|
2241
|
+
|
2228
2242
|
prevSiblings: function(css_rule) {
|
2229
2243
|
return recursively_collect(this, 'previousSibling', css_rule);
|
2230
2244
|
},
|
2231
|
-
|
2245
|
+
|
2232
2246
|
next: function(css_rule) {
|
2233
2247
|
return this.nextSiblings(css_rule)[0];
|
2234
2248
|
},
|
2235
|
-
|
2249
|
+
|
2236
2250
|
prev: function(css_rule) {
|
2237
2251
|
return this.prevSiblings(css_rule)[0];
|
2238
2252
|
},
|
2239
|
-
|
2253
|
+
|
2240
2254
|
/**
|
2241
2255
|
* removes the elemnt out of this parent node
|
2242
2256
|
*
|
@@ -2249,7 +2263,7 @@ Element.include({
|
|
2249
2263
|
}
|
2250
2264
|
return this;
|
2251
2265
|
},
|
2252
|
-
|
2266
|
+
|
2253
2267
|
/**
|
2254
2268
|
* handles the elements insertion functionality
|
2255
2269
|
*
|
@@ -2257,35 +2271,35 @@ Element.include({
|
|
2257
2271
|
*
|
2258
2272
|
* o) an element instance
|
2259
2273
|
* o) a String, which will be converted into content to insert (all the scripts will be parsed out and executed)
|
2260
|
-
* o) a list of Elements
|
2274
|
+
* o) a list of Elements
|
2261
2275
|
* o) a hash like {position: content}
|
2262
2276
|
*
|
2263
2277
|
* @param mixed data to insert
|
2264
2278
|
* @param String position to insert top/bottom/before/after/instead
|
2265
2279
|
* @return Element self
|
2266
2280
|
*/
|
2267
|
-
insert: function(content, position) {
|
2281
|
+
insert: function(content, position) {
|
2268
2282
|
var scripts = null, element = this._;
|
2269
2283
|
position = (position||'bottom').toLowerCase();
|
2270
|
-
|
2284
|
+
|
2271
2285
|
if (typeof(content) !== 'object') {
|
2272
2286
|
scripts = content = (''+content);
|
2273
2287
|
} else if (content && content instanceof Element) {
|
2274
2288
|
content = content._;
|
2275
2289
|
}
|
2276
|
-
|
2290
|
+
|
2277
2291
|
Element_insertions[position](element, content.tagName ? content :
|
2278
2292
|
Element_createFragment.call(
|
2279
2293
|
(position === 'bottom' || position === 'top') ?
|
2280
2294
|
element : element.parentNode, content
|
2281
2295
|
)
|
2282
2296
|
);
|
2283
|
-
|
2297
|
+
|
2284
2298
|
if (scripts !== null) { scripts.evalScripts(); }
|
2285
|
-
|
2299
|
+
|
2286
2300
|
return this;
|
2287
2301
|
},
|
2288
|
-
|
2302
|
+
|
2289
2303
|
/**
|
2290
2304
|
* Inserts the element inside the given one at the given position
|
2291
2305
|
*
|
@@ -2297,7 +2311,7 @@ Element.include({
|
|
2297
2311
|
$(element).insert(this, position);
|
2298
2312
|
return this;
|
2299
2313
|
},
|
2300
|
-
|
2314
|
+
|
2301
2315
|
/**
|
2302
2316
|
* A shortcut to uppend several units into the element
|
2303
2317
|
*
|
@@ -2305,10 +2319,10 @@ Element.include({
|
|
2305
2319
|
* ..................
|
2306
2320
|
* @return Element this
|
2307
2321
|
*/
|
2308
|
-
append: function() {
|
2309
|
-
return this.insert(arguments);
|
2322
|
+
append: function(first) {
|
2323
|
+
return this.insert(isString(first) ? $A(arguments).join('') : arguments);
|
2310
2324
|
},
|
2311
|
-
|
2325
|
+
|
2312
2326
|
/**
|
2313
2327
|
* updates the content of the element by the given content
|
2314
2328
|
*
|
@@ -2318,21 +2332,21 @@ Element.include({
|
|
2318
2332
|
update: function(content) {
|
2319
2333
|
if (typeof(content) !== 'object') {
|
2320
2334
|
content = '' + content;
|
2321
|
-
|
2335
|
+
|
2322
2336
|
try {
|
2323
2337
|
this._.innerHTML = content;
|
2324
2338
|
} catch(e) {
|
2325
2339
|
return this.clean().insert(content);
|
2326
2340
|
}
|
2327
|
-
|
2341
|
+
|
2328
2342
|
content.evalScripts();
|
2329
|
-
|
2343
|
+
|
2330
2344
|
return this;
|
2331
2345
|
} else {
|
2332
2346
|
return this.clean().insert(content);
|
2333
2347
|
}
|
2334
2348
|
},
|
2335
|
-
|
2349
|
+
|
2336
2350
|
/**
|
2337
2351
|
* Works with the Element's innerHTML property
|
2338
2352
|
* This method works both ways! if a content is provided
|
@@ -2355,7 +2369,7 @@ Element.include({
|
|
2355
2369
|
replace: function(content) {
|
2356
2370
|
return this.insert(content, 'instead');
|
2357
2371
|
},
|
2358
|
-
|
2372
|
+
|
2359
2373
|
/**
|
2360
2374
|
* wraps the element with the given element
|
2361
2375
|
*
|
@@ -2371,7 +2385,7 @@ Element.include({
|
|
2371
2385
|
}
|
2372
2386
|
return this;
|
2373
2387
|
},
|
2374
|
-
|
2388
|
+
|
2375
2389
|
/**
|
2376
2390
|
* removes all the child nodes out of the element
|
2377
2391
|
*
|
@@ -2381,10 +2395,10 @@ Element.include({
|
|
2381
2395
|
while (this._.firstChild) {
|
2382
2396
|
this._.removeChild(this._.firstChild);
|
2383
2397
|
}
|
2384
|
-
|
2398
|
+
|
2385
2399
|
return this;
|
2386
2400
|
},
|
2387
|
-
|
2401
|
+
|
2388
2402
|
/**
|
2389
2403
|
* checks if the element has no child nodes
|
2390
2404
|
*
|
@@ -2393,7 +2407,7 @@ Element.include({
|
|
2393
2407
|
empty: function() {
|
2394
2408
|
return this.html().blank();
|
2395
2409
|
},
|
2396
|
-
|
2410
|
+
|
2397
2411
|
/**
|
2398
2412
|
* Creates a clean clone of the element without any events attached to it
|
2399
2413
|
*
|
@@ -2414,7 +2428,7 @@ Element.include({
|
|
2414
2428
|
* @param name String pointer attribute name
|
2415
2429
|
* @param rule String optional css-atom rule
|
2416
2430
|
* @return Array found elements
|
2417
|
-
*/
|
2431
|
+
*/
|
2418
2432
|
function recursively_collect(where, attr, css_rule) {
|
2419
2433
|
var node = where._, result = [];
|
2420
2434
|
|
@@ -2423,7 +2437,7 @@ function recursively_collect(where, attr, css_rule) {
|
|
2423
2437
|
result.push($(node));
|
2424
2438
|
}
|
2425
2439
|
}
|
2426
|
-
|
2440
|
+
|
2427
2441
|
return result;
|
2428
2442
|
}
|
2429
2443
|
|
@@ -2433,7 +2447,7 @@ var Element_insertions = {
|
|
2433
2447
|
bottom: function(target, content) {
|
2434
2448
|
target.appendChild(content);
|
2435
2449
|
},
|
2436
|
-
|
2450
|
+
|
2437
2451
|
top: function(target, content) {
|
2438
2452
|
if (target.firstChild !== null) {
|
2439
2453
|
target.insertBefore(content, target.firstChild);
|
@@ -2441,7 +2455,7 @@ var Element_insertions = {
|
|
2441
2455
|
target.appendChild(content);
|
2442
2456
|
}
|
2443
2457
|
},
|
2444
|
-
|
2458
|
+
|
2445
2459
|
after: function(target, content) {
|
2446
2460
|
var parent = target.parentNode, sibling = target.nextSibling;
|
2447
2461
|
if (sibling !== null) {
|
@@ -2450,11 +2464,11 @@ var Element_insertions = {
|
|
2450
2464
|
parent.appendChild(content);
|
2451
2465
|
}
|
2452
2466
|
},
|
2453
|
-
|
2467
|
+
|
2454
2468
|
before: function(target, content) {
|
2455
2469
|
target.parentNode.insertBefore(content, target);
|
2456
2470
|
},
|
2457
|
-
|
2471
|
+
|
2458
2472
|
instead: function(target, content) {
|
2459
2473
|
target.parentNode.replaceChild(content, target);
|
2460
2474
|
}
|
@@ -2477,27 +2491,27 @@ $alias(Element_wraps, {
|
|
2477
2491
|
TFOOT: 'TBODY',
|
2478
2492
|
TH: 'TD'
|
2479
2493
|
});
|
2480
|
-
|
2494
|
+
|
2481
2495
|
// converts any data into a html fragment unit
|
2482
2496
|
var fragment = document.createDocumentFragment(),
|
2483
2497
|
tmp_cont = document.createElement('DIV');
|
2484
|
-
|
2498
|
+
|
2485
2499
|
function Element_createFragment(content) {
|
2486
2500
|
if (typeof(content) === 'string') {
|
2487
2501
|
var tag = this.tagName,
|
2488
2502
|
tmp = tmp_cont,
|
2489
2503
|
wrap = Element_wraps[tag] || ['', '', 1],
|
2490
2504
|
depth = wrap[2];
|
2491
|
-
|
2505
|
+
|
2492
2506
|
tmp.innerHTML = wrap[0] + '<'+ tag + '>' + content + '</'+ tag + '>' + wrap[1];
|
2493
|
-
|
2507
|
+
|
2494
2508
|
while (depth-- > 0) {
|
2495
2509
|
tmp = tmp.firstChild;
|
2496
2510
|
}
|
2497
|
-
|
2511
|
+
|
2498
2512
|
content = tmp.childNodes;
|
2499
2513
|
}
|
2500
|
-
|
2514
|
+
|
2501
2515
|
for (var i=0, length = content.length, node; i < length; i++) {
|
2502
2516
|
// in case of NodeList unit, the elements will be removed out of the list during the appends
|
2503
2517
|
// therefore if that's an array we use the 'i' variable, and if it's a collection of nodes
|
@@ -2505,15 +2519,16 @@ function Element_createFragment(content) {
|
|
2505
2519
|
node = content[content.length === length ? i : 0];
|
2506
2520
|
fragment.appendChild(node instanceof Element ? node._ : node);
|
2507
2521
|
}
|
2508
|
-
|
2522
|
+
|
2509
2523
|
return fragment;
|
2510
2524
|
}
|
2511
2525
|
|
2526
|
+
|
2512
2527
|
/**
|
2513
2528
|
* this module contains the element unit styles related methods
|
2514
2529
|
*
|
2515
2530
|
* Credits:
|
2516
|
-
* Some of the functionality is inspired by
|
2531
|
+
* Some of the functionality is inspired by
|
2517
2532
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
2518
2533
|
* - MooTools (http://mootools.net) Copyright (C) Valerio Proietti
|
2519
2534
|
* - Dojo (www.dojotoolkit.org) Copyright (C) The Dojo Foundation
|
@@ -2532,7 +2547,7 @@ Element.include({
|
|
2532
2547
|
*/
|
2533
2548
|
setStyle: function(hash, value) {
|
2534
2549
|
var key, c_key, style = {}, element_style = this._.style;
|
2535
|
-
|
2550
|
+
|
2536
2551
|
if (value) { style[hash] = value; hash = style; }
|
2537
2552
|
else if(isString(hash)) {
|
2538
2553
|
hash.split(';').each(function(option) {
|
@@ -2543,11 +2558,11 @@ Element.include({
|
|
2543
2558
|
});
|
2544
2559
|
hash = style;
|
2545
2560
|
}
|
2546
|
-
|
2547
|
-
|
2561
|
+
|
2562
|
+
|
2548
2563
|
for (key in hash) {
|
2549
2564
|
c_key = key.indexOf('-') < 0 ? key : key.camelize();
|
2550
|
-
|
2565
|
+
|
2551
2566
|
if (key === 'opacity') {
|
2552
2567
|
if (Browser.IE) {
|
2553
2568
|
element_style.filter = 'alpha(opacity='+ hash[key] * 100 +')';
|
@@ -2557,13 +2572,13 @@ Element.include({
|
|
2557
2572
|
} else if (key === 'float') {
|
2558
2573
|
c_key = Browser.IE ? 'styleFloat' : 'cssFloat';
|
2559
2574
|
}
|
2560
|
-
|
2575
|
+
|
2561
2576
|
element_style[c_key] = hash[key];
|
2562
2577
|
}
|
2563
|
-
|
2578
|
+
|
2564
2579
|
return this;
|
2565
2580
|
},
|
2566
|
-
|
2581
|
+
|
2567
2582
|
/**
|
2568
2583
|
* returns style of the element
|
2569
2584
|
*
|
@@ -2575,7 +2590,7 @@ Element.include({
|
|
2575
2590
|
getStyle: function(key) {
|
2576
2591
|
return clean_style(this._.style, key) || clean_style(this.computedStyles(), key);
|
2577
2592
|
},
|
2578
|
-
|
2593
|
+
|
2579
2594
|
/**
|
2580
2595
|
* returns the hash of computed styles for the element
|
2581
2596
|
*
|
@@ -2586,17 +2601,17 @@ Element.include({
|
|
2586
2601
|
// old IE, IE8, W3C
|
2587
2602
|
return element.currentStyle || element.runtimeStyle || element.ownerDocument.defaultView.getComputedStyle(element, null) || {};
|
2588
2603
|
},
|
2589
|
-
|
2604
|
+
|
2590
2605
|
/**
|
2591
2606
|
* checks if the element has the given class name
|
2592
|
-
*
|
2607
|
+
*
|
2593
2608
|
* @param String class name
|
2594
2609
|
* @return boolean check result
|
2595
2610
|
*/
|
2596
2611
|
hasClass: function(name) {
|
2597
2612
|
return (' '+this._.className+' ').indexOf(' '+name+' ') != -1;
|
2598
2613
|
},
|
2599
|
-
|
2614
|
+
|
2600
2615
|
/**
|
2601
2616
|
* sets the whole class-name string for the element
|
2602
2617
|
*
|
@@ -2621,7 +2636,7 @@ Element.include({
|
|
2621
2636
|
}
|
2622
2637
|
return this;
|
2623
2638
|
},
|
2624
|
-
|
2639
|
+
|
2625
2640
|
/**
|
2626
2641
|
* removes the given class name
|
2627
2642
|
*
|
@@ -2632,7 +2647,7 @@ Element.include({
|
|
2632
2647
|
this._.className = (' '+this._.className+' ').replace(' '+name+' ', ' ').trim();
|
2633
2648
|
return this;
|
2634
2649
|
},
|
2635
|
-
|
2650
|
+
|
2636
2651
|
/**
|
2637
2652
|
* toggles the given class name on the element
|
2638
2653
|
*
|
@@ -2642,7 +2657,7 @@ Element.include({
|
|
2642
2657
|
toggleClass: function(name) {
|
2643
2658
|
return this[this.hasClass(name) ? 'removeClass' : 'addClass'](name);
|
2644
2659
|
},
|
2645
|
-
|
2660
|
+
|
2646
2661
|
/**
|
2647
2662
|
* adds the given class-name to the element
|
2648
2663
|
* and removes it from all the element siblings
|
@@ -2665,28 +2680,29 @@ Element.include({
|
|
2665
2680
|
*/
|
2666
2681
|
function clean_style(style, in_key) {
|
2667
2682
|
var value, key = in_key.camelize();
|
2668
|
-
|
2683
|
+
|
2669
2684
|
switch (key) {
|
2670
2685
|
case 'opacity':
|
2671
2686
|
value = !Browser.IE ? style[key].replace(',', '.') :
|
2672
2687
|
((/opacity=(\d+)/i.exec(style.filter || '') || ['', '100'])[1].toInt() / 100)+'';
|
2673
2688
|
break;
|
2674
|
-
|
2689
|
+
|
2675
2690
|
case 'float':
|
2676
2691
|
key = Browser.IE ? 'styleFloat' : 'cssFloat';
|
2677
|
-
|
2692
|
+
|
2678
2693
|
default:
|
2679
2694
|
value = style[key];
|
2680
|
-
|
2695
|
+
|
2681
2696
|
// Opera returns named colors with quotes
|
2682
2697
|
if (Browser.Opera && /color/i.test(key) && value) {
|
2683
2698
|
value = value.replace(/"/g, '');
|
2684
2699
|
}
|
2685
2700
|
}
|
2686
|
-
|
2701
|
+
|
2687
2702
|
return value || null;
|
2688
2703
|
}
|
2689
2704
|
|
2705
|
+
|
2690
2706
|
/**
|
2691
2707
|
* Common DOM Element unit methods
|
2692
2708
|
*
|
@@ -2706,9 +2722,9 @@ Element.include({
|
|
2706
2722
|
*/
|
2707
2723
|
set: function(hash, value) {
|
2708
2724
|
if (typeof(hash) === 'string') { var val = {}; val[hash] = value; hash = val; }
|
2709
|
-
|
2725
|
+
|
2710
2726
|
var key, element = this._;
|
2711
|
-
|
2727
|
+
|
2712
2728
|
for (key in hash) {
|
2713
2729
|
// some attributes are not available as properties
|
2714
2730
|
if (!(key in element)) {
|
@@ -2716,10 +2732,10 @@ Element.include({
|
|
2716
2732
|
}
|
2717
2733
|
element[key] = hash[key];
|
2718
2734
|
}
|
2719
|
-
|
2735
|
+
|
2720
2736
|
return this;
|
2721
2737
|
},
|
2722
|
-
|
2738
|
+
|
2723
2739
|
/**
|
2724
2740
|
* returns the attribute value for the name
|
2725
2741
|
*
|
@@ -2730,7 +2746,7 @@ Element.include({
|
|
2730
2746
|
var element = this._, value = element[name] || element.getAttribute(name);
|
2731
2747
|
return value === '' ? null : value;
|
2732
2748
|
},
|
2733
|
-
|
2749
|
+
|
2734
2750
|
/**
|
2735
2751
|
* checks if the element has that attribute
|
2736
2752
|
*
|
@@ -2740,7 +2756,7 @@ Element.include({
|
|
2740
2756
|
has: function(name) {
|
2741
2757
|
return this.get(name) !== null;
|
2742
2758
|
},
|
2743
|
-
|
2759
|
+
|
2744
2760
|
/**
|
2745
2761
|
* erases the given attribute of the element
|
2746
2762
|
*
|
@@ -2751,7 +2767,7 @@ Element.include({
|
|
2751
2767
|
this._.removeAttribute(name);
|
2752
2768
|
return this;
|
2753
2769
|
},
|
2754
|
-
|
2770
|
+
|
2755
2771
|
/**
|
2756
2772
|
* checks if the elemnt is hidden
|
2757
2773
|
*
|
@@ -2762,7 +2778,7 @@ Element.include({
|
|
2762
2778
|
hidden: function() {
|
2763
2779
|
return this.getStyle('display') === 'none';
|
2764
2780
|
},
|
2765
|
-
|
2781
|
+
|
2766
2782
|
/**
|
2767
2783
|
* checks if the element is visible
|
2768
2784
|
*
|
@@ -2771,7 +2787,7 @@ Element.include({
|
|
2771
2787
|
visible: function() {
|
2772
2788
|
return !this.hidden();
|
2773
2789
|
},
|
2774
|
-
|
2790
|
+
|
2775
2791
|
/**
|
2776
2792
|
* hides the element
|
2777
2793
|
*
|
@@ -2784,10 +2800,10 @@ Element.include({
|
|
2784
2800
|
this._d = this.getStyle('display');
|
2785
2801
|
this._.style.display = 'none';
|
2786
2802
|
}
|
2787
|
-
|
2803
|
+
|
2788
2804
|
return this;
|
2789
2805
|
},
|
2790
|
-
|
2806
|
+
|
2791
2807
|
/**
|
2792
2808
|
* shows the element
|
2793
2809
|
*
|
@@ -2799,13 +2815,13 @@ Element.include({
|
|
2799
2815
|
if (this.hidden()) {
|
2800
2816
|
// setting 'block' for the divs and 'inline' for the other elements hidden on the css-level
|
2801
2817
|
var element = this._, value = element.tagName == 'DIV' ? 'block' : 'inline';
|
2802
|
-
|
2818
|
+
|
2803
2819
|
element.style.display = this._d == 'none' ? value : this._d || value;
|
2804
2820
|
}
|
2805
|
-
|
2821
|
+
|
2806
2822
|
return this;
|
2807
2823
|
},
|
2808
|
-
|
2824
|
+
|
2809
2825
|
/**
|
2810
2826
|
* toggles the visibility state of the element
|
2811
2827
|
*
|
@@ -2814,9 +2830,9 @@ Element.include({
|
|
2814
2830
|
* @return Element self
|
2815
2831
|
*/
|
2816
2832
|
toggle: function(effect, options) {
|
2817
|
-
return this[this.
|
2833
|
+
return this[this.visible() ? 'hide' : 'show'](effect, options);
|
2818
2834
|
},
|
2819
|
-
|
2835
|
+
|
2820
2836
|
/**
|
2821
2837
|
* shows the element and hides all the sibligns
|
2822
2838
|
*
|
@@ -2830,8 +2846,9 @@ Element.include({
|
|
2830
2846
|
}
|
2831
2847
|
});
|
2832
2848
|
|
2849
|
+
|
2833
2850
|
/**
|
2834
|
-
* this module contains the Element's part of functionality
|
2851
|
+
* this module contains the Element's part of functionality
|
2835
2852
|
* responsible for the dimensions and positions getting/setting
|
2836
2853
|
*
|
2837
2854
|
* Copyright (C) 2008-2010 Nikolay Nemshilov
|
@@ -2845,7 +2862,7 @@ Element.include({
|
|
2845
2862
|
document: function() {
|
2846
2863
|
return $(this._.ownerDocument);
|
2847
2864
|
},
|
2848
|
-
|
2865
|
+
|
2849
2866
|
/**
|
2850
2867
|
* Returns the reference to this elements window
|
2851
2868
|
*
|
@@ -2854,7 +2871,7 @@ Element.include({
|
|
2854
2871
|
window: function() {
|
2855
2872
|
return this.document().window();
|
2856
2873
|
},
|
2857
|
-
|
2874
|
+
|
2858
2875
|
/**
|
2859
2876
|
* Returns the element size as a hash
|
2860
2877
|
*
|
@@ -2863,7 +2880,7 @@ Element.include({
|
|
2863
2880
|
size: function() {
|
2864
2881
|
return { x: this._.offsetWidth, y: this._.offsetHeight };
|
2865
2882
|
},
|
2866
|
-
|
2883
|
+
|
2867
2884
|
/**
|
2868
2885
|
* Returns the element absolute position
|
2869
2886
|
*
|
@@ -2875,13 +2892,13 @@ Element.include({
|
|
2875
2892
|
var rect = this._.getBoundingClientRect(),
|
2876
2893
|
html = this.document()._.documentElement,
|
2877
2894
|
scrolls = this.window().scrolls();
|
2878
|
-
|
2895
|
+
|
2879
2896
|
return {
|
2880
2897
|
x: rect.left + scrolls.x - html.clientLeft,
|
2881
2898
|
y: rect.top + scrolls.y - html.clientTop
|
2882
2899
|
};
|
2883
2900
|
},
|
2884
|
-
|
2901
|
+
|
2885
2902
|
/**
|
2886
2903
|
* Returns the element scrolls
|
2887
2904
|
*
|
@@ -2890,7 +2907,7 @@ Element.include({
|
|
2890
2907
|
scrolls: function() {
|
2891
2908
|
return { x: this._.scrollLeft, y: this._.scrollTop };
|
2892
2909
|
},
|
2893
|
-
|
2910
|
+
|
2894
2911
|
/**
|
2895
2912
|
* returns the element dimensions hash
|
2896
2913
|
*
|
@@ -2900,7 +2917,7 @@ Element.include({
|
|
2900
2917
|
var size = this.size(),
|
2901
2918
|
scrolls = this.scrolls(),
|
2902
2919
|
position = this.position();
|
2903
|
-
|
2920
|
+
|
2904
2921
|
return {
|
2905
2922
|
top: position.y,
|
2906
2923
|
left: position.x,
|
@@ -2910,7 +2927,7 @@ Element.include({
|
|
2910
2927
|
scrollTop: scrolls.y
|
2911
2928
|
};
|
2912
2929
|
},
|
2913
|
-
|
2930
|
+
|
2914
2931
|
/**
|
2915
2932
|
* Checks if the element overlaps the given position
|
2916
2933
|
*
|
@@ -2919,11 +2936,11 @@ Element.include({
|
|
2919
2936
|
*/
|
2920
2937
|
overlaps: function(target) {
|
2921
2938
|
var pos = this.position(), size = this.size();
|
2922
|
-
|
2939
|
+
|
2923
2940
|
return target.x > pos.x && target.x < (pos.x + size.x) &&
|
2924
2941
|
target.y > pos.y && target.y < (pos.y + size.y);
|
2925
2942
|
},
|
2926
|
-
|
2943
|
+
|
2927
2944
|
/**
|
2928
2945
|
* sets the width of the element in pixels
|
2929
2946
|
*
|
@@ -2939,7 +2956,7 @@ Element.include({
|
|
2939
2956
|
style.width = (2 * width_px - this._.offsetWidth) + 'px';
|
2940
2957
|
return this;
|
2941
2958
|
},
|
2942
|
-
|
2959
|
+
|
2943
2960
|
/**
|
2944
2961
|
* sets the width of the element in pixels
|
2945
2962
|
*
|
@@ -2955,7 +2972,7 @@ Element.include({
|
|
2955
2972
|
style.height = (2 * height_px - this._.offsetHeight) + 'px';
|
2956
2973
|
return this;
|
2957
2974
|
},
|
2958
|
-
|
2975
|
+
|
2959
2976
|
/**
|
2960
2977
|
* sets the size of the element in pixels
|
2961
2978
|
*
|
@@ -2973,7 +2990,7 @@ Element.include({
|
|
2973
2990
|
}
|
2974
2991
|
return this.setWidth(width).setHeight(height);
|
2975
2992
|
},
|
2976
|
-
|
2993
|
+
|
2977
2994
|
/**
|
2978
2995
|
* sets the element position (against the window corner)
|
2979
2996
|
*
|
@@ -2986,13 +3003,13 @@ Element.include({
|
|
2986
3003
|
top = left.y;
|
2987
3004
|
left = left.x;
|
2988
3005
|
}
|
2989
|
-
|
3006
|
+
|
2990
3007
|
return this.setStyle({
|
2991
3008
|
left: left + 'px',
|
2992
3009
|
top: top + 'px'
|
2993
3010
|
});
|
2994
3011
|
},
|
2995
|
-
|
3012
|
+
|
2996
3013
|
/**
|
2997
3014
|
* sets the scroll position
|
2998
3015
|
*
|
@@ -3005,13 +3022,13 @@ Element.include({
|
|
3005
3022
|
top = left.y;
|
3006
3023
|
left = left.x;
|
3007
3024
|
}
|
3008
|
-
|
3025
|
+
|
3009
3026
|
this._.scrollLeft = left;
|
3010
3027
|
this._.scrollTop = top;
|
3011
|
-
|
3028
|
+
|
3012
3029
|
return this;
|
3013
3030
|
},
|
3014
|
-
|
3031
|
+
|
3015
3032
|
/**
|
3016
3033
|
* makes the window be scrolled to the element
|
3017
3034
|
*
|
@@ -3024,10 +3041,11 @@ Element.include({
|
|
3024
3041
|
}
|
3025
3042
|
});
|
3026
3043
|
|
3044
|
+
|
3027
3045
|
/**
|
3028
3046
|
* DOM Element events handling methods
|
3029
3047
|
*
|
3030
|
-
* Copyright (C) 2008-2010 Nikolay
|
3048
|
+
* Copyright (C) 2008-2010 Nikolay Nemshilov
|
3031
3049
|
*/
|
3032
3050
|
var Element_observer = Observer_create({});
|
3033
3051
|
|
@@ -3041,29 +3059,31 @@ function hack_observer(name, re, text) {
|
|
3041
3059
|
Element_observer[name] = patch_function(Element_observer[name], re, text);
|
3042
3060
|
}
|
3043
3061
|
|
3044
|
-
hack_observer('on',
|
3062
|
+
hack_observer('on',
|
3045
3063
|
/(\$listeners\.push\((\w+?)\);)/,
|
3046
|
-
|
3064
|
+
|
3047
3065
|
// aliasing the 'rightclick' to the 'contextmenu' event
|
3048
3066
|
'$1$2.e=$2.n=$2.e==="rightclick"?"contextmenu":$2.e;'+
|
3049
|
-
|
3067
|
+
|
3050
3068
|
// swapping a browser related event names
|
3051
3069
|
(Browser.Gecko ? 'if($2.n==="mousewheel")$2.n="DOMMouseScroll";' : '') +
|
3052
3070
|
(Browser.Konqueror ? 'if($2.n==="contextmenu")$2.n="rightclick";' : '') +
|
3053
|
-
|
3071
|
+
|
3054
3072
|
'$2.w=function(){'+
|
3055
|
-
'var a=$A(arguments)
|
3056
|
-
'$2.
|
3057
|
-
|
3058
|
-
|
3059
|
-
|
3060
|
-
)
|
3073
|
+
'var a=$A(arguments),_;'+
|
3074
|
+
'$2.r&&$2.r!=="stopEvent"?a.shift():_=a[0]=new RightJS.Event(a[0],this);'+
|
3075
|
+
'$2.f.apply($2.t,a.concat($2.a))===false&&_.stop()'+
|
3076
|
+
'};$2.t=this;' + (
|
3077
|
+
looks_like_ie ?
|
3078
|
+
'$2.w=$2.w.bind(this);this._.attachEvent("on"+$2.n,$2.w);' :
|
3079
|
+
'this._.addEventListener($2.n,$2.w,false);'
|
3080
|
+
)
|
3061
3081
|
);
|
3062
3082
|
|
3063
3083
|
hack_observer('stopObserving',
|
3064
|
-
/(function\s*\((\w+)\)\s*\{\s*)(return\s*)([^}]+)/m,
|
3084
|
+
/(function\s*\((\w+)\)\s*\{\s*)(return\s*)([^}]+)/m,
|
3065
3085
|
'$1var r=$4;'+
|
3066
|
-
'if(!r)' + (looks_like_ie ?
|
3086
|
+
'if(!r)' + (looks_like_ie ?
|
3067
3087
|
'this._.detachEvent("on"+$2.n,$2.w);' :
|
3068
3088
|
'this._.removeEventListener($2.n,$2.w,false);'
|
3069
3089
|
)+'$3 r'
|
@@ -3105,7 +3125,7 @@ Observer_createShortcuts(Window[PROTO], $w('blur focus scroll resize load'));
|
|
3105
3125
|
function Element_add_event_shortcuts(tokens) {
|
3106
3126
|
tokens = $w(tokens);
|
3107
3127
|
Event_delegation_shortcuts = Event_delegation_shortcuts.concat(tokens);
|
3108
|
-
|
3128
|
+
|
3109
3129
|
Observer_createShortcuts(Element[PROTO], tokens);
|
3110
3130
|
Observer_createShortcuts(Document[PROTO], tokens);
|
3111
3131
|
}
|
@@ -3147,7 +3167,7 @@ function stub_rule(css_rule, tag) {
|
|
3147
3167
|
first: function(css_rule) {
|
3148
3168
|
return $(this._.querySelector(stub_rule(css_rule, this)));
|
3149
3169
|
},
|
3150
|
-
|
3170
|
+
|
3151
3171
|
/**
|
3152
3172
|
* Finds a list of matching nodes, or all the descendant nodes if no css-rule provided
|
3153
3173
|
*
|
@@ -3158,7 +3178,7 @@ function stub_rule(css_rule, tag) {
|
|
3158
3178
|
return $A(this._.querySelectorAll(stub_rule(css_rule, this))).map($);
|
3159
3179
|
}
|
3160
3180
|
});
|
3161
|
-
|
3181
|
+
|
3162
3182
|
Element.include({
|
3163
3183
|
/**
|
3164
3184
|
* checks if the element matches this css-rule
|
@@ -3170,12 +3190,12 @@ Element.include({
|
|
3170
3190
|
*/
|
3171
3191
|
match: function(css_rule) {
|
3172
3192
|
var result, parent = this._.tagName === 'HTML' ? this._.ownerDocument : this.parents().last();
|
3173
|
-
|
3193
|
+
|
3174
3194
|
// if it's a single node putting it into the context
|
3175
3195
|
result = $(parent || $E('p').insert(this)).find(css_rule).include(this);
|
3176
|
-
|
3196
|
+
|
3177
3197
|
if (!parent) { this.remove(); }
|
3178
|
-
|
3198
|
+
|
3179
3199
|
return result;
|
3180
3200
|
}
|
3181
3201
|
});
|
@@ -3192,17 +3212,17 @@ Element.include({
|
|
3192
3212
|
*/
|
3193
3213
|
[Window, Document].each(function(object) {
|
3194
3214
|
var proto = object[PROTO], old_on = proto.on;
|
3195
|
-
|
3215
|
+
|
3196
3216
|
// redefining the observer method to catch up
|
3197
3217
|
proto.on = function(name) {
|
3198
3218
|
if (name == 'ready' && !this._wR) {
|
3199
3219
|
var document = this._, ready = this.fire.bind(this, 'ready');
|
3200
3220
|
document = document.nodeType == 9 ? document : document.document;
|
3201
|
-
|
3221
|
+
|
3202
3222
|
// IE and Konqueror browsers
|
3203
3223
|
if ('readyState' in document) {
|
3204
3224
|
(function() {
|
3205
|
-
if (['loaded','complete'].includes(document.readyState)) {
|
3225
|
+
if (['loaded','complete'].includes(document.readyState)) {
|
3206
3226
|
ready();
|
3207
3227
|
} else {
|
3208
3228
|
arguments.callee.delay(50);
|
@@ -3211,12 +3231,12 @@ Element.include({
|
|
3211
3231
|
} else {
|
3212
3232
|
document.addEventListener('DOMContentLoaded', ready, false);
|
3213
3233
|
}
|
3214
|
-
|
3234
|
+
|
3215
3235
|
this._wR = true;
|
3216
3236
|
}
|
3217
3237
|
return old_on.apply(this, arguments);
|
3218
3238
|
};
|
3219
|
-
|
3239
|
+
|
3220
3240
|
Observer_createShortcuts(proto, ['ready']);
|
3221
3241
|
});
|
3222
3242
|
|
@@ -3242,6 +3262,7 @@ $alias(Window[PROTO], {
|
|
3242
3262
|
sizes: 'size'
|
3243
3263
|
});
|
3244
3264
|
|
3265
|
+
|
3245
3266
|
/**
|
3246
3267
|
* The form unit class and extensions
|
3247
3268
|
*
|
@@ -3267,19 +3288,19 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3267
3288
|
*/
|
3268
3289
|
initialize: function(in_options) {
|
3269
3290
|
var options = in_options || {}, remote = 'remote' in options, element = options;
|
3270
|
-
|
3291
|
+
|
3271
3292
|
if (isHash(options)) {
|
3272
3293
|
element = 'form';
|
3273
3294
|
options = Object.without(options, 'remote');
|
3274
3295
|
}
|
3275
|
-
|
3296
|
+
|
3276
3297
|
this.$super(element, options);
|
3277
|
-
|
3298
|
+
|
3278
3299
|
if (remote) {
|
3279
3300
|
this.remotize();
|
3280
3301
|
}
|
3281
3302
|
},
|
3282
|
-
|
3303
|
+
|
3283
3304
|
/**
|
3284
3305
|
* returns the form elements as an array of extended units
|
3285
3306
|
*
|
@@ -3288,7 +3309,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3288
3309
|
elements: function() {
|
3289
3310
|
return this.find('input,button,select,textarea');
|
3290
3311
|
},
|
3291
|
-
|
3312
|
+
|
3292
3313
|
/**
|
3293
3314
|
* returns the list of all the input elements on the form
|
3294
3315
|
*
|
@@ -3299,7 +3320,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3299
3320
|
return !['submit', 'button', 'reset', 'image', null].includes(input._.type);
|
3300
3321
|
});
|
3301
3322
|
},
|
3302
|
-
|
3323
|
+
|
3303
3324
|
/**
|
3304
3325
|
* Accessing an input by name
|
3305
3326
|
*
|
@@ -3309,7 +3330,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3309
3330
|
input: function(name) {
|
3310
3331
|
return $(this._[name]);
|
3311
3332
|
},
|
3312
|
-
|
3333
|
+
|
3313
3334
|
/**
|
3314
3335
|
* focuses on the first input element on the form
|
3315
3336
|
*
|
@@ -3319,12 +3340,12 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3319
3340
|
var element = this.inputs().first(function(input) {
|
3320
3341
|
return input._.type !== 'hidden';
|
3321
3342
|
});
|
3322
|
-
|
3343
|
+
|
3323
3344
|
if (element) { element.focus(); }
|
3324
|
-
|
3345
|
+
|
3325
3346
|
return this;
|
3326
3347
|
},
|
3327
|
-
|
3348
|
+
|
3328
3349
|
/**
|
3329
3350
|
* removes focus out of all the form elements
|
3330
3351
|
*
|
@@ -3334,7 +3355,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3334
3355
|
this.elements().each('blur');
|
3335
3356
|
return this;
|
3336
3357
|
},
|
3337
|
-
|
3358
|
+
|
3338
3359
|
/**
|
3339
3360
|
* disables all the elements on the form
|
3340
3361
|
*
|
@@ -3344,7 +3365,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3344
3365
|
this.elements().each('disable');
|
3345
3366
|
return this;
|
3346
3367
|
},
|
3347
|
-
|
3368
|
+
|
3348
3369
|
/**
|
3349
3370
|
* enables all the elements on the form
|
3350
3371
|
*
|
@@ -3354,7 +3375,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3354
3375
|
this.elements().each('enable');
|
3355
3376
|
return this;
|
3356
3377
|
},
|
3357
|
-
|
3378
|
+
|
3358
3379
|
/**
|
3359
3380
|
* returns the list of the form values
|
3360
3381
|
*
|
@@ -3362,7 +3383,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3362
3383
|
*/
|
3363
3384
|
values: function() {
|
3364
3385
|
var values = {}, value, name, element, input;
|
3365
|
-
|
3386
|
+
|
3366
3387
|
this.inputs().each(function(element) {
|
3367
3388
|
input = element._;
|
3368
3389
|
name = input.name;
|
@@ -3371,14 +3392,14 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3371
3392
|
if (name.endsWith('[]')) {
|
3372
3393
|
value = (values[name] || []).concat([value]);
|
3373
3394
|
}
|
3374
|
-
|
3395
|
+
|
3375
3396
|
values[name] = value;
|
3376
3397
|
}
|
3377
3398
|
});
|
3378
|
-
|
3399
|
+
|
3379
3400
|
return values;
|
3380
3401
|
},
|
3381
|
-
|
3402
|
+
|
3382
3403
|
/**
|
3383
3404
|
* returns the key/values organized ready to be sent via a get request
|
3384
3405
|
*
|
@@ -3387,7 +3408,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3387
3408
|
serialize: function() {
|
3388
3409
|
return Object.toQueryString(this.values());
|
3389
3410
|
},
|
3390
|
-
|
3411
|
+
|
3391
3412
|
/**
|
3392
3413
|
* Delegating the submit method
|
3393
3414
|
*
|
@@ -3397,7 +3418,7 @@ var Form = RightJS.Form = Element_wrappers.FORM = new Wrapper(Element, {
|
|
3397
3418
|
this._.submit();
|
3398
3419
|
return this;
|
3399
3420
|
},
|
3400
|
-
|
3421
|
+
|
3401
3422
|
/**
|
3402
3423
|
* Delegating the 'reset' method
|
3403
3424
|
*
|
@@ -3425,13 +3446,13 @@ $alias(Form[PROTO], {
|
|
3425
3446
|
*/
|
3426
3447
|
var old_insert = Element[PROTO].insert,
|
3427
3448
|
|
3428
|
-
Input = RightJS.Input =
|
3449
|
+
Input = RightJS.Input =
|
3429
3450
|
|
3430
3451
|
// retgistering the typecasted wrappers
|
3431
|
-
Element_wrappers.INPUT =
|
3452
|
+
Element_wrappers.INPUT =
|
3432
3453
|
Element_wrappers.BUTTON =
|
3433
3454
|
Element_wrappers.SELECT =
|
3434
|
-
Element_wrappers.TEXTAREA =
|
3455
|
+
Element_wrappers.TEXTAREA =
|
3435
3456
|
Element_wrappers.OPTGROUP =
|
3436
3457
|
|
3437
3458
|
new Wrapper(Element, {
|
@@ -3455,7 +3476,7 @@ new Wrapper(Element, {
|
|
3455
3476
|
// type to tag name conversion
|
3456
3477
|
if (!element || isHash(element)) {
|
3457
3478
|
options = element || {};
|
3458
|
-
|
3479
|
+
|
3459
3480
|
if (/textarea|select/.test(options.type || '')) {
|
3460
3481
|
element = options.type;
|
3461
3482
|
delete(options.type);
|
@@ -3463,10 +3484,10 @@ new Wrapper(Element, {
|
|
3463
3484
|
element = 'input';
|
3464
3485
|
}
|
3465
3486
|
}
|
3466
|
-
|
3487
|
+
|
3467
3488
|
this.$super(element, options);
|
3468
3489
|
},
|
3469
|
-
|
3490
|
+
|
3470
3491
|
/**
|
3471
3492
|
* Returns a reference to the input's form
|
3472
3493
|
*
|
@@ -3475,7 +3496,7 @@ new Wrapper(Element, {
|
|
3475
3496
|
form: function() {
|
3476
3497
|
return $(this._.form);
|
3477
3498
|
},
|
3478
|
-
|
3499
|
+
|
3479
3500
|
/**
|
3480
3501
|
* SELECT element has a bug in FF that screws the selected options
|
3481
3502
|
*
|
@@ -3485,17 +3506,17 @@ new Wrapper(Element, {
|
|
3485
3506
|
*/
|
3486
3507
|
insert: function(content, position) {
|
3487
3508
|
old_insert.call(this, content, position);
|
3488
|
-
|
3509
|
+
|
3489
3510
|
// FF doesn't marks selected options correctly with a textual content
|
3490
3511
|
if (this._.tagName === 'SELECT' && isString(content)) {
|
3491
3512
|
$A(this._.getElementsByTagName('option')).each(function(option) {
|
3492
3513
|
option.selected = !!option.getAttribute('selected');
|
3493
3514
|
});
|
3494
3515
|
}
|
3495
|
-
|
3516
|
+
|
3496
3517
|
return this;
|
3497
3518
|
},
|
3498
|
-
|
3519
|
+
|
3499
3520
|
/**
|
3500
3521
|
* Overloading the method so it always called the '#insert' method
|
3501
3522
|
*
|
@@ -3505,7 +3526,7 @@ new Wrapper(Element, {
|
|
3505
3526
|
update: function(content) {
|
3506
3527
|
return this.clean().insert(content);
|
3507
3528
|
},
|
3508
|
-
|
3529
|
+
|
3509
3530
|
/**
|
3510
3531
|
* uniform access to the element values
|
3511
3532
|
*
|
@@ -3538,7 +3559,7 @@ new Wrapper(Element, {
|
|
3538
3559
|
}
|
3539
3560
|
return this;
|
3540
3561
|
},
|
3541
|
-
|
3562
|
+
|
3542
3563
|
/**
|
3543
3564
|
* Both ways getter/setter for the value parameter
|
3544
3565
|
*
|
@@ -3548,7 +3569,7 @@ new Wrapper(Element, {
|
|
3548
3569
|
value: function(value) {
|
3549
3570
|
return this[value === undefined ? 'getValue' : 'setValue'](value);
|
3550
3571
|
},
|
3551
|
-
|
3572
|
+
|
3552
3573
|
/**
|
3553
3574
|
* focuses on the first input element on the form
|
3554
3575
|
*
|
@@ -3560,7 +3581,7 @@ new Wrapper(Element, {
|
|
3560
3581
|
if (Browser.IE) { this.fire('focus', {bubbles: false}); }
|
3561
3582
|
return this;
|
3562
3583
|
},
|
3563
|
-
|
3584
|
+
|
3564
3585
|
/**
|
3565
3586
|
* removes focus out of all the form elements
|
3566
3587
|
*
|
@@ -3572,7 +3593,7 @@ new Wrapper(Element, {
|
|
3572
3593
|
if (Browser.IE) { this.fire('blur', {bubbles: false}); }
|
3573
3594
|
return this;
|
3574
3595
|
},
|
3575
|
-
|
3596
|
+
|
3576
3597
|
/**
|
3577
3598
|
* focuses on the element and selects its content
|
3578
3599
|
*
|
@@ -3582,7 +3603,7 @@ new Wrapper(Element, {
|
|
3582
3603
|
this._.select();
|
3583
3604
|
return this.focus();
|
3584
3605
|
},
|
3585
|
-
|
3606
|
+
|
3586
3607
|
/**
|
3587
3608
|
* disables all the elements on the form
|
3588
3609
|
*
|
@@ -3592,7 +3613,7 @@ new Wrapper(Element, {
|
|
3592
3613
|
this._.disabled = true;
|
3593
3614
|
return this.fire('disable');
|
3594
3615
|
},
|
3595
|
-
|
3616
|
+
|
3596
3617
|
/**
|
3597
3618
|
* enables all the elements on the form
|
3598
3619
|
*
|
@@ -3601,6 +3622,33 @@ new Wrapper(Element, {
|
|
3601
3622
|
enable: function() {
|
3602
3623
|
this._.disabled = false;
|
3603
3624
|
return this.fire('enable');
|
3625
|
+
},
|
3626
|
+
|
3627
|
+
/**
|
3628
|
+
* A bidirectional method to set/get the disabled status of the input field
|
3629
|
+
*
|
3630
|
+
* @param boolean optional value
|
3631
|
+
* @return Input in setter mode boolean in getter
|
3632
|
+
*/
|
3633
|
+
disabled: function(value) {
|
3634
|
+
return value === undefined ? this._.disabled : this[value ? 'disable' : 'enable']();
|
3635
|
+
},
|
3636
|
+
|
3637
|
+
/**
|
3638
|
+
* A bidirectional method to set/get the checked status of the input field
|
3639
|
+
*
|
3640
|
+
* @param boolean optional value
|
3641
|
+
* @return Input in setter mode boolean in getter
|
3642
|
+
*/
|
3643
|
+
checked: function(value) {
|
3644
|
+
if (value === undefined) {
|
3645
|
+
value = this._.checked;
|
3646
|
+
} else {
|
3647
|
+
this._.checked = value;
|
3648
|
+
value = this;
|
3649
|
+
}
|
3650
|
+
|
3651
|
+
return value;
|
3604
3652
|
}
|
3605
3653
|
});
|
3606
3654
|
|
@@ -3629,9 +3677,9 @@ function focus_boobler(raw_event) {
|
|
3629
3677
|
var event = new Event(raw_event),
|
3630
3678
|
target = event.target,
|
3631
3679
|
parent = target.parent && target.parent();
|
3632
|
-
|
3680
|
+
|
3633
3681
|
event.type = (raw_event.type === 'focusin' || raw_event.type === 'focus') ? 'focus' : 'blur';
|
3634
|
-
|
3682
|
+
|
3635
3683
|
if (parent) { parent.fire(event); }
|
3636
3684
|
}
|
3637
3685
|
|
@@ -3671,7 +3719,7 @@ if (!event_support_for('onsubmit', 'form')) {
|
|
3671
3719
|
var submit_boobler = function(raw_event) {
|
3672
3720
|
var event = $(raw_event), element = event.target._,
|
3673
3721
|
type = element.type, form = element.form, parent;
|
3674
|
-
|
3722
|
+
|
3675
3723
|
if (form && (parent = $(form).parent()) && (
|
3676
3724
|
(raw_event.keyCode === 13 && (type === 'text' || type === 'password')) ||
|
3677
3725
|
(raw_event.type === 'click' && (type === 'submit' || type === 'image'))
|
@@ -3681,21 +3729,21 @@ if (!event_support_for('onsubmit', 'form')) {
|
|
3681
3729
|
parent.fire(event);
|
3682
3730
|
}
|
3683
3731
|
};
|
3684
|
-
|
3732
|
+
|
3685
3733
|
document.attachEvent('onclick', submit_boobler);
|
3686
3734
|
document.attachEvent('onkeypress', submit_boobler);
|
3687
3735
|
}
|
3688
3736
|
|
3689
3737
|
if (!event_support_for('onchange', 'input')) {
|
3690
|
-
|
3738
|
+
|
3691
3739
|
var get_input_value = function(target) {
|
3692
3740
|
var element = target._,
|
3693
3741
|
type = element.type;
|
3694
|
-
|
3742
|
+
|
3695
3743
|
return type === 'radio' || type === 'checkbox' ?
|
3696
3744
|
element.checked : target.getValue();
|
3697
3745
|
},
|
3698
|
-
|
3746
|
+
|
3699
3747
|
/**
|
3700
3748
|
* Emulates the 'change' event bubbling
|
3701
3749
|
*
|
@@ -3713,7 +3761,7 @@ if (!event_support_for('onchange', 'input')) {
|
|
3713
3761
|
parent.fire(event);
|
3714
3762
|
}
|
3715
3763
|
},
|
3716
|
-
|
3764
|
+
|
3717
3765
|
/**
|
3718
3766
|
* Catches the input field changes
|
3719
3767
|
*
|
@@ -3726,7 +3774,7 @@ if (!event_support_for('onchange', 'input')) {
|
|
3726
3774
|
type = target._.type,
|
3727
3775
|
tag = target._.tagName,
|
3728
3776
|
input_is_radio = (type === 'radio' || type === 'checkbox');
|
3729
|
-
|
3777
|
+
|
3730
3778
|
if (
|
3731
3779
|
(event.type === 'click' && (input_is_radio || tag === 'SELECT')) ||
|
3732
3780
|
(event.type === 'keydown' && (
|
@@ -3737,7 +3785,7 @@ if (!event_support_for('onchange', 'input')) {
|
|
3737
3785
|
change_boobler(event, target);
|
3738
3786
|
}
|
3739
3787
|
},
|
3740
|
-
|
3788
|
+
|
3741
3789
|
/**
|
3742
3790
|
* Catch inputs blur
|
3743
3791
|
*
|
@@ -3747,29 +3795,30 @@ if (!event_support_for('onchange', 'input')) {
|
|
3747
3795
|
catch_input_left = function(raw_event) {
|
3748
3796
|
var event = $(raw_event),
|
3749
3797
|
target = event.target;
|
3750
|
-
|
3798
|
+
|
3751
3799
|
if (target instanceof Input) {
|
3752
3800
|
change_boobler(event, target);
|
3753
3801
|
}
|
3754
3802
|
};
|
3755
|
-
|
3803
|
+
|
3756
3804
|
document.attachEvent('onclick', catch_inputs_access);
|
3757
3805
|
document.attachEvent('onkeydown', catch_inputs_access);
|
3758
3806
|
document.attachEvent('onfocusout', catch_input_left);
|
3759
|
-
|
3807
|
+
|
3760
3808
|
/**
|
3761
3809
|
* storing the input element previous value, so we could figure out
|
3762
3810
|
* if it was changed later on
|
3763
3811
|
*/
|
3764
3812
|
document.attachEvent('onbeforeactivate', function(event) {
|
3765
3813
|
var element = $(event).target;
|
3766
|
-
|
3814
|
+
|
3767
3815
|
if (element instanceof Input) {
|
3768
3816
|
element._prev_value = get_input_value(element);
|
3769
3817
|
}
|
3770
3818
|
});
|
3771
3819
|
}
|
3772
3820
|
|
3821
|
+
|
3773
3822
|
/**
|
3774
3823
|
* This module the standard events delegation interface
|
3775
3824
|
*
|
@@ -3803,15 +3852,15 @@ if (!event_support_for('onchange', 'input')) {
|
|
3803
3852
|
for (i=0, list = rules[css_rule]; i < list.length; i++) {
|
3804
3853
|
// registering the delegative listener
|
3805
3854
|
this.on(event, build_delegative_listener(css_rule, list[i], this));
|
3806
|
-
|
3855
|
+
|
3807
3856
|
// adding the css-rule and callback references to the store
|
3808
3857
|
$ext(this.$listeners.last(), { dr: css_rule, dc: list[i][0] });
|
3809
3858
|
}
|
3810
3859
|
}
|
3811
|
-
|
3860
|
+
|
3812
3861
|
return this;
|
3813
3862
|
},
|
3814
|
-
|
3863
|
+
|
3815
3864
|
/**
|
3816
3865
|
* Removes a delegative event listener from the element
|
3817
3866
|
*
|
@@ -3839,10 +3888,10 @@ if (!event_support_for('onchange', 'input')) {
|
|
3839
3888
|
delegation_listeners(arguments, this).each(function(h) {
|
3840
3889
|
this.stopObserving(h.n, h.f);
|
3841
3890
|
}, this);
|
3842
|
-
|
3891
|
+
|
3843
3892
|
return this;
|
3844
3893
|
},
|
3845
|
-
|
3894
|
+
|
3846
3895
|
/**
|
3847
3896
|
* Checks if there is sucha delegative event listener
|
3848
3897
|
*
|
@@ -3897,7 +3946,7 @@ function build_delegative_listener(css_rule, entry, scope) {
|
|
3897
3946
|
*/
|
3898
3947
|
function delegation_rules(raw_args) {
|
3899
3948
|
var args = $A(raw_args), rules = args[1] || {}, hash = {}, css_rule;
|
3900
|
-
|
3949
|
+
|
3901
3950
|
if (isString(rules)) {
|
3902
3951
|
hash[rules] = args.slice(2);
|
3903
3952
|
if (isArray(hash[rules][0])) {
|
@@ -3906,13 +3955,13 @@ function delegation_rules(raw_args) {
|
|
3906
3955
|
} else {
|
3907
3956
|
hash = rules;
|
3908
3957
|
}
|
3909
|
-
|
3958
|
+
|
3910
3959
|
// converting everything into a hash of lists of callbacks
|
3911
3960
|
for (css_rule in hash) {
|
3912
3961
|
hash[css_rule] = ensure_array(hash[css_rule]);
|
3913
3962
|
hash[css_rule] = isArray(hash[css_rule][0]) ? hash[css_rule] : [hash[css_rule]];
|
3914
3963
|
}
|
3915
|
-
|
3964
|
+
|
3916
3965
|
return hash;
|
3917
3966
|
}
|
3918
3967
|
|
@@ -3927,7 +3976,7 @@ function delegation_listeners(args, object) {
|
|
3927
3976
|
var event = args[0], i, list,
|
3928
3977
|
rules = delegation_rules(args),
|
3929
3978
|
rules_are_empty = !Object.keys(rules).length;
|
3930
|
-
|
3979
|
+
|
3931
3980
|
return (object.$listeners || []).filter(function(hash) {
|
3932
3981
|
return hash.dr && hash.n === event && (
|
3933
3982
|
rules_are_empty || (function() {
|
@@ -3940,7 +3989,7 @@ function delegation_listeners(args, object) {
|
|
3940
3989
|
}
|
3941
3990
|
}
|
3942
3991
|
}
|
3943
|
-
|
3992
|
+
|
3944
3993
|
return false;
|
3945
3994
|
})()
|
3946
3995
|
);
|
@@ -3983,19 +4032,30 @@ Object.each({
|
|
3983
4032
|
}, function(name, method) {
|
3984
4033
|
String[PROTO][name] = function() {
|
3985
4034
|
var doc = $(document), args = $A(arguments), result;
|
3986
|
-
|
4035
|
+
|
3987
4036
|
args.splice(1,0,''+this);
|
3988
4037
|
result = doc[method].apply(doc, args);
|
3989
|
-
|
4038
|
+
|
3990
4039
|
return result === doc ? this : result;
|
3991
4040
|
};
|
3992
4041
|
});
|
4042
|
+
var old_on = String[PROTO].on;
|
4043
|
+
String[PROTO].on = function(hash) {
|
4044
|
+
if (isHash(hash)) {
|
4045
|
+
for (var key in hash) {
|
4046
|
+
old_on.apply(this, [key].concat([hash[key]]));
|
4047
|
+
}
|
4048
|
+
} else {
|
4049
|
+
old_on.apply(this, arguments);
|
4050
|
+
}
|
4051
|
+
return this;
|
4052
|
+
};
|
3993
4053
|
|
3994
4054
|
/**
|
3995
4055
|
* building the list of String#onEvent shortucts
|
3996
4056
|
*
|
3997
4057
|
* USAGE:
|
3998
|
-
*
|
4058
|
+
*
|
3999
4059
|
* "#css.rule".onClick(function() {...});
|
4000
4060
|
* "#css.rule".onMouseover('method_name');
|
4001
4061
|
*/
|
@@ -4005,6 +4065,7 @@ Event_delegation_shortcuts.each(function(name) {
|
|
4005
4065
|
};
|
4006
4066
|
});
|
4007
4067
|
|
4068
|
+
|
4008
4069
|
/**
|
4009
4070
|
* XMLHttpRequest wrapper
|
4010
4071
|
*
|
@@ -4020,7 +4081,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4020
4081
|
extend: {
|
4021
4082
|
// supported events list
|
4022
4083
|
EVENTS: $w('success failure complete request cancel create'),
|
4023
|
-
|
4084
|
+
|
4024
4085
|
// default options
|
4025
4086
|
Options: {
|
4026
4087
|
headers: {
|
@@ -4042,7 +4103,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4042
4103
|
iframed: false,
|
4043
4104
|
jsonp: false
|
4044
4105
|
},
|
4045
|
-
|
4106
|
+
|
4046
4107
|
/**
|
4047
4108
|
* Shortcut to initiate and send an XHR in a single call
|
4048
4109
|
*
|
@@ -4054,7 +4115,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4054
4115
|
return new this(url, Object.merge({method: 'get'}, options)).send();
|
4055
4116
|
}
|
4056
4117
|
},
|
4057
|
-
|
4118
|
+
|
4058
4119
|
/**
|
4059
4120
|
* basic constructor
|
4060
4121
|
*
|
@@ -4063,20 +4124,20 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4063
4124
|
*/
|
4064
4125
|
initialize: function(url, options) {
|
4065
4126
|
this.initCallbacks(); // system level callbacks should be initialized before the user callbacks
|
4066
|
-
|
4127
|
+
|
4067
4128
|
this.url = url;
|
4068
4129
|
|
4069
4130
|
// copying some options to the instance level attributes
|
4070
4131
|
$ext(this.$super(options), this.options);
|
4071
|
-
|
4132
|
+
|
4072
4133
|
// removing the local spinner if it's the same as the global one
|
4073
4134
|
if (Xhr.Options.spinner && $(this.spinner) === $(Xhr.Options.spinner)) {
|
4074
4135
|
this.spinner = null;
|
4075
4136
|
}
|
4076
4137
|
},
|
4077
|
-
|
4138
|
+
|
4078
4139
|
/**
|
4079
|
-
* sets a header
|
4140
|
+
* sets a header
|
4080
4141
|
*
|
4081
4142
|
* @param name String header name
|
4082
4143
|
* @param value String header value
|
@@ -4086,7 +4147,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4086
4147
|
this.headers[name] = value;
|
4087
4148
|
return this;
|
4088
4149
|
},
|
4089
|
-
|
4150
|
+
|
4090
4151
|
/**
|
4091
4152
|
* tries to get a response header
|
4092
4153
|
*
|
@@ -4099,7 +4160,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4099
4160
|
} catch(e) {}
|
4100
4161
|
return value;
|
4101
4162
|
},
|
4102
|
-
|
4163
|
+
|
4103
4164
|
/**
|
4104
4165
|
* checks if the request was successful
|
4105
4166
|
*
|
@@ -4108,7 +4169,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4108
4169
|
successful: function() {
|
4109
4170
|
return (this.status >= 200) && (this.status < 300);
|
4110
4171
|
},
|
4111
|
-
|
4172
|
+
|
4112
4173
|
/**
|
4113
4174
|
* performs the actual request sending
|
4114
4175
|
*
|
@@ -4117,46 +4178,46 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4117
4178
|
*/
|
4118
4179
|
send: function(params) {
|
4119
4180
|
var add_params = {}, url = this.url, method = this.method.toLowerCase(), headers = this.headers, key, xhr;
|
4120
|
-
|
4181
|
+
|
4121
4182
|
if (method == 'put' || method == 'delete') {
|
4122
4183
|
add_params._method = method;
|
4123
4184
|
method = 'post';
|
4124
4185
|
}
|
4125
|
-
|
4186
|
+
|
4126
4187
|
var data = this.prepareData(this.params, this.prepareParams(params), add_params);
|
4127
|
-
|
4188
|
+
|
4128
4189
|
if (this.urlEncoded && method == 'post' && !headers['Content-type']) {
|
4129
4190
|
this.setHeader('Content-type', 'application/x-www-form-urlencoded;charset='+this.encoding);
|
4130
4191
|
}
|
4131
|
-
|
4192
|
+
|
4132
4193
|
if (method == 'get') {
|
4133
4194
|
if (data) { url += (url.includes('?') ? '&' : '?') + data; }
|
4134
4195
|
data = null;
|
4135
4196
|
}
|
4136
|
-
|
4197
|
+
|
4137
4198
|
xhr = this.xhr = this.createXhr();
|
4138
4199
|
this.fire('create');
|
4139
|
-
|
4200
|
+
|
4140
4201
|
xhr.open(method, url, this.async);
|
4141
|
-
|
4202
|
+
|
4142
4203
|
xhr.onreadystatechange = this.stateChanged.bind(this);
|
4143
|
-
|
4204
|
+
|
4144
4205
|
for (key in headers) {
|
4145
4206
|
xhr.setRequestHeader(key, headers[key]);
|
4146
4207
|
}
|
4147
|
-
|
4208
|
+
|
4148
4209
|
xhr.send(data);
|
4149
4210
|
this.fire('request');
|
4150
|
-
|
4211
|
+
|
4151
4212
|
if (!this.async) { this.stateChanged(); }
|
4152
|
-
|
4213
|
+
|
4153
4214
|
return this;
|
4154
4215
|
},
|
4155
|
-
|
4216
|
+
|
4156
4217
|
/**
|
4157
|
-
* elements automaticall update method, creates an Xhr request
|
4218
|
+
* elements automaticall update method, creates an Xhr request
|
4158
4219
|
* and updates the element innerHTML value onSuccess.
|
4159
|
-
*
|
4220
|
+
*
|
4160
4221
|
* @param Element element
|
4161
4222
|
* @param Object optional request params
|
4162
4223
|
* @return Xhr self
|
@@ -4164,7 +4225,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4164
4225
|
update: function(element, params) {
|
4165
4226
|
return this.onSuccess(function(r) { element.update(r.text); }).send(params);
|
4166
4227
|
},
|
4167
|
-
|
4228
|
+
|
4168
4229
|
/**
|
4169
4230
|
* stops the request processing
|
4170
4231
|
*
|
@@ -4172,22 +4233,22 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4172
4233
|
*/
|
4173
4234
|
cancel: function() {
|
4174
4235
|
var xhr = this.xhr;
|
4175
|
-
|
4236
|
+
|
4176
4237
|
if (!xhr || xhr.canceled) { return this; }
|
4177
|
-
|
4238
|
+
|
4178
4239
|
xhr.abort();
|
4179
4240
|
xhr.onreadystatechange = dummy();
|
4180
4241
|
xhr.canceled = true;
|
4181
|
-
|
4242
|
+
|
4182
4243
|
return this.fire('cancel');
|
4183
4244
|
},
|
4184
|
-
|
4245
|
+
|
4185
4246
|
// protected
|
4186
4247
|
// wrapping the original method to send references to the xhr objects
|
4187
4248
|
fire: function(name) {
|
4188
4249
|
return this.$super(name, this, this.xhr);
|
4189
4250
|
},
|
4190
|
-
|
4251
|
+
|
4191
4252
|
// creates new request instance
|
4192
4253
|
createXhr: function() {
|
4193
4254
|
if (this.jsonp) {
|
@@ -4202,7 +4263,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4202
4263
|
}
|
4203
4264
|
}
|
4204
4265
|
},
|
4205
|
-
|
4266
|
+
|
4206
4267
|
// prepares user sending params
|
4207
4268
|
prepareParams: function(params) {
|
4208
4269
|
if (params && params instanceof Form) {
|
@@ -4211,7 +4272,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4211
4272
|
}
|
4212
4273
|
return params;
|
4213
4274
|
},
|
4214
|
-
|
4275
|
+
|
4215
4276
|
// converts all the params into a url params string
|
4216
4277
|
prepareData: function() {
|
4217
4278
|
return $A(arguments).map(function(param) {
|
@@ -4225,22 +4286,22 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4225
4286
|
// handles the state change
|
4226
4287
|
stateChanged: function() {
|
4227
4288
|
var xhr = this.xhr;
|
4228
|
-
|
4289
|
+
|
4229
4290
|
if (xhr.readyState != 4 || xhr.canceled) { return; }
|
4230
|
-
|
4291
|
+
|
4231
4292
|
try { this.status = xhr.status;
|
4232
4293
|
} catch(e) { this.status = 0; }
|
4233
|
-
|
4294
|
+
|
4234
4295
|
this.text = this.responseText = xhr.responseText;
|
4235
4296
|
this.xml = this.responseXML = xhr.responseXML;
|
4236
|
-
|
4297
|
+
|
4237
4298
|
this.fire('complete').fire(this.successful() ? 'success' : 'failure');
|
4238
4299
|
},
|
4239
|
-
|
4300
|
+
|
4240
4301
|
// called on success
|
4241
4302
|
tryScripts: function(response) {
|
4242
4303
|
var content_type = this.getHeader('Content-type');
|
4243
|
-
|
4304
|
+
|
4244
4305
|
if (this.evalResponse || (this.evalJS && /(ecma|java)script/i.test(content_type))) {
|
4245
4306
|
$eval(this.text);
|
4246
4307
|
} else if (/json/.test(content_type) && this.evalJSON) {
|
@@ -4249,7 +4310,7 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4249
4310
|
this.text.evalScripts();
|
4250
4311
|
}
|
4251
4312
|
},
|
4252
|
-
|
4313
|
+
|
4253
4314
|
// sanitizes the json-response texts
|
4254
4315
|
sanitizedJSON: function() {
|
4255
4316
|
try {
|
@@ -4257,17 +4318,17 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4257
4318
|
} catch(e) {
|
4258
4319
|
// manual json consistancy check
|
4259
4320
|
if (window.JSON || !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(this.text.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) {
|
4260
|
-
if (this.secureJSON) {
|
4321
|
+
if (this.secureJSON) {
|
4261
4322
|
throw "JSON error: "+this.text;
|
4262
4323
|
}
|
4263
4324
|
return null;
|
4264
4325
|
}
|
4265
4326
|
}
|
4266
|
-
|
4327
|
+
|
4267
4328
|
// the fallback JSON extraction
|
4268
4329
|
return eval("("+this.text+")");
|
4269
4330
|
},
|
4270
|
-
|
4331
|
+
|
4271
4332
|
// initializes the request callbacks
|
4272
4333
|
initCallbacks: function() {
|
4273
4334
|
// connecting basic callbacks
|
@@ -4277,13 +4338,13 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4277
4338
|
complete: 'hideSpinner',
|
4278
4339
|
cancel: 'hideSpinner'
|
4279
4340
|
});
|
4280
|
-
|
4341
|
+
|
4281
4342
|
// wiring the global xhr callbacks
|
4282
4343
|
Xhr.EVENTS.each(function(name) {
|
4283
4344
|
this.on(name, function() { Xhr.fire(name, this, this.xhr); });
|
4284
4345
|
}, this);
|
4285
4346
|
},
|
4286
|
-
|
4347
|
+
|
4287
4348
|
showSpinner: function() { Xhr.showSpinner.call(this, this); },
|
4288
4349
|
hideSpinner: function() { Xhr.hideSpinner.call(this, this); }
|
4289
4350
|
});
|
@@ -4291,28 +4352,28 @@ var Xhr = RightJS.Xhr = new Class(Observer, {
|
|
4291
4352
|
// attaching the common spinner handling
|
4292
4353
|
$ext(Observer_create(Xhr), {
|
4293
4354
|
counter: 0,
|
4294
|
-
|
4355
|
+
|
4295
4356
|
// shows the spinner
|
4296
4357
|
showSpinner: function(context) {
|
4297
4358
|
Xhr.trySpinner(context, 'show');
|
4298
4359
|
},
|
4299
|
-
|
4360
|
+
|
4300
4361
|
// hides the spinner
|
4301
4362
|
hideSpinner: function(context) {
|
4302
4363
|
Xhr.trySpinner(context, 'hide');
|
4303
4364
|
},
|
4304
|
-
|
4365
|
+
|
4305
4366
|
trySpinner: function(context, method) {
|
4306
4367
|
var object = context || Xhr.Options, spinner = $(object.spinner);
|
4307
4368
|
if (spinner) { spinner[method](object.spinnerFx, {duration: 100}); }
|
4308
4369
|
},
|
4309
|
-
|
4370
|
+
|
4310
4371
|
// counts a request in
|
4311
4372
|
countIn: function() {
|
4312
4373
|
Xhr.counter ++;
|
4313
4374
|
Xhr.showSpinner();
|
4314
4375
|
},
|
4315
|
-
|
4376
|
+
|
4316
4377
|
// counts a request out
|
4317
4378
|
countOut: function() {
|
4318
4379
|
Xhr.counter --;
|
@@ -4362,9 +4423,9 @@ Form.include({
|
|
4362
4423
|
options.method = options.method || this._.method || 'post';
|
4363
4424
|
|
4364
4425
|
new Xhr(this._.action || document.location.href, options)
|
4365
|
-
.onRequest((function() {this.disable.bind(this).delay(20);}).bind(this))
|
4366
4426
|
.onComplete(this.enable.bind(this)).send(this);
|
4367
4427
|
|
4428
|
+
this.disable.bind(this).delay(1); // webkit needs this async call with iframed calls
|
4368
4429
|
return this;
|
4369
4430
|
},
|
4370
4431
|
|
@@ -4419,6 +4480,7 @@ Element.include({
|
|
4419
4480
|
}
|
4420
4481
|
});
|
4421
4482
|
|
4483
|
+
|
4422
4484
|
/**
|
4423
4485
|
* A dummy XmlHTTPRequest interface to be used in other
|
4424
4486
|
* fake requests
|
@@ -4441,7 +4503,7 @@ Xhr.Dummy = {
|
|
4441
4503
|
*/
|
4442
4504
|
Xhr.IFramed = new Class({
|
4443
4505
|
include: Xhr.Dummy,
|
4444
|
-
|
4506
|
+
|
4445
4507
|
/**
|
4446
4508
|
* constructor
|
4447
4509
|
*
|
@@ -4451,30 +4513,31 @@ Xhr.IFramed = new Class({
|
|
4451
4513
|
initialize: function(form) {
|
4452
4514
|
this.form = form;
|
4453
4515
|
this.id = 'xhr_'+ new Date().getTime();
|
4454
|
-
|
4516
|
+
|
4455
4517
|
form.insert('<i><iframe name="'+this.id+'" id="'+this.id+
|
4456
4518
|
'" width="0" height="0" frameborder="0" src="about:blank"></iframe></i>',
|
4457
4519
|
'after');
|
4458
|
-
|
4520
|
+
|
4459
4521
|
$(this.id).on('load', this.onLoad.bind(this));
|
4460
4522
|
},
|
4461
|
-
|
4523
|
+
|
4462
4524
|
send: function() {
|
4463
4525
|
this.form.set('target', this.id).submit();
|
4464
4526
|
},
|
4465
|
-
|
4527
|
+
|
4466
4528
|
onLoad: function() {
|
4467
4529
|
this.status = 200;
|
4468
4530
|
this.readyState = 4;
|
4469
|
-
|
4531
|
+
|
4470
4532
|
try {
|
4471
4533
|
this.responseText = window[this.id].document.documentElement.innerHTML;
|
4472
4534
|
} catch(e) { }
|
4473
|
-
|
4535
|
+
|
4474
4536
|
this.onreadystatechange();
|
4475
4537
|
}
|
4476
4538
|
});
|
4477
4539
|
|
4540
|
+
|
4478
4541
|
/**
|
4479
4542
|
* The JSONP Xhr request tonnel
|
4480
4543
|
*
|
@@ -4482,9 +4545,9 @@ Xhr.IFramed = new Class({
|
|
4482
4545
|
*/
|
4483
4546
|
Xhr.JSONP = new Class({
|
4484
4547
|
include: Xhr.Dummy,
|
4485
|
-
|
4548
|
+
|
4486
4549
|
prefix: 'jsonp',
|
4487
|
-
|
4550
|
+
|
4488
4551
|
/**
|
4489
4552
|
* Constructor
|
4490
4553
|
*
|
@@ -4496,13 +4559,13 @@ Xhr.JSONP = new Class({
|
|
4496
4559
|
this.name = this.prefix + new Date().getTime();
|
4497
4560
|
this.param = (isString(xhr.jsonp) ?
|
4498
4561
|
xhr.jsonp : 'callback') + "=" + this.name;
|
4499
|
-
|
4562
|
+
|
4500
4563
|
this.script = $E('script', {
|
4501
4564
|
charset: xhr.encoding,
|
4502
4565
|
async: xhr.async
|
4503
4566
|
});
|
4504
4567
|
},
|
4505
|
-
|
4568
|
+
|
4506
4569
|
/**
|
4507
4570
|
* saving the url and method for the further use
|
4508
4571
|
*
|
@@ -4510,12 +4573,12 @@ Xhr.JSONP = new Class({
|
|
4510
4573
|
* @param address String request url address
|
4511
4574
|
* @param Boolean async request marker
|
4512
4575
|
* @return void
|
4513
|
-
*/
|
4576
|
+
*/
|
4514
4577
|
open: function(method, url, async) {
|
4515
4578
|
this.url = url;
|
4516
4579
|
this.method = method;
|
4517
4580
|
},
|
4518
|
-
|
4581
|
+
|
4519
4582
|
/**
|
4520
4583
|
* Sends the actual request by inserting the script into the document body
|
4521
4584
|
*
|
@@ -4524,11 +4587,11 @@ Xhr.JSONP = new Class({
|
|
4524
4587
|
*/
|
4525
4588
|
send: function(data) {
|
4526
4589
|
window[this.name] = this.finish.bind(this);
|
4527
|
-
|
4590
|
+
|
4528
4591
|
this.script.set('src', this.url + (this.url.include('?') ? '&' : '?') + this.param + "&" + data)
|
4529
4592
|
.insertTo($$('script').last(), 'after');
|
4530
4593
|
},
|
4531
|
-
|
4594
|
+
|
4532
4595
|
/**
|
4533
4596
|
* Receives the actual JSON data from the server
|
4534
4597
|
*
|
@@ -4538,13 +4601,14 @@ Xhr.JSONP = new Class({
|
|
4538
4601
|
finish: function(data) {
|
4539
4602
|
this.status = 200;
|
4540
4603
|
this.readyState = 4;
|
4541
|
-
|
4604
|
+
|
4542
4605
|
this.xhr.json = this.xhr.responseJSON = data;
|
4543
|
-
|
4606
|
+
|
4544
4607
|
this.onreadystatechange();
|
4545
4608
|
}
|
4546
4609
|
});
|
4547
4610
|
|
4611
|
+
|
4548
4612
|
/**
|
4549
4613
|
* Basic visual effects class
|
4550
4614
|
*
|
@@ -4557,14 +4621,14 @@ Xhr.JSONP = new Class({
|
|
4557
4621
|
var Fx = RightJS.Fx = new Class(Observer, {
|
4558
4622
|
extend: {
|
4559
4623
|
EVENTS: $w('start finish cancel'),
|
4560
|
-
|
4624
|
+
|
4561
4625
|
// named durations
|
4562
4626
|
Durations: {
|
4563
4627
|
'short': 200,
|
4564
4628
|
'normal': 400,
|
4565
4629
|
'long': 800
|
4566
4630
|
},
|
4567
|
-
|
4631
|
+
|
4568
4632
|
// default options
|
4569
4633
|
Options: {
|
4570
4634
|
fps: Browser.IE ? 40 : 60,
|
@@ -4578,28 +4642,28 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4578
4642
|
Sin: function(i) {
|
4579
4643
|
return -(Math.cos(Math.PI * i) - 1) / 2;
|
4580
4644
|
},
|
4581
|
-
|
4645
|
+
|
4582
4646
|
Cos: function(i) {
|
4583
4647
|
return Math.asin((i-0.5) * 2)/Math.PI + 0.5;
|
4584
4648
|
},
|
4585
|
-
|
4649
|
+
|
4586
4650
|
Exp: function(i) {
|
4587
4651
|
return Math.pow(2, 8 * (i - 1));
|
4588
4652
|
},
|
4589
|
-
|
4653
|
+
|
4590
4654
|
Log: function(i) {
|
4591
4655
|
return 1 - Math.pow(2, - 8 * i);
|
4592
4656
|
},
|
4593
|
-
|
4657
|
+
|
4594
4658
|
Lin: function(i) {
|
4595
4659
|
return i;
|
4596
4660
|
}
|
4597
4661
|
},
|
4598
|
-
|
4662
|
+
|
4599
4663
|
ch: [], // scheduled effects registries
|
4600
4664
|
cr: [] // currently running effects registries
|
4601
4665
|
},
|
4602
|
-
|
4666
|
+
|
4603
4667
|
/**
|
4604
4668
|
* Basic constructor
|
4605
4669
|
*
|
@@ -4607,14 +4671,14 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4607
4671
|
*/
|
4608
4672
|
initialize: function(element, options) {
|
4609
4673
|
this.$super(options);
|
4610
|
-
|
4674
|
+
|
4611
4675
|
if ((this.element = element = $(element))) {
|
4612
4676
|
var uid = $uid(element);
|
4613
4677
|
this.ch = (Fx.ch[uid] = Fx.ch[uid] || []);
|
4614
4678
|
this.cr = (Fx.cr[uid] = Fx.cr[uid] || []);
|
4615
4679
|
}
|
4616
4680
|
},
|
4617
|
-
|
4681
|
+
|
4618
4682
|
/**
|
4619
4683
|
* starts the transition
|
4620
4684
|
*
|
@@ -4623,21 +4687,21 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4623
4687
|
start: function() {
|
4624
4688
|
if (this.queue(arguments)) { return this; }
|
4625
4689
|
this.prepare.apply(this, arguments);
|
4626
|
-
|
4690
|
+
|
4627
4691
|
var options = this.options,
|
4628
4692
|
duration = Fx.Durations[options.duration] || options.duration;
|
4629
4693
|
this.transition = Fx.Transitions[options.transition] || options.transition;
|
4630
|
-
|
4694
|
+
|
4631
4695
|
this.steps = (duration / 1000 * this.options.fps).ceil();
|
4632
4696
|
this.number = 1;
|
4633
|
-
|
4697
|
+
|
4634
4698
|
if (this.cr) {
|
4635
4699
|
this.cr.push(this); // adding this effect to the list of currently active
|
4636
4700
|
}
|
4637
|
-
|
4701
|
+
|
4638
4702
|
return this.fire('start', this).startTimer();
|
4639
4703
|
},
|
4640
|
-
|
4704
|
+
|
4641
4705
|
/**
|
4642
4706
|
* finishes the transition
|
4643
4707
|
*
|
@@ -4646,7 +4710,7 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4646
4710
|
finish: function() {
|
4647
4711
|
return this.stopTimer().unreg().fire('finish').next();
|
4648
4712
|
},
|
4649
|
-
|
4713
|
+
|
4650
4714
|
/**
|
4651
4715
|
* interrupts the transition
|
4652
4716
|
*
|
@@ -4660,7 +4724,7 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4660
4724
|
this.ch.clean();
|
4661
4725
|
return this.stopTimer().unreg().fire('cancel');
|
4662
4726
|
},
|
4663
|
-
|
4727
|
+
|
4664
4728
|
/**
|
4665
4729
|
* pauses the transition
|
4666
4730
|
*
|
@@ -4669,7 +4733,7 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4669
4733
|
pause: function() {
|
4670
4734
|
return this.stopTimer();
|
4671
4735
|
},
|
4672
|
-
|
4736
|
+
|
4673
4737
|
/**
|
4674
4738
|
* resumes a paused transition
|
4675
4739
|
*
|
@@ -4678,14 +4742,14 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4678
4742
|
resume: function() {
|
4679
4743
|
return this.startTimer();
|
4680
4744
|
},
|
4681
|
-
|
4745
|
+
|
4682
4746
|
// protected
|
4683
4747
|
// dummy method, should be implemented in a subclass
|
4684
4748
|
prepare: function(values) {},
|
4685
4749
|
|
4686
4750
|
// dummy method, processes the element properties
|
4687
4751
|
render: function(delta) {},
|
4688
|
-
|
4752
|
+
|
4689
4753
|
// the periodically called method
|
4690
4754
|
// NOTE: called outside of the instance scope!
|
4691
4755
|
step: function(that) {
|
@@ -4700,13 +4764,13 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4700
4764
|
that.number ++;
|
4701
4765
|
}
|
4702
4766
|
},
|
4703
|
-
|
4767
|
+
|
4704
4768
|
// starts the effect timer
|
4705
4769
|
startTimer: function() {
|
4706
4770
|
this.timer = this.step.periodical((1000 / this.options.fps).round(), this);
|
4707
4771
|
return this;
|
4708
4772
|
},
|
4709
|
-
|
4773
|
+
|
4710
4774
|
// stops the effect timer
|
4711
4775
|
stopTimer: function() {
|
4712
4776
|
if (this.timer) {
|
@@ -4719,7 +4783,7 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4719
4783
|
// should return false if there's no queue and true if there is a queue
|
4720
4784
|
queue: function(args) {
|
4721
4785
|
var chain = this.ch, queue = this.options.queue;
|
4722
|
-
|
4786
|
+
|
4723
4787
|
if (!chain || this.$ch) {
|
4724
4788
|
return (this.$ch = false);
|
4725
4789
|
}
|
@@ -4727,10 +4791,10 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4727
4791
|
if (queue) {
|
4728
4792
|
chain.push([args, this]);
|
4729
4793
|
}
|
4730
|
-
|
4794
|
+
|
4731
4795
|
return queue && chain[0][1] !== this;
|
4732
4796
|
},
|
4733
|
-
|
4797
|
+
|
4734
4798
|
// calls for the next effect in the queue
|
4735
4799
|
next: function() {
|
4736
4800
|
var chain = this.ch, next = chain.shift();
|
@@ -4740,7 +4804,7 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4740
4804
|
}
|
4741
4805
|
return this;
|
4742
4806
|
},
|
4743
|
-
|
4807
|
+
|
4744
4808
|
// unregisters this effect out of the currently running list
|
4745
4809
|
unreg: function() {
|
4746
4810
|
var currents = this.cr;
|
@@ -4749,9 +4813,10 @@ var Fx = RightJS.Fx = new Class(Observer, {
|
|
4749
4813
|
}
|
4750
4814
|
return this;
|
4751
4815
|
}
|
4752
|
-
|
4816
|
+
|
4753
4817
|
});
|
4754
4818
|
|
4819
|
+
|
4755
4820
|
/**
|
4756
4821
|
* There are the String unit extensions for the effects library
|
4757
4822
|
*
|
@@ -4786,7 +4851,7 @@ String.include({
|
|
4786
4851
|
*/
|
4787
4852
|
toHex: function() {
|
4788
4853
|
var match = /^#(\w)(\w)(\w)$/.exec(this);
|
4789
|
-
|
4854
|
+
|
4790
4855
|
if (match) {
|
4791
4856
|
match = "#"+ match[1]+match[1]+match[2]+match[2]+match[3]+match[3];
|
4792
4857
|
} else if ((match = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/.exec(this))) {
|
@@ -4797,10 +4862,10 @@ String.include({
|
|
4797
4862
|
} else {
|
4798
4863
|
match = String.COLORS[this] || this;
|
4799
4864
|
}
|
4800
|
-
|
4865
|
+
|
4801
4866
|
return match;
|
4802
4867
|
},
|
4803
|
-
|
4868
|
+
|
4804
4869
|
/**
|
4805
4870
|
* converts a hex string into an rgb array
|
4806
4871
|
*
|
@@ -4809,21 +4874,22 @@ String.include({
|
|
4809
4874
|
*/
|
4810
4875
|
toRgb: function(array) {
|
4811
4876
|
var match = /#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/i.exec(this.toHex()||'');
|
4812
|
-
|
4877
|
+
|
4813
4878
|
if (match) {
|
4814
4879
|
match = match.slice(1).map('toInt', 16);
|
4815
4880
|
match = array ? match : 'rgb('+match+')';
|
4816
4881
|
}
|
4817
|
-
|
4882
|
+
|
4818
4883
|
return match;
|
4819
4884
|
}
|
4820
4885
|
});
|
4821
4886
|
|
4887
|
+
|
4822
4888
|
/**
|
4823
4889
|
* This block contains additional Element shortcuts for effects easy handling
|
4824
4890
|
*
|
4825
4891
|
* Credits:
|
4826
|
-
* Some ideas are inspired by
|
4892
|
+
* Some ideas are inspired by
|
4827
4893
|
* - MooTools (http://mootools.net) Copyright (C) Valerio Proietti
|
4828
4894
|
*
|
4829
4895
|
* Copyright (C) 2008-2010 Nikolay V. Nemshilov
|
@@ -4833,7 +4899,7 @@ var methods = Element.prototype,
|
|
4833
4899
|
old_show = methods.show,
|
4834
4900
|
old_remove = methods.remove,
|
4835
4901
|
old_scroll = methods.scrollTo;
|
4836
|
-
|
4902
|
+
|
4837
4903
|
Element.include({
|
4838
4904
|
/**
|
4839
4905
|
* Stops all the visual effects on the element
|
@@ -4855,7 +4921,7 @@ Element.include({
|
|
4855
4921
|
hide: function(fx, options) {
|
4856
4922
|
return (fx && this.visible()) ? this.fx(fx, ['out', options]) : old_hide.call(this);
|
4857
4923
|
},
|
4858
|
-
|
4924
|
+
|
4859
4925
|
/**
|
4860
4926
|
* shows the element with the given visual effect
|
4861
4927
|
*
|
@@ -4864,9 +4930,9 @@ Element.include({
|
|
4864
4930
|
* @return Element this
|
4865
4931
|
*/
|
4866
4932
|
show: function(fx, options) {
|
4867
|
-
return (fx && this.
|
4933
|
+
return (fx && !this.visible()) ? this.fx(fx, ['in', options]) : old_show.call(this);
|
4868
4934
|
},
|
4869
|
-
|
4935
|
+
|
4870
4936
|
/**
|
4871
4937
|
* Removes the element out of the DOM structure
|
4872
4938
|
*
|
@@ -4879,7 +4945,7 @@ Element.include({
|
|
4879
4945
|
onFinish: old_remove.bind(this)
|
4880
4946
|
})]) : old_remove.call(this);
|
4881
4947
|
},
|
4882
|
-
|
4948
|
+
|
4883
4949
|
/**
|
4884
4950
|
* runs the Fx.Morth effect to the given style
|
4885
4951
|
*
|
@@ -4890,7 +4956,7 @@ Element.include({
|
|
4890
4956
|
morph: function(style, options) {
|
4891
4957
|
return this.fx('morph', [style, options || {}]); // <- don't replace with arguments
|
4892
4958
|
},
|
4893
|
-
|
4959
|
+
|
4894
4960
|
/**
|
4895
4961
|
* highlights the element
|
4896
4962
|
*
|
@@ -4902,7 +4968,7 @@ Element.include({
|
|
4902
4968
|
highlight: function() {
|
4903
4969
|
return this.fx('highlight', arguments);
|
4904
4970
|
},
|
4905
|
-
|
4971
|
+
|
4906
4972
|
/**
|
4907
4973
|
* runs the Fx.Fade effect on the element
|
4908
4974
|
*
|
@@ -4912,7 +4978,7 @@ Element.include({
|
|
4912
4978
|
fade: function() {
|
4913
4979
|
return this.fx('fade', arguments);
|
4914
4980
|
},
|
4915
|
-
|
4981
|
+
|
4916
4982
|
/**
|
4917
4983
|
* runs the Fx.Slide effect on the element
|
4918
4984
|
*
|
@@ -4923,7 +4989,7 @@ Element.include({
|
|
4923
4989
|
slide: function() {
|
4924
4990
|
return this.fx('slide', arguments);
|
4925
4991
|
},
|
4926
|
-
|
4992
|
+
|
4927
4993
|
/**
|
4928
4994
|
* Starts the smooth scrolling effect
|
4929
4995
|
*
|
@@ -4934,34 +5000,35 @@ Element.include({
|
|
4934
5000
|
scroll: function(value, options) {
|
4935
5001
|
return this.fx('scroll', [value, options||{}]);
|
4936
5002
|
},
|
4937
|
-
|
5003
|
+
|
4938
5004
|
/**
|
4939
5005
|
* wraps the old scroll to be able to run it with fxes
|
4940
5006
|
*
|
4941
5007
|
* If you send two hashes then will start a smooth scrolling
|
4942
5008
|
* otherwise will just jump over with the usual method
|
4943
|
-
*
|
5009
|
+
*
|
4944
5010
|
* @return Element this
|
4945
5011
|
*/
|
4946
5012
|
scrollTo: function(value, options) {
|
4947
5013
|
return isHash(options) ? this.scroll(value, options) : old_scroll.apply(this, arguments);
|
4948
5014
|
},
|
4949
|
-
|
4950
|
-
|
5015
|
+
|
5016
|
+
|
4951
5017
|
// protected
|
4952
5018
|
|
4953
5019
|
// runs an Fx on the element
|
4954
5020
|
fx: function(name, params) {
|
4955
5021
|
var args = $A(params).compact(), options = isHash(args.last()) ? args.pop() : {},
|
4956
5022
|
fx = new Fx[name.capitalize()](this, options);
|
4957
|
-
|
5023
|
+
|
4958
5024
|
fx.start.apply(fx, args);
|
4959
|
-
|
5025
|
+
|
4960
5026
|
return this;
|
4961
5027
|
}
|
4962
|
-
|
5028
|
+
|
4963
5029
|
});
|
4964
5030
|
|
5031
|
+
|
4965
5032
|
/**
|
4966
5033
|
* This class provides the basic effect for styles manipulation
|
4967
5034
|
*
|
@@ -4994,7 +5061,7 @@ function check_border_styles(element, before, after) {
|
|
4994
5061
|
bd_style = 'border' + direction + 'Style',
|
4995
5062
|
bd_width = 'border' + direction + 'Width',
|
4996
5063
|
bd_color = 'border' + direction + 'Color';
|
4997
|
-
|
5064
|
+
|
4998
5065
|
if (bd_style in before && before[bd_style] != after[bd_style]) {
|
4999
5066
|
var style = element._.style;
|
5000
5067
|
|
@@ -5013,7 +5080,7 @@ function check_border_styles(element, before, after) {
|
|
5013
5080
|
// parses the style hash into a processable format
|
5014
5081
|
function parse_style(values) {
|
5015
5082
|
var result = {}, re = /[\d\.\-]+/g, m, key, value, i;
|
5016
|
-
|
5083
|
+
|
5017
5084
|
for (key in values) {
|
5018
5085
|
m = values[key].match(re);
|
5019
5086
|
value = m.map('toFloat');
|
@@ -5021,35 +5088,35 @@ function parse_style(values) {
|
|
5021
5088
|
value.r = value.t[0] === 'rgb(';
|
5022
5089
|
|
5023
5090
|
if (value.t.length == 1) { value.t.unshift(''); }
|
5024
|
-
|
5091
|
+
|
5025
5092
|
for (i=0; i < value.length; i++) {
|
5026
5093
|
value.t.splice(i*2 + 1, 0, value[i]);
|
5027
5094
|
}
|
5028
5095
|
result[key] = value;
|
5029
5096
|
}
|
5030
|
-
|
5097
|
+
|
5031
5098
|
return result;
|
5032
5099
|
}
|
5033
5100
|
|
5034
5101
|
// cleans up and optimizies the styles
|
5035
5102
|
function clean_styles(element, before, after) {
|
5036
5103
|
var remove = [], key;
|
5037
|
-
|
5104
|
+
|
5038
5105
|
for (key in after) {
|
5039
5106
|
// checking the height/width options
|
5040
5107
|
if ((key == 'width' || key == 'height') && before[key] == 'auto') {
|
5041
5108
|
before[key] = element._['offset'+key.capitalize()] + 'px';
|
5042
5109
|
}
|
5043
5110
|
}
|
5044
|
-
|
5111
|
+
|
5045
5112
|
// IE opacity filter fix
|
5046
5113
|
if (after.filter && !before.filter) {
|
5047
5114
|
before.filter = 'alpha(opacity=100)';
|
5048
5115
|
}
|
5049
|
-
|
5116
|
+
|
5050
5117
|
// adjusting the border style
|
5051
5118
|
check_border_styles(element, before, after);
|
5052
|
-
|
5119
|
+
|
5053
5120
|
// cleaing up the list
|
5054
5121
|
for (key in after) {
|
5055
5122
|
// proprocessing colors
|
@@ -5064,12 +5131,12 @@ function clean_styles(element, before, after) {
|
|
5064
5131
|
|
5065
5132
|
if (!after[key] || !before[key]) { after[key] = before[key] = ''; }
|
5066
5133
|
}
|
5067
|
-
|
5134
|
+
|
5068
5135
|
// filling up the missing size
|
5069
5136
|
if (/\d/.test(after[key]) && !/\d/.test(before[key])) {
|
5070
5137
|
before[key] = after[key].replace(/[\d\.\-]+/g, '0');
|
5071
5138
|
}
|
5072
|
-
|
5139
|
+
|
5073
5140
|
// removing unprocessable keys
|
5074
5141
|
if (after[key] === before[key] || remove.includes(key) || !/\d/.test(before[key]) || !/\d/.test(after[key])) {
|
5075
5142
|
delete(after[key]);
|
@@ -5086,7 +5153,7 @@ function clean_styles(element, before, after) {
|
|
5086
5153
|
*/
|
5087
5154
|
function style_keys(style) {
|
5088
5155
|
var keys = [], border_types = ['Style', 'Color', 'Width'], key, i, j;
|
5089
|
-
|
5156
|
+
|
5090
5157
|
for (key in style) {
|
5091
5158
|
if (key.startsWith('border')) {
|
5092
5159
|
for (i=0; i < border_types.length; i++) {
|
@@ -5104,32 +5171,32 @@ function style_keys(style) {
|
|
5104
5171
|
keys.push(key);
|
5105
5172
|
}
|
5106
5173
|
}
|
5107
|
-
|
5174
|
+
|
5108
5175
|
return keys;
|
5109
5176
|
}
|
5110
|
-
|
5177
|
+
|
5111
5178
|
Fx.Morph = new Class(Fx, {
|
5112
5179
|
|
5113
|
-
// protected
|
5180
|
+
// protected
|
5114
5181
|
|
5115
5182
|
// parepares the effect
|
5116
5183
|
prepare: function(style) {
|
5117
5184
|
var keys = style_keys(style),
|
5118
5185
|
before = this._cloneStyle(this.element, keys),
|
5119
5186
|
after = this._endStyle(style, keys);
|
5120
|
-
|
5187
|
+
|
5121
5188
|
clean_styles(this.element, before, after);
|
5122
|
-
|
5189
|
+
|
5123
5190
|
this.before = parse_style(before);
|
5124
5191
|
this.after = parse_style(after);
|
5125
5192
|
},
|
5126
|
-
|
5193
|
+
|
5127
5194
|
render: function(delta) {
|
5128
5195
|
var before, after, value, style = this.element._.style, key, i, l;
|
5129
5196
|
for (key in this.after) {
|
5130
5197
|
before = this.before[key];
|
5131
5198
|
after = this.after[key];
|
5132
|
-
|
5199
|
+
|
5133
5200
|
for (i=0, l = after.length; i < l; i++) {
|
5134
5201
|
value = before[i] + (after[i] - before[i]) * delta;
|
5135
5202
|
if (after.r) {
|
@@ -5137,11 +5204,11 @@ Fx.Morph = new Class(Fx, {
|
|
5137
5204
|
}
|
5138
5205
|
after.t[i*2 + 1] = value;
|
5139
5206
|
}
|
5140
|
-
|
5207
|
+
|
5141
5208
|
style[key] = after.t.join('');
|
5142
5209
|
}
|
5143
5210
|
},
|
5144
|
-
|
5211
|
+
|
5145
5212
|
/**
|
5146
5213
|
* Returns a hash of the end style
|
5147
5214
|
*
|
@@ -5154,18 +5221,18 @@ Fx.Morph = new Class(Fx, {
|
|
5154
5221
|
.setStyle('position:absolute;z-index:-1;visibility:hidden')
|
5155
5222
|
.setWidth(element.size().x)
|
5156
5223
|
.setStyle(style);
|
5157
|
-
|
5224
|
+
|
5158
5225
|
if (element.parent()) {
|
5159
5226
|
element.insert(dummy, 'before');
|
5160
5227
|
}
|
5161
|
-
|
5228
|
+
|
5162
5229
|
var after = this._cloneStyle(dummy, keys);
|
5163
|
-
|
5230
|
+
|
5164
5231
|
dummy.remove();
|
5165
|
-
|
5232
|
+
|
5166
5233
|
return after;
|
5167
5234
|
},
|
5168
|
-
|
5235
|
+
|
5169
5236
|
/**
|
5170
5237
|
* Fast styles cloning
|
5171
5238
|
*
|
@@ -5179,13 +5246,13 @@ Fx.Morph = new Class(Fx, {
|
|
5179
5246
|
if (key in style) {
|
5180
5247
|
clean[key] = ''+ style[key];
|
5181
5248
|
}
|
5182
|
-
|
5249
|
+
|
5183
5250
|
// libwebkit bug fix for in case of languages pack applied
|
5184
5251
|
if (key === 'opacity') {
|
5185
5252
|
clean[key] = clean[key].replace(',', '.');
|
5186
5253
|
}
|
5187
5254
|
}
|
5188
|
-
|
5255
|
+
|
5189
5256
|
return clean;
|
5190
5257
|
}
|
5191
5258
|
});
|
@@ -5204,9 +5271,9 @@ Fx.Highlight = new Class(Fx.Morph, {
|
|
5204
5271
|
transition: 'Exp'
|
5205
5272
|
})
|
5206
5273
|
},
|
5207
|
-
|
5274
|
+
|
5208
5275
|
// protected
|
5209
|
-
|
5276
|
+
|
5210
5277
|
/**
|
5211
5278
|
* starts the transition
|
5212
5279
|
*
|
@@ -5216,19 +5283,19 @@ Fx.Highlight = new Class(Fx.Morph, {
|
|
5216
5283
|
*/
|
5217
5284
|
prepare: function(start, end) {
|
5218
5285
|
var element = this.element, style = element._.style, end_color = end || element.getStyle('backgroundColor');
|
5219
|
-
|
5286
|
+
|
5220
5287
|
if (is_transparent(end_color)) {
|
5221
5288
|
this.onFinish(function() { style.backgroundColor = 'transparent'; });
|
5222
|
-
|
5289
|
+
|
5223
5290
|
// trying to find the end color
|
5224
5291
|
end_color = [element].concat(element.parents()).map(function(node) {
|
5225
5292
|
var bg = node.getStyle('backgroundColor');
|
5226
|
-
return (bg && !is_transparent(bg)) ? bg : null;
|
5293
|
+
return (bg && !is_transparent(bg)) ? bg : null;
|
5227
5294
|
}).compact().first() || '#FFF';
|
5228
5295
|
}
|
5229
|
-
|
5296
|
+
|
5230
5297
|
style.backgroundColor = (start || this.options.color);
|
5231
|
-
|
5298
|
+
|
5232
5299
|
return this.$super({backgroundColor: end_color});
|
5233
5300
|
}
|
5234
5301
|
});
|
@@ -5240,7 +5307,7 @@ Fx.Highlight = new Class(Fx.Morph, {
|
|
5240
5307
|
* Copyright (C) 2008-2010 Nikolay V. Nemshilov
|
5241
5308
|
*/
|
5242
5309
|
Fx.Twin = new Class(Fx.Morph, {
|
5243
|
-
|
5310
|
+
|
5244
5311
|
/**
|
5245
5312
|
* hides the element if it meant to be switched off
|
5246
5313
|
*
|
@@ -5250,12 +5317,12 @@ Fx.Twin = new Class(Fx.Morph, {
|
|
5250
5317
|
if (this.how == 'out') {
|
5251
5318
|
old_hide.call(this.element);
|
5252
5319
|
}
|
5253
|
-
|
5320
|
+
|
5254
5321
|
return this.$super();
|
5255
5322
|
},
|
5256
5323
|
|
5257
5324
|
// protected
|
5258
|
-
|
5325
|
+
|
5259
5326
|
/**
|
5260
5327
|
* assigns the direction of the effect in or out
|
5261
5328
|
*
|
@@ -5263,7 +5330,7 @@ Fx.Twin = new Class(Fx.Morph, {
|
|
5263
5330
|
*/
|
5264
5331
|
setHow: function(how) {
|
5265
5332
|
this.how = how || 'toggle';
|
5266
|
-
|
5333
|
+
|
5267
5334
|
if (this.how == 'toggle') {
|
5268
5335
|
this.how = this.element.visible() ? 'out' : 'in';
|
5269
5336
|
}
|
@@ -5271,6 +5338,7 @@ Fx.Twin = new Class(Fx.Morph, {
|
|
5271
5338
|
|
5272
5339
|
});
|
5273
5340
|
|
5341
|
+
|
5274
5342
|
/**
|
5275
5343
|
* the slide effects wrapper
|
5276
5344
|
*
|
@@ -5282,14 +5350,14 @@ Fx.Slide = new Class(Fx.Twin, {
|
|
5282
5350
|
direction: 'top'
|
5283
5351
|
})
|
5284
5352
|
},
|
5285
|
-
|
5286
|
-
// protected
|
5353
|
+
|
5354
|
+
// protected
|
5287
5355
|
prepare: function(how) {
|
5288
5356
|
this.setHow(how);
|
5289
|
-
|
5357
|
+
|
5290
5358
|
var element = old_show.call(this.element);
|
5291
5359
|
this.size = element.size();
|
5292
|
-
|
5360
|
+
|
5293
5361
|
this.styles = {};
|
5294
5362
|
$w('overflow height width marginTop marginLeft').each(function(key) {
|
5295
5363
|
this.styles[key] = element._.style[key];
|
@@ -5322,7 +5390,7 @@ Fx.Slide = new Class(Fx.Twin, {
|
|
5322
5390
|
|
5323
5391
|
} else if (this.how == 'in') {
|
5324
5392
|
var element_style = this.element._.style;
|
5325
|
-
|
5393
|
+
|
5326
5394
|
if (['top', 'bottom'].includes(direction)) {
|
5327
5395
|
style.height = size.y + 'px';
|
5328
5396
|
element_style.height = '0px';
|
@@ -5339,12 +5407,13 @@ Fx.Slide = new Class(Fx.Twin, {
|
|
5339
5407
|
element_style.marginTop = margin_top + size.y + 'px';
|
5340
5408
|
}
|
5341
5409
|
}
|
5342
|
-
|
5410
|
+
|
5343
5411
|
return style;
|
5344
5412
|
}
|
5345
5413
|
|
5346
5414
|
});
|
5347
5415
|
|
5416
|
+
|
5348
5417
|
/**
|
5349
5418
|
* The opacity effects wrapper
|
5350
5419
|
*
|
@@ -5353,37 +5422,38 @@ Fx.Slide = new Class(Fx.Twin, {
|
|
5353
5422
|
Fx.Fade = new Class(Fx.Twin, {
|
5354
5423
|
prepare: function(how) {
|
5355
5424
|
this.setHow(how);
|
5356
|
-
|
5425
|
+
|
5357
5426
|
if (this.how == 'in') {
|
5358
5427
|
old_show.call(this.element.setStyle({opacity: 0}));
|
5359
5428
|
}
|
5360
|
-
|
5429
|
+
|
5361
5430
|
return this.$super({opacity: isNumber(how) ? how : this.how == 'in' ? 1 : 0});
|
5362
5431
|
}
|
5363
5432
|
});
|
5364
5433
|
|
5434
|
+
|
5365
5435
|
/**
|
5366
5436
|
* A smooth scrolling visual effect
|
5367
5437
|
*
|
5368
5438
|
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
5369
5439
|
*/
|
5370
5440
|
Fx.Scroll = new Class(Fx, {
|
5371
|
-
|
5441
|
+
|
5372
5442
|
initialize: function(element, options) {
|
5373
5443
|
element = $(element);
|
5374
5444
|
// swapping the actual scrollable when it's the window
|
5375
5445
|
this.$super(element instanceof Window ? element._.document[Browser.WebKit ? 'body' : 'documentElement'] : element, options);
|
5376
5446
|
},
|
5377
|
-
|
5447
|
+
|
5378
5448
|
prepare: function(value) {
|
5379
5449
|
var before = this.before = {}, element = this.element._;
|
5380
|
-
|
5450
|
+
|
5381
5451
|
this.after = value;
|
5382
|
-
|
5452
|
+
|
5383
5453
|
if ('x' in value) { before.x = element.scrollLeft; }
|
5384
5454
|
if ('y' in value) { before.y = element.scrollTop; }
|
5385
5455
|
},
|
5386
|
-
|
5456
|
+
|
5387
5457
|
render: function(delta) {
|
5388
5458
|
var before = this.before, key;
|
5389
5459
|
for (key in before) {
|
@@ -5392,6 +5462,7 @@ Fx.Scroll = new Class(Fx, {
|
|
5392
5462
|
}
|
5393
5463
|
});
|
5394
5464
|
|
5465
|
+
|
5395
5466
|
/**
|
5396
5467
|
* this module handles the work with cookies
|
5397
5468
|
*
|
@@ -5403,7 +5474,7 @@ Fx.Scroll = new Class(Fx, {
|
|
5403
5474
|
*/
|
5404
5475
|
var Cookie = RightJS.Cookie = new Class({
|
5405
5476
|
include: Options,
|
5406
|
-
|
5477
|
+
|
5407
5478
|
extend: {
|
5408
5479
|
// sets the cookie
|
5409
5480
|
set: function(name, value, options) {
|
@@ -5417,20 +5488,20 @@ var Cookie = RightJS.Cookie = new Class({
|
|
5417
5488
|
remove: function(name) {
|
5418
5489
|
return new this(name).remove();
|
5419
5490
|
},
|
5420
|
-
|
5491
|
+
|
5421
5492
|
// checks if the cookies are enabled
|
5422
5493
|
enabled: function() {
|
5423
5494
|
document.cookie = "__t=1";
|
5424
5495
|
return document.cookie.indexOf("__t=1")!=-1;
|
5425
5496
|
},
|
5426
|
-
|
5497
|
+
|
5427
5498
|
// some basic options
|
5428
5499
|
Options: {
|
5429
5500
|
secure: false,
|
5430
5501
|
document: document
|
5431
5502
|
}
|
5432
5503
|
},
|
5433
|
-
|
5504
|
+
|
5434
5505
|
/**
|
5435
5506
|
* constructor
|
5436
5507
|
* @param String cookie name
|
@@ -5441,7 +5512,7 @@ var Cookie = RightJS.Cookie = new Class({
|
|
5441
5512
|
this.name = name;
|
5442
5513
|
this.setOptions(options);
|
5443
5514
|
},
|
5444
|
-
|
5515
|
+
|
5445
5516
|
/**
|
5446
5517
|
* sets the cookie with the name
|
5447
5518
|
*
|
@@ -5461,7 +5532,7 @@ var Cookie = RightJS.Cookie = new Class({
|
|
5461
5532
|
options.document.cookie = this.name + '=' + value;
|
5462
5533
|
return this;
|
5463
5534
|
},
|
5464
|
-
|
5535
|
+
|
5465
5536
|
/**
|
5466
5537
|
* searches for a cookie with the name
|
5467
5538
|
*
|
@@ -5471,8 +5542,8 @@ var Cookie = RightJS.Cookie = new Class({
|
|
5471
5542
|
var value = this.options.document.cookie.match('(?:^|;)\\s*' + RegExp.escape(this.name) + '=([^;]*)');
|
5472
5543
|
return (value) ? decodeURIComponent(value[1]) : null;
|
5473
5544
|
},
|
5474
|
-
|
5475
|
-
/**
|
5545
|
+
|
5546
|
+
/**
|
5476
5547
|
* removes the cookie
|
5477
5548
|
*
|
5478
5549
|
* @return Cookie this
|
@@ -5483,6 +5554,12 @@ var Cookie = RightJS.Cookie = new Class({
|
|
5483
5554
|
}
|
5484
5555
|
});
|
5485
5556
|
|
5557
|
+
|
5558
|
+
// globalizing the top-level variables
|
5559
|
+
$ext(window, Object.without(RightJS, 'version', 'modules'));
|
5560
|
+
|
5561
|
+
return RightJS;
|
5562
|
+
})(window, document, Object, Array, String, Function, Number, Math);
|
5486
5563
|
/**
|
5487
5564
|
* The old browsers support patch loading script
|
5488
5565
|
* will be included in the core file when it's built
|
@@ -5500,10 +5577,3 @@ if (!document.querySelector) {
|
|
5500
5577
|
.src.replace(/(^|\/)(right)([^\/]+)$/, '$1$2-olds$3') +
|
5501
5578
|
'"></script>');
|
5502
5579
|
}
|
5503
|
-
|
5504
|
-
|
5505
|
-
// globalizing the top-level variables
|
5506
|
-
$ext(window, Object.without(RightJS, 'version', 'modules'));
|
5507
|
-
|
5508
|
-
return RightJS;
|
5509
|
-
})(window, document, Object, Array, String, Function, Number, Math);
|