if(typeof Effect=="undefined"){
throw ("controls.js requires including script.aculo.us' effects.js library");
}
var Autocompleter={};
Autocompleter.Base=Class.create({baseInitialize:function(_1,_2,_3){
_1=$(_1);
this.element=_1;
this.update=$(_2);
this.hasFocus=false;
this.changed=false;
this.active=false;
this.index=0;
this.entryCount=0;
this.oldElementValue=this.element.value;
if(this.setOptions){
this.setOptions(_3);
}else{
this.options=_3||{};
}
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(_4,_5){
if(!_5.style.position||_5.style.position=="absolute"){
_5.style.position="absolute";
Position.clone(_4,_5,{setHeight:false,offsetTop:_4.offsetHeight});
}
Effect.Appear(_5,{duration:0.15});
};
this.options.onHide=this.options.onHide||function(_6,_7){
new Effect.Fade(_7,{duration:0.15});
};
if(typeof (this.options.tokens)=="string"){
this.options.tokens=new Array(this.options.tokens);
}
if(!this.options.tokens.include("\n")){
this.options.tokens.push("\n");
}
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,"keydown",this.onKeyPress.bindAsEventListener(this));
},show:function(){
if(Element.getStyle(this.update,"display")=="none"){
this.options.onShow(this.element,this.update);
}
if(!this.iefix&&(Prototype.Browser.IE)&&(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,{setTop:(!this.update.style.height)});
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(_8){
if(this.active){
switch(_8.keyCode){
case Event.KEY_TAB:
case Event.KEY_RETURN:
this.selectEntry();
Event.stop(_8);
case Event.KEY_ESC:
this.hide();
this.active=false;
Event.stop(_8);
return;
case Event.KEY_LEFT:
case Event.KEY_RIGHT:
return;
case Event.KEY_UP:
this.markPrevious();
this.render();
Event.stop(_8);
return;
case Event.KEY_DOWN:
this.markNext();
this.render();
Event.stop(_8);
return;
}
}else{
if(_8.keyCode==Event.KEY_TAB||_8.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&_8.keyCode==0)){
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(_9){
var _a=Event.findElement(_9,"LI");
if(this.index!=_a.autocompleteIndex){
this.index=_a.autocompleteIndex;
this.render();
}
Event.stop(_9);
},onClick:function(_b){
var _c=Event.findElement(_b,"LI");
this.index=_c.autocompleteIndex;
this.selectEntry();
this.hide();
},onBlur:function(_d){
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;
}
this.getEntry(this.index).scrollIntoView(true);
},markNext:function(){
if(this.index<this.entryCount-1){
this.index++;
}else{
this.index=0;
}
this.getEntry(this.index).scrollIntoView(false);
},getEntry:function(_f){
return this.update.firstChild.childNodes[_f];
},getCurrentEntry:function(){
return this.getEntry(this.index);
},selectEntry:function(){
this.active=false;
this.updateElement(this.getCurrentEntry());
},updateElement:function(_10){
if(this.options.updateElement){
this.options.updateElement(_10);
return;
}
var _11="";
if(this.options.select){
var _12=$(_10).select("."+this.options.select)||[];
if(_12.length>0){
_11=Element.collectTextNodes(_12[0],this.options.select);
}
}else{
_11=Element.collectTextNodesIgnoreClass(_10,"informal");
}
var _13=this.getTokenBounds();
if(_13[0]!=-1){
var _14=this.element.value.substr(0,_13[0]);
var _15=this.element.value.substr(_13[0]).match(/^\s+/);
if(_15){
_14+=_15[0];
}
this.element.value=_14+_11+this.element.value.substr(_13[1]);
}else{
this.element.value=_11;
}
this.oldElementValue=this.element.value;
this.element.focus();
if(this.options.afterUpdateElement){
this.options.afterUpdateElement(this.element,_10);
}
},updateChoices:function(_16){
if(!this.changed&&this.hasFocus){
this.update.innerHTML=_16;
Element.cleanWhitespace(this.update);
Element.cleanWhitespace(this.update.down());
if(this.update.firstChild&&this.update.down().childNodes){
this.entryCount=this.update.down().childNodes.length;
for(var i=0;i<this.entryCount;i++){
var _18=this.getEntry(i);
_18.autocompleteIndex=i;
this.addObservers(_18);
}
}else{
this.entryCount=0;
}
this.stopIndicator();
this.index=0;
if(this.entryCount==1&&this.options.autoSelect){
this.selectEntry();
this.hide();
}else{
this.render();
}
}
},addObservers:function(_19){
Event.observe(_19,"mouseover",this.onHover.bindAsEventListener(this));
Event.observe(_19,"click",this.onClick.bindAsEventListener(this));
},onObserverEvent:function(){
this.changed=false;
this.tokenBounds=null;
if(this.getToken().length>=this.options.minChars){
this.getUpdatedChoices();
}else{
this.active=false;
this.hide();
}
this.oldElementValue=this.element.value;
},getToken:function(){
var _1a=this.getTokenBounds();
return this.element.value.substring(_1a[0],_1a[1]).strip();
},getTokenBounds:function(){
if(null!=this.tokenBounds){
return this.tokenBounds;
}
var _1b=this.element.value;
if(_1b.strip().empty()){
return [-1,0];
}
var _1c=arguments.callee.getFirstDifferencePos(_1b,this.oldElementValue);
var _1d=(_1c==this.oldElementValue.length?1:0);
var _1e=-1,_1f=_1b.length;
var tp;
for(var _21=0,l=this.options.tokens.length;_21<l;++_21){
tp=_1b.lastIndexOf(this.options.tokens[_21],_1c+_1d-1);
if(tp>_1e){
_1e=tp;
}
tp=_1b.indexOf(this.options.tokens[_21],_1c+_1d);
if(-1!=tp&&tp<_1f){
_1f=tp;
}
}
return (this.tokenBounds=[_1e+1,_1f]);
}});
Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(_23,_24){
var _25=Math.min(_23.length,_24.length);
for(var _26=0;_26<_25;++_26){
if(_23[_26]!=_24[_26]){
return _26;
}
}
return _25;
};
Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(_27,_28,url,_2a){
this.baseInitialize(_27,_28,_2a);
this.options.asynchronous=true;
this.options.onComplete=this.onComplete.bind(this);
this.options.defaultParams=this.options.parameters||null;
this.url=url;
},getUpdatedChoices:function(){
this.startIndicator();
var _2b=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());
this.options.parameters=this.options.callback?this.options.callback(this.element,_2b):_2b;
if(this.options.defaultParams){
this.options.parameters+="&"+this.options.defaultParams;
}
new Ajax.Request(this.url,this.options);
},onComplete:function(_2c){
this.updateChoices(_2c.responseText);
}});
Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(_2d,_2e,_2f,_30){
this.baseInitialize(_2d,_2e,_30);
this.options.array=_2f;
},getUpdatedChoices:function(){
this.updateChoices(this.options.selector(this));
},setOptions:function(_31){
this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(_32){
var ret=[];
var _34=[];
var _35=_32.getToken();
var _36=0;
for(var i=0;i<_32.options.array.length&&ret.length<_32.options.choices;i++){
var _38=_32.options.array[i];
var _39=_32.options.ignoreCase?_38.toLowerCase().indexOf(_35.toLowerCase()):_38.indexOf(_35);
while(_39!=-1){
if(_39==0&&_38.length!=_35.length){
ret.push("<li><strong>"+_38.substr(0,_35.length)+"</strong>"+_38.substr(_35.length)+"</li>");
break;
}else{
if(_35.length>=_32.options.partialChars&&_32.options.partialSearch&&_39!=-1){
if(_32.options.fullSearch||/\s/.test(_38.substr(_39-1,1))){
_34.push("<li>"+_38.substr(0,_39)+"<strong>"+_38.substr(_39,_35.length)+"</strong>"+_38.substr(_39+_35.length)+"</li>");
break;
}
}
}
_39=_32.options.ignoreCase?_38.toLowerCase().indexOf(_35.toLowerCase(),_39+1):_38.indexOf(_35,_39+1);
}
}
if(_34.length){
ret=ret.concat(_34.slice(0,_32.options.choices-ret.length));
}
return "<ul>"+ret.join("")+"</ul>";
}},_31||{});
}});
Field.scrollFreeActivate=function(_3a){
setTimeout(function(){
Field.activate(_3a);
},1);
};
Ajax.InPlaceEditor=Class.create({initialize:function(_3b,url,_3d){
this.url=url;
this.element=_3b=$(_3b);
this.prepareOptions();
this._controls={};
arguments.callee.dealWithDeprecatedOptions(_3d);
Object.extend(this.options,_3d||{});
if(!this.options.formId&&this.element.id){
this.options.formId=this.element.id+"-inplaceeditor";
if($(this.options.formId)){
this.options.formId="";
}
}
if(this.options.externalControl){
this.options.externalControl=$(this.options.externalControl);
}
if(!this.options.externalControl){
this.options.externalControlOnly=false;
}
this._originalBackground=this.element.getStyle("background-color")||"transparent";
this.element.title=this.options.clickToEditText;
this._boundCancelHandler=this.handleFormCancellation.bind(this);
this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);
this._boundFailureHandler=this.handleAJAXFailure.bind(this);
this._boundSubmitHandler=this.handleFormSubmission.bind(this);
this._boundWrapperHandler=this.wrapUp.bind(this);
this.registerListeners();
},checkForEscapeOrReturn:function(e){
if(!this._editing||e.ctrlKey||e.altKey||e.shiftKey){
return;
}
if(Event.KEY_ESC==e.keyCode){
this.handleFormCancellation(e);
}else{
if(Event.KEY_RETURN==e.keyCode){
this.handleFormSubmission(e);
}
}
},createControl:function(_3f,_40,_41){
var _42=this.options[_3f+"Control"];
var _43=this.options[_3f+"Text"];
if("button"==_42){
var btn=document.createElement("input");
btn.type="submit";
btn.value=_43;
btn.className="editor_"+_3f+"_button";
if("cancel"==_3f){
btn.onclick=this._boundCancelHandler;
}
this._form.appendChild(btn);
this._controls[_3f]=btn;
}else{
if("link"==_42){
var _45=document.createElement("a");
_45.href="#";
_45.appendChild(document.createTextNode(_43));
_45.onclick="cancel"==_3f?this._boundCancelHandler:this._boundSubmitHandler;
_45.className="editor_"+_3f+"_link";
if(_41){
_45.className+=" "+_41;
}
this._form.appendChild(_45);
this._controls[_3f]=_45;
}
}
},createEditField:function(){
var _46=(this.options.loadTextURL?this.options.loadingText:this.getText());
var fld;
if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){
fld=document.createElement("input");
fld.type="text";
var _48=this.options.size||this.options.cols||0;
if(0<_48){
fld.size=_48;
}
}else{
fld=document.createElement("textarea");
fld.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);
fld.cols=this.options.cols||40;
}
fld.name=this.options.paramName;
fld.value=_46;
fld.className="editor_field";
if(this.options.submitOnBlur){
fld.onblur=this._boundSubmitHandler;
}
this._controls.editor=fld;
if(this.options.loadTextURL){
this.loadExternalText();
}
this._form.appendChild(this._controls.editor);
},createForm:function(){
var ipe=this;
function addText(_4a,_4b){
var _4c=ipe.options["text"+_4a+"Controls"];
if(!_4c||_4b===false){
return;
}
ipe._form.appendChild(document.createTextNode(_4c));
};
this._form=$(document.createElement("form"));
this._form.id=this.options.formId;
this._form.addClassName(this.options.formClassName);
this._form.onsubmit=this._boundSubmitHandler;
this.createEditField();
if("textarea"==this._controls.editor.tagName.toLowerCase()){
this._form.appendChild(document.createElement("br"));
}
if(this.options.onFormCustomization){
this.options.onFormCustomization(this,this._form);
}
addText("Before",this.options.okControl||this.options.cancelControl);
this.createControl("ok",this._boundSubmitHandler);
addText("Between",this.options.okControl&&this.options.cancelControl);
this.createControl("cancel",this._boundCancelHandler,"editor_cancel");
addText("After",this.options.okControl||this.options.cancelControl);
},destroy:function(){
if(this._oldInnerHTML){
this.element.innerHTML=this._oldInnerHTML;
}
this.leaveEditMode();
this.unregisterListeners();
},enterEditMode:function(e){
if(this._saving||this._editing){
return;
}
this._editing=true;
this.triggerCallback("onEnterEditMode");
if(this.options.externalControl){
this.options.externalControl.hide();
}
this.element.hide();
this.createForm();
this.element.parentNode.insertBefore(this._form,this.element);
if(!this.options.loadTextURL){
this.postProcessEditField();
}
if(e){
Event.stop(e);
}
},enterHover:function(e){
if(this.options.hoverClassName){
this.element.addClassName(this.options.hoverClassName);
}
if(this._saving){
return;
}
this.triggerCallback("onEnterHover");
},getText:function(){
return this.element.innerHTML;
},handleAJAXFailure:function(_4f){
this.triggerCallback("onFailure",_4f);
if(this._oldInnerHTML){
this.element.innerHTML=this._oldInnerHTML;
this._oldInnerHTML=null;
}
},handleFormCancellation:function(e){
this.wrapUp();
if(e){
Event.stop(e);
}
},handleFormSubmission:function(e){
var _52=this._form;
var _53=$F(this._controls.editor);
this.prepareSubmission();
var _54=this.options.callback(_52,_53)||"";
if(Object.isString(_54)){
_54=_54.toQueryParams();
}
_54.editorId=this.element.id;
if(this.options.htmlResponse){
var _55=Object.extend({evalScripts:true},this.options.ajaxOptions);
Object.extend(_55,{parameters:_54,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});
new Ajax.Updater({success:this.element},this.url,_55);
}else{
var _55=Object.extend({method:"get"},this.options.ajaxOptions);
Object.extend(_55,{parameters:_54,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});
new Ajax.Request(this.url,_55);
}
if(e){
Event.stop(e);
}
},leaveEditMode:function(){
this.element.removeClassName(this.options.savingClassName);
this.removeForm();
this.leaveHover();
this.element.style.backgroundColor=this._originalBackground;
this.element.show();
if(this.options.externalControl){
this.options.externalControl.show();
}
this._saving=false;
this._editing=false;
this._oldInnerHTML=null;
this.triggerCallback("onLeaveEditMode");
},leaveHover:function(e){
if(this.options.hoverClassName){
this.element.removeClassName(this.options.hoverClassName);
}
if(this._saving){
return;
}
this.triggerCallback("onLeaveHover");
},loadExternalText:function(){
this._form.addClassName(this.options.loadingClassName);
this._controls.editor.disabled=true;
var _57=Object.extend({method:"get"},this.options.ajaxOptions);
Object.extend(_57,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(_58){
this._form.removeClassName(this.options.loadingClassName);
var _59=_58.responseText;
if(this.options.stripLoadedTextTags){
_59=_59.stripTags();
}
this._controls.editor.value=_59;
this._controls.editor.disabled=false;
this.postProcessEditField();
}.bind(this),onFailure:this._boundFailureHandler});
new Ajax.Request(this.options.loadTextURL,_57);
},postProcessEditField:function(){
var fpc=this.options.fieldPostCreation;
if(fpc){
$(this._controls.editor)["focus"==fpc?"focus":"activate"]();
}
},prepareOptions:function(){
this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);
Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);
[this._extraDefaultOptions].flatten().compact().each(function(_5b){
Object.extend(this.options,_5b);
}.bind(this));
},prepareSubmission:function(){
this._saving=true;
this.removeForm();
this.leaveHover();
this.showSaving();
},registerListeners:function(){
this._listeners={};
var _5c;
$H(Ajax.InPlaceEditor.Listeners).each(function(_5d){
_5c=this[_5d.value].bind(this);
this._listeners[_5d.key]=_5c;
if(!this.options.externalControlOnly){
this.element.observe(_5d.key,_5c);
}
if(this.options.externalControl){
this.options.externalControl.observe(_5d.key,_5c);
}
}.bind(this));
},removeForm:function(){
if(!this._form){
return;
}
this._form.remove();
this._form=null;
this._controls={};
},showSaving:function(){
this._oldInnerHTML=this.element.innerHTML;
this.element.innerHTML=this.options.savingText;
this.element.addClassName(this.options.savingClassName);
this.element.style.backgroundColor=this._originalBackground;
this.element.show();
},triggerCallback:function(_5e,arg){
if("function"==typeof this.options[_5e]){
this.options[_5e](this,arg);
}
},unregisterListeners:function(){
$H(this._listeners).each(function(_60){
if(!this.options.externalControlOnly){
this.element.stopObserving(_60.key,_60.value);
}
if(this.options.externalControl){
this.options.externalControl.stopObserving(_60.key,_60.value);
}
}.bind(this));
},wrapUp:function(_61){
this.leaveEditMode();
this._boundComplete(_61,this.element);
}});
Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});
Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function(_62,_63,url,_65){
this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;
_62(_63,url,_65);
},createEditField:function(){
var _66=document.createElement("select");
_66.name=this.options.paramName;
_66.size=1;
this._controls.editor=_66;
this._collection=this.options.collection||[];
if(this.options.loadCollectionURL){
this.loadCollection();
}else{
this.checkForExternalText();
}
this._form.appendChild(this._controls.editor);
},loadCollection:function(){
this._form.addClassName(this.options.loadingClassName);
this.showLoadingText(this.options.loadingCollectionText);
var _67=Object.extend({method:"get"},this.options.ajaxOptions);
Object.extend(_67,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(_68){
var js=_68.responseText.strip();
if(!/^\[.*\]$/.test(js)){
throw "Server returned an invalid collection representation.";
}
this._collection=eval(js);
this.checkForExternalText();
}.bind(this),onFailure:this.onFailure});
new Ajax.Request(this.options.loadCollectionURL,_67);
},showLoadingText:function(_6a){
this._controls.editor.disabled=true;
var _6b=this._controls.editor.firstChild;
if(!_6b){
_6b=document.createElement("option");
_6b.value="";
this._controls.editor.appendChild(_6b);
_6b.selected=true;
}
_6b.update((_6a||"").stripScripts().stripTags());
},checkForExternalText:function(){
this._text=this.getText();
if(this.options.loadTextURL){
this.loadExternalText();
}else{
this.buildOptionList();
}
},loadExternalText:function(){
this.showLoadingText(this.options.loadingText);
var _6c=Object.extend({method:"get"},this.options.ajaxOptions);
Object.extend(_6c,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(_6d){
this._text=_6d.responseText.strip();
this.buildOptionList();
}.bind(this),onFailure:this.onFailure});
new Ajax.Request(this.options.loadTextURL,_6c);
},buildOptionList:function(){
this._form.removeClassName(this.options.loadingClassName);
this._collection=this._collection.map(function(_6e){
return 2===_6e.length?_6e:[_6e,_6e].flatten();
});
var _6f=("value" in this.options)?this.options.value:this._text;
var _70=this._collection.any(function(_71){
return _71[0]==_6f;
}.bind(this));
this._controls.editor.update("");
var _72;
this._collection.each(function(_73,_74){
_72=document.createElement("option");
_72.value=_73[0];
_72.selected=_70?_73[0]==_6f:0==_74;
_72.appendChild(document.createTextNode(_73[1]));
this._controls.editor.appendChild(_72);
}.bind(this));
this._controls.editor.disabled=false;
Field.scrollFreeActivate(this._controls.editor);
}});
Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(_75){
if(!_75){
return;
}
function fallback(_76,_77){
if(_76 in _75||_77===undefined){
return;
}
_75[_76]=_77;
};
fallback("cancelControl",(_75.cancelLink?"link":(_75.cancelButton?"button":_75.cancelLink==_75.cancelButton==false?false:undefined)));
fallback("okControl",(_75.okLink?"link":(_75.okButton?"button":_75.okLink==_75.okButton==false?false:undefined)));
fallback("highlightColor",_75.highlightcolor);
fallback("highlightEndColor",_75.highlightendcolor);
};
Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:"link",cancelText:"cancel",clickToEditText:"Click to edit",externalControl:null,externalControlOnly:false,fieldPostCreation:"activate",formClassName:"inplaceeditor-form",formId:null,highlightColor:"#ffff99",highlightEndColor:"#ffffff",hoverClassName:"",htmlResponse:true,loadingClassName:"inplaceeditor-loading",loadingText:"Loading...",okControl:"button",okText:"ok",paramName:"value",rows:1,savingClassName:"inplaceeditor-saving",savingText:"Saving...",size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:"",textBeforeControls:"",textBetweenControls:""},DefaultCallbacks:{callback:function(_78){
return Form.serialize(_78);
},onComplete:function(_79,_7a){
new Effect.Highlight(_7a,{startcolor:this.options.highlightColor,keepBackgroundImage:true});
},onEnterEditMode:null,onEnterHover:function(ipe){
ipe.element.style.backgroundColor=ipe.options.highlightColor;
if(ipe._effect){
ipe._effect.cancel();
}
},onFailure:function(_7c,ipe){
alert("Error communication with the server: "+_7c.responseText.stripTags());
},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(ipe){
ipe._effect=new Effect.Highlight(ipe.element,{startcolor:ipe.options.highlightColor,endcolor:ipe.options.highlightEndColor,restorecolor:ipe._originalBackground,keepBackgroundImage:true});
}},Listeners:{click:"enterEditMode",keydown:"checkForEscapeOrReturn",mouseover:"enterHover",mouseout:"leaveHover"}});
Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:"Loading options..."};
Form.Element.DelayedObserver=Class.create({initialize:function(_7f,_80,_81){
this.delay=_80||0.5;
this.element=$(_7f);
this.callback=_81;
this.timer=null;
this.lastValue=$F(this.element);
Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this));
},delayedListener:function(_82){
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));
}});

