www-thermferm/jqwidgets/jqxnumberinput.js

Sun, 07 Jul 2019 14:31:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 07 Jul 2019 14:31:10 +0200
branch
stable
changeset 603
fcff55324b84
parent 511
2d1d43c3a2c2
child 617
b216f9d4b917
permissions
-rw-r--r--

Merged fix from default

/*
jQWidgets v4.5.2 (2017-May)
Copyright (c) 2011-2017 jQWidgets.
License: http://jqwidgets.com/license/
*/
!function(a){a.jqx.jqxWidget("jqxNumberInput","",{}),a.extend(a.jqx._jqxNumberInput.prototype,{defineInstance:function(){var b={value:null,decimal:0,min:-99999999,max:99999999,width:200,validationMessage:"Invalid value",height:25,textAlign:"right",readOnly:!1,promptChar:"_",decimalDigits:2,decimalSeparator:".",groupSeparator:",",groupSize:3,symbol:"",symbolPosition:"left",digits:8,negative:!1,negativeSymbol:"-",disabled:!1,inputMode:"advanced",spinButtons:!1,spinButtonsWidth:18,spinButtonsStep:1,autoValidate:!0,spinMode:"advanced",enableMouseWheel:!0,touchMode:"auto",allowNull:!0,placeHolder:"",changeType:null,template:"",rtl:!1,events:["valueChanged","textchanged","mousedown","mouseup","keydown","keyup","keypress","change"],aria:{"aria-valuenow":{name:"decimal",type:"number"},"aria-valuemin":{name:"min",type:"number"},"aria-valuemax":{name:"max",type:"number"},"aria-disabled":{name:"disabled",type:"boolean"}},invalidArgumentExceptions:["invalid argument exception"]};return this===a.jqx._jqxNumberInput.prototype?b:(a.extend(!0,this,b),b)},createInstance:function(a){var b=this.host.attr("value");void 0!=b&&(this.decimal=b),null!=this.value&&(this.decimal=this.value);var c=this;c._createFromInput("jqxNumberInput"),this.render()},_createFromInput:function(b){var c=this;if("input"==c.element.nodeName.toLowerCase()){c.field=c.element,c.field.className&&(c._className=c.field.className);var d={title:c.field.title};if(c.field.value&&(c.decimal=parseFloat(c.field.value)),c.field.getAttribute("min")){var e=c.field.getAttribute("min");c.min=parseFloat(e)}if(c.field.getAttribute("step")){var f=c.field.getAttribute("step");c.spinButtonsStep=parseFloat(f)}if(c.field.getAttribute("max")){var g=c.field.getAttribute("max");c.max=parseFloat(g)}c.field.id.length?d.id=c.field.id.replace(/[^\w]/g,"_")+"_"+b:d.id=a.jqx.utilities.createId()+"_"+b;var h=a("<div></div>",d);h[0].style.cssText=c.field.style.cssText,c.width||(c.width=a(c.field).width()),c.height||(c.height=a(c.field).outerHeight()),a(c.field).hide().after(h);var i=c.host.data();if(c.host=h,c.host.data(i),c.element=h[0],c.element.id=c.field.id,c.field.id=d.id,c._className&&(c.host.addClass(c._className),a(c.field).removeClass(c._className)),c.field.tabIndex){var j=c.field.tabIndex;c.field.tabIndex=-1,c.element.tabIndex=j}}},_doTouchHandling:function(){var a=this,b=a.savedValue;if(a.parsing||(a.parsing=!0),a.parsing){a.numberInput.val()&&0==a.numberInput.val().indexOf("-")?a.setvalue("negative",!0):a.setvalue("negative",!1);for(var c=a.numberInput.val(),d=0;d<c.length-1;d++){var e=c.substring(d,d+1);if(isNaN(parseFloat(e))&&a.symbol.toString().indexOf(e)===-1&&"%"!=e&&"$"!=e&&"."!=e&&","!=e&&"-"!=e)return a.numberInput[0].value=b,void(a.parsing=!1)}a.ValueString=a.GetValueString(a.numberInput.val(),a.decimalSeparator,""!=a.decimalSeparator),a._parseDecimalInSimpleMode(),a.decimal=a.ValueString;var f=a.getvalue("negative");f&&(a.decimal="-"+a.ValueString),a.parsing=!1}},render:function(){this.host.attr({role:"spinbutton"}),this.host.attr("data-role","input"),a.jqx.aria(this),a.jqx.aria(this,"aria-multiline",!1);var b=this;(this.officeMode||this.theme&&this.theme.indexOf("office")!=-1)&&18==this.spinButtonsWidth&&(this.spinButtonsWidth=15),(a.jqx.mobile.isTouchDevice()||this.touchMode===!0)&&(this.inputMode="textbox",this.spinMode="simple"),""==this.decimalSeparator&&(this.decimalSeparator=" "),this.host.addClass(this.toThemeProperty("jqx-input")),this.host.addClass(this.toThemeProperty("jqx-rc-all")),this.host.addClass(this.toThemeProperty("jqx-widget")),this.host.addClass(this.toThemeProperty("jqx-widget-content")),this.host.addClass(this.toThemeProperty("jqx-numberinput")),this.spinButtons?this._spinButtons():(this.numberInput=a("<input style='border:none;' autocomplete='off' type='textarea'/>").appendTo(this.host),this.numberInput.addClass(this.toThemeProperty("jqx-input-content")),this.numberInput.addClass(this.toThemeProperty("jqx-widget-content"))),this.numberInput.attr("placeholder",this.placeHolder);var c=this.host.attr("name");if(c&&this.numberInput.attr("name",c),this.host.attr("tabindex")&&(this.numberInput.attr("tabindex",this.host.attr("tabindex")),this.host.removeAttr("tabindex")),a.jqx.mobile.isTouchDevice()||this.touchMode===!0||"textbox"==this.inputMode){var b=this;b.savedValue="",this.addHandler(this.numberInput,"focus",function(){b.savedValue=b.numberInput[0].value}),this.addHandler(this.numberInput,"change",function(){b._doTouchHandling()})}var d=a.data(this.host[0],"jqxNumberInput");d.jqxNumberInput=this;var b=this;this.host.parents("form").length>0&&this.addHandler(this.host.parents("form"),"reset",function(){setTimeout(function(){b.setDecimal(0)},10)}),this.propertyChangeMap.disabled=function(a,b,c,d){d?(a.numberInput.addClass(e.toThemeProperty("jqx-input-disabled")),a.numberInput.attr("disabled",!0)):(a.host.removeClass(e.toThemeProperty("jqx-input-disabled")),a.numberInput.attr("disabled",!1)),a.spinButtons&&a.host.jqxRepeatButton&&(a.upbutton.jqxRepeatButton({disabled:d}),a.downbutton.jqxRepeatButton({disabled:d}))},this.disabled&&(this.numberInput.addClass(this.toThemeProperty("jqx-input-disabled")),this.numberInput.attr("disabled",!0),this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))),this.selectedText="",this.decimalSeparatorPosition=-1;var e=(this.element.id,this.element,this);this.oldValue=this._value(),this.items=new Array;var f=(this.value,this.decimal);this._initializeLiterals(),this._render(),this.setDecimal(f);var b=this;setTimeout(function(){},100),this._addHandlers(),a.jqx.utilities.resize(this.host,function(){b._render()})},refresh:function(a){a||this._render()},wheel:function(a,b){if(b.enableMouseWheel){b.changeType="mouse";var c=0;if(a||(a=window.event),a.originalEvent&&a.originalEvent.wheelDelta&&(a.wheelDelta=a.originalEvent.wheelDelta),a.wheelDelta?c=a.wheelDelta/120:a.detail&&(c=-a.detail/3),c){var d=b._handleDelta(c);return a.preventDefault&&a.preventDefault(),null!=a.originalEvent&&(a.originalEvent.mouseHandled=!0),void 0!=a.stopPropagation&&a.stopPropagation(),!!d&&(d=!1,a.returnValue=d,d)}a.preventDefault&&a.preventDefault(),a.returnValue=!1}},_handleDelta:function(a){return a<0?this.spinDown():this.spinUp(),!0},_addHandlers:function(){var b=this;this.addHandler(this.numberInput,"paste",function(c){var d=b._selection();c.preventDefault(),c.originalEvent.clipboardData?content=(c.originalEvent||c).clipboardData.getData("text/plain"):window.clipboardData&&(content=window.clipboardData.getData("Text")),this.selectedText=content,a.data(document.body,"jqxSelection",this.selectedText),"simple"!=b.inputMode?b._pasteSelectedText():b.val(content),setTimeout(function(){b._setSelectionStart(d.start)})}),this.addHandler(this.numberInput,"mousedown",function(a){return b._raiseEvent(2,a)}),this._mousewheelfunc=this._mousewheelfunc||function(a){if(!b.editcell)return b.wheel(a,b),!1},this.removeHandler(this.host,"mousewheel",this._mousewheelfunc),this.addHandler(this.host,"mousewheel",this._mousewheelfunc);var c="";this.addHandler(this.numberInput,"focus",function(d){a.data(b.numberInput,"selectionstart",b._selection().start),b.host.addClass(b.toThemeProperty("jqx-fill-state-focus")),b.spincontainer&&b.spincontainer.addClass(b.toThemeProperty("jqx-numberinput-focus")),c=b.numberInput.val(),b._savedValue=b.decimal}),this.addHandler(this.numberInput,"blur",function(d){if("simple"==b.inputMode&&b._exitSimpleInputMode(d,b,!1,c),b.autoValidate){var e=parseFloat(b.decimal),f=b.getvalue("negative");f&&b.decimal>0&&(e=-parseFloat(b.decimal)),e>b.max&&(b._disableSetSelection=!0,b.setDecimal(b.max),b._disableSetSelection=!1),e<b.min&&(b._disableSetSelection=!0,b.setDecimal(b.min),b._disableSetSelection=!1)}return b.host.removeClass(b.toThemeProperty("jqx-fill-state-focus")),b.spincontainer&&b.spincontainer.removeClass(b.toThemeProperty("jqx-numberinput-focus")),b.numberInput.val()!=c&&(b._raiseEvent(7,d),a.jqx.aria(b,"aria-valuenow",b.decimal),b.element.value=b.decimal),!0}),this.addHandler(this.numberInput,"mouseup",function(a){return b._raiseEvent(3,a)}),this.addHandler(this.numberInput,"keydown",function(a){return b.changeType="keyboard",b._raiseEvent(4,a)}),this.addHandler(this.numberInput,"keyup",function(a){return b._raiseEvent(5,a)}),this.addHandler(this.numberInput,"keypress",function(a){return b._raiseEvent(6,a)})},focus:function(){try{this.numberInput.focus()}catch(a){}},_removeHandlers:function(){var b=this;this.removeHandler(this.numberInput,"mousedown");var c=a.jqx.mobile.isOperaMiniMobileBrowser();c&&this.removeHandler(a(document),"click."+this.element.id,b._exitSimpleInputMode,b),this.removeHandler(this.numberInput,"paste"),this.removeHandler(this.numberInput,"focus"),this.removeHandler(this.numberInput,"blur"),this.removeHandler(this.numberInput,"mouseup"),this.removeHandler(this.numberInput,"keydown"),this.removeHandler(this.numberInput,"keyup"),this.removeHandler(this.numberInput,"keypress")},_spinButtons:function(){if(!this.host.jqxRepeatButton)throw new Error("jqxNumberInput: Missing reference to jqxbuttons.js.");this.numberInput?this.numberInput.css("float","left"):(this.numberInput=a("<input autocomplete='off' style='border: none; position: relative; float: left;' type='textarea'/>"),this.numberInput.appendTo(this.host),this.numberInput.addClass(this.toThemeProperty("jqx-input-content")),this.numberInput.addClass(this.toThemeProperty("jqx-widget-content"))),this.spincontainer&&(this.upbutton&&this.upbutton.jqxRepeatButton("destroy"),this.downbutton&&this.downbutton.jqxRepeatButton("destroy"),this.spincontainer.remove()),this.spincontainer=a('<div style="float: right; height: 100%; overflow: hidden; position: relative;"></div>'),this.rtl&&(this.spincontainer.css("float","right"),this.numberInput.css("float","right"),this.spincontainer.css("left","-1px")),this.host.append(this.spincontainer),this.upbutton=a('<div style="overflow: hidden; padding: 0px; margin-left: -1px; position: relative;"><div></div></div>'),this.spincontainer.append(this.upbutton),this.upbutton.jqxRepeatButton({overrideTheme:!0,disabled:this.disabled,roundedCorners:"top-right"}),this.downbutton=a('<div style="overflow: hidden; padding: 0px; margin-left: -1px; position: relative;"><div></div></div>'),this.spincontainer.append(this.downbutton),this.downbutton.jqxRepeatButton({overrideTheme:!0,disabled:this.disabled,roundedCorners:"bottom-right"}),this.template&&(this.upbutton.addClass(this.toThemeProperty("jqx-"+this.template)),this.downbutton.addClass(this.toThemeProperty("jqx-"+this.template)));var b=this;this.downbutton.addClass(this.toThemeProperty("jqx-fill-state-normal jqx-action-button")),this.upbutton.addClass(this.toThemeProperty("jqx-fill-state-normal jqx-action-button")),this.upbutton.addClass(this.toThemeProperty("jqx-rc-tr")),this.downbutton.addClass(this.toThemeProperty("jqx-rc-br")),this.addHandler(this.downbutton,"mouseup",function(a){b.disabled||(b.downbutton.removeClass(b.toThemeProperty("jqx-fill-state-pressed")),b._downArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-selected")))}),this.addHandler(this.upbutton,"mouseup",function(a){b.disabled||(b.upbutton.removeClass(b.toThemeProperty("jqx-fill-state-pressed")),b._upArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-selected")))}),this.removeHandler(a(document),"mouseup."+this.element.id),this.addHandler(a(document),"mouseup."+this.element.id,function(a){b.upbutton.removeClass(b.toThemeProperty("jqx-fill-state-pressed")),b._upArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-selected")),b.downbutton.removeClass(b.toThemeProperty("jqx-fill-state-pressed")),b._downArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-selected"))}),this.addHandler(this.downbutton,"mousedown",function(c){if(!b.disabled)return a.jqx.browser.msie&&a.jqx.browser.version<9&&(b._inputSelection=b._selection()),b.downbutton.addClass(b.toThemeProperty("jqx-fill-state-pressed")),b._downArrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-selected")),c.preventDefault(),c.stopPropagation(),!1}),this.addHandler(this.upbutton,"mousedown",function(c){if(!b.disabled)return a.jqx.browser.msie&&a.jqx.browser.version<9&&(b._inputSelection=b._selection()),b.upbutton.addClass(b.toThemeProperty("jqx-fill-state-pressed")),b._upArrow.addClass(b.toThemeProperty("jqx-icon-arrow-up-selected")),c.preventDefault(),c.stopPropagation(),!1}),this.addHandler(this.upbutton,"mouseenter",function(a){b.upbutton.addClass(b.toThemeProperty("jqx-fill-state-hover")),b._upArrow.addClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))}),this.addHandler(this.upbutton,"mouseleave",function(a){b.upbutton.removeClass(b.toThemeProperty("jqx-fill-state-hover")),b._upArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))}),this.addHandler(this.downbutton,"mouseenter",function(a){b.downbutton.addClass(b.toThemeProperty("jqx-fill-state-hover")),b._downArrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}),this.addHandler(this.downbutton,"mouseleave",function(a){b.downbutton.removeClass(b.toThemeProperty("jqx-fill-state-hover")),b._downArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}),this.upbutton.css("border-width","0px"),this.downbutton.css("border-width","0px"),this.disabled?(this.upbutton[0].disabled=!0,this.downbutton[0].disabled=!0):(this.upbutton[0].disabled=!1,this.downbutton[0].disabled=!1),this.spincontainer.addClass(this.toThemeProperty("jqx-input")),this.spincontainer.addClass(this.toThemeProperty("jqx-rc-r")),this.spincontainer.css("border-width","0px"),this.rtl?this.spincontainer.css("border-right-width","1px"):this.spincontainer.css("border-left-width","1px"),this._upArrow=this.upbutton.find("div"),this._downArrow=this.downbutton.find("div"),this._upArrow.addClass(this.toThemeProperty("jqx-icon-arrow-up")),this._downArrow.addClass(this.toThemeProperty("jqx-icon-arrow-down")),this._upArrow.addClass(this.toThemeProperty("jqx-input-icon")),this._downArrow.addClass(this.toThemeProperty("jqx-input-icon"));var b=this;this._upArrow.hover(function(){b.disabled||b._upArrow.addClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))},function(){b._upArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))}),this._downArrow.hover(function(){b.disabled||b._downArrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))},function(){b._downArrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))});var c=a.jqx.mobile.isTouchDevice(),d="click";c&&(d=a.jqx.mobile.getTouchEventName("touchstart")),c&&(this.addHandler(this.downbutton,"click",function(a){b.spinDown()}),this.addHandler(this.upbutton,"click",function(a){b.spinUp()})),this.addHandler(this.downbutton,d,function(d){return c?(d.preventDefault(),d.stopPropagation()):(0==b._selection().start&&b._setSelectionStart(b.numberInput.val().length),a.jqx.browser.msie&&a.jqx.browser.version<9&&b._setSelectionStart(b._inputSelection.start)),b.spinDown(),!1}),this.addHandler(this.upbutton,d,function(d){return c?(d.preventDefault(),d.stopPropagation()):(0==b._selection().start&&b._setSelectionStart(b.numberInput.val().length),a.jqx.browser.msie&&a.jqx.browser.version<9&&b._setSelectionStart(b._inputSelection.start)),b.spinUp(),!1})},spinDown:function(){var b=this,c=this.decimal;if("none"!=b.spinMode){if(null==this.decimal)return void this.setDecimal(0);var d=this.getvalue("negative"),e=d?-1:0;if((a.jqx.mobile.isTouchDevice()||"textbox"==this.inputMode)&&b._doTouchHandling(),!b.disabled){var f=this._selection(),g=this.decimal,h=this.getDecimal();if(h<this.min)return h=this.min,this.setDecimal(this.min),this._setSelectionStart(f.start),void this.spinDown();if(h>this.max)return h=this.max,this.setDecimal(this.max),this._setSelectionStart(f.start),void this.spinDown();b.spinButtonsStep<0&&(b.spinButtonsStep=1);var i=parseInt(b.decimal)-b.spinButtonsStep;i=i.toString().length;var j=e+i<=b.digits;if("advanced"!=b.spinMode){if(h-b.spinButtonsStep>=b.min&&j){var k=1;for(p=0;p<b.decimalDigits;p++)k*=10;var l=k*h-k*b.spinButtonsStep;l/=k,l=this._parseDecimalValueToEditorValue(l),b.setDecimal(l)}}else{var m=this._getspindecimal(),h=(this._getSeparatorPosition(),parseFloat(m.decimal));b.spinButtonsStep<0&&(b.spinButtonsStep=1);var i=parseInt(h)-b.spinButtonsStep;i=i.toString().length;var j=e+i<=b.digits,k=1,n=m.decimal.indexOf(".");if(n!=-1){for(var o=m.decimal.length-n-1,k=1,p=0;p<o;p++)k*=10;h-=new Number(b.spinButtonsStep/k),h=h.toFixed(o);var n=h.toString().indexOf(".");n==-1&&(h=h.toString()+".");var q=h.toString()+m.afterdecimal;q=new Number(q),q=q.toFixed(b.decimalDigits),q>=b.min&&(q=this._parseDecimalValueToEditorValue(q),b.setDecimal(q))}else if(h-b.spinButtonsStep>=b.min&&j){var l=k*h-k*b.spinButtonsStep;l/=k;var q=l.toString()+m.afterdecimal;q>=b.min&&(q=this._parseDecimalValueToEditorValue(q),b.setDecimal(q))}}if(void 0==q||"simple"!=this.inputMode)return this._setSelectionStart(f.start),b.savedValue=b.numberInput[0].value,c!=this.decimal&&(a.jqx.mobile.isTouchDevice()&&this._raiseEvent(0,{}),this._raiseEvent(7,{})),void a.jqx.aria(self,"aria-valuenow",this.decimal);q=this.decimal.toString();var d=this.getvalue("negative");0==e&&d?this._setSelectionStart(f.start+1):void 0==q||void 0!=g&&g.toString().length!=q.length?d?this._setSelectionStart(f.start+1):this._setSelectionStart(f.start-1):this._setSelectionStart(f.start),c!=this.decimal&&(a.jqx.mobile.isTouchDevice()&&this._raiseEvent(0,{}),this._raiseEvent(7,{})),a.jqx.aria(self,"aria-valuenow",this.decimal)}}},_getspindecimal:function(){var a=this._selection(),b="",c=(this._getSeparatorPosition(),this._getVisibleItems()),d=this._getHiddenPrefixCount(),e=this.numberInput.val();this.numberInput.val().length==a.start&&0==a.length&&(this._setSelection(a.start,a.start+1),a=this._selection());for(var f="advanced"!=this.inputMode,g=0;g<a.start;g++)if(f){var h=e.substring(g,g+1),i=!isNaN(parseInt(h));i&&(b+=h),h==this.decimalSeparator&&(b+=h)}else c[g].canEdit&&c[g].character!=this.promptChar?b+=c[g].character:c[g].canEdit||this.decimalSeparatorPosition==-1||c[g]!=c[this.decimalSeparatorPosition-d]||(0==b.length&&(b="0"),b+=c[g].character);for(var j="",g=a.start;g<c.length;g++)if(f){var h=e.substring(g,g+1),i=!isNaN(parseInt(h));i&&(j+=h),h==this.decimalSeparator&&(j+=h)}else c[g].canEdit&&c[g].character!=this.promptChar?j+=c[g].character:c[g].canEdit||this.decimalSeparatorPosition==-1||c[g]!=c[this.decimalSeparatorPosition-d]||(j+=c[g].character);var k=this.getvalue("negative"),l=k?"-"+this._parseDecimalValue(b).toString():this._parseDecimalValue(b).toString();return{decimal:l,afterdecimal:this._parseDecimalValue(j)}},_parseDecimalValue:function(a){if("."!=this.decimalSeparator){var b=a.toString().indexOf(this.decimalSeparator);if(b>=0){var c=a.toString().substring(0,b)+"."+a.toString().substring(b+1);return c}}return a},_parseDecimalValueToEditorValue:function(a){if("."!=this.decimalSeparator){var b=a.toString().indexOf(".");if(b>=0){var c=a.toString().substring(0,b)+this.decimalSeparator+a.toString().substring(b+1);return c}}return a},spinUp:function(){var b=this,c=this.decimal;if("none"!=b.spinMode){if(null==this.decimal)return void this.setDecimal(0);(a.jqx.mobile.isTouchDevice()||"textbox"==this.inputMode)&&b._doTouchHandling();var d=this.getvalue("negative"),e=d?-1:0;if(!b.disabled){var f=this._selection(),g=b.decimal,h=b.getDecimal();if(h<this.min)return h=this.min,this.setDecimal(this.min),this._setSelectionStart(f.start),void this.spinUp();if(h>this.max)return h=this.max,this.setDecimal(this.max),this._setSelectionStart(f.start),void this.spinUp();b.spinButtonsStep<0&&(b.spinButtonsStep=1);var i=parseInt(b.decimal)+b.spinButtonsStep;i=i.toString().length;var j=e+i<=b.digits;if("advanced"!=b.spinMode){if(h+b.spinButtonsStep<=b.max&&j){for(var k=1,l=0;l<b.decimalDigits;l++)k*=10;var m=k*h+k*b.spinButtonsStep;m/=k,m=this._parseDecimalValueToEditorValue(m),b.setDecimal(m)}}else{var n=this._getspindecimal(),h=(this._getSeparatorPosition(),parseFloat(n.decimal));b.spinButtonsStep<0&&(b.spinButtonsStep=1);var i=parseInt(h)+b.spinButtonsStep;i=i.toString().length;var j=e+i<=b.digits,k=1,o=n.decimal.indexOf(".");if(o!=-1){for(var p=n.decimal.length-o-1,k=1,l=0;l<p;l++)k*=10;h+=new Number(b.spinButtonsStep/k),h=h.toFixed(p);var o=h.toString().indexOf(".");o==-1&&(h=h.toString()+".");var q=h.toString()+n.afterdecimal;q=new Number(q),q=q.toFixed(b.decimalDigits);var r=new Number(q).toFixed(b.decimalDigits);r<=b.max?(q=this._parseDecimalValueToEditorValue(q),b.setDecimal(q)):q=void 0}else if(h+b.spinButtonsStep<=b.max&&j){var m=k*h+k*b.spinButtonsStep;m/=k;var q=m.toString()+n.afterdecimal,r=new Number(q).toFixed(b.decimalDigits);r<=b.max?(q=this._parseDecimalValueToEditorValue(q),d&&q.indexOf("-")==-1&&"-0"!=n.decimal&&(q="-"+q),b.setDecimal(q)):q=void 0}}if(void 0==q||"simple"!=this.inputMode)return this._setSelectionStart(f.start),b.savedValue=b.numberInput[0].value,c!=this.decimal&&(a.jqx.mobile.isTouchDevice()&&this._raiseEvent(0,{}),this._raiseEvent(7,{})),void a.jqx.aria(self,"aria-valuenow",this.decimal);q=this.decimal.toString();var d=this.getvalue("negative");e!=-1||d?void 0==q||void 0!=g&&g.toString().length!=q.length?d?this._setSelectionStart(f.start):this._setSelectionStart(1+f.start):this._setSelectionStart(f.start):this._setSelectionStart(-1+f.start),c!=this.decimal&&(a.jqx.mobile.isTouchDevice()&&this._raiseEvent(0,{}),this._raiseEvent(7,{})),a.jqx.aria(self,"aria-valuenow",this.decimal)}}},_exitSimpleInputMode:function(b,c,d,e){if(void 0==c&&(c=b.data),null!=c){if(void 0==d){if(null!=b.target&&null!=c.element&&(void 0!=b.target.id&&b.target.id.toString().length>0&&c.host.find("#"+b.target.id).length>0||b.target==c.element))return;var f=c.host.offset(),g=f.left,h=f.top,i=c.host.width(),j=c.host.height(),k=a(b.target).offset();if(k.left>=g&&k.left<=g+i&&k.top>=h&&k.top<=h+j)return}if(a.jqx.mobile.isOperaMiniBrowser()&&c.numberInput.attr("readonly",!0),!c.disabled&&!c.readOnly){var l=a.data(c.numberInput,"simpleInputMode");if(null!=l)return a.data(c.numberInput,"simpleInputMode",null),this._parseDecimalInSimpleMode(),!1}}},_getDecimalInSimpleMode:function(){var a=this.decimal;if("."!=this.decimalSeparator){var b=a.toString().indexOf(this.decimalSeparator);if(b>0)var c=a.toString().substring(0,b),a=c+"."+a.toString().substring(b+1)}return a},_parseDecimalInSimpleMode:function(a){var b=this,c=b.getvalue("negative"),d=this.ValueString;if(void 0==d&&(d=this.GetValueString(this.numberInput.val(),this.decimalSeparator,""!=this.decimalSeparator)),"."!=this.decimalSeparator){var e=d.toString().indexOf(".");if(e>0){var f=d.toString().substring(0,e),g=f+this.decimalSeparator+d.toString().substring(e+1);d=g}}var h=c?"-":"";"left"==this.symbolPosition&&(h+=this.symbol);var i=this.digits%this.groupSize;0==i&&(i=this.groupSize);var j=d.toString();j.indexOf("-")>=0&&(j=j.substring(j.indexOf("-")+1)),h+=j,"right"==this.symbolPosition&&(h+=this.symbol),0!=a&&b.numberInput.val(h)},_enterSimpleInputMode:function(b,c){void 0==c&&(c=b.data);var d=this._selection();if(null!=c){var e=c.getvalue("negative"),f=c.decimal;e&&f>0&&(f=-f),c.numberInput.val(f),a.data(c.numberInput,"simpleInputMode",!0),a.jqx.mobile.isOperaMiniBrowser()&&c.numberInput.attr("readonly",!1),this._parseDecimalInSimpleMode(),this._setSelectionStart(d.start)}},setvalue:function(a,b){void 0!==this[a]&&("decimal"==a?this._setDecimal(b):(this[a]=b,this.propertyChangedHandler(this,a,b,b)))},getvalue:function(a){return"decimal"==a&&void 0!=this.negative&&1==this.negative?-Math.abs(this[a]):a in this?this[a]:null},_getString:function(){for(var a="",b=0;b<this.items.length;b++){var c=this.items[b].character;a+=c}return a},_literal:function(a,b,c,d){return{character:a,regex:b,canEdit:c,isSeparator:d}},_initializeLiterals:function(){if("textbox"!=this.inputMode){for(var a=0,b=this.negativeSymbol.length,c=0;c<b;c++){var d=this.negativeSymbol.substring(c,c+1),e="",f=!1,g=null;g=this.negative?this._literal(d,e,f,!1):this._literal("",e,f,!1),this.items[a]=g,a++}var h=this.symbol.length;if("left"==this.symbolPosition)for(c=0;c<h;c++){var d=this.symbol.substring(c,c+1),e="",f=!1,g=this._literal(d,e,f,!1);this.items[a]=g,a++}var i=this.digits%this.groupSize;0==i&&(i=this.groupSize);for(var c=0;c<this.digits;c++){var d=this.promptChar,e="\\d",f=!0,g=this._literal(d,e,f,!1);if(this.items[a]=g,a++,c<this.digits-1&&void 0!=this.groupSeparator&&this.groupSeparator.length>0){if(i--,0==i){i=this.groupSize;var j=this._literal(this.groupSeparator,"",!1,!1);this.items[a]=j,a++}}else c==this.digits-1&&(g.character=0)}if(this.decimalSeparatorPosition=-1,void 0!=this.decimalDigits&&this.decimalDigits>0){var d=this.decimalSeparator;0==d.length&&(d=".");var g=this._literal(d,"",!1,!0);this.items[a]=g,this.decimalSeparatorPosition=a,a++;for(var c=0;c<this.decimalDigits;c++){var k=0,e="\\d",l=this._literal(k,e,!0,!1);this.items[a]=l,a++}}if("right"==this.symbolPosition)for(var c=0;c<h;c++){var d=this.symbol.substring(c,c+1),e="",f=!1,g=this._literal(d,e,f);this.items[a]=g,a++}}},_match:function(a,b){var c=new RegExp(b,"i");return c.test(a)},_raiseEvent:function(b,c){var d=this.events[b],e={};if(e.owner=this,"none"==this.host.css("display"))return!0;var f=c.charCode?c.charCode:c.keyCode?c.keyCode:0,g=!0,h=this.readOnly,i=this;if((3==b||2==b)&&!this.disabled){if("simple"==this.inputMode||"textbox"==this.inputMode)return!0;this._handleMouse(c)}if(0==b){var j=this.getvalue("decimal");this.max<j||this.min>j?this.host.addClass(this.toThemeProperty("jqx-input-invalid")):(this.host.removeClass(this.toThemeProperty("jqx-input-invalid")),this.host.addClass(this.toThemeProperty("jqx-input")),this.host.addClass(this.toThemeProperty("jqx-rc-all")))}var k=new a.Event(d);k.owner=this,e.value=this.getvalue("decimal"),e.text=this.numberInput.val(),k.args=e,7==b&&(e.type=this.changeType,this.changeType=null),void 0!=d&&4!=b&&5!=b&&6!=b&&(g=this.host.trigger(k));var i=this;if("textbox"==this.inputMode)return g;if("simple"!=this.inputMode){if(4==b){if(h||this.disabled)return!1;g=i._handleKeyDown(c,f)}else if(5==b)(h||this.disabled)&&(g=!1);else if(6==b){if(h||this.disabled)return!1;g=i._handleKeyPress(c,f)}}else if(4==b||5==b||6==b){if(a.jqx.mobile.isTouchDevice()||this.touchMode===!0)return!0;if(h||this.disabled)return!1;var l=String.fromCharCode(f),m=(parseInt(l),!0);if(c.ctrlKey||c.shiftKey||c.metaKey||f>=65&&f<=90&&(m=!1),6==b&&void 0!=a.jqx.browser.opera&&8==f)return!1;if(m){if(4==b&&(m=i._handleSimpleKeyDown(c,f)),189==f||45==f||109==f||173==f){var n=i._selection();if(4==b){var o=i.getvalue("negative");0==o?i.setvalue("negative",!0):i.setvalue("negative",!1),i.decimal=i.ValueString,i._parseDecimalInSimpleMode(),i._setSelectionStart(n.start),m=!1,i._raiseEvent(0,i.value),i._raiseEvent(1,i.numberInput.val())}}var p=e.ctrlKey||e.metaKey;if(!a.jqx.browser.msie){var q=c;if(p&&99==f||p&&67==f||p&&122==f||p&&90==f||p&&118==f||p&&86==f||q.shiftKey&&45==f)return(a.jqx.browser.webkit||a.jqx.browser.chrome)&&i._handleSimpleKeyDown(c,f),67==f}if(p&&97==f||p&&65==f)return!0;if(6==b&&m){var r=this._isSpecialKey(f);return r}}return m}return g},GetSelectionInValue:function(a,b,c,d){var e=0;for(i=0;i<b.length&&!(i>=a);i++){var f=b.substring(i,i+1),g=!isNaN(parseInt(f));(g||d&&b.substring(i,i+1)==c)&&e++}return e},GetSelectionLengthInValue:function(a,b,c,d){var e=0;for(i=0;i<c.length&&!(i>=a+b);i++){var f=c.substring(i,i+1),g=!isNaN(parseInt(f));(b>0&&i>=a&&g||i>=a&&c[i].toString()==d)&&e++}return e},GetInsertTypeByPositionInValue:function(a,b,c,d){var e="before",f=this.GetValueString(c,b,d),g=this.GetDigitsToSeparator(0,f,b);return a>g&&(e="after"),e},RemoveRange:function(a,b,c,d,e,f){var g=this.digits,h=a,i=b,j=0,d=(this.decimal,this._selection(),this.decimalSeparator),k=""!=d;if(0==i&&this.ValueString.length<this.decimalPossibleChars-1)return j;var l=this.GetSeparatorPositionInText(d,c);e||(l=this.GetSeparatorPositionInText(d,c)),l<0&&!k&&c.length>1&&(l=c.length),l==-1&&(l=c.length);var m=k?1:0;if(b<2&&1==f){var n=this.ValueString.length-this.decimalDigits-m;n==g&&a+b<l&&i++}for(var o="",p=0;p<c.length;p++)if(p<h||p>=h+i)o+=c.substring(p,p+1);else{var q=c.substring(p,p+1);if(q!=d){var q=c.substring(p,p+1);if(!(this.symbol&&""!=this.symbol&&this.symbol.indexOf(q)>=0))if(p>l)o+="0";else{var q=c.substring(p,p+1),r=!isNaN(parseInt(q));r&&j++}}else o+=d}0==o.length&&(o="0"),e?this.numberInput.val(o):this.ValueString=o;var s=o.substring(0,1);if(s==d&&isNaN(parseInt(s))){var t="0"+o;o=t}return this.ValueString=this.GetValueString(o,d,k),this.decimal=this.ValueString,this._parseDecimalInSimpleMode(),this._setSelectionStart(h),j},InsertDigit:function(a,b){"number"!=typeof this.digits&&(this.digits=parseInt(this.digits)),"number"!=typeof this.decimalDigits&&(this.decimalDigits=parseInt(this.decimalDigits));var c=1+this.digits,d=this._selection(),e=this.getvalue("negative"),f=!1;0==d.start&&""!=this.symbol&&"left"==this.symbolPosition&&(this._setSelectionStart(d.start+1),d=this._selection(),f=!0),(e&&f||e&&!f&&0==d.start)&&(this._setSelectionStart(d.start+1),d=this._selection());var g=this.numberInput.val().substring(d.start,d.start+1),h=this.numberInput.val(),i=this.decimalSeparator,j=""!=i&&this.decimalDigits>0;if(g==this.symbol&&"right"==this.symbolPosition){if(0!=this.decimalDigits)return;if(this.ValueString=this.GetValueString(h,i,j),this.ValueString.length>=c)return}this.ValueString=this.GetValueString(h,i,j),""==this.ValueString&&(this.ValueString=new Number(0).toFixed(this.decimalDigits));var k=this.ValueString;this.decimalDigits>0&&b>=k.length&&(b=k.length-1);var l="";b<k.length&&(l=k.substring(b,b+1));var m=!1,n=this.GetInsertTypeByPositionInValue(b,i,h,j);"after"==n&&(m=!0);var o=j?1:0;l!=i&&this.ValueString.length-this.decimalDigits-o>=c-1&&(m=!0),"0"===l&&1===this.ValueString.length&&0===this.decimalDigits&&(m=!0);var p=!1,q=j?1:0;if(!(!m&&this.ValueString&&this.ValueString.length>=this.digits+this.decimalDigits+q)){if(m&&l!=i){p&&b++;var r=k.substring(0,b);if(r.length==k.length&&this.ValueString.length>=this.digits+this.decimalDigits+q)return;var s=a,t="";b+1<k.length&&(t=k.substring(b+1));var u=r+s+t;this.ValueString=u}else{var r=k.substring(0,b),s=a,t=k.substring(b),u=r+s+t;"0"==k.substring(0,1)&&k.substring(1,2)==i&&(u=s+k.substring(1),l==i&&(this._setSelectionStart(d.start-1),d=this._selection())),this.ValueString=u}e?this.decimal=-this.ValueString:this.decimal=this.ValueString,this._parseDecimalInSimpleMode();var v=d.start;v+=1,this._setSelectionStart(v),this.value=this.decimal,this._raiseEvent(0,this.value),this._raiseEvent(1,this.numberInput.val())}},GetStringToSeparator:function(a,b,c){var d="",e=this.GetSeparatorPositionInText(b,a),f=a.subString(0,e);return d=this.GetValueString(f,b,c)},GetSeparatorPositionInText:function(a,b){var c=-1;for(i=0;i<b.length;i++)if(b.substring(i,i+1)==a){c=i;break}return c},GetValueString:function(a,b,c){for(var d="",e=0;e<a.length;e++){var f=a.substring(e,e+1),g=!isNaN(parseInt(f));g&&(d+=f),f==b&&(d+=b)}return d},Backspace:function(){var a=this._selection(),b=this._selection(),c=this.numberInput.val();if(0!=a.start||0!=a.length){this.isBackSpace=!0;var d=c.substring[(a.start,a.start+1)];!isNaN(parseInt(d));if(a.start>0&&0==a.length){this._setSelectionStart(a.start-1);var a=this._selection()}this.Delete(),this._setSelectionStart(b.start-1),this.isBackSpace=!1}},Delete:function(a){var b=this._selection(),c=this.numberInput.val();if(0===b.start&&"-"==c.substring(0,1)){this.setvalue("negative",!1);var b=this._selection(),c=this.numberInput.val()}var d=b.start,e=b.length;e=Math.max(e,1),this.ValueString=this.GetValueString(c,this.decimalSeparator,""!=this.decimalSeparator),d>this.ValueString.indexOf(this.decimalSeparator)&&this.decimalDigits>0&&d++;var f=0;this.symbol&&("left"==this.symbolPosition&&f--,this.negative&&f--),this.RemoveRange(b.start+f,e,this.ValueString,".",!1);var g=this.ValueString.substring(0,1),h=!isNaN(parseInt(g));h||(this.ValueString="0"+this.ValueString),this.decimal=this.ValueString,this._parseDecimalInSimpleMode(),
this._setSelectionStart(d),this.value=this.decimal,this._raiseEvent(0,this.value),this._raiseEvent(1,this.numberInput.val())},insertsimple:function(a){var b=this._selection(),c=this.numberInput.val();if(!(b.start==c.length&&null!=this.decimal&&this.decimalDigits>0)){var d=(this.decimal,this.decimalSeparator);this.ValueString=this.GetValueString(c,d,""!=d);var e=this.GetSelectionInValue(b.start,c,d,""!=d),f=this.GetSelectionLengthInValue(b.start,b.length,c,d);this.GetDigitsToSeparator(0,this.ValueString,d);if(this.decimalDigits>0&&e>=this.ValueString.length&&e--,""==this.ValueString)return this.ValueString=new Number(0).toFixed(this.decimalDigits),this.ValueString=this.ValueString.replace(".",d),this.RemoveRange(b.start,f,this.ValueString,d,!1,!0),void this.InsertDigit(a,0,b);this.RemoveRange(b.start,f,this.ValueString,d,!1,!0),this.InsertDigit(a,e,b)}},GetDigitsToSeparator:function(a,b,c){if(void 0==c&&(c="."),b.indexOf(c)<0)return b.length;for(i=0;i<b.length;i++)if(b.substring(i,i+1)==c){a=i;break}return a},_handleSimpleKeyDown:function(b,c){var d=this._selection(),e=b.ctrlKey||b.metaKey;if((8==c||46==c)&&e)return this.setDecimal(null),!1;if(d.start>=0&&d.start<this.items.length)var f=String.fromCharCode(c);if(27===c){this.setDecimal(this._savedValue);var g=this.GetSeparatorPositionInText(this.decimalSeparator,this.numberInput.val());g!=-1&&this._setSelectionStart(g),b.preventDefault()}if(this.rtl&&37==c){var h=b.shiftKey,i=h?1:0;return h?this._setSelection(d.start+1-i,d.start+d.length+1):this._setSelection(d.start+1-i,d.start+1),!1}if(this.rtl&&39==c){var h=b.shiftKey,i=h?1:0;return h?this._setSelection(d.start-1,d.length+i+d.start-1):this._setSelection(d.start-1,d.start-1),!1}if(8==c)return this.Backspace(),!1;if(190==c||110==c){var g=this.GetSeparatorPositionInText(this.decimalSeparator,this.numberInput.val());return g!=-1&&this._setSelectionStart(g+1),!1}if(188==c){var j=this.numberInput.val();for(m=d.start;m<j.length;m++)if(j[m]==this.groupSeparator){this._setSelectionStart(1+m);break}return!1}var e=b.ctrlKey||b.metaKey;if(e&&99==c||e&&67==c){var d=this._selection(),k="",l=this.numberInput.val();if(d.start>0||d.length>0)for(var m=d.start;m<d.end;m++)k+=l.substring(m,m+1);if(a.data(document.body,"jqxSelection",k),a.jqx.browser.msie)window.clipboardData.setData("Text",k);else{var n=this,o=a('<textarea style="position: absolute; left: -1000px; top: -1000px;"/>');o.val(k),a("body").append(o),o.select(),setTimeout(function(){document.designMode="off",o.select(),o.remove(),n.focus()},100)}return this.savedText=k,!0}if(e&&122==c||e&&90==c)return!1;if(e&&118==c||e&&86==c||b.shiftKey&&45==c)return a.jqx.browser.msie&&!this.savedText&&(this.savedText=window.clipboardData.getData("Text")),null!=this.savedText&&this.savedText.length>0?this.val(this.savedText):this.val(a.data(document.body,"jqxSelection")),!1;var f=String.fromCharCode(c),p=parseInt(f);if(c>=96&&c<=105&&(p=c-96,c-=48),!isNaN(p)){var n=this;return this.insertsimple(p),!1}if(46==c)return this.Delete(),!1;if(38==c)return this.spinUp(),!1;if(40==c)return this.spinDown(),!1;var q=this._isSpecialKey(c);return!a.jqx.browser.mozilla||q},_getEditRange:function(){var a=0,b=0;for(i=0;i<this.items.length;i++)if(this.items[i].canEdit){a=i;break}for(i=this.items.length-1;i>=0;i--)if(this.items[i].canEdit){b=i;break}return{start:a,end:b}},_getVisibleItems:function(){var a=new Array,b=0;for(i=0;i<this.items.length;i++)this.items[i].character.toString().length>0&&(a[b]=this.items[i],b++);return a},_hasEmptyVisibleItems:function(){var a=this._getVisibleItems();for(i=0;i<a.length;i++)if(a[i].canEdit&&a[i].character==this.promptChar)return!0;return!1},_getFirstVisibleNonEmptyIndex:function(){var a=this._getVisibleItems();for(i=0;i<a.length;i++)if(a[i].canEdit&&a[i].character!=this.promptChar)return i},_handleMouse:function(a,b){var c=this._selection();if(c.length<=1){var d=this._getFirstVisibleNonEmptyIndex();c.start<d&&this._setSelectionStart(d)}},_insertKey:function(b){this.numberInput[0].focus();var c=String.fromCharCode(b),d=parseInt(c);if(!isNaN(d)){var e=0;for(i=0;i<this.items.length;i++)0==this.items[i].character.length&&e++;var f=this._selection(),g=this;if(f.start>=0&&f.start<=this.items.length){var h=!1,k=this._getFirstVisibleNonEmptyIndex();f.start<k&&0==f.length&&(isNaN(c)&&" "!=c||(this._setSelectionStart(k),f=this._selection()));var l=(this._getFirstEditableItemIndex(),this._getLastEditableItemIndex()),m=this._getVisibleItems();a.each(m,function(a,b){if(!(f.start>a&&a!=m.length-1)){var d=m[a];if(a>l&&(d=m[l]),!isNaN(c)&&" "!=c&&d.canEdit){var i=g._getSeparatorPosition();if(g._match(c,d.regex)){if(!h&&f.length>0){for(j=f.start+e;j<f.end+e;j++)g.items[j].canEdit&&(j>i?g.items[j].character="0":g.items[j].character=g.promptChar);var k=g._getString();h=!0}var i=g._getSeparatorPosition(),n=g._hasEmptyVisibleItems();if(null==g.decimal&&(f.start=i-1,f.start<0&&(f.start=0),f.end=f.start),f.start<=i&&n){var o=a;g.decimalSeparatorPosition==-1&&f.start==i&&(o=a+1),null==g.decimal&&(o=f.start);var q="";for(p=0;p<o;p++)m[p].canEdit&&m[p].character!=g.promptChar&&(q+=m[p].character);q+=c;var r=g.decimal<1?1:0;for(f.start==i&&g.decimalSeparatorPosition!=-1&&(q+=g.decimalSeparator,r=0),p=o+r;p<m.length;p++)m[p].character==g.decimalSeparator&&m[p].isSeparator?q+=m[p].character:m[p].canEdit&&m[p].character!=g.promptChar&&(q+=m[p].character);"."!=g.decimalSeparator&&(q=g._parseDecimalValue(q)),q=parseFloat(q).toString(),q=new Number(q),q=q.toFixed(g.decimalDigits),"."!=g.decimalSeparator&&(q=g._parseDecimalValueToEditorValue(q)),g.setvalue("decimal",q);var k=g._getString();if(f.end<i?g._setSelectionStart(f.end+r):g._setSelectionStart(f.end),f.length>=1&&g._setSelectionStart(f.end),f.length==g.numberInput.val().length){var s=g._moveCaretToDecimalSeparator(),t=g.decimalSeparatorPosition>=0?1:0;g._setSelectionStart(s-t)}}else if(f.start<i||f.start>i){if(g.numberInput.val().length==f.start&&g.decimalSeparatorPosition!=-1)return!1;if(g.numberInput.val().length==f.start&&g.decimalSeparatorPosition==-1&&!n)return!1;var q="",u=!1;for(p=0;p<a;p++)m[p].canEdit&&m[p].character!=g.promptChar&&(q+=m[p].character),m[p].character==g.decimalSeparator&&m[p].isSeparator&&(q+=m[p].character,u=!0);q+=c;var r=g.decimal<1?1:0;for(u||f.start!=i-1||(q+=g.decimalSeparator,u=!0),p=a+1;p<m.length;p++)!u&&m[p].character==g.decimalSeparator&&m[p].isSeparator?q+=m[p].character:m[p].canEdit&&m[p].character!=g.promptChar&&(q+=m[p].character);g.setvalue("decimal",q);var k=g._getString();if(g.decimalSeparatorPosition<0&&d==m[l])return g._setSelectionStart(a),!1;var v=k.indexOf(g.symbol),w=g.getvalue("negative")?1:0;if(v<=w&&(v=k.length),f.start<v?g._setSelectionStart(a+1):g._setSelectionStart(a),f.length>=1,f.length==g.numberInput.val().length){var s=g._moveCaretToDecimalSeparator();g._setSelectionStart(s-1)}}return!1}}}})}}},_handleKeyPress:function(b,c){var d=this._selection(),e=this,f=b.ctrlKey||b.metaKey;if(f&&97==c||f&&65==c)return!0;if(8==c)return d.start>0&&e._setSelectionStart(d.start),!1;if(46==c)return d.start<this.items.length&&e._setSelectionStart(d.start),!1;if(!a.jqx.browser.mozilla&&(45==c||173==c||109==c||189==c)){var g=this.getvalue("negative");0==g?this.setvalue("negative",!0):this.setvalue("negative",!1)}a.jqx.browser.msie&&this._insertKey(c);var h=this._isSpecialKey(c);return h},_deleteSelectedText:function(){var a=this._selection(),b="",c=this._getSeparatorPosition(),d=this._getVisibleItems(),e=this._getHiddenPrefixCount();for(this.numberInput.val().length==a.start&&0==a.length&&(this._setSelection(a.start,a.start+1),a=this._selection()),i=0;i<a.start;i++)d[i].canEdit&&d[i].character!=this.promptChar?b+=d[i].character:d[i].canEdit||this.decimalSeparatorPosition==-1||d[i]!=d[this.decimalSeparatorPosition-e]||(0==b.length&&(b="0"),b+=d[i].character);for(i=a.start;i<a.end;i++)i>c&&this.decimalSeparatorPosition!=-1?d[i].canEdit&&d[i].character!=this.promptChar&&(b+="0"):d[i].canEdit||this.decimalSeparatorPosition==-1||d[i]!=d[this.decimalSeparatorPosition-e]||(0==b.length&&(b="0"),b+=d[i].character);for(i=a.end;i<d.length;i++)d[i].canEdit&&d[i].character!=this.promptChar?b+=d[i].character:d[i].canEdit||this.decimalSeparatorPosition==-1||d[i]!=d[this.decimalSeparatorPosition-e]||(0==b.length&&(b="0"),b+=d[i].character);return this.setvalue("decimal",b),a.length>0},_restoreInitialState:function(){var a=parseInt(this.decimalDigits);for(a>0&&(a+=2),k=this.items.length-1;k>this.items.length-1-a&&this.items[k];k--)this.items[k].canEdit&&this.items[k].character==this.promptChar&&(this.items[k].character=0)},clear:function(){this.setDecimal(0)},clearDecimal:function(){if("textbox"==this.inputMode)return void this.numberInput.val();for(var a=0;a<this.items.length;a++)this.items[a].canEdit&&(this.items[a].character=this.promptChar);this._restoreInitialState()},_saveSelectedText:function(){var b=this._selection(),c="",d=this._getVisibleItems();if(b.start>0||b.length>0)for(i=b.start;i<b.end;i++)d[i].canEdit&&d[i].character!=this.promptChar?c+=d[i].character:d[i].isSeparator&&(c+=d[i].character);return a.jqx.browser.msie&&window.clipboardData.setData("Text",c),c},_pasteSelectedText:function(){var b=this._selection();if(this.selectedText=a.data(document.body,"jqxSelection"),window.clipboardData){var c=window.clipboardData.getData("Text");if(c!=this.selectedText&&c.length>0&&(this.selectedText=window.clipboardData.getData("Text"),null==this.selectedText||void 0==this.selectedText))return}b.start,this._getVisibleItems();if(null!=this.selectedText)for(var d=0;d<this.selectedText.length;d++){var e=parseInt(this.selectedText[d]);if(!isNaN(e)){var f=48+e;this._insertKey(f)}}},_getHiddenPrefixCount:function(){var a=0;if(this.negative||a++,"left"==this.symbolPosition)for(i=0;i<this.symbol.length;i++)""==this.symbol.substring(i,i+1)&&a++;return a},_getEditableItem:function(){var a=this._selection();for(i=0;i<this.items.length;i++)if(i<a.start&&this.items[i].canEdit&&this.items[i].character!=this.promptChar)return this.items[i];return null},_getEditableItems:function(){var a=new Array,b=0;for(i=0;i<this.items.length;i++)this.items[i].canEdit&&(a[b]=this.items[i],b++);return a},_getValidSelectionStart:function(a){for(i=this.items.length-1;i>=0;i--)if(this.items[i].canEdit&&this.items[i].character!=this.promptChar)return i;return-1},_getEditableItemIndex:function(a){var b=this._selection(),c=this._getHiddenPrefixCount(),d=this._getVisibleItems(),e=b.start,f=-1;for(i=0;i<e;i++)i<d.length&&d[i].canEdit&&(f=i+c);if(f==-1&&b.length>0)for(e=b.end,i=0;i<e;i++)if(i<d.length&&d[i].canEdit){f=i+c;break}return f},_getEditableItemByIndex:function(a){for(k=0;k<this.items.length;k++)if(k>a&&this.items[k].canEdit&&this.items[k].character!=this.promptChar)return k;return-1},_getFirstEditableItemIndex:function(){var a=this._getVisibleItems();for(m=0;m<a.length;m++)if(a[m].character!=this.promptChar&&a[m].canEdit&&"0"!=a[m].character)return m;return-1},_getLastEditableItemIndex:function(){var a=this._getVisibleItems();for(m=a.length-1;m>=0;m--)if(a[m].character!=this.promptChar&&a[m].canEdit)return m;return-1},_moveCaretToDecimalSeparator:function(){for(i=this.items.length-1;i>=0;i--)if(this.items[i].character==this.decimalSeparator&&this.items[i].isSeparator)return this.negative?(this._setSelectionStart(i+1),i):(this._setSelectionStart(i),i);return this.numberInput.val().length},_handleBackspace:function(){var a=this._selection(),b=this._getHiddenPrefixCount(),c=this._getEditableItemIndex()-b,d=this._getFirstVisibleNonEmptyIndex(),e=!1;if(this.negative&&(e=!0,(d>=c+1||0==a.start)&&(this.setvalue("negative",!1),0==a.length))){this._setSelectionStart(a.start-1);var a=this._selection()}if(c>=0){0==a.length&&c!=-1&&this._setSelection(c,c+1);var f=a.start>this._getSeparatorPosition()+1&&this.decimalSeparatorPosition>0;f&&(a=this._selection());this._deleteSelectedText();if(a.length<1||f?this._setSelectionStart(a.start):a.length>=1&&this._setSelectionStart(a.end),a.length==this.numberInput.val().length||e){var g=this._moveCaretToDecimalSeparator();this._setSelectionStart(g-1)}}else this._setSelectionStart(a.start)},_handleKeyDown:function(b,c){var d=this._selection(),e=b.ctrlKey||b.metaKey;if((8==c||46==c)&&e)return this.setDecimal(null),!1;if(this.rtl&&37==c){var f=b.shiftKey,g=f?1:0;return f?this._setSelection(d.start+1-g,d.start+d.length+1):this._setSelection(d.start+1-g,d.start+1),!1}if(this.rtl&&39==c){var f=b.shiftKey,g=f?1:0;return f?this._setSelection(d.start-1,d.length+g+d.start-1):this._setSelection(d.start-1,d.start-1),!1}if(e&&97==c||e&&65==c)return!0;if(e&&120==c||e&&88==c)return this.selectedText=this._saveSelectedText(b),a.data(document.body,"jqxSelection",this.selectedText),this._handleBackspace(),!1;if(e&&99==c||e&&67==c)return this.selectedText=this._saveSelectedText(b),a.data(document.body,"jqxSelection",this.selectedText),!1;if(e&&122==c||e&&90==c)return!1;if(e&&118==c||e&&86==c||b.shiftKey&&45==c)return this._pasteSelectedText(),!1;if(d.start>=0&&d.start<this.items.length){var h=String.fromCharCode(c);this.items[d.start]}if(8==c)return this._handleBackspace(),!1;if(190==c||110==c)return this._moveCaretToDecimalSeparator(),!1;if(188==c){var j=this.numberInput.val();for(i=d.start;i<j.length;i++)if(j[i]==this.groupSeparator){this._setSelectionStart(1+i);break}return!1}if(null==a.jqx.browser.msie){var h=String.fromCharCode(c),k=parseInt(h);if(c>=96&&c<=105&&(k=c-96,c-=48),!isNaN(k)){var l=this;return l._insertKey(c),!1}}if(46==c){var m=this._getVisibleItems();if(d.start<m.length){var g=0==m[d.start].canEdit?2:1;if(0==d.start&&this.negative){this.setvalue("negative",!1),0==d.length&&this._setSelectionStart(0);var d=this._selection();if(0==d.length)return!1}0==d.length&&this._setSelection(d.start+g,d.start+g+d.length),this._handleBackspace(),new Number(this.decimal)<1||d.start>this._getSeparatorPosition()?this._setSelectionStart(d.end+g):d.start+1<this.decimalSeparatorPosition&&this._setSelectionStart(d.end+g)}return!1}if(38==c)return this.spinUp(),!1;if(40==c)return this.spinDown(),!1;27===c&&(this.setDecimal(this._savedValue),this._setSelectionStart(d.end),b.preventDefault());var n=this._isSpecialKey(c);if(a.jqx.browser.mozilla&&(45==c||173==c||109==c||189==c)){var o=this.getvalue("negative");0==o?this.setvalue("negative",!0):this.setvalue("negative",!1)}return!a.jqx.browser.mozilla||n},_isSpecialKey:function(a){return 8==a||9==a||13==a||35==a||36==a||37==a||39==a||27==a||46==a},_selection:function(){try{if("selectionStart"in this.numberInput[0]){var a=this.numberInput[0],b=a.selectionEnd-a.selectionStart;return{start:a.selectionStart,end:a.selectionEnd,length:b,text:a.value}}var c=document.selection.createRange();if(null==c)return{start:0,end:a.value.length,length:0};var d=this.numberInput[0].createTextRange(),e=d.duplicate();d.moveToBookmark(c.getBookmark()),e.setEndPoint("EndToStart",d);var b=c.text.length;return{start:e.text.length,end:e.text.length+c.text.length,length:b,text:c.text}}catch(a){return{start:0,end:0,length:0}}},selectAll:function(){var a=this.numberInput;setTimeout(function(){if("selectionStart"in a[0])a[0].focus(),a[0].setSelectionRange(0,a[0].value.length);else{var b=a[0].createTextRange();b.collapse(!0),b.moveEnd("character",a[0].value.length),b.moveStart("character",0),b.select()}},10)},_setSelection:function(b,c){if(1!=this._disableSetSelection){var d=a.jqx.mobile.isTouchDevice();if(!d&&1!=this.touchMode)try{if("selectionStart"in this.numberInput[0])this.numberInput[0].focus(),this.numberInput[0].setSelectionRange(b,c);else{var e=this.numberInput[0].createTextRange();e.collapse(!0),e.moveEnd("character",c),e.moveStart("character",b),e.select()}}catch(a){}}},_setSelectionStart:function(b){this._setSelection(b,b),a.data(this.numberInput,"selectionstart",b)},resize:function(a,b){this.width=a,this.height=b,this._render(!1)},_render:function(b){var c=parseInt(this.host.css("border-left-width")),d=parseInt(this.host.css("border-left-width")),e=parseInt(this.host.css("border-left-width")),f=parseInt(this.host.css("border-left-width"));this.numberInput.css("padding-top","0px"),this.numberInput.css("padding-bottom","0px"),this.host.height(this.height),this.host.width(this.width);var g=this.host.width(),h=this.host.height();this.numberInput.css({"border-left-width":0,"border-right-width":0,"border-bottom-width":0,"border-top-width":0}),isNaN(e)&&(e=1),isNaN(d)&&(d=1),isNaN(f)&&(f=1),isNaN(c)&&(c=1),this.numberInput.css("text-align",this.textAlign);var i=this.numberInput.css("font-size");""==i&&(i=13),this.numberInput.css("height",parseInt(i)+4+"px"),this.numberInput.css("width",g-2);var j=h-2*e-parseInt(i)-2;if(isNaN(j)&&(j=0),j<0&&(j=0),this.spinButtons&&this.spincontainer){g-=parseInt(this.spinButtonsWidth-2);var k=a.jqx.mobile.isTouchDevice();k||this.touchMode===!0?(this.spincontainer.width(2*this.spinButtonsWidth),g-=this.spinButtonsWidth,this.upbutton.height("100%"),this.downbutton.height("100%"),this.downbutton.css("float","left"),this.upbutton.css("float","right"),this.upbutton.width(this.spinButtonsWidth),this.downbutton.width(1+this.spinButtonsWidth)):(this.spincontainer.width(this.spinButtonsWidth),this.upbutton.width(this.spinButtonsWidth+2),this.downbutton.width(this.spinButtonsWidth+2),this.upbutton.height("50%"),this.downbutton.height("50%"),this.spincontainer.width(this.spinButtonsWidth)),this._upArrow.height("100%"),this._downArrow.height("100%"),this.numberInput.css("width",g-6),this.numberInput.css("margin-right","2px")}var l=j/2;a.jqx.browser.msie&&a.jqx.browser.version<8&&(l=j/4),this.numberInput.css("padding-left","0px"),this.numberInput.css("padding-right","0px"),this.numberInput.css("padding-top",Math.round(l)+"px"),this.numberInput.css("padding-bottom",Math.round(l)+"px"),void 0!=b&&1!=b||(this.numberInput.val(this._getString()),"advanced"!=this.inputMode&&this._parseDecimalInSimpleMode())},destroy:function(){this._removeHandlers(),this.host.remove()},inputValue:function(a){return void 0===a?this._value():(this.propertyChangedHandler(this,"value",this._value,a),this._refreshValue(),this)},_value:function(){var a=this.numberInput.val();return a},val:function(a){if((void 0===a||"object"==typeof a)&&null!==a)return this.getDecimal();if(null===a)return void this.setDecimal(null);var b=a;b=b.toString(),b.indexOf(this.symbol)>-1&&(b=b.replace(this.symbol,""));var c=function(a,b,c){var d=a;if(b==c)return a;for(var e=d.indexOf(b);e!=-1;)d=d.replace(b,c),e=d.indexOf(b);return d};b=c(b,this.groupSeparator,""),b=b.replace(this.decimalSeparator,".");for(var d="",e=0;e<b.length;e++){var f=b.substring(e,e+1);"-"===f&&(d+="-"),"."===f&&(d+="."),null!=f.match(/^[0-9]+$/)&&(d+=f)}b=d,b=b.replace(/ /g,""),b=new Number(b),this.setDecimal(b)},getDecimal:function(){if(null==this.decimal)return null;if("simple"==this.inputMode&&(this._parseDecimalInSimpleMode(!1),this.decimal=this._getDecimalInSimpleMode(this.decimal)),""==this.decimal)return 0;var a=this.getvalue("negative");return a&&this.decimal>0?-parseFloat(this.decimal):parseFloat(this.decimal)},setDecimal:function(a){var b=a;if("."!=this.decimalSeparator)if(null===a)this._setDecimal(a);else{var c=a;if("number"!=typeof a){a=a.toString();var d=a.indexOf(".");if(d!=-1){var e=a.substring(0,d),f=a.substring(d+1);c=e+"."+f,e.indexOf("-")!=-1&&(e=e.substring(1)),a="advanced"!=this.inputMode?e+"."+f:e+this.decimalSeparator+f}else{var d=a.indexOf(this.decimalSeparator);if(d!=-1){var e=a.substring(0,d),f=a.substring(d+1);c=e+"."+f,e.indexOf("-")!=-1&&(e=e.substring(1)),a="advanced"!=this.inputMode?e+"."+f:e+this.decimalSeparator+f}}}c<0?this.setvalue("negative",!0):this.setvalue("negative",!1),this._setDecimal(a)}else a<0?this.setvalue("negative",!0):this.setvalue("negative",!1),null===a?this._setDecimal(a):this._setDecimal(Math.abs(a));null==b&&this.numberInput.val("")},_setDecimal:function(a){if(this.allowNull||null!=a||(this.decimal=0,a=0),null==a)return this.decimal=null,this.value=null,this.clearDecimal(),this._refreshValue(),this.decimal=null,void(this.value=null);a.toString().indexOf("e")!=-1&&(a=new Number(a).toFixed(this.decimalDigits).toString()),this.clearDecimal();var b=a.toString(),c="",d="",e=!0;0==b.length&&(b="0");for(var f=0;f<b.length;f++){if("number"==typeof a){if("."==b.substring(f,f+1)){e=!1;continue}}else if(b.substring(f,f+1)==this.decimalSeparator){e=!1;continue}e?c+=b.substring(f,f+1):d+=b.substring(f,f+1)}c.length>0&&(c=parseFloat(c).toString());var g=this.digits;g<c.length&&(c=c.substr(0,g));var h=0,i=this._getSeparatorPosition(),j=this._getHiddenPrefixCount();i+=j;for(var f=i;f>=0;f--)f<this.items.length&&this.items[f].canEdit&&h<c.length&&(this.items[f].character=c.substring(c.length-h-1,c.length-h),h++);h=0;for(var f=i;f<this.items.length;f++)this.items[f].canEdit&&h<d.length&&(this.items[f].character=d.substring(h,h+1),h++);if(this._refreshValue(),"."==this.decimalSeparator)this.ValueString=new Number(a).toFixed(this.decimalDigits);else{var k=a.toString().indexOf(this.decimalSeparator);if(k>0){var l=a.toString().substring(0,k),m=l+"."+a.toString().substring(k+1);this.ValueString=new Number(m).toFixed(this.decimalDigits)}else this.ValueString=new Number(a).toFixed(this.decimalDigits)}if("advanced"!=this.inputMode&&(this._parseDecimalInSimpleMode(),this._raiseEvent(1,this.ValueString)),"textbox"==this.inputMode){this.decimal=this.ValueString;var n=this.getvalue("negative");n&&(this.decimal="-"+this.ValueString)}var a=this.val();a<this.min||a>this.max?this.host.addClass("jqx-input-invalid"):this.host.removeClass("jqx-input-invalid")},_getSeparatorPosition:function(){var a=this._getHiddenPrefixCount();return this.decimalSeparatorPosition>0?this.decimalSeparatorPosition-a:this.items.length-a},_setTheme:function(){this.host.removeClass(),this.host.addClass(this.toThemeProperty("jqx-input")),this.host.addClass(this.toThemeProperty("jqx-rc-all")),this.host.addClass(this.toThemeProperty("jqx-widget")),this.host.addClass(this.toThemeProperty("jqx-widget-content")),this.host.addClass(this.toThemeProperty("jqx-numberinput")),this.spinButtons&&(this.downbutton.removeClass(),this.upbutton.removeClass(),this.downbutton.addClass(this.toThemeProperty("jqx-scrollbar-button-state-normal")),this.upbutton.addClass(this.toThemeProperty("jqx-scrollbar-button-state-normal")),this._upArrow.removeClass(),this._downArrow.removeClass(),this._upArrow.addClass(this.toThemeProperty("jqx-icon-arrow-up")),this._downArrow.addClass(this.toThemeProperty("jqx-icon-arrow-down"))),this.numberInput.removeClass(),this.numberInput.addClass(this.toThemeProperty("jqx-input-content"))},propertiesChangedHandler:function(a,b,c){c&&c.width&&c.height&&2==Object.keys(c).length&&a._render()},propertyChangedHandler:function(b,c,d,e){if(!(b.batchUpdate&&b.batchUpdate.width&&b.batchUpdate.height&&2==Object.keys(b.batchUpdate).length)){if("template"==c&&(b.upbutton.removeClass(b.toThemeProperty("jqx-"+b.template)),b.downbutton.removeClass(b.toThemeProperty("jqx-"+b.template)),b.upbutton.addClass(b.toThemeProperty("jqx-"+b.template)),b.downbutton.addClass(b.toThemeProperty("jqx-"+b.template))),("digits"==c||"groupSize"==c||"decimalDigits"==c)&&e<0)throw new Exception(this.invalidArgumentExceptions[0]);if("placeHolder"==c&&b.numberInput.attr("placeholder",b.placeHolder),"theme"===c&&a.jqx.utilities.setTheme(d,e,b.host),"digits"==c&&e!=d&&(b.digits=parseInt(e)),"min"!=c&&"max"!=c||(a.jqx.aria(b,"aria-value"+c,e.toString()),b._refreshValue()),"decimalDigits"==c&&e!=d&&(b.decimalDigits=parseInt(e)),"decimalSeparator"==c||"digits"==c||"symbol"==c||"symbolPosition"==c||"groupSize"==c||"groupSeparator"==c||"decimalDigits"==c||"negativeSymbol"==c){var f=b.decimal;if("decimalSeparator"==c&&""==e&&(e=" "),d!=e){var g=b._selection();b.items=new Array,b._initializeLiterals(),b.value=b._getString(),b._refreshValue(),b._setDecimal(f)}}if("rtl"==c&&(b.rtl?(b.spincontainer&&(b.spincontainer.css("float","right"),b.spincontainer.css("border-right-width","1px")),b.numberInput.css("float","right")):(b.spincontainer&&(b.spincontainer.css("float","right"),b.spincontainer.css("border-right-width","1px")),b.numberInput.css("float","left"))),"spinButtons"==c&&(b.spincontainer?(e?b.spincontainer.css("display","block"):b.spincontainer.css("display","none"),b._render()):b._spinButtons()),"touchMode"===c&&(b.inputMode="textbox",b.spinMode="simple",b.render()),"negative"==c&&"advanced"==b.inputMode){var g=b._selection(),h=0;e?(b.items[0].character=b.negativeSymbol[0],h=1):(b.items[0].character="",h=-1),b._refreshValue(),b.isInitialized&&b._setSelection(g.start+h,g.end+h)}if("decimal"==c&&(b.value=e,b.setDecimal(e)),"value"===c&&(b.value=e,b.setDecimal(e),b._raiseEvent(1,e)),"textAlign"==c&&(b.textAlign=e,b._render()),"disabled"==c&&(b.numberInput.attr("disabled",e),b.disabled?b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled")):b.host.removeClass(b.toThemeProperty("jqx-fill-state-disabled")),a.jqx.aria(b,"aria-disabled",e.toString())),"readOnly"==c&&(b.readOnly=e),"promptChar"==c){for(i=0;i<b.items.length;i++)b.items[i].character==b.promptChar&&(b.items[i].character=e);b.promptChar=e}"width"==c?(b.width=e,b._render()):"height"==c&&(b.height=e,b._render())}},_value:function(){var a=this.value;return a},_refreshValue:function(){var a=this.value;if("textbox"!==this.inputMode){this.value=this._getString(),a=this.value;for(var b="",c=0;c<this.items.length;c++){var d=this.items[c];d.canEdit&&d.character!=this.promptChar&&(b+=d.character),c==this.decimalSeparatorPosition&&(b+=".")}this.decimal=b;var e=!1;this.oldValue!==a&&(this.oldValue=a,this._raiseEvent(0,a),e=!0),"simple"!=this.inputMode&&(this.numberInput.val(a),e&&this._raiseEvent(1,a)),null==a&&this.numberInput.val("")}}})}(jqxBaseFramework);

mercurial