Ext.namespace("Ext.ux.form");Ext.ux.form.Spinner=function(A){Ext.ux.form.Spinner.superclass.constructor.call(this,A);this.addEvents({spin:true,spinup:true,spindown:true})};Ext.extend(Ext.ux.form.Spinner,Ext.form.TriggerField,{triggerClass:"x-form-spinner-trigger",splitterClass:"x-form-spinner-splitter",alternateKey:Ext.EventObject.shiftKey,strategy:undefined,onRender:function(B,A){Ext.ux.form.Spinner.superclass.onRender.call(this,B,A);this.splitter=this.wrap.createChild({tag:"div",cls:this.splitterClass,style:"width:13px; height:2px;"});this.splitter.show().setRight((Ext.isIE)?1:2);this.splitter.show().setTop(10);this.proxy=this.trigger.createProxy("",this.splitter,true);this.proxy.addClass("x-form-spinner-proxy");this.proxy.setStyle("left","0px");this.proxy.setSize(14,1);this.proxy.hide();this.dd=new Ext.dd.DDProxy(this.splitter.dom.id,"SpinnerDrag",{dragElId:this.proxy.id});this.initSpinner()},initTrigger:function(){this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},initSpinner:function(){this.keyNav=new Ext.KeyNav(this.el,{up:function(A){A.preventDefault();this.onSpinUp()},down:function(A){A.preventDefault();this.onSpinDown()},pageUp:function(A){A.preventDefault();this.onSpinUpAlternate()},pageDown:function(A){A.preventDefault();this.onSpinDownAlternate()},scope:this});this.repeater=new Ext.util.ClickRepeater(this.trigger);this.repeater.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.on("mouseover",this.onMouseOver,this,{preventDefault:true});this.trigger.on("mouseout",this.onMouseOut,this,{preventDefault:true});this.trigger.on("mousemove",this.onMouseMove,this,{preventDefault:true});this.trigger.on("mousedown",this.onMouseDown,this,{preventDefault:true});this.trigger.on("mouseup",this.onMouseUp,this,{preventDefault:true});this.wrap.on("mousewheel",this.handleMouseWheel,this);this.dd.setXConstraint(0,0,10);this.dd.setYConstraint(1500,1500,10);this.dd.endDrag=this.endDrag.createDelegate(this);this.dd.startDrag=this.startDrag.createDelegate(this);this.dd.onDrag=this.onDrag.createDelegate(this);if("object"==typeof this.strategy&&this.strategy.xtype){switch(this.strategy.xtype){case"number":this.strategy=new Ext.ux.form.Spinner.NumberStrategy(this.strategy);this.validateValue=Ext.form.NumberField.prototype.validateValue;this.minText=Ext.form.NumberField.prototype.minText;this.maxText=Ext.form.NumberField.prototype.maxText;this.nanText=Ext.form.NumberField.prototype.nanText;this.getValue=Ext.form.NumberField.prototype.getValue;this.setValue=Ext.form.NumberField.prototype.setValue;this.parseValue=Ext.form.NumberField.prototype.parseValue;this.fixPrecision=Ext.form.NumberField.prototype.fixPrecision;break;case"date":this.strategy=new Ext.ux.form.Spinner.DateStrategy(this.strategy);break;case"time":this.strategy=new Ext.ux.form.Spinner.TimeStrategy(this.strategy);break;default:delete (this.strategy);break}delete (this.strategy.xtype)}if(this.strategy==undefined){this.strategy=new Ext.ux.form.Spinner.NumberStrategy()}},onMouseOver:function(){if(this.disabled){return }var A=this.getMiddle();this.__tmphcls=(Ext.EventObject.getPageY()<A)?"x-form-spinner-overup":"x-form-spinner-overdown";this.trigger.addClass(this.__tmphcls)},onMouseOut:function(){this.trigger.removeClass(this.__tmphcls)},onMouseMove:function(){if(this.disabled){return }var A=this.getMiddle();if(((Ext.EventObject.getPageY()>A)&&this.__tmphcls=="x-form-spinner-overup")||((Ext.EventObject.getPageY()<A)&&this.__tmphcls=="x-form-spinner-overdown")){}},onMouseDown:function(){if(this.disabled){return }var A=this.getMiddle();this.__tmpccls=(Ext.EventObject.getPageY()<A)?"x-form-spinner-clickup":"x-form-spinner-clickdown";this.trigger.addClass(this.__tmpccls)},onMouseUp:function(){this.trigger.removeClass(this.__tmpccls)},onTriggerClick:function(){if(this.disabled||this.getEl().dom.readOnly){return }var B=this.getMiddle();var A=(Ext.EventObject.getPageY()<B)?"Up":"Down";this["onSpin"+A]()},getMiddle:function(){var B=this.trigger.getTop();var C=this.trigger.getHeight();var A=B+(C/2);return A},isSpinnable:function(){if(this.disabled||this.getEl().dom.readOnly){Ext.EventObject.preventDefault();return false}return true},handleMouseWheel:function(A){if(this.wrap.hasClass("x-trigger-wrap-focus")==false){return }var B=A.getWheelDelta();if(B>0){this.onSpinUp();A.stopEvent()}else{if(B<0){this.onSpinDown();A.stopEvent()}}},startDrag:function(){this.proxy.show();this._previousY=Ext.fly(this.dd.getDragEl()).getTop()},endDrag:function(){this.proxy.hide()},onDrag:function(){if(this.disabled){return }var B=Ext.fly(this.dd.getDragEl()).getTop();var A="";if(this._previousY>B){A="Up"}if(this._previousY<B){A="Down"}if(A!=""){this["onSpin"+A]()}this._previousY=B},onSpinUp:function(){if(this.isSpinnable()==false){return }if(Ext.EventObject.shiftKey==true){this.onSpinUpAlternate();return }else{this.strategy.onSpinUp(this)}this.fireEvent("spin",this);this.fireEvent("spinup",this)},onSpinDown:function(){if(this.isSpinnable()==false){return }if(Ext.EventObject.shiftKey==true){this.onSpinDownAlternate();return }else{this.strategy.onSpinDown(this)}this.fireEvent("spin",this);this.fireEvent("spindown",this)},onSpinUpAlternate:function(){if(this.isSpinnable()==false){return }this.strategy.onSpinUpAlternate(this);this.fireEvent("spin",this);this.fireEvent("spinup",this)},onSpinDownAlternate:function(){if(this.isSpinnable()==false){return }this.strategy.onSpinDownAlternate(this);this.fireEvent("spin",this);this.fireEvent("spindown",this)}});Ext.reg("uxspinner",Ext.ux.form.Spinner);