var Prototype={Version:"1.4.0_pre10_ajax",emptyFunction:function(){},K:function(x){return x;}};var Class={create:function(){return function(){this.initialize.apply(this,arguments);};}};var Abstract=new Object();Object.extend=function(_2,_3){for(property in _3){_2[property]=_3[property];}return _2;};Object.inspect=function(_4){try{if(_4==undefined){return "undefined";}if(_4==null){return "null";}return _4.inspect?_4.inspect():_4.toString();}catch(e){if(e instanceof RangeError){return "...";}throw e;}};Function.prototype.bind=function(_5){var _6=this;return function(){return _6.apply(_5,arguments);};};Function.prototype.bindAsEventListener=function(_7){var _8=this;return function(_9){return _8.call(_7,_9||window.event);};};Object.extend(Number.prototype,{toColorPart:function(){var _a=this.toString(16);if(this<16){return "0"+_a;}return _a;},succ:function(){return this+1;},times:function(_b){$R(0,this,true).each(_b);return this;}});var Try={these:function(){var _c;for(var i=0;i<arguments.length;i++){var _e=arguments[i];try{_c=_e();break;}catch(e){}}return _c;}};var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(_f,_10){this.callback=_f;this.frequency=_10;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback();}finally{this.currentlyExecuting=false;}}}};function $(){var _11=new Array();for(var i=0;i<arguments.length;i++){var _13=arguments[i];if(typeof _13=="string"){_13=document.getElementById(_13);}if(arguments.length==1){return _13;}_11.push(_13);}return _11;}var 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(_14){this.options={method:"post",asynchronous:true,parameters:""};Object.extend(this.options,_14||{});},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=Object.extend(new Ajax.Base(),{initialize:function(url,_16){this.transport=Ajax.getTransport();this.setOptions(_16);this.request(url);},request:function(url){var _18=this.options.parameters||"";if(_18.length>0){_18+="&_=";}try{if(this.options.method=="get"){url+="?"+_18;}this.transport.open(this.options.method,url,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 _19=this.options.postBody?this.options.postBody:_18;this.transport.send(this.options.method=="post"?_19:null);}catch(e){}},setRequestHeaders:function(){var _1a=["X-Requested-With","XMLHttpRequest","X-Prototype-Version",Prototype.Version];if(this.options.method=="post"){_1a.push("Content-type","application/x-www-form-urlencoded");if(this.transport.overrideMimeType){_1a.push("Connection","close");}}if(this.options.requestHeaders){_1a.push.apply(_1a,this.options.requestHeaders);}for(var i=0;i<_1a.length;i+=2){this.transport.setRequestHeader(_1a[i],_1a[i+1]);}},onStateChange:function(){var _1c=this.transport.readyState;if(_1c!=1){this.respondToReadyState(this.transport.readyState);}},evalJSON:function(){try{var _1d=this.transport.getResponseHeader("X-JSON"),object;object=eval(_1d);return object;}catch(e){}},respondToReadyState:function(_1e){var _1f=Ajax.Request.Events[_1e];var _20=this.transport,json=this.evalJSON();if(_1f=="Complete"){(this.options["on"+this.transport.status]||this.options["on"+(this.responseIsSuccess()?"Success":"Failure")]||Prototype.emptyFunction)(_20,json);}(this.options["on"+_1f]||Prototype.emptyFunction)(_20,json);if(_1f=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction;}}});Ajax.Updater=Class.create();Ajax.Updater.ScriptFragment="(?:<script.*?>)((\n|.)*?)(?:</script>)";Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(_21,url,_23){this.containers={success:_21.success?$(_21.success):$(_21),failure:_21.failure?$(_21.failure):(_21.success?null:$(_21))};this.transport=Ajax.getTransport();this.setOptions(_23);var _24=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(_25,_26){this.updateContent();_24(_25,_26);}).bind(this);this.request(url);},updateContent:function(){var _27=this.responseIsSuccess()?this.containers.success:this.containers.failure;var _28=new RegExp(Ajax.Updater.ScriptFragment,"img");var _29=this.transport.responseText.replace(_28,"");var _2a=this.transport.responseText.match(_28);if(_27){if(this.options.insertion){new this.options.insertion(_27,_29);}else{_27.innerHTML=_29;}}if(this.responseIsSuccess()){if(this.onComplete){setTimeout(this.onComplete.bind(this),10);}}if(this.options.evalScripts&&_2a){_28=new RegExp(Ajax.Updater.ScriptFragment,"im");setTimeout((function(){for(var i=0;i<_2a.length;i++){eval(_2a[i].match(_28)[1]);}}).bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(_2c,url,_2e){this.setOptions(_2e);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=1;this.updater={};this.container=_2c;this.url=url;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(_2f){if(this.options.decay){this.decay=(_2f.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=_2f.responseText;}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});