
var Poplist=Class.create(Demands,{initialize:function($super,options){this.options={};this.loadButtons=[];this.addButtons=[];this.removeButtons=[];this.options.poplistId=options.poplistId||'poplist';this.options.addButtonClass=options.addButtonClass||'poplistAdd';this.options.removeButtonClass=options.removeButtonClass||'poplistRemove';this.options.loadButtonClass=options.loadButtonClass||'poplistLoad';this.options.poplistUrl=options.poplistUrl||'my-poplist/';this.setLoadButtons();this.setAddButtons();this.setRemoveButtons();this.poplist=$(this.options.poplistId);},setLoadButtons:function(){this.loadButtons=$$('.'+this.options.loadButtonClass);for(var i=0;i<this.loadButtons.length;i++){Event.observe($(this.loadButtons[i]),'click',this.loadPoplist.bindAsEventListener(this));}},setAddButtons:function(){this.addButtons=$$('.'+this.options.addButtonClass);for(var i=0;i<this.addButtons.length;i++){Event.observe($(this.addButtons[i]),'click',this.add.bindAsEventListener(this));}},setRemoveButtons:function(){this.removeButtons=$$('.'+this.options.removeButtonClass);for(var i=0;i<this.removeButtons.length;i++){Event.observe($(this.removeButtons[i]),'click',this.remove.bindAsEventListener(this));}},afterLoadPoplist:function(response){Element.update(poplist.poplist,response.responseText);poplist.setRemoveButtons();poplist.setLoadButtons();var li=poplist.poplist.getElementsByTagName('LI')
if(li[0].id){new Effect.Highlight(li[0].id);}else{new Effect.Highlight(poplist.poplist);}
demands.endLoading();},loadPoplist:function(event){var element=event.findElement('A');var path=element.toString();if(urlRoot=='/'){if(path.indexOf('?')>0){url=path.replace('/?','/poplist/?');}else{url+='poplist/';}}else{var newUrlRoot=urlRoot+'poplist/';url=path.replace(urlRoot,newUrlRoot);}
this.request(url,'',this.afterLoadPoplist);event.stop();},load:function(){this.request(urlRoot+this.options.poplistUrl,'',this.afterLoadPoplist);},afterAddDemand:function(response){var json=response.responseText.evalJSON();if(json.status){poplist.load();}else{demands.endLoading();if(json.form){demands.disableWindow();demands.openPopup();demands.setPopupContent(json.form);}else{alert(json.message);}}},afterRemoveDemand:function(response){poplist.afterAddDemand(response);},add:function(event){var element=event.findElement('A');var path=element.toString();this.request(path,'',this.afterAddDemand);event.stop();},remove:function(event){var element=event.findElement('A');var path=element.toString();this.request(path,'',this.afterRemoveDemand);event.stop();}});