/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/Projects/Packer/
*/

// V:\1.1.007\js\lib\ext-namirial\Ext.ux.Namirial.form.NumberField.js

Ext.ns("Ext.ux");Ext.ns('Ext.ux.Namirial');Ext.ns('Ext.ux.Namirial.form');if(Ext.form.NumberField){Ext.ux.Namirial.form.NumberField=Ext.extend(Ext.form.NumberField,{value:'',originalValue:'',allowZero:false,decimalSeparator:",",decimalSeparatorAliases:".,",thousandsSeparator:'',style:"text-align:right",integerDigits:1,decimalPrecision:-1,validationEvent:'blur',enableKeyEvents:true,changeStyleIfReadOnly:false,asString:false,constructor:function(c){c.autoCreate=c.autoCreate||{tag:'input',maxlength:12};Ext.ux.Namirial.form.NumberField.superclass.constructor.call(this,c);},setReadOnly:function(state){this.readOnly=state;if(!Ext.isEmpty(this.el)){this.el.dom.readOnly=state;this.fireEvent('readOnly',this,state);}},setAllowBlank:function(state){this.allowBlank=state;if(!Ext.isEmpty(this.el)){this.el.dom.allowBlank=state;this.fireEvent('allowBlank',this,state);}},initComponent:function(){this.addEvents('readOnly');if(Ext.isEmpty(this.maskRe)){var allowed='0-9';if(this.allowDecimals){allowed+=this.decimalSeparatorAliases+this.decimalSeparator;}
if(this.allowNegative){allowed+="-";}
this.maskRe=eval('/['+allowed+']/');}
Ext.ux.Namirial.form.NumberField.superclass.initComponent.call(this);this.on({render:function(obj){if(obj.readOnly==true){this.fireEvent('readOnly',obj,true);}}});this.on({'readOnly':function(obj,state){if(state==true){obj._oldTabIndex=obj.el.dom.tabIndex;obj.el.dom.tabIndex=-1;if(this.changeStyleIfReadOnly){obj.el.setOpacity(.6,true);}}else{if(!Ext.isEmpty(obj._oldTabIndex)){obj.el.dom.tabIndex=obj._oldTabIndex;}
if(this.changeStyleIfReadOnly){obj.el.setOpacity(1,true);}}},'keypress':function(obj,event){if(this.allowDecimals==true){for(var index=0,count=this.decimalSeparatorAliases.length;index<count;index++){if(event.getCharCode()==this.decimalSeparatorAliases.charCodeAt(index)){obj.setRawValue(obj.getRawValue()+this.decimalSeparator);event.preventDefault();return;}}}}})},validateValue:function(value){if(value.length<1||value===this.emptyText){if(this.allowBlank){this.clearInvalid();}else{this.markInvalid(this.blankText);return false;}}
if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false;}
if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}
if(this.vtype){var vt=Ext.form.VTypes;if(!vt[this.vtype](value,this)){this.markInvalid(this.vtypeText||vt[this.vtype+'Text']);return false;}}
if(typeof this.validator=="function"){var msg=this.validator(value);if(msg!==true){this.markInvalid(msg);return false;}}
if(this.regex&&!this.regex.test(value)){this.markInvalid(this.regexText);return false;}
var num=this.parseValue(value);if(num<this.minValue){this.markInvalid(String.format(this.minText,this.minValue));return false;}
if(num>this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false;}
return true;},setValue:function(v){v=this.formatValue(v);Ext.form.NumberField.superclass.setValue.call(this,v);},formatValue:function(v){v=typeof v=='number'?v:parseFloat(String(v).replace(this.decimalSeparator,"."));v=String(this.fixDecimal(v));v=isNaN(v)?'':String(v).replace(".",this.decimalSeparator);if(this.integerDigits){v=this.fixInteger(v);}
if(!this.allowZero){if(parseInt(v,10)==0||isNaN(parseInt(v,10))){if(this.rendered){v='';this.setRawValue(0);}}}
return v;},fixThousands:function(v){v=v.replace(this.decimalSeparator,'.');v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split('.');var whole=ps[0];var sub=ps[1]?this.decimalSeparator+ps[1]:this.decimalSeparator+'00';var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,'$1'+this.thousandsSeparator+'$2');}
v=whole+sub;return v;},fixDecimal:function(v){var nan=isNaN(v);if(!this.allowDecimals||this.decimalPrecision==-1||nan){return nan?'':v;}
return parseFloat(v).toFixed(this.decimalPrecision);},fixInteger:function(v){var separator=v.indexOf(this.decimalSeparator);var integer='0';var decimals='';if(separator==-1){integer=v;}else{integer=v.substring(v,separator);decimals=v.slice(separator);}
integer=String.leftPad(integer,this.integerDigits,'0');v=integer+decimals;return v;},beforeBlur:function(){var v=this.parseValue(this.getRawValue());this.value=this.formatValue(this.fixPrecision(v));this.el.dom.value=(this.value===null||this.value===undefined?'':this.value);},getValue:function(){if(this.asString){return this.getRawValue();}else{return Ext.ux.Namirial.form.NumberField.superclass.getValue.call(this);}},getNumericValue:function(){var numero=Ext.ux.Namirial.form.NumberField.superclass.getValue.call(this);if(Ext.isEmpty(numero)){numero=0;}
return numero;}});Ext.reg('namirial_numberfield',Ext.ux.Namirial.form.NumberField);}
else{alert('Impossibile creare la classe Ext.ux.Namirial.form.NumberField senza la classe Ext.form.NumberField.\nIncludere anche la definizione di Ext.form.NumberField');}

