$A=function(D,F,C){if(Browser.Engine.trident&&$type(D)=="collection"){F=F||0;if(F<0){F=D.length+F}C=C||(D.length-F);var E=[];for(var B=0;B<C;B++){E[B]=D[F++]}return E}F=(F||0)+((F<0)?D.length:0);var A=((!$chk(C))?D.length:C)+F;return Array.prototype.slice.call(D,F,A)};(function(){var B=[Array,Function,String,RegExp,Number];for(var C=0,A=B.length;C<A;C++){B[C].extend=B[C].implement}})();window.extend=document.extend=function(A){for(var B in A){this[B]=A[B]}};window[Browser.Engine.name]=window[Browser.Engine.name+Browser.Engine.version]=true;window.ie=window.trident;window.ie6=window.trident4;window.ie7=window.trident5;Class.empty=$empty;Class.prototype.extend=function(A){A.Extends=this;return new Class(A)};Array.implement({copy:function(B,A){return $A(this,B,A)}});Array.alias({erase:"remove",combine:"merge"});Function.extend({bindAsEventListener:function(B,A){return this.create({bind:B,event:true,"arguments":A})}});Function.empty=$empty;Hash.alias({getKeys:"keys",getValues:"values",has:"hasKey",combine:"merge"});var Abstract=Hash;Element.extend=Element.implement;Elements.extend=Elements.implement;Element.implement({getFormElements:function(){return this.getElements("input, textarea, select")},replaceWith:function(A){A=$(A);this.parentNode.replaceChild(A,this);return A},removeElements:function(){return this.dispose()}});Element.alias({dispose:"remove",getLast:"getLastChild"});Element.implement({getText:function(){return this.get("text")},setText:function(A){return this.set("text",A)},setHTML:function(){return this.set("html",arguments)},getHTML:function(){return this.get("html")},getTag:function(){return this.get("tag")}});Event.keys=Event.Keys;Element.implement({setOpacity:function(A){return this.set("opacity",A)}});Object.toQueryString=Hash.toQueryString;var XHR=new Class({Extends:Request,options:{update:false},initialize:function(B,A){this.parent(A);this.url=B},request:function(A){return this.send(this.url,A||this.options.data)},send:function(A,B){if(!this.check(arguments.callee,A,B)){return this}return this.parent({url:A,data:B})},success:function(B,A){B=this.processScripts(B);if(this.options.update){$(this.options.update).empty().set("html",B)}this.onSuccess(B,A)},failure:function(){this.fireEvent("failure",this.xhr)}});var Ajax=XHR;JSON.Remote=new Class({options:{key:"json"},Extends:Request.JSON,initialize:function(B,A){this.parent(A);this.onComplete=$empty;this.url=B},send:function(A){if(!this.check(arguments.callee,A)){return this}return this.parent({url:this.url,data:{json:Json.encode(A)}})},failure:function(){this.fireEvent("failure",this.xhr)}});Fx.implement({custom:function(B,A){return this.start(B,A)},clearTimer:function(){return this.cancel()},stop:function(){return this.cancel()}});Fx.Base=Fx;Fx.Style=function(B,C,A){return new Fx.Tween(B,$extend({property:C},A))};Element.implement({effect:function(B,A){return new Fx.Tween(this,$extend({property:B},A))}});Fx.Styles=Fx.Morph;Element.implement({effects:function(A){return new Fx.Morph(this,A)}});Native.implement([Element,Document],{getElementsByClassName:function(A){return this.getElements("."+A)},getElementsBySelector:function(A){return this.getElements(A)}});Elements.implement({filterByTag:function(A){return this.filter(A)},filterByClass:function(A){return this.filter("."+A)},filterById:function(A){return this.filter("#"+A)},filterByAttribute:function(B,A,C){return this.filter("["+B+(A||"")+(C||"")+"]")}});var $E=function(A,B){return($(B)||document).getElement(A)};var $ES=function(A,B){return($(B)||document).getElements(A)};var Json=JSON;JSON.toString=JSON.encode;JSON.evaluate=JSON.decode;Cookie.set=function(B,C,A){return new Cookie(B,A).write(C)};Cookie.get=function(A){return new Cookie(A).read()};Cookie.remove=function(B,A){return new Cookie(B,A).dispose()};
Fx.Scroll.implement({scrollTo:function(B,A){return this.start(B,A)}});