if(undefined==Dubli.Lib){Dubli.Lib={}}if(undefined==Dubli.Lib.Forms){Dubli.Lib.Forms={}}if(undefined==Dubli.Auction){Dubli.Auction={}}if(undefined==Dubli.Auction.Forms){Dubli.Auction.Forms={}}Dubli.Auction.Forms={signupFormSubmitted:false};Dubli.Auction.Forms.checkSignup=function(){var d=document.registerform,c=Dubli.Auction.Forms,b=Dubli.Auction.Forms.checkForInvalidChars,e=JSMsg,a=POPup;if(b(d.f_username)){a.info(e.getMsg("profile",0));return false}if(b(d.f_firstname)){a.info(e.getMsg("profile",1));return false}if(b(d.f_lastname)){a.info(e.getMsg("profile",10));return false}if(d.f_gtc.checked!=true){a.info(e.getMsg("profile",8));return false}if(c.signupFormSubmitted==true){a.info(e.getMsg("profile",9));return false}c.signupFormSubmitted=true;return true};Dubli.Auction.Forms.checkProfile=function(){f=document.profileform,cFIC=Dubli.Auction.Forms.checkForInvalidChars,M=JSMsg,P=POPup;if(cFIC(f.f_username)){P.info(M.getMsg("profile",0));return false}if(cFIC(f.f_city)){P.info(M.getMsg("profile",3));return false}if(cFIC(f.f_street_address)){P.info(M.getMsg("profile",4));return false}if(cFIC(f.f_address2)){P.info(M.getMsg("profile",5));return false}if(cFIC(f.f_postcode)){P.info(M.getMsg("profile",6));return false}if(cFIC(f.f_state)){P.info(M.getMsg("profile",7));return false}return true};Dubli.Auction.Forms.ajaxFieldValidator={fieldname:false,check:function(c,d,a){this.fieldname=c;params="vField="+this.fieldname+"&";params+=this.fieldname+"="+d;var b=DblCfg.get("ajaxFieldValidatorURL");if(null==b){return}a=(a)?a:this.fieldname;obj=$(this.fieldname+"_error");obj.innerHTML="";obj.setStyle("display","none");req=loadXMLDoc();if(req!=null){req.onreadystatechange=ajaxFieldValidator.processValidate;req.open("POST",b,true);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");req.send(params)}},processValidate:function(){if(req.readyState==4&&req.status==200){obj=$(ajaxFieldValidator.fieldname+"_error");if(req.responseText!="TRUE"){obj.innerHTML=req.responseText;obj.setStyle("display","block")}else{obj.setStyle("display","none")}}}};var ajaxFieldValidator=Dubli.Auction.Forms.ajaxFieldValidator;Dubli.Auction.Forms.ajaxFormItem=new Class({Implements:[Events,Options],options:{id:"",fields:[],type:["invalidChars"],optional:false,base:false,jsonValidation:false,onSuccess:function(){},onFailure:function(){},minLength:-1,maxLength:-1,minStrength:-1,failMessage:"",validateEach:true,failClass:"",caseSensitive:true,successClass:"",status:"invalid"},initialize:function(c){this.setOptions(c);if(this.options.fields==undefined){return false}if(this.options.fields.length&&this.options.fields.length<1){return}if(instanceOf(this.options.fields,String)||instanceOf(this.options.fields,Element)){this.options.fields=$$(this.options.fields)}else{if(instanceOf(this.options.fields,Array)){}else{return false}}var b=[];this.type=(this.options.fields[0].get("tag")=="input")?this.options.fields[0].getAttribute("type").toLowerCase():"select";if(!["checkbox","radio","select"].contains(this.type)){b.push("invalidChars");if(this.options.fields.length>1){b.push("match")}}if(instanceOf(this.options.type,String)){if(this.options.type.indexOf(",")){this.options.type=b.combine(this.options.type.split(","))}else{this.options.type=b.include(this.options.type)}}else{if(instanceOf(this.options.type,Array)){this.options.type=b.combine(this.options.type)}else{return false}}this.count=this.options.fields.length;this.changed=[];this.valid=[];this.reason=[];this.old={};this.result=false;for(var a=0;a<this.count;a++){this.changed[a]=false;this.valid[a]=undefined;this.options.fields[a].addEvent("change",new Function("e","this.setChanged("+a+")").bind(this));if(this.options.type=="checkbox"||this.options.type=="radio"){this.options.fields[a].addEvent("click",function(d){this.isReady()}.bind(this))}else{this.options.fields[a].addEvent("blur",function(d){this.isReady()}.bind(this))}}},AddField:function(a){this.options.fields.push(a);this.changed[this.count]=false;this.valid[this.count]=undefined;if(this.options.type=="checkbox"||this.options.type=="radio"){a.addEvent("click",function(b){this.isReady()}.bind(this))}else{a.addEvent("blur",function(b){this.isReady()}.bind(this))}},DeleteField:function(b){for(var a=0;a<this.count;a++){if(this.options.fields[a]==b){this.options.fields.splice(a,1);this.valid.splice(a,1);this.changed.splice(a,1);this.count--;return true}}return false},setCache:function(b,a){this.old[b]=a},getCache:function(a){return this.old[a]},setChanged:function(b){var a;if(this.options.type=="checkbox"){this.changed[b]=true}else{if(this.options.type=="select"){this.changed[b]=true}else{this.options.fields[b].value=this.options.fields[b].value.trim();if(this.options.fields[b].value==""){this.changed[b]=false;this.reason[b]=false;this.valid[b]=false}else{this.changed[b]=true}}}},isReady:function(){if(this.options.validateEach){this.Validate()}else{if(this.allChanged()){this.Validate()}}},allChanged:function(){return this.changed.every(function(a){return a===true})},clean:function(){for(var a=0;a<this.count;a++){if(!(this.options.fields[a])){this.options.fields.slice(a,1);this.results.slice(a,1);this.valid.slice(a,1);this.count--;a--}}},Validate:function(){this.result=false;this.clean();if(this.count==0){this.result=true;return}if(this.type=="checkbox"||this.type=="radio"){this.ValidateCheckBox()}else{if(this.type=="select"){this.ValidateSelect()}else{this.ValidateText()}}if(this.allChanged()){if(this.result){this.Succeeded()}else{this.Failed()}}else{if(this.result==false){this.fireEvent("failure",this)}}this.Update()},ValidateCheckBox:function(){if(this.options.optional){this.result=true;return}else{this.result=this.options.fields.every(function(b){return b.checked==true});for(var a=0;a<this.count;a++){this.valid[a]=this.result}}},ValidateSelect:function(){if(this.options.optional){this.result=true;return}else{this.result=this.options.fields.every(function(a){return a.selectedIndex!=0})}},ValidateText:function(){if(this.options.fields.every(function(l){l.value=l.value.trim();return l.value==""})){this.result=(this.options.optional)?true:false;return}var b=Dubli.Auction.Forms.checkForInvalidChars,k=Dubli.Auction.Forms.checkForInvalidEmail,j=Dubli.Auction.Forms.checkPasswordValue,g=JSMsg;var h,a=true,d,e;d=this.options.fields[0].value;if(this.options.caseSensitive===false){d=d.toLowerCase()}for(h=0;h<this.count;h++){this.valid[h]=true;this.reason[h]=false;if(this.changed[h]==false&&this.options.validateEach!==true&&this.options.fields[h].value!=""){this.valid[h]=false;continue}if(this.options.minLength>0&&this.options.fields[h].value.length<this.options.minLength){this.valid[h]=false}if(this.options.maxLength>0&&this.options.fields[h].value.length>this.options.maxLength&&this.valid[h]){this.valid[h]=false}if(!this.valid[h]){this.reason[h]="length"}if(this.options.type.contains("match")&&this.valid[h]){if(h>0){e=this.options.fields[h].value;if(this.options.caseSensitive===false){e=e.toLowerCase()}this.valid[h]=(e==d);if(!this.valid[h]){this.reason[h]="match"}}}if(this.options.type.contains("invalidChars")&&this.valid[h]){this.valid[h]=(!b(this.options.fields[h]));if(!this.valid[h]){this.reason[h]="invalid"}}if(this.options.type.contains("email")&&this.valid[h]){this.valid[h]=(!k(this.options.fields[h]));if(!this.valid[h]){this.reason[h]="email"}}if(this.options.type.contains("password")&&this.valid[h]){if(h>0){continue}var c=j(this.options.fields[h].value);this.options.fields[h].strength=c;this.valid[h]=(c>this.options.minStrength)?true:false;if(!this.valid[h]){this.reason[h]="strength"}}a=a&&this.valid[h]}this.result=a},setInvalid:function(){for(var a=0;a<this.count;a++){this.valid[a]=false}},Succeeded:function(b){if(b===undefined&&this.allChanged()){if(this.options.jsonValidation==true&&this.getCache(this.getValue())==undefined){this.fireEvent("success",this);return}else{this.fireEvent("success",this)}return}if(b){for(var a=0;a<this.count;a++){this.valid[a]=b;this.reason[a]=false;this.changed[a]=false}}},setValidating:function(){for(var a=0;a<this.count;a++){this.valid[a]="validating"}},Failed:function(b){if(b){this.reason[0]=b;for(var a=0;a<this.count;a++){this.changed[a]=false;this.valid[a]=false}}this.fireEvent("failure",this)},Busy:function(b){for(var a=0;a<fields.length;a++){if(b){this.options.fields[a].setProperty("disabled",state)}else{this.options.fields[a].removeProperty("disabled")}}},Update:function(){var c,b;for(var a=0;a<this.count;a++){c="";if(this.changed[a]){if(this.valid[a]!="validating"){c=(this.valid[a])?this.options.successClass:this.options.failClass}else{c="validating"}}else{if(this.reason[a]!=undefined){c=(this.valid[a])?this.options.successClass:this.options.failClass}}b=(this.valid[a]=="validating")?true:false;this.options.fields[a].set({disabled:b}).removeClass(this.options.successClass).removeClass(this.options.failClass).addClass(c)}},getTypes:function(a){return["invalidChars","match","email","password"]},getValue:function(){return this.options.fields[0].value}});var ajaxFormItem=Dubli.Auction.Forms.ajaxFormItem;Dubli.Auction.Forms.ajaxFormValidator=new Class({Implements:[Events,Options],options:{target:null,result:null,submitter:null,strengthShow:null,successClass:"",failureClass:"",resultFailure:"failure",urlValidation:"",urlSubmittal:"",fuseaction:"",paramString:"vField={which}&value={value}",onSuccess:function(){},onFailure:function(){},onSubmit:function(){},onResponse:function(){}},initialize:function(c){this.busy=false;this.setOptions(c);this.items={};this.types={};this.ajax={};this.old={};this.options.target=(instanceOf(this.options.target,String))?$(this.options.target):this.options.target;this.fields=this.options.target.getElements("input[type='text'],input[type='password'],input[type='radio'],input[type='checkbox'],input[type='email'],select");this.fields.push($$('input[name="f_sDPSC"]')[0]);var a,b;for(a=0;a<this.fields.length;a++){if(this.fields[a].rel=="ignore"){continue}b=this.fields[a].name;if(this.items[b]==undefined){this.items[b]=[];this.types[b]=this.fields[a].getAttribute("type")}this.items[b].push(this.fields[a])}if(this.options.submitter){this.options.submitter.addEvent("click",function(){this.submit()}.bind(this));this.request=new Request.JSON({url:this.options.urlSubmittal,method:"post",noCache:true,data:{fuseaction:this.options.fuseaction},onSuccess:function(d){this.fireEvent("response",[true,d])}.bind(this),onFailure:function(e,d){this.fireEvent("response",[false,d])}.bind(this)},true)}this.setup()},AddItem:function(c){this.fields.push(c);var a=c.name;var b=c.type;if(this.items[a]==undefined){this.items[a]=[];this.types[a]=b}else{this.items[a].addField(c)}},submit:function(){if(this.busy){return}for(var a in this.items){if(this.items[a].result==false||this.items[a].options.optional==true){this.options.result.set({html:JSMsg.getError("validation","incomplete"),"class":"failure"});return}}this.busy=true;this.fireEvent("submit",this.items);if(!this.options.urlSubmittal){return}var c={};for(var b in this.items){c[b]=this.items[b].getValue()}c.fuseaction=this.options.fuseaction;this.request.send({data:c})},IsValid:function(){for(n in this.items){if(this.items[n].result!=true){return false}}return true},setup:function(){var a,g;for(g in this.items){if(this.types[g]=="hidden"){this.items[g].getValue=function(){return this[0].value};this.items[g].result=true;this.items[g].options={};this.items[g].options.optional=false;continue}var e={id:g,fields:this.items[g],type:this.types[g],successClass:this.options.successClass,failClass:this.options.failureClass,onSuccess:new Function("obj","this.onItemSuccess('"+g+"');").bind(this),onFailure:new Function("obj","this.onItemFailure('"+g+"');").bind(this)};this.old[g]={};var c=this.items[g][0].getAttribute("rel");if(c){c=c.split(",");for(a=0;a<c.length;a++){c[a]=c[a].split(":");var b=c[a][0];var d=c[a][1];d=(d=="true")?true:(d=="false")?false:d;e[b]=d}}this.items[g]=new Dubli.Auction.Forms.ajaxFormItem(e)}},AjaxVerify:function(e){var c=this.items[e].getValue();var b=this.items[e].getCache(c);if(b==undefined){this.items[e].setCache(c,false);this.items[e].setValidating()}else{if(b===true){this.items[e].Succeeded(true)}else{this.items[e].Failed(b?b:"failed")}this.items[e].Update();return}params=this.options.paramString;params=params.replace(/{which}/g,e);params=params.replace(/{value}/g,this.items[e].getValue());var d=this.options.urlValidation;if(null==d){return}var a=location.href.indexOf("https")!=-1;if(a){d=d.replace("http:","https:")}else{d=d.replace("https:","http:")}this.ajax[e]=loadXMLDoc();if(this.ajax[e]!=null){this.ajax[e].onreadystatechange=new Function("this.ReceivedResponse('"+e+"','"+this.items[e].getValue()+"');").bind(this);this.ajax[e].open("POST",d,true);this.ajax[e].setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.ajax[e].send(params)}},disableAll:function(a){this.fields.set("disabled",(a)?"true":"")},onItemSuccess:function(a){this.options.result.innerHTML="&nbsp;";if(this.items[a].options.jsonValidation){this.AjaxVerify(a)}},onItemFailure:function(e){var b=(this.items[e].options.base)?this.items[e].options.base:e.substring(2,e.length);var a;var d=this.items[e].reason,c;for(a=0;a<d.length;a++){if(d[a]==false){continue}if(["failed","length","match","strength"].contains(d[a])){c=JSMsg.getError(b,d[a])}else{if(d[a]=="email"){c=JSMsg.getError("email","invalid")}else{c=JSMsg.getError(b,d[a])}}this.options.result.set({html:c,"class":this.options.resultFailure});break}},ReceivedResponse:function(b,a){if(this.ajax[b]){if(this.ajax[b].readyState==4&&this.ajax[b].status==200){if(this.ajax[b].responseText==="TRUE"){this.items[b].setCache(a,true);this.items[b].Succeeded(true)}else{this.items[b].setCache(a,this.ajax[b].responseText);this.items[b].Failed(this.ajax[b].responseText)}this.items[b].Update();this.ajax[b]=undefined}else{if(this.ajax[b].readyState==4&&this.ajax[b].status!=200){this.items[b].Failed("failed");this.items[b].Update();this.ajax[b]=undefined}}}}});Dubli.Auction.Forms.QuickRegister=function(g,b,d,e,a){if(!g||!b){return}var c={target:$(g),result:$(b),submitter:$(d),fuseaction:"js.register",successClass:e,failureClass:a,paramString:"vField={which}&{which}={value}",urlValidation:DblCfg.get("ajaxFieldValidatorURL"),urlSubmittal:DblCfg.get("ajaxRegisterURL")};c.onSuccess=function(h){var j=this.options.target;if(h&&h.messages&&h.messages.success){j.set("html",h.messages.success)}};c.onFailure=function(j){this.options.submitter.set("class","buttonBig Bg");this.disableAll(false);if(j.messages){var k="",h=0;for(var h in j.messages){k+=((h>0)?"<br />":"")+j.messages[h];h++}this.options.result.set({html:k,"class":"failure"})}};c.onSubmit=function(){this.disableAll(true);this.options.submitter.set("class","buttonBig Bg BLoading")};c.onResponse=function(h,j){this.busy=false;if(h){this.fireEvent((j&&j.valid)?"success":"failure",j)}else{reason=JSMsg.getMsg("base",0,false);this.fireEvent("failure",reason)}};$(g).validator=new Dubli.Auction.Forms.ajaxFormValidator(c)};Dubli.Auction.Forms.checkForInvalidChars=function(b,a){if(a){if(b.value.match(/[\+\*°\^:;<>\|§\$\'\"%\\&\/\(\)\{\}\]\[~=\?!]/)){return true}}else{if(b.value.match(/[#\+\*°\^:;<>\|§\$\"%\\&\/\(\)\{\}\]\[~=\?!]/)){return true}}return false};Dubli.Auction.Forms.checkPasswordValue=function(b){var a=0,c=5;b=b.trim();if(b.length<1){a=-100}else{if(b.length<13){a=a+(10*b.length)}else{a=a+140}}if(!b.match(/[a-z]/)){a=a-20}if(!b.match(/[A-Z]/)){a=a-20}if(!b.match(/[\d]/)){a=a-20}if(!b.match(/[@!-_�+.,;:_#*%&${}()?�������������]/)){a=a-20}for(i=0;i<b.length-2;i++){if(b.charAt(i)==b.charAt(i+1)&&b.charAt(i)==b.charAt(i+2)){a=a-10}}return a};Dubli.Auction.Forms.checkForInvalidEmail=function(h){var j=h.value.trim();var b=j.indexOf("@");var c=j.lastIndexOf(".");if(j.length<5){return true}if(b==-1){return true}if(c<b||c==-1){return true}if(j.indexOf(" ")!=-1){return true}var a=j.split("@");if(a.length!==2){return true}if(a[0].length<1){return true}if(a[1].length<3){return true}var e=a[1];c=a[1].lastIndexOf(".");var g=e.substring(0,c);var d=e.substring(c,e.length);if(g.length<2){return true}if(d.length<2){return true}return false};Dubli.Auction.Lib.chkCheckoutOverview=function(c,a){c=(c!=undefined)?c:$("frmChkOverview");if(c==null){return}var d=[],b=Dubli.Auction.Forms.checkForInvalidChars,h=JSMsg;getShippingCosts(a);if(b(c.f_firstname)){d.push(h.getMsg("profile",1,false))}if(b(c.f_lastname)){d.push(h.getMsg("profile",2,false))}if(b(c.f_street_address,true)){d.push(h.getMsg("profile",4,false))}if(b(c.f_address2,true)){d.push(h.getMsg("profile",5,false))}if(b(c.f_city)){d.push(h.getMsg("profile",3,false))}if(b(c.f_postcode)){d.push(h.getMsg("profile",6,false))}if(c.f_firstname.value.length<2){d.push(h.getMsg("address",10,false))}if(c.f_lastname.value.length<2){d.push(h.getMsg("address",11,false))}if(c.f_street_address.value.length<4){d.push(h.getMsg("address",12,false))}if(c.f_postcode.value.length<4){d.push(h.getMsg("address",13,false))}if(c.f_city.value.length<4){d.push(h.getMsg("address",14,false))}if(c.f_phonenumber.value.length<4){d.push(h.getMsg("address",18,false))}if(d.length>0){var g="";d.each(function(j,e){g+=j+"<br/>"});POPup.alert(g);return false}else{c.submit()}return true};Dubli.Auction.Forms.checkPassword=function(){var c=document.registerform;if(undefined==c){return}var b=c.f_password.value,a=0;if(undefined==b){return}if(undefined==$("slice0")){return}if(b.length<1){a=-100}if(b.length<10){a=a+((10-b.length)*(-10))}if(!b.match(/[a-z]/)){a=a-20}if(!b.match(/[A-Z]/)){a=a-20}if(!b.match(/[\d]/)){a=a-20}if(!b.match(/[@!-_�+.,;:_#*%&${}()?�������������]/)){a=a-20}for(i=0;i<b.length;i++){if(i<b.length-1){if(b.charAt(i)==b.charAt(i+1)){if(b.charAt(i)==b.charAt(i+2)){a=a-20}}}}imageID=Math.round(10-(a/145*(-10)));for(i=0;i<10;i++){obj=$("slice"+i);if(i<=imageID){obj.setStyle("visibility","visible")}else{obj.setStyle("visibility","hidden")}if(imageID==9){obj.setStyle("visibility","visible")}}$("password_status_low").setStyle("display","none");$("password_status_middle").setStyle("display","none");$("password_status_high").setStyle("display","none");if(imageID<4){$("password_status_low").setStyle("display","inline")}if(imageID>3&&imageID<7){$("password_status_middle").setStyle("display","inline")}if(imageID>6){$("password_status_high").setStyle("display","inline")}};var checkPassword=Dubli.Auction.Forms.checkPassword;Dubli.Auction.Forms.match2password=function(b,a){obj=$("f_password_error");obj.innerHTML="";obj.setStyle("display","none");if(b!=a){obj.innerHTML=JSMsg.getMsg("profile",10,false);obj.setStyle("display","block")}if(b.length<6){obj.innerHTML=JSMsg.getMsg("profile",11,false);obj.setStyle("display","block")}};var match2password=Dubli.Auction.Forms.match2password;Dubli.Auction.Forms=Object.append(Dubli.Auction.Forms,{continue_shipping:true,adm:false});Dubli.Auction.Forms.ShippingCostsUpdPage=function(){var b=(decimal_char!=undefined)?decimal_char:".";var j=Dubli.Auction.Forms;if(req.readyState==4&&req.status==200){var d=req.responseXML.documentElement;var c=d.getElementsByTagName("result")[0].firstChild.data;if(c!="ok"){j.continue_shipping=false}else{j.continue_shipping=true}var h=d.getElementsByTagName("shipping_title")[0].firstChild.data;var g=d.getElementsByTagName("shipping_cost")[0].firstChild.data;var e=d.getElementsByTagName("shipping_float")[0].firstChild.data;var a=parseFloat(e)+parseFloat(auction_costs);if(c!="ok"){h='<font color="red">'+h+"</font>";a=(j.adm==true)?"N/A":'<font color="red">N/A</font>'}else{a=Dubli.Auction.Lib.number_format(a,2,b,"")}$("shippingTitle").innerHTML=h;if(j.adm==true){$("shippingCost").value=e;$("ordersum").value=a}else{$("shippingCost").innerHTML=g;$("ordersum").innerHTML=a}}};Dubli.Auction.Forms.getShippingCosts=function(a){var d=document.checkout_overview;var g=d.f_countries_id[d.f_countries_id.selectedIndex].value;var e=d.f_postcode.value;var b="/?fuseaction=buy.js_getshippingcosts";b+="&cID="+g+"&zip="+e+"&vkp="+a;req=loadXMLDoc();if(req!=null){req.onreadystatechange=Dubli.Auction.Forms.ShippingCostsUpdPage;req.open("GET",b,true);req.setRequestHeader("Content-Type","text/xml");req.send("")}};var getShippingCosts=Dubli.Auction.Forms.getShippingCosts;Dubli.Auction.Forms.getShippingCostsADM=function(a){var d=document.addorder;var g=d.f_Dcountries_id[d.f_Dcountries_id.selectedIndex].value;var e=d.f_Dpostcode.value;var b="/admin/admin.php?fuseaction=orders.js_getshippingcosts";b+="&cID="+g+"&zip="+e+"&vkp="+a;req=loadXMLDoc();adm=true;if(req!=null){req.onreadystatechange=Dubli.Auction.Forms.ShippingCostsUpdPage;req.open("GET",b,true);req.setRequestHeader("Content-Type","text/xml");req.send("")}};Dubli.Lib.Forms.maxTextarea={messages:{statusMsg:"{cur} of {max} characters available.",errorMsg:"You're message has too many characters."},setMessages:function(a,b){return(this.messages[a]=b.toString())},init:function(){this.messages.statusMsg=DblCfg.get("MSGmaxTextareaStatus");this.messages.errorMsg=DblCfg.get("MSGmaxTextareaError");var c=$$(".max");var b=$$(".maxMsg");if(c.length>0){var a;for(a=0;a<c.length;a++){if(typeof b[a]!=undefined){this._extend(c[a],b[a])}}}},getStatus:function(b){var a=b.value.length;if(a<=b.maxChars){return true}else{return false}},_extend:function(b,a){b.maxChars=b.getAttribute("rel")||b.maxLength||255;b.statusDisplayEl=a;b.statusMsg=this.messages.statusMsg.replace(/{max}/g,b.maxChars);var c=b.statusMsg.replace(/{cur}/g,b.maxChars);Dubli.Lib.setInnerHTML(a,c);b.addEvent("keyup",function(){this._changeStatusMessage(b)}.bind(this));this._changeStatusMessage(b)},_changeStatusMessage:function(c){var b=c.value.length;var a=c.maxChars-b;if(!c.statusDisplayEl.removeClass){c.statusDisplayEl=$(c.statusDisplayEl)}if(a>=0){c.statusDisplayEl.removeClass("error");var d=c.statusMsg.replace(/{cur}/g,a);Dubli.Lib.setInnerHTML(c.statusDisplayEl,d)}else{c.statusDisplayEl.addClass("error");var d=this.messages.errorMsg;Dubli.Lib.setInnerHTML(c.statusDisplayEl,d);c.value=c.value.substr(0,c.maxChars);c.scrollTop=c.scrollHeight}}};Dubli.Lib.Forms.Dolly=function(a){if(typeof a!="object"){a={}}this._init(a)};Dubli.Lib.Forms.Dolly.prototype={_init:function(c){this.options={container:c.container||document.body,cloneGroupClassName:c.cloneGroupClassName||"Dolly",addClassName:c.addClassName||"dollyAdd",delClassName:c.delClassName||"dollyDel",btnTag:c.btnTag||"a",maxSets:c.maxSets||4,minSets:((c.minSets>=0)?c.minSets:1),fnOnCopyComplete:c.fnOnCopyComplete||function(){},fnOnDelStart:c.fnOnCopyComplete||function(){},fnOnDelComplete:c.fnOnDelComplete||function(){}};this.container=$(this.options.container);this.cloneCounter=0;this.copy=null;var a=this.container.getElements("."+this.options.cloneGroupClassName);this.cloneCounter=a.length;this.copy=a[0].clone();var b=this;this.container.getElements("."+this.options.addClassName).each(function(e,d){e.addEvent("click",function(){b._add.call(b)})});this.container.getElements("."+this.options.delClassName).each(function(e,d){e.addEvent("click",function(){b._del.call(b)})})},_getLastGrp:function(){var b,a=this.container.getElements("."+this.options.cloneGroupClassName);b=a[a.length-1];return b},_add:function(){if(this.cloneCounter>=this.options.maxSets){return}var a=this.copy.clone();a.inject(this._getLastGrp(),"after");this.options.fnOnCopyComplete(a);this.cloneCounter++},_del:function(){if(this.cloneCounter<=this.options.minSets){return}this.options.fnOnDelStart(this._getLastGrp());this._getLastGrp().dispose();this.options.fnOnDelComplete();this.cloneCounter--}};
