"/* Copyright: InteRiders <http://interiders.com/> - Distributed under MIT - Keep this message! */";Jamendo.classes.ResizableTextbox=Class.create({options:$H({min:5,max:500,step:10}),initialize:function(A,C){C=this.options.merge(C);var B=parseInt(A.offsetWidth);$(A).observe("keypress",function(){var D=C.get("step")*$F(this).length;if(D>Math.max(C.get("min"),B)&&D<C.get("max")){this.setStyle({"width":D+"px"})}})}});Jamendo.classes.ManagedTextBox=Class.create({options:$H({className:"jamform_managedtext_",id:"Jamendo_ManagedTextBox_"+Math.random()+"_",removeButtons:true,onFocus:Prototype.emptyFunction,onBlur:Prototype.emptyFunction,onKeydown:Prototype.emptyFunction,onKeyup:Prototype.emptyFunction,onBoxadd:Prototype.emptyFunction,onBoxdel:Prototype.emptyFunction,autoTransfer:true,splitters:[",",";","+","/"]}),initialize:function(A,B){this.options.update(B);this.element=$(A).hide();this.bits=$H({});this.bitcount=0;this.current=false;this.holder=new Element("ul",{"class":this.options.get("className")+"holder","id":this.options.get("id")+"holder"});this.maininput=this.createInput({"class":this.options.get("className")+"maininput"});var C=new Element("div",{"class":this.options.get("className")+"parent","id":this.options.get("id")+"parent"});this.element.insert({"before":C.insert(this.holder).insert(new Element("div",{"class":"spacer"}))});C.observe("click",function(D){D.stop();this.focus()}.bind(this));this.blurSwitch=new Jamendo.DelayedSwitch(this.blur.bind(this,true),false,100);this.maininput.observe("focus",function(D){D.stop();this.focus(true)}.bind(this));this.maininput.observe("blur",function(D){D.stop();this.blurSwitch.on()}.bind(this))},getValue:function(){return this.element.value},setValue:function(A){this.element._value=A;this.element.value=A.toJSON()},focus:function(A){this.blurSwitch.off();if(!A){this.maininput.focus()}this.options.get("onFocus").bind(this)()},blur:function(A){if(!A){this.maininput.blur()}if(this.options.get("autoTransfer")){this.transfer()}this.options.get("onBlur").bind(this)()},createInput:function(B){var A=new Element("li",{"class":this.options.get("className")+"input"});var C=new Element("input",Object.extend(B,{"type":"text"}));C.observe("keydown",function(D){if(this.options.get("onKeydown").bind(this)(D)){return }switch(D.keyCode){case Event.KEY_BACKSPACE:if(this.maininput.value){break}this.removeLastBox();break;case Event.KEY_TAB:if(!this.maininput.value){break}this.transfer();D.stop();break}}.bind(this));C.observe("keyup",function(D){if(!this.maininput.value.length){return }if(this.options.get("onKeyup").bind(this)(D)){return }this.options.get("splitters").each(function(E){while(function(){var G=this.maininput.value;if(G.indexOf(E)<0){return false}this.maininput.value=G.substring(G.indexOf(E)+1);var F=G.substring(0,G.indexOf(E));if(F.strip()){this.addBox({"name":F,"origin":"textboxlist"})}return true}.bind(this)()){}},this)}.bind(this));A.insert(C);this.holder.insert(A);(function(){new Jamendo.classes.ResizableTextbox(C)}).delay(0.1);return C},transfer:function(){var A=this.maininput.value;if(!A.strip()){return }this.maininput.value="";this.addBox({"name":A})},createBox:function(D,E,B){var C=new Element("li",B).addClassName(this.options.get("className")+"box").update(E);this.maininput.up().insert({"before":C});if(this.options.get("removeButtons")){var A=new Element("a",{"href":"#","class":this.options.get("className")+"closebutton"});A.observe("click",function(F){F.stop();this.removeBox(D);this.focus()}.bind(this));C.insert(A)}return C},addBox:function(B){if(!this.options.get("onBoxadd").bind(this)(B)){var C=++this.bitcount;var A=this.createBox(C,B.name,{});A._bitNo=C;this.bits.set(C,{"value":B,"box":A});this.updateValue();return A._bitNo}this.updateValue()},addBoxes:function(D){var B=(this.bits.size()==0);if(!B){var A=this.bits.pluck("value")}var C=D.map(function(F){if((B||!this.options.get("onBoxesadd").bind(this)(F,A))&&F){var G=++this.bitcount;var E=this.createBox(G,F.name,{});E._bitNo=G;this.bits.set(G,{"value":F,"box":E})}return[F.id,G]}.bind(this));if(!B){A=null;B=null}this.updateValue();return C},updateValue:function(){this.setValue(this.bits.values().pluck("value").concat({"name":this.maininput.value}))},removeBox:function(A){this.options.get("onBoxdel").bind(this)(A);this.bits.get(A)["box"].remove();this.bits.unset(A);this.updateValue();if(this.options.get("postOnBoxdel")){this.options.get("postOnBoxdel").bind(this)(A)}},removeBoxes:function(A){A.each(function(B){this.options.get("onBoxdel").bind(this)(B);this.bits.get(B)["box"].remove();this.bits.unset(B)}.bind(this));this.updateValue()},removeLastBox:function(){var A=this.bits.keys();if(!A.length){return }this.removeBox(A[A.length-1])}});Jamendo.formElements.managedtext={"onload":function(K,C,A,H,J,F,I,G,B,D){var L=$(J);L._ac={"shown":false};L._managed=new Jamendo.classes.ManagedTextBox(L,{id:J+"_mtb_",splitters:K,onFocus:function(){$$("#"+J+"-container .jamform_managedtext_default").invoke("hide");G(L)},onBlur:function(E){if(F!=""&&this.bits.size()==0){$$("#"+J+"-container .jamform_managedtext_default").invoke("show")}B(L)},onKeyup:function(){if(this.maininput.value.indexOf("@")>0){this.options.set("splitters",C)}else{this.options.set("splitters",K)}},onKeydown:function(E){if(L._ac.shown&&E.keyCode==Event.KEY_TAB){if(this.maininput.value!=""){E.stop()}return true}},onBoxadd:function(E){if(L._ac){L._ac.hideMenu(true)}var M=true;this.bits.values().pluck("value").each(function(N){if(A&&N.id&&N.id==E.id){M=false}else{if(H&&N.name&&N.name.toLowerCase()==E.name.toLowerCase()){M=false}}});$$("#"+J+"-container .jamform_managedtext_default").invoke("hide");return !M}});L.value="";$(J+"-isjson").value="1";$(J+"-container").insert(new Element("div",{"class":"jamform_managedtext_default"}).update(F).observe("click",function(){L._managed.focus()}));L._managed.updateValue();if(I){L._ac=new Jamendo.classes.Autocompleter({"name":J+"-ac","input":L._managed.maininput,"dataSource":"remote","formatItem":function(E){return E[0]},"fixMenu":function(E){E.clonePosition(L._managed.holder,{"offsetTop":$(J+"_mtb_parent").getHeight()-8})},"autoSelect":I.autoSelect,"cacheGroup":I.cacheGroup,"categs":I.categs,"selectCallback":function(E,M){L._managed.addBox({"id":E[1],"name":E[0],"origin":"autocompleter"});L._managed.maininput.value=""}})}D(L)}}