(function(c){var b=function(m){var h=this.superclass&&this.superclass.prototype;var g=c.keys(m);if(!c.keys({toString:true}).length){g.push("toString","valueOf")}for(var f=0,j=g.length;f<j;f++){var l=g[f],k=m[l];if(h&&c.isFunction(k)&&c.argumentNames(k)[0]=="$super"){var n=k,k=c.extend(c.wrap((function(i){return function(){return h[i].apply(this,arguments)}})(l),n),{valueOf:function(){return n},toString:function(){return n.toString()}})}this.prototype[l]=k}return this};c.extend({keys:function(h){var g=[];for(var f in h){g.push(f)}return g},argumentNames:function(f){var g=f.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(/, ?/);return g.length==1&&!g[0]?[]:g},bind:function(g,f){return function(){return g.apply(f,c.makeArray(arguments))}},wrap:function(g,h){var f=g;return function(){return h.apply(this,[c.bind(f,this)].concat(c.makeArray(arguments)))}},klass:function(){var k=null,j=c.makeArray(arguments);if(c.isFunction(j[0])){k=j.shift()}var f=function(){this.initialize.apply(this,arguments)};f.superclass=k;f.subclasses=[];f.addMethods=b;if(k){var g=function(){};g.prototype=k.prototype;f.prototype=new g;k.subclasses.push(f)}for(var h=0;h<j.length;h++){f.addMethods(j[h])}if(!f.prototype.initialize){f.prototype.initialize=function(){}}f.prototype.constructor=f;return f},delegate:function(f){return function(j){var i=c(j.target),h=null;for(var g in f){if(i.is(g)||((h=i.parents(g))&&h.length>0)){return f[g].apply(this,[h||i].concat(c.makeArray(arguments)))}h=null}}}});var e=function(f){for(var g in f){if(g.match(/^on(.+)/)&&typeof f[g]=="function"){f.element.bind(RegExp.$1,c.bind(f[g],f))}}};var d=function(f){return c.klass(f,{initialize:function($super,h,g){this.element=c(h);if($super){$super.apply(this,g)}}})};var a=function(g,h,f){var i=d(h);instance=new i(g,f);e(instance);if(!h.instances){h.instances=[]}h.instances.push(instance);return instance};c.fn.extend({attach:function(){var f=c.makeArray(arguments),g=f.shift();if(c.livequery&&this.selector){return this.livequery(function(){a(this,g,f)})}else{return this.each(function(){a(this,g,f)})}},attachAndReturn:function(){var f=c.makeArray(arguments),g=f.shift();return c.map(this,function(h){return a(h,g,f)})},delegate:function(f,g){return this.bind(f,c.delegate(g))},attached:function(f){var g=[];if(!f.instances){return g}this.each(function(j,h){c.each(f.instances,function(l,k){if(k.element.get(0)==h){g.push(k)}})});return g},firstAttached:function(f){return this.attached(f)[0]}});Remote=c.klass({initialize:function(f){if(this.element.attr("nodeName")=="FORM"){this.element.attach(Remote.Form,f)}else{this.element.attach(Remote.Link,f)}}});Remote.Base=c.klass({initialize:function(f){this.options=c.extend({},f||{})},_makeRequest:function(f){c.ajax(f);return false}});Remote.Link=c.klass(Remote.Base,{onclick:function(){var f=c.extend({url:this.element.attr("href"),type:"GET"},this.options);return this._makeRequest(f)}});Remote.Form=c.klass(Remote.Base,{onclick:function(g){var f=g.target;if(c.inArray(f.nodeName.toLowerCase(),["input","button"])>=0&&f.type.match(/submit|image/)){this._submitButton=f}},onsubmit:function(){var g=this.element.serializeArray();if(this._submitButton){g.push({name:this._submitButton.name,value:this._submitButton.value})}var f=c.extend({url:this.element.attr("action"),type:this.element.attr("method")||"GET",data:g},this.options);this._makeRequest(f);return false}});c.ajaxSetup({beforeSend:function(f){f.setRequestHeader("Accept","text/javascript, text/html, application/xml, text/xml, */*")}})})(jQuery);