var Builder={NODEMAP:{AREA:"map",CAPTION:"table",COL:"table",COLGROUP:"table",LEGEND:"fieldset",OPTGROUP:"select",OPTION:"select",PARAM:"object",TBODY:"table",TD:"table",TFOOT:"table",TH:"table",THEAD:"table",TR:"table"},node:function(_1){_1=_1.toUpperCase();var _2=this.NODEMAP[_1]||"div";var _3=document.createElement(_2);try{_3.innerHTML="<"+_1+"></"+_1+">";}catch(e){}var _4=_3.firstChild||null;if(_4&&(_4.tagName!=_1)){_4=_4.getElementsByTagName(_1)[0];}if(!_4){_4=document.createElement(_1);}if(!_4){return;}if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1] instanceof Array)){this._children(_4,arguments[1]);}else{var _5=this._attributes(arguments[1]);if(_5.length){try{_3.innerHTML="<"+_1+" "+_5+"></"+_1+">";}catch(e){}_4=_3.firstChild||null;if(!_4){_4=document.createElement(_1);for(attr in arguments[1]){_4[attr=="class"?"className":attr]=arguments[1][attr];}}if(_4.tagName!=_1){_4=_3.getElementsByTagName(_1)[0];}}}}if(arguments[2]){this._children(_4,arguments[2]);}return _4;},_text:function(_6){return document.createTextNode(_6);},_attributes:function(_7){var _8=[];for(attribute in _7){_8.push((attribute=="className"?"class":attribute)+"=\""+_7[attribute].toString().escapeHTML()+"\"");}return _8.join(" ");},_children:function(_9,_a){if(typeof _a=="object"){_a.flatten().each(function(e){if(typeof e=="object"){_9.appendChild(e);}else{if(Builder._isStringOrNumber(e)){_9.appendChild(Builder._text(e));}}});}else{if(Builder._isStringOrNumber(_a)){_9.appendChild(Builder._text(_a));}}},_isStringOrNumber:function(_c){return (typeof _c=="string"||typeof _c=="number");}};String.prototype.parseColor=function(){var _1="#";if(this.slice(0,4)=="rgb("){var _2=this.slice(4,this.length-1).split(",");var i=0;do{_1+=parseInt(_2[i]).toColorPart();}while(++i<3);}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var i=1;i<4;i++){_1+=(this.charAt(i)+this.charAt(i)).toLowerCase();}}if(this.length==7){_1=this.toLowerCase();}}}return (_1.length==7?_1:(arguments[0]||this));};Element.collectTextNodes=function(_4){return $A($(_4).childNodes).collect(function(_5){return (_5.nodeType==3?_5.nodeValue:(_5.hasChildNodes()?Element.collectTextNodes(_5):""));}).flatten().join("");};Element.collectTextNodesIgnoreClass=function(_6,_7){return $A($(_6).childNodes).collect(function(_8){return (_8.nodeType==3?_8.nodeValue:((_8.hasChildNodes()&&!Element.hasClassName(_8,_7))?Element.collectTextNodesIgnoreClass(_8,_7):""));}).flatten().join("");};Element.setContentZoom=function(_9,_a){_9=$(_9);Element.setStyle(_9,{fontSize:(_a/100)+"em"});if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);}};Element.getOpacity=function(_b){var _c;if(_c=Element.getStyle(_b,"opacity")){return parseFloat(_c);}if(_c=(Element.getStyle(_b,"filter")||"").match(/alpha\(opacity=(.*)\)/)){if(_c[1]){return parseFloat(_c[1])/100;}}return 1;};Element.setOpacity=function(_d,_e){_d=$(_d);if(_e==1){Element.setStyle(_d,{opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:null});if(/MSIE/.test(navigator.userAgent)){Element.setStyle(_d,{filter:Element.getStyle(_d,"filter").replace(/alpha\([^\)]*\)/gi,"")});}}else{if(_e<0.00001){_e=0;}Element.setStyle(_d,{opacity:_e});if(/MSIE/.test(navigator.userAgent)){Element.setStyle(_d,{filter:Element.getStyle(_d,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+_e*100+")"});}}};Element.getInlineOpacity=function(_f){return $(_f).style.opacity||"";};Element.childrenWithClassName=function(_10,_11,_12){var _13=new RegExp("(^|\\s)"+_11+"(\\s|$)");var _14=$A($(_10).getElementsByTagName("*"))[_12?"detect":"select"](function(c){return (c.className&&c.className.match(_13));});if(!_14){_14=[];}return _14;};Element.forceRerendering=function(_16){try{_16=$(_16);var n=document.createTextNode(" ");_16.appendChild(n);_16.removeChild(n);}catch(e){}};Array.prototype.call=function(){var _18=arguments;this.each(function(f){f.apply(this,_18);});};var Effect={tagifyText:function(_1a){var _1b="position:relative";if(/MSIE/.test(navigator.userAgent)){_1b+=";zoom:1";}_1a=$(_1a);$A(_1a.childNodes).each(function(_1c){if(_1c.nodeType==3){_1c.nodeValue.toArray().each(function(_1d){_1a.insertBefore(Builder.node("span",{style:_1b},_1d==" "?String.fromCharCode(160):_1d),_1c);});Element.remove(_1c);}});},multiple:function(_1e,_1f){var _20;if(((typeof _1e=="object")||(typeof _1e=="function"))&&(_1e.length)){_20=_1e;}else{_20=$(_1e).childNodes;}var _21=Object.extend({speed:0.1,delay:0},arguments[2]||{});var _22=_21.delay;$A(_20).each(function(_23,_24){new _1f(_23,Object.extend(_21,{delay:_24*_21.speed+_22}));});},PAIRS:{"slide":["SlideDown","SlideUp"],"blind":["BlindDown","BlindUp"],"appear":["Appear","Fade"]},toggle:function(_25,_26){_25=$(_25);_26=(_26||"appear").toLowerCase();var _27=Object.extend({queue:{position:"end",scope:(_25.id||"global"),limit:1}},arguments[2]||{});Effect[_25.visible()?Effect.PAIRS[_26][1]:Effect.PAIRS[_26][0]](_25,_27);}};var Effect2=Effect;Effect.Transitions={};Effect.Transitions.linear=function(pos){return pos;};Effect.Transitions.sinoidal=function(pos){return (-Math.cos(pos*Math.PI)/2)+0.5;};Effect.Transitions.reverse=function(pos){return 1-pos;};Effect.Transitions.flicker=function(pos){return ((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;};Effect.Transitions.wobble=function(pos){return (-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;};Effect.Transitions.pulse=function(pos){return (Math.floor(pos*10)%2==0?(pos*10-Math.floor(pos*10)):1-(pos*10-Math.floor(pos*10)));};Effect.Transitions.none=function(pos){return 0;};Effect.Transitions.full=function(pos){return 1;};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(_30){this.effects._each(_30);},add:function(_31){var _32=new Date().getTime();var _33=(typeof _31.options.queue=="string")?_31.options.queue:_31.options.queue.position;switch(_33){case "front":this.effects.findAll(function(e){return e.state=="idle";}).each(function(e){e.startOn+=_31.finishOn;e.finishOn+=_31.finishOn;});break;case "end":_32=this.effects.pluck("finishOn").max()||_32;break;}_31.startOn+=_32;_31.finishOn+=_32;if(!_31.options.queue.limit||(this.effects.length<_31.options.queue.limit)){this.effects.push(_31);}if(!this.interval){this.interval=setInterval(this.loop.bind(this),40);}},remove:function(_36){this.effects=this.effects.reject(function(e){return e==_36;});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var _38=new Date().getTime();this.effects.invoke("loop",_38);}});Effect.Queues={instances:$H(),get:function(_39){if(typeof _39!="string"){return _39;}if(!this.instances[_39]){this.instances[_39]=new Effect.ScopedQueue();}return this.instances[_39];}};Effect.Queue=Effect.Queues.get("global");Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"};Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(_3a){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),_3a||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).add(this);}},loop:function(_3b){if(_3b>=this.startOn){if(_3b>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish();}this.event("afterFinish");return;}var pos=(_3b-this.startOn)/(this.finishOn-this.startOn);var _3d=Math.round(pos*this.options.fps*this.options.duration);if(_3d>this.currentFrame){this.render(pos);this.currentFrame=_3d;}}},render:function(pos){if(this.state=="idle"){this.state="running";this.event("beforeSetup");if(this.setup){this.setup();}this.event("afterSetup");}if(this.state=="running"){if(this.options.transition){pos=this.options.transition(pos);}pos*=(this.options.to-this.options.from);pos+=this.options.from;this.position=pos;this.event("beforeUpdate");if(this.update){this.update(pos);}this.event("afterUpdate");}},cancel:function(){if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).remove(this);}this.state="finished";},event:function(_3f){if(this.options[_3f+"Internal"]){this.options[_3f+"Internal"](this);}if(this.options[_3f]){this.options[_3f](this);}},inspect:function(){return "#<Effect:"+$H(this).inspect()+",options:"+$H(this.options).inspect()+">";}};Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(_40){this.effects=_40||[];this.start(arguments[1]);},update:function(_41){this.effects.invoke("render",_41);},finish:function(_42){this.effects.each(function(_43){_43.render(1);_43.cancel();_43.event("beforeFinish");if(_43.finish){_43.finish(_42);}_43.event("afterFinish");});}});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(_44){this.element=$(_44);if(/MSIE/.test(navigator.userAgent)&&(!this.element.hasLayout)){this.element.setStyle({zoom:1});}var _45=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(_45);},update:function(_46){this.element.setOpacity(_46);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(_47){this.element=$(_47);var _48=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(_48);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle("left")||"0");this.originalTop=parseFloat(this.element.getStyle("top")||"0");if(this.options.mode=="absolute"){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(_49){this.element.setStyle({left:this.options.x*_49+this.originalLeft+"px",top:this.options.y*_49+this.originalTop+"px"});}});Effect.MoveBy=function(_4a,_4b,_4c){return new Effect.Move(_4a,Object.extend({x:_4c,y:_4b},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(_4d,_4e){this.element=$(_4d);var _4f=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_4e},arguments[2]||{});this.start(_4f);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var _51=this.element.getStyle("font-size")||"100%";["em","px","%"].each(function(_52){if(_51.indexOf(_52)>0){this.fontSize=parseFloat(_51);this.fontSizeType=_52;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth];}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth];}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];}},update:function(_53){var _54=(this.options.scaleFrom/100)+(this.factor*_53);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*_54+this.fontSizeType});}this.setDimensions(this.dims[0]*_54,this.dims[1]*_54);},finish:function(_55){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle);}},setDimensions:function(_56,_57){var d={};if(this.options.scaleX){d.width=_57+"px";}if(this.options.scaleY){d.height=_56+"px";}if(this.options.scaleFromCenter){var _59=(_56-this.dims[0])/2;var _5a=(_57-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){d.top=this.originalTop-_59+"px";}if(this.options.scaleX){d.left=this.originalLeft-_5a+"px";}}else{if(this.options.scaleY){d.top=-_59+"px";}if(this.options.scaleX){d.left=-_5a+"px";}}}this.element.setStyle(d);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(_5b){this.element=$(_5b);var _5c=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(_5c);},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return;}this.oldStyle={backgroundImage:this.element.getStyle("background-image")};this.element.setStyle({backgroundImage:"none"});if(!this.options.endcolor){this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff");}if(!this.options.restorecolor){this.options.restorecolor=this.element.getStyle("background-color");}this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16);}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i];}.bind(this));},update:function(_5f){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(m,v,i){return m+(Math.round(this._base[i]+(this._delta[i]*_5f)).toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(_63){this.element=$(_63);this.start(arguments[1]||{});},setup:function(){Position.prepare();var _64=Position.cumulativeOffset(this.element);if(this.options.offset){_64[1]+=this.options.offset;}var max=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(_64[1]>max?max:_64[1])-this.scrollStart;},update:function(_66){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(_66*this.delta));}});Effect.Fade=function(_67){_67=$(_67);var _68=_67.getInlineOpacity();var _69=Object.extend({from:_67.getOpacity()||1,to:0,afterFinishInternal:function(_6a){if(_6a.options.to!=0){return;}_6a.element.hide();_6a.element.setStyle({opacity:_68});}},arguments[1]||{});return new Effect.Opacity(_67,_69);};Effect.Appear=function(_6b){_6b=$(_6b);var _6c=Object.extend({from:(_6b.getStyle("display")=="none"?0:_6b.getOpacity()||0),to:1,afterFinishInternal:function(_6d){_6d.element.forceRerendering();},beforeSetup:function(_6e){_6e.element.setOpacity(_6e.options.from);_6e.element.show();}},arguments[1]||{});return new Effect.Opacity(_6b,_6c);};Effect.SlideDown=function(_6f){_6f=$(_6f);_6f.cleanWhitespace();var _70=$(_6f.firstChild).getStyle("bottom");var _71=_6f.getDimensions();return new Effect.Scale(_6f,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:_71.height,originalWidth:_71.width},restoreAfterFinish:true,afterSetup:function(_72){_72.element.makePositioned();_72.element.firstChild.makePositioned();if(window.opera){_72.element.setStyle({top:""});}_72.element.makeClipping();_72.element.setStyle({height:"0px"});_72.element.show();},afterUpdateInternal:function(_73){_73.element.firstChild.setStyle({bottom:(_73.dims[0]-_73.element.clientHeight)+"px"});},afterFinishInternal:function(_74){_74.element.undoClipping();if(/MSIE/.test(navigator.userAgent)){_74.element.undoPositioned();_74.element.firstChild.undoPositioned();}else{_74.element.firstChild.undoPositioned();_74.element.undoPositioned();}_74.element.firstChild.setStyle({bottom:_70});}},arguments[1]||{}));};Effect.SlideUp=function(_75){_75=$(_75);_75.cleanWhitespace();var _76=$(_75.firstChild).getStyle("bottom");return new Effect.Scale(_75,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_77){_77.element.makePositioned();_77.element.firstChild.makePositioned();if(window.opera){_77.element.setStyle({top:""});}_77.element.makeClipping();_77.element.show();},afterUpdateInternal:function(_78){_78.element.firstChild.setStyle({bottom:(_78.dims[0]-_78.element.clientHeight)+"px"});},afterFinishInternal:function(_79){_79.element.hide();_79.element.undoClipping();_79.element.firstChild.undoPositioned();_79.element.undoPositioned();_79.element.setStyle({bottom:_76});}},arguments[1]||{}));};["setOpacity","getOpacity","getInlineOpacity","forceRerendering","setContentZoom","collectTextNodes","collectTextNodesIgnoreClass","childrenWithClassName"].each(function(f){Element.Methods[f]=Element[f];});Element.Methods.visualEffect=function(_7b,_7c,_7d){s=_7c.gsub(/_/,"-").camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](_7b,_7d);return $(_7b);};Element.addMethods();var Droppables={drops:[],remove:function(_8a){this.drops=this.drops.reject(function(d){return d.element==$(_8a);});},add:function(_8c){_8c=$(_8c);var _8d=Object.extend({greedy:true,hoverclass:null},arguments[1]||{});if(_8d.containment){_8d._containers=[];var _8e=_8d.containment;if((typeof _8e=="object")&&(_8e.constructor==Array)){_8e.each(function(c){_8d._containers.push($(c));});}else{_8d._containers.push($(_8e));}}if(_8d.accept){_8d.accept=[_8d.accept].flatten();}Element.makePositioned(_8c);_8d.element=_8c;this.drops.push(_8d);},isContained:function(_90,_91){var _92=_90.parentNode;return _91._containers.detect(function(c){return _92==c;});},isAffected:function(_94,_95,_96){return ((_96.element!=_95)&&((!_96._containers)||this.isContained(_95,_96))&&((!_96.accept)||(Element.classNames(_95).detect(function(v){return _96.accept.include(v);})))&&Position.within(_96.element,_94[0],_94[1]));},deactivate:function(_98){if(_98.hoverclass){Element.removeClassName(_98.element,_98.hoverclass);}this.last_active=null;},activate:function(_99){if(_99.hoverclass){Element.addClassName(_99.element,_99.hoverclass);}this.last_active=_99;},show:function(_9a,_9b){if(!this.drops.length){return;}if(this.last_active){this.deactivate(this.last_active);}this.drops.each(function(_9c){if(Droppables.isAffected(_9a,_9b,_9c)){if(_9c.onHover){_9c.onHover(_9b,_9c.element,Position.overlap(_9c.overlap,_9c.element));}if(_9c.greedy){Droppables.activate(_9c);throw $break;}}});},fire:function(_9d,_9e){if(!this.last_active){return;}Position.prepare();if(this.isAffected([Event.pointerX(_9d),Event.pointerY(_9d)],_9e,this.last_active)){if(this.last_active.onDrop){this.last_active.onDrop(_9e,this.last_active.element,_9d);}}},reset:function(){if(this.last_active){this.deactivate(this.last_active);}}};var Draggables={drags:[],observers:[],register:function(_9f){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}this.drags.push(_9f);},unregister:function(_a0){this.drags=this.drags.reject(function(d){return d==_a0;});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(_a2){window.focus();this.activeDraggable=_a2;},deactivate:function(){this.activeDraggable=null;},updateDrag:function(_a3){if(!this.activeDraggable){return;}var _a4=[Event.pointerX(_a3),Event.pointerY(_a3)];if(this._lastPointer&&(this._lastPointer.inspect()==_a4.inspect())){return;}this._lastPointer=_a4;this.activeDraggable.updateDrag(_a3,_a4);},endDrag:function(_a5){if(!this.activeDraggable){return;}this._lastPointer=null;this.activeDraggable.endDrag(_a5);this.activeDraggable=null;},keyPress:function(_a6){if(this.activeDraggable){this.activeDraggable.keyPress(_a6);}},addObserver:function(_a7){this.observers.push(_a7);this._cacheObserverCallbacks();},removeObserver:function(_a8){this.observers=this.observers.reject(function(o){return o.element==_a8;});this._cacheObserverCallbacks();},notify:function(_aa,_ab,_ac){if(this[_aa+"Count"]>0){this.observers.each(function(o){if(o[_aa]){o[_aa](_aa,_ab,_ac);}});}},_cacheObserverCallbacks:function(){["onStart","onEnd","onDrag"].each(function(_ae){Draggables[_ae+"Count"]=Draggables.observers.select(function(o){return o[_ae];}).length;});}};var Draggable=Class.create();Draggable.prototype={initialize:function(_b0){var _b1=Object.extend({handle:false,starteffect:function(_b2){new Effect.Opacity(_b2,{duration:0.2,from:1,to:0.7});},reverteffect:function(_b3,_b4,_b5){var dur=Math.sqrt(Math.abs(_b4^2)+Math.abs(_b5^2))*0.02;_b3._revert=new Effect.Move(_b3,{x:-_b5,y:-_b4,duration:dur});},endeffect:function(_b7){new Effect.Opacity(_b7,{duration:0.2,from:0.7,to:1});},zindex:1000,revert:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false},arguments[1]||{});this.element=$(_b0);if(_b1.handle&&(typeof _b1.handle=="string")){this.handle=Element.childrenWithClassName(this.element,_b1.handle)[0];}if(!this.handle){this.handle=$(_b1.handle);}if(!this.handle){this.handle=this.element;}if(_b1.scroll){_b1.scroll=$(_b1.scroll);}Element.makePositioned(this.element);this.delta=this.currentDelta();this.options=_b1;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return ([parseInt(Element.getStyle(this.element,"left")||"0"),parseInt(Element.getStyle(this.element,"top")||"0")]);},initDrag:function(_b8){if(Event.isLeftClick(_b8)){var src=Event.element(_b8);if(src.tagName&&(src.tagName=="INPUT"||src.tagName=="SELECT"||src.tagName=="OPTION"||src.tagName=="BUTTON"||src.tagName=="TEXTAREA")){return;}if(this.element._revert){this.element._revert.cancel();this.element._revert=null;}var _ba=[Event.pointerX(_b8),Event.pointerY(_b8)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return (_ba[i]-pos[i]);});Draggables.activate(this);Event.stop(_b8);}},startDrag:function(_bd){this.dragging=true;if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,"z-index")||0);this.element.style.zIndex=this.options.zindex;}if(this.options.ghosting){this._clone=this.element.cloneNode(true);Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}if(this.options.scroll){this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}Draggables.notify("onStart",this,_bd);if(this.options.starteffect){this.options.starteffect(this.element);}},updateDrag:function(_be,_bf){if(!this.dragging){this.startDrag(_be);}Position.prepare();Droppables.show(_bf,this.element);Draggables.notify("onDrag",this,_be);this.draw(_bf);if(this.options.change){this.options.change(this);}if(this.options.scroll){this.stopScrolling();var p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft;p[1]+=this.options.scroll.scrollTop;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);var _c1=[0,0];if(_bf[0]<(p[0]+this.options.scrollSensitivity)){_c1[0]=_bf[0]-(p[0]+this.options.scrollSensitivity);}if(_bf[1]<(p[1]+this.options.scrollSensitivity)){_c1[1]=_bf[1]-(p[1]+this.options.scrollSensitivity);}if(_bf[0]>(p[2]-this.options.scrollSensitivity)){_c1[0]=_bf[0]-(p[2]-this.options.scrollSensitivity);}if(_bf[1]>(p[3]-this.options.scrollSensitivity)){_c1[1]=_bf[1]-(p[3]-this.options.scrollSensitivity);}this.startScrolling(_c1);}if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);}Event.stop(_be);},finishDrag:function(_c2,_c3){this.dragging=false;if(this.options.ghosting){Position.relativize(this.element);Element.remove(this._clone);this._clone=null;}if(_c3){Droppables.fire(_c2,this.element);}Draggables.notify("onEnd",this,_c2);var _c4=this.options.revert;if(_c4&&typeof _c4=="function"){_c4=_c4(this.element);}var d=this.currentDelta();if(_c4&&this.options.reverteffect){this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;}if(this.options.zindex){this.element.style.zIndex=this.originalZ;}if(this.options.endeffect){this.options.endeffect(this.element);}Draggables.deactivate(this);Droppables.reset();},keyPress:function(_c6){if(_c6.keyCode!=Event.KEY_ESC){return;}this.finishDrag(_c6,false);Event.stop(_c6);},endDrag:function(_c7){if(!this.dragging){return;}this.stopScrolling();this.finishDrag(_c7,true);Event.stop(_c7);},draw:function(_c8){var pos=Position.cumulativeOffset(this.element);var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}var p=[0,1].map(function(i){return (_c8[i]-pos[i]-this.offset[i]);}.bind(this));if(this.options.snap){if(typeof this.options.snap=="function"){p=this.options.snap(p[0],p[1]);}else{if(this.options.snap instanceof Array){p=p.map(function(v,i){return Math.round(v/this.options.snap[i])*this.options.snap[i];}.bind(this));}else{p=p.map(function(v){return Math.round(v/this.options.snap)*this.options.snap;}.bind(this));}}}var _d0=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){_d0.left=p[0]+"px";}if((!this.options.constraint)||(this.options.constraint=="vertical")){_d0.top=p[1]+"px";}if(_d0.visibility=="hidden"){_d0.visibility="";}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;}},startScrolling:function(_d1){this.scrollSpeed=[_d1[0]*this.options.scrollSpeed,_d1[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var _d2=new Date();var _d3=_d2-this.lastScrolled;this.lastScrolled=_d2;this.options.scroll.scrollLeft+=this.scrollSpeed[0]*_d3/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*_d3/1000;Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify("onDrag",this);this.draw(Draggables._lastPointer);if(this.options.change){this.options.change(this);}}};var SortableObserver=Class.create();SortableObserver.prototype={initialize:function(_d4,_d5){this.element=$(_d4);this.observer=_d5;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element)){this.observer(this.element);}}};var Sortable={sortables:new Array(),options:function(_d6){_d6=$(_d6);return this.sortables.detect(function(s){return s.element==_d6;});},destroy:function(_d8){_d8=$(_d8);this.sortables.findAll(function(s){return s.element==_d8;}).each(function(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d);});s.draggables.invoke("destroy");});this.sortables=this.sortables.reject(function(s){return s.element==_d8;});},create:function(_dd){_dd=$(_dd);var _de=Object.extend({element:_dd,tag:"li",dropOnEmpty:false,tree:false,overlap:"vertical",constraint:"vertical",containment:_dd,handle:false,only:false,hoverclass:null,ghosting:false,scroll:false,format:/^[^_]*_(.*)$/,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(_dd);var _df={revert:true,scroll:_de.scroll,ghosting:_de.ghosting,constraint:_de.constraint,handle:_de.handle};if(_de.starteffect){_df.starteffect=_de.starteffect;}if(_de.reverteffect){_df.reverteffect=_de.reverteffect;}else{if(_de.ghosting){_df.reverteffect=function(_e0){_e0.style.top=0;_e0.style.left=0;};}}if(_de.endeffect){_df.endeffect=_de.endeffect;}if(_de.zindex){_df.zindex=_de.zindex;}var _e1={overlap:_de.overlap,containment:_de.containment,hoverclass:_de.hoverclass,onHover:Sortable.onHover,greedy:!_de.dropOnEmpty};Element.cleanWhitespace(_dd);_de.draggables=[];_de.droppables=[];if(_de.dropOnEmpty){Droppables.add(_dd,{containment:_de.containment,onHover:Sortable.onEmptyHover,greedy:false});_de.droppables.push(_dd);}(this.findElements(_dd,_de)||[]).each(function(e){var _e3=_de.handle?Element.childrenWithClassName(e,_de.handle)[0]:e;_de.draggables.push(new Draggable(e,Object.extend(_df,{handle:_e3})));Droppables.add(e,_e1);_de.droppables.push(e);});this.sortables.push(_de);Draggables.addObserver(new SortableObserver(_dd,_de.onUpdate));},findElements:function(_e4,_e5){if(!_e4.hasChildNodes()){return null;}var _e6=[];$A(_e4.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==_e5.tag.toUpperCase()&&(!_e5.only||(Element.hasClassName(e,_e5.only)))){_e6.push(e);}if(_e5.tree){var _e8=this.findElements(e,_e5);if(_e8){_e6.push(_e8);}}});return (_e6.length>0?_e6.flatten():null);},onHover:function(_e9,_ea,_eb){if(_eb>0.5){Sortable.mark(_ea,"before");if(_ea.previousSibling!=_e9){var _ec=_e9.parentNode;_e9.style.visibility="hidden";_ea.parentNode.insertBefore(_e9,_ea);if(_ea.parentNode!=_ec){Sortable.options(_ec).onChange(_e9);}Sortable.options(_ea.parentNode).onChange(_e9);}}else{Sortable.mark(_ea,"after");var _ed=_ea.nextSibling||null;if(_ed!=_e9){var _ec=_e9.parentNode;_e9.style.visibility="hidden";_ea.parentNode.insertBefore(_e9,_ed);if(_ea.parentNode!=_ec){Sortable.options(_ec).onChange(_e9);}Sortable.options(_ea.parentNode).onChange(_e9);}}},onEmptyHover:function(_ee,_ef){if(_ee.parentNode!=_ef){var _f0=_ee.parentNode;_ef.appendChild(_ee);Sortable.options(_f0).onChange(_ee);Sortable.options(_ef).onChange(_ee);}},unmark:function(){if(Sortable._marker){Element.hide(Sortable._marker);}},mark:function(_f1,_f2){var _f3=Sortable.options(_f1.parentNode);if(_f3&&!_f3.ghosting){return;}if(!Sortable._marker){Sortable._marker=$("dropmarker")||document.createElement("DIV");Element.hide(Sortable._marker);Element.addClassName(Sortable._marker,"dropmarker");Sortable._marker.style.position="absolute";document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}var _f4=Position.cumulativeOffset(_f1);Sortable._marker.style.left=_f4[0]+"px";Sortable._marker.style.top=_f4[1]+"px";if(_f2=="after"){if(_f3.overlap=="horizontal"){Sortable._marker.style.left=(_f4[0]+_f1.clientWidth)+"px";}else{Sortable._marker.style.top=(_f4[1]+_f1.clientHeight)+"px";}}Element.show(Sortable._marker);},sequence:function(_f5){_f5=$(_f5);var _f6=Object.extend(this.options(_f5),arguments[1]||{});return $(this.findElements(_f5,_f6)||[]).map(function(_f7){return _f7.id.match(_f6.format)?_f7.id.match(_f6.format)[1]:"";});},setSequence:function(_f8,_f9){_f8=$(_f8);var _fa=Object.extend(this.options(_f8),arguments[2]||{});var _fb={};this.findElements(_f8,_fa).each(function(n){if(n.id.match(_fa.format)){_fb[n.id.match(_fa.format)[1]]=[n,n.parentNode];}n.parentNode.removeChild(n);});_f9.each(function(_fd){var n=_fb[_fd];if(n){n[1].appendChild(n[0]);delete _fb[_fd];}});},serialize:function(_ff){_ff=$(_ff);var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:_ff.id);return Sortable.sequence(_ff,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item);}).join("&");}};var Autocompleter={};Autocompleter.Base=function(){};Autocompleter.Base.prototype={baseInitialize:function(_102,_103,_104){this.element=$(_102);this.update=$(_103);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;if(this.setOptions){this.setOptions(_104);}else{this.options=_104||{};}this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(_105,_106){if(!_106.style.position||_106.style.position=="absolute"){_106.style.position="absolute";Position.clone(_105,_106,{setHeight:false,offsetTop:_105.offsetHeight});}Effect.Appear(_106,{duration:0.15});};this.options.onHide=this.options.onHide||function(_107,_108){new Effect.Fade(_108,{duration:0.15});};if(typeof (this.options.tokens)=="string"){this.options.tokens=new Array(this.options.tokens);}this.observer=null;this.element.setAttribute("autocomplete","off");Element.hide(this.update);Event.observe(this.element,"blur",this.onBlur.bindAsEventListener(this));Event.observe(this.element,"keypress",this.onKeyPress.bindAsEventListener(this));},show:function(){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update);}if(!this.iefix&&(navigator.appVersion.indexOf("MSIE")>0)&&(navigator.userAgent.indexOf("Opera")<0)&&(Element.getStyle(this.update,"position")=="absolute")){new Insertion.After(this.update,"<iframe id=\""+this.update.id+"_iefix\" "+"style=\"display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);\" "+"src=\"javascript:false;\" frameborder=\"0\" scrolling=\"no\"></iframe>");this.iefix=$(this.update.id+"_iefix");}if(this.iefix){setTimeout(this.fixIEOverlapping.bind(this),50);}},fixIEOverlapping:function(){Position.clone(this.update,this.iefix);this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix);},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,"display")!="none"){this.options.onHide(this.element,this.update);}if(this.iefix){Element.hide(this.iefix);}},startIndicator:function(){if(this.options.indicator){Element.show(this.options.indicator);}},stopIndicator:function(){if(this.options.indicator){Element.hide(this.options.indicator);}},onKeyPress:function(_109){if(this.active){switch(_109.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(_109);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(_109);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();if(navigator.appVersion.indexOf("AppleWebKit")>0){Event.stop(_109);}return;case Event.KEY_DOWN:this.markNext();this.render();if(navigator.appVersion.indexOf("AppleWebKit")>0){Event.stop(_109);}return;}}else{if(_109.keyCode==Event.KEY_TAB||_109.keyCode==Event.KEY_RETURN){return;}}this.changed=true;this.hasFocus=true;if(this.observer){clearTimeout(this.observer);}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000);},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices();},onHover:function(_10a){var _10b=Event.findElement(_10a,"LI");if(this.index!=_10b.autocompleteIndex){this.index=_10b.autocompleteIndex;this.render();}Event.stop(_10a);},onClick:function(_10c){var _10d=Event.findElement(_10c,"LI");this.index=_10d.autocompleteIndex;this.selectEntry();this.hide();},onBlur:function(_10e){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0){for(var i=0;i<this.entryCount;i++){this.index==i?Element.addClassName(this.getEntry(i),"selected"):Element.removeClassName(this.getEntry(i),"selected");}if(this.hasFocus){this.show();this.active=true;}}else{this.active=false;this.hide();}},markPrevious:function(){if(this.index>0){this.index--;}else{this.index=this.entryCount-1;}},markNext:function(){if(this.index<this.entryCount-1){this.index++;}else{this.index=0;}},getEntry:function(_110){return this.update.firstChild.childNodes[_110];},getCurrentEntry:function(){return this.getEntry(this.index);},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry());},updateElement:function(_111){if(this.options.updateElement){this.options.updateElement(_111);return;}var _112=document.getElementById(this.element1);_112.value=_111.id;var _113="";if(this.options.select){var _114=document.getElementsByClassName(this.options.select,_111)||[];if(_114.length>0){_113=Element.collectTextNodes(_114[0],this.options.select);}}else{_113=Element.collectTextNodesIgnoreClass(_111,"informal");}var _115=this.findLastToken();if(_115!=-1){var _116=this.element.value.substr(0,_115+1);var _117=this.element.value.substr(_115+1).match(/^\s+/);if(_117){_116+=_117[0];}this.element.value=_116+_113;}else{this.element.value=_113;}this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,_111);}},updateChoices:function(_118){if(!this.changed&&this.hasFocus){this.update.innerHTML=_118;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.firstChild);if(this.update.firstChild&&this.update.firstChild.childNodes){this.entryCount=this.update.firstChild.childNodes.length;for(var i=0;i<this.entryCount;i++){var _11a=this.getEntry(i);_11a.autocompleteIndex=i;this.addObservers(_11a);}}else{this.entryCount=0;}this.stopIndicator();this.index=0;this.render();}},addObservers:function(_11b){Event.observe(_11b,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(_11b,"click",this.onClick.bindAsEventListener(this));},onObserverEvent:function(){this.changed=false;if(this.getToken().length>=this.options.minChars){this.startIndicator();this.getUpdatedChoices();}else{this.active=false;this.hide();}},getToken:function(){var _11c=this.findLastToken();if(_11c!=-1){var ret=this.element.value.substr(_11c+1).replace(/^\s+/,"").replace(/\s+$/,"");}else{var ret=this.element.value;}return /\n/.test(ret)?"":ret;},findLastToken:function(){var _11e=-1;for(var i=0;i<this.options.tokens.length;i++){var _120=this.element.value.lastIndexOf(this.options.tokens[i]);if(_120>_11e){_11e=_120;}}return _11e;}};Ajax.Autocompleter=Class.create();Object.extend(Object.extend(Ajax.Autocompleter.prototype,Autocompleter.Base.prototype),{initialize:function(_121,_122,url,_124){this.baseInitialize(_121,_122,_124);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=url;},getUpdatedChoices:function(){entry=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams;}new Ajax.Request(this.url,this.options);},onComplete:function(_125){this.updateChoices(_125.responseText);}});Autocompleter.Local=Class.create();Autocompleter.Local.prototype=Object.extend(new Autocompleter.Base(),{initialize:function(_126,_127,_128,_129,_12a,_12b){this.baseInitialize(_126,_128,_12b);this.options.array=_129;this.options.idArray=_12a;this.element1=_127;},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this));},setOptions:function(_12c){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(_12d){var ret=[];var _12f=[];var _130=_12d.getToken();var _131=0;for(var i=0;i<_12d.options.array.length&&ret.length<_12d.options.choices;i++){var elem=_12d.options.array[i];var _134=_12d.options.idArray[i];var _135=_12d.options.ignoreCase?elem.toLowerCase().indexOf(_130.toLowerCase()):elem.indexOf(_130);while(_135!=-1){if(_135==0&&elem.length!=_130.length){ret.push("<li id="+_134+"><strong>"+elem.substr(0,_130.length)+"</strong>"+elem.substr(_130.length)+"</li>");break;}else{if(_130.length>=_12d.options.partialChars&&_12d.options.partialSearch&&_135!=-1){if(_12d.options.fullSearch||/\s/.test(elem.substr(_135-1,1))){_12f.push("<li id="+_134+">"+elem.substr(0,_135)+"<strong>"+elem.substr(_135,_130.length)+"</strong>"+elem.substr(_135+_130.length)+"</li>");break;}}}_135=_12d.options.ignoreCase?elem.toLowerCase().indexOf(_130.toLowerCase(),_135+1):elem.indexOf(_130,_135+1);}}if(_12f.length){ret=ret.concat(_12f.slice(0,_12d.options.choices-ret.length));}return "<ul>"+ret.join("")+"</ul>";}},_12c||{});}});Field.scrollFreeActivate=function(_136){setTimeout(function(){Field.activate(_136);},1);};Ajax.InPlaceEditor=Class.create();Ajax.InPlaceEditor.defaultHighlightColor="#FFFF99";Ajax.InPlaceEditor.prototype={initialize:function(_137,url,_139){this.url=url;this.element=$(_137);this.options=Object.extend({okButton:true,okText:"ok",cancelLink:true,cancelText:"cancel",savingText:"Saving...",clickToEditText:"Click to edit",okText:"ok",rows:1,onComplete:function(_13a,_13b){new Effect.Highlight(_13b,{startcolor:this.options.highlightcolor});},onFailure:function(_13c){alert("Error communicating with the server: "+_13c.responseText.stripTags());},callback:function(form){return Form.serialize(form);},handleLineBreaks:true,loadingText:"Loading...",savingClassName:"inplaceeditor-saving",loadingClassName:"inplaceeditor-loading",formClassName:"inplaceeditor-form",highlightcolor:Ajax.InPlaceEditor.defaultHighlightColor,highlightendcolor:"#FFFFFF",externalControl:null,submitOnBlur:false,ajaxOptions:{},evalScripts:false},_139||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+"-inplaceeditor";if($(this.options.formId)){this.options.formId=null;}}if(this.options.externalControl){this.options.externalControl=$(this.options.externalControl);}this.originalBackground=Element.getStyle(this.element,"background-color");if(!this.originalBackground){this.originalBackground="transparent";}this.element.title=this.options.clickToEditText;this.onclickListener=this.enterEditMode.bindAsEventListener(this);this.mouseoverListener=this.enterHover.bindAsEventListener(this);this.mouseoutListener=this.leaveHover.bindAsEventListener(this);Event.observe(this.element,"click",this.onclickListener);Event.observe(this.element,"mouseover",this.mouseoverListener);Event.observe(this.element,"mouseout",this.mouseoutListener);if(this.options.externalControl){Event.observe(this.options.externalControl,"click",this.onclickListener);Event.observe(this.options.externalControl,"mouseover",this.mouseoverListener);Event.observe(this.options.externalControl,"mouseout",this.mouseoutListener);}},enterEditMode:function(evt){if(this.saving){return;}if(this.editing){return;}this.editing=true;this.onEnterEditMode();if(this.options.externalControl){Element.hide(this.options.externalControl);}Element.hide(this.element);this.createForm();this.element.parentNode.insertBefore(this.form,this.element);Field.scrollFreeActivate(this.editField);if(evt){Event.stop(evt);}return false;},createForm:function(){this.form=document.createElement("form");this.form.id=this.options.formId;Element.addClassName(this.form,this.options.formClassName);this.form.onsubmit=this.onSubmit.bind(this);this.createEditField();if(this.options.textarea){var br=document.createElement("br");this.form.appendChild(br);}if(this.options.okButton){okButton=document.createElement("input");okButton.type="submit";okButton.value=this.options.okText;okButton.className="editor_ok_button";this.form.appendChild(okButton);}if(this.options.cancelLink){cancelLink=document.createElement("a");cancelLink.href="#";cancelLink.appendChild(document.createTextNode(this.options.cancelText));cancelLink.onclick=this.onclickCancel.bind(this);cancelLink.className="editor_cancel";this.form.appendChild(cancelLink);}},hasHTMLLineBreaks:function(_140){if(!this.options.handleLineBreaks){return false;}return _140.match(/<br/i)||_140.match(/<p>/i);},convertHTMLLineBreaks:function(_141){return _141.replace(/<br>/gi,"\n").replace(/<br\/>/gi,"\n").replace(/<\/p>/gi,"\n").replace(/<p>/gi,"");},createEditField:function(){var text;if(this.options.loadTextURL){text=this.options.loadingText;}else{text=this.getText();}var obj=this;if(this.options.rows==1&&!this.hasHTMLLineBreaks(text)){this.options.textarea=false;var _144=document.createElement("input");_144.obj=this;_144.type="text";_144.name="value";_144.value=text;_144.style.backgroundColor=this.options.highlightcolor;_144.className="editor_field";var size=this.options.size||this.options.cols||0;if(size!=0){_144.size=size;}if(this.options.submitOnBlur){_144.onblur=this.onSubmit.bind(this);}this.editField=_144;}else{this.options.textarea=true;var _146=document.createElement("textarea");_146.obj=this;_146.name="value";_146.value=this.convertHTMLLineBreaks(text);_146.rows=this.options.rows;_146.cols=this.options.cols||40;_146.className="editor_field";if(this.options.submitOnBlur){_146.onblur=this.onSubmit.bind(this);}this.editField=_146;}if(this.options.loadTextURL){this.loadExternalText();}this.form.appendChild(this.editField);},getText:function(){return this.element.innerHTML;},loadExternalText:function(){Element.addClassName(this.form,this.options.loadingClassName);this.editField.disabled=true;new Ajax.Request(this.options.loadTextURL,Object.extend({asynchronous:true,onComplete:this.onLoadedExternalText.bind(this)},this.options.ajaxOptions));},onLoadedExternalText:function(_147){Element.removeClassName(this.form,this.options.loadingClassName);this.editField.disabled=false;this.editField.value=_147.responseText.stripTags();},onclickCancel:function(){this.onComplete();this.leaveEditMode();return false;},onFailure:function(_148){this.options.onFailure(_148);if(this.oldInnerHTML){this.element.innerHTML=this.oldInnerHTML;this.oldInnerHTML=null;}return false;},onSubmit:function(){var form=this.form;var _14a=this.editField.value;this.onLoading();if(this.options.evalScripts){new Ajax.Request(this.url,Object.extend({parameters:this.options.callback(form,_14a),onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this),asynchronous:true,evalScripts:true},this.options.ajaxOptions));}else{new Ajax.Updater({success:this.element,failure:null},this.url,Object.extend({parameters:this.options.callback(form,_14a),onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this)},this.options.ajaxOptions));}if(arguments.length>1){Event.stop(arguments[0]);}return false;},onLoading:function(){this.saving=true;this.removeForm();this.leaveHover();this.showSaving();},showSaving:function(){this.oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;Element.addClassName(this.element,this.options.savingClassName);this.element.style.backgroundColor=this.originalBackground;Element.show(this.element);},removeForm:function(){if(this.form){if(this.form.parentNode){Element.remove(this.form);}this.form=null;}},enterHover:function(){if(this.saving){return;}this.element.style.backgroundColor=this.options.highlightcolor;if(this.effect){this.effect.cancel();}Element.addClassName(this.element,this.options.hoverClassName);},leaveHover:function(){if(this.options.backgroundColor){this.element.style.backgroundColor=this.oldBackground;}Element.removeClassName(this.element,this.options.hoverClassName);if(this.saving){return;}this.effect=new Effect.Highlight(this.element,{startcolor:this.options.highlightcolor,endcolor:this.options.highlightendcolor,restorecolor:this.originalBackground});},leaveEditMode:function(){Element.removeClassName(this.element,this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this.originalBackground;Element.show(this.element);if(this.options.externalControl){Element.show(this.options.externalControl);}this.editing=false;this.saving=false;this.oldInnerHTML=null;this.onLeaveEditMode();},onComplete:function(_14b){this.leaveEditMode();this.options.onComplete.bind(this)(_14b,this.element);},onEnterEditMode:function(){},onLeaveEditMode:function(){},dispose:function(){if(this.oldInnerHTML){this.element.innerHTML=this.oldInnerHTML;}this.leaveEditMode();Event.stopObserving(this.element,"click",this.onclickListener);Event.stopObserving(this.element,"mouseover",this.mouseoverListener);Event.stopObserving(this.element,"mouseout",this.mouseoutListener);if(this.options.externalControl){Event.stopObserving(this.options.externalControl,"click",this.onclickListener);Event.stopObserving(this.options.externalControl,"mouseover",this.mouseoverListener);Event.stopObserving(this.options.externalControl,"mouseout",this.mouseoutListener);}}};Ajax.InPlaceCollectionEditor=Class.create();Object.extend(Ajax.InPlaceCollectionEditor.prototype,Ajax.InPlaceEditor.prototype);Object.extend(Ajax.InPlaceCollectionEditor.prototype,{createEditField:function(){if(!this.cached_selectTag){var _14c=document.createElement("select");var _14d=this.options.collection||[];var _14e;_14d.each(function(e,i){_14e=document.createElement("option");_14e.value=(e instanceof Array)?e[0]:e;if(this.options.value==_14e.value){_14e.selected=true;}_14e.appendChild(document.createTextNode((e instanceof Array)?e[1]:e));_14c.appendChild(_14e);}.bind(this));this.cached_selectTag=_14c;}this.editField=this.cached_selectTag;if(this.options.loadTextURL){this.loadExternalText();}this.form.appendChild(this.editField);this.options.callback=function(form,_152){return "value="+encodeURIComponent(_152);};}});Form.Element.DelayedObserver=Class.create();Form.Element.DelayedObserver.prototype={initialize:function(_153,_154,_155){this.delay=_154||0.5;this.element=$(_153);this.callback=_155;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this));},delayedListener:function(_156){if(this.lastValue==$F(this.element)){return;}if(this.timer){clearTimeout(this.timer);}this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element);},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element));}};