function $(){var a=new Array;for(var b=0;b<arguments.length;b++){var c=arguments[b];if(typeof c=="string")c=document.getElementById(c);if(arguments.length==1)return c;a.push(c)}return a}var Prototype={Version:"1.3.1",emptyFunction:function(){}};var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};var Abstract=new Object;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(){var a;for(var b=0;b<arguments.length;b++){var c=arguments[b];try{a=c();break}catch(d){}}return a}};var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(a,b){this.callback=a;this.frequency=b;this.currentlyExecuting=false;this.registerCallback()},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1e3)},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback()}finally{this.currentlyExecuting=false}}}};if(!Array.prototype.push){Array.prototype.push=function(){var a=this.length;for(var b=0;b<arguments.length;b++)this[a+b]=arguments[b];return this.length}}if(!Function.prototype.apply){Function.prototype.apply=function(object,parameters){var parameterStrings=new Array;if(!object)object=window;if(!parameters)parameters=new Array;for(var i=0;i<parameters.length;i++)parameterStrings[i]="parameters["+i+"]";object.__apply__=this;var result=eval("object.__apply__("+parameterStrings.join(", ")+")");object.__apply__=null;return result}}String.prototype.extend({stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")},escapeHTML:function(){var a=document.createElement("div");var b=document.createTextNode(this);a.appendChild(b);return a.innerHTML},unescapeHTML:function(){var a=document.createElement("div");a.innerHTML=this.stripTags();return a.childNodes[0].nodeValue}});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(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");if(this.transport.overrideMimeType)a.push("Connection","close")}if(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(){var a=this.transport.readyState;if(a!=1)this.respondToReadyState(this.transport.readyState)},respondToReadyState:function(a){var b=Ajax.Request.Events[a];if(b=="Complete")(this.options["on"+this.transport.status]||this.options["on"+(this.responseIsSuccess()?"Success":"Failure")]||Prototype.emptyFunction)(this.transport);(this.options["on"+b]||Prototype.emptyFunction)(this.transport);if(b=="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 receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var match=new RegExp(Ajax.Updater.ScriptFragment,"img");var response=this.transport.responseText.replace(match,"");var scripts=this.transport.responseText.match(match);if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response)}else{receiver.innerHTML=response}}if(this.responseIsSuccess()){if(this.onComplete)setTimeout(function(){this.onComplete(this.transport)}.bind(this),10)}if(this.options.evalScripts&&scripts){match=new RegExp(Ajax.Updater.ScriptFragment,"im");setTimeout(function(){for(var i=0;i<scripts.length;i++)eval(scripts[i].match(match)[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)}});document.getElementsByClassName=function(a){var b=document.getElementsByTagName("*")||document.all;var c=new Array;for(var d=0;d<b.length;d++){var e=b[d];var f=e.className.split(" ");for(var g=0;g<f.length;g++){if(f[g]==a){c.push(e);break}}}return c};if(!window.Element){var Element=new Object}Object.extend(Element,{toggle:function(){for(var a=0;a<arguments.length;a++){var b=$(arguments[a]);b.style.display=b.style.display=="none"?"":"none"}},hide:function(){for(var a=0;a<arguments.length;a++){var b=$(arguments[a]);b.style.display="none"}},show:function(){for(var a=0;a<arguments.length;a++){var b=$(arguments[a]);b.style.display=""}},remove:function(a){a=$(a);a.parentNode.removeChild(a)},getHeight:function(a){a=$(a);return a.offsetHeight},hasClassName:function(a,b){a=$(a);if(!a)return;var c=a.className.split(" ");for(var d=0;d<c.length;d++){if(c[d]==b)return true}return false},addClassName:function(a,b){a=$(a);Element.removeClassName(a,b);a.className+=" "+b},removeClassName:function(a,b){a=$(a);if(!a)return;var c="";var d=a.className.split(" ");for(var e=0;e<d.length;e++){if(d[e]!=b){if(e>0)c+=" ";c+=d[e]}}a.className=c},cleanWhitespace:function(a){var a=$(a);for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(c.nodeType==3&&!/\S/.test(c.nodeValue))Element.remove(c)}}});var Toggle=new Object;Toggle.display=Element.toggle;Abstract.Insertion=function(a){this.adjacency=a};Abstract.Insertion.prototype={initialize:function(a,b){this.element=$(a);this.content=b;if(this.adjacency&&this.element.insertAdjacentHTML){this.element.insertAdjacentHTML(this.adjacency,this.content)}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.fragment=this.range.createContextualFragment(this.content);this.insertContent()}}};var Insertion=new Object;Insertion.Before=Class.create();Insertion.Before.prototype=(new Abstract.Insertion("beforeBegin")).extend({initializeRange:function(){this.range.setStartBefore(this.element)},insertContent:function(){this.element.parentNode.insertBefore(this.fragment,this.element)}});Insertion.Top=Class.create();Insertion.Top.prototype=(new Abstract.Insertion("afterBegin")).extend({initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true)},insertContent:function(){this.element.insertBefore(this.fragment,this.element.firstChild)}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=(new Abstract.Insertion("beforeEnd")).extend({initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element)},insertContent:function(){this.element.appendChild(this.fragment)}});Insertion.After=Class.create();Insertion.After.prototype=(new Abstract.Insertion("afterEnd")).extend({initializeRange:function(){this.range.setStartAfter(this.element)},insertContent:function(){this.element.parentNode.insertBefore(this.fragment,this.element.nextSibling)}});var Field={clear:function(){for(var a=0;a<arguments.length;a++)$(arguments[a]).value=""},focus:function(a){$(a).focus()},present:function(){for(var a=0;a<arguments.length;a++)if($(arguments[a]).value=="")return false;return true},select:function(a){$(a).select()},activate:function(a){$(a).focus();$(a).select()}};var Form={serialize:function(a){var b=Form.getElements($(a));var c=new Array;for(var d=0;d<b.length;d++){var e=Form.Element.serialize(b[d]);if(e)c.push(e)}return c.join("&")},getElements:function(a){var a=$(a);var b=new Array;for(tagName in Form.Element.Serializers){var c=a.getElementsByTagName(tagName);for(var d=0;d<c.length;d++)b.push(c[d])}return b},getInputs:function(a,b,c){var a=$(a);var d=a.getElementsByTagName("input");if(!b&&!c)return d;var e=new Array;for(var f=0;f<d.length;f++){var g=d[f];if(b&&g.type!=b||c&&g.name!=c)continue;e.push(g)}return e},disable:function(a){var b=Form.getElements(a);for(var c=0;c<b.length;c++){var d=b[c];d.blur();d.disabled="true"}},enable:function(a){var b=Form.getElements(a);for(var c=0;c<b.length;c++){var d=b[c];d.disabled=""}},focusFirstElement:function(a){var a=$(a);var b=Form.getElements(a);for(var c=0;c<b.length;c++){var d=b[c];if(d.type!="hidden"&&!d.disabled){Field.activate(d);break}}},reset:function(a){$(a).reset()}};Form.Element={serialize:function(a){var a=$(a);var b=a.tagName.toLowerCase();var c=Form.Element.Serializers[b](a);if(c)return encodeURIComponent(c[0])+"="+encodeURIComponent(c[1])},getValue:function(a){var a=$(a);var b=a.tagName.toLowerCase();var c=Form.Element.Serializers[b](a);if(c)return c[1]}};Form.Element.Serializers={input:function(a){switch(a.type.toLowerCase()){case"submit":case"hidden":case"password":case"text":return Form.Element.Serializers.textarea(a);case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(a)}return false},inputSelector:function(a){if(a.checked)return[a.name,a.value]},textarea:function(a){return[a.name,a.value]},select:function(a){var b="";if(a.type=="select-one"){var c=a.selectedIndex;if(c>=0)b=a.options[c].value||a.options[c].text}else{b=new Array;for(var d=0;d<a.length;d++){var e=a.options[d];if(e.selected)b.push(e.value||e.text)}}return[a.name,b]}};var $F=Form.Element.getValue;Abstract.TimedObserver=function(){};Abstract.TimedObserver.prototype={initialize:function(a,b,c){this.frequency=b;this.element=$(a);this.callback=c;this.lastValue=this.getValue();this.registerCallback()},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1e3)},onTimerEvent:function(){var a=this.getValue();if(this.lastValue!=a){this.callback(this.element,a);this.lastValue=a}}};Form.Element.Observer=Class.create();Form.Element.Observer.prototype=(new Abstract.TimedObserver).extend({getValue:function(){return Form.Element.getValue(this.element)}});Form.Observer=Class.create();Form.Observer.prototype=(new Abstract.TimedObserver).extend({getValue:function(){return Form.serialize(this.element)}});Abstract.EventObserver=function(){};Abstract.EventObserver.prototype={initialize:function(a,b){this.element=$(a);this.callback=b;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=="form")this.registerFormCallbacks();else this.registerCallback(this.element)},onElementEvent:function(){var a=this.getValue();if(this.lastValue!=a){this.callback(this.element,a);this.lastValue=a}},registerFormCallbacks:function(){var a=Form.getElements(this.element);for(var b=0;b<a.length;b++)this.registerCallback(a[b])},registerCallback:function(a){if(a.type){switch(a.type.toLowerCase()){case"checkbox":case"radio":a.target=this;a.prev_onclick=a.onclick||Prototype.emptyFunction;a.onclick=function(){this.prev_onclick();this.target.onElementEvent()};break;case"password":case"text":case"textarea":case"select-one":case"select-multiple":a.target=this;a.prev_onchange=a.onchange||Prototype.emptyFunction;a.onchange=function(){this.prev_onchange();this.target.onElementEvent()};break}}}};Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=(new Abstract.EventObserver).extend({getValue:function(){return Form.Element.getValue(this.element)}});Form.EventObserver=Class.create();Form.EventObserver.prototype=(new Abstract.EventObserver).extend({getValue:function(){return Form.serialize(this.element)}});if(!window.Event){var Event=new Object}Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(a){return a.target||a.srcElement},isLeftClick:function(a){return a.which&&a.which==1||a.button&&a.button==1},pointerX:function(a){return a.pageX||a.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)},pointerY:function(a){return a.pageY||a.clientY+(document.documentElement.scrollTop||document.body.scrollTop)},stop:function(a){if(a.preventDefault){a.preventDefault();a.stopPropagation()}else{a.returnValue=false}},findElement:function(a,b){var c=Event.element(a);while(c.parentNode&&(!c.tagName||c.tagName.toUpperCase()!=b.toUpperCase()))c=c.parentNode;return c},observers:false,_observeAndCache:function(a,b,c,d){if(!this.observers)this.observers=[];if(a.addEventListener){this.observers.push([a,b,c,d]);a.addEventListener(b,c,d)}else if(a.attachEvent){this.observers.push([a,b,c,d]);a.attachEvent("on"+b,c)}},unloadCache:function(){if(!Event.observers)return;for(var a=0;a<Event.observers.length;a++){Event.stopObserving.apply(this,Event.observers[a]);Event.observers[a][0]=null}Event.observers=false},observe:function(a,b,c,d){var a=$(a);d=d||false;if(b=="keypress"&&(navigator.appVersion.indexOf("AppleWebKit")>0||a.attachEvent))b="keydown";this._observeAndCache(a,b,c,d)},stopObserving:function(a,b,c,d){var a=$(a);d=d||false;if(b=="keypress"&&(navigator.appVersion.indexOf("AppleWebKit")>0||a.detachEvent))b="keydown";if(a.removeEventListener){a.removeEventListener(b,c,d)}else if(a.detachEvent){a.detachEvent("on"+b,c)}}});Event.observe(window,"unload",Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},realOffset:function(a){var b=0,c=0;do{b+=a.scrollTop||0;c+=a.scrollLeft||0;a=a.parentNode}while(a);return[c,b]},cumulativeOffset:function(a){var b=0,c=0;do{b+=a.offsetTop||0;c+=a.offsetLeft||0;a=a.offsetParent}while(a);return[c,b]},within:function(a,b,c){if(this.includeScrollOffsets)return this.withinIncludingScrolloffsets(a,b,c);this.xcomp=b;this.ycomp=c;this.offset=this.cumulativeOffset(a);return c>=this.offset[1]&&c<this.offset[1]+a.offsetHeight&&b>=this.offset[0]&&b<this.offset[0]+a.offsetWidth},withinIncludingScrolloffsets:function(a,b,c){var d=this.realOffset(a);this.xcomp=b+d[0]-this.deltaX;this.ycomp=c+d[1]-this.deltaY;this.offset=this.cumulativeOffset(a);return this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+a.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+a.offsetWidth},overlap:function(a,b){if(!a)return 0;if(a=="vertical")return(this.offset[1]+b.offsetHeight-this.ycomp)/b.offsetHeight;if(a=="horizontal")return(this.offset[0]+b.offsetWidth-this.xcomp)/b.offsetWidth},clone:function(a,b){a=$(a);b=$(b);b.style.position="absolute";var c=this.cumulativeOffset(a);b.style.top=c[1]+"px";b.style.left=c[0]+"px";b.style.width=a.offsetWidth+"px";b.style.height=a.offsetHeight+"px"}}
