AjaxAutoCompleter=Class.create(Ajax.Autocompleter,{initialize:function($super,B,E,D,A,C){this.extractDisplayValue=C;A.updateElement=function(F){$(this.element).value=this.extractDisplayValue(F)}.bind(this);$super(B,E,D,A)},markPrevious:function(){if(this.index>-1){this.index--}if(this.index==-1){$(this.element).value=this.originalValue}else{$(this.element).value=this.extractDisplayValue(this.getCurrentEntry())}},markNext:function(){if(this.index==-1){this.originalValue=$(this.element).value}if(this.index<this.entryCount-1){this.index++}$(this.element).value=this.extractDisplayValue(this.getCurrentEntry())},selectEntry:function(){if(this.index>=0){this.active=false;this.updateElement(this.getCurrentEntry())}},updateChoices:function(C){if(!this.changed&&this.hasFocus){this.update.innerHTML=C;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 A=0;A<this.entryCount;A++){var B=this.getEntry(A);B.autocompleteIndex=A;this.addObservers(B)}}else{this.entryCount=0}this.stopIndicator();this.index=-1;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide()}else{this.render()}}}});if(Prototype.Browser.IE){Autocompleter.Base.addMethods({show:function(A){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update)}}})}HtmlBuilder=Class.create();HtmlBuilder.prototype={initialize:function(){},createElement:function(D,B,A){var C=$(document.createElement(D));B.each(function(E){if(E.key=="style"){C.setStyle(E.value)}else{C[E.key]=E.value}});A.each(function(E){if(E){C.appendChild(E)}});return C},$text:function(A){return document.createTextNode(A)}};["div","span","p","table","tbody","tr","td","a","input","button","li","ol","ul","img","textarea","fieldset"].each(function(A){HtmlBuilder.prototype[A]=function(B){var C=$A(arguments);return this.createElement(A,$H(C.shift()),$A(C))}});var DateUtils={convertDateForDisplay:function(D){if(!D){return""}var B=D.split("-");var C=parseInt(B[0],10);var E=parseInt(B[1],10);var A=parseInt(B[2],10);if(E!==0&&A!==0){return DateUtils.convertMonthIndexToString(E)+" "+A+", "+C}else{if(E!==0){return DateUtils.convertMonthIndexToString(E)+" "+C}else{return C}}},convertMonthIndexToString:function(B){var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return A[B-1]},getDaysInMonth:function(B,A){if(B==1||B==3||B==5||B==7||B==8||B==10||B==12){return 31}else{if(B==4||B==6||B==9||B==11){return 30}else{if(B==2){if(DateUtils.isLeapYear(A)){return 29}else{return 28}}}}},isLeapYear:function(A){return(((A%4)===0)&&((A%100)!==0)||((A%400)===0))},getStartingDayOfMonth:function(B,A){return(new Date(A,B-1,1).getDay()+6)%7},validateYear:function(C){if(C.blank()){return false}var B=parseInt(C,10);if(isNaN(B)||B===0){return false}if(B<1000){if(C.length==2){var A=new Date().getFullYear();var E=A%100;var D=A-E;return B<=E+3?B+D:B+D-100}else{return 1000}}else{if(B>9999){return 9999}else{return B}}}};if(typeof (inline)=="undefined"){inline={}}inline.AtomicDelta=Class.create();inline.AtomicDelta.prototype={initialize:function(D,C,B,A){this.newStringValue=D;this.valid=typeof C!="undefined"?C:true;this.validationMessage=B?B:null;this.kind=A?A:"EDIT"},isEmpty:function(){return !this.newStringValue||this.newStringValue.blank()}};if(typeof (inline)=="undefined"){inline={}}inline.AtomicSelectDelta=Class.create();inline.AtomicSelectDelta.prototype={initialize:function(C,B,A){this.id=C;this.kind="SELECT";this.valid=typeof B!="undefined"?B:true;this.validationMessage=A?A:null},isEmpty:function(){return !this.id||(this.id.blank&&this.id.blank())}};if(typeof (inline)=="undefined"){inline={}}inline.EnumDelta=Class.create();inline.EnumDelta.prototype={initialize:function(D,C,B,A){this.newStringValue=D;this.valid=typeof C!="undefined"?C:true;this.validationMessage=B?B:null;this.kind=A?A:"SELECT"},isEmpty:function(){return !this.newStringValue||this.newStringValue.blank()}};if(typeof (inline)=="undefined"){inline={}}inline.AbstractContainer=inline.AbstractComponent.subclass({initialize:function(A){this.base(A);this.components=[];this.templates={}},addChildComponent:function(A){this.components.push(A);A.setParent(this)},removeChildComponent:function(A){this.components=this.components.without(A)},afterRemoveChildComponent:function(B,A){},addTemplate:function(A,B){this.templates[A]=B},getTemplate:function(A){return this.templates[A]},insertTemplateAtTop:function(A,B){return inline.ComponentFactory.insertTemplate(this,A,B,inline.EditManager.FIRST)},insertTemplateAtBottom:function(A,B){return inline.ComponentFactory.insertTemplate(this,A,B,inline.EditManager.LAST)}});if(typeof (inline)=="undefined"){inline={}}inline.AbstractDeltaComponent=inline.AbstractComponent.subclass({initialize:function(A,B){this.base(A);this.deltaName=B},getDeltaName:function(){return this.deltaName},getOutgoingDeltaName:function(){return this.getDeltaName()}});if(typeof (inline)=="undefined"){inline={}}inline.AbstractDeltaContainer=inline.AbstractContainer.subclass({initialize:function(B,A,C){this.base(B);this.entityId=A;this.deltaKind=A?"EDIT":"ADD";this.deltaName=C;this.grab(this.element,{error:true})},setDeleted:function(A){if(A){this.deltaKind="REMOVE"}else{this.deltaKind=this.entityId?"EDIT":"ADD"}},getDeltaName:function(){return this.deltaName},getOutgoingDeltaName:function(){return this.getDeltaName()},getDelta:function(){var D=null;if(this.deltaKind=="REMOVE"){D={id:this.entityId,kind:"REMOVE",isEmpty:function(){return false}}}else{var A=this.deltaKind=="ADD";D={};var B=true;var C=true;this.components.each(function(E){var F=E.getDelta(this.deltaKind);if(F){D[E.getOutgoingDeltaName()]=F;B=B&&this.validateDelta(F);C=C&&F.isEmpty()}}.bind(this));if(Object.keys(D).size()>0||A){D.id=this.entityId;D.kind=this.deltaKind;D.valid=B;D.isEmpty=function(){return C}}else{D=null}}return this.transformOutgoingDelta(D)},acceptDelta:function(A){A=this.transformIncomingDelta(A);A=A||{};this._displayErrorMessage(A?A.validationMessage:null);this.components.each(function(B){B.acceptDelta(A[B.getDeltaName()])})},_displayErrorMessage:function(A){if(!this.error){return }if(A){this.error.update(A.escapeHTML());this.error.show()}else{this.error.hide();this.error.update("")}},buildDeltaToRoot:function(C,A){var B={id:this.entityId,kind:this.deltaKind};B.valid=this.validateDelta(C);B[A.getOutgoingDeltaName()]=C;if(this.parent){return this.parent.buildDeltaToRoot(B,this)}else{return B}},transformOutgoingDelta:function(A){return A},transformIncomingDelta:function(A){return A},shouldIncludeSubDelta:function(A){return true},setStateToDisplay:function(){this.components.each(function(A){A.setStateToDisplay()})},setStateToEditing:function(){this.components.each(function(A){A.setStateToEditing()})},setStateToSubmitting:function(){this.components.each(function(A){A.setStateToSubmitting()})},validateDelta:function(B){if(B instanceof Array){var A=true;B.each(function(C){if(C.valid===false){A=false;throw $break}});return A}else{return B.valid!==false}}});if(typeof (inline)=="undefined"){inline={}}inline.AbstractModal=inline.AbstractContainer.subclass({initialize:function(B){this.base(B);var A={modalElementId:B.id,overlayCloseOnClick:false};if(!Utils.isBrowserIE6OrEarlier()){A.position="fixed"}this.modal=new Control.Modal(false,A);this.grab(this.element,{title:true,content:{prompt:true}})},open:function(A,D,C,E,B){this.successCallback=A;this.parentModal=E;this.returnToParentOnOk=B;if(this.title&&D){this.title.update(D.escapeHTML())}if(this.prompt&&C){this.prompt.update(C.escapeHTML())}this.beforeOpen();this.modal.open();this.afterOpen();ComponentUtils.focusFirstField(this.element)},ok:function(){},cancel:function(){},beforeOpen:function(){},afterOpen:function(){}});if(typeof (inline)=="undefined"){inline={}}inline.AddEntityPanel=inline.AbstractComponent.subclass({initialize:function(A,B){this.base(A);if(B=="release"){this.modalId="addReleaseModal";this.modalTitle="Add a new release";this.modalPrompt="What release are we missing?";this.processFunction=ColumboService.processRelease}else{if(B=="contributor"){this.modalId="addContributorModal";this.modalTitle="Add someone new";this.modalPrompt="Who are we missing?";this.processFunction=ColumboService.processContributor}else{if(B=="genre"){this.modalId="addGenreModal";this.modalTitle="Add a new genre";this.modalPrompt="What genre are we missing?";this.processFunction=ColumboService.processGenre}else{throw"Unsupported entity type "+B.escapeHTML()}}}this.element.observe("click",this._onAddButtonClick.bind(this))},_onAddButtonClick:function(){inline.Authentication.doAuthenticated("AddEntityPanel",function(){var A=inline.ComponentFactory.getComponentById(this.modalId);A.open(this.modalTitle,this.modalPrompt,this.processFunction,this._onSuccess.bind(this))}.bind(this),Utils.handleError)},_onSuccess:function(A){window.location=A.detailPageUrl}});if(typeof (inline)=="undefined"){inline={}}inline.AddEditionPanel=inline.AbstractComponent.subclass({initialize:function(A){this.base(A);this.modalId="addEditionModal";this.modalTitle="Add a new version";this.modalPrompt="Tell us what makes your version different, and we'll add it to SoundUnwound.";this.processFunction=ColumboService.processRelease;this.element.observe("click",this._onAddButtonClick.bind(this))},_onAddButtonClick:function(){inline.Authentication.doAuthenticated("AddEditionPanel",function(){var A=inline.ComponentFactory.getComponentById("addEditionModal");A.open(this.modalTitle,this.modalPrompt,this.processFunction,this._onSuccess.bind(this))}.bind(this),Utils.handleError)},_onSuccess:function(A){window.location=A.detailPageUrl}});if(typeof (inline)=="undefined"){inline={}}inline.AbstractEditField=inline.AbstractDeltaComponent.subclass({initialize:function(A,B,C){this.base(A,B);this.required=C;this.grab(this.element,{error:true})},acceptDelta:function(A){this._displayErrorMessage(A?A.validationMessage:null)},_displayErrorMessage:function(A){if(A){this.error.update(A.escapeHTML());this.error.show()}else{this.error.hide();this.error.update("")}},setStateToDisplay:function(){this._resetValue();this._displayErrorMessage(null)},setStateToEditing:function(){},setStateToSubmitting:function(){},_resetValue:function(){}});if(typeof (inline)=="undefined"){inline={}}inline.Field=inline.AbstractContainer.subclass({initialize:function(A,B){this.base(A);this.pendingEditId=B;this.grab(this.element,{display:true,edit:true});this.edit.hide();this.display.show()},getDelta:function(A){return this.components[0].getDelta(A)},getDeleteDelta:function(){return this.components[0].getDeleteDelta()},getUndeleteDelta:function(){return this.components[0].getUndeleteDelta()},getDeltaName:function(){return this.components[0].getDeltaName()},getOutgoingDeltaName:function(){return this.components[0].getOutgoingDeltaName()},getPendingEditId:function(){return this.pendingEditId},acceptDelta:function(A){this.components[0].acceptDelta(A)},setStateToDisplay:function(){this.edit.hide();this.display.show();this.components[0].setStateToDisplay()},setStateToEditing:function(){this.display.hide();this.edit.show();this.components[0].setStateToEditing()},setStateToSubmitting:function(){this.display.hide();this.edit.show();this.components[0].setStateToSubmitting()}});if(typeof (inline)=="undefined"){inline={}}inline.EntityEditField=inline.AbstractEditField.subclass({initialize:function(F,G,E,A,J,D,C,K,H,I,L,B){this.base(F,E,false);this.outgoingDeltaName=A;this.entityId=G;this.entityType=D;this.modalTitle=C;this.modalPrompt=K;this.types=H;this.createdEntityType=I;this.submitOnSelect=L;this.createEntityImmediately=B;this.required=J;this.delta=null;this.grab(this.element,{value:true,change:true});if(L){this.submitWrapper=this.element.up("div.editable")}this.textNode=this.value.firstChild;this.originalValue=this.textNode.nodeValue;this.searchPhrase=this.entityId?this.textNode.nodeValue:"";this.listener=this._onChange.bind(this);this.change.observe("click",this.listener);this.setStateToDisplay()},getOutgoingDeltaName:function(){return this.outgoingDeltaName?this.outgoingDeltaName:this.getDeltaName()},getDelta:function(C){var A=this.required&&C=="ADD";if(this.delta&&(!this.delta.id||this.delta.id!=this.entityId)){return this.delta}else{if(this.required&&C=="ADD"){var B=new inline.AtomicDelta("",false,"Please make a selection");B.kind="SELECT";delete B.newStringValue;return B}else{return null}}},getDeltaAndAdditionalInfo:function(){var A=this.textNode.nodeValue;return{delta:this.delta,additionalInfo:{entityName:this.textNode.nodeValue,searchPhrase:(A!=this.originalValue)?A:""}}},getSelectedEntityId:function(){if(this.delta){return this.delta.id}else{return null}},setDeltaAndAdditionalInfo:function(A){this.delta=A.delta;this.textNode.nodeValue=A.additionalInfo.entityName;this.searchPhrase=A.additionalInfo.searchPhrase},_onChange:function(){var C=inline.ComponentFactory.getComponentById(this.entityType+"Modal");if(this.types){C.setTypes(this.types)}if(this.createdEntityType){C.setCreatedEntityType(this.createdEntityType)}if(this.createEntityImmediately){C.setCreateEntityImmediately(this.createEntityImmediately)}C.setSearchPhrase(this.searchPhrase);var B=this.getAncestorProperty("modal");var A=B?true:false;C.open(this._onSelection.bind(this),this.modalTitle,this.modalPrompt,B,A)},_onSelection:function(B,A){this.delta=null;if(B){if(B.kind=="ADD"||(B.kind=="SELECT"&&B.id!=this.entityId)){this.delta=B;this.textNode.nodeValue=A.entityName;this.searchPhrase=A.entityName}this._displayErrorMessage()}if(this.submitOnSelect){this.submitWrapper.component.submit()}},_resetValue:function(){this.delta=null;this.textNode.nodeValue=this.originalValue}});if(typeof (inline)=="undefined"){inline={}}inline.ContributorEditField=inline.EntityEditField.subclass({initialize:function(G,H,F,B,K,E,D,L,I,J,A,M,C){this.base(G,H,F,B,K,E,D,L,I,J,M,C);this.variousArtistsContributorId=A;this.grab(this.element,{value:true,change:true,variousArtists:{variousArtistsCheckbox:true}});if(this.variousArtistsCheckbox){Event.observe(this.variousArtistsCheckbox,"click",this._handleVariousArtistsClick.bind(this));if(H==A){this.variousArtistsCheckbox.checked=true;this.setVariousArtistsState(true);this.oldDeltaAndAdditionalInfo=null}}},setVariousArtistsState:function(A){if(A){this.value.addClassName("disabled");this.oldDeltaAndAdditionalInfo=this.getDeltaAndAdditionalInfo();this.setDeltaAndAdditionalInfo({delta:{kind:"SELECT",id:this.variousArtistsContributorId,isEmpty:function(){return false}},additionalInfo:{entityName:"Various Artists",searchPhrase:""}});this.value.stopObserving("click",this.value.listener)}else{this.value.removeClassName("disabled");if(this.originalValue!="Various Artists"){if(this.oldDeltaAndAdditionalInfo){this.setDeltaAndAdditionalInfo(this.oldDeltaAndAdditionalInfo)}}else{this.delta=null;this.oldDeltaAndAdditionalInfo=null;this.textNode.nodeValue="click to choose"}this.value.observe("click",this.listener)}},_handleVariousArtistsClick:function(A){this.setVariousArtistsState(this.variousArtistsCheckbox.checked);this._displayErrorMessage()},_resetValue:function(){this.delta=null;this.oldDeltaAndAdditionalInfo=null;this.textNode.nodeValue=this.originalValue;if(this.variousArtistsCheckbox){var A=this.entityId&&(this.entityId==this.variousArtistsContributorId);this.variousArtistsCheckbox.checked=A;this.setVariousArtistsState(A)}}});if(typeof (inline)=="undefined"){inline={}}inline.SearchPickerModal=inline.AbstractModal.subclass({initialize:function(D,F,A,E,C,B){this.base(D);this.baseUrl=F;this.fragmentUrl=this.url(A);this.entityType=E;this.entityId=C;this.pageSize=B;this.grab(this.element,{content:{searchPhrase:true,searchButton:true,cancelButton:true,closeButton:true,spinner:true,searchResults:{resultList:true,paging:true},entityAddButton:true,errors:true}});this.entityNames=$$("#"+D.id+" .entityName");this.resultsNewEntity=$(D.id+"_resultsNewEntity");this.noResultsNewEntity=$(D.id+"_noResultsNewEntity");this.currentSearchResults=null;this.searchButton.observe("click",this._onSearchClick.bind(this));this.searchPhrase.observe("keypress",this._onSearchPhraseKeypress.bind(this));this.cancelButton.observe("click",this._onCancelClick.bind(this));this.closeButton.observe("click",this._onCancelClick.bind(this));this.entityAddButton.observe("click",this._onAddClick.bind(this))},ok:function(){if(!(this.returnToParentOnOk&&this.parentModal)){this.modal.close()}var B=this.getDelta();var A=this.getAdditionalInfo();if(B&&this.successCallback){this.successCallback(B,A)}this.acceptDelta(null);this.successCallback=null;if(this.returnToParentOnOk&&this.parentModal){this.parentModal.open()}},cancel:function(){if(!this.parentModal){this.modal.close()}this.acceptDelta(null);this.successCallback=null;if(this.parentModal){this.parentModal.open()}},setSearchPhrase:function(A){this.searchPhrase.value=A},setTypes:function(A){this.types=A},setCreatedEntityType:function(A){this.createdEntityType=A},setCreateEntityImmediately:function(A){this.createEntityImmediately=A},_onSearchClick:function(){this.doSearch(0)},_onSearchPhraseKeypress:function(A){if(A.keyCode==Event.KEY_RETURN){this.doSearch(0);Event.stop(A)}},_onCancelClick:function(){this.cancel()},doSearch:function(B){if(!this.inProgress){this.setInProgress(true);var A=this.searchPhrase.value;if(A.blank()){this.reset();this.showError("Please enter some text!");return }var C={searchPhrase:A,pageNumber:B+1,pageSize:this.pageSize};if(this.entityId){C.entityId=this.entityId}if(this.types){C.types=this.types}(new Ajax.Request(this.fragmentUrl,{method:"get",parameters:C,onSuccess:this.handleSearchResults.bind(this),onFailure:this.handleError.bind(this),onException:this.handleError.bind(this),requestTimeout:AjaxUtils.globalTimeout}))}},setInProgress:function(A){this.inProgress=A;this.setInProgressDisplay(A)},setInProgressDisplay:function(A){if(A){this.searchButton.disabled=true;this.spinner.show()}else{this.searchButton.disabled=false;this.spinner.hide()}},reset:function(){this.setSearchPhrase("");this.setTypes(null);this.setCreatedEntityType(null);this.setSelection(null);this.setInProgress(false);this.creationDelta=null;this.creationAdditionalInfo=null;this.hideError();this.resetDisplay()},resetDisplay:function(){this.searchResults.hide();this.entityAddButton.hide();this.resultsNewEntity.hide();this.noResultsNewEntity.hide();this.clearAndHide(this.resultList);this.clearAndHide(this.paging)},showError:function(A){this.errors.update(A.escapeHTML());this.errors.show();this.resetDisplay()},hideError:function(){this.clearAndHide(this.errors)},clearAndHide:function(A){A.update("");A.hide()},handleError:function(A){this.setInProgress(false);this.showError("Sorry, we seem to be experiencing a problem. Please try again later!");return true},handleSearchResults:function(searchResults){this.currentSearchResults=searchResults;this.setSelection(null);this.setInProgress(false);this.hideError();this.clearAndHide(this.resultList);this.clearAndHide(this.paging);eval(searchResults.responseText);var ajaxResults=displayAjaxResultList(this);var escapedTitleCaseSearchPhrase=Utils.toTitleCase(Utils.escape(this.searchPhrase.value));this.entityNames.each(function(entityName){entityName.update(escapedTitleCaseSearchPhrase)}.bind(this));this.searchResults.show();if(ajaxResults.totalNumberOfResults>0){this.resultList.show();this.displayPagingIfNecessary(ajaxResults);this.noResultsNewEntity.hide();this.resultsNewEntity.show()}else{this.searchResults.hide();this.resultsNewEntity.hide();this.noResultsNewEntity.show()}this.entityAddButton.show();this.modal.position()},displayNoResults:function(B){var A=$(document.createElement("LI"));A.addClassName("noResults");A.update("No matching results for <em>"+B.searchPhrase.escapeHTML()+"</em>");this.resultList.appendChild(A);this.resultList.show()},displayPagingIfNecessary:function(B){var I=Math.floor(B.totalNumberOfResults/B.pageSize);var A=B.totalNumberOfResults%B.pageSize;if(A===0){I=Math.max(0,I-1)}if(I>0){var J=B.pageNumber;var C=Math.max(0,J-1);var K=Math.min(I,J+1);var E=Math.max(0,Math.min(J-4,I-8));var F=Math.min(I,Math.max(J+4,8));var D=this.createIconPageItem("Previous",C,J,"pagingPreviousEnabled","pagingPreviousDisabled");var H=this.createIconPageItem("Next",K,J,"pagingNextEnabled","pagingNextDisabled");this.paging.appendChild(D);var G=new HtmlBuilder();this.paging.appendChild(G.span({},G.$text("|")));this.paging.appendChild(G.span({className:"selected"},G.$text("Page:")));$R(E,F).each(function(L){this.paging.appendChild(this.createNumericPageItem(L,J))}.bind(this));this.paging.appendChild(G.span({},G.$text("|")));this.paging.appendChild(H);this.paging.show()}},onResultClick:function(B){var C=$(Event.element(B));if(C.className!="pick"){C=C.up(".pick")}var A=this.resultList.down("li.selected");if(A){A.removeClassName("selected")}C.up().addClassName("selected");this.setSelection(C.result);this.ok()},setSelection:function(A){this.selected=A},onPageClick:function(A){A.stop();var B=Event.element(A);this.doSearch(B.pageNumber)},createNumericPageItem:function(B,D){var C=new HtmlBuilder();if(B!=D){var A=C.a({href:"#",pageNumber:B},C.$text(B+1));A.observe("click",this.onPageClick.bind(this));return A}else{return C.span({className:"selected"},C.$text(B+1))}},createIconPageItem:function(C,B,E,A,G){var D=new HtmlBuilder();var F;if(B!=E){F=D.a({href:"#",pageNumber:B,className:A},D.$text(C));F.observe("click",this.onPageClick.bind(this))}else{F=D.a({className:"disabled"},D.$text(C))}return F},getDelta:function(){if(this.creationDelta){return this.creationDelta}else{if(this.selected){return{kind:"SELECT",id:parseInt(this.selected.id,10),isEmpty:function(){return false}}}else{return null}}},acceptDelta:function(A){if(!A){this.reset()}else{if(A.valid){this.hideError()}else{this.showError(A.validationMessage)}}},getAdditionalInfo:function(){if(this.creationAdditionalInfo){return this.creationAdditionalInfo}else{if(this.selected){return{entityName:this.selected.name}}else{return null}}},url:function(A){return this.baseUrl+"/"+A},_onAddClick:function(){var D;var B;var C;var A;switch(this.entityType){case"contributor":D="Add someone new";B="Who are we missing?";C=this.createEntityImmediately?ColumboService.processContributor:ColumboService.validateContributor;A="addContributorModal";break;case"release":D="Add a new release";B="What release are we missing?";C=this.createEntityImmediately?ColumboService.processRelease:ColumboService.validateRelease;A="addReleaseModal";break;case"genre":D="Add a new genre";B="What genre are we missing?";C=this.createEntityImmediately?ColumboService.processGenre:ColumboService.validateGenre;A="addGenreModal";break;default:this.showError("Whoops! We can't add a new "+this.entityType);return }modal=inline.ComponentFactory.getComponentById(A);modal.openAndUpdate(Utils.toTitleCase(this.searchPhrase.value),this.createdEntityType,D,B,C,this.handleEntityAddResult.bind(this,this.createEntityImmediately),null,this.modal,this.parentModal)},handleEntityAddResult:function(B,A){if(B){this.creationDelta={kind:"SELECT",id:A.delta.id}}else{this.creationDelta=A.delta}this.creationAdditionalInfo={entityName:A.delta.nameDelta.newStringValue};this.creationDelta.isEmpty=function(){return false};this.ok()}});if(typeof (inline)=="undefined"){inline={}}inline.DeleteModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{comment:true,commands:{okButton:true,closeButton:true,cancelButton:true,spinner:true},errors:true,textStatus:true}});FormUtils.checkLength(this.comment,this.textStatus,1024);this.cancelButton.observe("click",this._onCancelClick.bind(this));this.closeButton.observe("click",this._onCancelClick.bind(this));this.okButton.observe("click",this._onOkClick.bind(this))},open:function(C,B,A,E,D){this.getDeltaCallback=C;this.submitCallback=B;this.successCallback=A;this.pendingParentEditId=D;this.title.update("Are you sure?");this.prompt.update(E);this.comment.value="";FormUtils.resetLength(this.comment);this._setStateToDisplay();this.modal.open()},_setStateToDisplay:function(){this.okButton.disabled=false;this.cancelButton.disabled=false;this.spinner.hide()},_setStateToSubmitting:function(){this.okButton.disabled=true;this.cancelButton.disabled=true;this.spinner.show()},_onCancelClick:function(){this.cancel()},_onOkClick:function(){this.ok()},ok:function(){var B=this.comment.value;if(!B){this.acceptError("Please provide an explanation");return }else{if(B.length>this.maxLength){this.acceptError("Please enter a maximum of "+this.maxLength+" characters.");return }}this._setStateToSubmitting();var A=this.getDeltaCallback();this.submitCallback(A,B,this.pendingParentEditId,{timeout:AjaxUtils.globalTimeout,callback:this._handleProcessResult.bind(this),warningHandler:this.handleException.bind(this),errorHandler:this.handleException.bind(this)})},cancel:function(){this.close()},close:function(){this._displayError(null);this.modal.close();this.submitCallback=null;this.successCallback=null},acceptSuccess:function(A){this._setStateToDisplay();this.successCallback(A);this.close()},acceptError:function(A){this._setStateToDisplay();this._displayError(A)},_handleProcessResult:function(A){if(A.delta.valid){this.acceptSuccess(A)}else{this.acceptError("Whoops! Something bad happened. Please try again later.")}},_displayError:function(A){if(A){this.errors.update(A.escapeHTML());this.errors.show()}else{this.errors.hide();this.errors.update("")}}});if(typeof (inline)=="undefined"){inline={}}inline.MergeModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{edit:{field:true},comment:true,commands:{okButton:true,closeButton:true,cancelButton:true,spinner:true},errors:true,textStatus:true}});FormUtils.checkLength(this.comment,this.textStatus,1024);this.cancelButton.observe("click",this._onCancelClick.bind(this));this.closeButton.observe("click",this._onCancelClick.bind(this));this.okButton.observe("click",this._onOkClick.bind(this))},open:function(C,B,A,E,D){this.getDeltaCallback=C;this.submitCallback=B;this.successCallback=A;this.pendingParentEditId=D;this.title.update("Merge");this.prompt.update(E);this.comment.value="";FormUtils.resetLength(this.comment);this._setStateToDisplay();this.modal.open()},_setStateToDisplay:function(){this.okButton.disabled=false;this.cancelButton.disabled=false;this.spinner.hide()},_setStateToSubmitting:function(){this.okButton.disabled=true;this.cancelButton.disabled=true;this.spinner.show()},_onCancelClick:function(){this.cancel()},_onOkClick:function(){this.ok()},ok:function(){var A=this.field.component.getSelectedEntityId();if(!A){this.acceptError("Please select an entry to merge with");return }var C=this.comment.value;if(C.length>this.maxLength){this.acceptError("Please enter a maximum of "+this.maxLength+" characters.");return }this._setStateToSubmitting();var B=this.getDeltaCallback();B.id=A;this.submitCallback(B,C,this.pendingParentEditId,{timeout:AjaxUtils.globalTimeout,callback:this._handleProcessResult.bind(this),warningHandler:this.handleException.bind(this),errorHandler:this.handleException.bind(this)})},cancel:function(){this.close()},close:function(){this._displayError(null);this.modal.close();this.submitCallback=null;this.successCallback=null;this.field.component.setStateToDisplay()},acceptSuccess:function(A){this._setStateToDisplay();this.successCallback(A);this.close()},acceptError:function(A){this._setStateToDisplay();this._displayError(A)},_handleProcessResult:function(A){if(A.delta.valid){this.acceptSuccess(A)}else{this.acceptError(A.delta.validationMessage)}},_displayError:function(A){if(A){this.errors.update(A.escapeHTML());this.errors.show()}else{this.errors.hide();this.errors.update("")}}});if(typeof (inline)=="undefined"){inline={}}inline.RefreshPageModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{flash:{enterComments:true,commentsBox:{commentsField:{comment:true},textStatus:true}},errors:true,commands:{okButton:true,spinner:true}}});FormUtils.checkLength(this.comment,this.textStatus,1024);this.enterComments.observe("click",this.onEnterCommentsClick.bind(this));this.okButton.observe("click",this._onOkClick.bind(this));this.defaultCommentText="Enter an explanation or cite a source..."},open:function(A){this.lastEditId=A;this.comment.value=this.defaultCommentText;FormUtils.resetLength(this.comment);this._setStateToDisplay();this._displayError(null);this.modal.open()},onEnterCommentsClick:function(A){this.commentsBox.show();this.comment.focus();this.comment.select()},_setStateToDisplay:function(){this.okButton.disabled=false;this.spinner.hide()},_setStateToSubmitting:function(){this.okButton.disabled=true;this.spinner.show()},_onOkClick:function(){this.ok()},ok:function(){var A=this.comment.value;if((A.length>0)&&(A!=this.defaultCommentText)){if(A.length>this.maxLength){this.acceptError("Please enter a maximum of "+this.maxLength+" characters.");return }this._setStateToSubmitting();ColumboService.setEditComment(this.lastEditId,this.comment.value,{timeout:AjaxUtils.globalTimeout,callback:this._refreshPage.bind(this),warningHandler:this.handleException.bind(this),errorHandler:this.handleException.bind(this)})}else{this._refreshPage()}},acceptError:function(A){this._setStateToDisplay();this._displayError(A)},_refreshPage:function(){this._setStateToSubmitting();window.location.reload(false)},_displayError:function(A){if(A){this.errors.update(A.escapeHTML());this.errors.show()}else{this.errors.hide();this.errors.update("")}}});if(typeof (inline)=="undefined"){inline={}}inline.InfoModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{commands:{okButton:true,closeButton:true}}});this.closeButton.observe("click",this._onCancelClick.bind(this));this.okButton.observe("click",this._onOkClick.bind(this))},open:function(B,A){this.title.update(B);this.prompt.update(A);this.modal.open()},_onCancelClick:function(){this.close()},_onOkClick:function(){this.close()},close:function(){this.modal.close()}});if(typeof (inline)=="undefined"){inline={}}inline.DeltaModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{comment:true,commands:{okButton:true,cancelButton:true,debugButton:true,closeButton:true,spinner:true},errors:true,debugDisplay:true,textStatus:true}});FormUtils.checkLength(this.comment,this.textStatus,1024);this.cancelButton.observe("click",this._onCancelClick.bind(this));this.closeButton.observe("click",this._onCancelClick.bind(this));this.okButton.observe("click",this._onOkClick.bind(this));if(this.debugButton){this.debugButton.observe("click",this.debug.bind(this))}},open:function(G,C,B,A,E,F,D){this.submitCallback=B;this.successCallback=A;this.cancelCallback=E;this.cancelModal=F;this.okModal=D;this.title.update(G.escapeHTML());this.prompt.update(C.escapeHTML());this._setStateToDisplay();this._reset();this.beforeOpen();this.modal.open();this.afterOpen()},_setStateToDisplay:function(){this.okButton.disabled=false;this.cancelButton.disabled=false;this.spinner.hide()},_setStateToSubmitting:function(){this.okButton.disabled=true;this.cancelButton.disabled=true;this.spinner.show()},_reset:function(){this.comment.value="";FormUtils.resetLength(this.comment);if(this.debugDisplay){this.debugDisplay.hide()}this.components.each(function(A){A.acceptDelta(null);A.setStateToDisplay(null)});this._displayError(null)},_onCancelClick:function(){this.cancel();if(this.cancelCallback){this.cancelCallback()}},_onOkClick:function(){this.ok()},ok:function(){var B=this.comment.value;if(B.length>this.maxLength){this.acceptError("Please enter a maximum of "+this.maxLength+" characters.");return }this._setStateToSubmitting();var A=this.getDelta();if(!A.valid){this._displayError(null);this.acceptDelta(A);this._setStateToDisplay()}else{this.submitCallback(A,B,null,{timeout:AjaxUtils.globalTimeout,callback:this._handleProcessResult.bind(this),errorHandler:this.handleException.bind(this),exceptionHandler:this.handleException.bind(this)})}},getDelta:function(){return this.components[0].getDelta(null)},acceptDelta:function(A){return this.components[0].acceptDelta(A)},cancel:function(){this.close(this.cancelModal)},close:function(A){this._displayError(null);if(A){A.open()}else{this.modal.close()}this.submitCallback=null;this.successCallback=null},acceptSuccess:function(A){this._setStateToDisplay();if(this.successCallback){this.successCallback(A)}this.close(this.okModal)},acceptError:function(A){this._setStateToDisplay();this._displayError(A)},_handleProcessResult:function(A){if(A.delta.valid){this.acceptSuccess(A)}else{this.acceptValidationFailure(A.delta)}},acceptValidationFailure:function(A){this._setStateToDisplay();this.components[0].acceptDelta(A)},_displayError:function(A){if(A){this.errors.update(A.escapeHTML());this.errors.show()}else{this.errors.hide();this.errors.update("")}},debug:function(){var A=this.getDelta(null);if(inline.DeltaPrettyPrinter){this.debugDisplay.update("");this.debugDisplay.appendChild(new inline.DeltaPrettyPrinter().toHTML(A));this.debugDisplay.show()}}});if(typeof (inline)=="undefined"){inline={}}inline.DateEditField=inline.AbstractEditField.subclass({initialize:function(B,C,D,A,E){this.base(B,C,D);this.blankable=E;this.grab(this.element,{dateTable:{dateBody:{dateRow:{yearContainer:{year:true},monthContainer:{month:true},dayContainer:{day:true}}}}});FormUtils.defaultText(this.year,"unknown");this.year.observe("change",this._handleYearChange.bind(this));this.year.observe("blur",this._handleYearChange.bind(this));this.month.observe("change",this._handleMonthChange.bind(this));this.validYear=false;this.currentDaysInMonth=0;this.originalValue=A;this.setStateToDisplay()},getDelta:function(E){var C=this.getCurrentValue();var D=this.originalValue==C;var B=C=="0000-00-00";var A=this.defaultValue&&C==this.defaultValue;if(this.required){if(E!="ADD"){if(B&&!this.blankable){return new inline.AtomicDelta(C,false,"Please enter a valid date")}else{if(A){return new inline.AtomicDelta(C,false,this.defaultValidationMessage)}else{if(D){return null}}}}}else{if(D||A||(E=="ADD"&&B)){return null}}if(E!="ADD"&&B&&!D){if(this.blankable){return new inline.AtomicDelta("",true,"","REMOVE")}else{return new inline.AtomicDelta(C,false,"Please enter a valid date")}}return new inline.AtomicDelta(C)},getDeleteDelta:function(){var A=new inline.AtomicDelta("");A.kind="REMOVE";return A},getCurrentValue:function(){return this.getYear()+"-"+this.getMonth()+"-"+this.getDay()},setDate:function(B){var A=B.split("-");this.originalYear=A[0];this.originalMonth=A[1];this.originalDay=A[2];if(this.setYear(this.originalYear)){if(this.setMonth(this.originalMonth)){this.setDay(this.originalDay)}}},setStateToDisplay:function(){this.setDate(this.originalValue);this._displayErrorMessage()},setStateToEditing:function(){this.year.select()},getYear:function(){if(this.year.value.blank()||this.year.value=="unknown"){return"0000"}else{return Utils.padInteger(this.year.value,4)}},setYear:function(B){var A=DateUtils.validateYear(B);this.year.value=A?A:"unknown";this._recalcMonth();return A},_handleYearChange:function(A){this.setYear(this.year.value)},getMonth:function(){return Utils.padInteger(this.month.selectedIndex,2)},setMonth:function(A){this.month.selectedIndex=A;this._recalcDay();return A!==0},_handleMonthChange:function(A){this.setMonth(this.month.value)},_recalcMonth:function(){var A=this.validYear;this.validYear=DateUtils.validateYear(this.year.value);if(!this.validYear!=!A){this.month.update();if(!this.validYear){this._appendOption(this.month,"-",0)}else{["-","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].each(function(C,B){this._appendOption(this.month,C,B)},this)}}this._recalcDay()},getDay:function(){return Utils.padInteger(this.day.selectedIndex,2)},setDay:function(A){this.day.selectedIndex=A},_recalcDay:function(){var C=(this.month.value===0||!this.validYear);var D;if(!C){D=DateUtils.getDaysInMonth(this.month.value,this.year.value);if(D==this.currentDaysInMonth){return }}else{this.currentDaysInMonth=0}var B=this.day.selectedIndex;this.day.update();this._appendOption(this.day,"-",0);if(!C){for(var A=1;A<=D;A++){this._appendOption(this.day,A,A)}if(B<=D){this.day.selectedIndex=B}this.currentDaysInMonth=D}},_appendOption:function(A,D,C){var B=new Option(String(D));B.value=String(C);A.options[A.options.length]=B}});if(typeof (inline)=="undefined"){inline={}}inline.EditManager=Class.create();inline.EditManager.FIRST="FIRST";inline.EditManager.LAST="LAST";inline.EditManager.ACTION_NAMES=$H({add:"Add",edit:"Edit",replace:"Replace","delete":"Delete",remove:"Remove",clear:"Clear",reinstate:"Reinstate",accept:"Accept",reject:"Reject",info:"Info"});inline.EditManager.prototype={initialize:function(){this.hovers=[];this.clickActions=[];this.mouseoverListener=this._showHoversOnMouseOver.bind(this);this.mouseoutListener=this._hideHoversOnMouseOut.bind(this)},activateHovers:function(){Event.observe(document.body,"mouseover",this.mouseoverListener);Event.observe(document.body,"mouseout",this.mouseoutListener);this.clickActions.each(function(A){Event.observe(A.element,"click",A.observer)});this.hoversActivated=true},deactivateHovers:function(){Event.stopObserving(document.body,"mouseover",this.mouseoverListener);Event.stopObserving(document.body,"mouseout",this.mouseoutListener);this.clickActions.each(function(A){Event.stopObserving(A.element,"click",A.observer)});this.hovers.each(function(A){A.hideHover()});this.hoversActivated=false},registerClickAction:function(D,C,B){var A=this._handleActionInternal.bind(this,C,B,null);Event.observe(D,"click",A);this.clickActions.push({element:D,observer:A})},_showHoversOnMouseOver:function(B){var A=Event.element(B);if(!A){return }this._ensureElementHoverDetailsAreInitialized(A);A.hoverDetails.each(function(D){var C=this.hovers.find(function(E){return E.isShowingFor(D)});if(!C){this._getShowableHover().showHover(D)}}.bind(this))},_hideHoversOnMouseOut:function(A){var B=Utils.getMouseOutDestination(A);this.hovers.each(function(C){if(!B||!C.isEventWithinHover(B,A)){C.hideHover()}})},_getShowableHover:function(){var A=this.hovers.find(function(B){return !B.hovering});if(!A){A=new inline.Hover(this._handleAction.bind(this));this.hovers.push(A)}return A},_ensureElementHoverDetailsAreInitialized:function(G){if(!G.hoverDetails){var H=G;var F=[];while(H&&H.hasClassName){if(H.hoverDetails){F=F.concat(H.hoverDetails);break}var I=H.readAttribute("proxiedElementId");var C;if(I){var E=$(I);var B=this._getActionsForElement(E);if(B){var A=H.readAttribute("proxyDisplayId");var D=A?$(A):H;C=new inline.HoverDetails(E,D,H,B);F.push(C)}}else{if((F.size()===0)&&H.hasClassName("editable")){C=this._createEditableHoverDetails(H);if(C){F.push(C)}}}H=H.up()}G.hoverDetails=F}},_createEditableHoverDetails:function(C){var A=this._findDisplayForEditableElement(C);if(!A){A=C}var B=this._getActionsForElement(A);return B?new inline.HoverDetails(C,A,A,B):null},_getActionsForElement:function(B){var A=B.readAttribute("actions");if(!A||(A.size===0)){return null}return A.split("|")},_findDisplayForEditableElement:function(C){if(!C.readAttribute("actions")){var B=[C];while(B.size()>0){var A=B.shift();if(A.nodeName.toLowerCase()=="div"){if(A.hasClassName("display")){return A}B=B.concat(A.immediateDescendants())}}}return C},_handleAction:function(A,B){this._handleActionInternal(A.editableElement,B,function(){this.hovers.each(function(C){if(C.isShowingFor(A)){C.hideHover()}})}.bind(this))},_handleActionInternal:function(C,B,A){Cursor.wait();setTimeout(function(){var D=C.up(".section");inline.Authentication.doAuthenticated("Hover : "+(D?D.id:"(no section found!)")+" : "+B,function(){var E=C.component;if(!E){E=inline.ComponentFactory.getComponentForElement(C)}E.handleAction(B,C);if(A){A()}Cursor.reset()},function(F,E){Cursor.reset();Utils.handleError(F,E);return true})},10)}};inline.Hover=Class.create();inline.Hover.prototype={initialize:function(A){this._constructHover();this._resetHoverPosition();this._actionHandler=A;this.hoverDetails=null;this.hovering=false},showHover:function(J){if(!this.hovering){this.hoverDetails=J;var Q=2;var I=1;var G=20;var A=1.4;var M=4;this.editActions.setStyle({height:"",lineHeight:"",borderLeft:"",borderBottom:"",padding:(Q+I)+"px 0"});this._buildActionMenu(this.hoverDetails.actions);var C=Position.cumulativeOffset(this.hoverDetails.displayElement);var L=this.hoverDetails.displayElement.getDimensions();this.top=C[1]-Q-I;this.right=C[0]+L.width+Q;this.bottom=C[1]+L.height+Q;this.left=C[0]-Q-I;var B=L.width+(2*Q)+(2*I);var P=L.height+(2*Q)+(2*I);this.topBorder.setStyle({top:this.top+"px",left:this.left+"px",width:B+"px"});this.rightBorder.setStyle({top:this.top+"px",left:this.right+"px",height:P+"px"});this.bottomBorder.setStyle({top:this.bottom+"px",left:this.left+"px",width:B+"px"});this.leftBorder.setStyle({top:this.top+"px",left:this.left+"px",height:P+"px"});this.editActions.show();var D=this.editActions.getHeight();var E=0;this.editActions.immediateDescendants().each(function(R){E+=R.getWidth()});var F=L.height/D;if(F>M){this.editActions.setStyle({top:this.top+"px",left:(this.right-E)+"px",borderLeft:"1px solid white",borderBottom:"1px solid white"})}else{var K;var H=ComponentUtils.getViewportDimensions();var O=H.width-(this.right+E);var N=J.displayElement?J.displayElement.readAttribute("displayActionsOnOppositeSide"):false;if(!N&&O>G){K=this.right;this.right+=E}else{this.left-=E;K=this.left}if(F<=A){this.editActions.setStyle({top:this.top+"px",left:K+"px",height:L.height+"px",lineHeight:L.height+"px"})}else{this.editActions.setStyle({top:this.top+"px",left:K+"px"})}}this.topBorder.show();this.rightBorder.show();this.bottomBorder.show();this.leftBorder.show();this.hovering=true}},hideHover:function(){this.hoverDetails=null;this.hovering=false;this.topBorder.hide();this.rightBorder.hide();this.bottomBorder.hide();this.leftBorder.hide();this.editActions.hide();this.editActions.update("");this._resetHoverPosition()},isEventWithinHover:function(D,F){if(!this.hovering){return false}if(D.hoverPart){return true}if(this._safeIsDescendantOfBoundingElement(D)){return true}var C=Position.cumulativeOffset(D);var B=D.getDimensions();var E=C[0]+B.width;var G=C[1]+B.height;if((C[0]>=this.left)&&(E<=this.right)&&(C[1]>=this.top)&&(G<=this.bottom)){return true}var A=Event.pointerX(F);var H=Event.pointerY(F);if((A>=this.left)&&(A<this.right)&&(H>=this.top)&&(H<this.bottom)&&this.hoverDetails.boundingElement.descendantOf(D)){return true}return false},isShowingFor:function(A){return this.hovering&&this.hoverDetails.equals(A)},_safeIsDescendantOfBoundingElement:function(A){try{return(A==this.hoverDetails.boundingElement)||A.descendantOf(this.hoverDetails.boundingElement)}catch(B){return true}},_buildActionMenu:function(C){var A=new HtmlBuilder();var B=this.hoverDetails;C.each(function(F,E){var G=inline.EditManager.ACTION_NAMES.get(F)||F;var D=A.a({href:"#",hoverPart:true},A.$text(G));D.observe("click",function(H){H.stop();this._actionHandler(B,F)}.bind(this));this.editActions.appendChild(D);if(E==C.length-1){D.addClassName("last")}}.bind(this))},_resetHoverPosition:function(){this.top=-1;this.right=-1;this.bottom=-1;this.left=-1},_constructHover:function(B){this.originalHoverClassName="border";var A=new HtmlBuilder();document.body.appendChild(this.editActions=A.div({className:"hoverEditActions",style:{display:"none"},hoverPart:true}));document.body.appendChild(this.topBorder=A.div({className:"horizontalHoverBorder",style:{display:"none"},hoverPart:true}));document.body.appendChild(this.rightBorder=A.div({className:"verticalHoverBorder",style:{display:"none"},hoverPart:true}));document.body.appendChild(this.bottomBorder=A.div({className:"horizontalHoverBorder",style:{display:"none"},hoverPart:true}));document.body.appendChild(this.leftBorder=A.div({className:"verticalHoverBorder",style:{display:"none"},hoverPart:true}))}};inline.HoverDetails=Class.create();inline.HoverDetails.prototype={initialize:function(D,A,C,B){this.editableElement=D;this.displayElement=A;this.boundingElement=C;this.actions=B},equals:function(A){return A&&(this.editableElement==A.editableElement)&&(this.displayElement==A.displayElement)&&(this.boundingElement==A.boundingElement)}};Object.extend(inline.EditManager,{setup:function(){if(!inline.EditManager.SINGLETON){inline.EditManager.SINGLETON=new inline.EditManager()}},getInstance:function(){this.setup();return inline.EditManager.SINGLETON}});if(typeof (inline)=="undefined"){inline={}}inline.Entity=inline.AbstractDeltaContainer.subclass({initialize:function(B,A,C,D){this.base(B,A,C);this.pendingEditId=D;this.grab(this.element,{display:true,edit:true})},getDeleteDelta:function(){return{kind:"REMOVE",id:this.entityId,isEmpty:function(){return false}}},getUndeleteDelta:function(){return{kind:"UNREMOVE",id:this.entityId,isEmpty:function(){return false}}},getPendingEditId:function(){return this.pendingEditId},setStateToDisplay:function(){if(this.display&&this.edit){this.display.show();this.edit.hide()}this.components.each(function(A){A.setStateToDisplay()})},setStateToEditing:function(){if(this.display&&this.edit){this.display.hide();this.edit.show()}this.components.each(function(A){A.setStateToEditing()})},setStateToSubmitting:function(){if(this.display&&this.edit){this.display.hide();this.edit.show()}this.components.each(function(A){A.setStateToSubmitting()})}});if(typeof (inline)=="undefined"){inline={}}inline.RowEntity=inline.Entity.subclass({initialize:function(B,A,D,C){this.base(B,A,D);this.errorColumn=C;this.grab(this.element,{rowCommands:{deleteButton:true}});this.deleteButton.observe("click",this.doDelete.bind(this))},setStateToDisplay:function(){if(this.display&&this.edit){this.display.show();this.edit.hide()}this.rowCommands.hide();this.components.each(function(A){A.setStateToDisplay()});this.element.getElementsBySelector("input").each(function(A){A.disabled=false});this.element.removeClassName("deleted");this.setDeleted(false);if(this.errorRow){this.errorRow.remove();this.errorRow=null}},setStateToEditing:function(){if(this.display&&this.edit){this.display.hide();this.edit.show()}this.rowCommands.show();this.components.each(function(A){A.setStateToEditing()})},setStateToSubmitting:function(){if(this.display&&this.edit){this.display.hide();this.edit.show()}this.rowCommands.show();this.components.each(function(A){A.setStateToSubmitting()})},doDelete:function(){if(this.deltaKind=="EDIT"){this.setDeleted(true);this.element.addClassName("deleted");this.element.getElementsBySelector("input").each(function(A){A.disabled=true});this.displayErrorRow(null)}else{this.deleteComponent()}},afterRemoveComponent:function(){this.displayErrorRow(null)},displayErrorRow:function(B){if(!B||B.length===0){if(this.errorRow){this.errorRow.remove();this.errorRow=null}}else{var C=$(document.createElement("tr"));var D=this.element.childElements().select(function(E){return E.match("td, th")});var A;if(this.errorColumn){D.each(function(E,F){var G=$(document.createElement(E.tagName));G.className=E.className;G.colSpan=E.colSpan;if(this.errorColumn==F){A=G}C.appendChild(G)}.bind(this))}else{A=$(document.createElement("td"));A.colSpan=D.inject(0,function(F,E){return F+E.colSpan});A.addClassName("errors");C.appendChild(A)}B.each(function(E){var F=$(document.createElement("p"));F.addClassName("error");F.update(E.escapeHTML());A.appendChild(F)});if(this.errorRow){this.errorRow.remove()}this.insertAfter(C,this.element);this.errorRow=C}},insertAfter:function(D,C){var A=C.up();var B=C.next();if(B){A.insertBefore(D,B)}else{A.appendChild(D)}},acceptDelta:function(B){B=this.transformIncomingDelta(B);B=B||{};var A=[];this.components.each(function(D){var C=B[D.getDeltaName()];if(C){if(C.validationMessage){A.push(C.validationMessage)}C.validationMessage=null}D.acceptDelta(C)});this.displayErrorRow(A)},transformOutgoingDelta:function(B){if(!B){return null}else{if(B.kind!="ADD"){return B}}var A=this.components.any(function(C){var D=B[C.getOutgoingDeltaName()];return D&&!D.isEmpty()});return A?B:null}});if(typeof (inline)=="undefined"){inline={}}inline.AbstractEnumEditField=inline.AbstractEditField.subclass({initialize:function(B,C,D,A){this.base(B,C,D);this.grab(this.element,{select:true});this.originalValue=A;this.setStateToDisplay()},getDelta:function(D){var A=D=="ADD"&&this.required;var B=this.select?this.select.value:this.originalValue;if(A||(this.originalValue!=B)){var C=this.getEnumDeltaForValue(B);if(!C.isEmpty){C.isEmpty=function(){return C.id!==0&&!C.id}}return C}else{if(this.originalValue==B){return null}else{return new inline.AtomicSelectDelta(B,false,"Please make a change")}}},getEnumDeltaForValue:function(A){throw"Subclasses must implement getEnumDeltaForValue"},_resetValue:function(){if(this.select&&this.originalValue){this.select.value=this.originalValue}}});if(typeof (inline)=="undefined"){inline={}}inline.JavaEnumEditField=inline.AbstractEnumEditField.subclass({initialize:function(B,D,E,A,C){this.base(B,D,E,A);this.unsetValue=C},getEnumDeltaForValue:function(A){if(A==this.unsetValue){return new inline.EnumDelta(A,false,"Please make a change")}return new inline.EnumDelta(A)},getDeleteDelta:function(){var A=new inline.AtomicDelta("");A.kind="REMOVE";return A}});if(typeof (inline)=="undefined"){inline={}}inline.DatabaseEnumEditField=inline.AbstractEnumEditField.subclass({initialize:function(B,D,E,A,C){this.base(B,D,E,A);this.unsetValue=C},getEnumDeltaForValue:function(A){if(A==this.unsetValue){return new inline.AtomicSelectDelta(A,false,"Please select an option")}return{kind:"SELECT",id:A}}});if(typeof (inline)=="undefined"){inline={}}inline.ContributorRelationshipTypeEditField=inline.AbstractEnumEditField.subclass({initialize:function(A,B,C){this.base(A,B,C)},getEnumDeltaForValue:function(B){if(B=="unset"){return new inline.EnumDelta(null,false,"Please make a change")}var A=B.lastIndexOf("_");var C=B.substring(0,A);var D=B.substring(A+1);return{kind:"SELECT",newStringValue:C,direction:D}}});if(typeof (inline)=="undefined"){inline={}}inline.ContributorRelationshipEntity=inline.Entity.subclass({initialize:function(C,A,D,B,E){this.base(C,A,D,E);if(B){this.undatedRelationships=$A(B)}this.fromDate=this.element.down(".fromDate");this.toDate=this.element.down(".toDate");this.select=this.element.down(".select");if(this.select){this.select.observe("change",this._checkUndated.bindAsEventListener(this))}},transformOutgoingDelta:function(A){if(A&&A.kind=="ADD"&&A.contributorRelationshipTypeDelta){if(A.contributorRelationshipTypeDelta.direction=="incoming"){this.flipSourceAndTargetContributors(A);A.cookie="flipped"}if((A.startDateDelta||A.endDateDelta)&&this._isUndated(A.contributorRelationshipTypeDelta.newStringValue)){A.startDateDelta=null;A.endDateDelta=null}}if(A&&A.contributorRelationshipTypeDelta&&A.contributorRelationshipTypeDelta.direction){delete A.contributorRelationshipTypeDelta.direction}return A},transformIncomingDelta:function(A){if(A&&A.cookie=="flipped"){this.flipSourceAndTargetContributors(A)}return A},flipSourceAndTargetContributors:function(B){var A=B.sourceContributorDelta;B.sourceContributorDelta=B.targetContributorDelta;B.targetContributorDelta=A},_checkUndated:function(){var A=this.select.value;A=A.substring(0,A.indexOf("_"));if(this._isUndated(A)){this.fromDate.hide();this.toDate.hide()}else{this.fromDate.show();this.toDate.show()}},_isUndated:function(A){var B=this.undatedRelationships;for(var C=0;C<B.length;C++){if(B[C]==A){return true}}}});if(typeof (inline)=="undefined"){inline={}}inline.List=inline.AbstractContainer.subclass({initialize:function(B,C,A){this.base(B);this.deltaName=C;this.addAtEnd=A;this.componentsCreatedDuringEdit=[];this.grab(this.element,{listCommands:{addButton:true},unknown:true});if(this.addButton){this.addButton.observe("click",this.doAdd.bind(this))}},getDeltaName:function(){return this.deltaName},getOutgoingDeltaName:function(){return this.getDeltaName()},getDelta:function(C){var B=[];var A=true;this.components.each(function(E,D){var F=E.getDelta(C);if(F){B.push(F);F.key=D;A=A&&F.isEmpty()}}.bind(this));B.isEmpty=function(){return A};return B.size()===0&&C!="ADD"?null:B},acceptDelta:function(B){B=B||[];var A=$H();B.each(function(C){A.set(C.key,C)});this.components.each(function(C,D){var E=A.get(D);C.acceptDelta(E)})},handleAction:function(A){if(A.startsWith("add")){this.doAdd()}else{throw"Unsupported action ["+A.escapeHTML()+"]"}},doAdd:function(){var A=this.insertAddTemplate();A.components.each(function(B){B.setStateToEditing();this.componentsCreatedDuringEdit.push(B)}.bind(this));if(this.unknown){this.unknown.hide()}ComponentUtils.focusFirstField(A.element)},buildDeltaToRoot:function(D,A){var B=null;this.components.each(function(E,F){if(E===A){B=F;throw $break}});if(B===null){throw"Originating component is not a child of this component"}D.key=B;var C=[D];if(this.parent){return this.parent.buildDeltaToRoot(C,this)}else{return C}},afterRemoveChildComponent:function(B,A){if(A.readAttribute("template")){A.remove();if(!this.element.down(".clonedTemplate")){this.element.removeClassName("containsClonedTemplate")}}this.componentsCreatedDuringEdit=this.componentsCreatedDuringEdit.without(B);if(this.unknown){this.unknown.show()}},setStateToDisplay:function(){this.components.each(function(A){A.setStateToDisplay()});if(this.listCommands){this.listCommands.hide()}this.componentsCreatedDuringEdit.each(function(A){A.deleteComponent()}.bind(this));this.componentsCreatedDuringEdit=[]},setStateToEditing:function(){this.components.each(function(A){A.setStateToEditing()});if(this.listCommands){this.listCommands.show()}},setStateToSubmitting:function(){this.components.each(function(A){A.setStateToSubmitting()});if(this.listCommands){this.listCommands.show()}},insertAddTemplate:function(){if(!this.addAtEnd){return this.insertTemplateAtTop("add",this.element)}else{return this.insertTemplateAtBottom("add",this.element)}}});if(typeof (inline)=="undefined"){inline={}}inline.TabularList=inline.List.subclass({initialize:function(A,B){this.base(A,B);this.tbody=this.element.down("tbody")},insertAddTemplate:function(){return this.insertTemplateAtBottom("add",this.tbody)}});if(typeof (inline)=="undefined"){inline={}}inline.Section=inline.AbstractDeltaContainer.subclass({maxCommentLength:1024,initialize:function(F,E,H,A,C,D,B){this.base(F,E,H);this.submitCallback=A;this.refreshUrl=C;this.closeImageUrl=D;this.spinnerImageUrl=B;this._generateComponent();this.enterComments.observe("click",this.onEnterCommentsClick.bind(this));this.okButton.observe("click",this.onOkClick.bind(this));this.cancelButton.observe("click",this.onCancelClick.bind(this));this.close.observe("click",this.onCancelClick.bind(this));var G=false},hideFlash:function(){this.flash.hide()},_showFlash:function(C,B,A){if(!B&&!A){this.flash.hide()}else{if(C){this.flash.addClassName("success");this.flash.removeClassName("error");this.thanks.show();this.refreshError.hide()}else{this.flash.removeClassName("success");this.flash.addClassName("error");this.thanks.hide();this.refreshError.show()}if(A){this.errors.hide();this.commentsBox.hide();this.comments.show()}else{this.comments.hide()}if(B){this.message.update(B.escapeHTML())}else{this.message.update("")}this.refreshError.hide();this.flash.show();this._setStateToDisplay()}},setLastEditId:function(A){this.lastEditId=A},onEnterCommentsClick:function(A){A.stop();this.commentsBox.show();this.comment.focus();this.comment.select()},onOkClick:function(A){if(submitting){return }if(this.comment.value=="Enter an explanation or cite a source..."||this.comment.value===""){this.acceptError("Please enter an explanation or cite a source")}else{if(this.comment.value.length>this.maxCommentLength){this.acceptError("Please enter "+this.maxCommentLength+" characters or less.")}else{this._setStateToSubmitting();ColumboService.setEditComment(this.lastEditId,this.comment.value,{timeout:AjaxUtils.globalTimeout,callback:this._handleEditCommentResult.bind(this),warningHandler:this.handleException.bind(this),errorHandler:this.handleException.bind(this)})}}},onCancelClick:function(A){if(submitting){return }A.stop();this.flash.hide()},_setStateToDisplay:function(){this.spinner.hide();submitting=false},_setStateToSubmitting:function(){submitting=true;this.errors.hide();this.spinner.show()},_handleEditCommentResult:function(){this._showFlash(true,"Thanks for the explanation!",false)},acceptError:function(A){this._setStateToDisplay();this._displayError(A)},_displayError:function(A){if(A){this.errors.update(A.escapeHTML());this.errors.show()}else{this.errors.hide();this.errors.update("")}},refresh:function(B,A){(new Ajax.Request(this.refreshUrl,{method:"get",onSuccess:this._handleRefreshSuccess.bind(this,B,A),onFailure:this._handleRefreshError.bind(this,B,A),onException:this._handleRefreshError.bind(this,B,A),requestTimeout:AjaxUtils.globalTimeout}))},_handleRefreshError:function(C,A,B){A();if(C){this._showFlash(false,null,true)}this.refreshError.show()},_handleRefreshSuccess:function(F,B,H){AjaxUtils.validateResponse(H);B();var A=this.element.parentNode;var D=this.element.up("div.section");var E=$A();E.push(D);while(E.size()>0){var C=E.pop();if(C!=this.element){E.push(C.childElements());E=E.flatten()}C.hoverDetails=null}this.element.replace(H.responseText);var G=A.down(".sectionContent");this.initialize(G,this.entityId,this.deltaName,this.submitCallback,this.refreshUrl,this.closeImageUrl,this.spinnerImageUrl);if(F){this._showFlash(true,null,true)}inline.ModerationWorkflow.updateModerationWorkflow()},_generateComponent:function(){var A=new HtmlBuilder();this.flash=A.div({className:"flash flashWithIcon error",style:{display:"none"}},this.close=A.a({className:"close",title:"Close Message",href:"#"},this.closeImage=A.img({src:this.closeImageUrl})),this.message=A.span({className:"message"}),this.comments=A.div({className:"comments",style:{display:"none"}},this.thanks=A.div({className:"thanks",style:{display:"none"}},A.$text("Thanks! "),this.enterComments=A.a({className:"nonNav enterComments",href:"#"},A.$text("Care to add an explanation or cite a source")),A.$text(" for your change? This will help us review it.")),this.refreshError=A.div({className:"refreshError"},A.$text("There was an error handling your changes; please refresh the page. If this problem persists, please contact us.")),this.commentsBox=A.div({className:"commentsBox",style:{display:"none"}},A.fieldset({},this.comment=A.textarea({className:"comment",rows:"2"},A.$text("Enter an explanation or cite a source..."))),this.errors=A.div({className:"errors",style:{display:"none"}},A.$text("")),this.textStatus=A.div({className:"textStatus"}),this.commands=A.div({className:"commands"},this.spinner=A.img({src:this.spinnerImageUrl,className:"spinner",style:{display:"none"}}),this.okButton=A.button({className:"button okButton"},A.span({className:"inner"},A.$text("OK"))),this.cancelButton=A.button({className:"button cancelButton"},A.span({className:"inner"},A.$text("Cancel")))))));FormUtils.checkLength(this.comment,this.textStatus,this.maxCommentLength);this.element.insertBefore(this.flash,this.element.firstChild)}});if(typeof (inline)=="undefined"){inline={}}inline.SubmitWrapper=inline.AbstractContainer.subclass({initialize:function(D,C,E,A,B){this.base(D);this.reloadEntirePageOnEdit=E;this.spinnerImageUrl=A;this.moderationId=B;this.grab(this.element,{content:true});this._generateComponent(C);this.setStateToDisplay()},getDelta:function(A){return this.components[0].getDelta(A)},getDeltaName:function(){return this.components[0].getDeltaName()},getOutgoingDeltaName:function(){return this.components[0].getOutgoingDeltaName()},getPendingEditId:function(){return this.components[0].getPendingEditId()},acceptDelta:function(A){this.components[0].acceptDelta(A)},setStateToDisplay:function(){inline.EditManager.SINGLETON.activateHovers();this.element.addClassName("displaying");this.element.removeClassName("editing");this.element.removeClassName("submitting");this._modifyClassOfParentElement(false);this.saveActions.hide();this.spinner.hide();if(this.debugDisplay){this.debugDisplay.update("");this.debugDisplay.hide()}this.components.each(function(A){A.setStateToDisplay()})},setStateToEditing:function(){inline.EditManager.SINGLETON.deactivateHovers();this.element.removeClassName("displaying");this.element.addClassName("editing");this.element.removeClassName("submitting");this._modifyClassOfParentElement(true);this.saveActions.show();this.spinner.hide();this.components.each(function(A){A.setStateToEditing()})},setStateToSubmitting:function(){this.element.removeClassName("displaying");this.element.addClassName("editing");this.element.addClassName("submitting");this._modifyClassOfParentElement(true);this.saveActions.show();this.spinner.show();this.components.each(function(A){A.setStateToSubmitting()})},_modifyClassOfParentElement:function(B){var A=this.element.up();if(B){A.addClassName("containsSubmitWrapper")}else{A.removeClassName("containsSubmitWrapper")}},handleAction:function(A){switch(A){case"replace":this.doEdit();break;case"edit":this.doEdit();break;case"delete":this.doDelete("deleted");break;case"remove":this.doDelete("removed");break;case"clear":this.doDelete("cleared");break;case"reinstate":this.doUndelete();break;case"accept":this.doAccept();break;case"reject":this.doReject();break;case"info":this.doInfo();break;default:throw"Unsupported action ["+A.escapeHTML()+"]"}},doAccept:function(){inline.EditManager.SINGLETON.deactivateHovers();var A=this.getPendingEditId();ColumboService.acceptEdit(A,this.moderationId,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},doReject:function(){inline.EditManager.SINGLETON.deactivateHovers();var A=inline.ComponentFactory.getComponentById("moderationReasonModal");A.open(this._doReject.bind(this),this._reactivateHoversAfterModerationAction)},_doReject:function(A,C){var B=this.getPendingEditId();ColumboService.rejectEdit(B,this.moderationId,A,C,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},doInfo:function(){var A=this.getPendingEditId();ColumboService.getPendingEditInfo(A,{timeout:AjaxUtils.globalTimeout,callback:this._handleInfoSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},doEdit:function(){this.setStateToEditing();this._clearMessage();ComponentUtils.focusFirstField(this.element)},doDelete:function(A){this._doDeleteOrUndelete(true,A)},doUndelete:function(){this._doDeleteOrUndelete(false)},_doDeleteOrUndelete:function(E,C){this._clearMessage();var B=this.getAncestorProperty("submitCallback");var A=function(){var F=E?this.components[0].getDeleteDelta():this.components[0].getUndeleteDelta();return this.parent.buildDeltaToRoot(F,this)}.bind(this);var D=inline.ComponentFactory.getComponentById("deleteModal");D.open(A,B,this.acceptSuccess.bind(this),E?"Why should this be "+C+"?":"Why should this be reinstated?",this.getPendingEditId())},submit:function(){$j(this.element).trigger("UEEvent");if(this.element.hasClassName("submitting")){return }Cursor.wait();setTimeout(function(){var D=this.getDelta(this.deltaKind);var B=this.getPendingEditId();var C;if(!D){this._displayMessage("Please make a change");this.getRoot().acceptDelta(null);this.setStateToEditing();Cursor.reset()}else{if(!D.valid){this._clearMessage();C=this.parent.buildDeltaToRoot(D,this);this.getRoot().acceptDelta(C);this.setStateToEditing();Cursor.reset()}else{this._clearMessage();C=this.parent.buildDeltaToRoot(D,this);this.setStateToSubmitting();var A=this.getAncestorProperty("submitCallback");A(C,null,B,{timeout:AjaxUtils.globalTimeout,callback:this._handleProcessResult.bind(this),warningHandler:this._handleProcessError.bind(this),errorHandler:this._handleProcessError.bind(this)})}}}.bind(this),10)},acceptValidationFailure:function(A){this.setStateToEditing();this.getRoot().acceptDelta(A)},acceptError:function(A){this.setStateToEditing();this.acceptDelta(null);this._displayMessage(A)},acceptSuccess:function(B){if(this.reloadEntirePageOnEdit){var A=inline.ComponentFactory.getComponentById("refreshPageModal");A.open(B.encryptedEditId);this.setStateToDisplay()}else{this.callAncestorMethod("setLastEditId",[B.encryptedEditId]);this._refreshContainingSection(true,function(){if(this._shouldCloseOnCancel()){this.deleteComponent()}else{this.setStateToDisplay()}}.bind(this))}},cancel:function(){if(this.element.hasClassName("submitting")){return }this._clearMessage();if(this._shouldCloseOnCancel()){this.deleteComponent()}else{this.setStateToDisplay()}},debug:function(){var B=this.getDelta(this.deltaKind);if(B){var A=this.parent.buildDeltaToRoot(B,this);this._displayDebug(A)}else{this.debugDisplay.update("")}},_generateComponent:function(A){var B=new HtmlBuilder();this.saveActions=B.div({className:"saveActions",style:{display:"none"}},this.spinner=B.img({src:this.spinnerImageUrl,className:"spinner",style:{display:"none"}}),this.okButton=B.button({className:"button okButton"},B.span({className:"inner"},B.$text("OK"))),this.cancelButton=B.button({className:"button cancelButton"},B.span({className:"inner"},B.$text("Cancel"))));this.error=B.p({className:"error"});this.error.hide();this.content.appendChild(this.error);this.content.appendChild(this.saveActions);Event.observe(this.okButton,"click",this.submit.bind(this));Event.observe(this.cancelButton,"click",this.cancel.bind(this));if(window.DEBUG){this.debugButton=B.button({className:"button debugButton"},B.span({className:"inner"},B.$text("Debug")));this.debugDisplay=B.div({className:"debugDisplay",style:{display:"none"}});this.saveActions.appendChild(this.debugButton);this.content.appendChild(this.debugDisplay);Event.observe(this.debugButton,"click",this.debug.bind(this))}},_handleProcessResult:function(A){this._escapeValidationMessages(A.delta);if(this.debugDisplay&&this.debugDisplay.visible()){this._displayDebug(A.delta)}if(A.delta.valid){this.acceptSuccess(A)}else{this.acceptValidationFailure(A.delta)}Cursor.reset()},_handleProcessError:function(B,A){this.handleException(B,A)},_handleModerationSuccess:function(B,A){if(this.reloadEntirePageOnEdit){window.location.reload(false)}else{this._refreshContainingSection(false,this._reactivateHoversAfterModerationAction)}},_reactivateHoversAfterModerationAction:function(){inline.EditManager.SINGLETON.activateHovers();Cursor.reset()},_handleModerationError:function(B,A){Utils.handleError(B,A);Cursor.reset()},_handleInfoSuccess:function(A){this._displayInfoMessage.defer(A)},_displayInfoMessage:function(B){var A="";B.each(function(D,C){if(C>0){A+=inline.SubmitWrapper.EDIT_INFO_SEPARATOR}A+=inline.SubmitWrapper.EDIT_INFO_TEMPLATE.evaluate(D)});alert(A)},_clearMessage:function(){this.callAncestorMethod("hideFlash",[]);this.error.update("");this.error.hide()},_displayMessage:function(A){this.callAncestorMethod("hideFlash",[]);if(A){this.error.update(A.escapeHTML());this.error.show()}else{this.error.update("");this.error.hide()}},_displayDebug:function(A){if(inline.DeltaPrettyPrinter){this.debugDisplay.update("");this.debugDisplay.appendChild(new inline.DeltaPrettyPrinter().toHTML(A));this.debugDisplay.show()}},_escapeValidationMessages:function(A){if(!A||typeof (A)!="object"){return }if(A.validationMessage){A.validationMessage=A.validationMessage.escapeHTML()}Object.keys(A).each(function(B){if(B.endsWith("Delta")){this._escapeValidationMessages(A[B])}}.bind(this))},_shouldCloseOnCancel:function(){var B=this.getDelta();var A=this.element.up(".hiddenList");return !A&&B&&B.kind=="ADD"},_refreshContainingSection:function(A,B){this.callAncestorMethod("refresh",[A,B])}});inline.SubmitWrapper.EDIT_INFO_TEMPLATE=new Template("User: #{userName}\nTime: #{date}\nChange: #{change}\nComment: #{changeComment}");inline.SubmitWrapper.EDIT_INFO_SEPARATOR="\n--------------------------------------------------------\n";if(typeof (inline)=="undefined"){inline={}}inline.TextEditField=inline.AbstractEditField.subclass({initialize:function(D,F,G,H,C,B,A,E){this.base(D,F,G);this.blankable=H;this.maxLength=C;this.defaultValue=B;this.defaultValidationMessage=A;this.autoCompleteArgs=E;this.grab(this.element,{value:true,textStatus:true});this.originalValue=this.value.value;if(this.textStatus){FormUtils.checkLength(this.value,this.textStatus,C)}if(this.autoCompleteArgs){if(this.autoCompleteArgs.paramName){if(this.autoCompleteArgs.paramValue){this._updateAutoCompleter(this.autoCompleteArgs.paramValue)}if(this.autoCompleteArgs.watcherId){$(this.autoCompleteArgs.watcherId).observe("change",function(I){this._updateAutoCompleter(Event.element(I).value)}.bind(this))}}else{this._updateAutoCompleter()}Element.hide($(this.autoCompleteArgs.textMatchesId))}this.setStateToDisplay()},setValue:function(A){this.value.value=A;this.checkLength()},getDelta:function(E){var C=this.value.value;var D=this.originalValue==C;var B=C==="";var A=this.defaultValue&&C==this.defaultValue;if(this.required){if(E!="ADD"){if(A){return new inline.AtomicDelta(C,false,this.defaultValidationMessage)}else{if(D){return null}}}}else{if(D||A){return null}}if(E!="ADD"&&B&&!D){if(this.blankable){return new inline.AtomicDelta("",true,"","REMOVE")}}return new inline.AtomicDelta(C)},getDeleteDelta:function(){var A=new inline.AtomicDelta("");A.kind="REMOVE";return A},getUndeleteDelta:function(){var A=new inline.AtomicDelta(this.originalValue);A.kind="EDIT";return A},_resetValue:function(){this.value.value=this.originalValue;FormUtils.resetLength(this.value.value)},_updateAutoCompleter:function(A){if(!this.autoCompleter){var B=A?this.autoCompleteArgs.paramName+"="+A:null;this.autoCompleter=new AjaxAutoCompleter(this.autoCompleteArgs.textFieldId,this.autoCompleteArgs.textMatchesId,this.autoCompleteArgs.autoCompleteUrl,{paramName:"text",parameters:B,updateElement:this._updateTextFieldWithAutoComplete.bind(this)},this._getDisplayValue)}else{this.autoCompleter.options.defaultParams=this.autoCompleteArgs.paramName+"="+A}},_updateTextFieldWithAutoComplete:function(B){var A=$(this.autoCompleteArgs.textFieldId);A.value=_getDisplayValue(B)},_getDisplayValue:function(A){return A.down(".hiddenValue").innerHTML.unescapeHTML()}});if(typeof (inline)=="undefined"){inline={}}inline.DurationEditField=inline.TextEditField.subclass({initialize:function(A,B,C,D){this.base(A,B,C,D)},getDelta:function(D){var B=D=="ADD"&&this.required;var C=this.value.value;if(B||this.originalValue!=C){var A=this.parseDuration(C);if(A!==null){return new inline.AtomicDelta(A.toString(10))}else{return new inline.AtomicDelta(C,false,"Please enter a track length in the format hh:mm:ss or mm:ss")}}else{return null}},parseDuration:function(E){if(!/^((\d+:)?\d+:)?\d+$/.test(E)){return null}var D=E.split(":");var C=0;var B=false;while(D.length>0){var A=parseInt(D[0],10);if(B&&A>=60){return null}C=(C*60)+A;D.shift();B=true}return C}});if(typeof (inline)=="undefined"){inline={}}inline.AmazonUrlEditField=inline.AbstractEditField.subclass({initialize:function(A,B,C){this.base(A,B,C);this.grab(this.element,{value:true,select:true,marketplaceHelp:true});this._marketplaceMap={};this.select.select("option").each(function(D){this._marketplaceMap[D.getAttribute("tld")]=D.value}.bind(this));this.originalValue=this.value.value;this.value.observe("keyup",this._handleChange.bind(this));this.value.observe("change",this._handleChange.bind(this));this._generateSpeechBubble();this.mode="url";this.select.hide()},getDelta:function(E){var B=E=="ADD"&&this.required;var C=this.value.value;var A=this.select.value;if(B||this.originalValue!=C){var D;if(this.mode=="url"){D=this._generateAsinDeltaForUrl(C)}else{D=this._generateAsinDelta(C,A)}if(D){return D}else{this._logUnparseableUrl.defer(C);return{kind:"ADD",valid:false,validationMessage:"Please enter a valid Amazon URL or ASIN.",isEmpty:Prototype.emptyFunction}}}else{return null}},_resetValue:function(){this.mode="url";this._hideMarketplaceField();this.value.value=""},_generateAsinDeltaForUrl:function(B){var C=this._parseAsin(B);if(!C){return null}var A=this._getMarketplace(C.tld);if(!A){return null}return this._generateAsinDelta(C.asin,A)},_generateAsinDelta:function(C,A){var B={asinDelta:new inline.AtomicDelta(C),marketplaceDelta:new inline.AtomicDelta(A),kind:"ADD",isEmpty:Prototype.emptyFunction,valid:true,validationMessage:""};return B},_parseAsin:function(A){var B=new RegExp("^\\s*https?://(?:.*\\.)?amazon\\.([a-zA-Z.]+)/[^?]*/(\\w{10})(?:/|/ref=[^?]*)?(?:\\s*$|\\?.*)");var C=B.exec(A);return C?{tld:C[1],asin:C[2]}:null},_getMarketplace:function(A){return this._marketplaceMap[A]},_logUnparseableUrl:function(A){ColumboService.urlParseError(A)},_handleChange:function(B){var A=this.value.value;if(A.length==10&&A.indexOf("http://")==-1){if(this.mode!="asin"){this._showMarketplaceField();this.mode="asin"}}else{if(this.mode!="url"){this._hideMarketplaceField();this.mode="url"}}},_showMarketplaceField:function(){this.value.addClassName("urlOrAsinWithAsin");this.value.removeClassName("urlOrAsinWithUrl");this.select.show();this._showMarketplaceHelp()},_hideMarketplaceField:function(){this.value.removeClassName("urlOrAsinWithAsin");this.value.addClassName("urlOrAsinWithUrl");this.select.hide();this._hideMarketplaceHelp()},_showMarketplaceHelp:function(){var A=this.marketplaceHelp;A.show();setTimeout(function(){(new Effect.Fade(A))},5000)},_hideMarketplaceHelp:function(){this.marketplaceHelp.hide()},_generateSpeechBubble:function(){var A=[1,2,3,4];A=A.map(function(){return new Element("div").setStyle({position:"absolute",height:"1px",lineHeight:"1px",background:"#ffc",borderStyle:"solid",borderColor:"gray",borderWidth:"0 1px",fontSize:0})});A.each(function(C,B){C.setStyle({top:B+"px",right:(15-B)+"px",width:(B*2+1)+"px"});if(B===0){C.setStyle({borderTopWidth:"1px"})}this.marketplaceHelp.insert(C)}.bind(this));this.select.observe("click",this._hideMarketplaceHelp.bind(this))}});if(typeof (inline)=="undefined"){inline={}}inline.FixedSelect=inline.AbstractDeltaComponent.subclass({initialize:function(B,C,A){this.base(B,C);this.entityId=A},getDelta:function(A){if(A=="ADD"){return new inline.AtomicSelectDelta(this.entityId,true,null)}else{return null}},acceptDelta:function(A){},setStateToDisplay:function(){},setStateToEditing:function(){},setStateToSubmitting:function(){}});if(typeof (inline)=="undefined"){inline={}}inline.FixedEnumSelect=inline.AbstractDeltaComponent.subclass({initialize:function(A,C,B){this.base(A,C);this.value=B},getDelta:function(A){if(A=="ADD"){return new inline.AtomicDelta(this.value,true,null,"SELECT")}else{return null}},acceptDelta:function(A){},setStateToDisplay:function(){},setStateToEditing:function(){},setStateToSubmitting:function(){}});if(typeof (inline)=="undefined"){inline={}}inline.ImageMove=inline.EntityEditField.subclass({initialize:function(C,A,D){var B=$(C);B.observe("click",this._onButtonClick.bind(this));this.entityId=A;this.entityType=D;switch(D){case"contributor":this.successCallback=ColumboService.processContributor;break;case"genre":this.successCallback=ColumboService.processGenre;break;default:throw"Cannot move images for entity type "+D}},_onButtonClick:function(){var C=$("entity-main-image");if(C){var B=C.getAttribute("entityid");if(B){var A=C.getAttribute("editid");A=A?A:null;inline.Authentication.doAuthenticated("ImageMove",function(){var D=inline.ComponentFactory.getComponentById(this.entityType+"Modal");D.open(this._onSelection.bind(this,B,A),"Move image","Move this image to",null,false)}.bind(this),Utils.handleError)}}},_onSelection:function(C,A,B,D){if(B&&B.kind=="SELECT"&&B.id!=this.entityId){var E={id:this.entityId,kind:"EDIT",imagesDelta:[{id:C,kind:"EDIT",entityDelta:B}]};this.successCallback(E,null,A,{timeout:AjaxUtils.globalTimeout,callback:this._handleResult.bind(this),warningHandler:Utils.handleError,errorHandler:Utils.handleError})}},_handleResult:function(){window.location.reload(false)}});if(typeof (inline)=="undefined"){inline={}}inline.ImageRemoveOrUnremove=Class.create({initialize:function(D,B,E,A,F){var C=$(D);C.observe("click",this._onButtonClick.bind(this));this.entityId=B;this.entityType=E;this.editionId=A?A:null;this.isRemove=F},_onButtonClick:function(){var E=$("entity-main-image");if(E){var C=E.getAttribute("entityid");var B=E.getAttribute("editid");B=B?B:null;if(C){var F;if(this.editionId){F={id:this.entityId,kind:"EDIT",editionsDelta:[{id:this.editionId,kind:"EDIT",imagesDelta:[{id:C,kind:(this.isRemove?"REMOVE":"UNREMOVE")}]}]}}else{F={id:this.entityId,kind:"EDIT",imagesDelta:[{id:C,kind:(this.isRemove?"REMOVE":"UNREMOVE")}]}}var D=ColumboService.processRelease;if("CONTRIBUTOR"===this.entityType){D=ColumboService.processContributor}else{if("GENRE"===this.entityType){D=ColumboService.processGenre}}inline.Authentication.doAuthenticated("ImageRemoveOrUnremove",function(){var G=inline.ComponentFactory.getComponentById("deleteModal");G.open(function(){return F}.bind(this),D,this._handleResult.bind(this),"Why should this image be "+(this.isRemove?"deleted":"reinstated")+"?",B)}.bind(this),Utils.handleError)}else{var A=inline.ComponentFactory.getComponentById("infoModal");A.open("Cannot "+(this.isRemove?"delete":"reinstate")+" Amazon image","This image comes from an Amazon ASIN and cannot be "+(this.isRemove?"deleted":"reinstated")+". If this image is incorrect, please correct the Amazon ASINs.")}}},_handleResult:function(){window.location.reload(false)}});if(typeof (inline)=="undefined"){inline={}}inline.VideoBlockOrUnblock=Class.create({initialize:function(B,F,E,A,D){var C=$("blockOrUnblockVideo");C.observe("click",this._onButtonClick.bind(this));this.entityId=B;this.videoId=this._nullBlankValue(F);this.videoFeedId=E;this.isBlock=A;this.isRelease=D},_onButtonClick:function(){var D=$("featured-video-flash");if(D){var B=this._nullBlankValue(D.getAttribute("editId"));var F=B||this.videoId?"EDIT":"ADD";var A=null;if(F=="ADD"){A={kind:"EDIT",newStringValue:this.videoFeedId}}var E={id:this.entityId,kind:"EDIT",youTubeVideosDelta:[{id:this.videoId,kind:F,videoIdDelta:A,blockDelta:{kind:"SELECT",newValue:this.isBlock}}]};var C=this.isRelease?ColumboService.processRelease:ColumboService.processContributor;inline.Authentication.doAuthenticated("VideoBlockOrUnblock",function(){var G=inline.ComponentFactory.getComponentById("deleteModal");G.open(function(){return E}.bind(this),C,this._handleResult.bind(this),"Why should this video be "+(this.isBlock?"blocked":"unblocked")+"?",B)}.bind(this),Utils.handleError)}},_nullBlankValue:function(A){return A?A:null},_handleResult:function(){window.location.reload(false)}});if(typeof (inline)=="undefined"){inline={}}inline.ImageModerate=Class.create({initialize:function(F,H,G,E,B){this.moderationId=B;var D=$(F);D.observe("click",this._onAcceptClick.bind(this));var C=$(H);C.observe("click",this._onRejectClick.bind(this));var A=$(G);A.observe("click",this._onInfoClick.bind(this));this.progressIndicator=$(E)},_onAcceptClick:function(){var A=$("entity-main-image");if(!A){return }var B=A.getAttribute("editid");this.progressIndicator.show();ColumboService.acceptEdit(B,this.moderationId,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_onRejectClick:function(){var A=inline.ComponentFactory.getComponentById("moderationReasonModal");A.open(this._doReject.bind(this))},_doReject:function(B,D){var A=$("entity-main-image");if(!A){return }var C=A.getAttribute("editid");this.progressIndicator.show();ColumboService.rejectEdit(C,this.moderationId,B,D,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_onInfoClick:function(){var A=$("entity-main-image");if(!A){return }var B=A.getAttribute("editid");this.progressIndicator.show();ColumboService.getPendingEditInfo(B,{timeout:AjaxUtils.globalTimeout,callback:this._handleInfoSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_handleModerationSuccess:function(B,A){this.progressIndicator.hide();window.location.reload(false)},_handleModerationError:function(B,A){this.progressIndicator.hide();Utils.handleError(B,A)},_handleInfoSuccess:function(A){this.progressIndicator.hide();this._displayInfoMessage.defer(A)},_displayInfoMessage:function(B){var A="";B.each(function(D,C){if(C>0){A+=inline.SubmitWrapper.EDIT_INFO_SEPARATOR}A+=inline.SubmitWrapper.EDIT_INFO_TEMPLATE.evaluate(D)});alert(A)}});if(typeof (inline)=="undefined"){inline={}}inline.VideoModerate=Class.create({initialize:function(F,H,G,E,B){this.moderationId=B;var D=$(F);D.observe("click",this._onAcceptClick.bind(this));var C=$(H);C.observe("click",this._onRejectClick.bind(this));var A=$(G);A.observe("click",this._onInfoClick.bind(this));this.progressIndicator=$(E)},_onAcceptClick:function(){var A=$("featured-video-flash");if(!A){return }var B=A.getAttribute("editid");this.progressIndicator.show();ColumboService.acceptEdit(B,this.moderationId,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_onRejectClick:function(){var A=inline.ComponentFactory.getComponentById("moderationReasonModal");A.open(this._doReject.bind(this))},_doReject:function(B,D){var A=$("featured-video-flash");if(!A){return }var C=A.getAttribute("editid");this.progressIndicator.show();ColumboService.rejectEdit(C,this.moderationId,B,D,{timeout:AjaxUtils.globalTimeout,callback:this._handleModerationSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_onInfoClick:function(){var A=$("featured-video-flash");if(!A){return }var B=A.getAttribute("editid");this.progressIndicator.show();ColumboService.getPendingEditInfo(B,{timeout:AjaxUtils.globalTimeout,callback:this._handleInfoSuccess.bind(this),warningHandler:this._handleModerationError.bind(this),errorHandler:this._handleModerationError.bind(this)})},_handleModerationSuccess:function(B,A){this.progressIndicator.hide();window.location.reload(false)},_handleModerationError:function(B,A){this.progressIndicator.hide();Utils.handleError(B,A)},_handleInfoSuccess:function(A){this.progressIndicator.hide();this._displayInfoMessage.defer(A)},_displayInfoMessage:function(B){var A="";B.each(function(D,C){if(C>0){A+=inline.SubmitWrapper.EDIT_INFO_SEPARATOR}A+=inline.SubmitWrapper.EDIT_INFO_TEMPLATE.evaluate(D)});alert(A)}});if(typeof (inline)=="undefined"){inline={}}inline.EntityDelete=Class.create({initialize:function(C,E,A,B){this.entityId=C;this.submitCallback=A;if(B){this.parentEntityId=B}this.parentEntityId=B;var D=$(E);D.observe("click",this._onDeleteEntityClick.bind(this))},_onDeleteEntityClick:function(){inline.Authentication.doAuthenticated("EntityDelete",function(){var A=inline.ComponentFactory.getComponentById("deleteModal");A.open(function(){if(!this.parentEntityId){return{id:this.entityId,kind:"REMOVE"}}else{return{id:this.parentEntityId,kind:"EDIT",editionsDelta:[{id:this.entityId,kind:"REMOVE"}]}}}.bind(this),this.submitCallback,this.handleDeleteResult.bind(this),"Why should this be deleted?",null)}.bind(this),Utils.handleError)},handleDeleteResult:function(){window.location.reload(false)}});if(typeof (inline)=="undefined"){inline={}}inline.EntityMerge=Class.create({initialize:function(B,D,A){this.entityId=B;this.submitCallback=A;var C=$(D);C.observe("click",this._onMergeEntityClick.bind(this))},_onMergeEntityClick:function(){inline.Authentication.doAuthenticated("EntityMerge",function(){var A=inline.ComponentFactory.getComponentById("mergeModal");A.open(function(){var B={id:null,sourceId:this.entityId,kind:"MERGE"};return B}.bind(this),this.submitCallback,this.handleMergeResult.bind(this),"Choose a page to merge with:",null)}.bind(this),Utils.handleError)},handleMergeResult:function(){window.location.reload(false)}});if(typeof (inline)=="undefined"){inline={}}inline.AddEntityModal=inline.DeltaModal.subclass({initialize:function(A){this.base(A);this.nameEdit=A.down(".name input");this.typeEditRow=A.down(".type");if(this.typeEditRow){this.typeEdit=this.typeEditRow.down("select")}},openAndUpdate:function(G,D,H,B,A,C,I,F,E){if(D&&this.typeEditRow){this.typeEditRow.hide()}this.open(H,B,A,C,I,F,E);if(D&&this.typeEdit){this.typeEdit.childElements().each(function(J){if(J.value==D){J.selected="selected"}}.bind(this))}this.nameEdit.value=G}});if(typeof (inline)=="undefined"){inline={}}inline.AddReleaseModal=inline.AddEntityModal.subclass({initialize:function(A){this.base(A)},beforeOpen:function(){var A=this.element.down(".artist .value");if(A&&A.component){var B=A.component;B.setStateToDisplay();B.setStateToEditing()}}});if(typeof (inline)=="undefined"){inline={}}inline.AddEditionModal=inline.DeltaModal.subclass({initialize:function(B,A){this.base(B);this.editionId=A;B.select(".expander input").each(function(C){C.observe("click",function(F){var E=Event.element(F);var H=E.up(".expander");var D=H.className.replace("expander ","").split("-").without("expand");var G=false;D.each(function(J){var I=B.down("."+J);I.toggle();G=I.visible()})})})},getDelta:function(){var E=this.components[0].getDelta(null);var A=E.editionsDelta[0];A.sourceId=this.editionId;var B=A.publicationsDelta[0];if(!B||!B.dateDelta){delete A.publicationsDelta}var D=A.creditsDelta[0].contributorDelta;if(!D||(D.kind!="ADD"&&!D.id)){delete A.creditsDelta}var C=A.asinsDelta[0];if(!C||(C.kind!="ADD"&&!C.id)){delete A.asinsDelta}return E},beforeOpen:function(){this.element.select("input.checkbox").each(function(A){A.checked=false});this.element.select(".expandable").each(function(A){A.hide()})}});if(typeof (inline)=="undefined"){inline={}}inline.ModerationReasonModal=inline.AbstractModal.subclass({initialize:function(A){this.base(A);this.grab(this.element,{content:{reason:true,comment:true,textStatus:true,errors:true,commands:{okButton:true,closeButton:true,cancelButton:true,spinner:true}}});FormUtils.checkLength(this.comment,this.textStatus,256);this.okButton.observe("click",this._onOkClick.bind(this));this.cancelButton.observe("click",this._onCancelClick.bind(this));this.closeButton.observe("click",this._onCancelClick.bind(this))},open:function(B,A){this.moderationCallback=B;this.cancelCallback=A;this.comment.value="";this.reason.selectedIndex=0;FormUtils.resetLength(this.comment);this.spinner.hide();this.modal.open()},_onOkClick:function(){this.spinner.show();this.moderationCallback(this.reason.value,this.comment.value);this.modal.close()},_onCancelClick:function(){if(this.cancelCallback){this.cancelCallback()}this.modal.close()}});ComponentUtils.afterLoad(ComponentUtils.HIGH_PRIORITY,function(){var A=[$("reject_add"),$("reject_edit_add_edition"),$("reject_merge"),$("reject_remove"),$("reject_edit_remove_edition")].compact();A.each(function(B){B.observe("click",function(E){var D=inline.ComponentFactory.getComponentById("moderationReasonModal");var C=E.findElement("form");E.stop();D.open(function(F,G){C.appendChild(new Element("input",{type:"hidden",name:"reason",value:F}));C.appendChild(new Element("input",{type:"hidden",name:"comment",value:G}));C.appendChild(new Element("input",{type:"hidden",name:"reject",value:"reject"}));C.submit()})})})});if(typeof (inline)=="undefined"){inline={}}inline.ModerationWorkflow={updateModerationWorkflow:function(){var B=$("moderationWorkflow");if(B){var A=$$(".sectionContent .changed",".sectionContent .changed_mine").size()>0;B.className=A?"changed":"unchanged"}}};if(typeof (sectionedit)=="undefined"){sectionedit={}}sectionedit.TitleView=Class.create({initialize:function(C,D,B,A,E){this.element=C;this.entityId=A;this.entityType=D;this.moderationUUID=E;this.sectionName=B.substring(0,1).toUpperCase()+B.substring(1)},edit:function(){this.doRequest("get","/sp/"+this.entityType+"/edit"+this.sectionName+"?"+this.entityType+"Id="+this.entityId,{})},accept:function(){var A={};A.editId=this.element.readAttribute("editId");A.moderationUUID=this.moderationUUID;this.doRequest("post","/sp/"+this.entityType+"/accept"+this.sectionName+"?"+this.entityType+"Id="+this.entityId,A)},reject:function(){var A=inline.ComponentFactory.getComponentById("moderationReasonModal");A.open(this._submitReject.bind(this))},_submitReject:function(A,C){var B={};B.editId=this.element.readAttribute("editId");B.moderationUUID=this.moderationUUID;B.reasonName=A;B.comment=C;this.doRequest("post","/sp/"+this.entityType+"/reject"+this.sectionName+"?"+this.entityType+"Id="+this.entityId,B)},info:function(){var A={};A.editId=this.element.readAttribute("editId");this.doRequest("get","/sp/"+this.entityType+"/info"+this.sectionName+"?"+this.entityType+"Id="+this.entityId,A)},doRequest:function(C,A,B){inline.EditManager.getInstance().deactivateHovers();(new Ajax.Request(A,{method:C,parameters:B,onComplete:this._handleRequestComplete,onFailure:Utils.handleError,onException:Utils.handleError,requestTimeout:AjaxUtils.globalTimeout0}))},_handleRequestComplete:function(){inline.EditManager.getInstance().activateHovers();inline.ModerationWorkflow.updateModerationWorkflow()},handleAction:function(A){switch(A){case"edit":this.edit();break;case"accept":this.accept();break;case"reject":this.reject();break;case"info":this.info();break}}});sectionedit.TitleView.forElement=function(C,B,D,A,E){C.component=new sectionedit.TitleView(C,B,D,A,E)};if(typeof (sectionedit)=="undefined"){sectionedit={}}sectionedit.TitleEdit=Class.create({variousArtistsId:1,initialize:function(C,A,D,B){this.element=C;this.entityId=A;this.entityType=D;this.entityName=B;this.modal=inline.ComponentFactory.getComponentById("contributorModal");this.addContributorLink=this.element.down(".addContributor");this.addContributorLink.observe("click",this.addContributor.bind(this));this.variousArtistsCheckbox=this.element.down(".variousArtistsCheckbox");this.okButton=this.element.down(".okButton");this.okButton.observe("click",this.submitEdit.bind(this,true));this.cancelButton=this.element.down(".cancelButton");this.cancelButton.observe("click",this.submitEdit.bind(this,false));this.debugButton=this.element.down(".debugButton");if(this.debugButton){this.debugButton.observe("click",this.debug.bind(this))}this.spinner=this.element.down(".spinner");this.comment=this.element.down(".comment");this.commentField=this.element.down(".commentField");this._setupCommentText(this.commentField);this.showCommentLink=this.element.down(".showCommentLink");this.showCommentLink.observe("click",this._showComment.bind(this));this.generalError=$("editTitle_general_error");this.name=$("name");this.contributorListDisplay=this.element.down(".contributorListDisplay");this.setStateToEditing()},update:function(){this._updateContributorListDisplay()},submitEdit:function(A,B){B.stop();var C={};if(A){C={changes:this._generateChangesJSON()}}this.setStateToSubmitting();(new Ajax.Request("/sp/"+this.entityType+"/editTitle?"+this.entityType+"Id="+this.entityId,{method:"post",parameters:C,onComplete:function(){if(this.error){this.setStateToEditing()}else{this.setStateToDisplay()}}.bind(this),onFailure:this._handleError.bind(this),onException:this._handleError.bind(this)}))},debug:function(A){A.stop();this.generalError.insert({after:new Element("div").update(this._generateChangesJSON())})},_generateChangesJSON:function(){var A=$H();A.set("name",this.name.value);var C=this.contributorList.map(function(D){if(!D.deleted){return D.id}});A.set("creators",C);var B=(this.commentField.value==this.commentField.defaultValue?"":this.commentField.value);A.set("comment",B);return A.toJSON()},addContributor:function(A){A.stop();this.modal.setTypes("person,group,unknown");this.modal.setCreateEntityImmediately(true);this.modal.setSearchPhrase("");this.modal.open(this._handleAddContributorResult.bind(this),"Who?",this.entityName+" was by...")},_handleAddContributorResult:function(B,A){this._addContributor(A.entityName,B.id)},_addContributor:function(A,C){var B=this.contributorList.select(function(D){return D.id==C});if(B.size()>0){B.each(function(D){if(D.deleted){D.deleted=false}})}else{this._addContributorToList(A,C)}this._updateContributorListDisplay()},removeContributor:function(A,C){C.stop();var B=A.up(".contributor");this._removeContributor(B.contributorId)},_removeContributor:function(B){var A=this.contributorList.select(function(C){return C.id==B});A.each(function(C){if(C.added){this.contributorList=this.contributorList.without(C)}else{C.deleted=true}}.bind(this));this._updateContributorListDisplay()},unremoveContributor:function(B,D){D.stop();var C=B.up(".contributor");var E=C.contributorId;var A=this.contributorList.select(function(F){return F.id==E});A.each(function(F){F.deleted=false});this._updateContributorListDisplay()},setVariousArtists:function(A){this._addContributor("Various Artists",this.variousArtistsId)},clearVariousArtists:function(A){this._removeContributor(this.variousArtistsId)},_handleError:function(A){this.setStateToEditing();this.generalError.update(Utils.getErrorMessage(A));this.generalError.show()},acceptError:function(C,A){var B;if(!A){B=this.generalError}else{B=$(A)}B.update(C);B.show();this.error=true},_updateContributorListDisplay:function(){this.contributorListDisplay.update();if(this.contributorList.length!==0){this.contributorList.each(function(D){var B="contributor"+(D.deleted?" deleted":"")+(D.added?" added":"");var C=new Element("div",{"class":B});C.contributorId=D.id;C.insert(new Element("span",{"class":"contributorName"}).update(D.name+" "));var A=new Element("a",{href:"#","class":"nonNav removeContributor"}).update(D.deleted?"(undo)":"(remove)");C.insert(A);this.contributorListDisplay.insert(C);this._addRemoveOrUnremoveObserver(A)}.bind(this))}else{this.contributorListDisplay.insert(new Element("div",{"class":"unknown"}).update("unknown artist"))}this._setupVariousArtistsCheckbox(this.variousArtistsCheckbox)},_addRemoveOrUnremoveObserver:function(A){if(!A.up(".contributor").hasClassName("deleted")){this._addRemoveObserver(A)}else{this._addUnremoveObserver(A)}},_addRemoveObserver:function(A){if(A.observer){A.stopObserving("click",A.observer)}A.observer=this.removeContributor.bind(this,A);A.observe("click",A.observer)},_addUnremoveObserver:function(A){if(A.observer){A.stopObserving("click",A.observer)}A.observer=this.unremoveContributor.bind(this,A);A.observe("click",A.observer)},_setupVariousArtistsCheckbox:function(B){if(B.observer){B.stopObserving("click",B.observer)}var A=this.contributorList.any(function(C){return(C.id==this.variousArtistsId)&&(!C.deleted)}.bind(this));if(!A){B.observer=this.setVariousArtists.bind(this);B.checked=false}else{B.observer=this.clearVariousArtists.bind(this);B.checked=true}B.observe("click",B.observer)},_setupCommentText:function(A){FormUtils.defaultText(A,"Enter an explanation or cite a source...")},_showComment:function(A){A.stop();this.comment.show()},_addContributorToList:function(A,B){this.contributorList.push({name:A,id:B,added:true,deleted:false})},setStateToDisplay:function(){inline.EditManager.SINGLETON.activateHovers();inline.ModerationWorkflow.updateModerationWorkflow()},setStateToEditing:function(){inline.EditManager.SINGLETON.deactivateHovers();this.okButton.disabled=false;this.cancelButton.disabled=false;this.spinner.hide()},setStateToSubmitting:function(){this.okButton.disabled=true;this.cancelButton.disabled=true;this.spinner.show();this.generalError.hide();this.error=false}});sectionedit.TitleEdit.forElement=function(C,A,D,B){C.component=new sectionedit.TitleEdit(C,A,D,B)};
