/******************************************************************
 * JAWJS.FORM.FieldCounter - Counter module for formfield(s)
 * Copyright (c) Ja-Web.com
 ******************************************************************/

JAWJS.registerNS("JAWJS.FORM");JAWJS.FORM.FieldCounter=function(userConfig){var config={sRefId:"",sCounterId:"",sCounterTitleAttr:"",sCounterClass:"",sCounterMaxClass:"",iMax:0,bCounterStop:false,sJsSpecialClass:"js-enabled",sJsSpecialInsertId:""};JAWJS.TOOLS.setUserConfig(config,userConfig);this.getConfigOpt=function(userConfig){return JAWJS.TOOLS.getConfig(config,userConfig);};this.getConfigObj=function(){var oConfig=config;return oConfig;};};JAWJS.FORM.FieldCounter.prototype={init:function(){_this=this;if(!JAWJS.DOM.get(this.getConfigOpt("sRefId"))||!this.getConfigOpt("sCounterId")){return;}
JAWJS.DOM.jsSpecial(this.getConfigOpt("sJsSpecialInsertId"),this.getConfigOpt("sJsSpecialClass"));this.initCounter();},initCounter:function(){var dom=JAWJS.DOM,get=JAWJS.DOM.get,config=this.getConfigOpt;var cntTitle,cntEl,cntSpanEl,cntSpanMaxEl,cntRefObj=get(config("sRefId"));if((cntRefObj.type==='textarea'||cntRefObj.type!=='text')&&(cntRefObj.type==='text'||cntRefObj.type!=='textarea')){return;}
cntTitle=(config("iMax")>0)?config("sCounterTitleAttr")+config("iMax"):config("sCounterTitleAttr");cntEl=dom.create('div','',{title:cntTitle,id:config("sCounterId"),className:config("sCounterClass")});cntSpanEl=dom.create('span','0');dom.add(cntSpanEl,cntEl);if(config("iMax")>0){cntSpanMaxEl=dom.create('span',' / '+config("iMax"));dom.add(cntSpanMaxEl,cntEl);}
dom.insertAfter(cntEl,cntRefObj);cntRefObj.onkeyup=cntRefObj.onchange=cntRefObj.onblur=cntRefObj.onfocus=function(){var lenNow=this.value.length,spanC;spanC=get(config("sCounterId")).getElementsByTagName("span")[0];if(config("iMax")){if(lenNow>config("iMax")){spanC.className=config("sCounterMaxClass");if(config("bCounterStop")===true){this.value=this.value.substring(0,config("iMax"))}else{dom.firstCh(spanC).nodeValue=lenNow}}else{spanC.className='';dom.firstCh(spanC).nodeValue=lenNow;}}else{spanC.className='';dom.firstCh(spanC).nodeValue=lenNow;}};cntRefObj=null,cntEl=null,cntSpanEl=null,cntSpanMaxEl=null;}};