+$.speed = function(s,o) {
+ if ( o && o.constructor == Function ) { o = { onComplete: o }; }
+ o = o || {};
+ var ss = {"crawl":1200,"xslow":850,"slow":600,"medium":400,"fast":200,"xfast":75,"normal":400};
+ o.duration = typeof s == "number" ? s : ss[s] || 400;
+ return o;
+};
+
+$.fn.hide = function(a,o) {
+ o = $.speed(a,o);
+ return a ? this.each(function(){
+ new $.fx.FadeSize(this,o).hide();
+ }) : this._hide();
+};
+
+$.fn.show = function(a,o) {
+ o = $.speed(a,o);
+ return a ? this.each(function(){
+ new $.fx.FadeSize(this,o).show();
+ }) : this._show();
+};
+
+$.fn.slideDown = function(a,o) {
+ o = $.speed(a,o);
+ return this.each(function(){
+ new $.fx.Resize(this,o).show("height");
+ });
+};
+
+$.fn.slideUp = function(a,o) {
+ o = $.speed(a,o);
+ return this.each(function(){
+ new $.fx.Resize(this,o).hide("height");
+ });
+};
+
+$.fn.fadeOut = function(a,o) {
+ o = $.speed(a,o);
+ return a ? this.each(function(){
+ new $.fx.Opacity(this,o,1).hide();
+ }) : this._hide();
+};
+
+$.fn.fadeIn = function(a,o) {
+ o = $.speed(a,o);
+ return a ? this.each(function(){
+ new $.fx.Opacity(this,o,1).show();
+ }) : this._show();
+};
+
+$.fn.fadeTo = function(a,ev,o) {
+ o = $.speed(a,o);
+ return a ? this.each(function(){
+ ef = new $.fx.Opacity(this,o);
+ ef.custom(ef.cur(),parseFloat(ev));
+ ef.show();
+ }) : this._show();
+};
+
+$.fn.center = function(f) {
+ return this.each(function(){
+ if ( !f && this.nodeName == 'IMG' &&
+ !this.offsetWidth && !this.offsetHeight ) {
+ var self = this;
+ setTimeout(function(){
+ $(self).center(true);
+ }, 13);
+ } else {
+ var s = this.style;
+ var p = this.parentNode;
+ if ( $.css(p,"position") == 'static' ) {
+ p.style.position = 'relative';
+ }
+ s.position = 'absolute';
+ s.left = parseInt(($.css(p,"width") - $.css(this,"width"))/2, 10) + "px";
+ s.top = parseInt(($.css(p,"height") - $.css(this,"height"))/2, 10) + "px";
+ }
+ });
+};
+
+$.setAuto = function(e,p) {
+ var a = e.style[p];
+ var o = $.css(e,p);
+ e.style[p] = 'auto';
+ var n = $.css(e,p);
+ if ( o != n ) {
+ e.style[p] = a;
+ }
+};
+
+/*
+ * I originally wrote fx() as a clone of moo.fx and in the process
+ * of making it small in size the code became illegible to sane
+ * people. You've been warned.
+ */
+
+$.fx = function(el,op,ty,tz){