/* 
 * $Date: 2006-07-07 09:47:33 $
 * $Author: sujiwu $
 * 使用了统一校验的方式
 * 在input中设置了几个自定义属性（按照校验顺序）：
 * 1.cnname 中文名称及是否校验此项输入（默认不校验）
 * 2.notnull 是否非空，非空：y；可空：n（默认可空）
 * 3.fixsize 固定长度（字节）
 * 4.maxsize 最大长度（字节）
 * 5.datatype 数据类型，字符型：str；数字型：num（包含小数点）；整数型（不含小数点）：int（默认字符型）
 * 6.intsize 数字型（包含小数点）整数部分的最大位数
 * 7.decsize 数字型（包含小数点）小数部分的最大位数
 */
 
var showerr = true;                  //是否提示错误信息

//is Null
function isnull(str){
  if(str.length == 0)return true;
  var chk = true;
  for(var i = 0; i < str.length; i++)
	if(str.charAt(i) != " "){
      chk = false;
	  break;
    }
  return chk; 
}

//Whether a String is a Integer
function checkint(str){
  var compstr = "0123456789";
  var l = str.length;
  if(l == 0)return true;
  for(var i = 0; i < l; i++)
	if(compstr.indexOf(str.charAt(i)) == -1)return false;
  return true;
}

//Check Whether a String Can be Switched to a Number
function checknum(str){
  //var compstr = "0123456789.";
  //Get the Length of String
  var l = str.length;

  //Null Check
  if(l == 0)return true;

  //Number Check
  var count = 0;
  for(var i = 0; i < l; i++){
    var tmp = str.charAt(i);
    if(tmp == "."){
      ++count;
      if(count > 1)return false;
      if((i == 0) || (i == l - 1))return false;
    }else if(tmp < "0" || tmp > "9")return false;
  }
  return true;
}

//Check the int Size of num type
function getIntSize(str){
  var len = str.indexOf(".");
  if(len == -1)return str.length;
  return len;
}

//Check the decimal Size of num type
function getDecSize(str){
	var pos = str.indexOf(".");
	if(pos == -1)return 0;
	return (str.length - pos - 1);
}

//Get length
function strlen(str){
  var len = 0;
  for(var i = 0; i < str.length; i++){
    if(str.charCodeAt(i) > 255)len += 2;
    else len++;
  }
  return len;
}

function verifyinput(input){
  //notnull
  if((input.notnull + "") != "undefined")
    if(input.notnull == "y")
      if(isnull(input.value)){
        if(showerr)alert(input.cnname + "不能为空！");
        return false;
      }
    
  //fixsize
  if((input.fixsize + "") != "undefined")
    if(strlen(input.value) != parseInt(input.fixsize)){
      if(showerr)alert(input.cnname + "必须为" + input.fixsize + "位！");
      return false;
    }
  
  //maxsize
  if((input.maxsize + "") != "undefined")
    if(strlen(input.value) > parseInt(input.maxsize)){
      if(showerr)alert(input.cnname + "不能超过" + input.maxsize + "个字符！");
      return false;
    }
    
  //datatype
  if((input.datatype + "") != "undefined"){
    if(input.datatype == "num"){
      if(! checknum(input.value)){
        if(showerr)alert(input.cnname + "必须是数字！");
        return false;
      }
	  if((input.intsize + "") != "undefined"){
        if(getIntSize(input.value) > parseInt(input.intsize)){
          if(showerr)alert(input.cnname + "整数部分不能超过" + input.intsize + "位！");
		  return false;
		}
	  }
	  if((input.decsize + "") != "undefined"){
        if(getDecSize(input.value) > parseInt(input.decsize)){
          if(showerr)alert(input.cnname + "小数部分不能超过" + input.decsize + "位！");
		  return false;
		}
	  }
    }
	if(input.datatype == "int"){
      if(! checkint(input.value)){
        if(showerr)alert(input.cnname + "必须是整数！");
		return false;
	  }
	}
  }
      
  return true;
}

function verifyform(obj){
  for(var i = 0; i < obj.elements.length; i++)
    if((obj.elements[i].cnname + "") != "undefined")
      if(! verifyinput(obj.elements[i])){
        obj.elements[i].focus();
        return false;
      }
  return true;
}

function replaceEnter(ss){
	var aa = ss.split("\r\n");
	var tt = '';
	for(var i = 0;i < aa.length;i++){
	  tt += aa[i];
	}
	return tt;
}