$A=function(d,c,e){if(Browser.Engine.trident&&$type(d)=="collection"){c=c||0;if(c<0){c=d.length+c}e=e||(d.length-c);var f=[];for(var b=0;b<e;b++){f[b]=d[c++]}return f}c=(c||0)+((c<0)?d.length:0);var a=((!$chk(e))?d.length:e)+c;return Array.prototype.slice.call(d,c,a)};(function(){var c=[Array,Function,String,RegExp,Number];for(var a=0,b=c.length;a<b;a++){c[a].extend=c[a].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(a,b){return this.create({bind:a,event:true,"arguments":b})}});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(b,a){if(!this.check(arguments.callee,b,a)){return this}return this.parent({url:b,data:a})},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(a,b){return this.start(a,b)},clearTimer:function(){return this.cancel()},stop:function(){return this.cancel()}});Fx.Base=Fx;Fx.Style=function(b,a,c){return new Fx.Tween(b,$extend({property:a},c))};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(c,b,a){return this.filter("["+c+(b||"")+(a||"")+"]")}});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(c,a,b){return new Cookie(c,b).write(a)};Cookie.get=function(a){return new Cookie(a).read()};Cookie.remove=function(a,b){return new Cookie(a,b).dispose()};
