var Prototype={Version:"1.3.1",emptyFunction:function(){}},Class={create:function(){return function(){this.initialize.apply(this,arguments)}}},Abstract={};Object.extend=function(a,b){for(property in b)a[property]=b[property];return a};Object.prototype.extend=function(a){return Object.extend.apply(this,[this,a])};Function.prototype.bind=function(a){var b=this;return function(){b.apply(a,arguments)}};Function.prototype.bindAsEventListener=function(a){var b=this;return function(c){b.call(a,c||window.event)}};
Number.prototype.toColorPart=function(){var a=this.toString(16);if(this<16)return"0"+a;return a};var Try={these:function(){for(var a,b=0;b<arguments.length;b++){var c=arguments[b];try{a=c();break}catch(d){}}return a}},Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest})||false}};Ajax.Base=function(){};
Ajax.Base.prototype={setOptions:function(a){this.options={method:"post",asynchronous:true,parameters:""}.extend(a||{})},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||this.transport.status>=200&&this.transport.status<300},responseIsFailure:function(){return!this.responseIsSuccess()}};Ajax.Request=Class.create();Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
Ajax.Request.prototype=(new Ajax.Base).extend({initialize:function(a,b){this.transport=Ajax.getTransport();this.setOptions(b);this.request(a)},request:function(a){var b=this.options.parameters||"";if(b.length>0)b+="&_=";try{if(this.options.method=="get")a+="?"+b;this.transport.open(this.options.method,a,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout(function(){this.respondToReadyState(1)}.bind(this),10)}this.setRequestHeaders();
var c=this.options.postBody?this.options.postBody:b;this.transport.send(this.options.method=="post"?c:null)}catch(d){}},setRequestHeaders:function(){var a=["X-Requested-With","XMLHttpRequest","X-Prototype-Version",Prototype.Version];if(this.options.method=="post"){a.push("Content-type","application/x-www-form-urlencoded");this.transport.overrideMimeType&&a.push("Connection","close")}this.options.requestHeaders&&a.push.apply(a,this.options.requestHeaders);for(var b=0;b<a.length;b+=2)this.transport.setRequestHeader(a[b],
a[b+1])},onStateChange:function(){this.transport.readyState!=1&&this.respondToReadyState(this.transport.readyState)},respondToReadyState:function(a){a=Ajax.Request.Events[a];if(a=="Complete")(this.options["on"+this.transport.status]||this.options["on"+(this.responseIsSuccess()?"Success":"Failure")]||Prototype.emptyFunction)(this.transport);(this.options["on"+a]||Prototype.emptyFunction)(this.transport);if(a=="Complete")this.transport.onreadystatechange=Prototype.emptyFunction}});Ajax.Updater=Class.create();
Ajax.Updater.ScriptFragment="(?:<script.*?>)((\n|.)*?)(?:<\/script>)";
Ajax.Updater.prototype.extend(Ajax.Request.prototype).extend({initialize:function(a,b,c){this.containers={success:a.success?$(a.success):$(a),failure:a.failure?$(a.failure):a.success?null:$(a)};this.transport=Ajax.getTransport();this.setOptions(c);var d=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=function(){this.updateContent();d(this.transport)}.bind(this);this.request(b)},updateContent:function(){var a=this.responseIsSuccess()?this.containers.success:this.containers.failure,
b=new RegExp(Ajax.Updater.ScriptFragment,"img"),c=this.transport.responseText.replace(b,""),d=this.transport.responseText.match(b);if(a)if(this.options.insertion)new this.options.insertion(a,c);else a.innerHTML=c;this.responseIsSuccess()&&this.onComplete&&setTimeout(function(){this.onComplete(this.transport)}.bind(this),10);if(this.options.evalScripts&&d){b=new RegExp(Ajax.Updater.ScriptFragment,"im");setTimeout(function(){for(var e=0;e<d.length;e++)eval(d[e].match(b)[1])}.bind(this),10)}}});
Ajax.PeriodicalUpdater=Class.create();
Ajax.PeriodicalUpdater.prototype=(new Ajax.Base).extend({initialize:function(a,b,c){this.setOptions(c);this.onComplete=this.options.onComplete;this.frequency=this.options.frequency||2;this.decay=1;this.updater={};this.container=a;this.url=b;this.start()},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent()},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Ajax.emptyFunction).apply(this,arguments)},updateComplete:function(a){if(this.options.decay){this.decay=
a.responseText==this.lastText?this.decay*this.options.decay:1;this.lastText=a.responseText}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1E3)},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)}});