/**
 * Integer校验组件
 * 属性：isNullable：是否为空。 当为NO时不可以为空，需要非空校验；当为YES时可以为空，不需要非空校验。
 *      fixLength: 输入固定长度。
 * 说明：1、支持输入固定长度，如果超出固定长度，则禁止输入。
 *       2、支持整型，0－9，“-”。
 *       3、将Enter 键转换为 Tab 键。
 * @author LongHongYe(ebizs@itpub.net)
 */

 function IntegerObj(editerObj){

	//定义输入对象
	this.edtObj = editerObj;
	//公共方法
	this.getParentObj = INT_getParentObj;
	this.getBaseObj = INT_getBaseObj;

	this.onvalidate = INT_onvalidate;
	this.checkInput = INT_checkInput;

	this.OnlyNumber = INT_OnlyNumber;
	this.onReady = INT_onDocumentReady;
 	this.eventBand =INT_eventBand;
 


	//私有方法

	//私有对象
    var ParObj=null;
    var BasObj=null;
}

    function INT_getParentObj(){
    	if(this.ParObj==null){
    		this.ParObj = new NumberObj(this.edtObj);
    		}
    		return this.ParObj;
   	}
   function INT_getBaseObj(){
   	if(this.BasObj==null){
   		this.BasObj=this.getParentObj().getBaseObj();
   		}
   	return this.BasObj;

   	}
    function INT_onvalidate() {
        var fixLength = this.edtObj.fixLength;
	     var inputStr = this.edtObj.value;
	     var objName =this.edtObj.name;

	   //调用BaseObject中的公用函数检查数据合法性
     	if(!this.getBaseObj().commonCheck())	return false;

	   	if(!this.checkInput()){
		   alert("["+this.edtObj.prompt + "]输入不合法！");
		   return false;
		}


	    return true;
	}


    function INT_checkInput(){
   
	 var inputStr = this.edtObj.value;
      //如果第一位是负号，第二位禁止输入0
     if(inputStr=="-"){
       if(window.event.keyCode == 48)
               window.event.keyCode = 0 ;
     }
     
	 if(this.edtObj.isRectInteger=='true'){
	 	if(window.event.keyCode == 45)
              window.event.keyCode = 0 ;
	 }
      //如果第一位输入负号，其他位不允许输入负号“-”
     if(inputStr.indexOf("-")>-1 || inputStr.length>1){
       if(window.event.keyCode == 45)
              window.event.keyCode = 0 ;
     }
     
	 
      for (var i = 0; i < inputStr.length; i++) {
           var oneChar = inputStr.charAt(i)
           //第一位可以是“-”
           if (i == 0 && oneChar == "-") {
            continue;
           }

           if (oneChar < "0" || oneChar > "9") {
             event.returnValue = false;
             return false;
           }

       }
           return true;

    }



    

	 function INT_OnlyNumber()
    {
	   
	   this.checkInput();

	   if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))|| (window.event.keyCode == 13) || (window.event.keyCode == 45)))

	   {
			window.event.keyCode = 0 ;
	   }



    }

  
    function INT_onDocumentReady(){
    	//调用ParentObj 的初始化方法
    	 this.getParentObj().onReady();
    	};
    function INT_eventBand(){
    	this.getBaseObj().eventBand("onkeypress","OnlyNumber()")
    	}


IntegerObj.prototype.beforeSubmit = function(){
	this.getParentObj().beforeSubmit();
}
